import { appConfig } from '../config'; export type GardenAudioChordQuality = 'major' | 'minor'; export interface GardenAudioChord { rootOffset: number; quality: GardenAudioChordQuality; } export interface GardenAudioColorVoice { scaleDegreeOffset: number; velocityMultiplier: number; panOffset: number; } export interface GardenAudioVibeProfile { rootMidi: number; scale: Array; brightness: number; delayTimeMultiplier: number; progression: Array; } export interface GardenAudioConfig { masterVolume: number; fadeInSeconds: number; updateRampSeconds: number; highPassFrequencyHz: number; fallbackVibeId: string; compressor: { thresholdDb: number; kneeDb: number; ratio: number; attackSeconds: number; releaseSeconds: number; }; delay: { timeSeconds: number; feedback: number; wetGain: number; }; piano: { maxVoices: number; gain: number; sustainSeconds: number; sustainLevel: number; releaseSeconds: number; lowpassHz: number; }; input: { pressureFallback: number; }; rhythm: { bpm: number; stepsPerBeat: number; stepsPerBar: number; lookaheadSeconds: number; speedForFullEnergyPixelsPerSecond: number; sparseActivity: number; }; eraser: { minIntervalSeconds: number; noiseGain: number; filterMinHz: number; filterMaxHz: number; }; colorVoices: [GardenAudioColorVoice, GardenAudioColorVoice, GardenAudioColorVoice]; vibes: Record; } export const gardenAudioConfig: GardenAudioConfig = appConfig.audio;