Support |
Just a few comments on Kim's "Program Change" discussion. While I can appreciate Kim's emotion over our apparent misuse of the MIDI Program Change message, I'm still not convinced that it was an entirely bad decision. Our decision to use Program Change messages for operational commands was made entirely for the benefit of our customers. At the time JamMan was released there were precious few MIDI foot controllers available and it seemed like the ones that were reasonably priced only transmitted program change messages. Our intent was to provide extended control of the JamMan for people on a tight budget and I think we did that. Another advantage to Program Change messages over Continuous Controllers is set up. Most foot controllers generate Program Change messages without any special configuration by the operator. Generating Continuous Controllers generally requires going into an edit mode and tweeking. My experience has been that most musicians don't want to have to tweek at all (many don't even like MIDI much less care about what messages are being sent). They want to plug it in and have it work. Done. If we have insulted the MMA by misusing the Program Change message, on behalf of Lexicon, I apologize. Our intent was to encourage the use of MIDI not to scare people away from it. MIDI has been getting a bad rap lately and if using Program Changes to execute functions instead of changing programs makes it less painful for people to use it, then I have no problem with it. We did not fundamentally change the MIDI spec we just gave people an easy way to use it. Bob Sellon Lexicon/Stec ---------- From: Loopers-Delight[SMTP:Loopers-Delight@annihilist.com] Sent: Sunday, August 03, 1997 7:34 PM To: Loopers-Delight Subject: 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 ______________________________________________________________________ Kim Flint | Looper's Delight kflint@annihilist.com | http://www.annihilist.com/loop/loop.html http://www.annihilist.com/ | Loopers-Delight-request@annihilist.com