Looper's Delight Archive Top (Search)
Date Index
Thread Index
Author Index
Looper's Delight Home
Mailing List Info

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Date Index][Thread Index][Author Index]

RE: Midi standards

Greg asked me this a while back, and I haven't had time to answer until
now. I must say it has really been amusing to me. It's probably totally
dull and technical to many of you, feel free to skip it. Basically a long
rant directed at the MI industry in general, and maybe a little bit
unnecessarily hard on Lexicon. No offense intended towards them, just
trying to be provocative and stir things up a bit, as usual. I wrote most
of it a while ago when I must have been more stressed out than I am now, so
try not to get too peeved by the rough edges. I've chilled a bit since :-).
Some interesting things to think about, hopefully:

At 3:08 PM -0400 6/25/97, Hogan, Greg wrote:
>Dear Kim,
>Can you please tell us where in the MIDI spec it states that program
>change messages are ONLY for changing programs?  I don't believe it does.
>Best regards,
>Greg Hogan
>Lexicon Customer Service

If the MIDI spec were to define everything by describing what you are not
supposed to do with it, it would be infinitely long, would it not? That's
why industry standards are not written that way!

Industry standards are agreements between the members of a particular
industry to use a common interface and greatly increase the possibility
that devices from different manufacturers can operate together. They are
not laws or regulations, and do not have agencies enforcing them. They
merely have volunteers representing different parties, working together to
define the standard and add clarifications and extensions where necessary.
Complying with the standard is done as a matter of faith in the process.

In the case of MIDI, we have the MIDI Manufacturers Association, or the
MMA. The MMA is not big and powerful, and is not known for operating
quickly, but they do appear to be quite dedicated to maintaining the
integrity of the MIDI Standard. They have an electronic forum where members
are able to discuss proposed changes and additions to the midi spec. Voting
is held periodically to determine whether proposals should become official
components of the spec. Examples of this sort of process of addition
include Midi Sample Dump, Midi Show Control, and General Midi. I've never
been active in this process myself, but I've followed it a little bit and
may end up being involved one of these days.

I think the definition of MIDI program change is clear and
self-explanatory. It is for changing programs on a device. Programs are
generally taken to mean the configuration a device is set to. With a
synthesizer, sending Program Change on a given midi channel is understood
to set the instrument used on that channel. With an effects device, it is
understood that Program Change sets the patch that is currently being used
to process audio. With a sequencer or drum machine, Program Change sets
which pattern or song is currently cued up. To abstract this a little bit,
Program Change alters the configuration of a device, but in no case does it
execute a function.

We have different commands to execute functions. For a synthesizer, we
configure a channel with Program Change, but we execute on that channel
with Note On and Note Off commands. With the sequencer, we execute with
Start Song and Stop Song. We do not expect Program Change to cause any
functional execution. Likewise, we do not expect Note On/Off or Start/Stop
Song to change the device configuration. With an effects device, there is
usually no concept of execution, because the processing is always on.
Therefore, there is no corresponding "execute" command.

In the case of the JamMan and other looping devices, we are not merely
dealing with a passive effects device. We are dealing with a device that
executes functions under control of the user. In my opinion, using MIDI
Program Change messages to execute these functions is a significant
deviation from the manner in which Program Change has traditionally been
used in other devices, including other devices from Lexicon.

So I wonder, Did Lexicon discuss this new use of Program Change with the
MMA? Did Lexicon attempt to work with the MMA to determine which commands
best suited their new type of need? Did Lexicon attempt to propose a new
subset of MIDI commands for looping to the MMA, in the manner Charlie
Richmond did with Midi Show Control when he wanted to use MIDI to control
lighting rigs?  Or did Lexicon glance at the MIDI 1.0 spec published in the
early 80's, ignore the years of subsequent discussion, additions, and
publications, see that the spec didn't say you couldn't use Program Change
any way you wanted to, and just go ahead?

Perhaps the fact that Lexicon has primarily dealt only with effects and
processing is why they stumbled over this subtlety? If you never had to
allow users to truly execute functions, could you have failed to realize
the distiction that other devices have always dealt with?

Or was it just convenience? Lots of potential users owned simple midi
controllers that only sent Program Change, why not use that? "The MMA is
too slow, and we want to sell product." Lots of people have taken that
route, unfortunately. The classically simple decision with larger
ramifications than anyone is realizing? How often do we complain about
decisions that only help in the short term but hurt in the long term?

And what do we do in the case of a looping device that can also have it's
configuration changed? If there had been a JamManII with 128 presets, how
would it's functional executions be controlled? Either you can't have 128
presets, or you can't be compatible with your own products! That would have
been a troubling situation, and following the MIDI Standard spec would have
helped you to avoid it. That's what standards are for! Not to mention the
fact that it helps you to be compatible with other manufacturers.

By making the seemingly trivial choice to use Program Change, I think that
Lexicon effectively diluted a portion of the MIDI Standard specification
and the MMA's process, and I think that was irresponsible on the part of a
major manufacturer in the music industry. At the same time, I sincerely
doubt there was any malicious intent to subvert the MIDI spec or the MMA,
and suspect it is just a combination of ignorance and convenience. I know
how easy that is, because I've made similar decisions myself.

Lexicon is presumably a member of the MMA, but I really have no idea how
active the company is in the organization. It is clear that they have been
involved from the very earliest days, since Lexicon has manufacturer ID 6.
My question to you, Greg: With your comments above, you don't mean to
indicate that Lexicon is not totally committed to this history and the
continuing process of evolving the Midi Standard specification, do you?
Does it really make sense for Lexicon to try to justify what seems to me to
have been a poor decision, with the reasoning you have used? Wouldn't it
make more sense for Lexicon to say, "Yeah, that wasn't a very good idea.
Sorry about that."

I may seem a little insane for going on about this. But I hope you see what
I am trying to get at. Looping devices are continuing to develop, and are
becoming more sophisticated. We won't really be able to use Program Change
to control these devices. It's not just the philisophical distinction
between configuration and execution. Or the fact that Program Change will
be needed for it's intended purpose. There are technical reasons too, since
Program Change only sends one byte of information and a minimal control
interface can take advantage of at least two. (that's why the echoplex uses
note and controller messages, which send two bytes, for control. The
interface is more sophisticated and Program Change doesn't convey enough
info. This has it's own set of problems, less philosophically severe than
the program change decision, but admittedly still troubling. That's why we
let the user select which way they want the midi control to work, in the
hopes that it doesn't conflict with something else.)

We need a standard way to communicate with these devices, or we have chaos
and the ability for a fledgling segment of the industry to grow is
hampered. Lexicon probably doesn't care about that anymore, but it would be
nice if a company with so much influence didn't continue supporting a
position that limits the rest of us from developing future generations of
looping products. Would that be too much to ask?

thanks for your patience, and honestly not trying to offend,


Kim Flint                   | Looper's Delight
kflint@annihilist.com       | http://www.annihilist.com/loop/loop.html
http://www.annihilist.com/  | Loopers-Delight-request@annihilist.com