RythmDJ 開発TODO
外観の初期整理後、機能実装を進めるための作業計画とGit管理メモ。
運用ルール
| TODO更新 | 作業完了時にステータスを TODO から DONE に変更し、必要なら実装メモを追記する。 |
|---|---|
| Git管理 | まとまった機能単位でコミットする。コミット前に cmake --build build --config Debug を通す。 |
| コミット記録 | このファイルの「Gitログ管理」にコミットID、内容、確認状況を追記する。 |
| 優先順位 | 音が出る基本機能、DJ操作、エフェクト、保存、MIDIの順に固める。 |
現在のGit状態
| 状態 | RythmDJ開発中。ESYNCまで完了済み。現在は codex-track-audio-parameters でCrossfaderカーブへ進む準備中。 |
|---|---|
| 主な変更 | フォルダ整理、RythmDJ追加、UI実装、Track編集UI、Mixer/Effectorsモック、インラインTrack名編集、Track CUE、Track MUTE、CUE / MON分離。 |
| 次の推奨コミット | Implement crossfader curve。DJ用途向けにCrossfaderカーブを整理し、必要なら設定UIを追加する。 |
Phase 1: Track音声機能
DONE
Circle入力と再生タイミングの修正
完了。作業ブランチ
codex-fix-circle-sequencer-timing で修正し、mainへマージ済み。Circle上の丸のクリック判定、描画位置、再生スケジューリングのTrigger phase計算を揃えた。追加修正として、STOP後に再度PLAYした場合は停止位置からではなくCircle先頭から再生するようにした。Commit: fa39351 / Merge: 35422e6
DONE
Trackパラメータの実音確認
完了。Vol / Pan / Pitch / Phase / Shuf / V.Hum / T.Hum / Track Rateの接続を確認し、Panの等電力化、V.Humの揺らぎ幅調整、Reverse、同一Track内だけ音被りを止めるChoke Groupを実装した。STOP後の再PLAYはCircle先頭から始まる。
優先度: 高 / Branch: codex-track-audio-parameters
DONE
Track CUEの実装
完了。Track行のCUE丸ボタンを状態管理とMonitor出力へ接続した。Track CUEはDJ標準寄りに、Floor/Masterへの通常出力は保ったままMonitorにも送る。MUTE + CUEの場合はFloorには出さず、Monitorだけで確認できる。上部OptionsはJUCE標準のAudio/MIDI設定として残し、RythmDJ内のRoutingでFloor/Monitorの出力ペアを選択する。Mixer右上のBALでMonitor内のFloor/CUEバランス、右下のMONでMonitor全体音量を調整できる。上部OptionsへRoutingを統合する件は今後課題とする。
優先度: 高
DONE
Track MUTEの挙動確定
完了。DJ標準寄りに、MUTEはサンプル再生停止ではなくFloor/Masterへの送りON/OFFとして扱う。MUTE ON中も内部再生位置は進み、CUE ONならMonitorで確認できる。既に鳴っているVoiceも現在のTrack MUTE/CUE状態を見てFloor/Monitorへ動的に振り分ける実装にした。
優先度: 中
DONE
Track削除・並び替えの安全性確認
完了。削除、ドラッグ並び替え後に選択Track、再生中Voice、MIDI割当、保存状態が破綻しないよう修正した。削除時は対象TrackのVoiceを停止し、後続Voice/MIDI割当のTrack番号を詰める。並び替え時はVoice/MIDI割当のTrack番号を移動後の順序へ追従させる。Track名編集中の削除・移動では編集をキャンセルする。
優先度: 中
Phase 2: DJ / Mixer機能
DONE
CUE / MON分離とMonitor出力
完了。CUEは頭出し操作、MONはヘッドホン/Monitor送りとして分離した。Deck MON ONでは対象Deck全体、Track MONでは個別TrackをMonitorへ送る。MON対象がない場合はMonitor無音。CUE押下中はCue Pointから一時再生し、縦フェーダーに関係なくMonitorへ出力、Floorには出さない。CUEを離したタイミングで試聴Voiceを停止し、Floorへの音漏れを防いだ。
Commit: 4d924e5 / Branch: codex-track-audio-parameters
DONE
Easy Start設定
完了。BPM Syncはテンポ同期として維持し、Phase Syncのような再生中のズレ補正は入れず、ESYNCだけを実装した。ESYNC ON時は、停止中DeckのPLAYを押した瞬間に反対Deckの現在の回転位置へ合わせて再生を開始する。ESYNCはMONの右に配置し、下段TransportはSYNC / CUE / PLAYのまま維持した。
Commit: 19673c0 / Branch: codex-track-audio-parameters
NEXT
Crossfaderカーブ
現在のクロスフェードをDJ用途向けに調整し、必要ならカーブ設定を追加する。
優先度: 中
TODO
DeckフェーダーのKill挙動
Deck縦フェーダーでDeck全体を切る操作を確定する。EQ Killとは分離して扱う。
優先度: 中
Phase 3: EQ / Filter
TODO
HI / MID / LOW EQ実装
まずは簡易3バンドEQとして実装し、後からDSP品質を上げられる構成にする。
優先度: 中
TODO
Filter実装
Deck単位のFilterノブを実装する。初期版はLPF/HPFのどちらにするか決める。
優先度: 中
HOLD
EQ Kill
KILLは将来のEQ Kill用として予約。初期機能が安定してから実装する。
優先度: 低
Phase 4: Effectors
TODO
DelayをEffectorsへ正式移動
既存DelayをEffectors選択の1種として整理し、X/Yパラメータに割り当てる。
優先度: 中
TODO
Effect選択プルダウン
選択したEffectに応じてX/Yの意味と内部処理を切り替える。
優先度: 中
TODO
追加Effect候補の検討
Delayの次に実装するEffectを決める。候補: Beat Repeat、Reverb、Lo-Fi、Gate。
優先度: 低
Phase 5: 保存 / 復元
TODO
RythmDJ状態保存の確認
Track表示名、WAVパス、Track順序、Trigger、Deck設定、MIDI Learnを保存・復元できるか確認する。
優先度: 高
TODO
WAV未検出時の表示
保存済みパスのWAVが見つからない場合のUI表示とリカバリー導線を作る。
優先度: 中
Phase 6: MIDI / Options
TODO
Options画面へMIDI Learnを整理
メイン画面から退避したMIDI Learn状態、Cancel、割当一覧をOptions内に配置する。あわせて、将来的にRoutingをJUCE標準Optionsへ統合できるか検討する。
優先度: 中
TODO
全UI操作のMIDI割当確認
追加されたTrack CUE、EQ、Filter、Effectors X/Y、Track Rate 5ボタンのMIDI制御方針を決める。
優先度: 中
HOLD
ハードウェアコントローラー要件再整理
アプリ機能が固まった後、MIDIコントローラーの物理UI数とShift運用を再設計する。
優先度: 低
Gitログ管理
| Commit | 内容 | 確認 | 日付 |
|---|---|---|---|
| 19673c0 | ESYNC実装。SYNCはBPM同期として維持し、ESYNC ON時のPLAYで反対Deckの現在回転位置へ合わせて再生開始。ボタンはMON右に配置 | cmake --build build --config Debug 成功。Rythm / RythmDJ Standalone・AU成功。 |
2026-06-18 |
| 4d924e5 | CUE / MON分離。CUEを頭出し試聴、MONをMonitor送りとして分離し、Deck/Track MON、CUE中のMonitor専用出力、CUE離し時の音漏れ停止を実装 | cmake --build build --config Debug 成功。Rythm / RythmDJ Standalone・AU成功。 |
2026-06-18 |
| 9fe7481 | Track削除・並び替えの安全性確認。再生中Voice、Track系MIDI割当、Track名編集中の削除・移動を安全化 | cmake --build build --config Debug 成功。Rythm / RythmDJ Standalone・AU成功。 |
2026-06-18 |
| a79c229 | Track MUTE挙動確定。MUTEをFloor/Master送りON/OFFとして扱い、既存Voiceも現在のMUTE/CUE状態で動的にMonitor/Floorへ振り分け | cmake --build build --config Debug 成功。Rythm / RythmDJ Standalone・AU成功。 |
2026-06-18 |
| 55de2c1 | Track CUE実装。MUTE + CUE時のMonitor確認、Floor/Monitor Routing、Monitor BAL/MONノブを追加 | cmake --build build --config Debug 成功。Rythm / RythmDJ Standalone・AU成功。 |
2026-06-17 |
| 0f7fe3e | Track音声パラメータ完成。Pan等電力化、V.Hum調整、Reverse、同一Track内Choke Group、STOP後PLAY先頭復帰、AGENTS.md追加 | cmake --build build --config Debug 成功。Rythm / RythmDJ Standalone・AU成功。 |
2026-06-16 |
| 35422e6 | RythmDJプロトタイプとCircleタイミング修正をmainへマージ | cmake --build build --config Debug 成功。作業ツリークリーン確認済み。 |
2026-06-01 |
| fa39351 | RythmDJプロトタイプ追加、Circle入力判定と再生タイミング基準の修正 | 作業ブランチ codex-fix-circle-sequencer-timing で確認済み。 |
2026-06-01 |
| 74ea472 | 要件定義書のMarkdown化 | 既存履歴 | - |
| 6731d7d | GitHub Pages用要件定義書追加 | 既存履歴 | - |
| 2a8d218 | Initial commit | 既存履歴 | - |