| 項目 | 内容 |
|---|---|
| プラグイン形式 | 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(プラグイン検証ツール)