OscPocketO Arduino synths

OscPocketO - build your own Arduino Pocket Synth and Drum machine!


The OscPocketO is a family of portable sound generators running open source software that you can build from Arduino UNOs and LCD Keypads.

All software is running on the Arduino microcontroller including sound generation thanks to the awesome Mozzi library!

OscPocketO is currently two different machines, OscPocketO Synth and OscPocketO Drums, that can be synchronized and play in tempo. Make one, two or three and let them help you create music together!

Both machines feature a sequencer, multiple patterns, adjustable tempo and gate length, saving and loading of patterns as well as functions to create patterns and a solo mode!

The Synth has four selectable waveforms, settings for attack and decay, a low pass filter with modulation and cutoff and resonance settings and an optional second detunable oscillator!

The Drums features virtual analog generated sounds (Kick, Snare, Hihat, Clap, Crash, Tom) and many settings for tweaking the drum sounds!

OscPocketO - download manual and source code


OscDigiSeq setup with 5 synthesizers.

The OscDigiSeq is a 4+1 channel analog CV/Gate sequencer based on an Arduino Uno R3.

It has 4 CV/Gate channels that operate from 0 to +5V to drive 4 analog synthesizers. It also has a gate (clock) channel for synchronizing with an analog drum machine.

Every channel (voice) has 2 patterns each consisting of 16 notes ranging from 0-60 (5 octaves).

The software operates using a simple GUI with a 16x2 LCD display and 6 buttons that allows you to:

  • select pattern or turn channel (voice) off
  • edit the notes (or clock on/off for the clock channel)

There is also a utility menu that allows you to:

  • start and stop the sequencer
  • set the tempo (from 0 to 999)
  • edit the gate length (from 0-99%) for each channel
  • transform a pattern (shift it left/right and transpose it)
  • save the pattern as Arduino code [s] or to and from the Arduino EEPROM
  • copy the current pattern to the next
  • tune all connected devices
  • drone all connected devices
  • chain patterns and play the chain (song)

OscDigiSeq - demo

OscDigiSeq - code and instructions


Demo image of the OscCVGateMod.

The OscCVGateMod is a 3+3 channel digital/analog CV/Gate modulator based on an Arduino.

An experimental platform for manipulation of CV/Gate synthesizers.

It has 3 independent CV channels that operate from 0 to +5V to drive up to 3 analog synthesizers. It also has 3 independent gate (clock) channels outputting 0 or +5V. It can be thought of as a kind of programmable LFO.

The signals are controlled by software, using algorithms contained in different classes. These classes can easily be expanded and changed, adding additional capabilities.

The algorithms can also be controlled using one or more of 3 potentiometers and an analog input.

The analog input is by default used as a clock input, making it possible to synchronize the algorithms to external devices.

The lack of display and editing capabilities means that major changes and configuration has to be done in the Arduino IDE. To use the OscCVGateMod you have to have some knowledge in programming the Arduino.

OscCVGateMod - demo

OscCVGateMod - code and instruction


OscMidiCVCtrl demo

How to use a USB MIDI device to control +5V CV synths and other full DIN MIDI devices.

OscMidiCVCtrl - code and instructions

MAMA (Machine for Ambient Music with Arduino)

MAMA built into a box

MAMA connections

This was my first real Arduino-project, created in the summer of 2014. The goal was to try some simple algorithmic composing, where the environment would have an impact on the composition. To create a box that creates ambient music that you just plug in and leave there, letting it create music that always changes depending on the time of day, whether someone is in the room etc. Although the composition algorithm is pretty simple, it can function as a framework for further experiments. One of the main accomplishments was the creation of a sequencer function in Arduino, where I handle and sync 6 different voices.


  • Arduino Uno
  • Sparkfun Musical Instrument Shield (MIS)
  • A real time clock (RTC) connected using the I2C protocol and the Wire library
  • A PIR (infrared) motion sensor


Until I make some graphics, this is how you connect the stuff to the Arduino:

  • MIS: D3 and D4 connects to D3 and D4 on the Arduino. +5V and GND.
  • RTC: SDA to A4, and SCL to A5. VCC to +5V, GND to GND.
  • PIR: - Middle pin to D2. +5V and GND.


Arduino code for the MAMA

Robot with no name


This was my first robot made with Arduino summer 2014. Watch it in action on YouTube.

Together with Martin Blom this was made into a 7 week school project at the Bild & form school in Gothenburg. You can download a Swedish manual of the project.


  • simple robot kit from ebay (chassis, two wheels with motors, battery holder for 4xAA)
  • Arduino Uno
  • H-bridge: L293D        
  • 9V battery snap for Arduino
  • ultrasound distance sensor SR03
  • (micro) servo motor
  • 100µF (electrolytic) capacitor
  • breadboard
  • wires
  • glue, tape, etc


This is how you control the motor with the H-bridge:

H-bridge motor control

The SR03 has four lines:

  • VCC -> Arduino +5V
  • Trig -> D19 (Analog A5)
  • Echo -> D18 (Analog A4)
  • GND -> Arduino GND

The servo has one control line:

  • Red -> Arduino +5V
  • White (control) -> D10
  • Black -> Arduino GND

Place the capacitor across the +5V and GND of the servo to smooth out the voltage.


Arduino code for the robot

Adding Bluetooth control

Here is a simple document explaining how to add Bluetooth control to the robot. Complete code with Bluetooth support.