Lighted Pistons for the DSO in Max!

I have written previously about my decision to use an off-the-shelf box of MIDI buttons to serve as stop control.  The MIDIfighter 3D sends MIDI notes as its data output.  It also can receive MIDI notes, with different velocities indicating to the unit what color it should make the rings around each button.  When the MIDIfighter receives a note-on, this overrides whatever the normal “off” setting is for each ring, and persists until it receives a note-off message.

In this way it is possible for me to preset the MIDIfighter with my own color scheme to organize the buttons.  I can use a color for couplers, a different one for combinations, something for individual stops, etc.  Then, when I select one by pushing a button, I can use Max to generate a Note-On message with appropriate velocity to provide a visual indication of what is selected.  When I push the button again or “retire the stop”, then Max will send a Note-Off message, returning the button to its default color.  In the world of virtual organs – this is something that not all sample sets support in Hauptwerk.   With the proper Max patch, the DSO will have lighted pistons!


With this patch, I learned a number of new things about Max, particularly about its internal order of operations, which are quite important in the signal flow of this patch.  At the very top of the patch, I use the “notein” object to only take note data from the MIDIfighter – it can also send out CC data due to accelerometers in it on two axis, but I don’t want that data.   The “stripnote” object ensures that I only see note-on messages – it tosses note-off objects on the floor.  This is perfect, because I only need the note-ons, and will generate the note-offs myself in the rest of the patch.  I actually only need the note-number, which is why I only use the leftmost outlet of this object.  The integer box is just so I can see what is happening, and the “clear” message zero’s the array for debugging when clicked – in normal use it does nothing.

The real action depends on the next two boxes – the “table” object and the “value” object.  I knew there had to be the equivalent of a traditional array in Max, just like every other language, and sure enough, that is what the table object is.  It defaults to having 128 rows, which is perfect for receiving note values.  By default the table is all 0’s, which is perfect.  I have 64 possible note values, spread across 4 “pages” of the MIDIfighter’s buttons.  By giving the table a name, it becomes globally referenceable in the patch, which we will need to make this work.  The “value” object serves to create a global variable named notenum that I can reference later.

The actual program logic works as follows:

1. Take the note number and look it up in the buttons table.

2. If that value is “0”, then we currently “Off” and need to turn “On”

a) set the value in buttons to “1” to indicate that we are “on”

b) send the appropriate MIDI note to the MIDIfighter to change the ring color

3. If the value is “1”, then we are already “On”, and need to turn “OFF”

a) set the value in buttons to “0” to indicate that we are “off”

b) send the appropriate MIDI note-off to the MIDIfighter to change the ring color back to default

It is a very simple state machine, with the state held in an array.

The order of operations becomes very important throughout the bottom portion of the patch, and things are lined up left-to-right in a very intentionally.  Execution is from right-to-left and then depth-before breadth.  So for the “table buttons” objects, they execute when triggered by their Left inlet.  That means that I need to have the value I want to set at the right inlet BEFORE the notenumber triggers the table insert operation.  Max is an interesting language.  A lot of the function of objects is built into the order and inlets of the object.  Reading the documentation is mandatory for sorting out how to get the results you wish.  This same logic applies to the “noteout” object at the very bottom of the patch.  It receives data right to left, so that when it finally gets the notenumber input on its left-most inlet, it has everything it needs to form the note correctly and send it out to the MIDIfighter.

So this was a fun little exercise.  I had a bit of logic debugging to fully understand the order of operations as applied to the objects I was using, but in the end I learned several things:  how to use arrays, how to declare and use global variables, that the “if…then” statement could directly output a gate or “bang” as Max calls it.

Lit Stop Buttons Clearly Show State

Lit Stop Buttons Clearly Show State

The lighting part was the trickiest part.  I now have button state held in a global array, so it should be trivial to use this state to open and close ranks, send MIDI panics, etc.  We’ll be getting to those as the project progresses and the console comes to life!  These LED rings become more visible the less stage light there is, and so will be viable in all lighting conditions.

Future work will involve choosing a final color scheme and then adding logic so that the “off” and “on” colors correspond to brighter and dimmer versions of the same color across all 64 buttons.  I will leave un-used buttons completely dark so they are not confusing.  Some buttons, like the general cancel and MIDI panic buttons will not be latching, and will need to be filtered out before this logic takes place.  All of that is simple work that will easily build on top of this foundation.

