Montaje controlador MIDI Arduino con 8 disparadores

niño murciélago
#1 por niño murciélago el 05/02/2014
Saludos y gracias de antemano a todos aquellos participéis en este proyecto.

LA PRESENTACIÓN:

Soy una de aquellas personas a las que el mundo de la electrónica y la programación le parecieron, desde siempre, una de esas ciencias ocultas que requieren de años y años de ensayo/error para entender, o al menos autoconvencerse, de que se dominan ciertas leyes que articulan las cadenas de resistenciasCONDENSADOREStransitores>ETC... A eso hay que sumarle la interconexión con el mundo de los ceros y unos, los triggers, el MIDI y su entrañable sintaxis...

He de confesar que mi único logro ha sido montar una modesta ATARI Punk console en una protoboard, en la que me limité a reproducir un esquema que encontré por la red... Vamos que un chimpancé (sin querer ofender a ninguno de ellos por este símil) lo suficientemente entrenado y fumándose un cigarillo (que me disculpen los defensores de los derechos de los animales) lo podría haber logrado.

Y ahora que ya estáis puestos en antecedentes de mi notable y envidiable formación electrodigital...

EL PROYECTO

Me he propuesto Utilizar un Arduino (leonardo) y unos piezoeléctricos para convertirlos en un CONTROLADOR MIDI que tenga ocho disparadores.

En mi caso, y simplificando al máximo, lo que quiero conseguir es unos triggers que acoplados a un set de batería o a los diferentes elementos de una parillada de carne pueda enviar un mensaje al ordenador/software y éste se convierta en un bonito sonido. (La parte del secuenciador, pluggin, stand-alone que gestione el mensaje midi lo dejamos para otro momento)

Y ahora diréis... pero de eso ya hay unos cuantos tutoriales, hilos, vídeos, etc... Sí, estoy de acuerdo pero yo, amigos... ahora sí... QUIERO APRENDER unas nociones básicas de este noble arte y utilizar este proyecto como la excusa para empezar a poner en orden todos aquellos conceptos que ahora mismos son tan difusos.

LA PREGUNTA

¿Convertimos este post en algo así como "Drumkit arduino para dummies y chimpancés"?


EL PRÓLOGO: LAS DUDAS

¿El por qué de una resistencia acoplada el piezoeléctrico? ¿Y su valor?
¿Cómo convertir el puerto USB de Arduino en una entrada MIDI?
¿La sensibilidad de los pads se puede ajustar?
¿Tendré latencia?
¿Me he portado bien este año?


CAPITULO UNO: En donde lanzo la botella al mar

Si alguna alma tiene ganas y tiempo para responder a algunas de estas preguntas y las futuras dudas que vayan surgiendo le estaré yo, y toda futura alma desolada que se encuentre en mi misma situación y llegue hasta estas líneas, muy agradecido.
Yo por mi parte, cuando esas morcillas suenen como un buen bombo y los chorizos parrilleros le hagan las contras a modo caja, me comprometo a devolver a la comunidad el montaje paso a paso de este proyecto para que todo aquél que quier aventurarse.

Gracias de nuevo :bananaguit: :cuernos:
Subir
2
OFERTAS Ver todas
  • -6%
    Elektron Digitakt II (B-Stock)
    939 €
    Ver oferta
  • -20%
    Technics SL-1200M7 Lamborghini
    1.199 €
    Ver oferta
  • -7%
    Modal Argon8 (B-Stock)
    559 €
    Ver oferta
mustang64
#2 por mustang64 el 06/02/2014
Hola niño murciélago,

De momento solo te puedo contestar a la pregunta de "¿Tendré latencia?".

Tendrás latencia en función de lo que hagas entre la detección de la acción (golpe en el piezo) y el envío del mensaje MIDI.

En mis cacharros, cuando mando varias notas simultáneas, hay más o menos 5 ms de retardo entre cada una de ellas, lo cual es inapreciable, pero antes me preparo todo para mandarlas todas juntas. Si mandas 8 notas ya son 40 ms, que empieza a ser preocupante. Si no las preparas, puede ser más tiempo y ahí ya se nota.

Si no te complicas demasiado, 8 pads a mensajes MIDI no te deben dar muchos quebraderos de cabeza.

El principal problema que tienes es que quieres tener 8 disparadores y el Leonardo solo tiene 6 entradas analógicas, así que tienes que usar un multiplexor o reducir las entradas a 6.

El multiplexor tarda en recorrer todas las entradas, que es tiempo añadido al proceso.

De las demás, no te puedo contestar.

Suerte con el proyecto!

M64.
Subir
2
niño murciélago
#3 por niño murciélago el 07/02/2014
Muchas gracias Mustang64, tomo nota...

Teniendo en cuenta lo que me comentas creo que, por el momento, me decanto por la opción de las 6 entradas analógicas y cuando estén funcionando me pelearé con el tema de multiplexar (qué bonita palabra por cierto) :chica:

Asumiendo esa pequeña latencia :silbar: de más o menos 5 milisegundos, se me plantea la duda :shock: de qué puede pasar con un redoble de caja, :yeah: por ejemplo. Entiendo que para el resto de elementos no debe de haber mucho problema ya que los golpes acostumbran a estar más separados en la línea del tiempo.

Otra duda que se me plantea es la de si tendré la misma latencia utilizando la salida USB de serie del Arduino y virtualizando un puerto MIDI en el PC que si lo hago a través de una salida MIDI dedicada.

Dudas y más dudas... y qué buenas son para que este vinculo virtual de curiosos se haga cada vez más grande.

