Monday, 2 March 2015

Pedalboard Controller MK2 Software

The last post described the hardware design and building of this:

This post describes the main features and the iPad app screens used to program patches.

For some context, here it is on the pedalboard:

Clockwise from top left: CV MK2, power supply, switch box, KOMA BD101, Ditto Looper, EHX Freeze, Moogerfooger Freq Box, Moog EP-2 expression pedal, 3-footswitch strip, Moogerfooger Low Pass Filter, Moogerfooger Ring Mod.

The 5V CV outputs are connected to the Moogerfoogers through TRS cables. The 9V CVs get to the KOMA through an Ethernet cable, broken out to TRS cables on a small board screwed to the pedal. This also connects the KOMA's sensor input to the CV box. The Freeze is controlled by one of the opto-isolated outputs connected via a stereo mini-jack cable (it has a spare opto output for future use). The expression pedal connects via its normal TRS cable. The 3-footswitch strip goes via an Ethernet cable, with the switches and LEDs wired separately (the CV box controls the LEDs, not the footswitches directly).

First, a bit about the overall design...

The idea is to have a variety of 'sources' that can be assigned to the CV outputs. This is the list so far:
  • Fixed level
  • Noise
  • LFO (sine)
  • Expression
  • Low Pass Filter envelope
  • Ramp
  • Arbitrary waveform
  • Bus combining other sources
The CV outputs can be connected individually to any of the sources, and their output level ranges can be set, and optionally inverted. For example, CV output 1 could deliver a sine wave from an LFO in the range 3V-4V. Or the expression pedal could change multiple parameters at the same time, perhaps in the opposite direction.

The sources all have their own set of configurable parameters, e.g. the LFO frequency, ramp time etc., and all are triggerable by a footswitch.

A patch is defined as the set of CV/source assignments and their parameter settings.

All of these features are implemented in the Arduino firmware (mostly C++), with the parameters and source routing being configurable through MIDI Control Change messages. These can be received from the iPad app and saved into the permanent storage attached to the Arduino.


iPad App


MIDI Designer is an app that can be used to build custom interfaces for MIDI control. You can place buttons, knobs, sliders etc. and have them send MIDI messages when they are changed. These are organised into pages taking up half of the screen.


5V CV Outputs


The page on the left is for selecting the source for each 5V CV output. The right is used to set the output voltage range. Sources with variable output (most of them) operate between the low and high levels, but each of these also has its own minimum and maximum value, so that it can be further modified by a different source, selected by the knobs. The 9V CVs have similar pages:


LFOs and Noise Sources


The left-hand page has the controls for two LFOs and two noise sources. The frequency range and Min control can be used to set the source to a fixed frequency. But the Control knob allows any other source to vary the frequency between Min and Max. In the screenshot, the expression pedal is used for that. The Trigger knob selects which of 8 programmable triggers starts the LFO running, or 'On' for a free-running oscillator. More on the triggers later.

The Noise source Rate control determines the time between new random values. The Amplitude control changes the amount by which the noise value can change at each step. This can be used to create wildy varying values or more subtle changes. Both Rate and Amplitude can be controlled between two values by any of the other sources.

The right-hand page is for configuring the triggers. This allows the footswitches to be used in momentary or latched mode (level or edge). The Env option can be used to generate a trigger when the audio signal exceeds a threshold. This could be used to trigger the Freeze pedal, for example.


Misc. Sources and Arbitrary Waveform Generators


The expression inputs can be inverted and enabled by a trigger. Expr 1 is the EP-2 expression pedal. Expr 2 is the KOMA's sensor output.

The Envelope State controls allow the levels and sensitivity of the Env trigger to be set.

There are two ramp sources with controllable rise/fall time.

The LPF's envelope output can be enabled or disabled, and boosted up to x3.

The Freeze settings determine which of the triggers controls the Freeze pedal(s).

The footswitch strip LED states are driven by selectable triggers.

Tempo is an experimental feature. In future, some things might need to be driven by a signal derived from a tempo - either a fixed BPM or tapped.

The Arbitrary Waveform Generator (AWG) has 8 'phases' that are run in turn. Each phase has a target level (the upper slider) and the time to reach that level from the previous one. This allows triangle, square, sawtooth waveforms to be created, and many other kinds of weird waveshapes. The overall rate can be fixed or controlled by another source.


Buses and Patch Control


The Bus 'sources' allow an output to be driven by a combination of two sources, with the balance between them being fixed or controlled by another source. For example, the expression pedal can be used to gradually change an output from an LFO to a noise source.

The page on the right has the buttons used to create and save patches in the Arduino. The other controls are mostly just useful during firmware development.


What Next?


I should really record some demos of the different features. Maybe one day.

The next addition is going to be a drum trigger. This will make use of a spare input connected to some kind of trigger attached to a tom. It'll be able to trigger any of the features in the box. For example, to 'duck' the guitar rhythmically, or start a ramp, or hit the Freeze pedal. Loads of possibilities.

