What's up

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.

Amongst Projects 

I've decided to include the latest and archive blogs from Amongst Projects where my music electronics and filming gear is stored.

TMNSD - CV Arpeggiator 

TMNSD - The Final Unit !

The TMNSD is short for ? Actually I've totally forgotten what it's short for. Never mind. My friend Bernard asked me to build this unit for him to his needs for his modular synthesizers. This unit is three independent Control Voltage controllers each with a built in arpeggiator designed to control modular synthesizer systems Voltage Controlled Oscillators or any other voltage controlled input device.

The user can simply play single notes or use the arpeggiator to cycle through the chosen notes in a variety of patterns and also over a larger range of octaves. The arpeggiator has several Play Modes. There's Up, Down, Up/Down and Random. It also has a AsPlayed Off and On mode which means the notes will play in the order that they were selected. The Latch control will hold the notes on when first pressed and turn off when pressed again.

Each module has an external trigger input located on the left side of the unit. On the right hand side each module has CVA and CVB outputs. These are control voltages set at 1V per octave to control the VCOs (Voltage Controlled Oscillators) pitch. The outputs have an accurate range of 12 octaves. There are three trigger type outputs - Trig, Gate and Aux. The Trig outputs the trigger signal and naturally the Gate outputs a gate signal. The Aux output has several output options. The only link between the three units are an internal sync connection. They are synced to the previous module. By this I mean that module C will sync to B, B to A and A to C. This way most combinations can be achieved.

Top view of the completed TMNSD

The front panel controls consist of a potentiometer for controlling the arpeggiator speed when in independent mode. It also acts as an time offset control. More on this later. There are 12 touch sensors which represent the 12 notes of a chromatic octave which have 12 associated RGB LEDs and four function controls. These controls are FUNC which takes the unit through several setup screens. ARP which puts the module into arpeggiator play mode. LATCH which will latch the notes off and on and finally MODE which is another setup screen relating to the arpeggiator controls.

The FUNC key takes the unit through 3 different modes. When lit green the unit is in PLAY mode where notes can be selected. When RED the unit is in the INPUT and OUTPUTS setup where the clock source can be changed, what is output on CVB is changed along with what the Aux output will be outputting. During this mode the ARP SPEED potentiometer also changes to control the timing offset of the Trigger output which will range from 0% to about 90% offset to the next trigger. This also affects the Gate signal. When FUNC is BLUE the note keys represent a divisor of the clock speed whether internal or external. This starts from 1/1 up to 1/12 on the B note.

The other function is when the MODE key is GREEN. During this mode the notes have several different functions which include the play direction of the Arpeggiator, the octave range of the arpeggiator and also a transpose function which takes the arpeggiator down by up to 2 octaves.

The Hardware

Each module is made up of two PCBs. There's the CPU board and the Panel board. The CPU board contains an Arduino Pro Mini which controls a MCP4922 dual channel 12 bit digital to analogue converter via SPI. The two outputs of this converter are processed through an op amp to change the output voltage range of 0 to 5v to -6 to +6 volts. The opamps have 10 turn trimpots for tuning the output voltage offset and range to generate an accurate 1 volt per octave output. The trigger outputs are generated from 5v digital outputs on the Arduino which are buffered through a TL074 quad op amp. The trigger inputs are processed through a diode and transistor to clamp voltages over 5v as to protect the digital inputs on the Arduino. This schematic came from the wonderful Electro Druid web site. As can be seen below, the AMP trimpots from CVA and CVB have been removed. For this project I decided it would be easier to fix the feedback resistor of the op amp channels and use software to correct any error. I could have done similar with the Bias trimpots as well.

TMNSD CPU Board vD - note the capacitors across the resistors and the lack of AMP Trimpots

The front panel is made up of 16 daisy chained WS 2182 RGB LEDs which I've used before and have down pat though I have to admit that I wrongly used two different purchases of LEDs to find that the second batch had a different LED order. Thankfully these are all together on separate modules. The touch sensors were using a new discovery, the BS818 chip which is an eight channel capacitive touch sensor chip. I've previously used TTP-223 chips which are single touch switches but I needed to find a multi-switch version for this project. The potentiometer is also mounted to the front panel board for ease of construction. The touch sensors themselves are neodymium magnets. I'd previously used drawing pins for touch sensors but they needed complicated electrical connections in the way of single sockets.

