CICCS is Custom Interface for Computer Controlled Serge.
It is a project started in 2013 for Timm Mason (Mood Organ) in Seattle, WA.



CICCS utilizes an ATmega328 microcontroller to produce a number of computational possibilities for composing music on a Serge modular.   It is a hybrid box for analog-digital communication, and especially made with the Serge design in mind.   Depending on the programs written for it, CICCS can perform a vast amount of functions based around CV generation and real-time manipulation.

Banana jacks are coded the same as a Serge modular: Blue is DC coupled, Red is trigger I/O, and the top red/black jacks are for +5V and GND.


I was initially interested to take on this project without much prior introduction to Arduino or C/C++.  It was desirable to explore what can be performed through digital paths but made for analog synthesis- including custom tunings and timings.  Further tempted by the idea of creating an interface that re-contextualizes the Serge synthesizer to particularized  musical ideas, I began a conversation with Timm and we started designing.  Timm was instrumental in the design decisions for CICCS– we discussed basic Arduino sketches to make basic modules (S & H, clock generation, boolean logic) which quickly led to examples of more elaborate and internally patched systems that talk with each other.  There were only a small handful of other interfaces that functioned like this.   The CICCS box houses analog boards and MIDI and hardware connections which all passed to perform several proofs of concept.  I hope that some of Timm’s future musicking will dwell and evolve from its conceptual ideas to the CICCS, and to the musical ears.

CICCS can easily be modified to use with an Arduino Uno with the same pinouts.  Although for this version, we made the most functionality out of a rather basic Arduino board.  In the end it turned out to be quite a beast of its own.


 This video demonstrates the “Ring buffer”- create a sequence of any size by manually storing voltages, then scroll forward or back through the sequence. Here Timm assigned the switches to Record, Previous, Next, and Reset Buffer. Step through the new sequence by patching “Next” Input to the clock.

CICCS features and pin configuration are:

6 ANALOG INPUTS (A0, A1, A2, A3, A4, A5) 

0V-5V offset (left knob) feeds a constant voltage when there is nothing in the jack Input

-5 to +5 Inverter/Attenuator will invert or attenuate your CV Input

Input voltage is clamped to GND and +5V.

Say you feed it +4V, offset is at 0V, and Inverter/Attenuator is at 0V, Arduino will receive +4V. If you feed it +4V, your offset is at +2.5V (halfway up), and Inverter/Attenuator is at 0V, Arduino pin will read +5.  If you feed it +4V, offset is at 0V and Inverter/Attenuator is at +1V, Arduino will receive +5V. If you feed it +4V, offset is at 0V and Inverter/Attenuator is at -4V, Arduino will receive 0V.

6 DIGITAL I/O    (D2, D4, D7, D8, D12, D13)

Operates at 0 or +5V. Can provide or receive a trigger with maximum of 40mA


Utilizes RX and TX serial data and an opto-isolator.


The switches are a three way configuration with a spring on one side, so it functions ON (hold), OFF, and ON (momentary).

The manually gated +5V is routed to the red switch output jacks, which then can be routed externally or Digital I/O.

This particular placement is traced from Timm’s hand.

ANALOG OUTPUTS (D3, D5, D6, D9, D10, D11)

These are filtered, steady outputs from the 8-bit PWM pins. Rather than using up all of the digital pins and a DAC to create two outputs, there is a third order low pass filter to take out the noisy artifacts and smooth out the CV.  It was an exercise to prove how much of a useable CV one can produce once it goes beyond a simple RC filter.

Outputs 1, 4, 5, and 6 (D3, D9, D10, D11) have a slightly more recognizable step between values, but has faster settling time. The steps can also be smoothed out with an external slew generator.

Outputs 2 and 3 (D5 and D6) are fed through a filter with an even lower cutoff frequency.  You can hear the steps less through this output, but it has a higher settling time when jumping from one value to the next.

All outputs hold a steady value.


LED readout field for visual monitoring

CICCS runs on 12V power with a 1A rating. I wouldn’t recommend any less than that, especially when running all of the I/O.  There is an onboard 5V regulator that powers the Arduino without Micro USB.  Recessed RESET button also on the rear panel.

More documentation to come.

(early drafts)