Construction of a console for a Hauptwerk Virtual Pipe Organ
Lots of progress: Touch panels are in, expression pedals are working, all piston buttons are working, and music desk in place. Still working on the rocker tab panels and figuring out what to do for the piston lights--Hauptwerk appears to only support the Launchpad but the piston lights and buttons are driven by MIDI signals from my own custom PC board. I'm getting some practice in and discovered the pedal board (a pull-out from a real pipe organ) has weak pedal springs and the felts need to be replaced.
After a long fight, the pedal board interface is now working. I set up the whole project on a table and now can play the stunning sounds from various European and US pipe organs. I had to work for a long time to trim the magnets (wear eye protection and do this with a fan blowing and a good mask--you absolutely do not want to breathe the ceramic magnet dust). Lesson learned, circular magnets need to be oriented, duh...) but eventually got it so pushing one pedal wouldnt trip adjacent pedal sensors. The bigger problem was the reed hysteresis--holding down one pedal, then an adjacent pedal, then letting go of the first pedal, the first pedal sensor would still be held down because of the magnetic field of the adjacent pedal. That field is not enough to trigger the reed sensor, but it is enough to hold it active. Yuck. Several weekends of working on this, but once I got that done, I put it all together and it worked without problems.
As I said, I put it all on a table so I can play it, but now the work on the real console begins. And, I need to wire up another Launch Mini board for all the piston buttons.
You probably saw it coming, but I didn't AARRGH!
Pushing one pedal moves the magnet close to several pedal sensors--each pedal press causes more than one sensor to trip. A near fatal showstopper. After some panic, I realized that some magnetic shielding between pedals might fix the problem. It has to be a ferromagnetic material, but not permanently magnetized (otherwise all the reed switches would permanently trip). I got a whole bunch of those ceramic line filters and took one apart. I slid one of the pieces between two sensors and this worked. It didn't trip the sensor, but the adjacent magnet wouldn't erroneously trip the sensor either. Presumably these line filters wont become magnetic over time... Anyway, now I'm machining all the brackets to hold these shields in place on the pedal board.
Now that the Novation Launchpad is hacked with code that will work with the Hauptwerk software, I can wire it up to the pedal board sensors.
Tested and working, so now I have to get to work on the pedal board sensors. Brackets hold reed relays, and round magnets on each of the pedals:
I never thought this approach would work! But it did, I now have a working modified Launchpad that outputs contiguous MIDI codes. I tested it with a pedalboard test program and it looks good. I was able to dump the Launchpad flash bits to an intel hex file, found the button-to-MIDI code map table in it, modified the table (actually the first of four) for 32 consecutive MIDI codes, modified the checksums, and re-flashed the Launchpad with the new file. Worked the first time!
Now I can wire in the pedal board and should be able to play the console (or at least the pieces of it sitting on a table--I don't have any of the console itself constructed.yet.
It was a couple of weeks actually worth calling a hack. The Novation Launchpad is frequently used for Hauptwerk console setups, and it works fine for pistons and stops. Hauptwerk supports these push-button to USB MIDI panels well, allowing you to configure any pushbutton to any stop. But--disaster struck! I planned to use a Launchpad to provide MIDI codes for the pedal board. I tested it early on and it worked fine for a few test pedal tries. So I built everything up with wiring from the pedal board to the launchpad buttons and--ooops. Missing codes in the Launchpad pushbutton MIDI code maps every 9 pedals. I can reconfigure Launchpad with the Novation Automap, but when this translator server is running, Hauptwerk thinks the Launchpad is unavailable. It turns out Hauptwerk does allow 4 banks of MIDI codes for a keyboard, but only two of them are actually available and that would not allow me to cover my 32 key pedal board (the other 2 are for something called second touch, apparently a theater organ function).
As far as I can tell there was only one solution--hack the Launchpad. After finding the processor JTAG/SW ports, I hooked up a debugger and after a fair amount of work, I found the push-button to MIDI map table, and low-and-behold, there are the missing codes. I should be able to just program in a different map table with contiguous pedal codes and voila... I hope. Still have to attempt to reprogram the flash with the new table...
After a lot of work, the organ console manuals have the piston fascias attached and a few piston switches installed. I put in all the keyboard electronics, wired them up, put all the manuals together. I first did a smoke test with all manuals, looked good--so why not--fire up Hauptwerk and see what works? YESSS! I'll get some pictures up in a day or so. Absolutely awesome sound, and everything works great. Still a long ways to go, though--I have to wire in the piston switches, lights, and the pedal board has to get the reed switches and diode array installed. Then the expression and crescendo pedals need to be wired up and connected to the MIDI FPGA board. But what a great start!