How tkleisas/yawn works
Y.A.W.N is a cross-platform digital audio workstation. The principal workflow is a musician editing session or arrangement clips, then launching or playing them through the audio engine to a mixed output; MIDI, instruments, effects, and automation shape playback. Separate workflows cover visual/VJ output, external sync and controllers, plugin hosting, media analysis, and library browsing. The README documents these capabilities; sampled source confirms selected audio, MIDI, automation, visual, and controller connections, so unsampled wiring is omitted.
Main entry points: App.cpp Application · AudioEngine.cpp Audio Engine · VisualEngine.cpp Visual and VJ Engine · Project.h Project State
Components 25
Editing and Project
- Application
src/app/App.cpp - Session and Arrangement
src/ui/panels/SessionPanel.cpp - Arrangement Editor
src/ui/panels/ArrangementPanel.cpp - Project State
src/app/Project.h - Project Persistence
src/util/ProjectSerializer.cpp
Audio and MIDI
- Audio Engine
src/audio/AudioEngine.cpp - Clip and Timeline Playback
src/audio/ArrangementPlayback.cpp - Mixer and Effects
src/audio/Mixer.cpp - Instruments
src/instruments/Instrument.h - Automation
src/automation/AutomationEngine.cpp - MIDI Engine
src/midi/MidiEngine.cpp
Visual Engine
- Visual and VJ Engine
src/visual/VisualEngine.cpp - Video and Live Input
src/visual/VideoDecoder.cpp - 3D Models and Scripts
src/visual/gltf/M3DModel.cpp
External Integrations
- MIDI Devices
src/midi/MidiPort.h - Ableton Link
src/link/LinkManager.cpp - Controller Scripting
src/controllers/ControllerManager.cpp - VST3 Hosting
src/vst3/VST3Host.cpp
Media and Library
- Audio Analysis
src/transcribe/StemSeparation.cpp - Media and Preset Library
src/library/LibraryScanner.cpp - Library Database
src/library/LibraryDatabase.cpp
Other components
- Musician
- Audio Output
- Link Peers
- VST3 Plugins
Connections 28
- Musician → Application: operates
- Application → Session and Arrangement: presents
- Application → Arrangement Editor: presents
- Application → Project State: manages
- Session and Arrangement → Project State: edits clips
- Arrangement Editor → Project State: edits timeline
- Application → Project Persistence: loads and saves
- Application → Audio Engine: controls playback
- Audio Engine → Clip and Timeline Playback: processes clips
- Audio Engine → Automation: processes automation
- Audio Engine → MIDI Engine: routes MIDI
- Audio Engine → Instruments: renders instruments
- Audio Engine → Mixer and Effects: mixes audio
- Mixer and Effects → Audio Output: sends audio
- MIDI Engine → MIDI Devices: receives and sends
- Application → Visual and VJ Engine: controls visuals
- Visual and VJ Engine → Video and Live Input: uses video input
- Visual and VJ Engine → 3D Models and Scripts: renders models
- Visual and VJ Engine → Audio Engine: reads audio reactivity
- Application → Ableton Link: coordinates tempo
- Ableton Link → Link Peers: syncs over LAN
- Application → Controller Scripting: manages scripts
- Controller Scripting → Audio Engine: sends commands
- Application → VST3 Hosting: hosts plugins
- VST3 Hosting → VST3 Plugins: loads plugin
- Application → Audio Analysis: runs audio analysis
- Application → Media and Preset Library: browses media
- Media and Preset Library → Library Database: indexes media