What's up

An Abandoned Day - The wheels are in motion 

The CDs are back from the manufacturer, a big thank you to Replicat for their high quality service. The international radio copies are on their way as are the reviewer copies. The website is almost ready. The big day is the 1st of December though the my two stores (here and bandcamp) will be opening earlier, so keep an eye on them.

DittoX4 Interface 

This unit takes various CVs (control voltages) and Trigger signals and controls various functions of a TC Electronics DittoX4 looper pedal. The purpose of this unit is to allow standard modular synthesizer controls to affect the various modes of the looper which is part of my matrix mixer based effects chain.

The unit's hardware is relatively generic in its construction. There's an Arduino Pro Mini at the heart of the unit. It has four trigger inputs, four control voltage inputs, two control voltage outputs and four trigger outputs. It contains a previously design PCB from my TMNSD project which hosts the trigger inputs and the cv outputs and I created a daughter card which mounts to this board to give me the trigger outputs and CV inputs.

The trigger inputs are protected from overvoltage as are the control voltage inputs. The control voltage inputs are configured to take LFO voltage ranges of -5v to +5v. The trigger inputs will trigger at 3v. These are all hardware adaptable.

The front of the unit showing the 3.5mm sockets

The CV OUTs and the TRIG OUTs have no purpose in controlling the DittoX4 as this is controlled via MIDI CCs but it made sense to take advantage of a unit which could also provide for extra MIDI to CV abilities within my setup. This says that there is also a MIDI INPUT on the unit as well as a MIDI OUTPUT which controls the DittoX4.

I have modified the DittoX4 to only have the loop audio coming out of the unit without the input being echoed. For some information the DittoX4 is a dual looper with loop based effects ie: reverse loop, half and double speed. There was no facility to do this without hardware modification.

What I am actually controlling on the DittoX4 is the play, record of the two loopers. There are four "effects" that I also control. The effects affect both loops at the same time and can be used together. These include Reverse, which will reverse the direction of the loop playback, HOLD, which repeats a small section of the loop, HALF and DOUBLE which playback the loops at half and double speed and finally the DECAY which will fade out the loops.

Here are the functions that the DittoX4 will do based on various Trigger and CV combinations:-

  1. Trigger a Loop - this uses Trigger Input A and CV input A to start/dub/rec a loop - the CV chooses the loop and the trigger activates
  2. Stop a Loop - Trigger Input B and CV input A - stops a loop playing - CV chooses the loop and the trigger activates
  3. Turn on the HOLD effect - Trigger Input C - this turns on the effect number 7, HOLD.
  4. Control SPEED effects - Trigger Input D and CV Input C - turns one of two effects on or off - these are DOUBLE and HALF SPEED
  5. Turn on the REVERSE effect - CV Input B - turns on the effect when the CV input is high
  6. Sets the loop DECAY level - sets the value of the DECAY based on the input voltage of CV Input D

In practice the setup is quite random which was always the purpose. One of the nice effects to changing the loop direction with the reverse effect which can slow progress the loops position. Manually recording the loops seems to be a better approach but due to the nature of how the pedal works, this isn't simple. The MIDI CCs emulate the buttons on the pedal mostly. So for example if Loop 1 has no loop in it then the CC code will put it in record and another press will send it into play mode. A further press, the same CC, will overdub the loop. Of course I would have preferred more accurate controls but I had to live with what I had.

Rear view of case showing power connection and MIDI - Someone's feet and tail in the background

I'm quite proud of the small wood and acrylic case I made for the unit and I am surprise I fitted all the electronics inside. This was made with help from my CNC router. There are way too many wires. If I were to do this again I would avoid wires altogether and make up a PCB which would attach to the front panel 3.5mm sockets. The unit is powered from a 12v DC plug pack which is converted to a dual 9v using a buck converter.


The Expanse - Modular Synth Expander 

This shows the Waveform Sequencer at Top Left, Meter Box at Top Right, The Expanse
in the Middle and at the Bottom is the Sound Box Effets.

The Expanse is a new part of my "modular" synthesizer setup in, what I call, the Analogue Department.

My most used noise machine is the SBE2 - Sound Box Effets 2 which I made back in 2013. No, that's not a spelling mistake, it is French for effects. This contains two of Music From Outer Space's Experimenters boards along with a pile of smaller modules which include Sample and Holds and a couple of SVF modules.

The SBE2 has four main modules which are all the same. They contain an oscillator, Low Pass Filter, Low Frequency Oscillator, Voltage Controlled Amplifier , an Attack Release generator and two attenuators. These are named Une, Deux, Trois and Quatre which is continuing the French theme. In addition, in the middle, are two PAIA State Variable Filters, two MFOS Sample and Holds, two mixers and six attenuators. Along the bottom of the unit are two more larger mixers and banana to 1/4" socket converters.

This is a great unit for effects but I wanted more of course. The SBE2, as mentioned, is great for effects but when it comes to more chromatic options, I didn't have any VCO's of note plus the modules are very basic. So, the design of the Expanse began.

The Expanse is a combination of existing module designs from a few different source - Music From Outer Space, YuSynth, Baton Musical Circuits and a few of my own designs. There are duplicates of each module in all but a few cases.

Here's a list of the modules:-

PRSA and B - these are pressure sensors to voltage converters. Two resistive pads are mounted on the left hand side of the Expanse. The modules will take that pressure and output a control voltage in my standard modulator voltage range which is -5 to +5v, based on the pressure. There are two controls which set the upper and lower voltages and another control which is a voltage lag control. A switch controls a voltage hold whereby you turn it on while holding a voltage with the resistive pad and the voltage will stay there. There are four outputs. Two outputs are the control voltage but one is inverted. Two outputs are the Trigger / Gate with one also being inverted. There's a switch which changes between the output trigger being a trigger or a gate. A LED indicates the status of the Trigger / Gate.

The unit is my design using a Arduino Pro Mini which takes the two analogue inputs via some analogue circuitry and the Arduino creates the -5 to +5v voltage output. It use a dual channel digital to analogue converter in the form of a MCP4922 which is a dual 12 bit converter. It's a little overkill but I had a stock of these to use. After the DAC we have a op amps to converter the voltage range back to -5 to 5v.

