How dadziek/vibemusician works
VibeMusician is a Flask application for controllable, autoregressive classical MIDI generation. A user selects a MIDI seed and generation parameters in the web interface; the API normalizes the request, the generator samples events with the trained Transformer, and MIDI export produces a downloadable file. The README also documents a separate model-training workflow. Generator internals are only partially sampled, so the graph omits uncertain internal calls; the training relationship follows README documentation.
Main entry points: music.py Music API routes · main.py Flask application · music_generator.py Controlled generator · index.html Generation interface
Components 13
Web application
- Generation interface
templates/index.html - Flask application
main.py - Music API routes
routes/music.py
Music generation
- Generation config
services/generation_config.py - Controlled generator
services/music_generator.py - Transformer model
models/music_model.py - MIDI exporter
services/midi_exporter.py - Generated MIDI files
Model training
- V4 training notebook
training/vibemusican_v4.ipynb
Other components
- User
- Trained checkpoint
- MIDI seed bank
- Classical MIDI dataset
Connections 14
- User → Generation interface: uses
- Generation interface → Music API routes: submits parameters
- Flask application → Music API routes: registers routes
- Flask application → Controlled generator: initializes
- Flask application → Trained checkpoint: loads
- Flask application → MIDI seed bank: loads
- Music API routes → Generation config: normalizes request
- Music API routes → Controlled generator: requests generation
- Controlled generator → Transformer model: runs inference
- Controlled generator → MIDI exporter: exports events
- MIDI exporter → Generated MIDI files: writes MIDI
- Music API routes → Generated MIDI files: serves download
- Classical MIDI dataset → V4 training notebook: provides training data
- V4 training notebook → Trained checkpoint: exports model