Module: Musa::MusicXML
- Included in:
- All
- Defined in:
- lib/musa-dsl/musicxml/builder/helper.rb,
lib/musa-dsl/musicxml/builder/note.rb,
lib/musa-dsl/musicxml/builder/part.rb,
lib/musa-dsl/musicxml/builder/rest.rb,
lib/musa-dsl/musicxml/builder/measure.rb,
lib/musa-dsl/musicxml/builder/direction.rb,
lib/musa-dsl/musicxml/builder/attributes.rb,
lib/musa-dsl/musicxml/builder/part-group.rb,
lib/musa-dsl/musicxml/builder/typed-text.rb,
lib/musa-dsl/musicxml/builder/pitched-note.rb,
lib/musa-dsl/musicxml/builder/backup-forward.rb,
lib/musa-dsl/musicxml/builder/score-partwise.rb,
lib/musa-dsl/musicxml/builder/unpitched-note.rb,
lib/musa-dsl/musicxml/builder/note-complexities.rb
Overview
MusicXML generation system.
This module provides a comprehensive DSL for generating MusicXML 3.0 files programmatically. It uses a builder pattern with a flexible API that supports both constructor-based and DSL-style notation creation.
Architecture
The MusicXML builder system is organized hierarchically:
ScorePartwise (root)
DSL Features
The builder provides two equivalent ways to create scores:
- Constructor + add methods: Imperative style
- DSL blocks: Declarative style with
withblocks
Both styles leverage AttributeBuilder and With mixins from core-ext.
Use Cases
- Algorithmic composition with MusicXML export
- Score generation from Musa DSL performances
- Converting MIDI recordings to notation
- Creating notation examples programmatically
Defined Under Namespace
Modules: Builder