Working with the MIDIFighters

The primary way of modifying the color and behavior of the MIDIfighters is through a small software utility DJ TechTools calls “mfUtiliy”.

How to work with Midifighters

How to work with Midifighters

Using this tool, I can easily set the default “on” and “off” colors for each button, on each of the 4 layers.   The “off” colors are the outside ring, the “on” colors are the button center.  The actual buttons are solid black plastic and do not light up, this is just a GUI thing.

I find the Midifighter 3D very powerful, because I am never more than one button away from any other bank, so it really is 64 buttons in an 8×8″ cube.  There is extensive integration with Traktor DJ software and Ableton, but I ignore all of that.  The mfUtility application sets up the base unit, and then my Max code can change the LED ring to the “on” color for me, and maintain it until I clear the stop or coupler manually.

mfUtility is also used to flash the firmware.  I had a problem with my Midfighter Twister the first time I used the application.  It suggested that an update was needed, so I dutifully pushed the button.  It downloaded new firmware, and erased the flash, and then failed to load the new image onto the device.  This bricked the unit, and it was completely non-responsive to all recovery efforts.  DJ TechTools RMA’d it without question and sent a FedEx envelope for the return, which was a nice touch.  They have been a pleasure to communicate with after the sale and quite helpful.  As with all things computer, if you don’t know what a firmware update is going to buy you, it may not be worth doing!

The unit has a bunch of very flashy animations that can happen when you push a button.  I suppose they would video well for the DJ booth shot videos. For my application, the button animations are simply distracting, so I turned them all off.  I will devise a color scheme to mark buttons for stops, combinations, couplers, MIDI panic, etc.

The guide for using MIDI note-on messages with the MIDIfighter 3D seems to be here, but my unit with current firmware does not match that guide at all.   Contacting DJ Tech Tools, I was told to download the guide from their Spectra.  This guide exactly matches my unit, and allows me to do what I want to do.  This chart from the manual has the correct velocities.

Correct Midifighter MIDI Assignment

Correct Midifighter MIDI Assignment

For me, the basic workflow is to use the mfUtility software to set the default “off” state of the buttons in each layer to the lighter version of a color.  Then I use Max to set the “On” color to the brightest value for that color when I push the button.  In this way, the color-coding of stops will always be apparent whether latched on or off.  This will be important for manually changing registration on the fly.

The mfUtility software is basic and has been a mixed experience for me.  On my OSX 10.9.4 laptop, it works fine with my Midifighter 3D.  On my OSX 10.9.4 Mac Pro, it insists that my Midifighter 3D has old firmware and refuses to work without flashing the device.  After my negative experience with bricking my Twister, I’m not about to let it touch what works fine on my laptop.  Once I get my devices fully setup, I doubt I will have much ongoing need, so this is teething issues, I suspect.

So, I think my summary is that I like the hardware, but the software utility is not inspiring confidence.  Several of the controls don’t seem to do what the manual says (at least until you get the right manual).  That said, they seem like a reliable controller in the physical domain, and I will be using Max to make them what I desire in the MIDI domain.  They very reliably sent and receive MIDI, and really, that is all I need them to do.  I know the firmware is mostly made for DJ’s running DJ software, so there may be subtleties there that I am just not hip to, and reasons why my experience has been what it is.  I suspect that most use these on factory defaults with DJ software.  I just want it to be a box of knobs or a box of buttons as appropriate.

MIDI Knobs and Buttons

Every musician who makes music with a computer has a use for knobs and buttons.  Computer keyboards are made for text entry, not controlling parameters or signaling desired activity.  When one goes looking for knobs and buttons, there are LOTS of choices.  The large MI companies make dizzying amount of cheap plastic controllers with keys, knobs, faders and buttons.   While plentifully cheap, they are often not that durable, and exude “cheap” instead of nice.  The best controls are often on much more expensive “controller keyboards”.  But what if one already has lots of keyboards (I do…), and just needs a compact bank of knobs or buttons?  And I want it to be nice – not $1000 nice, but better than $50 nice.

I don’t know what caused me to think it, but I thought “DJ’s!”  DJ’s need durable controllers – someone must make something for DJ’s to perform on!  I quickly found Livid Instruments – very nice stuff, but almost too feature-rich.  All of their devices did more than I needed (and cost more too).  Then I found DJ Tech Tools, a local San Francisco company.