Saturday, 26 April 2014

Pedalboard Controller MK2

A few years ago I built an Arduino-based gadget with two CV outputs, a footswitch and an output for controlling an EHX Freeze pedal:

I wrote patches with oscillating or random CVs and used them to drive my Moogerfooger MF-101 Low Pass Filter. Now that I've got three 'foogers and a CV-controllable KOMA BD101 delay, it's time for an upgrade.

MK2 has a lot more features:
  • Eight 5V CV outputs for Moogerfoogers
  • Six 9V CV outputs for the KOMA delay
  • CV input from the KOMA sensor
  • Six opto-isolated outputs for the Freeze, tap-tempo and (maybe) looper control
  • MIDI support - for patch development and live control
  • Expression pedal input
  • CV input for Moogerfooger LPF envelope
  • Three footswitches with LEDs
  • Based on the much faster Arduino Due
There's not much free space on the pedalboard so it's all got to fit into a box the same size as the original. After several attempts, I settled on this design:

The Arduino is mounted vertically at the back of the box, with a shield PCB sitting on top of it. A ribbon cable connects the shield to another PCB that lies just below the upper surface, with a 4-digit, 7-segment display, up/down patch select switches and four RJ45 sockets at the front. Two more Veroboard PCBs with TRS connectors mount on the front panel and connect to the shield through PCB header/crimp connectors. The shield schematic looks like this:

The main elements are the CV DACs (5V SPI with level shifting for the Due), 9V gain stage, opto-isolators, 7-segment display drivers and an I2C EEPROM for non-volatile patch storage. The PCB:

The display/RJ45 board is mostly routing signals from the shield, so the schematic isn't very interesting. The PCB looks like this:

The PCBs were made on an LPKF C40:

I built the easy one first:

Then the shield:

Fitting the display PCB into the box:

I built the TRS Veroboards and fitted them into the box:

Wired the CV board to the PCB header that plugs into the shield:

The whole lot assembled:

One of the RJ45s brings out a 3.3V serial port from the Arduino. So I needed an external board to translate to MIDI:

The next phase of the project is to write the Arduino firmware and find or write an application to configure the patches from a laptop or iPad. It'll be a while before the original box is replaced on the pedalboard...

Wednesday, 31 July 2013

Moogerfooger/Looper Order Switcher

There's a new song in the works at Zaardvark Inc. that requires me to record a guitar loop with some Moogerfooger sounds applied and recorded with the loop. But the board is wired so that the looper is before the 'foogers, because sometimes I like to record a clean loop and bend it separately.

So what I need is a box that reverses the order of the set of Moog pedals and the looper - and possibly the Freeze - as a separate group.

This'll do it:

A IN/OUT (aka send/return) connect to the input of the first 'fooger (FreqBox) and the output of the last (Ring Mod.). B connects to the looper. IN is routed to OUT through the two pedal groups in the order selected by the 3PDT switch.

I made a space on the board:

Drilled some holes in a box:

Sockets + wires:

To avoid ground loops I just connected the grounds of the IN, OUT, A IN and B IN sockets. We'll see whether that's good enough.

I don't need to switch the order with my foot so it's just a manually-operated toggle switch:

No LED either - I can see the pedal order by the position of the switch.


Velcro applied and in-situ:

The whole board:

In the end I decided to group the Freeze and looper together as group B. It means that the input and output for the whole board are the switch box IN and OUT, which is tidy.

The use of metal plugs could undermine the anti-ground loop strategy, but it doesn't seem to be a problem if they touch each other.

The plastic box isn't really robust enough so I might replace it with a diecast box if I can find one that fits the space available and has enough room for all the sockets.

The next project is to replace the black box to the right of the new one. It's an Arduino-based CV generator and Freeze controller. I'd like one with lots more outputs and a load of other features I haven't finalised yet.

Tuesday, 25 June 2013

Precision Analogue Multi-Effects


Is one of these;

One of these;

 And one of these;

Or at least the gubbins from inside them, all mounted in an aluminium enclosure. The yellow panel is a decade box, which allows me to dial in any resistance value from 0 to 11110 ohms, in 1 ohm increments. This is currently connected in place of the Delay Time pot on the Arion DDM-1 PCM, which has also had its trimpots tweaked so that the minimum delay time is just about zero, and very short delay times become accessible in a precise way using the decade box. It also means that the delay time can be adjusted in steps whilst playing, where before it could only be swept with the pot. This makes for some pretty unique sounds. The clip below features the unit treating various percussion and a glockenspiel in a fairly random way.

At the moment only the delay has been modified for decade-box control but the flanger seems like a good candidate too. If the Rate pot is disconnected the unit no longer sweeps up and down driven by its LFO, but can be manually swept using the Manual control. If the decade box is substituted for the Manual pot, I should have a flanger that manually sweeps in steps. I'll post an update when that mod is done!

