OscPocketO – Compacte Arduino Synthesizer & Drum Machine
Onderdelen en benodigdheden
| Onderdeel | Aantal |
|---|---|
| Arduino UNO | 1 |
| Audio jack (female, 3.5 mm) | 1 |
| Female/Female jumper draden | 2 |
| Male/Male jumper draden | 2 |
Benodigde tools en machines
- Soldeerbout (standaard)
Over dit project
Download de nieuwste code en bouwinstructies: oscillator.se/arduino
Geïnspireerd door andere draagbare muziekapparaten, duik ik in de uitstekende Mozzi bibliotheek. Zou het niet handig zijn om meerdere synthesizers en drum machines te maken en ze in tempo te synchroniseren? Zo is de OscPocketO ontstaan – een draagbare musicastudio die alleen een Arduino en een LCD-keypad gebruikt!
Bediening
De OscPocketO wordt bediend door modi te schakelen met de SELECT-knop. Gebruik UP om een waarde te verhogen, DOWN om te verlagen, en LEFT/RIGHT om de cursor te verplaatsen.
- De ingebouwde LED van de Arduino knippert elke keer dat een noot wordt gespeeld.
- Let op: directe aansluiting op een huisstere kan overbelasting veroorzaken. Gebruik koptelefoon of een mixer.
- Als het LCD-display fouten vertoont, druk herhaaldelijk op SELECT tot je het Tools-menu passeert – het LCD wordt dan gereset.
OscPocketO Synthesizer
Modi:
- START – Start/stop de sequencer.
- SYNC – Stel synchronisatiemodus in: NONE (geen sync), INT (interne klok, stuurt sync-signalen uit – Dirigent-modus), EXT (externe klk, ontvangt sync maar stuurt ook door – Speler-modus).
- PATTERN – Selecteer het actieve patroon.
- EDIT – Bewerk het huidige patroon. Noten worden opgeslagen als MIDI-waarden in 1 maat (16 x 1/16 noot).
- STATE – Bewerk noot-status: X = aan, O = uit.
- TEMPO – Stel sequencer-tempo in.
- GATE – Stel gate-lengte in als percentage van 1/16 noot.
- SHIFT – Transponeer (UP/DOWN) en verschuif de sequentie (LEFT/RIGHT).
- WAVEFORM – Kies golfvorm van oscillator 1: SIN, TRI, SAW, SQUARE.
- ATTACK – Stel aanvaltijd in (ms).
- RELEASE – Stel vervaltijd in (ms).
- FILTERMODE – Laagdoorlaatfilter met cutoff-modulatie:
- FIXED – Geen modulatie, vaste cutoff en resonantie.
- RANDOM – Willekeurige modulatie van 0 tot cutoff-waarde.
- SLOW – Modulatie over ~4 maten van 0 naar 255.
- FAST – Modulatie over ~1 maat van 0 naar 255.
- CUTOFF – Filter cutoff frequentie (0–255).
- RESONANCE – Filter resonantie (0–255).
- WAVEFORM2 – Activeer en stel golfvorm van oscillator 2 in: NONE, SIN, TRI, SAW, SQUARE.
- DETUNE2 – Detune oscillator 2 ten opzichte van oscillator 1 (in Hz).
- PLAY – Toetsenbordmodus. Sequencer stopt; de eerste 4 noten van het patroon worden gemapt op LEFT, UP, DOWN, RIGHT.
- TOOLS – Hulpprogramma's (activeren met UP):
- S – Bewaar synth-instellingen en patronen in EEPROM.
- L – Laad instellingen en patronen uit EEPROM.
- R – Genereer willekeurig patroon.
- B – Maak een baslijnpatroon gebaseerd op de huidige noot.
- C – Kopieer huidig patroon naar volgende patroonpositie.
OscPocketO Drums
De drummodule speelt 5 gelijktijdige geluiden, allemaal virtueel-analoog via de Mozzi-bibliotheek: Kick, Snare, Hihat, Clap en Crash.
Modi:
- START, SYNC, PATTERN – Zie synthesizer (identiek).
- EDIT – Bewerk patroon. Nootwaarden worden opgebouwd door waarden op te tellen:
- Kick = 1
- Snare = 2
- Hihat = 4
- Clap = 8
- Crash = 16
- Tom = 32
Voorbeeld: waarde 17 = Kick (1) + Crash (16).
- TEMPO, GATE – Zie synthesizer.
- EDITKICK – Kick-frequentie, releasetijd, slope (sneller dalen = hogere waarde).
- EDITSNARE – Snare-frequentie, releasetijd, slope.
- EDITHIHAT – Hihat-frequentie (getrapte waarden) en releasetijd.
- EDITCLAP – Clap releasetijd.
- EDITCRASH – Crash releasetijd.
- EDITTOM – Tom-frequentie, releasetijd, slope.
- PLAY – Solo-modus: LEFT=Kick, UP=Snare, DOWN=Tom, RIGHT=Crash.
- TOOLS – S (bewaar), L (laad), R (random), B (herhalend patroon), C (kopieer).
Meerdere OscPocketO's synchroniseren
Eén apparaat fungeert als Dirigent (stuurt sync-data uit), de anderen als Spelers (ontvangen sync).
1. Opzet
- Verbinden GND van alle apparaten (zie bouwinstructie voor kabel).
- Dirigent: Start: Stop. Sync: Internal.
- Speler(s): Start: Stop. Sync: External. Start: Play. (Volgorde is belangrijk.)
- SYNC OUT van Dirigent → SYNC IN van eerste Speler.
- Bij meerdere spelers: SYNC OUT van Speler 1 → SYNC IN van Speler 2, etc.
2. Spelen
- Dirigent: Start: Play.
- Je kunt klanken en patronen op alle OPO's aanpassen. Tempo wijzig je alleen op de Dirigent.
Hardware bouwen
1. LCD Keypad Shield
Voordat je de shield monteert, moet pin D10 (normaal backlight-pwm) vrijgemaakt worden voor audio. Buig de pin op de shield die in D10 gaat 90 graden op. Monteer daarna de shield.
Aansluitingen:
- LCD: D4, D5, D6, D7, D8, D9
- Knoppen: A1
De RST-knop herstart de Arduino en wordt niet door de software gebruikt.
2. Audio jack
De audio jack wordt aangesloten op D10 (signaal) en GND. De Mozzi-bibliotheek gebruikt standaard D9, maar die is bezet door de LCD-shield. We wijzigen daarom de Mozzi-configuratie (zie software-stap).
- Soldeer een kleurige draad op de tip (signaal) van de jack.
- Soldeer een zwarte draad op de sleeve (GND).
- Kleurige draad → D10 soldeerpunt op de achterkant van de Arduino (na shield-montage).
- Zwarte draad → GND op de shield.
3. Sync in en uit
Snij female-female patchkabels door en soldeer: één deel op D11 (SYNC IN), één op D12 (SYNC OUT), één op GND.
4. In een behuizing
Voor duurzaamheid: plaats de OscPocketO in een doos en bevestig kabels en audio jack.
5. Synchronisatie-kabel (ground)
Neem een lange male-male patchkabel, haal isolatie af in het midden, soldeer een afgeknipt male-kabeltje eraan. Nu verbinden alle drie (of meer) eindpennen.
Software installeren
Mozzi-bibliotheek installeren en configureren
- Download en installeer Mozzi via de officiële site.
- Standaard geeft Mozzi audio uit op D9. Wijzig dit naar D10:
- Open in de Mozzi-map het bestand
AudioConfigStandardPlus.hin een teksteditor. - Wijzig de volgende vier regels (ruil A en B om):
// Used internally. If there was a channel2, it would be OCR1B.
#define AUDIO_CHANNEL_1_OUTPUT_REGISTER OCR1B
#define AUDIO_CHANNEL_2_OUTPUT_REGISTER OCR1A
(...)
#define AUDIO_CHANNEL_1_PIN TIMER1_B_PIN //defined in TimerOne/config/known_16bit_timers.h
#define AUDIO_CHANNEL_2_PIN TIMER1_A_PIN
OscPocketO sketch uploaden
Kies Synth of Drums. Open code_synth/code_synth.ino of code_drums/code_drums.ino in de Arduino IDE en upload naar je Arduino.
Code
Code voor Synth en Drum machine (download only).
Schema's

Productieproces
- Expertgids voor boor- en tappenmachines: Aanpassing & veelzijdigheid
- Bandzaagmachines: Revolutie in industriële metalsnijden
- Metaal & Hout Zagen Verbeteren met Hoogpresterende Bandsagemachine
- Geavanceerde 5-As Bewerking & Multi-Tasking: Precisie & Efficiëntie
- Freesmachines begrijpen: typen, functies en toepassingen
- Geavanceerde draaicentra & CNC-machinetechnologie
- Begrip van boor- en freesmachines: werking en toepassingen
- CNC Draai- en Freesmachines Begrijpen: Functies, Voordelen en Toepassingen
- Draaibanken: typen, classificaties en praktische toepassingen
- Krachtvoeding vs. Handvoeding Boormachines: Een Uitgebreide Gids
- Schaafmachine vs. Plandermachine: Belangrijkste Verschillen Uitgelegd