Now, anyone that knows me would not be likely to say that I am very oriented to the EDM/DJ culture.  I listen to it from time to time, but Kebu is more my thing than Skrillex for sure!  I’ve never used Traktor or Serato, and have only the vaguest notion of how they work.   What I know is gleaned from skimming the DJ Tech Tools site!  But, the fine beat-makers and cool people over there also make some hardware.   They make it durable, simple, and compact.

I bought my “box of knobs” several months ago and use it with my orchestral samples to draw in automation curves for MIDI CC numbers.  Works perfectly, and slots in price-wise at just over $200 – Goldilocks “just right”.  It is a quality unit and feels solid and “all of a piece”.  They call this box the “Midi Fighter Twister“, I believe.  It has three buttons on each side of it in order to integrate with DJ software, but I can’t comment on any of that.  It sits on my desk and is a box of nice MIDI knobs. It is bus powered via USB, and no drivers are required.  Usefully, each knob can also be pushed as a MIDI button.   16 high-quality and good feeling knobs + 16 MIDI buttons in an 8″x8” package easily fits on my desk or perched on a blank spot on a keyboard.  As you rotate a knob, the lights show roughly where the knob is at.  Their mfUtility software can be used to change the color swatch under the knob so you can assign colors to functions, etc.  The knobs are fairly long-throw to get to MIDI 127, so they enable quite fine control over parameters, which is exactly how it should be on a controller.

A box of knobs

A box of knobs

As I’m working on the Digital Synthesis Organ (DSO), I was thinking about how I wanted to change sounds.  I thought about buying organ thumb pistons and doing custom MIDI wiring work, in a custom Lucite “mini-console” but I realized that if I was going to memorize piston numbers, I could just as easily work with a button matrix.  Enter the “MIDI Fighter 3D” – DJ Tech Tool’s box-of-buttons.

Box of Buttons!

Box of Buttons!

This is a powerful controller.  It is just as well-made as its knobby cousin.  Both have a grippy rubber surround and a quality feel.  This one has 16 arcade buttons, each surrounded by an LED ring.  There is software that lets me assign the color of the ring and then a 2nd color to indicate a press of the button.  You can also see in the picture that there are four “bank” buttons on the unit, turning the 16 buttons into 64.

This is perfect for the DSO – The controller is small, light, looks cool, and the color rings will be quite useful to me.  I can have colors represent different functions, sound families, divisional vs. global presets, etc.  The ability to show which buttons are “latched” will be visual indication of which stops are pulled on the DSO.  The black rubber finish looks perfect next to the Seaboard, and there is clean visual integration from a stage perspective.  With two of these doing stop control on my left, and the Abelton push on my right, it should look properly spaceship like.  It will certainly NOT look like a traditional organ console!

The MIDI Fighter 3D is also motion sensitive and senses tilt and roll.  Mine will likely live its life right next to the Seaboard on the DSO stand, but if the promo videos are any indication, apparently DJs can dance around with them, triggering sounds and such.  I demonstrated my DJ dance for my teenage kids, but they were not impressed, so I guess we’ll cancel that part of the first DSO concert and stick to the playing.

DJ Tech Tools ships each unit with one of their right-angle MIDI cables.  They are nice, but only 6′ long, which I’m sure is fine in a DJ booth.  6′ is way too short for running up and down keyboard stands, but if you need short cables, they are quite nice.  Also, they make something called “Chroma Caps” that can replace all the knobs on the knobby unit with colors of one’s choosing.  If you have dedicated knobs to functions, this could be a good “mod” to your setup.

If you need either knobs or buttons for your MIDI rig, I’d highly recommend these controllers.  They are priced fairly and do a great job without having to pay for stuff that you may not need.  If you need more, by all means look at the beautiful Livid Instruments stuff.  It is great to see the industry maturing to the point that we are getting “nice” MIDI controllers and not just “lowest cost” stuff.  For electronic musicians – these are part of our instruments – they should feel good, perform well, and be satisfying like the rest of our rig.  You won’t go wrong with their stuff, and after you buy, you’ll get newsletters keeping you current with what is happening in DJ world.  It is amazing how big the musical world is, and for me that represent a view into a totally different world.


Update 1/15/2015 – The folk at DJ TechTools pointed out to me that the Twister has buttons along each side of the unit that can be set up to bank the knobs.  So, just like the 3D, it turns into 64 knobs and 64 buttons!  Very powerful.  I was happy with 16!