LAG-A and B - these are two LAG processors. A LAG processor takes a control voltage input and slow it's change down. Sort of filter. This design comes from Scott Juskiw's modified version of Harry Bissell's Morph Lag design. We have two controls which change the Attack and Decay time of the lag along with a switch to change between a linear and log LAG response curve. There's a simple input and output. The input voltage will be clamped from -5 to +5v.

SSM VCA A and B - These are on one board and are the same VCA boards as used in my FloriVoxTron. It uses a V2164 which is the Alfa modern version of the classic SSM 2164 voltage controlled amplifier. It's a pretty straight forward design coming from Mark Irwin. I've set these up with the idea that we use a separate audio mixer before them hence they only have one audio input but two control voltage inputs, one has an attenuator. There's also an INIT control applies a control voltage to the VCA to open it up.


MULSE - Multi Pulse - one of the more complex beasts. This module has two modes, Delay Mode and MIDI Mode. In the Delay mode, the two trigger inputs have two trigger outputs associated with them which can be delayed. There are two random pulse signals with a control for each to adjust the maximum random time. Meanwhile the two control voltage outputs have slew voltages which range from +6v down to 0v based on the time between the random pulses. This slew voltage idea came from Yves' modules.

During MIDI mode, we still have one random pulse output with an associate control for the maximum time but an added feature is that one of the trigger inputs now controls the state of the random output. Since it's MIDI mode, we have another trigger output which has MIDI CLOCK On it with another control which affects a divisor on this clock. The two control voltage outputs and the other two trigger outputs give two MIDI to CV outputs where notes on channels 9 and 11 will output a 1v per octave voltage. The two controls relating to this mode adjust the range of the MIDI notes converted. The output voltage range of the hardware is limited to 6v so we have to choose the range of the MIDI notes to convert.

The design is all my own using a previous board design from my TMNSD arpeggiator design. This has a Arduino Pro Mini with trigger inputs and a 12 bit DAC on the output.

LDR - I have two LDRs, light dependent resistors, mounted near the pressure sensors on the left hand side of the unit. These convert light levels to control voltages. There are controls for the voltage range outputted along with the polarity which changes whether light is positive or negative.

LFO A and B - This design comes from work I did on the FloriVoxTron. One board is used to create the two LFO outputs. These are pretty basic in operation. We have a speed control with a low and high range switch giving about 0.1 to 40hz. There are 10 different waveform types to choose from including your standard sine, triangle, sawtooth, ramp, square along with some more complex waveforms like the rectified sine, step pulse, slope pulse, quad ramp and quad square. These are my names for the waveforms as it's a bit difficult to name them. From here we have a pulse width control which at this stage only controls the square wave, rez control which I implemented in the FloriVoxTron which is sort of sample and hold function. It's a simple part of the programming whereby instead of outputting an every index of an array, which represents the waveform, I only output say every 3rd value. As you increase the REZ control it only outputs every 20th value. Give a nice stepped output. Simple yet effective function that is easy to implement with a microprocessor. Now we have a switch which takes a control voltage input and either sends it to the REZ control or the SPEED control. A -5 to +5v input here will affect either of the chosen destinations with the amount controlled by the following external voltage control.  The last switch is selecting the destination of the external trigger input. This can be set to off or sent to TRIGGER or SYNC. When set to TRIGGER, a inputted pulse, will reset the counter on the waveform, retriggering it. If set to SYNC and when the unit gets at least two pulses in, will set the speed of the waveform.

The unit has a Trigger input, control voltage input, two waveform outputs with one inverted and a trigger output which pulses on the start of the waveform.

DC MIXER - finally on panel A we have a DC Mixer. This is for mixing multiple control voltages to create a more complex controller. This design comes from one of Ray's @ Music from Outer Space's Quad 3 In DC Mod Mixer. It has three voltage inputs with an invert switch. It also has a BIAS control which applies a negative or positive voltage to move the resulting waveform into a usable range. This is where the oscilloscope can come in handy.

QUADRATURE LFO - now here's another complex beast. The essence of a quadrature LFO is that it has four waveform outputs which each output being 90 degrees out of phase from the previous. This can create some wonderful phases type effects when used with filters or a rotor type effect when used with VCAs. 

So this unit has all the parts of one of my earlier LFOs but some interesting extra. Firstly, a Direction LFO. This is a square wave LFO which has a few controls, speed, low and high range, active switch and pulse width. But what it does when active is change the direction that the main LFO goes. When Direction LFO is in the positive the main LFO goes forward and, as expected, when it's negative, the main LFO goes backwards. It creates some wonderful effects and again shows where microprocessor can do interesting things. Not to be easily satisfied I have also included a Cross Modulation LFO. This has my standard controls of speed, range, 10 waveforms and depth. Now my naming of this LFO is probably wrong. In affect what this LFO does is control the depth output of the main LFO as opposed to its LFO speed.

This module is based around STM32 Blue Pill along with a MAX435 Quad 8 bit digital to analogue converter.

AUDIO MIXER A - this is pretty basic but necessary module. Takes three audio inputs with input C having an invert switch and mixing to a single audio output. All the inputs have level controls. There's an audio output level control as well along with an inverted signal output. One special item of this mixer is an overdrive output based on a Moritz Klein design.

LOGIC - This is a quad logic module based around an Arduino Pro Mini. All four sections are the same. We take two  inputs which can be trigger, pulses or even a control voltage as long as it's over 3v and based on the logic mode selected on the associated pot, we get an output. The input schematic has protection for over voltage, as do all my modules. The logic types of AND, OR, XOR, NOT, NAND, NOR and XNOR.

ATTENUATORS - there are four of these in the whole unit. Simple potentiometers to reduce levels of control voltages including audio level.

DEL-AR - This is the Barton Musical Circuits module, Delaying AR. Taking the description from the manual - The delaying AR is a microcontroller based synth module. It's designed primarily for use with VCAs to imitate the sound of a synthesizer being run through a delay.  It's a basic Attack and Release envelope generator which has a Delay Time control which is the retriggering of the envelope. The Delay Repeats control is similar to a feedback control on an echo unit in that it sets the number of repeats. The final control is the Delay Level being the level of the echoed triggers.

