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.