Monday, 24 June 2013

Casio SK5 External Drum-pads

A set of Kraftwerk-inspired drum pads that interface with a slightly modified Casio SK5, triggering the four samples assigned to the right-hand set of yellow pads. As per the Kraftwerk design, these work by having metal sticks which complete a circuit when brought in contact with the conductive surface of the pads. 

I traced the tracks on the SK5's PCB to find good solder points, and wired those to four RCA / Phono sockets to the left of the power switch. As you can see the pads are mounted on the top of an A4 box file, which has a lid that can be propped open at an angle using the internal sprung clip, and which also makes a handy carry case for the sticks and pedal, which isn't shown but is an old morse key, inspired this time by the Silver Apples.

The pads are squares of material cut from a neoprene mouse-mat covered with strips of aluminium tape. As you can see in the pix above this got badly pitted very quickly, so I brought some sheet brass and bolted it over the top to give a more durable playing surface. I guess I should really cut the top left corner off each of them to match the shape of the pads on the 5.

The original sticks were lengths of coat-hanger wire, but these have since been replaced by pieces of narrow (2mm) copper tube.

Sunday, 23 June 2013

Bass 6

Some time ago I stumbled across this thread on the TalkBass forum, one of a few on that site and others dedicated to the creation of Bass VI-type instruments from the parts of cheap short-scale 4-string basses such as the Fender Bronco. This was my inspiration to turn a tired old Gibson EB-3 copy into a rough approximation of one of these:

A stupidly rare 1962 Gibson EB-6 (see for more pictures).

The Donor

My EB-3 copy was I believe made in the Ibanez factory in Japan at some point in the '70s, and would have been branded Avon, Kingfisher or Columbus. I found it in a very sad state in a shed on a dairy farm about 10 years ago, and fixed it up. The body had been half stripped of its original cherry finish and the electronics and hardware had been cannibalised, with the exception of the pickups, which were horrible microphonic single-coils hiding under humbucker-sized metal covers. I sanded off the remainder of the finish, found machineheads, made a bridge assembly and built the circuit. 

My then girlfriend (now wife) played it for a bit before moving on to a 1978 Fender Musicmaster. The EB copy languished in a wardrobe for several years before being dug out for the conversion project.

The Conversion

From the top:

The machine-heads are a set of 5 GuitarTechs I had left over from a repair I did to a friend's Epiphone Joe Pass a few years ago. The 6th tuner is the low E, left in place from the guitar's 4-string incarnation. One day I might treat it to a complete matching set.

The nut is a 6-string replacement bought from my local family-run music shop. I filed out the slots to accommodate the fatter strings.

The pickups are mini-humbuckers from Warman Guitars. The pickguard and pickup surrounds are oversize to cover all the existing routing and holes.

The circuit features 2 volumes, 2 tones and a 3-way switch in a Les Paul-type configuration, but with three additional microswitches. The two on the pickguard are coil tap and phase reversal for the neck humbucker, and the one next to the pickup selector is a strangle switch (bass cut).

The bridge is a tune-o-matic copy with a stop tailpiece. I had to dowel the holes from the old bridge assembly and drill new ones. Getting the locations of these right was more down to luck than judgement. The press-fittings for the bridge and tailpiece were squashed into undersized holes using a G-clamp to apply pressure. Being a laminate body I wasn't too concerned about this splitting the wood along the grain, which I might have been were it solid timber.

How it turned out

Surprisingly well. It's very playable, and I found that I adapted to the string spacing very quickly. Going back to a normal guitar or bass afterwards is very odd though. 
The pickups are quite widely spaced which means the neck pickup is considerably louder than the bridge as the string vibration has greater amplitude as you move toward the mid point. Consequently the bridge pickup is jacked right up and the neck backed off in order to achieve a close balance between the two. This means that some bassiness is sacrificed, but stops chordal playing from becoming too muddy. I've found that if I want to use it as a bass guitar rather than as a rhythm / lead instrument I need to use an EQ pedal to fatten the bottom end up.

The pickup selector, coil tap and phase switches give a lot if useful tonal variations, ranging from full-bodied and fat to something almost clavinet-like. Run it through chorus and delay and it does Cure-type noises high up, or through reverb and tremolo you're in Twin Peaks. I find myself playing the solo from "Wichita Lineman" a lot.

The strangle switch doesn't do anything useful currently, but I will experiment with some different capacitor values until it does, or think of something else to do with the switch.

It's not a work of luthiery by any stretch of the imagination, but it's a very usable instrument in spite of its low budget origins and many rough edges. It has also served as a very useful prototype for possible future projects. There are some good EB3 copies on the market that could form the basis of a mkII, and occasionally genuine EB3 bodies / necks come up on Ebay. I'd be particularly interested in creating a medium (32") or long scale (34") version of this type of instrument as I find that 30" scale basses always seem to suffer from floppiness of the low E string.
Watch this space...