After finishing the FXBOX foot controller, I started to use the FXBOX and soon decided on a few changes to the software. There are now 3 areas in which there are differences from the original description of the software in Part 1 of this series of articles.
1 I had been using external pedals to add and change pitches, so I decided not to implement the ‘Pitch’ function. I’ve left a reference to it on the main FXBOX screen, as it’s still for the time being referred to on the foot controller – and I may decide to bring it back in future.
2 The next change can be seen in the bottom right-hand corner of the main screen. In order to enhance the shimmering effect of the spectral delay and the freeze I added a simple looper. This would enable the delay and freeze effects to be repeated continuously, providing a background for melody or other sounds.
I added a half-speed and double-speed playback facility, to allow for some variation in the sound produced. The double-speed is particularly effective for higher-pitched ‘tinkling’ sounds.
Section 11 of the foot controller, which wasn’t being effectively used, was altered to allow for hands-off control of the various loop functions.
*
3 I added MIDI control for changing the variable parameters – volume, mix, chorus rate, depth, and so on.
I have a set of the original Korg ‘Nano’ controllers, NanoKeys, NanoPad and NanoKontrol, so I used the NanoKontrol for this application. (This is a great device – very useful and usually quite cheap on eBay. Versions 1 and 2 seem quite different in various respects, but I don’t think it would matter which you used for this application. Version 2 doesn’t have the ‘scenes’ concept, but something else instead, I believe).
First of all I used Pure Data’s [ctlin] object to separate the incoming MIDI Channel, Continuous Control (CC) Number and Value information:
then sent that information to control the values which would normally be set when the program opened, and altered by hand on the main screen – a fiddly operation, on top of having to stop playing in order to do it.
Here are a couple of examples of how it was done. The calculations after the receipt of ‘midivalue’ are to translate the MIDI scale of 0-127 to the scale of the parameter being changed, which might be 0-1, 1-100, 1-128 or anything else. The [loadbang] instruction ensures that, in this case, envelope sensitivity is only affected when CC Number 14 is received, and envelope attack is only affected when CC Number 15 is received.
As well as the CC Numbers having to be carefully specified, it was also important to ensure that the FXBOX responded only to messages on its own MIDI channel. I used Scene 1 on the NanoKontrol; I can’t remember if MIDI Channel 11 was the default, or if I changed it to that using the Korg Editor:
In any event, it was set to Channel 11, and I amended the Setup screen so that the MIDI Channel received by the FXBOX could be changed:
The revised files required to operate the FXBOX (the foot controller and MIDI control are entirely optional) are here:
http://www.andymurkin.net/Electronica/FXBOX/abswitch~.pd
http://www.andymurkin.net/Electronica/FXBOX/crossfader~.pd
http://www.andymurkin.net/Electronica/FXBOX/expression.pd
http://www.andymurkin.net/Electronica/FXBOX/FXBOX22.pd
http://www.andymurkin.net/Electronica/FXBOX/Guitar_specdelay~.pd
http://www.andymurkin.net/Electronica/FXBOX/LoopGenerator.pd
http://www.andymurkin.net/Electronica/FXBOX/midiin.pd
*
This edited improvisation gives an idea of the sounds the FXBOX makes: