sábado, 2 de octubre de 2010

Música del corazón

Quiero decir, música del corazón, literalmente. No es ningún vulgar título meloso para un nuevo disco de música de ascensor.

Ok, me explicaré mejor. (Aviso que este artículo puede resultar demasiado técnico para según quién; en ese caso lo mejor es saltarse los rollos ininteligibles y pulsar en los botoncitos para que suene).

Hace unos días me hicieron un electrocardiograma. Nada sin importancia en principio. La enfermera me dijo que debía entregar el resultado a mi médico de cabecera cuando le fuera a visitar. Pero como me aburría en el metro, camino de vuelta al trabajo, abrí el sobre que me habían dado y me encontré en esencia un metro de papel continuo con este aspecto:


Rápidamente me llamó la atención la similitud con cualquier otra forma de onda de tipo periódico, por ejemplo un sonido. Pensé si no habría alguna forma de convertir la onda impresa a una onda manipulable y en última instancia, audible. Y si es audible, se puede convertir en música.

Pues sí, la hubo, y además fue rápido y relativamente fácil. El pasado viernes improvisé en apenas viente minutos un pequeño programa escrito en Java encargado de detectar el trazo del electro previamente escaneado (mediante una simple detección basada en umbral de luminancia).

Así que sólo quedó trocear las ondas de los distintos electrodos y convertirlas una a una a un fichero PCM con los datos, ya manipulables desde un editor de audio. Aquí se puede ver un fragmento del electrodo aVL (que me pusieron en la muñeca de la mano izquierda, previa gasita húmeda como si fuese un reo condenado a la silla eléctrica). Debajo se ve ya convertido a una onda PCM.


¿Y bien? Pues cualquiera que tenga cierta experiencia en el mundo de la síntesis sonora se percatará que esto es muy similar a lo que genera un oscilador de diente de sierra o uno de pulsos de ancho variable. Eso significa que con unas pocas manipulaciones puede convertirse en algo relativamente interesante desde el punto de vista musical.

Pero vamos poco a poco. Si tomamos el archivo codificado y lo reproducimos a una velocidad de muestreo de unos 500 Hz, podemos escuchar lo siguiente (si no escuchas nada, es que necesitas unos altavoces que reproduzcan sonidos más graves):


¡Sí! ¡Es mi corazón! Puede escucharse con una nitidez sorprendente para la poca resolución que se puede obtener después de pasar de impulsos eléctricos a tinta y papel, de tinta y a papel a escáner, de imagen escaneada a onda digitalizada, y de onda digitalizada de nuevo a audio.

Pues bien, sigamos. Asumiendo que los latidos son a 60 pulsaciones por minuto, nos daría una frecuencia de aproximadamente un hertzio. Dicha frecuencia está muy por debajo de los 20 Hz mínimos que nuestro oído comienza a percibir como algo audible. Esto quiere decir que si aceleramos la onda lo suficiente podríamos llegar a escucharla como un sonido más continuo y utilizable musicalmente. Hagamos la prueba:
¡Esto es otra cosa! Ahora ya tenemos un típico tono pulsatorio que se asemeja a las formas de onda de diente de sierra de muchos sintetizadores clásicos. Probemos qué pasa si lo pasamos por un filtro resonante y tocamos algunos de sus parámetros:

Oh, my god !
¿En serio esto sale del trozo de papel que me dieron en el ambulatorio? Pues sí señora, eso mismo. Démosle incluso un poco más de vidilla agregándole algunos efectos de eco y distorsión:



YES!
Pues ahora ya hemos comprobado que la idea original no sólo no era descabellada, sino que es perfectamente factible.

Utilizando fragmentos de onda sacados de los diversos electrodos y aplicando distintos tipos de efectos, filtros y envolventes, pueden sintetizarse sonidos electrónicos muy dispares y muy bellos que pueden ser empleados en la composición o producción musical.

