Skip to content


Repository files navigation


Build Status Try scribbletune on RunKit

Use simple JavaScript Strings and Arrays to generate rhythms and musical patterns. Directly use the names of scales or chords in your code to get arrays which you can mash up using Array methods in ways you hadn't imagined before! Create clips of musical ideas and export MIDI files which you can import in Ableton Live, Reason, GarageBand or any music creation software that accepts MIDI files.


npm install scribbletune

Use it to create a MIDI clip by running a JS file from your terminal using node.js

const scribble = require('scribbletune');
const clip = scribble.clip({
    notes: scribble.scale('C4 major'),
    pattern: 'x'.repeat(7) + '_'

scribble.midi(clip, 'c-major.mid');

You can use Scribbletune even in the browser with Tone.js!. There are a couple of ways to do this. A quick and dirty way is to make sure to pull in Tone.js followed by the latest browser version of Scribbletune.

<script src="<LATEST-VERSION-FROM-CDNJS>/Tone.min.js"></script>
<script src="<LATEST-VERSION-FROM-CDNJS>/scribbletune.js"></script>

This will expose a global object called scribble which you can directly use to run the methods from Scribbletune in conjunction with Tone.js

The recommended way for the browser, however, is to import it like this

const scribble = require('scribbletune/browser');

This will provide the same API but augment it a bit to support browser based functionality.

Similarly, you can use the Scribbletune API for Max for Live development by doing

const scribble = require('scribbletune/max');

Just like the browser version this too will enable the same API but with some added bells and whistles for Max for Live.

Visit for documentation, tutorials and examples! Listen to music generated with Scribbletune on Soundcloud.