Midge
Midi sequencing from the comfort of your text editor
Midge, for midi generator, is a text to midi translator.
It creates type 1 (ie multitrack) midi files from text
descriptions of music.
The source language used is documented in the man page,
and demonstrated in the source files in the
examples
directory.
Midge is
free software and you are welcome to redistribute it under the
terms of the GNU General Public Licence. Midge comes
with ABSOLUTELY NO WARRANTY.
Midge has been tested with Perl 5.8.0 on GNU/Linux, and
ActiveState Perl 5.8.0 on Windows XP, and should work on any
system with a basic installation of Perl 5.005 or higher. The
last version tested with Perl 5.005 was version
0.2.27
but the latest version should still work.
The included midi2mg script additionally requires the MIDI
modules by Sean M. Burke, which are available from
CPAN.
- Sections of music can be predefined and reused multiple times,
transposing if required.
- Allows nested repeats.
- Supports setting of reverb and chorus.
- Supports setting of note on/note off velocity.
- Supports setting of individual track volume.
- Supports setting of track/instrument names.
- Supports setting of key signature.
- Supports tuplets, which may be nested.
- Supports pitch bending and setting of pitch
wheel range.
- Tempo and time signature can be changed within
a track.
- Can choose a note or riff randomly from a list
of notes and/or predefined riffs.
- Can choose multiple notes randomly from a list
of (different length) notes or riffs to produce a riff
of specified length.
- Can generate a sequence of notes from a user
defined `chain' structure where for each note
there is a weighted list of notes which may
follow it.
- Can offset notes from the beat by either a specified
or randomly chosen amount.
- Separate note on and note off events can be used to
play simultaneous notes.
- Supports text marker events.
- Supports panning events.
- Supports bank changes.
- Supports rpn and nrpn controllers.
- Ranges (eg `8-64') can be used when setting the
volume, pan, reverb, chorus, attack and decay, which
causes a random value within the range to be used.
- An emacs mode with syntax highlighting for editing
and compiling midge files and playing the resulting
midi files (if you have a command line midi player).
See README.elisp
-
New head section keyword $bar_strict to check consistency of bars,
giving an error or warning unless each track has the same number of
bars and numbered bars appear at the same time in each track. (Patch
contributed by Gary Wong).
-
Fix for timing in chords.
There are more examples included in the archive.
To install, just unpack the archive and run:
to configure the install path and the path to your perl executable,
and then:
to install the program and man page.
Debian packages
are available from debian.org