VOLTS - a small panel where the user can get two +5v, -5v and GND connections.

VCO-A and B - These are the two high quality VCOs with good 1v/octave tracking. They are YuSynth VCOs. I have managed to get about 6 octaves out of them in tune with some fine tuning. They have all the standard controls of a VCO with Sine, Triangle, Sawtooth and Square wave outputs. They have a Frequency Modulation (linear) input, Exponential Modulation input. A Sync input with an associated Soft and Hard switch. A finally a Pulse Width Modulation input which only controls the Square Wave.

DIVIDER / TRIGGER - This module uses a 4024 chip and simply counts the input pulses and activates the output based on the counts. The outputs are not triggers as such but simply turned off or on based on the counters position. The module also has a Moritz Klein designed retrigger section which I designed for the Experimenter Boards AR generators. Alas, it doesn't work due to the differences in CV and trigger voltages used between the two systems. I may fix this sometime down the line. The complexity of doing this is limited because the PCB is actually part of the front panel connections.

VCO-C and D - These are less accurate but still useful Voltage Controlled Oscillators. These design here is from Rene Schmitz. They have less capabilities but are a much simpler design. They use NTC thermistors to adjust for heat changes unlike the YuSynth VCOs which use tempco resistors. I still managed to get a stable 4 octaves range from them. They have Square and Triangle outputs. The inputs are 1v/octave, Exponential modulation and Pulse Width Modulation.

DUAL BALANCED MULTIPLIERS - Another YuSynth module. It's a ring modulator. This uses a LM1496 chip to do the  work. Thanks to Yves single sided printed circuit board designs I was able to make this and all his other boards on my CNC router. All of Yves' designs are single sided boards which I have made at home. These modules have AC and DC inputs and outputs. To be honest I don't really know the difference in the context of this module. I'm sure I will find out.

13700 VCA-A and B - Another pair of VCA modules. This time using LM13700 chips which are less hifi than the SSM2164 but still perfectly good for most synthesizer based work. These modules have two CV inputs for level control and one audio in and out connection.

WF-A and B - YuSynth Wave folders. Wonderful modules for taking the top and bottom halves of sine or triangle waves and inverting them to produce another layer of complex waveform. Yves says that "This module performs a non-linear transformation of a simple wave shape (triangle or sawtooth) into a complex waveform rich in overtones.". The controls are Shape, Range and Control. Control being the level of the control voltage input.

WAVE FREAKER - This is a Music From Outer Space module. Similar in concept to the Wave Folder but takes it much further. Ray's unit not only folds the waveform but creates a pulse output of this wave form along with a sub and sub-sub octave waveform. Not to mention the step waveform outputs. There are control voltage inputs to control the Wave shape and Step amount. A complex module which makes complex sounds.

ST-VCF - The YuSynth Steiner Voltage Controlled Filter - I have previously used this in my Therematron synthesizer. It's a relatively simple design for a Steiner- Parker filter. As Yves says in his documentation that he wanted to create a stable version of this filter but keep the harshness of its character. This has the standard sort of controls for a VCF including Cut off Frequency, Resonance, two control voltage inputs for the Cut off Frequency, A level input and filter type with the options being Low Pass, High Pass, Band Pass and All Pass. 

AUDIO MIXER - here we have another reduced version of the other Audio Mixer. It's a more simple three input and one output audio mixer. I didn't go overboard here as the SBE2 contains two audio mixers as well.

ARP-VCF - The final module in the main unit which is another YuSynth design for a 4072 ARP filter as found in the ARP 2600 synthesizer. This is a low pass filter only but can do 1v/octave tracking when the resonance is creating a sine wave. It has a two input mixer along with two control voltage inputs to affect the cut off frequency along with a standard audio output.



WAVEFORM SEQUENCER

In addition to the main case there is the Waveform Sequencer and Meter box. The waveform sequencer is an idea I've had for a while. It creates a waveform that is split into 16 steps which is controlled by the sliders on the panel. Though that is only a basic function of the unit. It will run in several different modes.

Those modes are:-

  • Simple morph - where two separate waveforms are defined and a LFO changes between the two.
  • Slider Morph - this is 16 step sequencer which sets the amount of morph between the two waveforms
  • Random - the LFO just randomly creates a new waveform on each step - this has two modes on how the waveform is created - total random or random mirror which makes a waveform who's second eight steps is a negative mirror of the first eight which is more like a "normal" waveform.

All these different modes can be control from external source which include control voltages or triggers to control the step sequencer. Waveforms for any of the three Waves (A, B and Percentage) in one of the eight memory locations.

Given that most of my microprocessor skills are limited to Arduino type MCUs, the approach I took for this unit is almost analogue. I have a oscillator module which contains a AD9833 function generator. This gives me an accurate clocking frequency which feeds a 4067, 16 channel analogue multiplexor via a 4510 BCD counter. This multiplexor switches between a bank of MCP42010 dual channel digital potentiometers. The AD9833 frequency is controlled from an Arduino Pro Mini. There's some opamp circuitry which takes the 0 to 5v output of the digital potentiometers and scales this up to 10v and offsets by -5v to give an audio signal. It's as simple as that.

I've used the MCP42010 in the past as it's a good way of making a simple LFO without using a digital to analogue converter.

There's a second Arduino which deals with reading the sliders and buttons along with controlling the all the RGB LEDs on the panel. These talking to each other using serial.

A future enhancement to the unit will be a control voltage output of the slider states along with a trigger to use as a step sequencer within other parts of the Expanse.

One of the funniest mistakes I have ever done was on the Waveform Sequencer. I didn't put an output on the front panel. Most of the work for this unit focused on the front panel which relates to one of the Arduino's and not the waveform making one. This is what I put the omission down to. Well that is my excuse. The output is on the rear panel which is fine in reality as a cable comes from here to the Expanse where the signal is then modified.

METER BOX

