OscPocketO – Un Sintetizador y Caja de Ritmos Compacta con Arduino
Componentes y suministros
| Arduino UNO | 1 |
| Conector de audio hembra (3.5 mm) | 1 |
| Cables jumper hembra-hembra | 2 |
| Cables jumper macho-macho | 2 |
Herramientas necesarias
- Soldador (genérico)
Acerca del proyecto
Descarga el código más reciente e instrucciones de montaje: https://oscillator.se/arduino/
Inspirado en otras máquinas portátiles de creación musical, investigué la excelente librería Mozzi. ¿No sería útil poder crear varios sintetizadores y cajas de ritmos y sincronizarlos en tempo? Así nació OscPocketO: un estudio musical portátil que utiliza solo Arduino y un shield LCD con teclado.
El OscPocketO se controla cambiando de modo con el botón SELECT. Usa UP para aumentar un valor, DOWN para disminuir, y LEFT/RIGHT para mover el cursor.
- El LED integrado de Arduino parpadea cada vez que OscPocketO reproduce una nota.
- Advertencia: Conectar OscPocketO directamente a tu equipo de sonido doméstico podría sobrecargarlo. Usa auriculares o una mesa de mezclas.
- Si la pantalla LCD se comporta de forma extraña, pulsa repetidamente hasta pasar por el menú Tools; la LCD se reiniciará.
OscPocketO Synth
Modos:
- START: Inicia y detiene el secuenciador.
- SYNC: Configura el modo de sincronización. NONE = sin señales de sincronización. INT = interno, usa el reloj interno y envía señales (modo Director). EXT = externo, el secuenciador se controla por señal externa pero envía sincronización (modo Reproductor).
- PATTERN: Selecciona el patrón actual.
- EDIT: Edita el patrón actual. Las notas se almacenan como valores MIDI en 1 compás (16 x corcheas).
- STATE: Edita el estado de las notas: X = encendido, O = apagado.
- TEMPO: Ajusta el tempo del secuenciador.
- GATE: Define la duración de la nota (gate) como porcentaje de una corchea.
- SHIFT: Transpone (UP/DOWN) y desplaza la secuencia (LEFT/RIGHT).
- WAVEFORM: Selecciona la forma de onda del primer oscilador: SIN (seno), TRI (triángulo), SAW (sierra), SQUARE (cuadrada).
- ATTACK: Tiempo de ataque en ms.
- RELEASE: Tiempo de release en ms.
- FILTERMODE: Filtro paso bajo con modulación de cutoff:
- FIXED: Sin modulación, usa valores de Cutoff y Resonancia.
- RANDOM: Modulación aleatoria de 0 al valor de Cutoff.
- SLOW: Modulación aprox. 4 compases de 0 a 255.
- FAST: Modulación aprox. 1 compás de 0 a 255.
- CUTOFF: Frecuencia de corte del filtro (0-255).
- RESONANCE: Resonancia del filtro (0-255).
- WAVEFORM2: Activa y selecciona forma de onda del segundo oscilador: NONE (apagado), SIN, TRI, SAW, SQUARE.
- DETUNE2: Desafina el segundo oscilador respecto al primero (Hz).
- PLAY: Modo teclado. El secuenciador se detiene y las 4 primeras notas del patrón actual se mapean a LEFT, UP, DOWN, RIGHT.
- TOOLS: Utilidades (activar con UP):
- S: Guarda configuración y patrones en EEPROM.
- L: Carga configuración y patrones desde EEPROM.
- R: Crea patrón aleatorio.
- B: Crea patrón de bajo basado en la nota actual.
- C: Copia patrón actual a la siguiente posición.
OscPocketO Drums
Los OscPocketO Drums reproducen 5 sonidos simultáneos, todos generados por síntesis analógica virtual gracias a la librería Mozzi: Kick, Snare, Hihat, Clap y Crash.
Modos:
- START, SYNC, PATTERN, TEMPO, GATE: Igual que en la versión Synth.
- EDIT: Edita el patrón. Los valores de nota se construyen sumando valores que corresponden a cada sonido:
- Kick = 1
- Snare = 2
- Hihat = 4
- Clap = 8
- Crash = 16
- Tom = 32
- EDITKICK, EDITSNARE, EDITHIHAT, EDITCLAP, EDITCRAH, EDITTOM: Ajustan parámetros de cada sonido (frecuencia, release, slope).
- PLAY: Modo solo. LEFT = Kick, UP = Snare, DOWN = Tom, RIGHT = Crash.
- TOOLS: Utilidades (activar con UP): Guardar/Cargar patrones en EEPROM, patrón aleatorio, patrón repetitivo, copiar patrón.
Sincronización de varios OscPocketO
1. Configuración
- Conecta GND de todos los OscPocketO.
- Director: Start: Stop. Sync: Internal.
- Reproductor(es): Start: Stop. Sync: External. Start: Play. (El orden es importante).
- Conecta SYNC OUT del Director a SYNC IN del primer Reproductor.
- Si hay varios Reproductores, encadena SYNC OUT de uno a SYNC IN del siguiente.
2. Reproducción
- Director: Start: Play.
- Puedes ajustar sonidos y cambiar patrones en todos los OPOs. El tempo solo se cambia en el Director.
Construcción del hardware
1. Shield LCD Keypad
Antes de colocar el shield, asegúrate de que no está conectado al pin 10 (D10) del Arduino. D10 se usa normalmente para el brillo de la LCD, pero lo necesitaremos para audio. Dobla el pin del shield que va a D10 90 grados. Luego coloca el shield.
Conexiones del shield:
- LCD: D4, D5, D6, D7, D8, D9
- Botones: A1
El botón RST reinicia el Arduino y no lo usa el software.
2. Conector de audio
Conecta el jack de audio a D10 y GND. La librería Mozzi usa por defecto D9, pero como D9 está ocupado por el shield, debemos modificar la librería para usar D10 (ver sección Software).
- Solda un cable de color al "tip" del jack (señal) y un cable negro al sleeve (GND).
- Conecta el cable de color al D10 (usando el punto de soldadura en la parte trasera del Arduino). Conecta el cable negro a GND del shield.
3. Entrada y salida de sincronización
Corta los cables hembra-hembra a la mitad suelda una parte a D11 (SYNC IN), otra a D12 (SYNC OUT) y otra a GND.
4. Montaje en caja
Para mayor durabilidad, mete el OscPocketO en una caja y fija los cables y el jack de audio.
5. Cable para sincronización y tierra
Toma un cable macho-macho largo, quita aislamiento en el medio y suelda un cable macho cortado. Así los tres (o más) pines finales quedan conectados.
Instalación del software
Instalar y configurar la librería Mozzi
- Descarga e instala Mozzi desde sensorium.github.io/Mozzi/download/.
- Por defecto Mozzi saca audio por D9. Cambia a D10 editando
AudioConfigStandardPlus.hen la carpeta de librerías Mozzi:// 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 #define AUDIO_CHANNEL_2_PIN TIMER1_A_PIN
Instalar el sketch OscPocketO
Elige Synth o Drums. Abre code_synth/code_synth.ino o code_drums/code_drums.ino en el IDE de Arduino y súbelo a tu placa.
Código
Código para Synth y Drum machine (descarga únicamente).
Esquemáticos

Proceso de manufactura
- Guía Experta de Máquinas de Taladrado y Roscado: Personalización y Versatilidad
- Máquinas de Sierra de Cinta: Revolucionando el Corte Industrial de Metales
- Mejore el Corte de Metal y Madera con una Sierra de Cinta de Alto Rendimiento
- Entendiendo las Máquinas Fresadoras: Tipos, Funciones y Aplicaciones
- Centros de Torneado Avanzados y Tecnología CNC de Máquinas
- Comprender las Máquinas de Mandrinado y Fresado: Funcionamiento y Aplicaciones
- Entendiendo los Tornos y Fresadoras CNC: Funciones, Beneficios y Aplicaciones
- Tipos y Clasificación de Tornos: De Banco a CNC, Guía Completa
- Taladradoras de Avance Manual vs. Avance Automático: Guía Completa
- Cepilladora vs. Plaina: Diferencias Clave Explicadas
- Tipos de Máquinas Plainas y Especificaciones para un Rendimiento Óptimo