keyboard_l.png
keyboard_r.png

MIDI files

In the late 1980s, probably about 1987, my consulting client Mark Williams Company provided me with an Atari 1040 ST. Mark Williams sold Atari ST software, including a popular C compiler. (This machine still resides in my office closet, probably not booted since I stopped using it in 1991.) The Atari ST had MIDI ports. MIDI had been around since 1982, but the Atari was my first MIDI hardware. My brother David loved to buy electronic equipment, and knowing my programming and musical proclivities he generously bought me a Roland D-10 synthesizer, just for fooling around.

Before long, I wrote software for the Atari to capture MIDI output from the synth, play it back, and edit it: a MIDI sequencer, though I didn't call it that at the time. My C sources are in a tarball here. The tarball file datestamps are from 1994, but the sources actually date from 1989 and 1990. The sequencer was command-line oriented; there was no visual display of the musical data, so editing was tedious and time-consuming. I did have a few ideas that worked really well, such as the ability to use pitch information to set voice placement in the stereo image (e.g., in Goldberg variation 14).

Once I wrote the sequencer, I could use my meager keyboard skills to create music that I loved but could not play in realtime, notably polyphonic masterpieces from the Golden Age and the Baroque. I created about 60 MIDI files in a flurry of activity in mid-1989, including most (but not quite all) of the Goldberg Variations and several Golden Age masses. The performance quality varies widely, from terrible to barely adequate.

My sequencer software predated the Standard MIDI File specification, but in 2001 I wrote code to convert my MIDI files from my internal binary MIDI data format to Standard MIDI (.mid) format so I could play them on a Mac or PC. The Atari data contained some Roland D-10 specific System Exclusive MIDI messages (to write text information to the D-10 display and to perform voice selection) and some unplayed tracks, suppressed in the conversion to .mid. The converted files contain some stuck notes not in the originals, possibly due to a bug in the conversion program.

My sequencer and synthesizer also predated the General MIDI standard, and Roland D-10 voice assignments do not correspond to GM voices. Many of the files below sound wretched simply as a consequence of odd GM voice assignments, and the terrible quality of most software synths doesn't help. They sound much, much better on the D-10 for which I wrote them. Someday I should update the voice assignments in keeping with General MIDI, but don't hold your breath.

The MIDI files below will probably play directly from your browser.


Bach: Goldberg Variations [without 16, 25, 29]
Aria Var. 1 Var. 2 Var. 3 Var. 4 Var. 5 Var. 6 Var. 7 Var. 8 Var. 9 Var. 10 Var. 11 Var. 12 Var. 13 Var. 14 Var. 15 Var. 17 Var. 18 Var. 19 Var. 20 Var. 21 Var. 22 Var. 23 Var. 24 Var. 26 Var. 27 Var. 28 Var. 30 Aria

Bach: Two-Part Inventions
Inventio 1 Inventio 7 Inventio 8 Inventio 10 Inventio 13

Bach: Well Tempered Klavier Book II
Prelude 16 Fugue 16

Josquin: Missa Pange Lingua [without Sanctus, Agnus Dei]
Kyrie Gloria Credo

di Lasso: Missa Quinti Toni
Kyrie Gloria Credo Sanctus Hosanna Benedictus Hosanna Agnus Dei

Monteverdi: Missa a 4 voci da cappella
Kyrie Gloria Credo Sanctus Benedictus Agnus Dei

Palestrina: Missa Papae Marcelli
Kyrie Gloria Credo Sanctus Hosanna Benedictus Hosanna Agnus Dei I Agnus Dei II