Musa DSL Documentation

Complete documentation for the Musa DSL framework for algorithmic sound and musical composition.

📚 Documentation Structure

Getting Started

Core Subsystems

Detailed documentation for each Musa DSL subsystem:

Subsystem Description Documentation
MIDI Voice management & recording midi.md
Sequencer Temporal engine sequencer.md
Transport Timing & clocks subsystems/transport.md
Series Sequence generators series.md
Neumas Musical notation neumas.md
Datasets Sonic data structures datasets.md
Matrix Sonic gesture conversion matrix.md
Transcription MIDI & MusicXML output transcription.md
Music Scales & chords music.md
Generative Algorithmic composition generative.md
MusicXML Builder Music notation export musicxml-builder.md

Advanced Topics

For users extending the DSL or integrating deeply:

Topic Description Documentation
REPL Live coding infrastructure repl.md
Core Extensions Metaprogramming utilities core-extensions.md

🎯 Learning Paths

New to Musa DSL?

  1. Start with one of the Examples
  2. Read MusaDSL Architecture
  3. Explore subsystems in this order:

Want to Compose?

  1. Learn Neumas notation
  2. Explore Music (scales & chords)
  3. Try Generative algorithms
  4. Use MusicXML Builder for scores
  5. Explore Demo Projects - 22+ working examples

Live Coding?

  1. Set up REPL
  2. Configure MusaLCE client (VSCode/Atom/Bitwig/Live)
  3. Learn Sequencer DSL
  4. Explore Transport for timing

Extending the DSL?

  1. Understand Core Extensions
  2. Study Datasets extensibility
  3. Review existing subsystem implementations
  4. Check YARD documentation for API details

📖 Additional Resources

  • Main README: ../README.md
  • API Reference: api-reference.md - Complete class/method documentation (RubyDoc.info)
  • Examples: See examples/ directory in repository
  • Source Code: lib/musa-dsl/

Navigation: ← Back to Main README | ↑ Top