Mi desarrollo de teclado isomórfico para pantallas táctiles

amonra
#1 por amonra el 14/03/2024
Buenas compañeros

Yo toda mi vida he tocado la guitarra, pero desde hace unos años me ha dado por la síntesis. Poco a poco intento aprender a tocar las teclas, de forma intuitiva, pero se me resiste. En la guitarra estoy acostumbrado a que si una misma "figura" de los dedos en el mástil la mueves por los trastes, obtienes el mismo acorde transpuesto a distintas tonalidades. Ya me entendéis. Evidentemente en los teclados no se puede hacer lo mismo por la distribución irregular de las teclas blancas y negras.

Hace meses descubrí los teclados isomórficos, en los que las figuras de los acordes se pueden transponer manteniendo siempre su "figura" a todo su largo y ancho. En especial me llamó la atención el Intuitive Instruments Exquis https://dualo.com/en/exquis/, sobre todo por su expresividad polifónica gracias a MPE, que me recuerda a la forma de tocar la guitarra.

38594f338601747bd84a707315443-4906495.png

Antes de tirar el dinero en algo que al final tampoco me diese resultado, me puse a buscar si había apps para dispositivos móviles que hicieran la misma función para experimentar con esa forma de tocar. Hay algunas, pero por un motivo u otro no me convencieron. Un par de ejemplos.

https://apps.apple.com/us/app/formkey/id1535350561

http://www.sky-light.jp/hex/hexoscfull.html

Cómo soy programador, hace un par de semanas me plantee si podría hacer yo mi propio teclado isomórfico, y aquí estamos. Os presento Hexapoda:


9e15fc06a17dfc8285d9f75a0f804-4906495.jpg

Todavía es un prototipo muy básico, pero al menos se puede probar. De momento solo permite 5 notas simultáneas y aún no tiene MPE ni aftertouch polifónico ni nada parecido. Tengo que experimentar con distintas distribución de notas, escalas, cómo compaginar expresividad con cambio de nota al arrastrar dedos, usabilidad, etc. etc.

En mi firma dejaré los enlaces para bajarse las versiones desarrollo (por si cambian u no puedo editar este post). En el momento de escribir esto sólo tengo versión para iOS. Espero poder subir la versión Android en pocos días. Si algún dia pillo una Surface o similar podría sacar versiones para windows.

Espero que este hilo sirva par debatir sobre este tipo de teclados, para recibir feedback vuestro, sugerencia, ...

Un saludo hispasónicos.

Enlaces:

Enlace de TestFlight para descargar las versión de test para iOS.
Archivos adjuntos ( para descargar)
IMG_9BAB3F1FC599-1.jpeg
Capture-decran-2023-12-20-a-12.54.14.png.png
Subir
9
OFERTAS Ver todas
  • -6%
    Elektron Digitakt II (B-Stock)
    939 €
    Ver oferta
  • -30%
    Behringer X-Touch Compact
    259 €
    Ver oferta
  • -7%
    Modal Argon8 (B-Stock)
    559 €
    Ver oferta
Lisboetas
#2 por Lisboetas el 22/03/2024
#1
Hola que proyecto mas interesante. Animo con el!!!
(cuanda salga para anddroid el doy un repaso)
Una preguntilla de otro programador con 0 experiencia en dispositivos moviles. Con que lo haces? flutter? (es en lo que me estoy metiendo un poco para frontends web, aunque estoy en otros mambos la verdad)
Si no, con que recomendarias para apps midi?
Subir
amonra
#3 por amonra el 22/03/2024
So soy ultra enemigo de todo lo que sea JS y HTML. Yo lo estoy haciendo en C++ usando un motor de videjuegos llamado Axmol, un fork de Cocos2d-X.

https://github.com/axmolengine/axmol

Para el MIDI estoy usando esta librería:

https://github.com/celtera/libremidi

Esta semana lo he compilado para Android, pero no he conseguido conectarme por BLE a mis dispositivos MIDI. Es un dolor de muelas. A ver si este fin de semana logro que funcione.
Subir
2
Lisboetas
#4 por Lisboetas el 22/03/2024
Muchas gracias por la info!!
Subir
1
Micky Vega mod
#5 por Micky Vega el 22/03/2024
La gente que sabéis crear cosas así de guapas... os admiro y envidio. De verdad que me gusta, estaré super atento a este hilo.
Subir
2
Alexmx03
#6 por Alexmx03 el 22/03/2024
amonra escribió:
Yo lo estoy haciendo en C++

Como debe ser, supongo que ya lo conoces pero por si no lo conocías, mira RNBO de cycling74, son los de MAX, y también JUCE.
Subir
amonra
#8 por amonra el 28/04/2024
Buenas noches.

Hoy por fin le he podido dedicar un rato más. He añadido escalas y tonalidades al teclado, oscureciendo las notas que no pertenecen a las seleccionadas. Espero no haberla cagado al transcribirlas a código.

La versión de Android se resiste, y no sé si es por mi código por la inutilidad de Android para conectarse a dispositivos MIDI por BLE.