Front Panel Board - front side - populated

The boards were made by Seeeds Studio in China and they are very good quality. I've had 10 made of the CPU boards and 5 of the front panel boards. Due to the numbers I decided to make the CPU boards a little more generic. The board has provision for MIDI and via the serial port which includes a jumper location to change between the programming port and the MIDI port and an I2C for a LCD screen. I have a number of previously made MIDI interface boards which could be used. This way the module could potentially be used to create an LFO module or any other number of music related projects. The I2C connection could be used to connect another Arduino which in turn would have provision for multiple potentiometers or data encoders. The options are there.

Close up of a LED bezel shows the countersinks for the magnet and bolt
The front panel of the case is a 3d routed piece of 4.5mm black acrylic that contains lots of opaque white acrylic inserts which are the combination touch sensor and LED. These bezels are countersunk to 2mm to accommodate the magnets. Underneath the magnets is a flat head bolt mounted to the front panel PCB to give the electrical connection to the touch sensor pad. The magnets locks themselves to the bolt by magnetism. These work quite well but on some of bezels the countersunk hole for the bolts were deeper than the bolt hence there was no electrical connection. I found that using a fibre washer under the bolt head and only placing one magnet instead of two, gave the same height and an electrical connection.

Front Panel with all the acrylic pieces in place and the white paint infill completed

The case was another milestone for me. It's made from hardwood in particular Tasmanian Oak which is a plantation wood. It is quite hard, as the name suggests, and takes a considerable amount of time to cut on the router but after many attempts I managed to make a finger joint using this wood. Previously I have used MDF and plywood but neither of these woods worked to form a clean finger joint. I think this is something that I will be using more into the future. The input and output panels are 3d routed from 3mm black acrylic and filled with white acrylic paint as I have done in many projects.

The power for the system runs from a 18v plugpack. This in turn is converted to 5v via one step down converter and another buck converter creates the -12 and +12 volts needed by the opamps.

New Web Hosting 

So Hostbaby is closing down and has been taken over by Bandzoogle. I have to say that it's all looking good so far and easy to edit. There are some caveats with formatting but I personally like some limitations.

I'm "streaming" through my Amongst Projects blog here as well which is a little out of date but its purpose is to log my electronic projects I design and build for music and film related areas.

MIDI Transport Controller and Joystick 

The Transport Controller - this unit does the transmitting - well used already !

A while back I made up a simple transport controller so I could remotely, well a few metres away, control my two main audio software packages, Cakewalk Sonar X3 and Sony Vegas Pro 13.

This unit is made of two parts. There is the remote battery powered transmitter and the receiver unit which has a MIDI output on it to connect to one of my MIDI interfaces. The transport controller transmitter simply has seven switches which are monitored by a Arduino Nano which when pressed transmits the a value to the receiver. The receiver gets these values and puts out an appropriate MIDI controller value to the music computer.

The radio setup in both units are nRF24L01+ 2.4Ghz ultra low powered transceiver modules which are cheap and work a treat. Several libraries exist for the Arduino making coding simple. I used mirf. The radio modules communicate with the Arduino via the SPI interface.

I wanted to also try out something different for the controller buttons. So I went with touch sensitive buttons. This uses a small module called the MPR121 capacitive touch sensitive breakout board containing a Freescale MPR121 chip that interfaces with the Arduino using the I2C interface. I became aware of them via Julian Illets youtube videos for his penny touch organ. The module has 12 touch sensitive electrodes in total. I am only using 7 for this project. The buttons themselves are drawing pins as it seemed the simplest way of getting a neat electrical connection from the front of the panel to the pins on the MPR121 board.

Another challenge was to use WS2812G RGB leds as indicators for each button. These I mounted onto the rear of some routed 6mm opal acrylic bezels to help diffuse the light. In turn these bezels where mounted through holes of the transport controllers front panel. The front of these pieces of acrylic had the basic transport control symbols routed into them and filled with acrylic paint. This has a nice effect of backlighting the symbols. When the unit is running each of the symbols are lit with a washout colour but when the button is pressed it goes to full saturation.