The Meter Box combines a basic oscilloscope using a Raspberry Pi Pico with some minimal input electronics to clamp the voltage to the Pi Pico's accepted voltage level of 3.3v. This has two channels coming into it and the results are displayed on the small colour screen. There's three controls for each channel - an attenuator to scale the input signal, offset to move the voltage around the screen and a sample rate control.

The other part of the Meter Box is two analogue meters which have two controls each. One is the voltage range to display which is 10 or 20v and the other control will hold the maximum voltage. Note that 10v means -5v to +5v and 20v means -10v to +10V.

Bother the sections have a loop output from the inputs to avoid not having enough connections.

BANANA SOCKETS

I've chosen to continue the use of banana plugs for the Expanse which I started to use on the SBE2. I think they're ok as a connector though the ones I have purchased are constantly breaking.

The colour code for these comes from the Bucla "standard" which is as follows:-

  • Red - control voltage output
  • Green - trigger / gate output
  • Blue - control voltage input
  • Yellow - Trigger / gate input

POWER SUPPLY

The power supply is a linear transformer type in a separate case. I did try some buck converter types for this project in the early stages of testing but found them too noisy. I attempted to fix this noise but I didn't really want to go down this rabbit hole at such a late stage. I will look into solid state power supplies in the future but I do prefer using a transformer to take the main voltage down which also gives isolation as well. Sure they are big, heavy and inefficient but I don't have a shortage of room. What I would look at in the future is combination of transformer to knock down the mains to a smooth dc voltage and then buck converters to achieve the desired voltage rails needed for the project.

Mega MPS project 

The Mega MPS - out in nature

I've been viewing Thomas Henry's designs closely and considering everything he designs. The main module that caught my eye was the Mega Percussion Synth. A demonstration on YouTube by NoizeToy2 got me really interested. But of course the trouble maker in me wanted to take it a little further. My first thought is that a single drum isn't as much fun as four, so I had to have at least four of these modules together. Then I thought we have to have some effects for this sort of setup and I had at the time also become aware of the DaisySeed by ElectroSmith which is a MCU based around an ARM Cortex M7 aimed at the synthesizer and effects enthusiast. Hence the Mega MPS was born.

Yeah I know that means Mega Mega Percussion Synth, maybe I should have gone from M2PS (squared) - actually that should be M4MPS really.

I decided to go with the MPS PCB design that already existed of which I purchased four of from synthCube. That was easy. The effects arrangement was a little more complex. I had to come up with a PCB design for this which was troublesome but more on that later. 

The MPS - Mega Percussion Synth - designed by Thomas Henry
The MPS is an analogue drum synthesizer with three sound generating sections aimed at creating different parts of a drum sound.

We have the Shell section which contains the controls - Pitch, Sweep, Decay, Level, CV Range. There's also a switch which controls the CV input source from an external source like a sequencer, from the output of the Impact or Noise modules. This creates some interesting distortions of the pitch.

The best person to explain the details of the signal flow is Thomas Henry himself. So over at Birth Of A Synth, is the author's explanation of the Mega Percussion Synth along with many of his other synthesizer related designs.

The Pitch control sets the frequency of the oscillator, the Sweep control applies a downward pitch shift based on the Decay value. The Decay also controls the decay of the amplifier. This section supplies one of the inputs for the Ring Modulator section. The Ring Modulator also has its own oscillator to complete the basics of its function. Here we find a Pitch control along with Depth and Balance. This allows you to create more metallic drum sounds that might be associated to cymbals or gongs.

The Noise section has the same controls as the Shell. Instead of a tone it is based around random noise. It contains a filter with a Low Pass and Band Pass mode. The filter has a resonance control to highlight and expand sections of frequencies.

The final section is the Impact, once again with similar controls - Pitch, Sweep, Decay and a Level control. The difference here is the Decay time is quite short, emulating the idea of a stick hitting a drum skin - the initial impact.

Each module accepts a Trigger input to trigger the module and there is a push button on the module to manually trigger it as well. I left the Sensitivity control in which I am presuming relates to using DIY drum pads. These can also be used to adjust for different input trigger voltages. The final control is the Hold switch which applies a gate signal allowing you to tune the pitches among other uses.

In addition to the standard panel I spent considerable amounts of time trying to get LEDs for each Section to happen. This took a few PCB designs and many destroyed LEDs but I managed to get it sort of working in the end. I have to say that it wasn't really worth the effort. 

As you can see from my unit I have four modules in a row with each modules' effect below. The next module along is the Mixer.

I wanted the MMPS to be a complete unit so it contains a mixer which takes all sources down to a balance stereo output. The four Level controls on each MPS module only affect the dry output to the mixer. Each MPS effects unit has its own input mixer where you choose what gets effected.

Each effects unit is based around the DaisySeed module. The printed circuit board design I made up has the DaisySeed is mounted along with a mixer so the various audio parts of the MPS can be mixed to the audio inputs of the DaisySeed. The board also processes the Trigger and Control Voltage going to the MPS which are utilised in various effects. 

The panel of the effects units are made up of a 16 characters x two lines LCD display along with a rotary encoder for selecting and changing parameters. There's also the input mixer to the effects which has level controls for Shell, Noise and Impact. There's also an extra level control which takes the mix from the MPS levels. This seems a little confusing but it made sense to have a single level control for the effects if all you wanted to do was mix all parts of the MPS instead of individual parts. The mix from the Effects unit goes to the Main Mixer of the MMPS.

The DaisySeed seemed like a dream unit as it had all the functions written for most standard types of effects and it was as simple as linking the audio through each different effects but I did have some issues with digital noise within this module which haven't been fully removed but I have managed to reduce it.

Lots of fun was had choosing the various effects for the module. The DaisySeed comes with a whole bunch of functions for creating effects and synthesizer modules as well. At this stage I have a Moog Filter as the first effect, this is followed by an Overdrive, then we go through a Stereo Panner and onto the main event which is a Stereo Delay with a crazy feedback loop. The Feedback loop of the Delay contains a multi-band filter and pitch shifter along with cross mixing. The delay can be controlled by the Trigger input in that it can be set to pick off two triggers and create a delay time based on this and the chosen divisor. The control voltage is available to control effects but I have not used it at this stage. I've not had enough use with the Mega MPS to decide on the final effects to work well with it.

