OscPocketO - Pocket Synth and Drum Machine

Create your own music with OscPocketO, a synth and a drum machine, that can be synchronized!

Aug 25, 2020

21080 views

16 respects

Components and supplies

1

Arduino UNO

2

Male/Male Jumper Wires

2

Female/Female Jumper Wires

1

Audio jack (female, 3.5mm)

Tools and machines

1

Soldering iron (generic)

Project description

Code

Code for Synth and Drum machine.

arduino

Code for Synth and Drum machine.

arduino

Downloadable files

Connections

Connections

Comments

Only logged in users can leave comments

StaffanMelin

2 months ago

This guide is for Mozzi Library < 2.0, so head over to https://oscillator.se/arduino to find a version that is working for Mozzi 2.x. :) The build is exactly the same, it is just the software/firmware that has changed.

Anonymous user

2 years ago

Great project, thank you very much – works like a charm right out of the box. I use a separate 16x2 LCD-Display and 6 buttons and wire them the almost same way as the LCD Button Shield guys. I recommend the project very much for all LOFI sequencer/synthesizer lovers!

Anonymous user

2 years ago

I wonder – if you use more than one Arduino – do you connect a speaker to every Arduino or do you connect all the Audio-Outputs to one single speaker? Thank you very much, Dani

StaffanMelin

2 years ago

@local_dani_21: Sorry for the late answer, and thank you for the kind comments! Latest version of the OscPocketO with the test code can be found at: https://oscillator.se/arduino. I recommend building a simple passive mixer, like this one: https://www.instructables.com/Making-an-Audio-Mixer/

Anonymous user

2 years ago

please tell me how to add a separate play / stop button in the code, and I can't get the rotary encoder to work

StaffanMelin

2 years ago

@dfyzicka: Sorry for the late reply! What do you mean by rotary encoder, do you mean the optional pot for controlling the filter? I don't have the time to modify the code for a physcial start stop button, but you have to add a button, find a pin to attach it to, set it to input and read the value from it. Read the state of the button in updateControl(). Make it affect the gSeqPlay boolean variable.

local_dani_21

3 years ago

I wonder – if you use more than one Arduino – do you connect a speaker to every Arduino or do you connect all the Audio-Outputs to one single speaker? Thank you very much, Dani

StaffanMelin

2 years ago

@local_dani_21: Sorry for the late answer, and thank you for the kind comments! Latest version of the OscPocketO with the test code can be found at: https://oscillator.se/arduino. I recommend building a simple passive mixer, like this one: https://www.instructables.com/Making-an-Audio-Mixer/

local_dani_21

3 years ago

Great project, thank you very much – works like a charm right out of the box. I use a separate 16x2 LCD-Display and 6 buttons and wire them the almost same way as the LCD Button Shield guys. I recommend the project very much for all LOFI sequencer/synthesizer lovers!

dfyzicka

4 years ago

please tell me how to add a separate play / stop button in the code, and I can't get the rotary encoder to work

StaffanMelin

2 years ago

@dfyzicka: Sorry for the late reply! What do you mean by rotary encoder, do you mean the optional pot for controlling the filter? I don't have the time to modify the code for a physcial start stop button, but you have to add a button, find a pin to attach it to, set it to input and read the value from it. Read the state of the button in updateControl(). Make it affect the gSeqPlay boolean variable.

Anonymous user

4 years ago

Hy guy. I'm tryng to do your project using a D1 Robot keypad shield but it does'nt work. I think is a mater on lybraries but can't find a way. could you help me? both the sketch works because if I press the up button a demo pattern plays from the jack out but the screen is blank. many thanks

harmlammers

2 years ago

Hi Staffan, thanks for sharing this! I have the same problem with a D1 Robot keypad. In your documentation (oscpocketo.pdf) you refer to a code_test folder, but that folder is not included in the zip file. Where can I find it? Harm

harmlammers

2 years ago

I found the solution on the DFRobot wiki: https://wiki.dfrobot.com/Arduino_LCD_KeyPad_Shield__SKU__DFR0009_ For newer versions of the keypad this part of the code: // is any button pressed? if (aUIButtonValue < 900) { // check which one if (aUIButtonValue < 50) { aUIButton = UI_BUTTON_RIGHT; } else if (aUIButtonValue < 150) { aUIButton = UI_BUTTON_UP; } else if (aUIButtonValue < 300) { aUIButton = UI_BUTTON_DOWN; } else if (aUIButtonValue < 500) { aUIButton = UI_BUTTON_LEFT; } else if (aUIButtonValue < 700) { aUIButton = UI_BUTTON_SELECT; } else { aUIButton = UI_BUTTON_NONE; } has to be changed into: // is any button pressed? if (aUIButtonValue < 1000) { // check which one if (aUIButtonValue < 50) { aUIButton = UI_BUTTON_RIGHT; } else if (aUIButtonValue < 250) { aUIButton = UI_BUTTON_UP; } else if (aUIButtonValue < 450) { aUIButton = UI_BUTTON_DOWN; } else if (aUIButtonValue < 650) { aUIButton = UI_BUTTON_LEFT; } else if (aUIButtonValue < 850) { aUIButton = UI_BUTTON_SELECT; } else { aUIButton = UI_BUTTON_NONE; }

StaffanMelin

2 years ago

@harmlammers: Sorry for the late answer, glad you worked it out! Latest version of the OscPocketO with the test code can be found at: https://oscillator.se/arduino

StaffanMelin

2 years ago

Hi! In the updated documentation (https://oscillator.se/arduino#oscpocketo) you can find 2 pages on Problem solving. I hope it helps! I have also added an optional expansion where you can control the filter using 2 potentiometers.