Aquí muestro algunos ejemplos de otros sonidos de sintetizador creados mediante el procedimiento anteriormente descrito:

Alguno un poco vivillo estará pensando lo siguiente: "sí, pero esto que has hecho es una tontería, porque en realidad de cualquier sonido que registres puedes obtener una forma de onda con la que sintetizar todos estos sonidos... desde una lavadora a un avión, pasando por un pedo".

Pues así es, en efecto. El haberlo sacado de un electrocardiograma no aporta nada de especial al sonido. Esto mismo se puede hacer con casi cualquier cosa que haga ruido. Sin embargo, creo que sí aporta como idea y como concepto.

Y además a mí me hace ilusión. Al fin y al cabo, es mi corazón.

13 comentarios:

  1. PUTO AMO

    Hay que aprender a hacer como Shortshot. Ideas tenemos todo el mundo ante cualquier estímulo interesante, pero lo realmente interesante es implementarlas, por muy poco ortodoxas que parezcan ;)

    ResponderEliminar
  2. Tú lo has dicho, MkII... de hecho yo siempre he sido el rey de las "ideas geniales" que jamás son llevadas a cabo, ni por intento.

    ResponderEliminar
  3. O.O

    (Ésa es mi cara de recién llegada a este espacio)

    ResponderEliminar
  4. ¿Y esa cara significa algo bueno, o algo malo?

    ResponderEliminar
  5. Soy médico, y te puedo decir que tu idea me ha dejado impresionado. Anda que no habré visto ECGs y escuchado pulsos cardiacos, pero en la vida se me hubiera ocurrido esto. Muy original e interesante, muy currado. Definitivamente, me gusta.

    ResponderEliminar
  6. Gracias anónimo... ¿sería tan amable de contactar conmigo por privado? Es posible que necesite de su ayuda para una versión extendida del proyecto :-)

    ResponderEliminar
  7. Respuestas
    1. ¡Gracias!
      Algún día la retomaré y la desarrollaré un poco más.

      También lo intenté con un electroencefalograma, pero los picos no eran demasiado periódicos y era menos interesante el sonido resultante.

      Eliminar
  8. He llegado a tu blog desde Hispasonic y la verdad es que me he quedado flipado con lo original que es este experimento. Me he descargado el código... cuando tenga un rato haré pruebas =)

    ResponderEliminar
    Respuestas
    1. Guay. Ya me contarás.
      El código está improvisado, sin estructurar ni nada. No te asustes :-)
      Para obtener los mejores resultados, edita primero la gráfica escaneada con algún GIMP o similar y aumenta el contraste lo que puedas y limpia los elementos sobrantes.

      Si te sale algo chulo comparte porfis!!!

      Eliminar
  9. Felicitaciones hermano sinceramente creatividad y capacidad para llegar a estos llamativos resultados ;=)

    ResponderEliminar
  10. He visto en Hispasonic que preguntas sobre escoger compilador. La mayor parte de los programas comerciales, DAWs y plugins incluídos, están hechos con vc. Tarda en compilar por la cantidad de librerías que acaban incluyendo esos entornos. Pero haz la prueba: compila el mismo código, que haga muchas veces algo, con dev-c++ y con el vc, con las opciones de optimización de ambos al máximo. También se optimiza un vsti usando tablas, en vez de hacer operaciones matemáticas.

    ResponderEliminar
    Respuestas
    1. Gracias. Lo de las tablas es evidente, estoy usando tablas con senos usando oversampling a lo bestia (para evitar en la medida de lo posible calcular interpolaciones al vuelo).

      Sobre el compilador, en efecto, finalmente me decanté por VC, aunque estoy intentando escribir código lo más agnóstico posible porque más adelante lo quiero portar a iOS y a RPI.

      Gracias y un saludo.

      Eliminar

Siéntete libre de opinar lo que te plazca, pero hazlo de manera educada. Los ataques personales que no hagan ningún otro aporte no serán publicados con el fin de mantener el tono de cordialidad.