KIMI is a research project developed by Luciano Azzigotti in conjunction with the doctoral dissertation "Speculative Organology" within the Specialized Master and PhD in Music Performance Research programme at the Hochschule der KΓΌnste Bern.
- Real-time interactive audio synthesis
- Network-synchronized playback
- Multiple synthesis types
- Compact command format
- User-to-user sound routing
Each command follows this structure:
synthType(param1,param2,...).duration.destination
synthType
β Type of synthesis (pulse, fm, am, karplus, etc.)param1, param2, ...
β Encoded parameters (frequency, modulation, etc.)duration
(optional, default = infinite) β Duration of the sound eventdestination
(optional, default = local) β User to send the command to
pulse(4,1).4s.kimi β Play pulse at vol=4, 1Hz for 4s, locally
fm(3,5,2) β FM synth, vol=3, modIndex=5, ratio=2, locally
am(2,0.5,1).2s β AM synth, vol=2, depth=0.5, ratio=1 for 2s
karplus(5,20) β Karplus-Strong pluck, vol=5, decay=20ms
noise(6,white).3s β White noise, vol=6 for 3s
grain(3,2,5) β Granular synth, vol=3, speed=2, density=5
Synth Type | Command Format | Parameters |
---|---|---|
Pulse | pulse(vol, rate) |
Volume (0-9), Rate in Hz |
FM Synth | fm(vol, modIndex, ratio) |
Volume, Modulation intensity, Frequency ratio |
AM Synth | am(vol, depth, ratio) |
Volume, Modulation depth, Frequency ratio |
Karplus-Strong | karplus(vol, decay) |
Volume, Decay time in ms |
Noise | noise(vol, type) |
Volume, Type (white/pink/brown) |
Grain | grain(vol, speed, density) |
Volume, Playback rate, Grains per second |
- Ctrl+Enter: Evaluate command
- Ctrl+P: Play/Stop chronometer
- Ctrl+0: Reset chronometer
- Ctrl+H: Clear text
- Real-time command broadcasting
- User-to-user targeting
- Synchronized playback
- User presence and status
- Vue.js - Frontend framework
- Vite - Build tool and dev server
- WebSocket - Real-time communication
- Tone.js - Audio synthesis
- Ace Editor - Code editor
- Spatial audio management
- Timeline synchronization
- Enhanced visual feedback
- More synthesis types
This project is part of academic research at the Hochschule der KΓΌnste Bern.