Project

jmtk

0.01
No commit activity in last 3 years
No release in over 3 years
A music library and domain-specific language for generating music via MIDI.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 2.4
~> 0.3
~> 0.1
~> 2.0
 Project Readme

MTK: a Music Tool Kit for Ruby

MTK is a Ruby library and custom domain-specific language (DSL) for generating musical material.

MTK is flexible: You may use the custom music-generating language without writing any Ruby code, or you may avoid the custom language and only program in Ruby, or anywhere in between.

Features

  • A minimalist syntax (DSL) for generating musical patterns
  • Read and write MIDI files
  • Record and output realtime MIDI signals
  • Sequence MIDI-compatible event streams
  • Manipulate musical objects like pitch, duration, and intensity
  • Generate deterministic and non-deterministic music via flexible patterns such as looping sequences and random choices

Getting Started

MTK works with Ruby 1.9, Ruby 2.0, and JRuby 1.7+.

JRuby is recommended for Windows users.

  1. Install

     gem install mtk
    

    Or for JRuby:

     jgem install jmtk
    
  2. Learn the command-line interface:

     mtk --help
    

    Or for JRuby:

     jmtk --help
    
  3. Learn the MTK syntax with the interactive tutorial by running

     mtk -t
    

    Or for JRuby

     jmtk -t
    
  4. Check out examples: https://github.com/adamjmurray/mtk/tree/master/examples

  5. Read the MTK Ruby library documentation

About this project

This project is developed by Adam Murray (github.com/adamjmurray).

It is a free and open source project licensed under a permissive BSD-style license. I simply ask for credit by including my copyright in derivative works.

You can learn more about the development of this project at the development notes page.