Divisional Couplers in Max

Last post we looked at creating super and sub-octave couplers in Max for the DSO.  In this post, we will see how easy it is to couple divisions of the DSO together.

In a pipe organ, each division of the organ is controlled by a particular keyboard.  Said backwards, each keyboard controls a particular roomful of pipes!  The pipes that are controlled by a given keyboard are literally not connected to the other keyboards or pedalboard!  In practice, this is not as limiting as it seems.  Each division is supposed to be furnished with a complete and useful set of stops.  By having different characteristics on each manual, a wide range of expression can be realized.

Divisional couplers multiply the possibilities exponentially.  A divisional coupler allows one to take all the stops currently pulled on one division, and play them from another division’s keyboard.  For example, if I engaged a “Great-to-Pedal” coupler, then I could play the stops of the Great division of the organ from the pedalboard.  A “Pedal-to-Great” coupler would allow me to play the pedal stops from the keyboard of the Great division.  Very handy!

Now, it is obvious that in a MIDI virtual world that there are no chambers full of pipes, no wind chests, and no divisions.  Any sound could be played from anywhere.  I have chosen to preserve the idea because the divisions also serve an organizational and tonal purpose.  Given that the DSO will have 50-70 stops when it is complete, it is necessary to have them organized by some principle.  By making each division of the organization complete, with a range of tonal color, but a certain “bent”, each division can stand alone for polyphonic playing.  “Color” stops, like the reed voices of a organ can often be added to a completely different division to create new textures and timbres.  I can easily have Max remember the most useful combinations for me as dedicated global pistons.  This same idea is common on new electronic actions, and has been for many decades now.  So, I will use divisions as a way to organize and tonally shade my sounds, and then still have the ability to create global combinations of interest.

So, on to getting this done in Max.  Because of my model of having the MIDI note data act as “wind pressure” behind the stops,it is easy to access all the note data coming from a keyboard or the pedalboard – whether one channel or many like the Seaboard.

Great-to-Pedal Coupler in Max

That raw flow of notes from the pedalboard is coming into the “midifomat” object at the top left and applies “pressure” to the pink inlet of the switch.  When I press the assigned toe piston on the pedalboard, it generates a CC message that flips the toggle beside the “midiformat”, and opens the switch.  That note data then flows to each rank in the Great division.  Any stops that are pulled allow that note information to flow on to the sound source for that rank.  In the picture above, that would be the third stop of the Great organ (the toggle is selected).  The pedalboard will now play whatever I select, or stop playing whatever I de-select on the Great.  As soon as I retire the coupler, the note data is held up at the switch, and the pedal division returns to playing only its own ranks.

This is an easy coupler to build in Max, as you can see, but very powerful artistically.  When I add a second manual, I will add a Swell-to-Pedal coupler to gain access to those stops as well.

I chose for my organ console to only couple the actual notes played on the pedal board.  It would be trivial for me to instead couple the played notes plus the super/sub-octave couplers.  I chose to keep those confined to the pedal division. In some cases, I will want to couple the sounds of the Great division so that the pedals play the bass sound that matches the manuals.  My hands will be playing the upper voices, so I don’t need a super octave from the pedals playing up underneath my hands – I want to play just the bass notes.  If I want the super/sub-octave on the Great, I can get it by just engaging the super/sub-octave couplers on the great, and then with some creative routing, I can play the pedals and get the super/sub octave happening on the Great.

Max makes even complex signal flow and logic very easy to follow.  I am still using it within the trial period, but there is no doubt that Max will become a permanent part of my tool kit.  It is very useful.

Octave Couplers in Max

Some of the most useful couplers on an organ are the Super and Sub Octave couplers.  They add the octave above and below the note you are playing across all the stops you have pulled on that division.  So, if both are pulled, it triples the notes played.  Of course, they can also be used individually.  They work wonders to fatten or clarify a bass line, or to emphasize full tutti melodies, where just like an orchestra, you want all attention on a particular melodic line.

In a real organ, this is either programming inside the electronics, or a lot of complexity on a tracker instrument.  For me, on the DSO, it turns out to be very easy to accomplish.  Because I have the MIDI notes split out from the control data as soon as they enter my console patch, all I have to do is make a switch and then add or subtract 12 from whatever the note number is.  I need to leave the velocities alone so that I get crisp “Note-On” and “Note-Off” messages from each.

