back to list

non-realtime microtuned MIDI

🔗bf250@freenet.carleton.ca (John Sankey)

11/3/1996 12:08:05 PM
I have a program that takes a plain single-block MIDI file, adds
pitch bends at the beginning of 12 channels, then puts each
note in a different channel (but leaves them in 1 block), to
tune harpsichord music to historical tunings. It seems to work
on all computer cards and synths (at least 10,000 people have
downloaded my files to date, see
http://www.ncf.carleton.ca/~bf250/harpsichord.html for links).
Since there are 15 channels in GM (one being the reserved
"drum" channel), that gives room for 3 enharmonics. When I
record a mean-tone piece, I play it ignoring enharmonics, then
go through by hand and decrement the velocity setting by one
for the notes that go in the 3 extra channels (there aren't
many, the arrow keys on my sequencer step through the notes,
so it only takes a single click of the mouse button to
decrement velocity by 1) so the program knows which ones they
are.

Of course, exactly the same technique can be used for
close-to-full microtuning by approximation with 15 12-tet
tunings - the only problem is, what is the most practical way
to tell the program what note is which when there are too many
notes to want to do it by hand as I do now? Probably it would
be to play the piece through N times, with a different
velocity setting each time, playing only the notes in a
certain class each time, then merging to a single block. Then,
would it be easier to play by note number (note# 0-127, then
128-255 ...), or interlaced (note# mod N = 0,N-1)? Or, has
someone a better idea?

If the list comes to any agreement on this, I am willing to
extend my program and make it available (freeware). I write in
ANSI BASIC with the sole extension required being binary file
I/O, so it should run on just about any computer anywhere. (I
use QuickBasic on a PC now.)

Received: from ns.ezh.nl [137.174.112.59] by vbv40.ezh.nl
with SMTP-OpenVMS via TCP/IP; Mon, 4 Nov 1996 21:16 +0100
Received: by ns.ezh.nl; (5.65v3.2/1.3/10May95) id AA07716; Sat, 2 Nov 1996 11:04:46 +0100
Received: from eartha.mills.edu by ns (smtpxd); id XA07641
Received: from by eartha.mills.edu via SMTP (940816.SGI.8.6.9/930416.SGI)
for id CAA29643; Sat, 2 Nov 1996 02:04:43 -0800
Date: Sat, 2 Nov 1996 02:04:43 -0800
Message-Id: <961102100138_71670.2576_HHB42-3@CompuServe.COM>
Errors-To: madole@ella.mills.edu
Reply-To: tuning@eartha.mills.edu
Originator: tuning@eartha.mills.edu
Sender: tuning@eartha.mills.edu