docs: added Traditional Chinese and French README files
This commit is contained in:
+453
@@ -0,0 +1,453 @@
|
||||
[English](./README.md) | [简体中文](./README-zh_cn.md) | [繁體中文](./README-zh_hant.md) | Français
|
||||
|
||||
<div align="center">
|
||||
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
||||
</div>
|
||||
|
||||
# K.G.Studio — Une DAW basée sur le navigateur avec assistant IA
|
||||
|
||||
<div align="center">
|
||||
<h3><a href="https://kgaudiolab.github.io/kgstudio"><b>◀ Commencer à utiliser K.G.Studio en ligne dans votre navigateur ▶</b></a></h3>
|
||||
</div>
|
||||
|
||||
## Nouveau !
|
||||
|
||||
> ### ✦ [K.G.One Music Studio est disponible dès maintenant.](https://github.com/KGAudioLab/K.G.One) ✦ <br />
|
||||
> [**K.G.One Music Studio**](https://github.com/KGAudioLab/K.G.One) est une plateforme intégrée, entièrement locale et open source, construite autour de **K.G.Studio** (ce projet). Elle embarque [ACE-Step 1.5](https://github.com/ace-step/ACE-Step-1.5) pour la génération de morceaux complets, [Foundation-1](https://huggingface.co/RoyalCities/Foundation-1) pour la génération de clips audio et de boucles MIDI, ainsi que [python-audio-separator (UVR5)](https://github.com/nomadkaraoke/python-audio-separator) pour la séparation de stems, apportant directement la génération musicale IA accélérée par GPU dans votre flux de production musicale dans le navigateur.
|
||||
|
||||
## Qu'est-ce que K.G.Studio ?
|
||||
|
||||
K.G.Studio est une DAW légère et moderne qui fonctionne entièrement dans le navigateur, avec **K.G.Studio Musician Assistant** en son cœur. Il propose une lecture réaliste des instruments via les samplers Tone.js, un éditeur piano roll, une gestion des pistes et des régions avec annulation/rétablissement complets, la persistance des projets dans OPFS (Origin Private File System), un panneau de configuration personnalisable, et un assistant IA intégré avec exécution d'outils.
|
||||
|
||||
**K.G.Studio Musician Assistant** est un agent d'assistance IA pour l'harmonie, l'arrangement et l'édition de notes, mais pas pour la composition entièrement automatique.
|
||||
|
||||
<div align="center">
|
||||
<img src="./docs/KGOne-Demo-GIF.gif" alt="K.G.One Logo" width="640" />
|
||||
</div>
|
||||
|
||||
> Remarque : les fonctions de génération de morceau complet et de génération de clip audio nécessitent l'intégration de [**K.G.One Music Studio**](https://github.com/KGAudioLab/K.G.One).
|
||||
|
||||
## Dernières mises à jour
|
||||
|
||||
- **2026.05.30** : ajout de la **prise en charge de l'internationalisation (i18n)** — K.G.Studio est désormais disponible en quatre langues : **English**, **Simplified Chinese (简体中文)**, **Traditional Chinese (繁體中文)** et **Français**. La langue active se configure dans **Réglages ⚙️ → Général → Langue**, avec une option `Auto` qui détecte automatiquement la langue de votre navigateur.
|
||||
|
||||
- **2026.05.27** :
|
||||
- Ajout du **système de pistes globales** : introduction de quatre pistes globales, **Marker**, **Tempo**, **Key Signature** et **Chord** (régions d'étendue avec symboles d'accords).
|
||||
- Ajout de la fonction **Audio Chord Detection** : ouvrez la fenêtre piano roll pour une région audio ou MIDI, puis cliquez sur « ... » -> **Detect Chords** pour analyser automatiquement l'enregistrement et remplir la Chord Track à l'aide d'un pipeline FFT sans dépendance, avec sensibilité, stabilité et détection des accords de septième configurables.
|
||||
- Ajout de la fonction **Tempo Detection with Auto-Align Beats** : ouvrez la fenêtre piano roll pour une région audio, puis cliquez sur « ... » -> **Detect Tempo** dans la barre d'outils pour analyser le BPM de l'audio et, si vous le souhaitez, réaligner les régions de la Tempo Track du projet.
|
||||
- Ajout de **Demucs 4S** comme second modèle local de séparation de stems intégré au navigateur. En plus du modèle UVR-MDX-NET à deux stems existant, le modèle `htdemucs_4s` à quatre stems (~172 MB, vocals / drums / bass / others) est désormais disponible, les deux s'exécutant entièrement dans le navigateur via ONNX Runtime WebGPU.
|
||||
|
||||
- **2026.05.15** : ajout de **modèles IA intégrés au navigateur**. Deux modèles IA peuvent désormais fonctionner entièrement dans le navigateur, sans service externe, sans clé API, et sans serveur K.G.One. **K.G.Studio Musician Assistant** gagne un nouveau fournisseur **Local LLM (Browser)** basé sur **Gemma 4 E4B** via LiteRT-LM avec accélération WebGPU ; le modèle est téléchargé une fois puis mis en cache dans OPFS pour des lancements ultérieurs quasi instantanés, avec longueur de contexte configurable (32 k / 64 k / 128 k tokens) et statistiques de performance d'inférence en direct. La **séparation de stems** fonctionne désormais aussi localement grâce à un modèle ONNX **UVR-MDX-NET-Inst_HQ_3** intégré au navigateur avec accélération WebGPU. Ouvrez le panneau **Music Generator** (bouton ✦), téléchargez le modèle une fois, puis séparez voix et accompagnement entièrement sur votre appareil. Les deux fonctions nécessitent un navigateur compatible WebGPU (Chrome 113+ ou Edge 113+) et un contexte sécurisé (HTTPS ou localhost). Matériel recommandé : un GPU avec au moins 8 GB de VRAM ou un système avec au moins 16 GB de mémoire unifiée.
|
||||
|
||||
- **2026.05.10** : ajout de la **vue en notation musicale (sheet music)**. Le piano roll propose désormais un mode complet de notation standard. Basculez entre les vues Piano Roll et Sheet Music à l'aide du bouton dans la barre d'outils du piano roll. En mode partition, les notes sont gravées via VexFlow avec sélection automatique de la clé (sol ou fa) selon l'instrument actif, affichage de l'armure, groupement automatique des crochets, liaisons entre mesures et quantification configurable pour la résolution des valeurs de notes. Activez **Track Scope** pour afficher toutes les régions MIDI de la piste comme une partition continue plutôt qu'une seule région isolée.
|
||||
|
||||
- **2026.05.09** : ajout de **l'enregistrement audio**. Vous pouvez désormais enregistrer directement depuis votre microphone dans une piste audio. Un aperçu de forme d'onde en direct se développe en temps réel pendant l'enregistrement, et la région est ajoutée à la timeline comme région audio standard à l'arrêt. Ajout également de la **sélection des périphériques audio I/O** dans les paramètres afin de choisir votre entrée micro et votre sortie audio préférées.
|
||||
|
||||
- **2026.05.08** : ajout de **l'automation MIDI**. Vous pouvez dessiner et modifier des courbes de pitch bend et de MIDI CC (CC1 Modulation, CC2 Breath, CC7 Volume, CC11 Expression, CC64 Sustain) dans une lane d'automation éditable sous la grille piano. Ajout de **l'automation au niveau de la piste** : chaque piste dispose désormais d'un panneau d'automation dédié où vous pouvez voir et modifier les mêmes courbes directement sur la timeline. Les entrées de contrôleurs MIDI en temps réel (pitch wheel, pédales CC) sont enregistrées et relues avec interpolation par lane. Ajout du **panneau Event List** : une barre latérale à onglets (Notes / Pitch Bend / Controller) pour inspecter et modifier en ligne tous les événements de la région MIDI active. Ajout également de la **sélection multiple de régions** avec lasso et déplacement/redimensionnement de groupe, ainsi que de la **fusion de régions MIDI**.
|
||||
<div align="center">
|
||||
<img src="./public/snapshots/2026-05-08-automations.png" alt="K.G.Studio Logo" width="640" />
|
||||
</div>
|
||||
|
||||
- **2026.05.02** : ajout de la **visualisation spectrogramme des pistes audio**. Les régions audio affichent désormais une superposition de spectrogramme en temps réel dans la grille des pistes. Ajout du **Piano Roll hybrid mode** : ouvrez le piano roll sur une région MIDI pendant que le spectrogramme d'une région audio voisine est affiché comme couche de référence, afin d'éditer les notes MIDI en fonction de la forme visuelle de l'audio. Ajout du **zoom avant/arrière dans le piano roll** avec conservation de la position de la vue pour qu'elle reste ancrée près de la tête de lecture actuelle. Ajout également du **réglage fin de la position des régions** avec petits incréments pour un placement précis. Enfin, ajout de la synchronisation du défilement de la tête de lecture entre composants afin que la grille principale et le piano roll restent synchronisés pendant la lecture.
|
||||
- **2026.04.29** : ajout de **Remix** et **Repaint** au panneau K.G.One Music Generator (alimenté par ACE-Step 1.5). **Remix** vous permet de refaire une région audio existante dans un nouveau style : sélectionnez une région audio, décrivez le style cible et fournissez éventuellement de nouvelles paroles, et ACE-Step réinterprétera le morceau avec l'instrumentation et l'ambiance demandées. **Repaint** vous permet de régénérer de façon chirurgicale une section précise d'un morceau : définissez une plage de boucle sur la timeline pour créer la fenêtre de repaint, puis décrivez le résultat souhaité pour cette section ; le reste du morceau reste inchangé. Les deux outils prennent en charge le même flux d'import que les autres onglets K.G.One : prévisualisation dans le lecteur intégré, glisser-déposer sur une piste, ou clic sur **Import Aligned to Source** pour placer automatiquement le résultat sous la région d'origine dans une nouvelle piste.
|
||||
- **2026.04.24** : ajout de l'intégration [**K.G.One Music Studio**](https://github.com/KGAudioLab/K.G.One) ! Lorsque K.G.Studio se connecte à un serveur K.G.One local, le panneau **K.G.One Music Generator** (bouton baguette magique ✦ dans la barre d'outils) devient disponible avec trois outils alimentés par l'IA : **Full Song Generation** (alimenté par ACE-Step 1.5 pour générer des chansons complètes à partir de prompts textuels), **Clip Generation** (alimenté par Foundation-1 pour générer des clips instrumentaux et des boucles MIDI à partir de texte), et **Stem Separation** (alimenté par python-audio-separator pour séparer n'importe quel audio en voix, instrumentaux, etc.). Les audios et MIDI générés peuvent être prévisualisés instantanément et glissés directement sur vos pistes. K.G.One fonctionne entièrement sur votre propre machine (Windows/Linux, GPU CUDA requis) ; consultez le [dépôt K.G.One](https://github.com/KGAudioLab/K.G.One) pour les instructions d'installation.
|
||||
- **2026.04.11** : migration du stockage des projets depuis IndexedDB vers OPFS (Origin Private File System) avec une structure basée sur des dossiers, afin de mieux gérer les fichiers médias. Ajout de la prise en charge des pistes audio avec import WAV/MP3, lecture, boucle et découpe non destructive des régions. Ajout également de l'export bounce vers WAV/MP3 via rendu hors ligne.
|
||||
- **2026.04.05** : migration de l'agent IA, passant d'un appel d'outils basé sur XML au function calling natif du SDK OpenAI afin d'améliorer la fiabilité et la compatibilité. Ajout de nouvelles options de modèles LLM, y compris la série GPT-5.4.
|
||||
- **2026.01.23** : implémentation de la lecture en boucle sans couture ! Faites glisser sur les numéros de mesure pour définir une plage de boucle, ou activez le mode boucle avec le bouton Loop dans la barre d'outils. La lecture en boucle utilise la fonctionnalité native de boucle de `Tone.js` pour une boucle précise au niveau de l'échantillon et sans coupure.
|
||||
- **2025.12.21** : implémentation de la prise en charge du clavier MIDI ! Vous pouvez désormais connecter un clavier MIDI et l'utiliser pour jouer des sons. Veuillez noter que cette fonction peut ne pas fonctionner de manière optimale dans Safari et certains autres navigateurs ne prenant pas entièrement en charge l'interface Web MIDI.
|
||||
- **2025.12.15** : ajout de l'assistant d'accords intelligent avec guidage harmonique fonctionnel (T/S/D). Survolez les touches du piano pour voir des suggestions d'accords adaptées au contexte et créer des accords complets en un clic !
|
||||
|
||||
## État du projet
|
||||
|
||||
**K.G.Studio est un projet expérimental encore en phase de développement précoce.** Nous explorons les possibilités d'intégrer des agents IA et des LLM dans les flux de production musicale, en construisant essentiellement une expérience de type « Cursor ou Claude Code pour DAW ».
|
||||
|
||||
Ce projet étudie comment la collaboration entre l'IA et l'humain peut enrichir la création musicale, depuis les suggestions harmoniques intelligentes jusqu'aux tâches d'édition automatisées. En tant que plateforme expérimentale, attendez-vous à des changements fréquents, des fonctionnalités en évolution et une instabilité occasionnelle au fur et à mesure que nous repoussons les limites de la production musicale assistée par l'IA.
|
||||
|
||||
## Vidéos de démonstration
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://youtu.be/F1JWjK84zwc" target="_blank">
|
||||
<img src="./public/demo/demo-cover.png" alt="K.G.One Music Studio" width="400"/>
|
||||
</a>
|
||||
<br><b>K.G.One Music Studio</b>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://youtu.be/FXgihfAH2vc" target="_blank">
|
||||
<img src="./public/demo/cover-FXgihfAH2vc.png" alt="Short Demo" width="400"/>
|
||||
</a>
|
||||
<br><b>Démo courte (DAW uniquement)</b>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://youtu.be/vKbWAQRt0r0" target="_blank">
|
||||
<img src="./public/demo/cover-vKbWAQRt0r0.png" alt="Full Demo" width="400"/>
|
||||
</a>
|
||||
<br><b>Démo complète (DAW uniquement)</b>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
## Démarrage rapide
|
||||
|
||||
### Configurer K.G.Studio Musician Assistant
|
||||
|
||||
Il existe deux façons d'utiliser K.G.Studio Musician Assistant : **Local LLM (Browser)**, qui s'exécute entièrement dans votre navigateur sans clé API, sans coût et sans que les données quittent votre appareil, ou un **fournisseur LLM externe** pour obtenir des réponses de meilleure qualité.
|
||||
|
||||
#### Option A : Local LLM (Browser) — Aucune clé API requise ✦
|
||||
|
||||
K.G.Studio peut exécuter **Gemma 4 E4B** directement dans votre navigateur grâce à l'accélération WebGPU. Aucun appel API n'est effectué, aucun coût n'est engagé et vos données ne quittent jamais votre machine.
|
||||
|
||||
- Cliquez ici pour commencer à utiliser l'application en ligne : [K.G.Studio (kgaudiolab.github.io/kgstudio)](https://kgaudiolab.github.io/kgstudio)
|
||||
- Dans **Settings ⚙️ → General → LLM Provider**, sélectionnez **Local LLM (Browser)** (option par défaut).
|
||||
- Le modèle (~2.8 GB) se télécharge automatiquement la première fois que vous ouvrez le chat et est mis en cache dans l'OPFS (Origin Private File System) de votre navigateur pour des lancements ultérieurs quasi instantanés.
|
||||
- Vous pouvez également configurer la **Context Length** (32k / 64k / 128k tokens) ; des valeurs plus élevées nécessitent davantage de VRAM.
|
||||
- Commencez à discuter ! Pas de clé, pas de compte, pas de trafic réseau après le téléchargement initial du modèle.
|
||||
|
||||
**Conditions pour Local LLM :** un navigateur compatible WebGPU (Chrome 113+ ou Edge 113+) exécuté dans un contexte sécurisé (HTTPS ou localhost). Matériel recommandé : un GPU avec au moins 8 GB de VRAM, ou un système avec au moins 16 GB de mémoire unifiée.
|
||||
|
||||
> **Remarque :** la qualité du modèle local ne peut pas être comparée à celle des modèles commerciaux de type GPT ou Claude. Pour des tâches d'édition musicale complexes, un fournisseur externe produira en général de meilleurs résultats.
|
||||
|
||||
#### Option B : Fournisseur LLM externe (meilleure qualité)
|
||||
|
||||
- Cliquez ici pour commencer à utiliser l'application en ligne : [K.G.Studio (kgaudiolab.github.io/kgstudio)](https://kgaudiolab.github.io/kgstudio)
|
||||
- [Cliquez ici pour obtenir une clé API OpenRouter gratuite](https://openrouter.ai/keys) (vous pouvez avoir besoin d'un compte OpenRouter).
|
||||
- Dans **Settings ⚙️ → General → LLM Provider**, sélectionnez **OpenAI Compatible**.
|
||||
- Dans **OpenAI Compatible Server → Key**, collez votre clé. (Remarque : hors localhost, votre clé n'est pas persistée par défaut pour des raisons de sécurité ; vous pouvez activer « Persist API Keys on Non-Localhost » dans les paramètres pour la persister, mais cela peut augmenter le risque XSS.)
|
||||
- Dans **OpenAI Compatible Server → Model**, saisissez `openai/gpt-oss-120b:free`. (Remarque : il s'agit d'un modèle gratuit ; les modèles non gratuits peuvent nécessiter une facturation ; les fournisseurs de modèles gratuits peuvent collecter vos données, consultez la page du modèle pour plus de détails ; ce projet **n'est pas** affilié à OpenRouter ni à aucun fournisseur de modèles.)
|
||||
- Dans **OpenAI Compatible Server → Base URL**, saisissez `https://openrouter.ai/api/v1`.
|
||||
|
||||
**Conseils :**
|
||||
- Vous pouvez également utiliser l'API officielle d'OpenAI, d'autres services compatibles OpenAI, ou un serveur LLM auto-hébergé (par exemple Ollama, vLLM). Notez que la qualité des modèles varie : tous les modèles ne sont pas aussi performants pour les tâches d'édition musicale. Pour l'hébergement local, nous recommandons `qwen3.5-35b-a3b` comme bon équilibre entre qualité de génération et exigences matérielles.
|
||||
- Si vous disposez d'un abonnement actif chez OpenAI ou chez un autre fournisseur LLM, vous pouvez utiliser [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) pour exécuter un serveur proxy local qui achemine les requêtes via votre abonnement existant, sans nécessiter de clé API séparée.
|
||||
|
||||
### Opérations DAW de base
|
||||
- Double-cliquez (ou maintenez Ctrl/Cmd et cliquez) sur une piste pour créer une région.
|
||||
- Faites glisser les bords de la région pour la redimensionner ; faites glisser son corps pour la déplacer.
|
||||
- Cliquez sur le petit crayon en haut à gauche d'une région pour ouvrir le piano roll.
|
||||
- Dans le piano roll, double-cliquez (ou Ctrl/Cmd+clic) pour créer une note.
|
||||
- Cliquez pour sélectionner ; Shift+clic pour la multi-sélection ; glissez pour faire une sélection rectangulaire.
|
||||
- Faites glisser les bords de la note pour la redimensionner ; faites glisser le corps de la note pour déplacer les notes sélectionnées.
|
||||
- Utilisez Snapping dans la barre d'outils du piano roll (en haut à droite) pour quantifier sur la grille.
|
||||
|
||||
### Utiliser K.G.Studio Musician Assistant
|
||||
- Sélectionnez la région musicale sur laquelle vous souhaitez que l'assistant travaille, saisissez votre prompt dans le chat ; appuyez sur Enter pour envoyer, Shift+Enter pour insérer une nouvelle ligne.
|
||||
- L'agent traitera automatiquement votre demande et invoquera des outils pour effectuer des modifications limitées à la région sélectionnée. Une tâche peut nécessiter un ou plusieurs tours pour être accomplie.
|
||||
- Notez que l'IA peut se tromper ; vous devez donc toujours vérifier le résultat et l'ajuster si nécessaire. Vous pouvez également utiliser annulation/rétablissement pour revenir sur les changements.
|
||||
- Cliquez sur le bouton « + » ou utilisez la commande `/clear` pour effacer l'historique du chat.
|
||||
|
||||
### Plus de détails
|
||||
|
||||
Vous trouverez le guide utilisateur détaillé [ici](./docs/USER_GUIDE.md).
|
||||
|
||||
### Points forts
|
||||
- **K.G.Studio Musician Assistant** : discutez avec l'agent IA alimenté par un LLM ; il exécute automatiquement des outils pour effectuer des modifications musicales dans la région sélectionnée.
|
||||
- **LLM intégré au navigateur — aucune clé API requise** : exécutez **Gemma 4 E4B** entièrement dans votre navigateur via WebGPU (LiteRT-LM). Aucun appel API, aucun coût, aucune donnée quittant votre appareil. Le modèle est téléchargé une fois et mis en cache localement.
|
||||
- **Séparation de stems intégrée au navigateur — aucun serveur requis** : séparez n'importe quelle région audio en stems avec **UVR-MDX-NET-Inst_HQ_3** (2 stems : Vocals / Instrumental) ou **Demucs htdemucs_4s** (4 stems : Vocals / Drums / Bass / Others), tous deux entièrement exécutés dans le navigateur via ONNX Runtime WebGPU, sans serveur K.G.One.
|
||||
- **Détection d'accords audio** : ouvrez le piano roll sur une région audio et lancez **Detect Chords** pour analyser automatiquement l'enregistrement et remplir la Chord Track globale avec un pipeline FFT sans dépendance, avec sensibilité, stabilité et détection des accords de septième configurables.
|
||||
- **Détection de tempo avec alignement automatique des temps** : lancez **Detect Tempo** depuis la barre d'outils du piano roll pour analyser le BPM d'une région audio et, si vous le souhaitez, réaligner la Tempo Track du projet.
|
||||
- **Système de pistes globales** : quatre pistes globales persistantes — **Marker**, **Tempo**, **Key Signature** et **Chord** — fournissent une structure à l'échelle du projet à laquelle toutes les fonctions (timing de lecture, détection d'accords, notation musicale) se réfèrent.
|
||||
- **Intégration K.G.One Music Studio** : lorsqu'il est connecté à un serveur local [K.G.One](https://github.com/KGAudioLab/K.G.One), vous débloquez la **Full Song Generation** accélérée par GPU (ACE-Step 1.5), la **Clip & MIDI Loop Generation** (Foundation-1) et des modèles supplémentaires de **Stem Separation**.
|
||||
- **Plusieurs fournisseurs LLM** : OpenAI, Claude / Gemini (via OpenRouter), services compatibles OpenAI (Ollama, vLLM, etc.), ou Local Browser LLM intégré — sans clé requise.
|
||||
- **Édition de pistes et de régions** : ajouter/réordonner des pistes, créer/déplacer/redimensionner des régions, multi-sélection avec lasso, déplacement/redimensionnement de groupe, fusion et scission de régions, avec annulation/rétablissement complet.
|
||||
- **Piano roll** : notes, pitch bend et lanes d'automation MIDI CC ; vue de notation musicale (sheet music) via VexFlow ; superposition de spectrogramme pour la référence audio-vers-MIDI.
|
||||
- **Vrais instruments** : sampler basé sur Tone.js avec soundfonts FluidR3 de haute qualité. Enregistrez directement l'audio depuis votre microphone vers une piste audio.
|
||||
- **Assistant d'accords intelligent** : suggestions d'accords en temps réel basées sur l'harmonie fonctionnelle (T/S/D), avec aperçu visuel et création d'accord en un clic.
|
||||
- **Persistance avec confidentialité** : projets et configuration enregistrés entièrement dans votre navigateur (OPFS / IndexedDB). Aucun serveur propriétaire.
|
||||
|
||||
Pour une vue technique plus approfondie, voir [overview.md](./docs/technical/overview.md).
|
||||
|
||||
## Premiers pas
|
||||
|
||||
### Ou cloner et exécuter localement :
|
||||
```bash
|
||||
# Assurez-vous d'avoir Node.js >= 20.19.3 installé
|
||||
# Cloner le dépôt
|
||||
git clone https://github.com/KGAudioLab/KGStudio {your-local-path}
|
||||
cd {your-local-path}
|
||||
|
||||
# Installer les dépendances
|
||||
npm install
|
||||
|
||||
# Lancer le serveur de développement
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
K.G.Studio charge ses valeurs par défaut depuis `./public/config.json` (avec une valeur de secours interne) et persiste les modifications utilisateur dans le navigateur via `ConfigManager` + IndexedDB. IndexedDB est la base de données locale propre à votre navigateur, stockée sur votre appareil ; elle ne quitte pas votre machine et est effacée si vous supprimez les données de ce site. Modifiez les paramètres via le panneau Settings intégré à l'application.
|
||||
|
||||
- **General**
|
||||
- Fournisseur LLM : OpenAI, ou compatible OpenAI
|
||||
- Clés API et modèles pour le fournisseur sélectionné
|
||||
- Persist API Keys on Non-Localhost : permet de persister les clés API dans des environnements non localhost (option de sécurité volontaire, non recommandée pour les environnements partagés ou de production)
|
||||
- Base URL compatible OpenAI (pour les passerelles auto-hébergées)
|
||||
- Base URL des soundfonts (CDN pour les échantillons d'instruments)
|
||||
- **Behavior**
|
||||
- Ouverture du chat par défaut au démarrage
|
||||
- **Templates**
|
||||
- Instructions personnalisées utilisées par l'assistant IA
|
||||
|
||||
### Connectivité et confidentialité
|
||||
|
||||
- K.G.Studio fonctionne entièrement côté client. Aucun serveur propriétaire n'est nécessaire pour faire fonctionner l'application.
|
||||
- Les projets et fichiers audio sont stockés dans l'OPFS (Origin Private File System) de votre navigateur ; la configuration est stockée dans IndexedDB. Toutes les données restent sur votre appareil.
|
||||
- L'accès réseau est utilisé uniquement pour :
|
||||
- télécharger les échantillons d'instruments depuis le CDN de soundfonts configuré
|
||||
- communiquer avec le fournisseur LLM que vous avez choisi (par exemple OpenAI ou des services compatibles OpenAI)
|
||||
- En dehors de ces deux cas, l'application fonctionne localement. Si vous bloquez ces points d'accès, l'application se charge toujours ; la lecture des instruments et les fonctions IA ne fonctionneront pas tant que l'accès réseau ne sera pas rétabli.
|
||||
- Pour des raisons de sécurité, lorsque l'application est exécutée depuis un hôte non local, nous ne persistons pas votre clé API dans IndexedDB par défaut (afin de réduire le risque XSS). Vous devrez la saisir à chaque démarrage de K.G.Studio. Pour activer la persistance sur des hôtes non locaux, activez « Persist API Keys on Non-Localhost » dans les paramètres (non recommandé pour les environnements partagés ou de production).
|
||||
|
||||
## Utiliser l'application
|
||||
|
||||
Vous trouverez le guide utilisateur détaillé [ici](./docs/USER_GUIDE.md).
|
||||
|
||||
- Pistes
|
||||
- Ajoutez, renommez et réordonnez les pistes depuis le panneau d'informations des pistes.
|
||||
- Changez d'instrument avec le bouton d'instrument (icône de piano) ; ajustez Solo (S), Mute (M) et Volume.
|
||||
- Supprimez une piste depuis le menu des paramètres de la piste (bouton à droite de l'instrument).
|
||||
|
||||
- Régions
|
||||
- Créer une région : avec l'outil Pointer, double-cliquez ; ou maintenez Ctrl/Cmd et cliquez. Avec l'outil Pencil, cliquez une seule fois.
|
||||
- Déplacer/redimensionner : faites glisser le corps pour déplacer ; faites glisser les bords pour redimensionner.
|
||||
- Ouvrez le Piano Roll via le petit crayon en haut à gauche d'une région.
|
||||
|
||||
- Piano Roll (notes MIDI)
|
||||
- Outils : Select vs Pencil.
|
||||
- Créer des notes : double-cliquez ou Ctrl/Cmd+clic (Select) ; clic simple (Pencil).
|
||||
- Sélectionner des notes : clic ; Shift+clic pour la multi-sélection ; glisser pour la sélection rectangulaire.
|
||||
- Déplacer/redimensionner : faites glisser le corps de la note pour déplacer les notes sélectionnées ; faites glisser les bords pour redimensionner.
|
||||
- **Vue en notation musicale** : basculez entre les vues Piano Roll et Staff Notation depuis la barre d'outils du piano roll. Prend en charge la sélection automatique de la clé, l'affichage de l'armure, le groupement des crochets, les liaisons et la quantification configurable. Activez **Track Scope** pour afficher toutes les régions de la piste comme une partition continue.
|
||||
- **Lanes d'automation** : dessinez et modifiez des courbes de pitch bend et de MIDI CC (Modulation, Breath, Volume, Expression, Sustain) dans la lane éditable sous la grille piano.
|
||||
- **Mode spectrogramme** : affichez le spectrogramme d'une région audio dans le piano roll comme couche de référence pendant l'édition des notes MIDI.
|
||||
- Fermez le piano roll avec X ou ESC.
|
||||
|
||||
- Intelligent Chord Assistant (ajouté le 2025-12-15)
|
||||
- Activez le guide d'accords depuis la barre d'outils du piano roll : sélectionnez la fonction T (Tonic), S (Subdominant) ou D (Dominant).
|
||||
- Survolez n'importe quelle touche pour voir les suggestions d'accords adaptées au contexte, mises en évidence en rouge, en accord avec l'armure et le mode sélectionnés.
|
||||
- Appuyez sur Tab pour faire défiler différents renversements d'accords pour la même fonction harmonique.
|
||||
- Double-cliquez (ou Ctrl/Cmd+clic) sur un accord surligné pour créer toutes les notes d'un coup.
|
||||
- La longueur de l'accord correspond automatiquement à la dernière longueur de note modifiée pour conserver un rythme cohérent.
|
||||
|
||||
- Snapping et quantification
|
||||
- Définissez le snapping depuis le menu NO SNAP (en haut à droite).
|
||||
- Quantifiez le timing avec Qua. Pos. (début) et Qua. Len. (longueur).
|
||||
|
||||
- Lecture et tête de lecture
|
||||
- Retour au début ; lecture/pause depuis la barre d'outils.
|
||||
- Placez la tête de lecture en cliquant sur les numéros de mesure dans la grille principale ; dans Piano Roll, cliquez sur l'en-tête de la timeline (respecte le snapping).
|
||||
- Modifiez le BPM, la signature rythmique et la tonalité via les indicateurs de la barre d'outils.
|
||||
|
||||
## Raccourcis clavier
|
||||
|
||||
- Principal
|
||||
- Lecture/Pause : Space
|
||||
- Annuler / Rétablir : Ctrl/Cmd+Z / Ctrl/Cmd+Shift+Z
|
||||
- Copier / Couper / Coller : Ctrl/Cmd+C / Ctrl/Cmd+X / Ctrl/Cmd+V
|
||||
- Sauvegarder : Ctrl/Cmd+S
|
||||
- Maintenir pour créer une région : Ctrl/Cmd
|
||||
- Piano Roll
|
||||
- Outils : Select (Q), Pencil (W)
|
||||
- Maintenir pour créer une note : Ctrl/Cmd
|
||||
- Snap : 1(None), 2(1/4), 3(1/8), 4(1/16)
|
||||
- Quantification de position : 5(1/4), 6(1/8), 7(1/16)
|
||||
- Quantification de longueur : 8(1/4), 9(1/8), 0(1/16)
|
||||
|
||||
## Assistant IA
|
||||
|
||||
### Utiliser K.G.Studio Musician Assistant
|
||||
|
||||
- Assurez-vous d'avoir suivi la section précédente pour configurer le fournisseur LLM.
|
||||
- Vous trouverez la zone de chat de K.G.Studio Musician Assistant à droite. Si vous ne la voyez pas, cliquez sur le bouton Chat 🗨️ dans la barre d'outils.
|
||||
- Sélectionnez la région sur laquelle vous souhaitez que l'assistant travaille, saisissez votre prompt dans le chat ; appuyez sur Enter pour envoyer, Shift+Enter pour insérer une nouvelle ligne.
|
||||
- L'agent traitera automatiquement votre demande et invoquera des outils pour effectuer des modifications limitées à la région sélectionnée. Une tâche peut nécessiter un ou plusieurs tours pour être accomplie.
|
||||
- Notez que l'IA peut se tromper ; vous devez donc toujours vérifier le résultat et l'ajuster si nécessaire. Vous pouvez aussi utiliser annulation/rétablissement pour revenir en arrière.
|
||||
- Cliquez sur le bouton « + » ou sur la commande `/clear` pour effacer l'historique du chat.
|
||||
|
||||
### Configurer votre fournisseur LLM
|
||||
|
||||
Allez dans **Settings ⚙️ → General → LLM Provider**. Selon le fournisseur choisi, vous devrez fournir la clé API appropriée et, le cas échéant, une base URL personnalisée (pour les services non officiels compatibles OpenAI comme Ollama, OpenRouter, etc.).
|
||||
|
||||
Remarque : en raison des limitations CORS chez certains fournisseurs, Google Gemini et Anthropic Claude ne sont actuellement pris en charge que via OpenRouter.
|
||||
|
||||
### Utiliser les modèles OpenAI
|
||||
|
||||
1. Obtenez une clé API OpenAI auprès de [**OpenAI**](https://platform.openai.com/account/api-keys). Vous devrez peut-être créer un compte et ajouter un moyen de paiement pour générer une clé API.
|
||||
2. Dans **Settings ⚙️ → General → LLM Provider**, sélectionnez **OpenAI** comme fournisseur.
|
||||
3. Saisissez votre clé API dans **OpenAI → Key**.
|
||||
4. Sélectionnez votre modèle préféré dans la liste **OpenAI → Model**. Pour un bon équilibre entre performances et coût, nous recommandons `gpt-5.4-mini`.
|
||||
5. Vous pouvez également choisir d'activer Flex Mode dans **OpenAI → Flex Mode**. Flex Mode offre un tarif réduit, mais peut entraîner des temps de réponse plus lents ou des erreurs côté serveur.
|
||||
|
||||
### Utiliser OpenRouter
|
||||
|
||||
OpenRouter est une plateforme qui fournit un accès unifié à un large éventail de modèles de langage, y compris des options gratuites, provenant de divers fournisseurs. Cela facilite l'expérimentation et la recherche du modèle le mieux adapté à vos besoins.
|
||||
|
||||
1. Obtenez une clé API auprès de [**OpenRouter**](https://openrouter.ai/keys). L'inscription est requise ; pour les modèles payants, un moyen de paiement peut également être nécessaire.
|
||||
2. Dans **Settings ⚙️ → General → LLM Provider**, sélectionnez **OpenAI Compatible** comme fournisseur.
|
||||
3. Saisissez votre clé API dans **OpenAI Compatible Server → Key**.
|
||||
4. Parcourez les modèles disponibles sur la [**page des modèles OpenRouter**](https://openrouter.ai/models). Utilisez le filtre « Prompt Pricing » pour identifier les modèles gratuits.
|
||||
**Remarque :** chaque fournisseur de modèle peut avoir des politiques différentes en matière de conservation des données et de confidentialité. Veuillez les consulter avant utilisation.
|
||||
5. Saisissez le nom du modèle choisi dans **OpenAI Compatible Server → Model**. Les séries recommandées comprennent :
|
||||
- `Anthropic: Claude Sonnet 4.6` (`anthropic/claude-sonnet-4.6`: [Link](https://openrouter.ai/anthropic/claude-sonnet-4.6)) — meilleur équilibre qualité/coût pour la série Claude
|
||||
- `Qwen: Qwen3.5-35B-A3B` (`qwen/qwen3.5-35b-a3b`: [Link](https://openrouter.ai/qwen/qwen3.5-35b-a3b)) — modèle open source recommandé
|
||||
- `Qwen: Qwen3-Next-80B-A3B` (MODÈLE GRATUIT : `qwen/qwen3-next-80b-a3b-instruct:free`: [Link](https://openrouter.ai/qwen/qwen3-next-80b-a3b-instruct:free)) — modèle gratuit recommandé
|
||||
- `OpenAI: GPT-OSS 120B` (MODÈLE GRATUIT : `openai/gpt-oss-120b:free`: [Link](https://openrouter.ai/openai/gpt-oss-120b:free)) — modèle gratuit recommandé
|
||||
- Remarque : les fournisseurs de modèles gratuits peuvent collecter vos données ; consultez la page du modèle avant utilisation
|
||||
- Remarque : la disponibilité des modèles gratuits change fréquemment ; pour les options gratuites les plus récentes, consultez la [page des modèles OpenRouter](https://openrouter.ai/models) et utilisez le filtre **Prompt Pricing**
|
||||
6. Saisissez l'URL de base `https://openrouter.ai/api/v1` dans **OpenAI Compatible Server → Base URL**.
|
||||
|
||||
### À propos de l'agent et des fournisseurs LLM
|
||||
|
||||
Pour des raisons de sécurité, lorsque vous utilisez K.G.Studio depuis un hôte non local, les clés API ne sont pas persistées dans IndexedDB par défaut ; vous devrez donc saisir votre clé API à chaque démarrage de K.G.Studio. Pour activer la persistance sur des hôtes non locaux, activez « Persist API Keys on Non-Localhost » dans les paramètres (non recommandé pour les environnements partagés ou de production).
|
||||
|
||||
K.G.Studio ne fournit ni n'héberge aucun des modèles listés ci-dessus et n'est affilié à aucun fournisseur de modèles. Toutes les données sont stockées localement sur votre appareil ; K.G.Studio ne collecte ni ne transmet vos données. Vous êtes seul responsable de toute donnée que vous fournissez à des fournisseurs de modèles tiers.
|
||||
|
||||
## K.G.One Music Generator
|
||||
|
||||
> **Nécessite l'intégration de [K.G.One Music Studio](https://github.com/KGAudioLab/K.G.One).** Le panneau K.G.One Music Generator n'est disponible que lorsque K.G.Studio est connecté à un serveur K.G.One en fonctionnement. Consultez le [dépôt K.G.One](https://github.com/KGAudioLab/K.G.One) pour les instructions d'installation.
|
||||
|
||||
Le panneau **K.G.One Music Generator** fournit trois outils IA accélérés par GPU pour la génération musicale et le traitement audio. Cliquez sur le bouton **✦ (baguette magique)** dans la barre d'outils pour l'ouvrir. Le panneau est mutuellement exclusif avec la zone de chat AI Assistant : l'ouverture de l'un ferme l'autre.
|
||||
|
||||
> **Remarque :** la première fois que vous utilisez chaque outil, le serveur doit charger le modèle IA correspondant, ce qui peut prendre 60 secondes ou plus selon votre matériel. Changer d'onglet peut également déclencher un rechargement du modèle.
|
||||
|
||||
### Full Song Generation
|
||||
|
||||
Générez une chanson complète de longue durée à partir d'une description textuelle et de paroles facultatives. Alimenté par [ACE-Step 1.5](https://github.com/ace-step/ACE-Step-1.5).
|
||||
|
||||
- Dans l'onglet **Full Song**, saisissez un **Caption** décrivant le style, l'ambiance, le tempo, l'instrumentation et la structure souhaités en langage naturel. Exemple : `Genre: Eurodance, 90s dance-pop, upbeat electronic. Tempo: ~130 BPM. Instrumentation: driving kick drum, eurodance bassline...`
|
||||
- Vous pouvez éventuellement saisir des **Lyrics**. Utilisez les balises `[Intro]`, `[Verse]`, `[Chorus]`, `[Bridge]` pour marquer les sections. Cochez **Instrumental** pour ne pas générer de voix.
|
||||
- Cliquez sur **Generate Song**. Un indicateur de progression affiche en temps réel l'étape de génération et le pourcentage.
|
||||
- Une fois la génération terminée, un lecteur de prévisualisation apparaît. Faites-le glisser sur une **audio track** pour importer le morceau comme région.
|
||||
- Le glisser-déposer sur une piste MIDI n'est pas pris en charge pour la génération de morceau complet.
|
||||
- **Advanced Settings** (dépliable) : Inference Steps, Guidance Scale, Seed, et Thinking (CoT metadata generation).
|
||||
|
||||
### Clip Generation
|
||||
|
||||
Générez de courts clips instrumentaux et des boucles MIDI à partir de descriptions textuelles. Alimenté par [Foundation-1](https://huggingface.co/RoyalCities/Foundation-1).
|
||||
|
||||
- Dans l'onglet **Clip**, saisissez un **Prompt** décrivant le clip à l'aide de tags séparés par des virgules couvrant la famille d'instruments, le sous-type, le timbre, les effets, la longueur, le BPM et la tonalité. Exemple : `Gritty, Acid, Bassline, 303, Synth Lead, FM, Sub, High Reverb, 8 Bars, 140 BPM, E minor`
|
||||
- Vous pouvez éventuellement saisir un **Negative Prompt** pour éloigner la génération de caractéristiques non désirées (par ex. `distortion, noise`).
|
||||
- Sélectionnez **Bars** : 4 ou 8. Le BPM et la tonalité sont préremplis à partir des paramètres de votre projet et peuvent être ajustés dans **Advanced Settings**.
|
||||
- Cliquez sur **Generate Clip**. Une fois terminé, un lecteur de prévisualisation apparaît avec une poignée de glisser à gauche et un bouton de téléchargement à droite.
|
||||
- **Pour importer** : faites glisser le lecteur sur une piste de la timeline.
|
||||
- Déposez-le sur une **audio track** pour l'importer comme région audio WAV (recommandé).
|
||||
- Déposez-le sur une **MIDI track** pour l'importer comme région MIDI. Notez que le MIDI est transcrit depuis l'audio et peut ne pas être parfaitement exact.
|
||||
- **Advanced Settings** (dépliable) : Note, Scale, BPM, Steps, CFG Scale, Seed (`-1` pour aléatoire), Sampler Type, Sigma Min/Max, et CFG Rescale.
|
||||
|
||||
### Stem Separation
|
||||
|
||||
Séparez une région audio existante en stems individuels (par exemple voix, instruments, batterie).
|
||||
|
||||
K.G.Studio prend en charge **deux modes** de séparation de stems :
|
||||
|
||||
#### Mode navigateur local — Aucun serveur requis ✦
|
||||
|
||||
Deux modèles ONNX s'exécutent entièrement dans votre navigateur, sans appels API, sans coût, et sans que vos données quittent votre appareil. Les modèles sont téléchargés une fois puis mis en cache localement.
|
||||
|
||||
- **Vocal and Instrument (Medium Accuracy)** (`UVR-MDX-NET-Inst_HQ_3`, ~64 MB) — séparation en deux stems (Vocals / Instrumental). Alimenté par [UVR-MDX-NET](https://github.com/nomadkaraoke/python-audio-separator).
|
||||
- **Vocal, Drums, Bass, and Others** (`htdemucs_4s`, ~172 MB) — séparation en quatre stems (Vocals / Drums / Bass / Others). Alimenté par [Demucs](https://github.com/facebookresearch/demucs).
|
||||
|
||||
Ouvrez le panneau **Music Generator** (bouton ✦ dans la barre d'outils), sélectionnez un modèle, cliquez une fois sur **Download Selected Model**, puis sur **Separate Stems** : tout s'exécute localement dans votre navigateur.
|
||||
|
||||
**Conditions requises :** un navigateur compatible WebGPU (Chrome 113+ ou Edge 113+) dans un contexte sécurisé (HTTPS ou localhost). L'accélération WebGPU est utilisée lorsque disponible ; sinon, le système revient au CPU (ce qui peut réduire la réactivité de la page pendant le traitement). Matériel recommandé : un GPU avec au moins 8 GB de VRAM, ou un système avec au moins 16 GB de mémoire unifiée.
|
||||
|
||||
#### Mode serveur K.G.One
|
||||
|
||||
Lorsqu'il est connecté à un serveur [K.G.One Music Studio](https://github.com/KGAudioLab/K.G.One), trois modèles supplémentaires accélérés par GPU sont disponibles. Alimenté par [python-audio-separator (UVR5)](https://github.com/nomadkaraoke/python-audio-separator).
|
||||
|
||||
- **Vocal and Instrument (Medium Accuracy)** (`UVR-MDX-NET-Inst_HQ_3`) — séparation rapide en deux stems (vocal / instrumental).
|
||||
- **Vocal and Instrument (High Accuracy)** (`MDX23C-8KFFT-InstVoc_HQ`) — séparation en deux stems de meilleure qualité, plus lente.
|
||||
- **Vocal, Drums, Bass, Guitar, Piano, and Others** (`htdemucs_6s`) — séparation complète en six stems.
|
||||
|
||||
#### Utilisation (dans les deux modes)
|
||||
|
||||
- **Sélectionnez une région audio** sur la timeline avant d'ouvrir cet onglet. La région sélectionnée et le nom de sa piste sont affichés en haut de l'onglet **Separator**. Seules les régions audio sont prises en charge ; les régions MIDI ne peuvent pas être séparées.
|
||||
- Cliquez sur **Separate Stems**. Si la région sélectionnée a un clip start offset ou a été découpée, l'audio est automatiquement tronqué pour correspondre à la plage de la région avant traitement.
|
||||
- Une fois terminé, chaque stem apparaît comme lecteur de prévisualisation étiqueté avec une poignée de glisser. Vous pouvez prévisualiser chaque stem individuellement avant l'import.
|
||||
- **Pour importer les stems :**
|
||||
- Faites glisser chaque lecteur de stem individuellement sur une **audio track** pour le placer où vous le souhaitez.
|
||||
- Ou cliquez sur **Import All Stems to Timeline** pour créer automatiquement une nouvelle piste audio par stem, positionnée juste sous la piste source et alignée sur le même point de départ que la région d'origine. Il s'agit d'une seule opération annulable.
|
||||
|
||||
## Fonctionnalités à venir
|
||||
|
||||
Les priorités peuvent évoluer.
|
||||
|
||||
### 1.0
|
||||
|
||||
- [X] Plus d'instruments
|
||||
- [X] Tests automatisés (tests unitaires, tests d'intégration, etc.)
|
||||
- [X] Assistant d'accords intelligent avec guidage harmonique fonctionnel (T/S/D)
|
||||
- [X] Prise en charge des automations de contrôle de piste (par ex. sustain, volume, pan, etc.)
|
||||
- [X] Prise en charge des événements de contrôle MIDI (par ex. CC, pitch bend, etc.)
|
||||
- [X] Prise en charge des pistes audio WAV
|
||||
- [X] Enregistrement
|
||||
- [X] Event List
|
||||
- [X] Ajout de la prise en charge des modèles open source d'OpenAI (`gpt-oss-20b` et `gpt-oss-120b`)
|
||||
- [X] Notation musicale
|
||||
- [X] Intégration K.G.One Music Studio
|
||||
- [X] Modèles IA intégrés au navigateur (LLM sur l'appareil via Gemma 4 E4B ; séparation de stems sur l'appareil via UVR-MDX-NET-Inst_HQ_3 et htdemucs_4s)
|
||||
- [X] Système de pistes globales (Marker, Tempo, Key Signature, Chord)
|
||||
- [X] Détection d'accords audio (FFT sans dépendance, remplit la Chord Track)
|
||||
- [X] Détection de tempo avec alignement automatique des temps
|
||||
- [X] Visualisation spectrogramme et Piano Roll hybrid mode
|
||||
|
||||
### Après la 1.0
|
||||
|
||||
- [ ] Extension des outils de l'agent IA pour manipuler directement depuis le chat les régions, les pistes et les pistes globales (progressions d'accords, tempo, tonalité)
|
||||
- [ ] Vue Mixer avec panneau dédié, faders par piste, sends, bus de retour et canal master
|
||||
- [ ] EQ et channel strip avec égaliseur paramétrique et compresseur par piste
|
||||
- [ ] Filtres et effets, comme réverbération, délai et autres effets d'insertion natifs WebAudio
|
||||
- [ ] Audio time-stretch / warp pour étirer les régions audio et les adapter au tempo du projet
|
||||
- [ ] Effets MIDI, comme arpégiateur, quantificateur de gamme et mémoire d'accords
|
||||
- [ ] Sortie vers périphérique MIDI virtuel
|
||||
|
||||
## Aide recherchée
|
||||
|
||||
Nous cherchons des contributeurs pour rendre K.G.Studio encore meilleur ! Que vous soyez développeur, musicien ou designer, votre expertise peut faire une réelle différence.
|
||||
|
||||
### Comment vous pouvez aider
|
||||
|
||||
**🎵 Musiciens & producteurs**
|
||||
- Tester la DAW avec de vrais workflows de production musicale
|
||||
- Donner des retours sur la qualité et le réalisme des instruments
|
||||
- Suggérer des fonctionnalités manquantes essentielles à la création musicale
|
||||
- Aider à améliorer la compréhension musicale de l'assistant IA
|
||||
|
||||
**💻 Développeurs**
|
||||
- Implémenter de nouvelles fonctionnalités de notre feuille de route
|
||||
- Corriger des bugs et améliorer les performances
|
||||
- Renforcer l'intégration Web Audio
|
||||
- Travailler sur les capacités de l'assistant IA
|
||||
|
||||
**🎨 Designers UI/UX**
|
||||
- Améliorer l'interface utilisateur et le workflow
|
||||
- Concevoir un meilleur retour visuel pour l'édition musicale
|
||||
- Créer des interactions plus intuitives
|
||||
|
||||
### Participer
|
||||
|
||||
Intéressé par une contribution ? Nous serions ravis d'avoir de vos nouvelles !
|
||||
|
||||
- **Écrivez-nous** : [kgstudio@duck.com](mailto:kgstudio@duck.com)
|
||||
- **Consultez nos Issues** : parcourez les tickets ouverts avec les labels `help wanted` ou `good first issue`
|
||||
- **Rejoignez les Discussions** : partagez vos idées et retours dans GitHub Discussions
|
||||
|
||||
Aucune contribution n'est trop petite : du signalement de bugs à la proposition de nouvelles fonctionnalités, chaque aide fait avancer le projet.
|
||||
|
||||
### Avertissement
|
||||
|
||||
K.G.Studio est un projet expérimental en phase de développement précoce. Nous explorons les possibilités d'intégrer des agents IA et des LLM dans les flux de production musicale, en construisant essentiellement une expérience de type « Cursor ou Claude Code pour DAW ».
|
||||
|
||||
Ce projet étudie comment la collaboration entre l'IA et l'humain peut enrichir la création musicale, depuis les suggestions harmoniques intelligentes jusqu'aux tâches d'édition automatisées. En tant que plateforme expérimentale, attendez-vous à des changements fréquents, des fonctionnalités en évolution et une instabilité occasionnelle à mesure que nous repoussons les limites de la production musicale assistée par l'IA.
|
||||
|
||||
K.G.Studio ne fournit ni n'héberge aucun modèle LLM et n'est affilié à aucun fournisseur de modèles. Toutes les données sont stockées localement sur votre appareil ; K.G.Studio ne collecte ni ne transmet vos données. Vous êtes seul responsable de toute donnée que vous fournissez à des fournisseurs de modèles tiers.
|
||||
|
||||
## Licence
|
||||
|
||||
Ce projet est distribué sous Apache License, Version 2.0, avec des conditions supplémentaires (voir `LICENSE`) :
|
||||
- Aucune demande de brevet à partir de ce logiciel ou de ses ressources
|
||||
- Attribution requise en cas d'utilisation dans des produits publics/commerciaux (« Powered by K.G.Studio »)
|
||||
|
||||
Les notices tierces (FluidR3_GM SoundFont, midi-js-soundfonts, VexFlow, prompt structure notes, Gemma 4 E4B, UVR-MDX-NET-Inst_HQ_3, MediaPipe, Meyda, web-audio-beat-detector, tonal, htdemucs_4s, onnxruntime-web et demucs-web) sont incluses dans `LICENSE`.
|
||||
+3
-1
@@ -1,4 +1,4 @@
|
||||
[English](./README.md) | 简体中文
|
||||
[English](./README.md) | 简体中文 | [繁體中文](./README-zh_hant.md) | [Français](./README-fr.md)
|
||||
|
||||
<div align="center">
|
||||
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
||||
@@ -29,6 +29,8 @@ K.G.Studio 是一款轻量、现代化的 DAW,完全运行于浏览器中,
|
||||
|
||||
## 最新更新
|
||||
|
||||
- **2026.05.30**: 新增 **国际化(i18n)支持** — K.G.Studio 现已提供四种语言版本:**English**、**简体中文**、**繁體中文** 和 **Français**。可在 **设置 ⚙️ → 通用 → 语言** 中配置首选语言,选择 `Auto` 时将自动检测浏览器语言。
|
||||
|
||||
- **2026.05.27**:
|
||||
- 新增 **全局轨系统**,引入四条全局轨:**Marker**、**Tempo**、**Key Signature** 和 **Chord**(和弦符号跨度区段)。
|
||||
- 新增 **音频和弦检测** 功能。您可以为音频区域或 MIDI 区域打开钢琴卷帘窗口,然后点击“...” -> **Detect Chords**,即可通过零依赖 FFT 流水线自动分析录音内容,并将结果写入 Chord Track;支持灵敏度、稳定性与七和弦检测配置。
|
||||
|
||||
@@ -0,0 +1,453 @@
|
||||
[English](./README.md) | [简体中文](./README-zh_cn.md) | 繁體中文 | [Français](./README-fr.md)
|
||||
|
||||
<div align="center">
|
||||
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
||||
</div>
|
||||
|
||||
# K.G.Studio — 一款基於瀏覽器的 DAW,並內建 AI 助手
|
||||
|
||||
<div align="center">
|
||||
<h3><a href="https://kgaudiolab.github.io/kgstudio"><b>◀ 立即在瀏覽器中線上使用 K.G.Studio ▶</b></a></h3>
|
||||
</div>
|
||||
|
||||
## 新動態
|
||||
|
||||
> ### ✦ [K.G.One Music Studio 現已發佈。](https://github.com/KGAudioLab/K.G.One) ✦ <br />
|
||||
> [**K.G.One Music Studio**](https://github.com/KGAudioLab/K.G.One) 是一個完全本地、開源的一體化平台,以 **K.G.Studio**(本專案)為核心。它整合了用於整曲生成的 [ACE-Step 1.5](https://github.com/ace-step/ACE-Step-1.5)、用於音訊片段和 MIDI loop 生成的 [Foundation-1](https://huggingface.co/RoyalCities/Foundation-1),以及用於分軌的 [python-audio-separator (UVR5)](https://github.com/nomadkaraoke/python-audio-separator),將 GPU 加速的 AI 音樂生成能力直接帶入您的瀏覽器音樂製作工作流。
|
||||
|
||||
## 什麼是 K.G.Studio?
|
||||
|
||||
K.G.Studio 是一款輕量、現代化的 DAW,完全執行於瀏覽器中,並以 **K.G.Studio 音樂創作助手** 為核心。它提供基於 Tone.js sampler 的真實樂器回放、鋼琴卷簾編輯器、支援完整復原/重做的音軌與區域管理、基於 OPFS(Origin Private File System)的專案持久化、可設定的設定面板,以及可執行工具的內建 AI 助手。
|
||||
|
||||
**K.G.Studio 音樂創作助手** 是一個面向和聲、編曲與音符編輯的 AI 助手,但並不負責整首作品的全自動作曲。
|
||||
|
||||
<div align="center">
|
||||
<img src="./docs/KGOne-Demo-GIF.gif" alt="K.G.One Logo" width="640" />
|
||||
</div>
|
||||
|
||||
> 注意:整曲生成功能和音訊片段生成功能需要整合 [**K.G.One Music Studio**](https://github.com/KGAudioLab/K.G.One)。
|
||||
|
||||
## 最新更新
|
||||
|
||||
- **2026.05.30**: 新增 **國際化(i18n)支援** — K.G.Studio 現已提供四種語言版本:**English**、**简体中文**、**繁體中文** 和 **Français**。可在 **設定 ⚙️ → 通用 → 語言** 中設定偏好語言,選擇 `Auto` 時將自動偵測瀏覽器語言。
|
||||
|
||||
- **2026.05.27**:
|
||||
- 新增 **全域軌系統**,引入四條全域軌:**Marker**、**Tempo**、**Key Signature** 和 **Chord**(和弦符號跨度區段)。
|
||||
- 新增 **音訊和弦檢測** 功能。您可以為音訊區域或 MIDI 區域開啟鋼琴卷簾視窗,然後點擊「...」 -> **Detect Chords**,即可透過零依賴 FFT 流水線自動分析錄音內容,並將結果寫入 Chord Track;支援靈敏度、穩定性與七和弦檢測設定。
|
||||
- 新增 **帶自動對齊拍點的速度檢測** 功能。您可以為音訊區域開啟鋼琴卷簾視窗,然後在工具列點擊「...」 -> **Detect Tempo**,分析音訊 BPM,並可選擇將專案中的 Tempo Track 區段自動重新對齊。
|
||||
- 新增 **Demucs 4S** 作為第二個本地瀏覽器內嵌分軌模型。現有的雙 stem UVR-MDX-NET 模型之外,又加入了四 stem 的 `htdemucs_4s` 模型(約 172 MB,vocals / drums / bass / others),兩者都可透過 ONNX Runtime WebGPU 完全在瀏覽器中執行。
|
||||
|
||||
- **2026.05.15**: 新增 **瀏覽器內嵌 AI 模型**。現在有兩個 AI 模型可完全在瀏覽器中執行,無需外部服務、無需 API Key,也無需 K.G.One 伺服器。**K.G.Studio 音樂創作助手** 新增 **Local LLM (Browser)** 提供方,由 **Gemma 4 E4B** 驅動,並透過 LiteRT-LM 與 WebGPU 加速執行;模型只需下載一次,隨後會快取在 OPFS 中,後續啟動幾乎可即時使用,同時支援可設定的上下文長度(32 k / 64 k / 128 k tokens)與即時推理效能統計。**Stem separation** 也支援本地執行,基於瀏覽器內嵌的 **UVR-MDX-NET-Inst_HQ_3** ONNX 模型並使用 WebGPU 加速。您可以開啟 **Music Generator** 面板(✦ 按鈕),下載模型一次後,即可完全在本機將人聲與伴奏分離。以上兩項功能都要求瀏覽器支援 WebGPU(Chrome 113+ 或 Edge 113+)並執行在安全上下文中(HTTPS 或 localhost)。推薦硬體:至少 8 GB 顯存的 GPU,或至少 16 GB 統一記憶體的系統。
|
||||
|
||||
- **2026.05.10**: 新增 **五線譜視圖**。鋼琴卷簾現已支援完整的標準樂譜顯示模式。您可以透過鋼琴卷簾工具列中的切換按鈕在 Piano Roll 和 Sheet Music 視圖之間切換。在五線譜模式下,音符會透過 VexFlow 排版,並支援基於目前樂器自動選擇譜號(高音或低音)、顯示調號、自動符槓分組、跨小節連音線,以及可設定的音值量化。啟用 **Track Scope** 後,整條音軌上的所有 MIDI 區域會以連續譜面的形式顯示,而不再侷限於單個區域。
|
||||
|
||||
- **2026.05.09**: 新增 **音訊錄音**。您現在可以直接從麥克風錄製到音訊軌。錄音時會即時增長顯示波形預覽,停止後該錄音會作為標準音訊區域寫入時間線。另新增 **音訊 I/O 裝置選擇**,您可以在設定中選擇偏好的麥克風輸入裝置和音訊輸出裝置。
|
||||
|
||||
- **2026.05.08**: 新增 **MIDI 自動化**。您可以在鋼琴網格下方的可編輯自動化區域中繪製和編輯 pitch bend 與 MIDI CC 曲線(CC1 Modulation、CC2 Breath、CC7 Volume、CC11 Expression、CC64 Sustain)。同時新增 **軌道級自動化**:每條音軌現在都有專用自動化面板,您可以直接在時間線上查看和編輯同樣的曲線。即時 MIDI 控制器輸入(如 pitch wheel、CC 踏板)也支援錄製與按軌回放,並帶有每條自動化軌的插值處理。另新增 **事件列表面板**,這是一個帶分頁的側邊欄(Notes / Pitch Bend / Controller),可用於查看與內聯編輯目前 MIDI 區域中的全部事件。還新增了 **區域多選**(支援套索與批次移動/縮放)以及 **合併 MIDI 區域**。
|
||||
<div align="center">
|
||||
<img src="./public/snapshots/2026-05-08-automations.png" alt="K.G.Studio Logo" width="640" />
|
||||
</div>
|
||||
|
||||
- **2026.05.02**: 新增 **音訊軌頻譜可視化**。音訊區域現在會在時間網格中顯示即時頻譜疊加層。另新增 **Piano Roll hybrid mode**:當您在 MIDI 區域中開啟鋼琴卷簾時,可將相鄰音訊區域的頻譜作為參考層顯示,從而參照音訊形狀編輯 MIDI 音符。新增 **鋼琴卷簾縮放**,並保留目前視口位置,使畫面始終錨定在目前播放頭附近。還新增 **區域微調位置**,可用小步長推動區域以實現精確擺放;同時新增跨元件的播放頭捲動同步,使主網格與鋼琴卷簾在播放期間保持連動。
|
||||
- **2026.04.29**: 在 K.G.One Music Generator 面板中新增 **Remix** 和 **Repaint**(由 ACE-Step 1.5 驅動)。**Remix** 可讓您用新風格重製現有音訊區域,您只需選中音訊區域、描述目標風格,並可選填寫新歌詞,ACE-Step 就會按提示重新演繹歌曲的配器與氛圍。**Repaint** 可對歌曲中特定片段進行局部再生成,您可以先在時間線上設定 loop 範圍作為重繪視窗,再描述該片段應有的聲音效果,其餘部分將保持不變。兩項功能都支援與其他 K.G.One 分頁相同的匯入流程:可在內建播放器中預覽、拖曳到音軌上,或點擊 **Import Aligned to Source**,自動將結果放置到原始區域下方的新音軌中。
|
||||
- **2026.04.24**: 新增 [**K.G.One Music Studio**](https://github.com/KGAudioLab/K.G.One) 整合。當 K.G.Studio 連線到本地 K.G.One 伺服器後,**K.G.One Music Generator** 面板(工具列中的魔杖按鈕 ✦)即可啟用,其中包含三項 AI 驅動工具:**Full Song Generation**(由 ACE-Step 1.5 驅動,可根據文字提示生成整首歌曲)、**Clip Generation**(由 Foundation-1 驅動,可根據文字生成樂器片段與 MIDI loop),以及 **Stem Separation**(由 python-audio-separator 驅動,可將任意音訊拆分為人聲、伴奏等多個 stem)。生成的音訊和 MIDI 均可即時預覽,並可直接拖曳到您的音軌中。K.G.One 完全執行在您自己的機器上(Windows/Linux,需要 CUDA GPU);詳細設定說明請參閱 [K.G.One 倉庫](https://github.com/KGAudioLab/K.G.One)。
|
||||
- **2026.04.11**: 將專案儲存從 IndexedDB 遷移到 OPFS(Origin Private File System),並採用基於資料夾的結構,以更好地處理媒體檔案。新增音訊軌支援,包括 WAV/MP3 匯入、回放、循環,以及非破壞性區域裁剪。另新增基於離線渲染的 WAV/MP3 匯出功能。
|
||||
- **2026.04.05**: 將 AI agent 從基於 XML 的工具呼叫遷移到原生 OpenAI SDK function calling,以提升可靠性與相容性。另新增 GPT-5.4 系列等 LLM 模型選項。
|
||||
- **2026.01.23**: 實現無縫循環播放。您可以拖動小節編號設定 loop 範圍,或透過工具列中的 Loop 按鈕切換循環模式。循環播放基於 `Tone.js` 的原生 loop 機制,可實現取樣級精確、無縫銜接的循環。
|
||||
- **2025.12.21**: 實現 MIDI 鍵盤支援。您現在可以連接 MIDI 鍵盤並直接用其演奏聲音。請注意,由於 Safari 和部分其他瀏覽器對 Web MIDI 介面支援不完整,此功能在這些瀏覽器中可能無法達到最佳效果。
|
||||
- **2025.12.15**: 新增智慧和弦助手,支援功能和聲指導(T/S/D)。將滑鼠懸停在琴鍵上即可查看與上下文相關的和弦建議,並可一鍵建立完整和弦。
|
||||
|
||||
## 專案狀態
|
||||
|
||||
**K.G.Studio 是一個仍處於早期開發階段的實驗性專案。** 我們正在探索如何將 AI agent 與 LLM 融入音樂製作工作流,本質上是在建構一種面向 DAW 的「Cursor 或 Claude Code」體驗。
|
||||
|
||||
該專案關注 AI 與人類協作如何增強音樂創作過程,從智慧和聲建議到自動化編輯任務都在探索範圍內。作為實驗平台,專案會頻繁變化,功能將持續演進,並且在我們推進 AI 輔助音樂製作邊界的過程中,偶爾出現不穩定情況也是可以預期的。
|
||||
|
||||
## 演示影片
|
||||
|
||||
<div align="center">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://youtu.be/F1JWjK84zwc" target="_blank">
|
||||
<img src="./public/demo/demo-cover.png" alt="K.G.One Music Studio" width="400"/>
|
||||
</a>
|
||||
<br><b>K.G.One Music Studio</b>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://youtu.be/FXgihfAH2vc" target="_blank">
|
||||
<img src="./public/demo/cover-FXgihfAH2vc.png" alt="Short Demo" width="400"/>
|
||||
</a>
|
||||
<br><b>短演示(僅 DAW)</b>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://youtu.be/vKbWAQRt0r0" target="_blank">
|
||||
<img src="./public/demo/cover-vKbWAQRt0r0.png" alt="Full Demo" width="400"/>
|
||||
</a>
|
||||
<br><b>完整演示(僅 DAW)</b>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
## 快速開始
|
||||
|
||||
### 設定 K.G.Studio 音樂創作助手
|
||||
|
||||
使用 K.G.Studio 音樂創作助手有兩種方式:一種是 **Local LLM (Browser)**,完全在瀏覽器中執行,無需 API Key、無需費用,且資料不會離開您的裝置;另一種是使用 **外部 LLM 提供方**,以獲得更高品質的回覆。
|
||||
|
||||
#### 方案 A:Local LLM (Browser) — 無需 API Key ✦
|
||||
|
||||
K.G.Studio 可以藉助 WebGPU 加速,在瀏覽器中直接執行 **Gemma 4 E4B**。不會產生 API 呼叫,不會產生費用,您的資料也不會離開本機。
|
||||
|
||||
- 點擊這裡開始線上使用應用:[K.G.Studio (kgaudiolab.github.io/kgstudio)](https://kgaudiolab.github.io/kgstudio)
|
||||
- 在 **設定 ⚙️ → 通用 → LLM 提供方** 中選擇 **本地 LLM(瀏覽器)**(預設選項)。
|
||||
- 第一次開啟聊天時,模型(約 2.8 GB)會自動下載,並快取在瀏覽器的 OPFS(Origin Private File System)中,後續啟動幾乎可即時使用。
|
||||
- 您也可以選擇設定 **上下文長度**(32k / 64k / 128k tokens);數值越大,對顯存要求越高。
|
||||
- 現在就可以開始聊天。除首次下載模型外,無需 Key、無需帳號,也無需持續連網。
|
||||
|
||||
**Local LLM 的要求:** 需要支援 WebGPU 的瀏覽器(Chrome 113+ 或 Edge 113+),並執行在安全上下文中(HTTPS 或 localhost)。推薦硬體為至少 8 GB 顯存的 GPU,或至少 16 GB 統一記憶體的系統。
|
||||
|
||||
> **注意:** 本地模型的品質無法與 GPT 或 Claude 系列商業模型相比。對於複雜的音樂編輯任務,外部提供方通常會產生更好的結果。
|
||||
|
||||
#### 方案 B:外部 LLM 提供方(更高品質)
|
||||
|
||||
- 點擊這裡開始線上使用應用:[K.G.Studio (kgaudiolab.github.io/kgstudio)](https://kgaudiolab.github.io/kgstudio)
|
||||
- [點擊這裡取得免費 OpenRouter API Key](https://openrouter.ai/keys)(您可能需要一個 OpenRouter 帳號)。
|
||||
- 在 **設定 ⚙️ → 通用 → LLM 提供方** 中選擇 **OpenAI Compatible**。
|
||||
- 在 **OpenAI Compatible Server → 密鑰** 中貼上您的 Key。(注意:在非 localhost 環境中,出於安全原因,您的 Key 預設不會被持久化;您可以在設定中啟用「Persist API Keys on Non-Localhost」以允許持久化,但這可能增加 XSS 風險。)
|
||||
- 在 **OpenAI Compatible Server → 模型** 中輸入 `openai/gpt-oss-120b:free`。(注意:這是一個免費模型;非免費模型可能需要付費;免費模型提供方可能會蒐集您的資料,請查看模型頁面中的說明;本專案與 OpenRouter 或任何模型提供方 **沒有關聯關係**。)
|
||||
- 在 **OpenAI Compatible Server → 基礎 URL** 中輸入 `https://openrouter.ai/api/v1`。
|
||||
|
||||
**提示:**
|
||||
- 您也可以使用官方 OpenAI API、其他 OpenAI 相容服務,或自行託管的 LLM 伺服器(如 Ollama、vLLM)。請注意,不同模型的品質差異較大,並非所有模型都同樣適合音樂編輯任務。對於本地部署,我們推薦 `qwen3.5-35b-a3b`,它在生成品質與硬體需求之間取得了較好的平衡。
|
||||
- 如果您已訂閱 OpenAI 或其他 LLM 提供方,可以使用 [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) 執行一個本地代理伺服器,透過現有訂閱轉發請求,而無需另外準備 API Key。
|
||||
|
||||
### 基本 DAW 操作
|
||||
- 在音軌上雙擊(或按住 Ctrl/Cmd 並點擊)可建立區域。
|
||||
- 拖動區域邊緣可調整長度;拖動區域主體可移動。
|
||||
- 點擊區域左上角的小鉛筆即可開啟鋼琴卷簾。
|
||||
- 在鋼琴卷簾中,雙擊(或 Ctrl/Cmd+點擊)可建立音符。
|
||||
- 單擊可選取;Shift+單擊可多選;拖曳可框選。
|
||||
- 拖動音符邊緣可調整長度;拖動音符主體可移動已選音符。
|
||||
- 使用鋼琴卷簾工具列右上角的 Snapping 功能可將編輯量化到網格。
|
||||
|
||||
### 使用 K.G.Studio 音樂創作助手
|
||||
- 選中您希望助手處理的音樂區域,在聊天框中輸入提示詞;按 Enter 傳送,按 Shift+Enter 插入換行。
|
||||
- agent 會自動處理您的請求,並呼叫工具,在所選區域範圍內執行修改。某些任務可能需要一輪或多輪對話才能完成。
|
||||
- 請注意,AI 也可能出錯,因此您應始終檢查結果,並在必要時自行調整。您也可以透過復原/重做回退修改。
|
||||
- 點擊「+」按鈕或輸入 `/clear` 指令可清空聊天歷史。
|
||||
|
||||
### 更多說明
|
||||
|
||||
您可以在[這裡](./docs/USER_GUIDE.md)查看詳細使用者指南。
|
||||
|
||||
### 亮點功能
|
||||
- **K.G.Studio 音樂創作助手**:與由 LLM 驅動的 AI agent 進行對話;它會自動執行工具,對您所選區域內的音樂內容進行編輯。
|
||||
- **瀏覽器內嵌 LLM,無需 API Key**:透過 WebGPU(LiteRT-LM)在瀏覽器中直接執行 **Gemma 4 E4B**。無 API 呼叫、無費用、資料不離開您的裝置。模型只需下載一次,隨後會快取在本地。
|
||||
- **瀏覽器內嵌分軌,無需伺服器**:使用 **UVR-MDX-NET-Inst_HQ_3**(2-stem:Vocals / Instrumental)或 **Demucs htdemucs_4s**(4-stem:Vocals / Drums / Bass / Others)將任意音訊區域拆分為 stems。兩者都完全在瀏覽器中透過 ONNX Runtime WebGPU 執行,無需 K.G.One 伺服器。
|
||||
- **音訊和弦檢測**:為音訊區域開啟鋼琴卷簾後執行 **Detect Chords**,即可透過零依賴 FFT 流水線自動分析錄音並填充全域 Chord Track,同時支援靈敏度、穩定性和七和弦檢測等設定。
|
||||
- **帶自動對齊拍點的速度檢測**:在鋼琴卷簾工具列執行 **Detect Tempo**,即可分析音訊區域的 BPM,並可選擇自動重新對齊專案的 Tempo Track。
|
||||
- **全域軌系統**:四條持久存在的全域軌 **Marker**、**Tempo**、**Key Signature** 和 **Chord** 共同提供專案級結構,所有功能(播放時序、和弦檢測、五線譜顯示)都會參考它們。
|
||||
- **K.G.One Music Studio 整合**:連接本地 [K.G.One](https://github.com/KGAudioLab/K.G.One) 伺服器後,可解鎖 GPU 加速的 **Full Song Generation**(ACE-Step 1.5)、**Clip & MIDI Loop Generation**(Foundation-1)以及更多 **Stem Separation** 模型。
|
||||
- **多種 LLM 提供方**:支援 OpenAI、Claude / Gemini(透過 OpenRouter)、OpenAI 相容服務(Ollama、vLLM 等),或內建的本地瀏覽器 LLM,無需 Key。
|
||||
- **音軌與區域編輯**:支援新增/重排音軌、建立/移動/縮放區域、套索多選、批次移動/縮放、合併與拆分區域,以及完整復原/重做。
|
||||
- **鋼琴卷簾**:支援音符、pitch bend 和 MIDI CC 自動化軌;支援基於 VexFlow 的五線譜視圖;支援音訊到 MIDI 參考用途的頻譜疊加層。
|
||||
- **真實樂器**:基於 Tone.js 的 sampler,搭配高品質 FluidR3 soundfonts。您還可以直接從麥克風錄製到音訊軌。
|
||||
- **智慧和弦助手**:基於功能和聲(T/S/D)提供即時和弦建議,並支援可視預覽與一鍵建立和弦。
|
||||
- **兼顧持久化與隱私**:專案和設定完全保存在您的瀏覽器中(OPFS / IndexedDB)。專案本身不依賴第一方伺服器。
|
||||
|
||||
如需更深入的技術概覽,請參閱 [overview.md](./docs/technical/overview.md)。
|
||||
|
||||
## 開始使用
|
||||
|
||||
### 或者在本地複製並執行:
|
||||
```bash
|
||||
# 請確認已安裝 Node.js >= 20.19.3
|
||||
# 複製倉庫
|
||||
git clone https://github.com/KGAudioLab/KGStudio {your-local-path}
|
||||
cd {your-local-path}
|
||||
|
||||
# 安裝依賴
|
||||
npm install
|
||||
|
||||
# 啟動開發伺服器
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## 設定
|
||||
|
||||
K.G.Studio 會從 `./public/config.json` 載入預設設定(內部也提供回退預設值),並透過 `ConfigManager` + IndexedDB 將使用者修改持久化到瀏覽器中。IndexedDB 是瀏覽器在您裝置上的本地資料庫;資料不會離開您的機器,如果您清除此站點的資料,它也會被清除。請透過應用程式內的設定面板修改設定。
|
||||
|
||||
- **通用**
|
||||
- LLM 提供方:OpenAI,或 OpenAI 相容服務
|
||||
- 目前所選提供方對應的 API Key 與模型
|
||||
- 在非 localhost 環境持久化 API Key:啟用後,可在非 localhost 環境中持久化 API Key(屬於安全風險自擔選項,不建議在共享或生產環境中開啟)
|
||||
- OpenAI 相容服務的基礎 URL(適用於自託管閘道)
|
||||
- Soundfont 基礎 URL(樂器採樣 CDN)
|
||||
- **行為**
|
||||
- 啟動時預設開啟聊天框
|
||||
- **模板**
|
||||
- AI 助手使用的自訂指令
|
||||
|
||||
### 連線性與隱私
|
||||
|
||||
- K.G.Studio 完全在客戶端執行。執行應用不需要任何第一方伺服器。
|
||||
- 專案和音訊檔案保存在瀏覽器的 OPFS(Origin Private File System)中;設定保存在 IndexedDB 中。所有資料都留在您的裝置上。
|
||||
- 網路存取僅用於:
|
||||
- 從設定的 soundfont CDN 下載樂器採樣
|
||||
- 與您選擇的 LLM 提供方通訊(例如 OpenAI 或 OpenAI 相容服務)
|
||||
- 除上述兩種情況外,應用均可在本地工作。即使您阻止這些端點,應用仍可載入;但在網路恢復之前,樂器回放和 AI 功能將無法使用。
|
||||
- 出於安全考量,當應用執行在非本地主機環境中時,我們預設不會將您的 API Key 持久化到 IndexedDB(以降低 XSS 風險)。這表示您每次啟動 K.G.Studio 時都需要重新輸入。如需在非本地主機環境中啟用持久化,請在設定中開啟「Persist API Keys on Non-Localhost」(不建議在共享或生產環境中啟用)。
|
||||
|
||||
## 使用應用
|
||||
|
||||
您可以在[這裡](./docs/USER_GUIDE.md)查看詳細使用者指南。
|
||||
|
||||
- 音軌
|
||||
- 在軌道資訊面板中新增、重新命名和重排音軌。
|
||||
- 透過樂器按鈕(鋼琴圖示)切換樂器;可調整 Solo(S)、Mute(M)和 Volume。
|
||||
- 透過音軌設定選單刪除音軌(位於樂器按鈕右側)。
|
||||
|
||||
- 區域
|
||||
- 建立區域:使用 Pointer 工具時可雙擊,或按住 Ctrl/Cmd 再點擊;使用 Pencil 工具時單擊即可。
|
||||
- 移動/縮放:拖動區域主體可移動,拖動邊緣可調整長度。
|
||||
- 透過區域左上角的小鉛筆開啟 Piano Roll。
|
||||
|
||||
- 鋼琴卷簾(MIDI 音符)
|
||||
- 工具:Select 與 Pencil。
|
||||
- 建立音符:在 Select 模式下雙擊或 Ctrl/Cmd+點擊;在 Pencil 模式下單擊。
|
||||
- 選取音符:單擊;Shift+單擊多選;拖曳框選。
|
||||
- 移動/縮放:拖動音符主體可移動已選音符;拖動邊緣可調整長度。
|
||||
- **五線譜視圖**:可在鋼琴卷簾工具列中切換 Piano Roll 與 Staff Notation 視圖。支援自動譜號選擇、調號顯示、符槓分組、連音線和可設定量化。啟用 **Track Scope** 後會將整條音軌上的所有區域連續渲染為譜面。
|
||||
- **自動化軌道**:可在鋼琴網格下方的可編輯區域中繪製和編輯 pitch bend 與 MIDI CC 曲線(Modulation、Breath、Volume、Expression、Sustain)。
|
||||
- **頻譜模式**:可在鋼琴卷簾中查看音訊區域的頻譜,並將其作為編輯 MIDI 音符時的參考層。
|
||||
- 可透過 X 或 ESC 關閉鋼琴卷簾視窗。
|
||||
|
||||
- 智慧和弦助手(新增於 2025-12-15)
|
||||
- 在鋼琴卷簾工具列中啟用和弦指導:選擇 T(Tonic)、S(Subdominant)或 D(Dominant)功能。
|
||||
- 將滑鼠懸停在任意琴鍵上時,會以紅色高亮顯示與上下文相關的和弦建議,並匹配您目前選擇的調號與調式。
|
||||
- 按 Tab 可在同一和聲功能下循環切換不同和弦轉位。
|
||||
- 雙擊(或 Ctrl/Cmd+點擊)高亮和弦可一次性建立整組音符。
|
||||
- 和弦長度會自動匹配您最近編輯的音符長度,以保持節奏一致。
|
||||
|
||||
- 吸附與量化
|
||||
- 在右上角的 NO SNAP 選單中設定吸附。
|
||||
- 使用 Qua. Pos.(起始)和 Qua. Len.(長度)進行量化。
|
||||
|
||||
- 播放與播放頭
|
||||
- 可透過工具列回到開頭,並執行 Play/Pause。
|
||||
- 在主時間網格點擊小節編號可設定播放頭;在鋼琴卷簾中點擊頂部時間軸也可設定,並遵守目前吸附設定。
|
||||
- BPM、拍號和調號都可以透過工具列中的數值進行修改。
|
||||
|
||||
## 鍵盤快捷鍵
|
||||
|
||||
- 主介面
|
||||
- 播放/暫停:Space
|
||||
- 復原 / 重做:Ctrl/Cmd+Z / Ctrl/Cmd+Shift+Z
|
||||
- 複製 / 剪下 / 貼上:Ctrl/Cmd+C / Ctrl/Cmd+X / Ctrl/Cmd+V
|
||||
- 儲存:Ctrl/Cmd+S
|
||||
- 按住以建立區域:Ctrl/Cmd
|
||||
- 鋼琴卷簾
|
||||
- 工具:Select(Q)、Pencil(W)
|
||||
- 按住以建立音符:Ctrl/Cmd
|
||||
- 吸附:1(None), 2(1/4), 3(1/8), 4(1/16)
|
||||
- 位置量化:5(1/4), 6(1/8), 7(1/16)
|
||||
- 長度量化:8(1/4), 9(1/8), 0(1/16)
|
||||
|
||||
## AI 助手
|
||||
|
||||
### 使用 K.G.Studio 音樂創作助手
|
||||
|
||||
- 請先按照前文說明完成 LLM 提供方設定。
|
||||
- 您可以在右側找到 K.G.Studio 音樂創作助手聊天框。如果目前未顯示,可點擊工具列中的 Chat 🗨️ 按鈕開啟。
|
||||
- 選中您希望助手處理的區域,在聊天框中輸入提示詞;按 Enter 傳送,按 Shift+Enter 插入換行。
|
||||
- agent 會自動處理您的請求,並呼叫工具,在所選區域範圍內執行修改。某些任務可能需要一輪或多輪對話才能完成。
|
||||
- 請注意,AI 也可能出錯,因此您應始終檢查結果,並在必要時自行調整。您也可以透過復原/重做回退修改。
|
||||
- 點擊「+」按鈕或輸入 `/clear` 指令可清空聊天歷史。
|
||||
|
||||
### 設定您的 LLM 提供方
|
||||
|
||||
進入 **設定 ⚙️ → 通用 → LLM 提供方**。根據您選擇的提供方,您需要填寫對應的 API Key,並在需要時填寫自訂基礎 URL(適用於 Ollama、OpenRouter 等非官方 OpenAI 相容服務)。
|
||||
|
||||
注意:由於部分提供方存在 CORS 限制,Google Gemini 和 Anthropic Claude 目前僅支援透過 OpenRouter 使用。
|
||||
|
||||
### 使用 OpenAI 模型
|
||||
|
||||
1. 在 [**OpenAI**](https://platform.openai.com/account/api-keys) 取得 OpenAI API Key。您可能需要先註冊帳號並新增付款方式,才能生成 API Key。
|
||||
2. 在 **設定 ⚙️ → 通用 → LLM 提供方** 中選擇 **OpenAI** 作為提供方。
|
||||
3. 在 **OpenAI → 密鑰** 中輸入您的 API Key。
|
||||
4. 在 **OpenAI → 模型** 下拉中選擇您偏好的模型。若希望在效能與成本之間取得較好平衡,我們推薦 `gpt-5.4-mini`。
|
||||
5. 您也可以選擇是否在 **OpenAI → Flex 模式** 中啟用 Flex Mode。Flex Mode 可以降低價格,但也可能帶來更慢的回應時間或更多伺服器端錯誤。
|
||||
|
||||
### 使用 OpenRouter
|
||||
|
||||
OpenRouter 是一個統一接入平台,可讓您存取來自多個提供方的大量語言模型,其中也包含免費選項,便於比較並找到最適合您需求的模型。
|
||||
|
||||
1. 在 [**OpenRouter**](https://openrouter.ai/keys) 取得 API Key。需要註冊;若使用付費模型,可能還需要綁定付款方式。
|
||||
2. 在 **設定 ⚙️ → 通用 → LLM 提供方** 中選擇 **OpenAI Compatible** 作為提供方。
|
||||
3. 在 **OpenAI Compatible Server → 密鑰** 中輸入您的 API Key。
|
||||
4. 在 [**OpenRouter Models Page**](https://openrouter.ai/models) 瀏覽可用模型。您可以使用「Prompt Pricing」篩選免費模型。
|
||||
**注意:** 不同模型提供方的資料保留與隱私政策可能不同,請在使用前自行查看。
|
||||
5. 在 **OpenAI Compatible Server → 模型** 中輸入您所選的模型名。推薦系列包括:
|
||||
- `Anthropic: Claude Sonnet 4.6` (`anthropic/claude-sonnet-4.6`: [Link](https://openrouter.ai/anthropic/claude-sonnet-4.6)) — Claude 系列中品質與成本平衡較好的選擇
|
||||
- `Qwen: Qwen3.5-35B-A3B` (`qwen/qwen3.5-35b-a3b`: [Link](https://openrouter.ai/qwen/qwen3.5-35b-a3b)) — 推薦的開源模型
|
||||
- `Qwen: Qwen3-Next-80B-A3B`(免費模型:`qwen/qwen3-next-80b-a3b-instruct:free`: [Link](https://openrouter.ai/qwen/qwen3-next-80b-a3b-instruct:free))— 推薦的免費模型
|
||||
- `OpenAI: GPT-OSS 120B`(免費模型:`openai/gpt-oss-120b:free`: [Link](https://openrouter.ai/openai/gpt-oss-120b:free))— 推薦的免費模型
|
||||
- 注意:免費模型提供方可能會蒐集您的資料,使用前請先查看模型頁面說明
|
||||
- 注意:免費模型的可用性變化頻繁。如需查看最新免費選項,請造訪 [OpenRouter Models Page](https://openrouter.ai/models),並使用 **Prompt Pricing** 過濾目前免費模型
|
||||
6. 在 **OpenAI Compatible Server → 基礎 URL** 中填入 `https://openrouter.ai/api/v1`。
|
||||
|
||||
### 關於 agent 與 LLM 提供方
|
||||
|
||||
出於安全考量,當您從非本地主機環境使用 K.G.Studio 時,API Key 預設不會持久化到 IndexedDB 中;這表示您每次啟動 K.G.Studio 時都需要重新輸入。如需在非本地主機環境中啟用持久化,請在設定中開啟「Persist API Keys on Non-Localhost」(不建議在共享或生產環境中啟用)。
|
||||
|
||||
K.G.Studio 不提供也不託管上述任何模型,也不隸屬於任何模型提供方。所有資料都保存在您的本地裝置中;K.G.Studio 不會蒐集或傳輸您的資料。若您向第三方模型提供方傳送任何資料,相關責任由您自行承擔。
|
||||
|
||||
## K.G.One Music Generator
|
||||
|
||||
> **需要 [K.G.One Music Studio](https://github.com/KGAudioLab/K.G.One) 整合。** 只有當 K.G.Studio 連線到正在執行的 K.G.One 伺服器時,K.G.One Music Generator 面板才會可用。設定說明請參閱 [K.G.One 倉庫](https://github.com/KGAudioLab/K.G.One)。
|
||||
|
||||
**K.G.One Music Generator** 面板提供三項經 GPU 加速的 AI 工具,用於音樂生成與音訊處理。點擊工具列中的 **✦(魔杖)** 按鈕即可開啟。該面板與 AI Assistant 聊天框互斥,開啟其中一個時,另一個會自動關閉。
|
||||
|
||||
> **注意:** 您首次使用每個工具時,伺服器都需要載入對應 AI 模型,這可能需要 60 秒甚至更久,具體取決於您的硬體。切換分頁時,也可能觸發模型重新載入。
|
||||
|
||||
### Full Song Generation
|
||||
|
||||
根據文字描述和可選歌詞生成一首完整歌曲。由 [ACE-Step 1.5](https://github.com/ace-step/ACE-Step-1.5) 驅動。
|
||||
|
||||
- 在 **Full Song** 分頁中,於 **Caption** 中輸入自然語言描述,說明所需風格、情緒、速度、配器和結構。例如:`Genre: Eurodance, 90s dance-pop, upbeat electronic. Tempo: ~130 BPM. Instrumentation: driving kick drum, eurodance bassline...`
|
||||
- 您也可以填寫 **Lyrics**。可使用 `[Intro]`、`[Verse]`、`[Chorus]`、`[Bridge]` 等標籤標記段落。若勾選 **Instrumental**,則會完全跳過人聲。
|
||||
- 點擊 **Generate Song**。介面會即時顯示生成階段與百分比進度。
|
||||
- 生成完成後,會顯示預覽播放器。您可以將其拖曳到 **audio track**,作為區域匯入。
|
||||
- 目前不支援將整曲生成結果拖放到 MIDI track。
|
||||
- **Advanced Settings**(可展開):Inference Steps、Guidance Scale、Seed,以及 Thinking(CoT metadata generation)。
|
||||
|
||||
### Clip Generation
|
||||
|
||||
根據文字描述生成短樂器片段和 MIDI loops。由 [Foundation-1](https://huggingface.co/RoyalCities/Foundation-1) 驅動。
|
||||
|
||||
- 在 **Clip** 分頁中,於 **Prompt** 中輸入逗號分隔的標籤,描述樂器類別、子類型、音色、效果、長度、BPM 和調性。例如:`Gritty, Acid, Bassline, 303, Synth Lead, FM, Sub, High Reverb, 8 Bars, 140 BPM, E minor`
|
||||
- 您也可以填寫 **Negative Prompt**,以避免生成某些不希望出現的特徵(例如 `distortion, noise`)。
|
||||
- 選擇 **Bars**:4 或 8。BPM 與調號會根據專案設定預填,您也可以在 **Advanced Settings** 中調整。
|
||||
- 點擊 **Generate Clip**。生成完成後,會出現一個預覽播放器,左側帶拖曳手把,右側帶下載按鈕。
|
||||
- **匯入方式**:將播放器拖曳到時間線中的音軌上。
|
||||
- 拖放到 **audio track** 時,會作為 WAV 音訊區域匯入(推薦)。
|
||||
- 拖放到 **MIDI track** 時,會作為 MIDI 區域匯入。請注意,此 MIDI 是從音訊轉錄而來,可能並非完全準確。
|
||||
- **Advanced Settings**(可展開):Note、Scale、BPM、Steps、CFG Scale、Seed(`-1` 表示隨機)、Sampler Type、Sigma Min/Max,以及 CFG Rescale。
|
||||
|
||||
### Stem Separation
|
||||
|
||||
將現有音訊區域拆分為獨立 stems(例如人聲、伴奏、鼓組等)。
|
||||
|
||||
K.G.Studio 支援 **兩種模式** 的分軌:
|
||||
|
||||
#### 本地瀏覽器模式 — 無需伺服器 ✦
|
||||
|
||||
兩個 ONNX 模型可完全在瀏覽器中執行,無 API 呼叫、無費用,資料也不會離開您的裝置。模型只需下載一次,隨後會快取在本地。
|
||||
|
||||
- **Vocal and Instrument (Medium Accuracy)**(`UVR-MDX-NET-Inst_HQ_3`,約 64 MB)— 雙 stem 分離(Vocals / Instrumental)。由 [UVR-MDX-NET](https://github.com/nomadkaraoke/python-audio-separator) 驅動。
|
||||
- **Vocal, Drums, Bass, and Others**(`htdemucs_4s`,約 172 MB)— 四 stem 分離(Vocals / Drums / Bass / Others)。由 [Demucs](https://github.com/facebookresearch/demucs) 驅動。
|
||||
|
||||
開啟 **Music Generator** 面板(工具列中的 ✦ 按鈕),選擇模型,先點擊一次 **Download Selected Model**,然後點擊 **Separate Stems**,所有處理都會在您的瀏覽器中本地完成。
|
||||
|
||||
**要求:** 需要支援 WebGPU 的瀏覽器(Chrome 113+ 或 Edge 113+),並執行在安全上下文中(HTTPS 或 localhost)。若可用,會優先使用 WebGPU 加速;否則會回退到 CPU(處理期間可能降低頁面回應性)。推薦硬體為至少 8 GB 顯存的 GPU,或至少 16 GB 統一記憶體的系統。
|
||||
|
||||
#### K.G.One 伺服器模式
|
||||
|
||||
當連線到 [K.G.One Music Studio](https://github.com/KGAudioLab/K.G.One) 伺服器後,可使用另外三種 GPU 加速模型。由 [python-audio-separator (UVR5)](https://github.com/nomadkaraoke/python-audio-separator) 驅動。
|
||||
|
||||
- **Vocal and Instrument (Medium Accuracy)**(`UVR-MDX-NET-Inst_HQ_3`)— 快速雙 stem 分離(vocal / instrumental)。
|
||||
- **Vocal and Instrument (High Accuracy)**(`MDX23C-8KFFT-InstVoc_HQ`)— 更高品質的雙 stem 分離,但更慢。
|
||||
- **Vocal, Drums, Bass, Guitar, Piano, and Others**(`htdemucs_6s`)— 完整六 stem 分離。
|
||||
|
||||
#### 使用方式(兩種模式通用)
|
||||
|
||||
- 在開啟此分頁之前,請先在時間線上**選中一個音訊區域**。**Separator** 分頁頂部會顯示目前所選區域及其音軌名稱。僅支援音訊區域,不支援分離 MIDI 區域。
|
||||
- 點擊 **Separate Stems**。如果目前所選區域帶有 clip start offset 或已被裁剪,系統會先自動按該區域範圍切出對應音訊,再進行處理。
|
||||
- 處理完成後,每個 stem 都會以帶標籤的預覽播放器顯示,並附帶拖曳手把。您可以在匯入前分別試聽每個 stem。
|
||||
- **匯入 stems:**
|
||||
- 可將每個 stem 播放器分別拖曳到 **audio track** 上,放到您希望的位置。
|
||||
- 或點擊 **Import All Stems to Timeline**,系統會自動為每個 stem 新建一條音訊軌,並將其放置在源音軌下方,與原始區域的起始拍點對齊。該操作可透過一次復原完整回退。
|
||||
|
||||
## 即將推出的功能
|
||||
|
||||
功能優先級可能會變化。
|
||||
|
||||
### 1.0
|
||||
|
||||
- [X] 更多樂器
|
||||
- [X] 自動化測試(單元測試、整合測試等)
|
||||
- [X] 帶功能和聲指導(T/S/D)的智慧和弦助手
|
||||
- [X] 支援軌道控制自動化(例如 sustain、volume、pan 等)
|
||||
- [X] 支援 MIDI 控制事件(例如 CC、pitch bend 等)
|
||||
- [X] 支援 WAV 音訊軌
|
||||
- [X] 錄音
|
||||
- [X] 事件列表
|
||||
- [X] 支援 OpenAI 的開源模型(`gpt-oss-20b` 和 `gpt-oss-120b`)
|
||||
- [X] 五線譜
|
||||
- [X] K.G.One Music Studio 整合
|
||||
- [X] 瀏覽器內嵌 AI 模型(基於 Gemma 4 E4B 的本機 LLM;基於 UVR-MDX-NET-Inst_HQ_3 與 htdemucs_4s 的本機分軌)
|
||||
- [X] 全域軌系統(Marker、Tempo、Key Signature、Chord)
|
||||
- [X] 音訊和弦檢測(零依賴 FFT,並將結果寫入 Chord Track)
|
||||
- [X] 帶自動對齊拍點的速度檢測
|
||||
- [X] 頻譜可視化與 Piano Roll hybrid mode
|
||||
|
||||
### 1.0 之後
|
||||
|
||||
- [ ] 擴展 AI agent 工具,直接透過聊天操作區域、音軌與全域軌(和弦進行、速度、調性)
|
||||
- [ ] Mixer 視圖,提供專用面板顯示每軌推桿、send、return bus 與 master channel
|
||||
- [ ] EQ 與通道條,為每條音軌提供參數均衡器與壓縮器
|
||||
- [ ] 濾波器與效果器,如混響、延遲及其他基於 WebAudio 的原生插入效果
|
||||
- [ ] 音訊 time-stretch / warp,使音訊區域自動匹配專案速度
|
||||
- [ ] MIDI 效果器,如琶音器、音階量化器、和弦記憶
|
||||
- [ ] 虛擬 MIDI 裝置輸出
|
||||
|
||||
## 需要幫助
|
||||
|
||||
我們正在尋找貢獻者,一起讓 K.G.Studio 變得更好。無論您是開發者、音樂人還是設計師,您的專長都能帶來實際價值。
|
||||
|
||||
### 您可以如何參與
|
||||
|
||||
**🎵 音樂人 / 音樂製作人**
|
||||
- 使用真實音樂製作流程測試這款 DAW
|
||||
- 回饋樂器音色品質與真實感
|
||||
- 提出音樂創作中不可或缺但目前缺失的功能
|
||||
- 幫助提升 AI 助手的音樂理解能力
|
||||
|
||||
**💻 開發者**
|
||||
- 根據路線圖實作新功能
|
||||
- 修復 bug 並最佳化效能
|
||||
- 增強 Web Audio 整合
|
||||
- 改進 AI 助手能力
|
||||
|
||||
**🎨 UI/UX 設計師**
|
||||
- 最佳化介面和工作流
|
||||
- 設計更適合音樂編輯的視覺回饋
|
||||
- 打造更直觀的互動方式
|
||||
|
||||
### 參與方式
|
||||
|
||||
如果您有興趣貢獻,我們很願意聽到您的想法。
|
||||
|
||||
- **給我們發郵件**:[kgstudio@duck.com](mailto:kgstudio@duck.com)
|
||||
- **查看 Issues**:瀏覽帶有 `help wanted` 或 `good first issue` 標籤的公開問題
|
||||
- **參與討論**:在 GitHub Discussions 中分享想法與回饋
|
||||
|
||||
每一份貢獻都很重要。無論是回報 bug,還是提出新功能建議,都會推動專案繼續前進。
|
||||
|
||||
### 免責聲明
|
||||
|
||||
K.G.Studio 是一個處於早期開發階段的實驗性專案。我們正在探索如何將 AI agent 與 LLM 融入音樂製作工作流,本質上是在建構一種面向 DAW 的「Cursor 或 Claude Code」體驗。
|
||||
|
||||
該專案關注 AI 與人類協作如何增強音樂創作過程,從智慧和聲建議到自動化編輯任務都在探索範圍內。作為實驗平台,專案會頻繁變化,功能將持續演進,並且在我們推進 AI 輔助音樂製作邊界的過程中,偶爾出現不穩定情況也是可以預期的。
|
||||
|
||||
K.G.Studio 不提供也不託管任何 LLM 模型,也不隸屬於任何模型提供方。所有資料都保存在您的本地裝置中;K.G.Studio 不會蒐集或傳輸您的資料。若您向第三方模型提供方傳送任何資料,相關責任由您自行承擔。
|
||||
|
||||
## 授權條款
|
||||
|
||||
本專案基於 Apache License, Version 2.0 授權,並附帶額外條款(參見 `LICENSE`):
|
||||
- 不得使用本軟體或相關素材申請專利
|
||||
- 當用於公開或商業產品時需要署名(「Powered by K.G.Studio」)
|
||||
|
||||
第三方聲明(FluidR3_GM SoundFont、midi-js-soundfonts、VexFlow、prompt structure notes、Gemma 4 E4B、UVR-MDX-NET-Inst_HQ_3、MediaPipe、Meyda、web-audio-beat-detector、tonal、htdemucs_4s、onnxruntime-web 和 demucs-web)已包含在 `LICENSE` 中。
|
||||
@@ -1,4 +1,4 @@
|
||||
English | [简体中文](./README-zh_cn.md)
|
||||
English | [简体中文](./README-zh_cn.md) | [繁體中文](./README-zh_hant.md) | [Français](./README-fr.md)
|
||||
|
||||
<div align="center">
|
||||
<img src="./public/logo.png" alt="K.G.Studio Logo" width="160" />
|
||||
@@ -29,6 +29,8 @@ K.G.Studio is a lightweight, modern DAW that runs entirely in the browser with *
|
||||
|
||||
## Latest Updates
|
||||
|
||||
- **2026.05.30**: Added **internationalization (i18n) support** — K.G.Studio now ships in four languages: **English**, **Simplified Chinese (简体中文)**, **Traditional Chinese (繁體中文)**, and **French (Français)**. The active language can be configured under **Settings ⚙️ → General → Language**, with an `Auto` option that automatically detects your browser's locale.
|
||||
|
||||
- **2026.05.27**:
|
||||
- Added **Global Track System** — introduce four global tracks: **Marker**, **Tempo**, **Key Signature**, and **Chord** (chord-symbol span regions).
|
||||
- Added **Audio Chord Detection** feature — open piano roll window for an audio or a MIDI region and click "..." -> **Detect Chords** to automatically analyse the recording and populate the Chord Track using a zero-dependency FFT pipeline with configurable sensitivity, stability, and seventh-chord detection.
|
||||
|
||||
Reference in New Issue
Block a user