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
2025
2026
 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.