As you can see from the panel design, we go past the mixer which shows the level, pan and effects controls for each module, we have the Module Inputs. This is where we input Trigger and Control Voltage connections. Below this panel is the Module Direct Outputs which outputs each modules mix based on the module's internal mixer.

The Case
This continues with my attempts to make my cases on my CNC router. The challenge for me on this one was not to use any nails or screws and I managed this. I managed this with lots of difficulty and error with the Therematron case. But with some research I managed to find a method that was less taxing.

Sometime back I decided to "invest" in a biscuit joiner power tool. This tool cuts rounded slots into wood where you place glue and a wooden biscuit that is matched to another piece of wood with the same type of slot. There are many critics of the biscuit approach to joining wood but for me the ability to move things around before I need to finally clamp the work is a great advantage.

Several pieces of the case had to be done in multiple positions on the CNC router as mine is quite small, but this turned out to be quite easy.

As with most of my projects, the power supply for the unit is a separate unit at the end of a couple of microphone type aviation plugs. 

And finally, here's a video of my running a Beat Step Pro into the Mega MPS and demonstrating some of its capabilities - Mega MPS Demo

Kontakt Controller 




I wanted a MIDI controller that was small and not part of a keyboard. Often I'll want to control effects and certain instruments where keyboards are NOT needed and get in the way. It's named Kontakt Controller as its main focus was controlling my gamut of Kontakt Instruments. It's made up of one joystick, eight rotary encoders and eight momentary buttons.

The core of the unit is a Arduino Pro Micro or Leonardo. I chose this Arduino because of its Atmega24u8 which allows the use of the USB connector as a MIDI port at the same time as a Serial monitor. This avoids my standard approach of having to add a MIDI interface board. Due to this connectivity to a PC, the small amount of power I need can come from the USB host it is connected to, thus avoiding a power source in the form of an external plug pack or internal battery that would need a reasonable amount of added hardware.

The eight buttons are polled using a CD4021 chip. This is a 8 stage shift register which essentially means I can check the state of eight buttons with only 5 connections, two of which are power.

Front View - shows the Joystick in the middle, two sets of four rotary encoders either side of the joystick and eight momentary buttons along the bottom.

The rotary encoders use a new (to me) micro board I have found. It's called a DuPPa I2C Encode Mini. It is a small board where you can attach a rotary encoder to an I2C bus. They are chainable. The boards contain a small MCU, ATtiny402, that manage all the reading of the rotary encoder and send this data down the I2C buss. You can have up to 127 of them in the chain but I limited myself to eight. I am only using the rotary data of the encoder and not the button for this project. These little boards mount onto the rear of the encoder and make life easy and are reasonably priced. Check out the page as this board does so much more than I use.


The case was one of my challenges as I wanted to have a slanting face. This made use of the 3D router and a circular saw. Not the ideal setup but it was all I had at my disposal. The wooden part is made from plantation Tasmanian Oak and the top and base are black acrylic.

Rear view of the Kontakt Controller showing the USB-B connector

At this stage the controls are assigned to the User MIDI CCs from 32 upwards except the joystick which is specially assigned to CC 1 which is the Modulation Wheel and CC 11. This is for a specific plugin that can't have a couple of parameters assigned to anything else.

I can see some software changes in the future whereby I have changeable sets of CCs. I have already put in the basics for this where I would have a power cycle and the pressing of different yellow buttons to invoke a different set of CCs. 

The LED has no function at this time so for the time being I have it flashing to indicate that the MCU is working.

The front panel was designed in Freehand and setup in Cut2D for routing. The rear panel I just cut by eye given it didn't have any specific holes at the time. 

FloriVoxTron - It's finished ! 

What is the FloriVoxTron ?

The FloriVoxTron running wild in the paddock

Basically, the FloriVoxTron is a sample playback keyboard. It has 16 note polyphony. At its heart is the Robertsonics Tsunami sample player module. This is followed by a familiar format of a subtractive synthesiser, VCFs, VCAs with lots of LFOs, Valve Overdrive and effects units.

If you'd prefer to see a video instead of reading - https://www.youtube.com/watch?v=PYeXDhLF1S8

What's with that name ?

The name FloriVoxTron is derived from another Amongst Projects project. The Florian Vox was a project that was to be a MIDI controlled speech synthesizer with a nod to Florian Schneider of Kraftwerk. The hardware was pretty straight forward as was the programming of the speech patterns but the one major floor was that it was not very fast in responding to commands. This is how the speech chip was made. The intended use of the Florian Vox was for my Kraftwerk cover band at the time and was to be controlled live. Alas the Florian Vox was shelved along with the band. The FloriVoxTron has several sample sets derived from the speech synth and one of the early intentions of the FloriVoxTron was to be a vocal sample player.

Some more in-depth information please !

Working from the source. We have four voice layers. These are named in German (of course), voice 1 being Eins followed by Drei, Zwei and Vier. Being a sample player based sound source, each of the these voices can access any of the 120 sample sets. Each sample set is a set of samples which covers the 36 note keyboard. These voices each contain a VCA to control their own level. The first three voices are mixed together where they pass through a VCF and onto a Valve Overdrive. The signal then goes to a master VCA and an effects module before joining the signal path of voice four and out of the unit. Voice four has a similar path to voices one to three with its own VCF and VCA but no valve overdrive unit.

What makes this unit so different is that the unit is stereo from the start to the end. The samples are stereo, the VCAs are stereo, the VCFs are stereo, the valve overdrive is stereo and the effects are stereo. To top it off the Modulators are stereo as well.


The Modulators

Graphic of the Modulator Section

What I think makes the FloriVoxTron a rather unique instrument is its stereo signal path from the start. Though what makes this work to great effect are the Modulators. The FloriVoxTron contains many LFOs. Each Voice VCA has one, each VCF has two, one for the Cut-off Frequency and one for the Resonance, Pitch Control and the effects also have one each. These LFOs are all independent from each other. These are not your standard LFOs, I have called them Modulators because each LFO is in fact two LFOs.

