Files
KGStudio/docs/USER_GUIDE.md
T
2025-08-11 18:37:21 -07:00

180 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# K.G.Studio User Guide
A lightweight, browserbased DAW with an AI Agent "K.G.Studio Musician Assistant". This guide walks you through setup, the interface, and everyday workflows.
## 1. Introduction
- K.G.Studio runs entirely in your browser. It provides track and region editing, a pianoroll editor, realistic instrument playback (Tone.js samplers with FluidR3 soundfonts), robust undo/redo, and project persistence.
- K.G.Studio Musician Assistant can respond to natural language prompts and execute edit tools on your behalf.
## 2. System Requirements
- Tested on Chrome, Firefox, and Safari. It should work on other modern browsers, but those are not officially tested yet.
- macOS, Windows, or Linux.
- Network access is only needed for downloading instrument sound samples and contacting your selected LLM provider.
## 3. Quick Start
- **Use the hosted app: [K.G.Studio (kgaudiolab.github.io/kgstudio)](https://kgaudiolab.github.io/kgstudio)**
- Or clone and run locally:
```bash
# Make sure you have Node.js >= 20.19.3 installed
# Clone the repository
git clone https://github.com/KGAudioLab/KGStudio {your-local-path}
cd {your-local-path}
# Install dependencies
npm install
# Run the development server
npm run dev
```
- First run:
- A welcome message will be shown on the K.G.Studio Musician Assistant chatbox, please follow the instructions to configure the LLM provider.
- Your data is stored in your browsers IndexedDB (on your device).
## 4. Data, Privacy, and Connectivity
- IndexedDB is your browsers local database for this site; it never leaves your machine and is cleared if you clear the sites data.
- Perorigin storage: IndexedDB is not shared across different hosts/origins, across different browsers, or separate browser profiles. To move or share your work, use Export (KGStudio JSON) and Import on the destination.
- K.G.Studio is fully clientside. It connects to the network only to:
- Download instrument soundfonts from the configured CDN
- Communicate with your chosen LLM provider (OpenAI or OpenAIcompatible)
- API keys are not persisted when running from a nonlocal host (to reduce XSS risk). Youll be prompted to reenter them on each start in that scenario.
- Important: While K.G.Studio does not collect your data, different LLM providers may have different dataretention policies. Review the policy of the provider you select before use.
## 5. User Interface Tour
### Toolbar
- Left
- Logo
- Project name (click to rename)
- Center (exact order)
- New, Load, Save, Export (dropdown), Import
- Undo, Redo
- Pointer tool, Pencil tool
- Copy, Paste, Delete
- Back to beginning, Play/Pause
- Piano button (open piano roll for the active/selected region)
- Right
- Transport readouts: current time | BPM | time signature | key signature
- Click time to set max bars, BPM to change BPM, time signature to change signature; key signature opens a dropdown.
- Settings (gear)
- Chat (speech bubble) — toggles the AI chatbox on the right
### Track Area
- Track info column
- Solo (S), Mute (M), volume, instrument button (piano icon)
- Settings button (to the right of the instrument button) with a Delete Track option
- Track grid
- Regions display as blocks with a header; the small pencil on the topleft of a region opens its Piano Roll.
### Instrument Selection Panel
- Appears automatically on load/first track creation, or when clicking a tracks instrument button (to the right of “M”).
- Choose instrument groups and individual instruments; a large preview is shown.
- Stays open until you close it (X) or click the same tracks instrument button again.
### Chatbox (AI Assistant)
- Docked on the right; toggle from the toolbar.
- Press Enter to send; Shift+Enter for a new line.
### Status Bar and Loading Overlay
- Status messages appear at the bottom.
- A global loading overlay shows while soundfonts are downloading.
### Piano Roll Window
- Header: close (X) on the left; title (click to rename); tools (Select, Pencil); menus on the right: NO SNAP, Qua. Pos. (quantize start), Qua. Len. (quantize length).
- ESC closes the piano roll.
## 6. Projects
- New, Save (to IndexedDB), Load (from IndexedDB by name).
- Export: KGStudio JSON, MIDI.
- Import: KGStudio JSON (replaces current project state), MIDI (appends tracks/regions into the current project).
- Legacy compatibility: projects are upgraded to the latest structure on load.
## 7. Tracks
- Add, rename, and reorder tracks.
- Change instrument (instrument button in the track info row). Real instruments are powered by Tone.Sampler and FluidR3 soundfonts.
- Solo/Mute/Volume controls for quick mixing.
- Track settings (button to the right of the instrument) provides Delete Track.
## 8. Regions
- Create regions
- Pointer tool: doubleclick; or hold Ctrl/Cmd and click
- Pencil tool: singleclick to create
- Move/resize by dragging the region or its edges; copy/paste with toolbar buttons or shortcuts.
- Delete selected regions from the toolbar delete button.
- Open Piano Roll via the regions small pencil on the topleft.
## 9. Piano Roll (MIDI Editing)
- Tools: Select vs Pencil.
- Create notes: doubleclick or Ctrl/Cmd+click (Select); singleclick (Pencil).
- Move/resize notes by dragging; boxselect or Shiftclick for multiselection.
- NO SNAP menu controls snapping for create/move/resize.
- Quantize using Qua. Pos. (start) and Qua. Len. (length) menus.
- Close with X or ESC.
## 10. Playback and Transport
- Back to beginning; Play/Pause.
- Set playhead by clicking bar numbers in the main grid; in Piano Roll, click the header timeline (respects snapping).
- Edit time/BPM/time signature/key signature via the toolbar readouts.
## 11. Undo/Redo and Clipboard
- Undo/Redo available for tracks, regions, notes, and project properties.
- Copy/Paste works for regions in the main grid and notes in the piano roll.
- Use toolbar buttons or keyboard shortcuts.
## 12. Instruments and Soundfonts
- Instruments are organized by groups (e.g., Piano & Keyboards, Strings, Brass, Woodwind, Percussion Kit, Synthesizer).
- Playback uses highquality FluidR3 soundfonts via Tone.Sampler.
- If loading stalls, the overlay will time out; refresh to retry downloading.
## 13. Settings
- General: LLM provider (OpenAI or OpenAIcompatible), API key, model, soundfont base URL.
- Behavior: chatbox default open at startup.
- Templates: custom instructions for the AI.
- Settings persist in IndexedDB (local); API keys are not persisted on nonlocal hosts.
## 14. AI Agent "K.G.Studio Musician Assistant"
- Open the chat (toolbar). Describe goals in natural language (e.g., “Can you help me write a 4bar chord progression for the melody?”).
- The agent executes tools to edit your project. Actions are typically scoped to the selected region.
- Slashcommands:
- `/clear` — clear chat history
- `/welcome` — show the welcome message
- Providers: OpenAI or OpenAIcompatible (e.g., OpenRouter). Due to CORS, some providers are supported via OpenRouter.
- Reminder: LLM providers differ in data retention and usage policies. Check your providers policy and configure keys/models accordingly.
## 15. Keyboard Shortcuts (defaults)
- Global
- Play/Pause: Space
- Undo / Redo: Ctrl/Cmd+Z / Ctrl/Cmd+Shift+Z
- Copy / Cut / Paste: Ctrl/Cmd+C / Ctrl/Cmd+X / Ctrl/Cmd+V
- Save: Ctrl/Cmd+S
- Hold to create region: Ctrl/Cmd
- Piano Roll
- Tools: Select (Q), Pencil (W)
- Hold to create note: Ctrl/Cmd
- Snap: 1(None), 2(1/4), 3(1/8), 4(1/16)
- Quantize Position: 5(1/4), 6(1/8), 7(1/16)
- Quantize Length: 8(1/4), 9(1/8), 0(1/16)
## 16. Troubleshooting
- No sound: ensure soundfonts can download; check network; try refreshing.
- Chat/LLM errors: verify provider, base URL (if compatible), API key, and model name; check CORS if using thirdparty gateways.
- MIDI import: only valid `.mid/.midi` files; malformed files will show an error.
- Performance: close unused panels; reduce concurrent soundfont loads.
## 17. FAQ
- Where are my projects saved? In your browsers IndexedDB on your device.
- Can I use the app offline? Yes, core editing works offline; instruments and AI need network when first used.
- Does the app send my projects to a server? No. Only your LLM requests go to your chosen provider.
## 18. Glossary
- Project, Track, Region, Note, Snapping, Quantize, General MIDI (GM), IndexedDB, Soundfont, LLM.
## 19. Known Limitations
- Limited note editing (no velocity editing yet)
- No region duplication shortcut
- Export UI present; audio export not implemented
- No audio recording yet; limited effects processing
- No project browser UI (load by name)
## 20. Credits and Licenses
- Licensed under Apache 2.0 with additional terms (see `LICENSE`).
- Thirdparty attributions: FluidR3_GM soundfont, midijssoundfonts, and prompt structure notes.