GEMINI Playbook — AudioLab v2.0 🚀¶
Propósito¶
Guía y reglas para trabajar con Gemini CLI en el monorepo audio-lab (Windows + VS2022 + CMake + JUCE + AudioLabUI).
Idioma: español técnico. Objetivo: desarrollo eficiente con el nuevo sistema UI integrado.
🏗️ Arquitectura AudioLab (ACTUALIZADA)¶
Estructura del Proyecto¶
C:\AudioDev\audio-lab\
├── 01_core/
│ ├── third_party/juce/ # JUCE 8
│ └── shared/
│ ├── ui/ # AudioLabUI System
│ │ ├── AudioLabUI.h # Sistema UI principal
│ │ ├── LayoutTemplates.h # Layouts automáticos
│ │ └── themes/ # Temas visuales
│ ├── components/ # Componentes C++ reutilizables
│ └── dsp/ # Algoritmos DSP compartidos
├── 03_PLUGINS/
│ └── plugins/
│ └── [FAMILY]/ # FX, SYNTH, UTILITY, etc.
│ └── TS_[PluginName]/ # Prefijo obligatorio
├── 06_BRAIN/
│ ├── build/ # Build directory (CMake)
│ └── src/
│ └── 1_scripts/
│ └── 4_WORKFLOWS/
│ ├── wf_create_plugin.ps1 # NUEVO: Crea con AudioLabUI
│ └── UI/ # NUEVO: Scripts de UI
│ ├── gui_wizard.ps1 # Generador de GUIs
│ ├── theme_manager.ps1 # Gestor de temas
│ ├── layout_generator.ps1 # Layouts específicos
│ └── component_injector.ps1 # Inyector de componentes
└── _artefacts/ # Binarios compilados
🎨 Sistema AudioLabUI (NUEVO)¶
Características Integradas Automáticamente¶
- AudioLabLookAndFeel: Look profesional aplicado por defecto
- LayoutGrid: Posicionamiento automático de controles
- alui::Knob: Knobs profesionales (no más juce::Slider básicos)
- Temas: Dark, Light, Vintage, Neon, Ocean, Forest, Sunset, Cyberpunk
- Tamaños profesionales: Mínimo 700x400 (no más ventanas de 200x300)
⚠️ IMPORTANTE para Gemini¶
NUNCA_HACER:
- NO añadir manualmente: #include "../../../../../core/shared/ui/AudioLabUI.h"
- NO usar juce::Slider directamente (usar alui::Knob)
- NO setBounds manuales (usar LayoutGrid)
- NO tamaños pequeños (mínimo 700x400)
SIEMPRE_HACER:
- Usar: .\ops wf_create_plugin (incluye AudioLabUI automáticamente)
- Los includes ya están configurados: #include "AudioLabUI.h"
- Plugin codes de 4 caracteres se generan automáticamente
- Prefijo TS_ es obligatorio y se añade automáticamente
🛠️ Workflows AudioLab 2.0¶
1. Crear Plugin (CON AudioLabUI integrado)¶
# COMANDO PRINCIPAL - Ya incluye AudioLabUI
.\ops wf_create_plugin -Name "MiPlugin" -Family "FX" -Theme "Dark"
# Parámetros disponibles:
# -Name: Nombre del plugin (se añade TS_ automáticamente)
# -Family: FX, SYNTH, UTILITY (default: FX)
# -Theme: Dark, Light, Vintage, Neon, Ocean (default: Dark)
# -Template: simple, advanced, pro (default: simple)
2. Mejorar UI de Plugin Existente¶
# Aplicar wizard de GUI completo
.\ops ui\wizard -PluginName TS_MiPlugin -Type Effect -NumKnobs 6
# Cambiar tema
.\ops ui\theme -PluginName TS_MiPlugin -Theme Neon
# Aplicar layout específico
.\ops ui\layout -PluginName TS_MiPlugin -Layout MixerStrip
# Inyectar componente avanzado
.\ops ui\inject -PluginName TS_MiPlugin -Component SpectrumAnalyzer
3. Validar y Arreglar Plugins¶
# Validar que use AudioLabUI correctamente
.\ops ui\validate -PluginName TS_MiPlugin
# Arreglar automáticamente problemas de UI
.\ops ui\fix -PluginName TS_MiPlugin
4. Build & Run¶
📋 Plantillas de Prompt para Gemini¶
Prompt 1: Crear Plugin Nuevo con AudioLabUI¶
Crea un plugin VST3 llamado "TS_[Nombre]" en C:\AudioDev\audio-lab:
1. USA ESTE COMANDO PRIMERO:
.\ops wf_create_plugin -Name "[Nombre]" -Family "FX" -Theme "[Tema]"
IMPORTANTE: Este comando YA incluye AudioLabUI automáticamente.
NO necesitas añadir includes manualmente.
2. MODIFICA solo el DSP en PluginProcessor.cpp:
- [Describir algoritmo DSP]
- Usa juce::dsp:: para procesamiento
3. NO TOQUES PluginEditor.h/cpp a menos que necesites:
- Añadir más knobs (ya son alui::Knob)
- Los layouts ya usan LayoutGrid automático
4. COMPILA con: .\ops build TS_[Nombre]
Prompt 2: Añadir Componente Avanzado¶
Añade un [componente] al plugin TS_[Nombre]:
1. USA EL INYECTOR:
.\ops ui\inject -PluginName TS_[Nombre] -Component [Componente]
Componentes disponibles:
- SpectrumAnalyzer
- VUMeter
- PresetManager
- ModulationMatrix
- MidiKeyboard
- XYPad
2. El script modifica automáticamente:
- PluginEditor.h (añade declaraciones)
- PluginEditor.cpp (añade inicialización y posicionamiento)
3. NO modifiques manualmente los includes
Prompt 3: Arreglar Plugin Antiguo¶
Moderniza el plugin TS_[Nombre] para usar AudioLabUI:
1. EJECUTA PRIMERO:
.\ops ui\fix -PluginName TS_[Nombre]
Esto arregla automáticamente:
- CMakeLists.txt (includes y links)
- PluginEditor.h (AudioLabLookAndFeel)
- PluginEditor.cpp (tamaños y layouts)
2. VALIDA:
.\ops ui\validate -PluginName TS_[Nombre]
3. Si necesitas GUI completa nueva:
.\ops ui\wizard -PluginName TS_[Nombre] -Type [Effect|Synth] -Theme [Tema]
⚡ Reglas Críticas para Gemini¶
✅ SIEMPRE¶
- Usar scripts
opspara crear/modificar plugins - Respetar el prefijo TS_ en nombres de plugins
- Plugin codes de 4 caracteres (se generan automáticamente)
- Includes simples:
#include "AudioLabUI.h"(no rutas relativas) - Verificar con:
.\ops ui\validate -PluginName [nombre]
❌ NUNCA¶
- NO crear plugins manualmente (usar wf_create_plugin)
- NO rutas relativas largas (
../../../../../) - NO juce::Slider (usar alui::Knob)
- NO setBounds manuales (usar LayoutGrid)
- NO ventanas pequeñas (mínimo 700x400)
🔧 Solución de Problemas Comunes¶
Error: "AudioLabUI.h not found"¶
Error: "PLUGIN_CODE must be exactly 4 characters"¶
# El script wf_create_plugin lo genera automáticamente
# Si es plugin antiguo:
.\ops ui\fix -PluginName TS_[Nombre]
Error: "undefined reference to AudioLabLookAndFeel"¶
# Verificar CMakeLists.txt tiene:
if(TARGET audiolab_ui)
target_link_libraries(TS_[Nombre] PRIVATE audiolab_ui)
endif()
# O ejecutar:
.\ops ui\fix -PluginName TS_[Nombre]
📊 Checklist para Plugin Perfecto¶
- Creado con
.\ops wf_create_plugin - Nombre con prefijo
TS_ - Usa
alui::Knob(no juce::Slider) - Tiene
AudioLabLookAndFeelconfigurado - Tamaño mínimo 700x400
- Layout con
LayoutGrid(no setBounds manual) - Validado con
.\ops ui\validate - Tema aplicado (Dark/Light/Vintage/etc)
- Componentes adicionales inyectados si necesario
🚀 Ejemplo Completo para Gemini¶
PROMPT OPTIMIZADO PARA GEMINI:
Crea un plugin de reverb "TS_HallReverb" usando AudioLab:
PASO 1 - CREAR (ya incluye AudioLabUI):
.\ops wf_create_plugin -Name "HallReverb" -Family "FX" -Theme "Ocean"
PASO 2 - DSP (modifica PluginProcessor.cpp):
- Usa juce::dsp::Reverb
- Parámetros: RoomSize, Damping, WetLevel, DryLevel, Width
PASO 3 - COMPONENTES EXTRA:
.\ops ui\inject -PluginName TS_HallReverb -Component SpectrumAnalyzer
.\ops ui\inject -PluginName TS_HallReverb -Component VUMeter
PASO 4 - COMPILAR:
.\ops build TS_HallReverb
NO MODIFIQUES:
- Los includes de AudioLabUI (ya están)
- El sistema de knobs (ya son alui::Knob)
- El layout (ya usa LayoutGrid)
RECUERDA: El sistema AudioLabUI ya está integrado automáticamente.
📝 Notas Finales¶
Este playbook refleja el nuevo sistema AudioLabUI que está completamente integrado en el framework. Gemini debe priorizar el uso de los scripts ops que automatizan todo el proceso y garantizan que los plugins usen el sistema UI profesional por defecto.
Versión: 2.0 - Diciembre 2024 Sistema: AudioLab con AudioLabUI integrado