The Controls of the LFO:-

  • Speed - most LFOs need a speed control. The FVT has the addition of a Speed Multiplier control which allows the Speed control to cover a greater speed range.
  • Waveforms - there are ten waveforms at the moment. They are pretty standard - Sine, Triangle, Square, Sawtooth, Ramp, Random and some not so basic ones - Rectified Sine, Chirp4, Quad Square and Quad Triangle. 
  • Pulse Width - controls the width of the Square wave pulse
  • Delay - is a one control envelope generator which can be used to delay the start of the LFOs output.
  • Rez - is a backwards Sample and Hold in that as the value is increased the less samples are taken of the LFO's waveform
  • Wave Delay - this is another way of doing a stereo LFO without the Pan LFO. It's a way of delaying the right output of the LFO. It's a percentage control from 0 to 100%.
  • Invert - of course there's a output waveform inverter
  • ADSR - each LFO also has its own ADSR of course - seemed like a no brainer to be honest
  • Xmod - Cross Modulation - this controls the amount of the LFO output that is used to control the Speed of the second LFO.
  • Cross modulation ADSR - this controls the amount of the ADSR signal used to control the second LFO speed and it has its own Invert control.

There are also controls relating to MIDI and Internal clock control so that Speed can be trigger and independently have the speed controlled or just retriggered. The ADSR can also be triggered from MIDI. All of these MIDI related controls have MIDI clock divisor values as well.

So the Pan LFO, as I call it. This is where the stereo starts to work. The Pan LFO applies its positive value to the Left output and the inverted signal to the Right output. Where I say output, I mean the main LFOs signal. The Pan LFO has all the same controls as the Main LFO except the cross modulation controls and wave delay. This makes for some quite wonderful effects when applied to both the voice VCAs and VCFs.

The hardware behind the Modulators is basically a STM32 chip, the blue bill variety, with an quad 8 bit DAC attached. So there's a small caveat in that the LFO waveforms are only 8 bit which does show its "ugly" head on a highly resonant VCF where stepping appears due to the lack of resolution. I may update this someday.

The Filters

Graphic of the Filter Section - you select between the filters by pressing the touch switch under the Filter LED which changes from Cyan for VCF-A to purple for VCF-B

The VCFs, also being stereo, use the CEM3340 VCF chip configured as an Elka Synthex filter. This schematic came from Electric Druid's wonderful article on Multimode filters. This great design allows for six different configurations - 24db LP, 6db BP, 12db BP, 12db HP plus 12db LP and a asymmetric bandpass; 18dB lowpass, combined with a 6dB highpass. 

The board design was a slightly modified version of Daniel Bachman's / XNOTOX design to accommodate my power supply and other connections. With the addition of an adjoining board I was able to have the Filter modes electronic switching controlled via a microprocessor.
VCF-A is made of four boards which can be seen on the left tower, VCF-B also uses four boards and can be seen on the right tower.

The VCAs
The FloriVoxTron has five stereo VCAs. Each of the four voices has a stereo VCA and there is a Master stereo VCA on the first three voices later down the line. These units are based around the SSM2164 VCA chip and the schematic is Mark Irwin's design. I designed the printed circuit board and got them made at Seeeds Studio along with most of the other boards in the FloriVoxTron. I do make my own boards using a 3D router but this is limited to single sided boards. When I need to do multiple boards of the same design I use Seeeds Studio.


The Valve Overdrive
Graphic of the Valve Overdrive section

Nothing overly complicated here. I'm using two 12AU7 valves in a standard low voltage configuration. There was a complicated stage of trying to control such a high gain beast with digital potentiometers but it works well though very noisy at such gain levels. It has Gain, Tone and a Diode distortion stage added for more variety. As mentioned this is only applied to the main signal path where voices 1 through 3 travel.

The Effects
Graphic of the Effects Section
There are two effects units which contain the Spin Effects FV-1 module. A wonderful beast with three controls for various parameters. The module allows for eight different effects algorithms. Both of the units contain the same effects given that they are on different signal paths.

The Keyboard
The keyboard is something I salvaged which has a simple diode matrix setup. I've used an Arduino MCU to map this and put out serial data pertaining to the note played. Nothing overly complicated here. The provision for velocity sensitivity is there but I have not implemented this further down the line.

Joystick
The X and Y parameters of the Joystick can be assigned to many of the different parameters of the FloriVoxTron. This assignment also includes a depth controls the percentage of the parameter affected. Below the joystick are three buttons with three LEDs. These are user assignable pre-sets for the joystick which allows the user to quickly change the joysticks destination without wading through the menu of the LCD.

Voices and their Play Modes

Graphic of the Voicing Section

One of the nice features of building your own instrument like this is you can put in any functions you want. How the sample sets are played and mixed was one area I wanted a few special things.

As mentioned before, the FloriVoxTron has four voices which can be assigned four different sample sets. But in fact I have taken this further. Within a patch, each four voices can have five different sample sets. This works simply with each press of a key, the sample set changes. It will only change the sample of the next note played and not any notes currently playing. This can be configured as a sequential process or randomly on the list provided.

Another voicing function which is more about VCAs associated with each voice is the different Play Modes. There are three modes - Stack, Crossfade and Rotor. In Stack mode you simply choose which voices you want to hear by selecting the sample set and the voice activation button. Crossfade mode makes use of the slider below the voice select buttons. Voices can be assigned to the Left or Right side of the fade so the user can manually fade between the left and right where you'll hear the selected sample sets. And finally the Rotor mode where another LFO spins around and cross fades between each of the active voices. This LFO also has a second LFO to give that lovely effect of one LFO controlling the speed of another.

The finally voice related function is the Stutter function. Only voice Eins uses this function due to a hardware limitation. Timers are used to start and stop the playing of a sample activated on the keyboard. As you add more notes via the keyboard the Stutter of the new note is not in sync with the previous. In addition the Scatter control will introduce a random time for the stop and starts of all notes being played. A feature of the voice activation buttons which enhances this process is when you hold a note on the keyboard and turn off the voice, the note is held without the use of the keyboard now so you can go onto playing another voice while this held voice happily plays in the background. The held function works independently on all voices.