The power for the transport controller comes from an 18650 3.3V LiPo battery. The battery is charged via a micro USB connector which is mounted on the TP4056 based battery management  board which takes care of charging the LiPo battery. From the outputs of the TP4056 there is a step up voltage board which takes the voltage of the 3.3v LiPo battery to 5v which powers the Arduino Nano. In hindsight I should ave used a 3.3v based Arduino as it would have saved using this step up board as all other parts in the transport controller can run from 3.3v.

The receiver unit showing the USB power socket, MIDI connections and Joystick socket on the top.

The receiver is a simple Arduino Nano with a nRF24L01+ attached. Pretty simple. One of my standard MIDI I/O boards is also mounted in the receiver case to transmit the incoming radio signals to the MIDI output and eventually controlling the software. Once again I used the Forty Seven Effects midi library.

The joystick controller

I have recently made an addition which is a joystick controller that sends out MIDI controller values for the X and Y positions of the joystick. This is something I wanted to control certain VST plugins within Sonar. One VST in particular which is a granular effect emulates a joystick on its own screen which I was able to attach to my new joystick controller. For this I made one of my acrylic cases to house the joystick with a 4 core cable running back to the transport controller receiver. The two signal lines from the joystick for X and Y are connected to two analogue voltage inputs on the Arduino and their values are converted into MIDI controller values. I found I needed to add a bit of smoothing via a couple of 100nF capacitors across the analogue input pins as the power coming from my USB 5v power supply which powers the receiver was a little noisy and affects the incoming joystick values.

The unit works well when doing recording mostly. I have the controller sitting on the keyboard I am using and with a simple setup with either audio package I can record and do other operations.

Therematron Upgrade 

The Therematron NOT - current model
Well you may ask why is there an upgrade when I've not seen the original version ? I ask myself this also. It's a long story.

So the original Therematron design was based around MFOS Soundlab Mk2 designed by the late and great Ray Wilson. Along with this wonderful 2 oscillator synth I was to use Ray's Echo Rockit digital delay unit and the icing on the cake would be the PAIA Theremax theremin. What a wonderful machine it was. In theory anyway.

It was quite a while ago that I started the original Therematron. I started this back in August 2014 or possibly earlier. Looking back at my daily log I read that it wasn't until February 2016 that I finally got back to trying to make the Therematron work. I had got the Theremax working inside the case but there was something wrong with the Soundlab. The wiring of Ray's boards isn't easy. I fully comprehend that he designs his boards to be as small as possible but in the process most potentiometers and switches don't have their terminals next to each other and can often be part of a chain of wires to get them all connected hence the wiring of a single board synthesizer is quite messy. Add to this the limited space inside the case and problems become quite difficult to solve. Hence I appear to have put off getting this unit running considering it was in late 2014 that I had made the case up.

Moving along to March 2016 and several other distraction projects later, I was battling with getting the VCOs to be stable. The issue was and still is to a degree, an amount of the envelope generators LFOs coming through. It must be something to do with the earth line as far as I can tell. I'm not working on solving this issue as I'm happy with where it is. Someday I may come back to this.

I made this funky light display on the rear of the Therematron as just something to do and it also affects the power supply but to a greater degree that I can't use it. I could possibly try putting in a power regulator on the light display to help alleviate any affect it has on the other parts of the power circuit. Since this is only seen from there rear I think I will just put a 9v battery inside to run it when I use it live. Seems the simplest solution to me.

Rear panel atom animation
One thing that did help with tuning the VCOs was the purchase of an Arturia Beatstep Pro sequencer. This wonderful unit includes CV and Gate outputs of which I can tune to output very accurate voltages which helped with the tuning. The tuning is done using the Scale Trim and High Frequency Compensation Trim pots. Using the BSP and a guitar tuner I was able to achieve about 5 octaves which I am more than happy with.

