Skip to content

Latest commit

 

History

History
88 lines (60 loc) · 3.8 KB

File metadata and controls

88 lines (60 loc) · 3.8 KB

acestep-vst — Roadmap

Tracks planned features for the standalone acestep-vst AU/VST3 plugin powered by acestep.cpp.


Phase 1 — Submodule, standalone engine & rename ✅

  • Add acestep.cpp as vendor/ git submodule.
  • Remove AceForge HTTP server dependency entirely.
  • Replace AceForgeClient HTTP pipeline with juce::ChildProcess subprocess pipeline (ace-lmace-synth).
  • Rename plugin from "AceForge Bridge" to "acestep-vst" (AcestepVST CMake target, AcestepAudioProcessor class).
  • Enable JUCE_USE_MP3AUDIOFORMAT to decode MP3 output from ace-synth.
  • Persist binary/model/output paths in DAW project state.

Phase 2 — Generation queue / library player ✅

  • Library list — browse all previous generations (WAV + MP3), sorted newest-first.
  • Sidecar prompts — write a .txt next to each generated file; display the prompt in the list.
  • Preview — click ▶ Preview to load any library entry into the playback buffer; press ■ Stop to stop.
  • Loop — toggle ⟳ Loop to repeat the current audio continuously.
  • Delete — remove a library entry (file + sidecar) with one click.
  • Import — Import File… button copies any external WAV/MP3 into the library.
  • Drag from OS — drop WAV/MP3 files from Finder/Explorer onto the plugin window to import them into the library (Library tab) or set them as a cover reference (Generate tab).
  • Drag to DAW — drag a library row to insert the file into the DAW timeline at the current cursor position.
  • Use as Reference — one click sets a library entry as the cover reference and switches to Cover Mode.

Phase 3 — Cover / repaint mode ✅

  • Reference audio — Browse… or drag-drop a WAV/MP3 as the source audio for cover mode.
  • Cover strength slider — 0–1 slider controls how closely the output follows the reference.
  • Mode toggle — "Text-to-Music" vs "Cover Mode" buttons with clear visual distinction.
  • Pass --src-audio and --cover-strength to ace-synth CLI.
  • Embed src_audio, cover_strength, and task_type: "cover" in request.json.

Phase 4 — Settings & BPM ✅

  • Settings tab — configure binaries directory, models directory, and output directory; changes persisted in DAW project XML.
  • BPM auto-detect — read BPM from the DAW playhead in every processBlock(); auto-populate the BPM field (editable override).
  • BPM in request.json — pass detected/entered BPM to ace-lm for rhythmically consistent output.

Phase 5 — Model management & first-run UX

  • First-run Settings tab — plugin opens on Settings tab when binaries are not yet configured, guiding the user to set paths on first launch.
  • Model presence detection — scan model folder on startup; show clear warning in Settings if models are missing.
  • Download wizard — wrap models.sh with a progress panel inside the plugin UI.

Phase 6 — OS & accelerator support

  • Linux / CUDA / ROCm / Vulkan builds via CI matrix.
  • Windows support.
  • GitHub Actions matrixmacos-latest (arm64, Metal) + ubuntu-latest CPU fallback.

Phase 7 — Lego / stem mode

  • Generate individual stems (drums, bass, chords, melody).
  • Multi-track insert: place each stem on its own DAW track.

Phase 8 — Batch generation & variants

  • --batch N — generate N variations; present as alternatives in the library.
  • Side-by-side comparison view.

Updating the submodule

git -C vendor/acestep.cpp fetch origin
git -C vendor/acestep.cpp checkout origin/master
git add vendor/acestep.cpp
git commit -m "chore: update acestep.cpp submodule"