Construcción de un Tap Drum (arduino y Raspberry)

Holas a todos.
Reaparezco porque voy a tener unos días libres y si nos confinan, más días aún.
Hace unos meses empecé un proyecto que deje aparcado por temas laborales. Más o menos lo que tengo hecho esta aquí:
josema966.gitlab.io
Es una “copia” de otro que está hecho pero con algunas cualidades más y seguro que muchos más defectos.
Consiste en tener una batería electrónica en el tamaño de una guitarra eléctrica. No os podéis imaginar el trabajazo impresionante que es “desmonta - traslada - monta - toca - desmonta-vuelta a trasladar- monta” una batería, aunque sea eléctrica, el trabajo es casi el mismo.
Con este cacharro se agiliza todo mucho más.
Tengo más ideas que aún no se han materializado y alguna foto que no he subido a la página.
Realmente lo haré con una OrangePi, pero vamos que para Raspi será igual.
Si alguien quiere participar, le mandaría algún material que tengo, poca cosa la verdad, tampoco se necesitan muchas cosas.
Un saludo

Bueno. Gracias a todos los que me habéis leído. Continuaré solo con el proyecto. Si alguien se une más adelante será bienvenido

Si alguien puede darme alguna pista de como enfocar el asunto, le estaría agradecido y me podría pasar sus honorarios.
El caso es que quiero recoger, con un microcontrolador, unas 24 señales analógicas producidas por unos 20 piezos y 4 potenciómetros. Estás señales serán traducidas a comandos MIDI y enviados a una Raspi, por lo que el microcontrolador debería reconocerse como un dispositivo MIDI.
Si me podéis dar una pista, de pues agradecido.

Un saludo

Para los piezos tengo un chip multiplexor espero que me de tiempo a ver al menos los 20 piezos. Los potenciómetros no son tan críticos.
Otra cosa sería poner 5 Arduinos mini/micro/nano y que enviaran la señal por i2c
También he visto los Teensy que parece ser tienen bastantes entradas analógicas.
Aunque de esto aún no he puesto nada, en mi página hay varias cosas explicadas:
josema966.gitlab.io
Un saludo

Hola.
Por si a alguien le interesa diré resumidamente como llevo el proyecto.

  • He hecho pruebas con los pads. Como construirlos mejor. Quitar ruido, que no afecte el golpe de los pads que están a los lados. Que forma tiene la “onda” que envía el piezo. Para esto he hecho pruebas de intensidades y las he metido en una hoja de cálculo.
  • He trasteado con la pantalla oled. Mensajes de texto de distintos tamaños y he metido el logotipo del proyecto. La verdad que queda guay. Lo malo malísimo (que no sabía antes) el I2C utiliza dos pines analógicos con la escasez de pines.
  • He hecho pruebas con el multiplexador. He tenido muchos problemas, pero hoy parece que estaba iluminado porque los he resuelto directamente. Esta funcionando y me gusta como está quedando.

Cosas que hago en breve:

  • Seguir desarrollo con Arduino nano
  • Trastear con el joystick y sistema de menús.
  • Ir montando el programa completo
  • Ver cómo paso los datos del Arduino a la raspberry y que los lea el Fluidsynth.
    Este último punto es lo más importante. Si pudiera reconocerme la raspi el Arduino (u otro micro) como dispositivo midi sería estupendo. Si no, no sabría cómo enviarlo por un puerto serie y que fuera dirigido al port que abre el fluidsynth (no me acuerdo el número).
    Intentaré poner cosas en mi página web
    Gracias al que me lea.

Te leemos, te leemos.

Al respecto de Arduino como dispositivo, he hecho una búsqueda y parecen existir soluciones, ahora bien, ¿como has pensado enganchar el dispositivo «midi» a la raspi?

Necesitarías una tarjeta de sonido con interfaz MIDI, así que, o cargas con una tarjeta o mírate otra solución como convertir esa señal serie o MIDI hacia algo que Fluidsynth pueda leer.

Mmm, dale un vistazo al proyecto de @LatinSuD, quizás puedas reaprovechar algo:

Pedal virtual para guitarra con webcam

Suerte, y mándanos fotos.

Tengo un convertidor MIDI/USB. La raspi lo reconoce perfectamente. Aún no he probado conectando por la parte MIDI el Arduino. Total, vale dos euros en Aliexpress.
Otra idea es cambiar el firm del Arduino para que reconozca al arduino como un dispositivo midi por el usb.
Y la lo más baratisimo es mandar lo que reciba por el puerto serie a una ‘consola’ de Fluidsynth que abre en un puerto.
El multiplexor va muy bien y puedo leer las 16 entradas. He comprado otro multiplexor porque el proyecto original tiene unos 20 pads y yo quiero añadirle tres potenciómetros.
El menú lo tengo medio terminado. El logotipo queda muy guapo en la pantalla oled de 0’9. En la pantalla salen el pad, la nota de ese pad y la intensidad máxima.Puedo cambiar las ‘notas’ de cada pad. Puedo grabar y leer de la eeprom.
Seguro que el código se puede hacer mejor, pero yo no sé más y funciona muy bien.

Hoy ya estoy enviando notas a través del Midi/usb a Rosegarden. (Luego será a Fluidsynth)
Creo que no me queda mucho más por probar y hacer así que voy a empezar a montar el instrumento entero.
Empezaré a imprimir pads como un loco.

No estoy muy contento con la forma que suelen programar la recogida de los impulsos del piezo.
Voy a hacer que (mediante un menú) se pueda elegir si coge el valor máximo, hace la media o… alguna otra forma.
Luego, el programa que circula, hace una corrección que supongo que es para que el volumen de la nota sea mas proporcional a la fuerza del golpe. Esto voy a verlo porque no lo veo claro.

P.d. el programa lo liberaré después de que alguno de vosotros le eche un vistazo y me comente cosas, que soy muy desorganizado programado y luego hay charlas de “tu código apesta” y … Tiene razón, apesta, pero funciona.