feat: add Music Studio tab with Suno/ACE-Step BYOK support#103
Draft
feat: add Music Studio tab with Suno/ACE-Step BYOK support#103
Conversation
- Updated project name in package.json, package-lock.json, and README files. - Changed CLI commands and references from "ocd" to "od". - Adjusted file structure references in documentation and code to reflect new naming conventions. - Enhanced .gitignore to include new runtime data files. - Updated metadata in LICENSE file to match new project name.
Minimal music generator inspired by ace-step-ui: a fourth top-level tab in the entry view with simple/custom (lyrics) modes, polling pipeline, and a localStorage-backed track library with inline audio playback. Settings dialog gains a Music section to configure the provider, API key, base URL, and default model. A new daemon /api/music/proxy endpoint forwards calls to dodge CORS and keep keys off the page; the client falls back to direct fetch when the daemon is offline. Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a minimal Music Studio inspired by
fspecii/ace-step-ui, integrated as a fourth top-level tab next to Designs / Examples / Design systems.src/components/MusicStudioTab.tsx): simple/custom (lyrics) mode toggle, prompt + style + title + model + instrumental fields, in-flight progress, and a localStorage-backed track library with inline<audio>playback, download, and delete.src/providers/music.ts): switches onMusicProviderIdto call a Suno-compatible REST gateway (sunoapi.org and friends, BYOK Bearer auth) or a local ACE-Step Gradio server.customis an escape hatch for any compatible mirror.POST /api/music/proxyindaemon/server.js): forwards a single fetch to a user-specified URL so CORS-strict gateways still work and the API key never traverses third-party origins. Validateshttp(s)URLs, bounds upstream calls at 60s, and returns{ status, ok, data }. Client transparently falls back to directfetchwhen the daemon is offline.SettingsDialog(provider / API key / base URL / model).AppConfig.musicis merged into the existing config blob; tracks persist separately underopen-design:music-tracks(capped at 100 entries).Iconcomponent..music-studiostylesheet block tosrc/index.css, reusing the existing surface tokens so it feels native.Test plan
pnpm typecheckpassespnpm test— 29/29 passingpnpm build(Next.js production) succeeds/api/music/proxyforwards GET correctly and rejects non-http(s) URLsMade with Cursor