Aileen Ang
The Algorithmic Manipulation of MIDI Files Through Perl
Advisor: Brian Ladd, Math Department
Since 1982, Musical Instrument Digital Interface
(MIDI) has been a standard for communication and storage between electronic
musical instruments. MIDI is stored information that can take and
interpreted though a medium, which allows for sound output. This
differs from most music files that are saved in wave formats in which “real
sound,” or audio such as voices can be heard. Most modern computers
can interpret the sequence of sound events in a MIDI file and play back
the music.
Many graphical composition packages have been
developed using MIDI. They provide a broad range of manipulation tools.
Often, so many of these make it difficult to find any particular transformation
in the mix. Approaching the problem from the other direction, I have designed
a series
of seven simple, algorithmic music transformations in Perl, which support
simple MIDI composition. The transformations are interfaced through
the World Wide Web, permitting users to manipulate MIDI files through their
Web browser. The transformations include transposing, offset, ostinato,
mirroring, adding major and minor chords, changing the instrument,
and joining two files. The MIDI files can then be played or used
as the basis for additional composition.
Using a Perl (Practical Extraction Report
Language) package, MIDI::Simple, and learning the structure of the
MIDI file used by the package, some of the transformations, such as transposition,
offset, mirroring were created by manipulating a midi file to change
the value of a note or duration. Other manipulations such as changing the
instrument, ostinato (taking a sequence of notes and repeating them several
times, usually use as a base to a music piece), and adding chords requires
notes or information to be added to the structure with some changes
to the properties of the new notes.
In this project I have combined concepts that
are being taught in both the Computer Science and Music curriculums.
By using simple algorithms in programs to transform a musical idea, variations
of the musical idea can be expanded. As composers have done through
out history, these variations can be used to expand and create compositions. |