Module: Musa

Defined in:
lib/musa-dsl.rb,
lib/musa-dsl/version.rb,
lib/musa-dsl/repl/repl.rb,
lib/musa-dsl/music/chords.rb,
lib/musa-dsl/music/scales.rb,
lib/musa-dsl/core-ext/with.rb,
lib/musa-dsl/logger/logger.rb,
lib/musa-dsl/matrix/matrix.rb,
lib/musa-dsl/neumas/neumas.rb,
lib/musa-dsl/transport/clock.rb,
lib/musa-dsl/transport/timer.rb,
lib/musa-dsl/core-ext/arrayfy.rb,
lib/musa-dsl/core-ext/hashify.rb,
lib/musa-dsl/generative/rules.rb,
lib/musa-dsl/midi/midi-voices.rb,
lib/musa-dsl/generative/darwin.rb,
lib/musa-dsl/generative/markov.rb,
lib/musa-dsl/core-ext/deep-copy.rb,
lib/musa-dsl/core-ext/extension.rb,
lib/musa-dsl/midi/midi-recorder.rb,
lib/musa-dsl/series/base-series.rb,
lib/musa-dsl/series/proxy-serie.rb,
lib/musa-dsl/series/queue-serie.rb,
lib/musa-dsl/series/timed-serie.rb,
lib/musa-dsl/generative/variatio.rb,
lib/musa-dsl/neumalang/neumalang.rb,
lib/musa-dsl/sequencer/timeslots.rb,
lib/musa-dsl/series/buffer-serie.rb,
lib/musa-dsl/transport/transport.rb,
lib/musa-dsl/core-ext/inspect-nice.rb,
lib/musa-dsl/datasets/score/render.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/transport/dummy-clock.rb,
lib/musa-dsl/transport/timer-clock.rb,
lib/musa-dsl/core-ext/dynamic-proxy.rb,
lib/musa-dsl/music/chord-definition.rb,
lib/musa-dsl/neumas/array-to-neumas.rb,
lib/musa-dsl/series/quantizer-serie.rb,
lib/musa-dsl/series/series-composer.rb,
lib/musa-dsl/musicxml/builder/helper.rb,
lib/musa-dsl/neumas/string-to-neumas.rb,
lib/musa-dsl/sequencer/sequencer-dsl.rb,
lib/musa-dsl/musicxml/builder/measure.rb,
lib/musa-dsl/sequencer/base-sequencer.rb,
lib/musa-dsl/core-ext/attribute-builder.rb,
lib/musa-dsl/core-ext/smart-proc-binder.rb,
lib/musa-dsl/musicxml/builder/direction.rb,
lib/musa-dsl/transport/input-midi-clock.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/transcription/transcription.rb,
lib/musa-dsl/series/main-serie-operations.rb,
lib/musa-dsl/core-ext/array-explode-ranges.rb,
lib/musa-dsl/generative/generative-grammar.rb,
lib/musa-dsl/musicxml/builder/pitched-note.rb,
lib/musa-dsl/transport/external-tick-clock.rb,
lib/musa-dsl/series/main-serie-constructors.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,
lib/musa-dsl/sequencer/base-sequencer-tick-based.rb,
lib/musa-dsl/series/hash-or-array-serie-splitter.rb,
lib/musa-dsl/sequencer/base-sequencer-tickless-based.rb,
lib/musa-dsl/music/equally-tempered-12-tone-scale-system.rb,
lib/musa-dsl/sequencer/base-sequencer-implementation-play-helper.rb

Overview

Musa-DSL: A Ruby framework and DSL for algorithmic sound and musical thinking and composition.

Musa-DSL is a programming language DSL (Domain-Specific Language) based on Ruby designed for sonic and musical composition. It emphasizes the creation of complex temporal structures independently of the audio rendering engine, providing composers and developers with powerful tools for algorithmic composition, generative music, and musical notation.

Who is it for?

  • Composers exploring algorithmic composition
  • Musicians interested in generative music systems
  • Developers building music applications
  • Researchers in computational musicology
  • Live coders and interactive music performers

Key Features

  • Advanced Sequencer - Precise temporal control for complex polyrhythmic and polytemporal structures
  • Transport & Timing - Multiple clock sources (internal, MIDI, external) with microsecond precision
  • Audio Engine Independent - Works with any MIDI-capable, OSC-capable or any other output hardware or software system
  • Series-Based Composition - Flexible sequence generators for pitches, rhythms, dynamics, and any musical parameter
  • Generative Tools - Markov chains, combinatorial variations (Variatio), rule-based production systems (Rules), formal grammars (GenerativeGrammar), and genetic algorithms (Darwin)
  • Matrix Operations - Mathematical transformations for musical structures
  • Scale System - Comprehensive support for scales, tuning systems, and chord structures
  • Neumalang Notation - Intuitive text-based and customizable musical (or sound) notation
  • Transcription System - Convert musical gestures to MIDI and MusicXML with ornament transcription expansion

Documentation

For complete user manual, tutorials, examples, and detailed subsystem documentation, please visit the Musa-DSL project on GitHub:

https://github.com/javier-sy/musa-dsl

The README.md file contains comprehensive documentation including:

  • Quick Start guide
  • Complete tutorial
  • System architecture overview
  • Detailed documentation for all subsystems
  • Installation instructions
  • Usage examples

Defined Under Namespace

Modules: All, Chords, Clock, Darwin, Datasets, Extension, GenerativeGrammar, Logger, MIDIRecorder, MIDIVoices, Markov, MusicXML, Neumalang, Neumas, REPL, Rules, Scales, Sequencer, Series, Transcription, Transcriptors, Transport, Variatio

Constant Summary collapse

VERSION =
'0.40.0'.freeze