項目 | 内容 |
---|---|
プラグイン形式 | VST3(AudioProcessor + Editor構成) |
種類 | ソフトシンセ(ADSR制御付き) |
入力 | MIDI(Note On / Off) |
出力 | オーディオ(モノラル or ステレオ) |
GUI | Attack / Decay / Sustain / Release スライダー(4本) |
音源 | サイン波(juce::dsp::Oscillator 使用) |
エンベロープ | juce::ADSR / ADSR::Parameters |
パラメータ管理 | AudioProcessorValueTreeState (GUI連携用) |
パラメータID | 表示名 | 範囲 | 初期値 | 単位 |
---|---|---|---|---|
attack |
Attack | 0.01 ~ 5.0 秒 | 0.1 | 秒 |
decay |
Decay | 0.01 ~ 5.0 秒 | 0.1 | 秒 |
sustain |
Sustain | 0.0 ~ 1.0 | 0.8 | 係数 |
release |
Release | 0.01 ~ 5.0 秒 | 0.2 | 秒 |
- すべて
AudioProcessorValueTreeState
で定義 - GUIと
SliderAttachment
で双方向バインド
- MIDIイベントからNote On/Off検出
ADSR.noteOn()
ornoteOff()
を呼び出し- MIDIノートに応じた周波数でサイン波生成
- 出力バッファにADSRエンベロープを適用(
applyEnvelopeToBuffer()
)
juce::ADSR
:エンベロープ処理juce::ADSR::Parameters
:A, D, S, R構造体juce::dsp::Oscillator<float>
:波形生成(初期はサイン波)juce::AudioProcessorValueTreeState
:パラメータ一元管理juce::SliderAttachment
:GUIと音声処理の接続
Slider
× 4(A, D, S, R)Label
付き(スライダー名)- 縦並びレイアウト or グリッドレイアウト
- 色指定:黒背景 + 明るいアクセント(緑・ピンクなど)
processBlock()
内でnew/delete禁止ADSR.noteOn()
などはlock-freeで使用可能- DSP処理はシンプルなfloat演算のみ
- 複数同時発音(Polyphonic対応)
- 他の波形追加(矩形波・ノコギリ波)
- 可視化UI(エンベロープカーブのリアルタイム表示)
- モジュレーション(LFO、Filterなど)
JUCE 7.x
CMake構成(Projucer非依存)
CLion / VSCode
GitHub Actions(CI/CD用)
Reaper / Bitwig(テストDAW)
Pluginval(プラグイン検証ツール)