Super and Sub-Octave Couplers in Max
This portion of my console patch shows the logic clearly.  The green lines show the flow of MIDI note data.  The purple is the “bang” or gate signal from the control logic.   The MIDI notes played on the pedalboard provide constant “pressure”  on the pink inlet of the switches.  When CC24 127 is received from me pushing a toe piston, this creates a “bang” or gate signal that flips the state of the toggle and sends the gate signal on to the blue control input of the switches.  This lets the MIDI note numbers and velocities through the switches.  After the appropriate +12 is done to the note number, the note-number and velocity are re-packed and inserted into the note stream headed to the pedal ranks.   Because the MIDI data straight from the pedal board is also present at the “midiformat” object at the bottom of the picture, I get the note and the super-octave.  Using this setup, I can generate three Note-On or Note-Off messages for every note played on the pedalboard, for every stop that is pulled – true super and sub-octave couplers!  Toggling CC24 by pressing the toe piston again reverses the process and closes the switches, removing the coupler from the chain.

When I have my stop system in place for the manuals, they will also get this same logic.  All this took perhaps 15-20 minutes to sort out.  Max is easy and fast.

———-Geeky Max Learning below ———————

Why are there two switches?  Because there are note-on and off messages, I can’t switch just the note number – I also have to switch the corresponding velocity.  If I don’t switch them together, then I could get into a situation where a note is sounding, but I take the switch off before the note-off, and then I’d have a hung note!

Why use “pack” and not “pak”?  Pak creates a data at its output every time ANY of its inputs changes.  When I tried that, I was getting up to three copies of each note due to varying arrival times of the velocity vs the note number!  Changing this to “pack” instantly solved the problem.  It only generates output when it receives a new note-number.  Because Max executes right to left, the correct velocity is already waiting on the right input of the “pack” object.

Updated Jan. 10, 2015:

Jim Self on a Google+ conversation noticed that there was a cleaner way to do the couplers in that I was using two switches where I only needed one.  The new coupler is shown on the left, the old on the right.  I will update my Max patch so that both couplers are of the new design.  It is always great to have code be as clean and efficient as possible.  Many thanks to Jim for his observation!  I’ve tested both ways and both work, so why not go with the simplest solution?  In this case, less is more!


Creating an Organ Console in Max – Pedalboard

A large measure of the expressiveness of a pipe organ comes from creative registration (i.e. what stops you select and how you combine them).  While the DSO is fully touch and pressure sensitive, pipe organs are not this way.  This means that console features are very important to controlling the sound.  I have chosen to incorporate most of those ideas into the initial build of the DSO.

Because I have the pedalboard completed, it is the first surface that I have fully set up in Max.

This Max patch makes every signal that the pedalboard provides available in a useful fashion.  Starting from the top, the full output of the pedalboard arrives at an external MIDI port on my system.  It hits a “midiparser” object that splits out the control and note data into separate stream.

The note data flows directly to the switches just above the pedal ranks, providing constant “pressure” that will flow the note data wherever the switches are open.  In this way, one note can play simultaneously on all ranks, just like a pipe organ.

The control data passes as CC messages to the twenty “ctlin” objects (gold lines).  Each is listening to a particular MIDI CC number that corresponds to a physical toe piston switch on my pedalboard.  The three continuous pedal inputs are in the center between the rows of toe pistons.  Each CC message contains the CC number, CC value, and MIDI channel.  What I want is a simple state transition between 0 and 127 and back.  Each button push generates a 127, and its release a 0.  This is 2x the data I need.  Enter the “togedge” object.  It transitions only to and from 127, so each push of the toe piston reverses the signal.  This provides the desired gate signal (or “bang” in Max-speak) that can operate the toggles and the switches controlling the note flow.   The gate signals are shown in purple.

I am especially enjoying the fact that Max lets me think of the note and CC data as a “wind stream” or “flow” that behaves just like air or water would under pressure.  It has made it very easy for me to manipulate the MIDI data and add features to my console.  In the days ahead we will look at my implementation of super and sub-octave couplers and divisional couplers – both ideas absorbed from traditional console design.  The rich data from the Seaboard is in blue.  This data is multi-channel, with continuous aftertouch and pitch information per note.  I wanted a different color to distinguish these flows from the simple note-on/note-off flows that come from the pedalboard.  Like a pipe organ, my pedalboard is not velocity or touch sensitive. The ability to use color certainly makes it easy to keep a Max Patch organized and clean.

