Home > Changelog
Changelog
Release history for Sound Forge Alchemy.
v4.6.0 — 2026-03-11
DJ Dual-Deck Instantaneous Playback and MIDI Fixes
- JS.dispatch + JS.push dual-path architecture for sub-frame DJ playback response
- AI cue detection engine (26+ cues per track) with AutoCueWorker Oban job
- Stem loop decks for per-stem loop control during live mixing
- Crossfader curve modes: linear, constant power, sharp cut, slow fade
- SMPTE/bar-beat transport display at 60fps
- Master sync with phase-aligned pitch-lock between decks
- Built-in metronome with headphone cue routing
- Chef AI set builder for harmonic/energy-optimized track sequencing
- Virtual controller (software MIDI surface in-browser)
- Chromatic pads with auto-cue integration and velocity sensitivity
- Controller preset import/export as JSON
MIDI Fixes:
- Fixed ETS key collision in DeviceManager – composite
port_id("input:N"/"output:N") replaces rawnum - Added Dispatcher to supervision tree (was missing from
application.ex) - Wrapped
phx-changeselect elements in<form>tags (LiveView requirement) - Fixed
resolve_user_idguard (changed fromis_binarytois_integer) - Fixed Mapping schema PK mismatch (removed UUID override, uses integer serial)
WebSocket Optimization:
- Fixed 30Hz WebSocket flood –
debug_loghandler guarded ondebug_panel_open - BPM throttle handler with 5-second interval (local JS.dispatch + throttled server sync)
Bug Fixes:
- Fixed ArgumentError in
toggle_play/set_hot_cue/trigger_cue–to_stringtype normalization at handler boundary
Database:
- New
midi_resultstable - New
chord_resultstable - New
auto_midi_chorduser settings columns
v4.5.0 — 2026-02-26
Audio-to-MIDI, Chord Detection, Piano Roll, Audio Warping
- Audio-to-MIDI conversion via basic-pitch
- Chord detection via librosa chroma analysis
- Piano roll visualization component
- Audio warping via pyrubberband
- Auto-pipeline extensions for MIDI and chord stages
- 16 competitive response stories
- 45 files changed, +4,731 lines
v4.4.0 — 2026-02-25
Prototype Sandbox, DevTools Panel, Platform Admin Library
- /prototype sandbox (Components, DevTools, UAT, LLM tabs)
- DevTools floating panel component
- UAT fixture/scenario helpers (runtime env guard)
- CombinedLibraryLive at /platform/library (platform_admin)
- Accounts context (list_users, update_user_role)
- Tracks context (list_all_tracks, paginated search)
- 41-page GitHub Pages documentation site (Jekyll, just-the-docs dark theme)
v4.3.0 — 2026-02-25
Multi-LLM Agentic System
- LLM adapter/routing layer with 6 specialist agents
- Agent framework with Orchestrator dispatch
- Chat UI for agent interaction
- Health worker for provider monitoring
- 707 tests passing
v4.1.0 — 2026-02-25
Azure Container Apps Production Deployment
- Azure Container Apps deployment with SSL termination
- Azure Container Registry image build pipeline
- DAW editor fixes and stability improvements
- Comprehensive GitHub Pages documentation
SoundForge.Release.migrate/0for production migration runner- Docker multi-stage build optimization
Bug Fixes:
- Fixed DAW component routing (LiveComponent instead of standalone LiveView)
- Fixed stem file_path stored as relative (not absolute) for clean
/files/stems/...URLs - Fixed
pipeline_complete?/1to check only triggered stages
v4.0.0 — 2026-02
lalal.ai Full Cloud Stem Separation Integration (82 files, +12,398 lines)
- Cloud stem separation via lalal.ai API (9+ stem types)
- 60-second preview before full processing
- lalal.ai quota management dashboard
GET /api/lalalai/quotaendpointPOST /api/lalalai/cancelandcancel-allendpoints- Per-user lalal.ai API key storage (encrypted)
- Engine toggle: local Demucs vs. cloud lalal.ai
LalalaiWorkerOban background worker- Voice pack service for voice transformation
- Voice change and voice clean workers
Admin:
- Admin dashboard with SaaS role hierarchy (
user,admin,platform_admin) - Audit logging for role changes, deactivations, config changes
- User management UI
v3.0.0 — 2026-01
Analysis Expansion (24 files, +4,712 lines)
- 5 D3.js visualization hooks: AnalysisRadar, AnalysisChroma, AnalysisBeats, AnalysisMFCC, AnalysisSpectral
- MFCC (13 coefficients) and chroma (12 pitch classes) feature extraction
- Spectral centroid, rolloff, bandwidth, contrast features
- Extended
AnalysisResult.featuresJSONB column for high-dimensional data - Beat frame detection and beat grid timeline visualization
- Key detection confidence score
- Analysis export as JSON (
GET /export/analysis/:track_id)
v2.0.0 — 2025-12
Multi-LLM Agent System
- Six specialist agents: TrackAnalysis, MixPlanning, StemIntelligence, CuePoint, Mastering, Library
SoundForge.Agents.Orchestratorwith keyword-based auto-routing and capability-based dispatchSoundForge.LLM.ModelRegistryGenServer with ETS storage and 5-minute health checks- Per-user LLM provider configuration with encrypted API keys (Cloak.Ecto AES-256-GCM)
- Support for: Anthropic, OpenAI, Google Gemini, Ollama, Azure OpenAI
- System-level LLM provider fallbacks from environment variables
- DAW LiveComponent with multi-track editor and MIDI export
- DJ LiveComponent with two-deck mixer, BPM sync, and loop controls
- MIDI hardware mapping (Pioneer DDJ-200, Traktor Kontrol S2 presets)
- OSC server for DAW integration
v1.0.0 — 2025-11
Initial Phoenix/Elixir Port
- Full port from Node.js/TypeScript to Elixir/Phoenix 1.8
- Phoenix LiveView dashboard replacing React + Socket.IO
- Oban background jobs replacing Redis + BullMQ
- Erlang Port architecture for Demucs and librosa (replacing Node child_process)
- 4-stem Demucs separation (htdemucs, htdemucs_ft, mdx_extra)
- Basic audio analysis: tempo, key, energy, spectral centroid
- Spotify metadata fetch + spotdl audio download
- Phoenix scope-based authentication (phx.gen.auth)
- PostgreSQL schema: tracks, download_jobs, processing_jobs, analysis_jobs, stems, analysis_results
- 653 ExUnit tests, 0 failures
See Also
| ← WebSocket API | Next: Contributing → |