:plasplas:
Subir
mustang64
#4 por mustang64 el 07/02/2014
Si mis cálculos no fallan, a 160 bpm:
- una negra son 375 ms
- una corchea son 188 ms
- una semicorchea 94 ms
- una fusa 47 ms
- una semifusa 23,5 ms

Yo creo que hay tiempo de sobra. Otra cosa es que en vez de sonar cuando se pulsa, suena a los 5 ms (todas), inapreciable.

Si tienes un monitor midi (MIDI-OX o algo así) prueba a hacer un redoble y mira los timestamp. Te dará un valor sobre el que trabajar.

M64.

No he cambiado el puerto USB del arduino a puerto MIDI, así que no te puedo ayudar con eso, pero sí sé que se puede. Hace tiempo encontré una página y la posteé aquí.

Saludos.

M64.
Subir
flutisto
#5 por flutisto el 12/02/2014
niño murciélago escribió:
¿Convertimos este post en algo así como "Drumkit arduino para dummies y chimpancés"?


Aquí otro chimpancé
Subir
Man with the x-ray eyes
#6 por Man with the x-ray eyes el 16/02/2014
Hola Niño Murciélago,

solo un par de cosas que aportar a tus preguntas:
En primer lugar no sé aún muy bien cómo ajustar la sensibilidad de los piezos, aunque poderse, sí se puede. Para empezar lo que sí es fácil es ajustar el umbral a partir del cual consideras que se ha producido un golpe, ya que si no, cualquier cambio de presión mínimo que recoja el piezo podría disparar el sonido. En un proyecto similar que hice, lo regulé de esta forma (son dos pads, A y B):
#define PIEZOATHRESHOLD 14//change this value
#define PIEZOBTHRESHOLD 14
#define piezoAPin 0
#define piezoBPin 1
Es decir, defines los pines de entrada de los pads, y el umbral al que empiezan a actuar, (en este caso 14, que tendrías que ajustarlo a tu pad concreto). Por otra parte, en la próxima versión que haga me gustaría usar un potenciómetro para modificar este parámetro en caliente sin necesidad de programar de nuevo para cada prueba. Por mi experiencia con este proyecto, es un elemento realmente útil...

Por otra parte, el Arduino Leaonardo, a diferencia del UNO, dispone de 20 pines analógicos, no 6, así que no tendrías que multiplexar.
http://arduino.cc/en/Main/ArduinoBoardLeonardo#.UwC9caG0yuI

Saludos!
Subir
niño murciélago
#7 por niño murciélago el 18/02/2014
¡Hola de nuevo y gracias! Adjuntaría una foto para que atestiguara los centímetros de barba ermitaña que ha ido creciendo después de paginas y paginas virtuales consultadas durante estos días y de las horas de ensayo error hasta llegar a tener algunas respuestas a las primeras dudas de este proyecto... pero la verdad es que no tendría ningún sentido porqué no colgué la del antes así que no se apreciaría el después)

De momento puedo decir que a la pregunta ¿Tendré latencia? La respuesta es Sí, pero se puede trabajar con ella

Comó bien dices
mustang64 escribió:
Yo creo que hay tiempo de sobra. Otra cosa es que en vez de sonar cuando se pulsa, suena a los 5 ms (todas), inapreciable.

Te doy la razón, ya que yo no se la noto, así que para "jugar" en vivo :dj: , y utilizarlo como un módulo con disparadores puede ir bien....

Aún así, he de confesar que soy persona curiosa, por lo que no encenderé el cigarrillo de la aparente tranquilidad hasta que vea cómo queda traducida la ejecución de un baterista :hell: (*) al pasar por la cadena Piezo / Arduino / PC / Secuenciador / Botón REC/ Fragmento MIDI. .
(Pero si todo va bien y me voy afeitando esto lo descubriremos al final de esta aventura) :yuju:

Respecto a la pregunta ¿La sensibilidad de los pads se puede ajustar?
Gracias hombre de mirada curiosa, copio el codigo y lo implemento al que de momento tengo. En cuanto pueda probarlo comento los resultados. He visto en esta página este proyecto en el que, si no he entendido mal, la senibilidad de los piezo se regula a través de un potenciomentro. Voy a intentar adaptarlo a mi proyecto ya que como muy bien apuntas:
the man with the x-ray eyes escribió:
Para empezar lo que sí es fácil es ajustar el umbral a partir del cual consideras que se ha producido un golpe, ya que si no, cualquier cambio de presión mínimo que recoja el piezo podría disparar el sonido.
Y vaya si los dispara... por lo que SÍ veo necesario interponer unos potenciometros entre el piezo y el arduino. Si más no, siempre que se quieran utilizar, como es mi caso, como los triggers de un "Modulo I/O" conectado a un set de batería.

Mondo una banana :cuernos: para brindar cual chimpancés con flutisto... ¡¡Viento en popa!!

¡Saludos!
Subir
flutisto
#8 por flutisto el 20/02/2014
En relación a esto ¿alguien sabe si hay un foro o algo así donde preguntar dudas básicas de electrónica?

:cuernos:
Subir
thru_zero
#9 por thru_zero el 14/10/2014
Buenas!

Justo me he propuesto hacer el mismo proyecto por lo que depende con qué puedo ayudar con tema de programacion/dudas etc... Primero de todo, acabó en buen puerto o en la montaña de los "proyectos que ya nunca se harán" a causa de cualquier contratiempo? jajaja
Subir
tinieblas
#10 por tinieblas el 23/06/2016
iep.
estoy estudiando ingenieria i estoy haciendo el proyecto sobre controladores MIDI.

Si alguien tiene dudas las intentare contestar.

Un saludo,
Didac
Subir
Hilos similares
Nuevo post

Regístrate o para poder postear en este hilo