It was during this period of finalising the Therematron that I could not get the Pitch on the Theremax working when installed in the case along with all the other electrical noise. I could get a reduced output from the Volume antenna. Quite disappointing. I was also disappointed by the quality of the Echo Rockit. I knew that it was "lo-fi" but it was lower fi that I was happy with. So there Therematron went back on ice and then we moved to the country. It was February 2017 before I started what would become the Therematron NOT !

Having moved into the new house and setup a new studio I returned to where I left off back at the Blackwood Studio and started work on the Therematron NOT! in the new Wahroonga Studio. I decided that I would remove the Theremax and replace the Echo Rockit with an Experimental Noize module. Quite a bit of work but I wanted to get this machine working. The Theremax may still appear in a new case later down the track.

This upgrade couldn't be simple could it ? Oh No. I designed an effects chain which not only had the EN SKRM module but in addition the module contained an analogue feedback path which, for extra variation in sound, includes a VCF and a LFO for VCF modulation. The idea being to emulate to some degree what the Echo Rockit could do and more.

The EN-SKRM module was mostly straight forward as I had already made the UM-XN1 guitar effects unit. Where the Therematron version differed was the addition of a feedback path which routes the output of the unit back to the input but via a VCF. This VCF can also be moved within the signal path. It can be changed from being in the Feedback path to being at the start of the effects unit. Reasonably straight forward in theory.

So a LFO. I wanted to make a LFO based around an Arduino controller and a MCP41100 digital potentiometer. These potentiometers have a 256 level 100k pot which are controlled simply using SPI from a microcontroller. So the idea came to me to use the Arduino to create several different waveforms as a CV to output as a modulator. A fellow electronics nut and musician, Abram Morphew, had done all the work already. Abram had created what I was after as far as the waveform creation using interrupt timers on the Arduino. Some small modifications to his code made the digital pot do all the work.

The LFO has another Arduino which controls the selection and display of waveforms on the front panel. The EN-SKRM module also has a similar Arduino panel controller. I decided to use a simple serial protocol to have the panel Arduino talk to the LFO Arduino which appears to work well after some initial problems. I originally had the serial communications working over the Software Serial library, which is a software method of creating a serial line on any Arduino digital connection but the downside of this is there is no UART with a data buffer. Hence, if you do not monitor the software serial connection you may miss something. The hardware serial ports  on the Arduino have a buffer where data is stored until read or until it's full. This way you don't have to be as concerned about servicing the serial port.

The VCF I wanted to be cheap and dirty. I chose a design Ray Wilson had in his book, "Make: Analogue Synthesizers". It was based around a single LM13700 chip. The only problem was it was too dirty. Aghhh ! Now I need to find space and another design. I was getting bored by this stage. I trawled through links to find the YuSynth site. Here I found a Steiner VCF that was not only a good sounding VCF but there was also a single sided PCB design. So I set out and cut myself a slightly modified version of this VCF. I moved the power connectors around and change the ins and outs to suit my connectors.
The new VCF, LFO and Effects section
The only small catch with this VCF design is it calls for a match pair of BC547 transistors. I did have any on hand at the time so I used BC549s. So I made up a simple matching circuit using Ian Fritz's transistor matcher to help me find a pair and I used them. But then the inevitable happens and I get limit sound from the unit. I also didn't have a TL074 so I used an TL084. So I immediately presume that the TL084 that I've used instead of the 74 and the BC549 instead of the 547 are causing the problem. So when I next go into Adelaide I purchase these from Jaycar. Put them in and no change. Turns out I had several microscopic solder bridges on the board. It now works but I do wonder if the components made a difference. It sounds great !

So now I had a good sounding setup. I needed to create a new bottom panel for the Therematron. Like usual I spent a good day in Freehand moving things around on the screen and realised that I had some spare real estate now that the Echo Rockit has been replaced. "Let's put in another module !" - I heard my evil twin shout. But what ?

I had been playing around with some simple circuits from my copy of Nicolas Collins, Handmade Electronic Music, is recent months and I remembered where he describes using a 4017 at audio speed. A 4017 can be used as a divider. It's in reality a decade counter. So it gets me thinking about using a 4017 to make a sub-oscillator. Why stop there. A 4017 puts out a nasty square wave so I put a variable filter after the 4017 and now I have switchable 1 or 2 octave sub-oscillator with a low pass filter on it. That fits quite nicely into the front panel.

