Notes

Notes procedurally generates melodies and beats

This project is maintained by jamesrobertcarthew

What does it do?

Notes procedurally generates MIDI files for use as Chord Progressions, Melodies and Beats with a DAW (Digital Audio Workstation). All DAWs are capable of MIDI playback, however, Notes was tested using Ableton Live. The procedural generation process used in Notes is explained well in this short video and similar tools are available in Java, Unity and as a Native Instruments plugin. Notes operates in terminal and generates a midi file based on the inputted rules. Notes generates Melodies in either 'major' or 'minor' modes in addition to a Beat generating 'drums' mode.

Demonstration Tracks

A playlist of notes.py generated music is maintained here.

How do I install it?

  1. Ensure you have Python installed by typing python -v into the terminal.
  2. Download Notes.
  3. Navigate to the Notes/PYTHON directory in terminal. If you have no experience with using terminal have a read through this.
  4. Notes requires numpy and midiutil. To install these dependancies you can try running pip install -r requirements.txt or follow the links for alternate methods.
  5. You may have to type chmod a+x notes.py to make notes.py executable.
  6. To check if all is well type python notes.py 3 4 -i 5. If the installation is successful you should receive the message I made you Int3and4Ite5_in_1_minor.mid.

How do I use it?

I aim Notes at a bin within an Ableton project and generate a stack of MIDI files that I then pull into the Ableton session and apply to a synth or drum. Inside Ableton I will double/ half the tempo of the midi files and apply to either monophonic or polyphonic devices to create pads, basslines and beats.

The minimum required input for Notes is:
python notes.py 3 4 -i 5
where 3 4 determine two time intervals and -i 5 determines the number of iterations of the procedural generation algorithm to be applied.
For a complete list of options available:
python notes.py -h