Tabla de contenido:

Secuenciador de sección de ritmo MIDI Arduino: 8 pasos (con imágenes)
Secuenciador de sección de ritmo MIDI Arduino: 8 pasos (con imágenes)

Video: Secuenciador de sección de ritmo MIDI Arduino: 8 pasos (con imágenes)

Video: Secuenciador de sección de ritmo MIDI Arduino: 8 pasos (con imágenes)
Video: ARDUINO CONTROLADOR MIDI USB para EFECTOS | PLUG & PLAY Sin interfaces ni programas extra | TUTORIAL 2024, Noviembre
Anonim
Secuenciador de sección de ritmo MIDI Arduino
Secuenciador de sección de ritmo MIDI Arduino
Secuenciador de sección de ritmo MIDI Arduino
Secuenciador de sección de ritmo MIDI Arduino
Secuenciador de sección de ritmo MIDI Arduino
Secuenciador de sección de ritmo MIDI Arduino

Tener una buena caja de ritmos de software es fácil y barato hoy en día, pero usar un mouse mata la diversión para mí. Es por eso que me di cuenta de lo que inicialmente estaba pensado como un secuenciador de batería MIDI de hardware puro de 64 pasos capaz de disparar hasta 12 elementos de batería diferentes (partes), pero luego evolucioné en un secuenciador de sección de ritmo …

… ¡aquí vamos!

Paso 1: cómo funciona

Este hardware no puede generar sonidos por sí solo, solo secuencia el hardware externo a través de MIDI. Esto significa que necesitará un generador de sonido de sus sonidos de batería (un muestreador o un sintetizador de batería o una PC con su software de batería favorito o lo que prefiera) capaz de activarse mediante mensajes MIDI de activación de notas.

Se compone principalmente de una matriz de 4 x 4 botones (con LED), uno para cada paso de una barra. La secuencia completa de 64 pasos se compone de 16 pasos multiplicados por 4 compases. Cada paso es 1/16 de una nota.

Hay dos modos de funcionamiento: modo en vivo y modo de edición.

En el modo de edición, puede editar paso a paso su secuencia definiendo qué tambor se reproducirá en cada paso.

Su instrumento de hardware externo ("batería") se activa enviando un mensaje MIDI de "nota activada" para diferentes "números de nota MIDI" en el canal número "10". Por defecto, estos números de nota son

drum # 1 (es decir, bombo) -> número de nota MIDI "60"

tambor n. ° 2 (es decir, caja) -> número de nota MIDI "62"

tambor n. ° 3 (es decir, aplauso) -> número de nota MIDI "64"

tambor n. ° 4 (es decir, Hihat) -> número de nota MIDI "65"

tambor n. ° 5 -> número de nota MIDI "67"

tambor n. ° 6 -> número de nota MIDI "69"

tambor n. ° 7 -> número de nota MIDI "71"

tambor n. ° 8 -> número de nota MIDI "72"

tambor n. ° 9 -> número de nota MIDI "74"

drum # 10 -> número de nota MIDI "76"

tambor n. ° 11 -> número de nota MIDI "77"

drum # 12 -> número de nota MIDI "79"

Puede cambiar estos valores (y el canal MIDI) en el boceto si lo prefiere.

En el modo en vivo, al presionar los botones de paso, puede tocar en vivo la batería asociada a cada paso enviando mensajes MIDI a través de serie. Puede grabar en vivo las pulsaciones de sus botones y / o los mensajes MIDI entrantes.

Tanto en el modo en vivo como en el modo de edición, puede silenciar (o reactivar) un tambor, "redoblar, reproducir" el tambor actualmente activo y "balancear" su secuencia.

¿Sección de ritmo?

La mayoría de los secuenciadores de batería son activadores de partes de batería puramente MIDI, con un número de nota MIDI fijo para cada sonido de batería. En este caso, tenemos un "secuenciador de sección rítmica" más que un "secuenciador de batería" puro porque incluso puedes secuenciar sintetizadores.

Lea la GUÍA DE INICIO RÁPIDO para obtener más detalles y una lista completa de funciones.