My rather messy schematic for the Sub Oscillator (note power input is +/- 5v)
Now NO MORE new stuff !!

It all fits quite neatly. Don't lie ! It's a mess inside there. Do not enter without a guide. It's not perfect as the whole VCF switch around on the effects doesn't quite work but for now I am happy. I've programmed the SKRM module with a basic set of reverbs, echos and modulation effects for now and I can always come back and change these later. The top front panel still has the Theremax controls but the Theremax is no longer contained and the aerials for the Theremax are still there and act as nice handles. Now I just need to use it to make noises !

But the main question is whether this is the end for the modifications after all there's the front space where the Theremax controls were ?

The full rear panel

Flatman and Ribbon 

The Flatman and Ribbon - Dual Ribbon CV controller
Talking to artist friend Bernard, who recently decided that spending lots of money on modular synth modules was his new pass time, wanted some other kind of alternative controller. I suggested a ribbon controller mainly because my new Solaris has one and it's a great way to control anything on the synth. As always I head for Google to find if someone else has already done one of these projects. I found a project by Chip at Synth Hacker - http://synthhacker.blogspot.com.au/2016/04/diy-ribbon-controller-cv.html. This was the basis of the unit I was to build.

The main focus is making a controller for modular synth units hence it needed to put out a control voltage relative to the position on the ribbon. Going to my trusty supply of Arduino Pro Mini processors you may know there is a lack of voltage output control. There is a method of creating a voltage output using a resistor ladder and several digital outputs but we wanted something a little more accurate and less output hungry. So I chose the MCP4922 dual 12 bit digital to analogue converter (DAC) primarily because Chip used this one in his ribbon controller project. This digital to analogue converter was cheap and has two converters on it. So it was the dual converters on the DAC that allowed this project to easily have two ribbons.

The botched job of the MCP4922 Digital to Analogue converter can been seen at the bottom left of the printed circuit board.
The DAC is easy to connect, and thanks to Chip's notes, easy to program. It uses the SPI protocol to communicate between itself and the processor.  As mentioned, analogue synthesizers use a control voltage to control pitch and modulators on synthesizers use control voltages as well. These modulators usually range from a negative value to a positive value and use 0v as the mid-point where no modulation happens. To achieve this on the Flatman and Ribbon I used an inverting amp with adjustable bias. Once again Ray Wilson has a useful calculator on his web site which allowed me to calculate the values I needed for this part of the schematic.http://musicfromouterspace.com/index.php?MAINTAB=SYNTHDIY&PROJARG=ELECTRONICS/TECHBENCH/TECHBENCH.php&VPW=1910&VPH=825. Chip wrote a version simple routine which I have used to set the output voltage on the MCP4922 converters. The only issue I had here is probably not obvious in the above photo as you can't see the converter but during the design of the board I needed to create the component for the DAC and for some reason I made the package a DIP-14 whereas it's a 16 pin package. What you see here is the fixup to avoid redoing the printed circuit board.

Showing the back side of the controller unit. The overkill power supply with it's 6 x 1000uF electrolytic capacitors
The other complex part of the hardware construction was creating a dual power supply to allow for a maximum of -5 to +5v outputs on the control voltages. These power rails needed to be stable as they are source of the outputted voltage to the synthesizer. For 1V per octave synthesizers a simple calculation of 1 volt divided by 12 semitones per octave gives us 0.083 volts per semitone. So this suggests that any slight interference within the power supply would vary the control voltage. Using the 12 bit digital to analogue converter over an 8 bit converter gives us a smoother transition between frequencies especially when using the full -5 to +5 range on the ribbon.

I went a little overboard with the power supply. It's based on Ray Wilson's (MFOS) design which I have used before. The Wall Wart Bipolar Supply is a simpler way of getting a dual rail power supply as it  avoids dealing with mains wiring. This is because it uses an external 12v AC plugpack or wallwart. I don't think anyone really likes plug packs but working with mains wiring is less appealing plus there is the added cost of the associated hardware. Using Ray's schematic, I replaced the 7812 and 7912 in the design with 7809 and 7909 regulators to give me 9v which is more than adequate for the output voltages needed. If I used 12volts I would be pushing the Arduino's own power regulator to its limit which I didn't want to chance.

