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

8.8 KiB
Raw Blame History

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)
  • Or clone and run locally:
    # 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.