How thandonma/padloop-studio works
PadLoop Studio is a browser-based ambient-pad sampler. Users load WAVs onto twelve pitch pads, adjust and key-lock layers, then play sustained loops through a session transport; kits and samples persist locally and can be exported or imported. The graph follows the documented UI → store → library/worker and store → audio-engine paths. Audio helpers and SQLite behavior are supported by sampled source; some feature wiring and UI details come from the README, since their full implementations were not sampled.
Main entry points: audio-engine.service.ts Audio engine · library.service.ts Library service · studio.store.ts Studio store · app.ts App shell
Components 20
User interface
- App shell
src/app/app.ts - Pad grid
src/app/ui/pad-grid.ts - Layer inspector
src/app/ui/pad-inspector.ts - Transport controls
src/app/ui/transport-bar.ts
Studio state
- Studio store
src/app/state/studio.store.ts
Audio engine
- Key detection
src/app/audio/key-detect.ts - Audio engine
src/app/audio/audio-engine.service.ts - Loop processing
src/app/audio/loop.ts - Pitch calculations
src/app/audio/music.ts - Loop phase
src/app/audio/phase.ts
Kit storage
- Library service
src/app/storage/library.service.ts - Audio validation
src/app/storage/audio-formats.ts - WAV inspection
src/app/storage/wav.ts - Kit file codec
src/app/storage/kit-file.ts - SQLite worker
src/app/storage/db.worker.ts - Database schema
src/app/storage/schema.ts
Other components
- Musician
- Browser database
- Audio output
- Sample and kit files
Connections 24
- Musician → App shell: uses
- App shell → Studio store: initializes
- Pad grid → Studio store: selects and loads
- Pad grid → Audio engine: triggers pads
- Layer inspector → Studio store: edits layers
- Transport controls → Audio engine: controls playback
- App shell → Studio store: manages kits
- Studio store → Key detection: estimates key
- Studio store → Library service: reads and saves
- Studio store → Audio engine: syncs layers
- Audio engine → Library service: loads audio
- Audio engine → Loop processing: prepares loops
- Audio engine → Pitch calculations: calculates rate
- Audio engine → Loop phase: tracks loop phase
- Audio engine → Audio output: plays audio
- Library service → Audio validation: checks formats
- Library service → WAV inspection: inspects WAV
- Library service → Kit file codec: encodes and decodes
- Library service → SQLite worker: posts requests
- SQLite worker → Database schema: applies migrations
- SQLite worker → Browser database: reads and writes
- Musician → Sample and kit files: selects files
- Sample and kit files → Library service: provides sample or kit
- Library service → Sample and kit files: downloads kit