Showing the front panel with the outputs down the left side and the lcd with menu buttons on the right
The unit has an LCD display with menu buttons. I used a 16x2 backlit lcd display which comes with an I2C interface board attached. The I2C buss uses less wires to communicate between the Arduino and the LCD display. The I2C buss is on A4 and A5 on the Pro Mini. The four buttons are for changing menu items. There's a Menu Up, Menu Down, Value Up and Value Down. It's a design I have used before and works well. Though it wasn't until I'd finished making this project that I realised I had put in extra components that are not needed.  For each button I would put a debouncing capacitor and a pulldown resistor. It didn't occur to me that I could use the Arduino's internal pullup resistor's which each digital i/o has. Next time !

Next to the output sockets I've put a rgb led associated with each output. These rgb leds are my favorite led at the moment - the WS2812. What makes this leds nice is you can simply string several together and the library courtesy of Adafruit makes them easy to control. I highly recommend you support Adafruit. I would more if the freight costs to Australia were more affordable. These leds reflect the state of the outputs. The control voltage leds do a colour wheel effect based on the ribbon position. There was a small issue when it came to the software. I use have used one of the processors interrupt timers when running the sample/hold mode but alas the Adafruit library gets upset with me doing this thus during this mode the leds do not function correctly.

The unit includes a MIDI In and Out. Since the Pro Mini has a standard serial interface it makes sense to include a MIDI interface. The unit will act as a MIDI merger allowing all MIDI information coming on the In connector to be thru putted on the Out socket. With the addition of the information from the ribbons. In addition there is a MIDI function which monitors the MIDI in for a MIDI clock and converts this into a pulse on the Aux Output.

The outputs on the controller box are Control Voltage A, Trigger A which are associated with the top ribbon. Control Voltage B, Trigger B which not surprisingly are associated with the lower ribbon and Aux Output. Depending on what mode you are running the unit in depends on what the different outputs do.

The underside of the controller panel lid. Shows the LCD at top with it's I2C daughter board, button board at the bottom, the rgb leds and output sockets to the right.
There are currently 3 modes - Default, Tempo and Sample/Hold. Default mode is simply where the top and bottom ribbons output a control voltage. Their associated Trigger Outputs will either put out a Trigger when a finger is applied or hold the Trigger Output high until the finger is removed. This is the Gate mode and each ribbon can be set independently to either Trigger or Gate. In Tempo mode the top ribbon acts the same as the Default mode but the bottom ribbon will output a pulse on the Trigger Output. The speed of the pulse is affect by the position along the ribbon. Finally in Sample/Hold mode we see the Control Voltage from the top ribbon output a random voltage. The range of the voltage is defined by the fingers position on the top ribbon and the speed at which the random changes is defined by the finger position on the bottom ribbon. By default the Aux Output will always output a pulse based on MIDI Clock and the Clk Divisor value set in the menu.

There are various parameters within the menu system. For both ribbons we have:-
  • U Lo Volt - sets the lowest voltage value
  • U Hi Volt - sets the upper voltage value - note this can be made a low value and the U Lo Volt can be a high value thus creating a reserve direction ribbon
  • U Trigger - whether the trigger output is Trigger or Gate - trigger will simply pulse when the ribbon is first pressed whereas Gate will hold the trigger pulse high until released
  • U Hold - set this On and the control voltage output will be held at the last value otherwise it will revert to the U Lo Volt value
  • U MIDI Ch - this is the MIDI section and this value sets the output midi channel
  • U MIDI CC - this is the controller value that this ribbon will output on
  • U MIDI low - the minimum value to output
  • U MIDI high - the maximum value to output
A set of these menu items exist also for the Lower Ribbon. The only other current parameter is Clk Divisor which is the divisor of the MIDI Clock. The MIDI Clock outputs at 24 pulses per quarter note. The Clk Divisor value will simply divide this number and then output a pulse. https://en.wikipedia.org/wiki/MIDI_beat_clock 

