From 3261356bc9db336a8dcc900d80d4e5c1772ec6c3 Mon Sep 17 00:00:00 2001
From: Xiaohan-Tian <157918347+Xiaohan-Tian@users.noreply.github.com>
Date: Fri, 24 Apr 2026 22:00:09 -0700
Subject: [PATCH] docs: updated README.md, added K.G.One Music Studio
information
---
README.md | 76 +++++++++++++++++++++++++++++++++++++---
docs/KGOne-Demo-GIF.gif | Bin 0 -> 9379997 bytes
2 files changed, 71 insertions(+), 5 deletions(-)
create mode 100644 docs/KGOne-Demo-GIF.gif
diff --git a/README.md b/README.md
index 2a43fab..7c90ecc 100644
--- a/README.md
+++ b/README.md
@@ -2,14 +2,28 @@
-## K.G.Studio — A Browser-based DAW with AI Assistant
+# K.G.Studio — A Browser-based DAW with AI Assistant
+
+## New!
+
+> ### ✦ [**K.G.One Music Studio is available now.**](https://github.com/KGAudioLab/K.G.One) ✦
+> [**K.G.One Music Studio**](https://github.com/KGAudioLab/K.G.One) is a fully local, open-source integrated platform built around **K.G.Studio** (this project). It bundles [ACE-Step 1.5](https://github.com/ace-step/ACE-Step-1.5) for full-song generation, [Foundation-1](https://huggingface.co/RoyalCities/Foundation-1) for audio clip and MIDI loop generation, and [python-audio-separator (UVR5)](https://github.com/nomadkaraoke/python-audio-separator) for stem separation — bringing GPU-accelerated AI music generation directly into your browser-based production workflow.
+
+## What is K.G.Studio?
K.G.Studio is a lightweight, modern DAW that runs entirely in the browser with **K.G.Studio Musician Assistant** at its core. It features realistic instrument playback via Tone.js samplers, a piano‑roll editor, track and region management with full undo/redo, project persistence to IndexedDB, a configurable settings panel, and an integrated AI assistant with tool execution.
**K.G.Studio Musician Assistant** is an AI assistance agent for harmony, arrangement, and note editing — but not full auto‑composition.
+
+

+
+
+> Note: Full-Song Generation Feature, Audio Clip Generation Feature, and Stem Separation Feature requires [**K.G.One Music Studio**](https://github.com/KGAudioLab/K.G.One) integration.
+
## Latest Updates
+- **2026.04.24**: Added [**K.G.One Music Studio**](https://github.com/KGAudioLab/K.G.One) integration! When K.G.Studio connects to a local K.G.One server, the **K.G.One Music Generator** panel (magic wand button ✦ in the toolbar) becomes available with three AI-powered tools: **Full Song Generation** (powered by ACE-Step 1.5 — generate full-length songs from text prompts), **Clip Generation** (powered by Foundation-1 — generate instrument clips and MIDI loops from text), and **Stem Separation** (powered by python-audio-separator — split any audio into vocals, instrumentals, and more). Generated audio and MIDI can be previewed instantly and dragged directly onto your tracks. K.G.One runs entirely on your own machine (Windows/Linux, CUDA GPU required); see the [K.G.One repository](https://github.com/KGAudioLab/K.G.One) for setup instructions.
- **2026.04.11**: Migrated project storage from IndexedDB to OPFS (Origin Private File System) with a folder-based structure for better media file handling. Added audio track support with WAV/MP3 import, playback, looping, and non-destructive region trimming. Added bounce-to-WAV/MP3 export via offline rendering.
- **2026.04.05**: Migrated the AI agent from XML-based tool calling to native OpenAI SDK function calling for improved reliability and compatibility. Added new LLM model options including GPT-5.4 series.
- **2026.01.23**: Implemented seamless loop playback! Drag on the bar numbers to set loop range, or toggle loop mode with the Loop button in the toolbar. Loop playback uses `Tone.js`'s native looping for sample-accurate, gap-free looping.
@@ -52,10 +66,12 @@ This project investigates how AI-human collaboration can enhance creative music-
- [Click here to get a free OpenRouter API Key](https://openrouter.ai/keys) (you may need an OpenRouter account).
- In **Settings ⚙️ → General → LLM Provider**, select **OpenAI Compatible**.
- In **OpenAI Compatible Server → Key**, paste your key. (Note: on non‑localhost, your key isn't persisted by default for security; you can enable "Persist API Keys on Non-Localhost" in Settings to persist them, though this may increase XSS risk.)
- - In **OpenAI Compatible Server → Model**, enter `qwen/qwen3.6-plus:free`. (Note: this is a free model [qwen3.6-plus](https://openrouter.ai/qwen/qwen3.6-plus:free); non‑free models may require billing; free model providers may collect your data, check the model page for details; this project is not affiliated with OpenRouter or any model provider.)
+ - In **OpenAI Compatible Server → Model**, enter `openai/gpt-oss-120b:free`. (Note: this is a free model; non‑free models may require billing; free model providers may collect your data, check the model page for details; this project is **not** affiliated with OpenRouter or any model provider.)
- In **OpenAI Compatible Server → Base URL**, enter `https://openrouter.ai/api/v1`.
-(Alternatively, you can use the official OpenAI API, other OpenAI‑compatible services, or your own hosted LLM server. e.g., Ollama, vLLM)
+**Tips:**
+- You can also use the official OpenAI API, other OpenAI-compatible services, or a self-hosted LLM server (e.g., Ollama, vLLM). Note that model quality varies — not all models perform equally well for music editing tasks. For local hosting, we recommend `qwen3.5-35b-a3b` as a good balance between generation quality and hardware requirements.
+- If you have an active subscription with OpenAI or another LLM provider, you can use [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) to run a local proxy server that routes requests through your existing subscription, without needing a separate API key.
### Basic DAW operations
- Double‑click (or hold Ctrl/Cmd and click) on a track to create a region.
@@ -220,7 +236,10 @@ OpenRouter is a platform that provides unified access to a wide range of languag
5. Enter your chosen model name in **OpenAI Compatible Server → Model**. Recommended model series include:
- `Anthropic: Claude Sonnet 4.6` (`anthropic/claude-sonnet-4.6`: [Link](https://openrouter.ai/anthropic/claude-sonnet-4.6)) — best balance of quality and cost for the Claude series
- `Qwen: Qwen3.5-35B-A3B` (`qwen/qwen3.5-35b-a3b`: [Link](https://openrouter.ai/qwen/qwen3.5-35b-a3b)) — recommended open source model
- - `Qwen: Qwen3.6 Plus` (FREE MODEL: `qwen/qwen3.6-plus:free`: [Link](https://openrouter.ai/qwen/qwen3.6-plus:free)) — recommended free model; note that free model providers may collect your data, check the model page for details
+ - `Qwen: Qwen3-Next-80B-A3B` (FREE MODEL: `qwen/qwen3-next-80b-a3b-instruct:free`: [Link](https://openrouter.ai/qwen/qwen3-next-80b-a3b-instruct:free)) — recommended free model
+ - `OpenAI: GPT-OSS 120B` (FREE MODEL: `openai/gpt-oss-120b:free`: [Link](https://openrouter.ai/openai/gpt-oss-120b:free)) — recommended free model
+ - Note: free model providers may collect your data; check the model page for details before use
+ - Note: free model availability changes frequently — for the latest free options, visit the [OpenRouter Models Page](https://openrouter.ai/models) and use the **Prompt Pricing** filter to find currently free models
6. Input the base URL `https://openrouter.ai/api/v1` **OpenAI Compatible Server → Base URL**.
### About the agent and LLM providers
@@ -231,6 +250,53 @@ For security, when using K.G.Studio from a non‑local host, API keys are not pe
K.G.Studio does not provide or host any of the models listed above, nor is it affiliated with any model provider. All data is stored locally on your device; K.G.Studio does not collect or transmit your data. You are solely responsible for any data you provide to third‑party model providers.
+## K.G.One Music Generator
+
+> **Requires [K.G.One Music Studio](https://github.com/KGAudioLab/K.G.One) integration.** The K.G.One Music Generator panel is only available when K.G.Studio is connected to a running K.G.One server. See the [K.G.One repository](https://github.com/KGAudioLab/K.G.One) for setup instructions.
+
+The **K.G.One Music Generator** panel provides three GPU-accelerated AI tools for music generation and audio processing. Click the **✦ (magic wand)** button in the toolbar to open it. The panel is mutually exclusive with the AI Assistant chatbox — opening one will close the other.
+
+> **Note:** The first time you use each tool, the server needs to load the corresponding AI model, which can take 60 seconds or longer depending on your hardware. Switching between tabs may also trigger a model reload.
+
+### Full Song Generation
+
+Generate a complete, full-length song from a text description and optional lyrics. Powered by [ACE-Step 1.5](https://github.com/ace-step/ACE-Step-1.5).
+
+- In the **Full Song** tab, enter a **Caption** describing the desired style, mood, tempo, instrumentation, and structure in natural language. For example: `Genre: Eurodance, 90s dance-pop, upbeat electronic. Tempo: ~130 BPM. Instrumentation: driving kick drum, eurodance bassline...`
+- Optionally, enter **Lyrics**. Use `[Intro]`, `[Verse]`, `[Chorus]`, `[Bridge]` tags to mark sections. Check **Instrumental** to skip vocals entirely.
+- Click **Generate Song**. A progress indicator shows the generation stage and percentage in real time.
+- Once complete, a preview player appears. Drag it onto an **audio track** to import the song as a region.
+- Dropping onto a MIDI track is not supported for full song generation.
+- **Advanced Settings** (expandable): Inference Steps, Guidance Scale, Seed, and Thinking (CoT metadata generation).
+
+### Clip Generation
+
+Generate short instrument clips and MIDI loops from text descriptions. Powered by [Foundation-1](https://huggingface.co/RoyalCities/Foundation-1).
+
+- In the **Clip** tab, enter a **Prompt** describing the clip using comma-separated tags covering instrument family, sub-type, timbre, effects, length, BPM, and key. For example: `Gritty, Acid, Bassline, 303, Synth Lead, FM, Sub, High Reverb, 8 Bars, 140 BPM, E minor`
+- Optionally, enter a **Negative Prompt** to steer the generation away from unwanted characteristics (e.g. `distortion, noise`).
+- Select **Bars**: 4 or 8. The BPM and key signature are pre-filled from your project settings and can be adjusted in **Advanced Settings**.
+- Click **Generate Clip**. Once complete, a preview player appears with a drag handle on the left and a download button on the right.
+- **To import**: drag the player onto a track on the timeline.
+ - Drop onto an **audio track** to import as a WAV audio region (recommended).
+ - Drop onto a **MIDI track** to import as a MIDI region. Note that the MIDI is transcribed from the audio and may not be perfectly accurate.
+- **Advanced Settings** (expandable): Note, Scale, BPM, Steps, CFG Scale, Seed (`-1` for random), Sampler Type, Sigma Min/Max, and CFG Rescale.
+
+### Stem Separation
+
+Split an existing audio region into individual stems (e.g. vocals, instruments, drums). Powered by [python-audio-separator (UVR5)](https://github.com/nomadkaraoke/python-audio-separator).
+
+- **Select an audio region** on the timeline before opening this tab. The selected region and its track name are shown at the top of the **Separator** tab. Only audio regions are supported — MIDI regions cannot be separated.
+- Choose a **Separation Model**:
+ - **Vocal and Instrument (Medium Accuracy)** (`UVR-MDX-NET-Inst_HQ_3`) — fast two-stem split (vocal / instrumental).
+ - **Vocal and Instrument (High Accuracy)** (`MDX23C-8KFFT-InstVoc_HQ`) — higher-quality two-stem split, slower.
+ - **Vocal, Drums, Bass, Guitar, Piano, and Others** (`htdemucs_6s`) — full six-stem separation.
+- Click **Separate Stems**. If the selected region has a clip start offset or is trimmed, the audio is automatically sliced to match the region range before uploading.
+- Once complete, each stem appears as a labelled preview player with a drag handle. You can preview each stem individually before importing.
+- **To import stems**:
+ - Drag each stem player individually onto an **audio track** to place it where you want.
+ - Or click **Import All Stems to Timeline** to create one new audio track per stem automatically, positioned immediately below the source track and aligned to the same start beat as the original region. This is a single undoable operation.
+
## Upcoming Features
Feature priorities might change.
@@ -240,7 +306,7 @@ Feature priorities might change.
- [X] Intelligent Chord Assistant with functional harmony guidance (T/S/D)
- [ ] Support track control automations (e.g. sustain, volume, pan, etc.)
- [ ] Support MIDI control events (e.g. CC, pitch bend, etc.)
-- [ ] Support WAV audio tracks
+- [X] Support WAV audio tracks
- [ ] Filters and effects
- [ ] MCP Support
- [X] Add support for OpenAI's open source models (`gpt-oss-20b` and `gpt-oss-120b`)
diff --git a/docs/KGOne-Demo-GIF.gif b/docs/KGOne-Demo-GIF.gif
new file mode 100644
index 0000000000000000000000000000000000000000..67303484dae1b2652e1eb20ea2becd250298f19c
GIT binary patch
literal 9379997
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
z
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 |