This repo provides:
- Async Python bridge runtime (source of truth).
- Mock provider automation path for deterministic tests/dev.
- Compliance-first
manual_sunohuman-in-the-loop workflow. - JUCE plugin + standalone client with a shared manual-parity surface.
mock_suno(default): bridge worker submits/polls/downloads automatically.manual_suno: bridge prepares handoff workspace and waits for explicit manual import.- placeholders only:
official_api,web_session.
The JUCE plugin and standalone now both expose the same shared client surface with:
- provider selector (
mock_suno/manual_suno) - mode selector (
Song,Sound,Audio Prompt) - requested output families (
mix,stems,tempo-locked stems,MIDI) - sound fields (one-shot/loop, BPM, key)
- restart-safe reconnect that rehydrates
lastActiveJobIdfromGET /jobs/{id} - handoff actions (
Prepare/Fetch,Reveal,Open instructions) - manual result import (
manual-completeendpoint) for only requested + pending families, then reveal/drag/copy
Preview is intentionally disabled for now across plugin + standalone until a full playback path is implemented.
No provider automation beyond mock_suno is introduced.
GET /capabilitiesPOST /jobs/textPOST /assets/importPOST /jobs/audioGET /jobs/{job_id}POST /jobs/{job_id}/cancelGET /jobs/{job_id}/handoffPOST /jobs/{job_id}/manual-complete
This repository does not implement scraping, browser automation, reverse engineering, session theft, or unofficial Suno APIs.
python -m pip install -e .
python -m bridge.mainJUCE (external):
cmake -S plugin_juce -B build/plugin_juce -Djuce_DIR=/path/to/JUCE/lib/cmake/JUCE
cmake --build build/plugin_juce --target bridge_client
cmake --build build/plugin_juce --target SunoStudioBridgeStandalone
cmake --build build/plugin_juce --target SunoStudioBridgePluginpytest -q
cmake --build build/plugin_juce --target BridgeContractVectors
./build/plugin_juce/BridgeContractVectorsIf JUCE is unavailable, C++ binaries may not build in this environment.