Paso 2: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Este proyecto se realiza en torno a una placa Arduino DUE. Traté de mantener el hardware lo más simple posible, es decir, evitando el uso de controladores LED. Es probable que Arduino DUE no sea la placa más adecuada para manejar un montón de LED sin un controlador de LED debido a sus límites de corriente de salida (de 5 mA a 15 mA, dependiendo del pin), pero es el Arduino más rápido y el tiempo lo es todo cuando se trata con secuenciadores. Por lo tanto, tenga en cuenta que ESTA configuración de hardware probablemente esté llevando su Arduino DUE a sus límites y podría dañarlo a largo plazo.

Dicho esto, el hardware es principalmente un secuenciador de 16 botones, 16 LED (uno para cada paso) con 5 botones adicionales para funciones y 3 potenciómetros. También agregué un LED rojo después de agregar una función de grabación en vivo.

Aquí está la lista de materiales:

- 1x Arduino DUE

- 16 botones pulsadores momentáneos sin enclavamiento con LED integrados (puede usar LED externos si lo prefiere, ¡pero recuerde usar LED de baja potencia!)

- 1x LED rojo (¡baja potencia!)

- 5 botones pulsadores momentáneos sin enclavamiento

- 3 potenciómetros lineales de una sola vuelta de 10K

- 3 conectores hembra mono de montaje en panel de 6,5 mm

- 1x caja de plástico (utilicé una caja de 190x140x70 mm)

- 2 conectores hembra DIN de 5 pines para montaje en panel (MIDI)

- 1x tablero perfilado de doble cara de 70x90 mm

- 2x tira de cabezal de clavija macho de una sola fila de 40 pines (2,54 mm), mejor si está chapada en oro

- 1x optoacoplador H11L1

- 1x diodo 1N4148

- 23 resistencias de 1000 ohmios

- 3 resistencias de 220 ohmios

- 2x transistores pnp BC547

… alambre de soldadura, algunos cables, estación de soldadura, una herramienta de perforación … y tiempo libre:)

Tenga en cuenta que los botones en las imágenes han sido reemplazados por otro tipo de botones pulsadores (incluso más baratos …) debido al escandaloso rebote …

Tiempo requerido para completar el proyecto: 8 - 10 horas

ADVERTENCIA: ¡SIEMPRE use gafas y guantes protectores mientras perfora! Pueden proyectarse llagas de material caliente a sus ojos o entrar en contacto con su piel y causar quemaduras o daños aún más graves a usted oa las personas que lo rodean

Paso 3: cableado

Cableado
Cableado
Cableado
Cableado
Cableado
Cableado

Los botones de paso están conectados directamente a los pines de Arduino desde 22 (paso 1) a 37 (paso 16). La tierra de los botones está encadenada y conectada a la tierra Arduino DUE. No hay necesidad de resistencias pullup o pulldown ya que las resistencias pullup integradas de Arduino están habilitadas por software (vea el boceto).

Lo mismo ocurre con los 5 botones adicionales (pines 2, 3, 4, 5 y 6 de Arduino), que se utilizan para funciones distintas de los pasos. También coloqué un conector jack hembra de 6,5 mm en paralelo con el botón de "inicio" para poder reproducir y detener mis secuencias de forma remota.