The USB end of the ribbon platform which I am very proud to have made work and look good
The platform on which the ribbons are mounted was quite a challenge for me. It's made from 19mm plywood just because I had some and it's a nice solid thickness. I wanted to make the final result as clean as possible. I had to mount a USB A socket in the end of the unit along with a printed circuit boards which has a few components and the ribbon connections. So I managed to route a chamber into the end of the platform to contain the pcb. One of the biggest challenges of this section was I had no way of screwing down the small pcb into the 3mm remaining plywood. The only part that I could screw down was the top acrylic piece. So I came up with the idea of making the pcb a tight fit inside the cavity. Then I soldered some small pieces of coiled wired to the bottom of the pcb so that it was levelled out given the usb socket was raising one end. Then I mounted some standoffs on the acrylic lid so that when the lid is screwed down these standoffs hold the pcb in place. The next tricky part was how to glue the two pieces of acrylic which make the side and lid as I didn't want to also have screws in the end panel. So I had to chance screwing down the lid with pcb in and adhering the usb piece of acrylic in place hoping not to adhere something else, notably the wood, in the process. It worked out fine and a very neat finish.

This the Cut2d shaded preview of the USB end of the platform. The pcb was made to the same shape as the large internal cutout but less 0.5mm in size so that it was a tight fit.

These two pieces were routed from 3mm black acrylic and adhered on their joining edge.

Florian Vox - Speech Synthesizer 

Florian Vox - View from the front

I got interested in voice synthesis one day partly due to being in the Kraftwerk cover band, Uber Ding, where I had given myself the task of creating some synthesized voices for some of the tracks. Hence the name Florian Vox being a reference to Florian Schneider, founding member of Kraftwerk.

I came across the Emic 2 Speech Synth module which was an easy to use and somewhat more advanced sounding than other voice synthesis. One nice thing about this module is it will allow singing at specified notes which I thought could be fun to play with.

So the project was to be a standalone unit which accepted MIDI as a controlling device. The idea being that I could create programs on the unit which were controlled via midi notes or controllers. Allowing the press of a key to say a word, phrase or even sing something at a given pitch. The unit would also need a few other items like an audio output as well as some simple buttons for various operations.

The unit is powered via the USB which is also the programming port of the Arduino Nano. This is the first project that I have done where I have used the standard hardware serial which is normally used for programing the Nano. I've placed a toggle switch on these ports because the MIDI interface which is connected to them during a run interferes with the USB interface and hence causes issues while programming the Arduino.

The Emic module has a speaker output with a small audio amplifier. I made the mistake of connecting the audio output to this connection. There is a 3.5mm jack on the Emic module but for some reason I thought this was also a speaker connection. It is actually a line level output. I modified my board to accommodate this error.

Florian Vox - View inside the case - the Emic2 module on the left hand side - one of my standard MIDI interface boards on the right.

The hardware side of things was quite straight forward apart from a couple of small errors. The other small error I made was regarding the toggle switch. I designed and made the printed circuit board before I had the pcb mounted switch in my possession. Unfortunately I had placed the pin holes in the wrong place and the outcome was the switch would not be mounted on the board but to the case. The angled toggle switch that I purchased at great cost was not used in this project.

I had some fun with the case. I took a vector graphic of Kraftwerk in fan recognised standing pose and then routed and paint filled it on the top panel. The case is one of my standard and now familiar cases. This is also the first case where I have replace the standard philips head screws with hexagon bolts as I think they have more of an industrial feel that I like.

The bad news though is that it can't really be used as a real-time instrument. The Emic module operates by receiving serial codes. There is a quite a substantial delay from sending this code to getting a response from the synthesizer. Simple problem really. So alas I use the unit to make the sounds and then sample these to be used in the band. Of course that doesn't mean the unit couldn’t be used in a less structured music type of way but I've left the unit programmed to simply receive serial via the Arduino IDE. Something to ponder for future development.

Florian Vox - Rear view showing the MIDI in and Out alongside the USB power and programming port