You can see that the continuous pedals are not yet wired into the ranks.  Ultimately they will be connected to provide volume control for two manuals and the third will provide a programmed crescendo pedal once I get all the synth programming done. For now, it is enough that they are understood, parsed, and sitting waiting for me to connect them as I please.

The Digital Synthesis Organ (DSO)

My year is going to be spent trying to actualize a project I’ve been working on for some time, a project I refer to as “the DSO”.  The DSO is an ongoing project to explore what happens if you take the control surface of a pipe-organ and mate it with a raft of synthesizers.  When expressed this simply, the idea is certainly nothing new.

An early synth organ project – nicely done!


Another cool synth Organ from history

So, while there is little I claim as unique in terms of the concept, the execution will certainly have a personal touch.  The idea is appealing to me on several fronts.

1) The pipe organ has the most evolved control surface of any keyboard instrument.  Pipe organs have been around a long time – over 900 years.  For most of their life, they were one of the great mechanical feats of mankind, and among the most complex machines built. The system of pistons, stops, divisions, couplers, etc. provide the most developed control paradigm for selecting and combining sounds.  It seems obvious to me that this control surface design would work with a raft of synthesizers as the tone generating facility.  It also allows for full use of all of one’s limbs, much like the drums, and unlike almost every other instrument.

2) The organs tonal design is based on the harmonic series that underlies all music.  Artful combination and manipulation of the harmonic partials is where timbre comes from in all instruments, not just pipe organs where it is clearly marked on the stop tab.  Synthesizers can manipulate harmonics easily, and so, it seems useful to think about combining the two ideas.  I also like the idea of “voicing” my synth patches into a unified instrument.  Different pipe organ builders had a “sound” that they were known for.  Me being an individual with a peculiar taste, I ought to be able to have a “sound” that is mine – that can go from big to small, high to low, and encompass many moods and emotions.  I want it all playable from one console in continuous fashion.

3)  Organs are massively polyphonic – holding down a single key can sound dozens of pipes depending on what stops, couplers, and combinations are drawn.  Modern multi-core computers like a MacPro routinely deliver 1400-2000 voices of polyphony in orchestral sample-based composing setups.  Hardware synths like my Bowen Solaris or the Dave Smith Instruments Prophet-12 can deliver about 48 oscillators (voices).  It is just now possible to combine these tools into setups that can support the polyphony demands of the “King of Instruments”, so it seems intuitive to me that it SHOULD be done.  If two to three computers can support a full virtual orchestra, one to three of the same computers should be able to offer a number of digital oscillators that matches the pipe count of a traditional pipe instrument.  In my version of the game, it is all about oscillators.  How good are they, what can they do harmonically, and how many can I run?  The initial build this year will have 48 or so “ranks” – each an instance of a synthesizer or a patch to an external synth like the Solaris.  10 stops pulled x 5 notes played x 3 (super and sub octave couplers engaged) x 2-4 osc/voice + oscillators for notes in the release tail, and the polyphony for even one manual will be over 500 voices/oscillators! If another division is coupled, this could easily double or triple.

4) If, in a takeoff from Frank Zappa, the pipe organ is not dead, it certainly smells funny.  Pipe organs are locked up in institutions, all but unavailable to play, and expensive enough in cost and space that the best one can have at home is a virtual instrument, like Hauptwerk.  The core repetoire for the instrument is mostly 300-400 years old (except for the 150 year old French stuff).  The organ needs innovation.  Sampling ala Hauptwerk will preserve the sound and traditional control surface.  But it needs to evolve.  The organ needs to be portable.  It needs to be more expressive.  It can easily have a broader sound palette.  I love the sound, the majesty, and the gut-shaking presence of the instrument. I love good reed stops, trompette en chamade, and a great contra-bassoon stop as well as the next organ nut.  But more is possible in 2015.

5) While Bach’s children and contemporaries may have found his musical style borderline dated, he was at the forefront of musical technology in his day and regularly consulted with organ builders, played at commissionings, etc.  In Northern Germany, he was the “Jordan Rudess” of today.  I firmly believe that if he was alive today, he would be keenly interested in all the new controller developments, synths, etc.  I know it is not really true, but don’t all musicians want to explore sound, timbre, and have more expressive control?  I do – I want to have direct access and full control over the building blocks of sound.  I think that the intersection of synths and the new polyphonic multi-dimensional control surfaces offer this possibility for the first time in history.