Los LED están conectados a tierra (en cadena) y pines Arduino DUE de 38 (paso # 1) a 53 (paso # 16) en serie con una resistencia de 1K ohmios cada uno para limitar el consumo de corriente y preservar el microcontrolador.

Los potenciómetros están conectados como se muestra en la imagen adjunta. Tenga en cuenta que el voltaje de referencia es de 3,3 V, no de 5 V. Las entradas utilizadas son A0, A1 y A2.

También implementé dos salidas de disparo para señales de arpegio, como las requeridas para arpegiar sintetizadores antiguos de los 80 como Korg Polysix y Roland Juno 6/60. Están conectados a los pines A3 y A4, pero puedes usar pines digitales si prefieres que sean señales digitales. En caso de que vaya a secuenciar un sintetizador compatible con señales V-Trig (disparador de voltaje), una resistencia en serie de 1k ohmios para reducir el consumo de corriente será suficiente; en el caso de un sintetizador S-Trig (interruptor de gatillo), necesitará un circuito de interruptor pnp simple (vea el esquema adjunto).

Los circuitos MIDI IN y OUT están esquematizados en las imágenes adjuntas. Tenga en cuenta que, a diferencia de la mayoría de los arduinos, Rx1 y Tx1 se utilizan por defecto en las placas DUE en lugar de Rx0 y Tx0. Esto es genial porque puede cargar su boceto sin la necesidad de desconectar Rx cada vez. Tenga en cuenta también que he usado un optoacoplador H11L1 porque no pude ejecutar como debería un 6N138 común dentro del límite de Arduino DUE 3.3V.

Paso 4: software

El boceto se ha escrito dentro del IDE de Arduino y debe cargarse en su placa Arduino DUE. No entraré en detalles sobre cómo cargar el boceto en su arduino DUE. Si esta es su primera experiencia con Arduino DUE, lea esto. Si esta es su primera experiencia con arduino IDE, lea esto también.

Puede descargar el firmware actualizado AQUÍ (enlace de github).

El boceto se basa en la excelente biblioteca MIDI FortySevenEffects. Deberá instalar la biblioteca en su arduino IDE.

Las notas de salida MIDI asignadas a cada batería se definen mediante la variable drumNote [STEPS_NUM] en el esquema. Puede cambiarlos a su antojo.

El número de canal de salida MIDI para batería se establece en "10" de forma predeterminada.

No soy un codificador en la vida real y seguro que hay mejores formas de codificar lo que necesitamos aquí. Si eres un codificador con alguna sugerencia, ¡eres bienvenido! Por favor envíeme cualquier variación que pueda aumentar la eficiencia / efectividad del código y la incluiré en el boceto principal (¡citando al Colaborador obviamente!).

Paso 5: Guía de inicio rápido

TAMBORES: SECUENCIA PASO A PASO

Tan pronto como encienda su secuenciador (o lo reinicie), se cargará una secuencia vacía. El secuenciador se inicia en el modo de edición, con el primer compás retenido / bloqueado y el primer tambor (es decir, el bombo) seleccionado. Esto significa que al presionar cualquier botón de paso, inmediatamente asignará "patada" a esos pasos. El volumen que se activará el tambor se establece mediante la posición del potenciómetro de "volumen" al asignar el tambor al paso. Al volver a presionar un botón de paso previamente asignado, anulará la asignación de la batería actual en ese paso.

Si presiona el botón "Inicio", verá sus LED de izquierda a derecha, de arriba a abajo, reproduciendo "patada" cada vez que se cruza un paso de patada.

Si mantiene presionado el botón "shift", verá el LED del primer paso en la primera fila encendido (lo que significa que se selecciona el primer tambor) y el LED del primer paso en la cuarta fila (lo que significa que está bloqueado en la primera barra). Ahora puede cambiar el tambor que desea secuenciar presionando otro botón de paso mientras mantiene presionado "shift". Después de seleccionar el nuevo tambor, suelte "shift". Todos los LED se apagarán (porque no ha asignado el nuevo tambor a ningún paso) y podrá comenzar a asignar el nuevo tambor a los pasos. Repita para todos los tambores que necesite (hasta 12).

Ahora que ha creado un patrón agradable, mantenga presionado "shift" y apague el paso resaltado en la fila inferior (debería ser el primer paso de la cuarta fila si ha adoptado el mismo diseño que usé): acaba de " desbloqueado "la secuencia que ahora se ejecutará en las 4 barras. Los LED inferiores sin procesar comenzarán a "moverse", indicando qué barra se está reproduciendo actualmente (progresión de la barra). Notarás que solo cuando en el primer compás se reproducirá una secuencia, y los otros 3 compases no generarán sonidos. Esto se debe a que ha asignado la batería solo al primer compás y los demás se han dejado en blanco. Puede llenarlos a mano (seleccione una nueva barra presionando uno de los últimos 4 botones de paso mientras mantiene presionado "shift", seleccione una de las baterías, complete los pasos, etc., etc.) o copie y pegue la secuencia de compás que creó a todas las barras ingresando al modo de edición (volver a bloquear a la primera barra) y presionando "grabar" (que ahora asume la función "pegar") mientras se mantiene presionado "shift". Más fácil de hacer que de decir.

TAMBORES: MODO DE REPRODUCCIÓN EN VIVO

Al inicio, el secuenciador está en modo de edición. Para salir del modo de edición, debe mantener presionado "shift" y presionar el botón de barra actualmente retenido / bloqueado (el botón de paso en la 4ª fila encendido). Esto apagará el LED de la barra previamente bloqueada y desbloqueará la secuencia. Ahora estás en modo de reproducción en vivo.

En el modo de reproducción en vivo, al presionar cualquier botón de paso, se activará el tambor asociado a ese botón.

Si desea grabar en vivo su secuencia, comience la secuencia presionando "reproducir", luego presione el botón "grabar" (solo en el modo de reproducción en vivo). Se encenderá un LED rojo. Se grabará su interpretación en la matriz del panel de control del secuenciador de batería o cualquier mensaje de entrada de nota MIDI entrante (es decir, desde un teclado MIDI externo).

Otras funciones

Al presionar el botón "roll", el tambor actualmente activo se reproducirá en cada paso (en un rollo). Esto funciona en los modos "paso a paso" y "reproducción en vivo".

Al presionar cualquier botón de paso mientras se mantiene presionado el botón "mute", el tambor asociado a ese paso se silenciará (o no silenciará). Esto funciona en los modos "paso a paso" y "reproducción en vivo".

Puede borrar una secuencia de batería específica presionando el botón de paso relativo mientras mantiene presionado el botón "REC".

Puede borrar toda la secuencia (reinicio suave) manteniendo presionado el botón "inicio" durante más de 3 segundos.

Puede "balancear" su secuencia girando el potenciómetro de "balanceo".

Puede deshabilitar / habilitar el eco MIDI presionando el botón "mute" mientras mantiene presionado el botón "shift". Cuando el eco MIDI está habilitado (predeterminado), cualquier información presente en el conector MIDI INPUT se enviará al conector MIDI OUTPUT (solo se repiten las notas MIDI activadas, desactivadas, inflexión de tono, aftertouch y cambio de control).

Tanto la entrada como la salida de reloj MIDI están implementadas y habilitadas de forma predeterminada. En caso de que no se reciba ninguna entrada de reloj, el tempo se ajusta con el potenciómetro dedicado. En caso de que se reciba una entrada de reloj MIDI, el tempo se calcula a partir de eso y el potenciómetro de tempo no responderá. El reloj MIDI siempre se envía a la salida MIDI.

Paso 6: ¡Sección de ritmo

La idea original era un secuenciador de batería MIDI "puro" de 64 pasos para secuenciar hasta 12 partes de batería independientes. Después de algunas pruebas, noté que también habría sido bueno controlar una línea de bajo, y asigné la función de un tono por paso variable solo al último tambor. Después de eso, modifiqué el código nuevamente para poder cambiar el tono en cada batería y controlar hasta 12 sintetizadores. Una revisión más tarde agregué polifonía (polifonía por sintetizador limitada a 3 por defecto).

Para resumir:

- mientras está en modo LIVE, si la grabación LIVE está activada y la secuencia comenzó, puede grabar mensajes MIDI de entrada de notas, polifónicamente. Se almacenará la información de tono y volumen. Se pierden las infos de pitch bend y afterrtoutch. Los mensajes de cambio de control MIDI se almacenarán. Tenga en cuenta que solo tiene una ranura CC por canal, por paso.

- Si la secuencia se detiene, puede grabar hasta 3 valores de tono (acorde) en un paso específico de una barra específica manteniendo presionado el botón de paso de destino y presionando (al mismo tiempo o una por una) las teclas deseadas en el teclado conectado al puerto MIDI IN.

Darse cuenta de:

- la nota disparada en un paso se "mata" en el siguiente paso. Para aumentar la longitud de la nota, actúe sobre el parámetro VCA de "liberación" de su sintetizador.

- a diferencia de la batería, las notas no se pueden tocar en un redoble presionando el botón "redoble".

- Al grabar en VIVO, los datos del canal MIDI entrante se almacenan en el paso relativo de "batería" (canal MIDI n. ° 1 -> "batería" n. ° 1 y así sucesivamente).

Puede borrar una secuencia de sintetizador específica presionando el botón de paso relativo de "batería" mientras mantiene presionado el botón "REC". Si lo presiona de nuevo, también se borrará la secuencia de batería. Si se grabó una secuencia CC, esa será la primera en borrarse, luego siguiendo el orden CC -> Sintetizador -> Batería

Paso 7: Disparadores de arpegio

Los sintetizadores pre-MIDI de principios de los 80 a menudo están equipados con una "entrada de disparo de arpegio". Al enviar una señal de activación de 2,5 a 5,0 V (V-trig o "activación de voltaje") o al conectar a tierra la entrada de activación de arpegio (S-Trig o "activación de interruptor"), puede decirle al sintetizador que avance un paso en una secuencia de arpegio. Esto podría ser difícil de administrar con un secuenciador sin una salida de disparador dedicada (a veces suena "rimshot" de una salida dedicada donde / se usan como un recurso para sintetizadores V-trig) pero con una placa de microcontrolador puede administrar fácilmente dicha señal y control su arpegio de sintetizador como estaba destinado a la fábrica.

Este secuenciador de sección rítmica incluye la posibilidad de disparar el arpegiador de dos sintetizadores diferentes, de forma independiente.

El uso es muy fácil: seleccione el tambor 11 o 12 (presione el paso 11 o 12 mientras presiona "shift") y active los pasos que desea que el arpegiador mueva de un paso. De esta manera puede "programar" arpegios regulares muy ajustados de 1/16 de una longitud de nota activando todos los pasos, o 1/8 activando cada dos pasos. Además, puede programar arpegios más complejos activando pasos siguiendo una ruta irregular.

Dependiendo del tipo de señal de disparo que admita el sintetizador que desea controlar, necesitará una simple modificación de hardware: en el caso de V-trig (es decir, sintetizadores Roland) coloque una resistencia de 1 Kohm en serie con la salida de disparo arduino. En el caso de un S-trig (es decir, sintetizadores Korg) use la shematic adjunta al paso de "cableado" para un gatillo seguro.

Paso 8: Si las cosas no funcionan …

Incluso un proyecto relativamente simple como este probablemente no funcionará al 100% la primera vez que lo encienda. Aquí, por ejemplo, la correspondencia entre los botones y los LED es crucial, y un cableado sin emparejar hará que el secuenciador sea inútil.

Para probar todos los diferentes componentes que componen el secuenciador por pasos, escribí un boceto de prueba simple (ver adjunto).

Puede descargar el último firmware de prueba AQUÍ (enlace de GitHub).

El boceto de prueba funciona de la siguiente manera:

- presione un botón de paso: el LED correspondiente debe encenderse y se enviará una nota MIDI en el canal 10 a la salida MIDI.

- presione un botón de función: uno de los primeros 5 LED se encenderá.

- gire un potenciómetro: los LED se iluminarán en consecuencia (primer potenciómetro -> primera fila de LED, segundo potenciómetro -> segunda fila de LED, tercer potenciómetro -> tercera fila de LED).

- si se recibe una nota MIDI activada, el primer LED parpadeará.

Tenga en cuenta que el eco MIDI está habilitado de forma predeterminada. Esto significa que si tiene un bucle MIDI entre un sintetizador y MRSS, esto podría causar problemas (la mayoría de las veces experimenté un disparo de nota doble predecible, pero también notas muy bajas y un teclado integrado que generalmente no responde con sintetizadores con MIDI actuando como MIDI Throu … depende del sintetizador). Si este es el caso, desactive el eco MIDI presionando el botón "mute" mientras mantiene presionado el botón "shift".

Recomendado: