Components and supplies
Arduino UNO
Male/Male Jumper Wires
Female/Female Jumper Wires
Audio jack (female, 3.5mm)
Tools and machines
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
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.
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.