Pongo aquí de nuevo el enlace a la beta en Apple, por si no lo veis en la firma de mis post.

https://testflight.apple.com/join/QFVehjGG

Espero comentarios y sugerencias.

PD: No me acaba de convencer esta disposición del teclado. Sigo investigando alternativas.
Subir
1
amonra
#9 por amonra hace 4 semanas
Aquí estoy de vuelta. Había abandonado el proyecto desanimado por la falta de interés de la gente pero al final me he dicho que por lo menos lo voy a terminar para mí.

Ahora hay la posibilidad de añadir expresividad en los dos ejes. Es decir, que cuando tocas una nota y arrastras el dedo sin levantar puedes mandar mensajes MIDI configurables. Por ahora puede mandar Pitch Wheel, Mod Wheel y Aftertouch desde la última nota pulsada, y Pressure (aftertouch polifónico) en cada una de las notas por separado (esto sí que es interesante).

Quiero probar varias cosas:

  • MPE (Por supuesto)
  • Teclado tradicional y teclado estilo continuum de haken.
  • Cambio de nota al desplazar a otro hexágono.


En el primer post he puesto el enlace para instalar la demo de iOS.

Espero comentarios (o no)
Subir
2
pablofcid mod
#10 por pablofcid hace 4 semanas
Hola, Amonra. No decaigas, que tiene buena pinta.
Cuando lo termines avisame y hacemos una demo/prueba para portada.
Lo de añadir detección de la posición hacia arriba abajo y hacia derecha izquierda estaría muy bien. Supongo que has visto algunos productos hardware parecidos. Por ejemplo el Ableton push tres tiene ese tipo de detección y cuando hice la review la verdad es que lo disfrute mucho.
Al ser software podría alcanzar a mucha más gente interesamos a este tipo de cosas y a las que echa para atrás el precio carísimo de estos controladores cuando son hardware.
Una cosa que está muy bien con este tipo de controladores es que al arrastrar el dedo y pasar de un pad a otro puedes configurar que en lugar de re disparar la nota haga bending para poder hacer glides al gusto. 
En muchos también puede el usuario configurar que tipo de disposición isomórfica quiere. Es muy habitual la de separar las filas a intervalos de cuarta por asemejar los mástiles de los instrumentos de cuerda. Pero algo tan sencillo como dejar que el intervalo entre filas lo pueda ajustar el usuario permite mucha flexibilidad. También es útil aunque a mí personalmente me atrae menos poder establecer el tipo de escala que quieres sobre los pads. De forma que en lugar de tener los doce semitonos puedas escoger cuáles deseas y así adaptarte a la escala de improvisación que vayas a aplicar.
Y al ser software si pudieras también ofrecer una matriz tipo cuadrícula y una matriz desplazada de estas de tipo hexagonal mejor que mejor todavía para que cualquiera pueda encontrarse a gusto tanto si viene de un tipo como de otro.
Subir
1
djralph
#11 por djralph hace 4 semanas
Hola amonra,

Enhorabuena por el proyecto, te animo a que sigas adelante!

Por mi parte voy a intentar sacar un rato para probarlo y si puedo darte feedback lo haré encantado.
Subir
djralph
#12 por djralph hace 3 semanas
Hola amonra,

Lo he estado probando y está muy bien.

Te quería preguntar si sería posible y no es muy complicado que la app permitiera crear un puerto midi virtual para poder tocar instrumentos en el mismo ipad sin tener que usar aplicaciones de terceros…

Saludos
Subir
Wikter
#13 por Wikter hace 3 semanas
Buenas, no existe en los iPad las posibilidades de detectar la presión de los dedos? Si el framework lo soporta podría ser un interesante añadido. 
Sobre lo de poder usar el cambio de nota al desplazar el dedo, quizás con un botón que conmute entre expresión y "slides", aunque siendo realista, la función slide depende de como lo reciba el instrumento, no sé si mediante mpe se puede conseguir cambiar de nota y poder mantener el sonido sin disparar nueva nota... Lo que sí se puede es escalar el pitchbend en función de la distancia de nota con una base de 12 semitonos (no todos los instrumentos permiten 12 semitonos de pitchbend) que como opción podría ser bastante interesante.
En fin, que no tengo iPad iPhone pero me alegra ver desarrollos en este sentido.
Para cualquier duda con MPE tienes al personal de SurgeTeam que son bastante activos al respecto.
Tampoco te olvides de las pantallas táctiles en PC, que a los que las tenemos  nos gusta aprovecharlas.
Subir
djralph
#14 por djralph hace 3 semanas
La detección de la presión (que se llamaba 3d touch) la quitaron hace tiempo para reducir costes de producción, el último dispositivo que lo tuvo fue el iphone XS y ya ha llovido desde entonces…

Una pena porque precisamente para este teclado virtual hubiera podido tener una suerte de poly aftertouch…
Subir
pablofcid mod
#15 por pablofcid hace 2 semanas
En algunos casos se usa el área cubierta con el dedo en vez de la presión. Si tocas con la punta o lo apoyas con generosidad.
Subir
Hilos similares
Nuevo post

Regístrate o para poder postear en este hilo