The Sample Sets and the Tsunami Sample Player
The sample sets took quite a lot of time. Unlike a traditional sampler, the Tsunami Sample Player doesn't take one sample and transpose it across a keyboard, so for me to make the sample sets means creating a sample for each note. This is not a great problem as I wanted a more natural sound. Most of the sample sets I have used are unique samples per note anyway. The process of recording these samples from their origin was helped by an old program I had laying around named Chicken Systems Translator which I originally purchased for an old hardware sampler I had. This would make my life easy by playing back a range of notes and recording the audio to individual audio files. From here I would rename them to be placed in the appropriate location on the Tsunami.

The Tsunami uses a micro SD card to store the samples in 44.1khz 16bit stereo format and it can address 4096 of them. They are referenced by simply numbers of 1 to 4096. The Main MCU in the FloriVoxTron does all the work of transcribing the chosen sample set and played notes to the appropriate sample number on the Tsunami. This communication is done via one of the serial connections on the Arduino Mega2560 which is the Main MCU.

I won't go into great detail about the Tsunami as this can be gleaned from the Robertsonics web site here. 

One of the reasons I chose the approach of four difference voice audio paths is because the Tsunami allows for this with its audio outputs. It has eight audio outputs which can be configured as eight mono outputs or four stereo outputs.

A feature of my sample setup is that each of the four voices mentioned - Eins, Zwei, Drei and Vier, can have a one sample set allocated or it can up to five sets. These five sets can be arranged to play randomly on consecutive note presses or in ascending order. Meaning each time you press one note a different sample will play. This allows for some interesting effects especially in the case of say a choir where we have 5 different vowels being sung. As we press notes we get different vowels being sounded.


Hardware

The Front Panel
Front view of the FloriVoxTron

The front panel is made from 6mm black acrylic. As with many of my projects, I have routed the channels for the text which I have then filled with white acrylic paint. The LED bezels are opaque acrylic once again routed for their markings and filled with black acrylic paint. Behind the LED bezel is a shroud which concentrates the light from the LED through the bezel and limits the spread of the LED. 

Closeup of the front panel without the case

The knobs for the rotary encoders are three pieces of acrylic glued together, routed and polished to hide the joins in the acrylic. A shaft has also been cut out on the bottom side. The touch switches are actually drawing pins. This works just fine though they are a little fiddly. In another project where I have used touch switches, I used bolts and small magnets which are more sturdy but do have some contact issues. I have not found the perfect solution to making a durable touch switch contact but I do like using touch switches.

As far as the operation of the rotary encoders are concerned, they have several functions or modes. I have taken advantage of the switch that all the rotary encoders have to make the encoders multifunction. The front panel MCUs will tell the Main MCU several states of the rotary encoders. They will say when it is rotated, pressed, pressed and held and double clicked. I've taken advantage of this to place two functions on each rotary encoder with its current state reflecting in the LCD.


The Front Panel Section

Cross section of the front panel where the two layers of printed circuit board can be seen

The front panel is quite complex. Each of the sections laid out have two layers of printed circuit boards behind them. The control of the RGB LEDs comes from the MCU after it's received information from the Main MCU. The MCU also reads the touch switches and rotary encoders and passes this information back to the Main MCU. In some cases I have used two MCUs due to the amount of digital I/O pins needed. Most of the MCUs are Arduino Pro Minis of the 168 variety. In this instance I have used I2C to send data to and from the Main MCU. I2C works well between Arduinos.

Quad DAC Boards

The rear of the FloriVoxTron without its case. The foot controllers, MIDI, Power Input and Audio Outputs are clearly shown. The SD Cards containing the sample sets and patch data can be seen also.

As mentioned earlier these are boards which contain a STM32, blue pill, and a quad 8-bit DAC along with support components. They get their commands from the Main MCU via Serial. At the time the STM32 didn't have a very good I2C support so I decided on a protocol that was more appropriate which was the serial as we are not talking about high speed communications here. The output of these boards are used to control the various voltage controlled boards like the VCA and VCF boards. There are eleven Quad DAC boards in the FloriVoxTron.


The Main MCU
This is where all the various input and outputs originate and all control is coordinated. I decided on a Arduino Mega2560 primarily because of the multiple serial ports available. The keyboard interface outputs serial data, the Tsunami Sample Player receives and sends serial data, there's the MIDI port which is serial as well. The Main MCU has a Sd card interface where patch data stored along with sample set control data and of great importance, the parameter data. The FloriVoxTron has almost 500 parameters. The parameter data file on the SD card tells the Main MCU which Quad DAC board to send data based on the parameter being changed. Other data contained in the parameter data file is things like the format of how to display parameters on the LCD and if a parameter is editable via the LCD's menu. The parameter data file is quite large and an SD card seemed the fastest and most convenient format to use. I investigated EEPROM which I have used in other projects but this was much slower plus it had the disadvantage of not being able to easily update unlike an SD card which I can update on my PC. The parameter data file is created from a spreadsheet via a small program which compresses the data down in a format that is easy for the MCU to read.




Warlord - Guitar Effects 

The Warlord guitar pedal is a more robust version of my older project the UM-XN1. The original unit was more of a test bed for the Spin Semiconductor's FV-1 in the form of the SKRM-C8 module.

"The SKRM-C8 reverb and effects module line is an easy to integrate effects solution for your pedal, amp or other audio equipment. These modules are available pre-programmed and can be custom programmed for your product. Modules operate from 5V to 12V DC to ease integration into your design." - quote from the Experimental Noize site.

The SKRM-C8 like all of its sister modules has an EEPROM that can be easily reprogrammed with any DSP algorithm written for the FV-1 chip. There is a community of users and DSP writers that have created numerous algorithms for these modules and I have taken several to include in various projects in the past. My Therematron uses one of these modules for its effects.

The Warlord uses patches from SKRM-C8-eTap2 which was a project of has specific patches which emulate vintage tape echo machines and more as used by guitars like Hank B. Marvin of The Shadows.