So, taken together, I am distilling a hybrid instrument from the rich assortment of tools and software commercially available and modifying to suit my purpose.  Two years ago, I built a MIDI footboard with substantial help from my father-in-law.  The playing surface is rescued from an old Theater Organ built in 1918 that was in pieces.  The red shell is my design.  The foot pistons and expression shoes are all from real pipe-organ supply companies and are designed for heavy institutional use over decades of performance.  The main contact edges with the floor, etc are all covered with aluminum corners.  I tried as much as possible to make it road-worthy and durable.  It is not light – probably 80-100lbs.

Custom 30-note MIDI Pedalboard

Inside the footboard, the electronics are sourced from Roman Sowa at his site.  I pulled everything together inside the back, added a power supply and MIDI interface jack, and I have a 30-note concave and radiating pedal board with 20 toe-pistons and three expression pedals – all sending MIDI.

Custom Pedalboard Internals

The camera was not square for the picture, so you’ll have to take my word for it that the unit is actually square and not asymmetrical!  It is constructed of poplar, and is quite sturdy.  I mocked it all up in Sketchup before construction to make sure it would work, and it was accurate to 1/32nd of an inch!  We actually used Sketchup to confirm all the measurements and angles, which felt like a win for planning at the time.

I had experimented with putting the VAX-77 and a cheap 49 note controller over it, running some sounds in Omnisphere’s “Live” mode, but it never really caught on with me – the vision was not to play piano on an organ console, and I need MUCH more polyphony, a real stop system, etc.  My hopes for the Seaboard, however are turning out quite nicely.  I have started assembling the DSO with my Seaboard and am thrilled with the results.

The DSO in January 2015Visually, the Seaboard is a thin, elegant line (not a chunky hardwood console built into a room).  Touch-wise, the Seaboard all but demands an articulate legato touch that meshes well with the idea of organ playing.  But, crucially, the Seaboard allows much more than that and offers continuous pressure and pitch sensing across all 10 fingers.  This is a radical improvement on organ manuals.  I like practicing and playing on this setup, and I have only just begun working with it set up and playable this week!

The bench in this photo is last year’s project.  The seating surface is a gorgeous 2″ slab of Wenge (an African exotic hardwood) inlaid with thin strips of maple by my father-in-law.  The stainless steel leg system was custom-made by a local metal shop to my specifications.  The shop owner and my father-in-law conspired to deliver the finished bench on my birthday last year!  That was a special surprise!  The bench has a “preset” for exactly the height I need the bench at, and then is adjustable in 1/4″ increments with fine adjusters on the feet.  Like the pedal-board it is solid, substantial, and functional.

The Seaboard and footboard send MIDI back to the MacPro in the road-case.  That unit gives me 12RU of rackspace, plus the MacPro.  The MIDI goes into a growing Max patch that routes the data to a stop system I’m building inside Max.  Each of the toe pistons sends out MIDI CC data (0 or 127), and is easily mapped.  The pedal shoes send CC1, CC2, or CC3 (0-127) and can easily be re-mapped to anything inside Max.  I will be hosting all the synthesizers in Vienna Ensemble Pro because it is scalable, efficient, and light-weight.  I know this supports 1400-1600 voices easily in an orchestral context, so it is a good place to start.

I’ll go into more detail on the MIDI data flow in further posts as I refine the stop system, build couplers, etc.  The crowning bit of Max code will be a proper crescendo pedal!

As the year progresses, I hope to add a second manual in the form of another Seaboard (most visually integrated) or a grid-controller like the LInnStrument or the Soundplane (most expressive potential).  I think one of those could make a wonderful “Solo” division.  The stop system for the Seaboard is in progress, and I should have more on that in a week or so.  The other big piece will be a proper stand to fully support the Seaboard and provide a stable foundation for vibrato and pitch slides.  This old A-frame stand flexes disconcertingly in that regard.

I will also discover what I need to do to support the polyphony needs of the instrument.  I am hoping that I can do it all in the MacPro (8 cores/64GB of RAM), but if not, I can easily spread the load onto additional systems.  That will not be hard, technically.  The larger challenge will be voicing the instrument and having the various stops blend and contrast appropriately across the 9 octave range of the instrument.  I expect to make liberal use of Alchemy and the Galbanum Architecture waveform set.  The combination allows me to directly control harmonic partials at the oscillator level, which I will cover in more detail later.

Go to Top