Path: cbfsb!att!linac!pacific.mps.ohio-state.edu!zaphod.mps.ohio-state.edu!qt.cs.utexas.edu!cs.utexas.edu!uunet!wang!gozer!stauff!ed From: ed@stauff.UUCP (Edward L. Stauff) Newsgroups: rec.music.synth Subject: MIDI Pedalboard -- how I built one Message-ID: Date: 24 Aug 91 02:46:46 GMT Organization: Minstrelsy & Lutherie Lines: 153 In response to several recent inquiries, I hereby submit this posting. Please send replies to rec.music.synth, comp.music, or the address in my .signature. * * * An Organ-Pedal MIDI Controller * * * -- How I done it, and how U can do it 2. -- In 1990, after years of idle doodling, designing, and procrastinating, I built a MIDI pedal controller that features (almost) full AGO compass and velocity. This article describes the what, how, where, why, and how much. Why build one? -------------- Why, indeed. As recent articles have indicated, there is (to my knowledge) no commercially available add-on MIDI pedalboard that even remotely conforms to AGO (American Guild of Organists) specifications. In practical terms, AGO specifications means 32 pedals (C-G), though 30 or even 27 notes may be enough; and full-length (around 30") pedals, not the stubby spinet-style things. The pedalboard should also be concave and radiating. I have seen at least one spinet-style MIDI pedalboard of around 18 short pedals: totally useless for playing organ literature, or anything other than the most rudimentary bass line. (Okay, the last phrase is an opinion.) Full MIDI pedalboards are available on top-of-the-line electronic organs, but you have to pay several or many thousands of dollars for such a thing. So, the purpose of the project was to obtain, at a reasonable cost, a MIDI pedalboard on which "the literature" could be performed. The necessary components: ------------------------- In order to construct a MIDI pedalboard, one needs the following components: 1. a pedalboard 2. a computer (almost any microprocessor will do) 3. an interface between the pedalboard and the computer 4. some sort of interface to generate MIDI (a programmable UART will do) While it is possible to generate MIDI output without the use of a computer of some sort, I wouldn't want to try it. Even on a dare. As it happened, I had an IBM PC clone at my disposal, and an MPU-401 clone: so much for (2) and (4). Where to get a pedalboard: -------------------------- I also had an old 3rd or 4th-hand pedalboard on hand which I acquired some years ago by being in the right place at the right time. If you want a pedalboard and don't know where to look, I highly recommend contacting one or more of the following in your area: 1. Pipe-organ builders, tuners, and technicians. 2. If you can't find (1) in the phone book, find a church that has a pipe organ. Somebody has to tune the thing and fix it when it breaks. 3. Theatre-organ clubs. New pedalboards can be obtained from pipe-organ supply companies, such as Organ Supply Industries and Reisner/Kimber-Allen. Expect to pay in excess of $700 for one. Expect also to get what you pay for: quality. By comparison, you can expect to pay anywhere from $0 to $200 for a used pedalboard. Here's one address: Organ Supply Industries Box 1165 Erie, PA 16512 (814) 864-3011 Those of you with woodworking shops could try building one, though it's probably less work to find a used one. If you're bent on (or forced into) building one, a good reference is "The Contemporary American Organ" by Barnes. It includes the official AGO specifications. The Hardware Interface ---------------------- Okay, so you've got your computer, your MIDI interface, and your pedalboard, all of which are potentially off-the-shelf parts. Now you need to attach a set of switches to the pedalboard, if it didn't come with them. If you want velocity (like I did), you'll need two switches on each pedal: one near the top of the key-travel, and another near the bottom. The software will measure the time delay between the two switches and translate it into velocity. What kind of switches? Oh. Well, I ended up rolling my own switches out of silver wire. I don't recommend it; they're messy to adjust and I had to build a box to cover and protect them. Reed switches or micro switches would probably be better. But I had to go the cheap route. Organ Supply Industries sells silver wire; don't try to use copper or steel, they'll oxidize. Had I known then what I think I know now, I would have interfaced to my PC's parallel port, which (so I am told) does in fact work bi-directionally. However, what I did was to build a card that plugs into the PC's bus, and another card that sits on the pedalboard. The two cards contain some SSI and MSI TTL IC's that, though the use of multiplexers and latches, map the 64 switches (2 per key, remember) into eight 8-bit i/o ports. I split up the circuitry into two cards so that the cable between the PC and pedalboard could be 13 wires (8 data, 3 address, power & ground) instead of 65. I won't attempt to reproduce the schematic, 'cause it's too much trouble, and also because it doesn't quite work completely. The board interferes with my floppy drive; I ended up mounting a switch to disable it so I can use the floppy. I suspect timing problems having to do with DMA, but I digress. The Software Interface ---------------------- If you're going to do this the way I did it, I'd be happy to send you source code. For now, I'll just summarize. If you want velocity, then you need a decently fast timer interrupt: around 1 Khz. The standard PC timer interrupt is fast enough for scanning without velocity, but not with velocity. However, if you don't have velocity, then you need to perform debouncing in software. It turns out that with velocity, debouncing isn't a problem. Consider each key to have four states: up, down, going-up, and going-down. You can't really tell going-up from going-down, but you can infer it from the previous state. Use the 1 Khz timer interrupt to increment a counter, and remember the last time (counter value) when each key was up or down. When a key makes a transition from going-down to down, generate a MIDI Note On message. When a key makes a transition from going-up to up, generate a Note Off message. Oh, one more thing: you'll almost certainly want your software to echo the MIDI interface's MIDI IN to MIDI OUT at the same time -- which means merging the incoming MIDI data with the MIDI data you're generating from scanning the pedalboard. I won't go into detail on this; I'll send (or post) source code on request. The Result ---------- Having been an organist for over 20 years, and having been into MIDI stuff for around 4, all I can say is: oh, wow! Most MIDI keyboardists can't appreciate how much more you can do (in live performance) with a pedalboard added to your rig -- until they try it. Most organists can't appreciate the possibilities that MIDI opens up -- new timbres, keyboard split points (on pedals, too!), velocity, etc., etc. -- until they try it. And for my money, there's nothing quite as exciting as playing Bach's Jig Fugue on a "pedal synthesizer": it's a whole-body sensual experience. Now, if I could just learn to play that Widor Finale... So What's Next? --------------- A product, of course. If I were, say, Yamaha, I could easily develop and market an add-on MIDI pedalboard controller for under $1000. Now, whether I can do such a thing with my own meager resources remains to be seen. If I do, you'll see it advertised here. Postscript: Toe Studs --------------------- I did say my pedalboard was *almost* full compass, didn't I? It turns out that what I remembered as being a 32-note pedalboard actually had 30 notes. I didn't discover this until I had the hardware mostly built. So, rather than waste 4 bits of input, I wired the spare bits to four toe studs which I mounted on the pedalboard. (Toe studs are big pushbuttons operated with the feet, found on organ consoles.) My software will send patch changes (or anything else I want) when a toe stud is pressed -- or released. The toe studs have turned out to be much more useful than the extra two notes would have been. + - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + | Edward L. Stauff | "Specialization is for insects." | | gozer.uucp!stauff!ed | -- Lazarus Long | + - - - - - - - - - - - + - - - - - - - - - - - - - - - - - +