So the main differences between the UM-XN1 and the Warlord are:-

1. Much sturdier case which includes foot switches for control of the effects.
2. LCD where custom patches can be stored and retrieved
3. Hi Gain stage for direct input from a guitar pickup
4. An Arduino Pro Mini is used to control the FV-1 chip and to store patches
5. It's orange !

This unit runs off an external dual 9v power supply.

What I gained from this project was some skills in spray painting cast aluminium cases to a point where the coating is very robust using quality spray paints from the Rust-Oleum brand.

Alas, the Echotapper project no longer exists but the wonderful designers over at Stanley Effects has created the Blue Nebula pedal which is based on the Echo tapper.


Spin Semiconductors have moved on from the FV-1 to their "bigger, brighter and faster", FXCore chip

FloriVoxTron - The end in sight 

 This project has been going for about 3 years now. It's a sample playback synth. 16 note polyphony split between a total of four different voices. This synth is stereo from the start. Each note is a independent sample which is stereo. There are two signal paths on this unit. The first three voices pass through individual stereo VCAs which each have a stereo. Each VCA has a dual LFO with multiple waveforms. The signal then passes through a valve overdrive unit and onto a stereo CEM3340 filter configured to a Elka Synthex. We then pass into a stereo effects unit and into the final mixer onto the output buss. The other voice has a duplicate path without the valve overdrive.

The heart of the unit is the Robertsonics Tsunami Wav Player.

This machine is littered with LFO / ADSR modulators. More information when I worked out how stuff there is.

Here's a picture which shows the quite large case which contains numerous MCUs etc.

Not the most flattering shot - more to come


Therematron v3 - the final ! 


The Therematron v3 at one with nature

The upgrade to the Therematron, done a few years back was a great extension to the already wonderful Music From Outer Space's Soundlab Mk2. My execution was hasty and rather messy but the really annoying problem was the bleed which affecteds the pitch of the VCOs that came from the LFO and ADSR.

I'd attempted to fix this pitch issue before by enhancing the power supply to be ultra-smooth but this proved fruitless. The issue was that the voltages coming in via the Coarse and Fine frequency controls on the panel were dirty with the signals of the LFO and ADSRs. I removed this incoming voltage and used my bench power supply to supply the power and the situation improved immensely.  I designed up a small power supply which delivered the required voltage. Thankfully I could use the incoming dual rail 12v for the rest of the unit and put in 9v regulators for this VCO power supply. It is very smooth now and makes the Therematron a more usable unit.

In reality this was just one of the issues. As mentioned I threw this upgrade together and used inferior preassembled cabling which was not of good quailty. I use dupont header cables in this unit, so I decided I needed buy some decent wire and make my own up.

Other issues included the layout of the PCBs within the case. The original design had the Soundlab PCB mounted to the base of the unit. This board has almost 100 single wire connections on it and the location is not easy to access. I decided to move this PCB to the rear of the case where it is now fully accessible.

The initial upgrade included a second VCF. My first attempt at a VCF was a very simple design that Ray Wilson (MFOS) had in his Analog Synthesizers book. This didn't work well so I decided on a different type of VCF, a Steiner VCF design from Yves Usson of YuSynth fame. This is nicely unpredictable and most usefully different from the Soundlabs SVF. I want to say here is that the original VCF board was still mounted inside the case as it was difficult to get it out. It's now out !

The second LFO, based around a digital potentiometer driven by an Arduino ProMini, was a little adhoc in its wiring and mounting. This has been greatly improved with the LED display and button now being directly connected to the LFO board as opposed to originally where I had a second ProMini sending data back and forth between the LFO board. This was not a reliable approach. Now the display board is simply a 74HC595 serial to parallel converter with a LED on each output. In addition to this hardware upgrade I also improved the LFO code so that the external Trigger In and Sync In controls work. They're not perfect. The Trigger In will listen for a pulse and restart the waveform with each pulse and the Sync Input will change the speed of the LFO based on the input voltage. The caveat with the Sync In is that I can't read negative voltages on the Arduino so it only reacts to positive voltage changes which is nicely unpredictable.

The original upgrade saw the removal of the Echo Rockit, the PT2399 based effects unit from MFOS. This didn't really do it for me as it was too lofi. No problem. I had good experience with the Experimental Noize FV-1 chips and I designed a unit around their SKRM modules. The signal flow out of the Soundlab module was to have a way of changing the order of what's next. I have the Steiner VCF and effects unit hard wired in but I wanted the ability of swapping their order. So I came up with something using switches which didn't really work in the end due to the complexity. One of the added features was a feedback control which took the effect signal of the effects unit back into the Steiner VCF. This didn't work at all. The upgrade for this section was based around removing the complicated switches and replacing them with a PCB which had four DPDT relays on it. This works really well. This makes the wiring simpler as well as I only have a couple of wires to the front panel to control the relays. Best of all the feedback control now works though you have to be careful.


The Therematron gets its name from the original design which had a Theremin in it. Big Fail. There was too much noise floating around inside the case for that to ever work. So the Theremin board was removed in the first upgrade but the front panel controls still existed. This "final" upgrade sees the Theremin controls removed and replaced with four new modules.

There are two Octave modules. These put out -4 to +4v volts for the VCOs. I often use the Therematron with an Arturia BSP sequence which outputs control voltages. This unit is setup to output 1v per octave control voltages. In use I found  that changing octaves on the Therematron was down to retuning which can't really be done in the middle of a performance whereas now I can simply switch up or down. This schematic I took from Elby Designs' Octave Transposer.

The other two identical modules are Lag Processors which allow me to slew any control voltage. This can be anything from smoothing a LFO waveform to creating Portamento on the pitch of a VCO. This design was based on the MFOS RC Lag processor.

I've checked all the functions and found a couple of mistakes but they were easy to fix and so far it works quite well. I also made a small modification to the Soundlab PCB which was a resistor on the VCA's Modulation input from the LFO. The signal level here was quite light on but now it will take the sound to almost nothing when the control is fully clock wise.