# House of Mixtape — DAW Plugin (Path 2) Cross-platform VST3/AU plugin that lets the user upload audio from inside their DAW and receive Phoenix-extracted stems + MIDI directly into the arrangement. Targets Win/Mac/Linux. AAX (Pro Tools) is a v2 ambition. ## Status: scaffolding (2026-05-03) This directory holds the JUCE project skeleton + build instructions. The actual plugin is **not yet compiled** — that's a separate sprint that needs: 1. JUCE installed (clone https://github.com/juce-framework/JUCE) 2. CMake 3.22+ 3. Per-OS toolchain (MSVC on Win, Xcode on macOS, gcc/clang on Linux) The skeleton is enough to verify the build pipeline. Once a developer has JUCE + CMake set up locally, `cmake -B build && cmake --build build` should produce a working empty plugin that loads in Ableton/FL/Logic. ## Why JUCE (vs alternatives) - **JUCE** : industry standard for VST3/AU plugins. Free for open-source, paid licence ($800/yr indie) for commercial. Cross-platform out of the box. Used by everyone (Pro-Q, Serum, Massive, ToneBoosters…). - iPlug2 : MIT-licenced alternative. Smaller community. Considered. - DPF : niche. - Faust : DSP-only, not for HTTP-talking plugins. JUCE wins on docs + support + the fact that we'll integrate HTTP + file-import in C++, which is well-trod ground there. ## What the plugin does ``` ┌───────────── DAW (Ableton/FL/Logic/Reaper) ─────────────┐ │ │ │ ┌──────────────────────────────────┐ │ │ │ House of Mixtape (VST3 plugin) │ │ │ │ │ │ │ │ 1. User drag-drops audio │ │ │ │ 2. POST registry.../jobs/upload │ │ │ │ 3. POST .../jobs/submit │ │ │ │ 4. Poll /status (progress bar) │ │ │ │ 5. GET /output → stems + MIDI │ │ │ │ 6. Drop stems into DAW tracks │ │ │ │ (via VST3 host import API) │ │ │ └──────────────────────────────────┘ │ └──────────────────────────────────────────────────────────┘ ``` ## Files | Path | Purpose | |---|---| | `CMakeLists.txt` | JUCE+CMake project. References JUCE submodule. | | `Source/PluginProcessor.{h,cpp}` | AudioProcessor — does no DSP yet, just hosts the editor. | | `Source/PluginEditor.{h,cpp}` | The plugin UI. Skeleton: Upload button + status text. | | `Source/HomApiClient.{h,cpp}` | HTTP client for `registry.houseofmixtape.com/api/jobs/*`. Skeleton stubs. | ## Build (when ready) ```bash # Clone JUCE next to this dir cd .. git clone --depth 1 https://github.com/juce-framework/JUCE.git cd daw-plugin # Configure + build (Linux example) cmake -B build -DCMAKE_BUILD_TYPE=Release \ -DJUCE_BUILD_TESTS=OFF \ -DJUCE_DIR=$(pwd)/../JUCE cmake --build build --target HouseOfMixtape_VST3 -j # Output: # build/HouseOfMixtape_artefacts/Release/VST3/HouseOfMixtape.vst3/ ``` ## Roadmap - [x] Scaffold (this commit) - [ ] HelloWorld build verified on at least one OS - [ ] HTTP client wired to `registry.houseofmixtape.com` - [ ] Bearer auth flow - [ ] Audio drag-drop in plugin window - [ ] Status polling + progress bar - [ ] Stems import to DAW tracks (VST3 host file-drop API) - [ ] AU build (macOS) - [ ] Code signing + notarization (macOS) - [ ] Win installer - [ ] Distribution (Gumroad? Free? Subscription?)