back to list

RE: MIDI Tuning Dump Standard

🔗"jloffink" <jloffink@...>

9/29/1997 7:47:17 PM
In Digest 1191, Carter Scholz writes:

>In Digest 1189, John Loffink writes:

>>The MIDI Tuning Dump standard certainly has deficiences, probably
>>because not many people contributed to its conception.

>Most likely. Six people contributed to original spec. A preliminary
>version was published in Computer Music Journal with a request for
>comments. One comment was received.

I saw the preliminary version in 1/1 and Computer Music Journal. At
the time, I did not see the weaknesses in the spec. I was working
with keyboards with full keyboard tuning tables (EPS and TX81Z). I
was using fixed just intonation scales without any real modulation,
apparently just like the creators of the spec. For these purposes,
it works just fine.

>>The greatest limitation is the insistance on handling tuning dumps
>>only on a full keyboard basis. This makes dynamic tuning programs
>>like Justonic's almost impossible as the MIDI bandwidth can't
>>support real-time updates.

>But the spec says that the full keyboard "non-real-time" dump isn't
>intended for performance. Instead, there's an additional 12-byte
>"real-time" message for retuning any individual note on the fly.

>I don't know exactly what Justonic is doing, but I can't imagine why it
>would need more than these 12 bytes per note-on. The synthesizer
>doesn't need to know the entire tuning table, it just needs to get
>up-to-date frequency data for sounding notes from its host.

A MIDI byte takes 320 microseconds to transmit. Let's say you have
a fairly dense arrangement with 20 notes on 10 MIDI channels sounding
as you modulate to another tonic. It takes, not counting the actual
note ons, 320 us per byte x 12 bytes per message x 20 sysex messages =
76.8 milliseconds to send the updated tunings to the various
instruments. This is clearly not adequate. It is also very painful
to insert these individual sysex messages in a general purpose
sequencer unless you modulate or change scales only infrequently.

A sysex octave tuning table is generally around 30-42 bytes long.
Sending 320 us per byte x 36 bytes per message x 10 MIDI channels =
115.2 milliseconds. Well, that's even worse, unless you're using
just 2-3 synthesizers with global rather than channelized tuning
scales.

Since the MIDI bandwidth limitation is the problem, the obvious
solution for now is to preprogram the modulations into the synthe-
sizer tuning tables and select the tables over MIDI sysex. This
works well with instruments like the DX7IIFD and TX802 which can
store 64 tables, or the K2000 and K2500 which can store 255 tables.
It does not work well with programs like Justonic that don't
presume to know where you will modulate to in advance. Justonic
uses just one of the preprogrammed scales for all of its
modulations.

>>The other problem is the immediate updating of sustained notes.
>>This is also a problem for real-time key modulations, especially
>>for rapid paced music.

>To quote from the spec:

>"There is some question as to whether instantaneous response to
>real-time tuning changes is desirable in every circumstance. In some
>performance situations it makes more sense if a tuning change affect
>only those notes which occur subsequent to the change, and not affect
>sounding notes. But there are also situations in which tuning changes
>should take place instantaneously, as specified in the standard, and
>should affect sounding notes without disrupting their continuity.

>"If the instrument responds well in the latter situation, some
>workaround is possible for the former. The reverse is not true.
>Therefore the standard requires that tuning changes immediately affect
>sounding notes. Manufacturers might, however, consider implementing a
>switchable instantaneous/next-note-on option within an instrument."

>I still think this is sound. An example of when immediate response by
>sounding notes might be desired: glissando of a tone to keep a fixed
>tonic during certain modulations.

I haven't figured out what the workaround is to next-note-on type
compositions with an instrument that supports only instantaneous
retuning. Perhaps you could explain further? If I want sustaining
notes to hold their current tuning while sounding new notes in a
new scale, what are my options? If it's back to the individual sysex
messages per note, I'll need some MIDI Draino to unclog the limited
bandwidth.:-)

John Loffink






SMTPOriginator: tuning@eartha.mills.edu
From: Carter Scholz
Subject: Re: Tuning 1193
PostedDate: 30-09-97 05:41:51
SendTo: CN=coul1358/OU=AT/O=EZH
ReplyTo: tuning@eartha.mills.edu
$MessageStorage: 0
$UpdatedBy: CN=notesrv2/OU=Server/O=EZH,CN=coul1358/OU=AT/O=EZH,CN=Manuel op de Coul/OU=AT/O=EZH
RouteServers: CN=notesrv2/OU=Server/O=EZH,CN=notesrv1/OU=Server/O=EZH
RouteTimes: 30-09-97 05:41:28-30-09-97 05:41:29,30-09-97 05:40:26-30-09-97 05:40:26
DeliveredDate: 30-09-97 05:40:26
Categories:
$Revisions:

Received: from ns.ezh.nl ([137.174.112.59]) by notesrv2.ezh.nl (Lotus SMTP MTA SMTP v4.6 (462.2
9-3-1997)) with SMTP id C1256522.001443F8; Tue, 30 Sep 1997 05:41:21 +0200
Received: by ns.ezh.nl; (5.65v3.2/1.3/10May95) id AA02085; Tue, 30 Sep 1997 05:41:51 +0200
Date: Tue, 30 Sep 1997 05:41:51 +0200
Received: from ella.mills.edu by ns (smtpxd); id XA02090
Received: (qmail 21753 invoked from network); 29 Sep 1997 20:41:48 -0700
Received: from localhost (HELO ella.mills.edu) (127.0.0.1)
by localhost with SMTP; 29 Sep 1997 20:41:48 -0700
Message-Id: <199709300340.UAA05772@well.com>
Errors-To: madole@mills.edu
Reply-To: tuning@eartha.mills.edu
Originator: tuning@eartha.mills.edu
Sender: tuning@eartha.mills.edu