Toolset for making music on old hardware with MIDI files.
A compact MIDI parser/writer implementation in PHP for manipulation of MIDI files.
MidiFile:
- Almost complete standalone implementation of MIDI-File-Reader/Writer
- Simple object tree of MIDI tracks for easy manipulation
- Many things are mapped from numbers into a readable form
- Charset support (if set, all text events are converted from this charset to utf-8)
- Very error-forgiving implementation (tries to recover from most cases - log errors only)
- Most MIDI-files are bit-identical after parsing/writing
MidiEditor:
- Automatic manipulation of MIDI files to fit old hardware
- Merge all tracks into one (to make global events like setTempo and deltaTime handling easier/possible)
- Track/Channel selection
- Change instrument
- Change volume
- Transpose high notes down
- Remove short pauses (for fluent playing)
BinaryNoteRenderer:
- Render notes to a binary file for playing them with stepper-motor-player
MidiGenerator:
- Convert notes in form "D5:1/8 D5:1/8 H4:1/8 C5:1/4 A4:1/4" to MIDI files
- Set tempo in bpm
- Set instrument
C program to play a binary notes file (generated by midi-editor) on a stepper motor via GPIO on Raspberry Pi.
Features:
- Automatic direction change
- Tune notes (adjust delay overhead)
Simple Web-Interface for midi-editor and stepper-motor-player