scieee Open visual document viewer

Instalación Interactiva de Música Generativa

Barrios Caballero, Jesús Alberto; Asanza Mesa, Samuel

Abstract

En este proyecto hemos desarrollado una instalación interactiva capaz de detectar la posición y los gestos de las manos de un usuario gracias a una cámara y una red neuronal entrenada. Con estos gestos, el usuario interactúa con una música ambiental que evoluciona en directo mediante va sonando. Esto lo hemos conseguido gracias a un modelo de inferencia pre-entrenado que hemos personalizado para nuestro objetivo. La música que suena sigue la filosofía de la música generativa, y el sonido se crea mediante síntesis granular; todo esto gracias a diferentes programas que hemos conectado entre sí, de manera que los datos obtenidos de los gestos sean traducidos en variaciones de los parámetros de la música a tiempo real. De esta manera, se generan texturas sonoras en base a unos audios y presets preguardados y, gracias a los mensajes recibidos de la red neuronal, se puede interactuar de múltiples maneras con este sonido generado. Por otro lado, a este sonido se le aplican efectos de reverb y ecualización, dándole mayor riqueza. El resultado: tenemos establecidas las bases para generar un ambiente sonoro evolutivo en el cual se involucra el usuario, creando su propio sonido haciendo gestos y movimientos en el aire. Este proyecto pretende acercar a un usuario inexperto al mundo de la música ambiental y permitirle crear, utilizando la Inteligencia Artificial no como sustituto, sino como herramienta creativa. Se trata de un trabajo con el aspecto técnico de la programación y el entrenamiento de un modelo, así como el aspecto experimental y creativo de la informática musical. También se pretende explorar el potencial de la fusión de todas estas herramientas y lo compacto y portable que puede ser el resultado.

Full text

Ins alación In e ac i a de Música Gene a i a In e ac i e Gene a i e Music Sys em T abajo de Fin de G ado Cu so 2023–2024 Au o es Jesús Albe o Ba ios Caballe o Samuel Asanza Mesa Di ec o es Jaime Sánchez He nández José Ignacio Gómez Pé ez G ado en Ingenie ía In o má ica Facul ad de In o má ica Uni e sidad Complu ense de Mad id Ins alación In e ac i a de Música Gene a i a In e ac i e Gene a i e Music Sys em T abajo de Fin de G ado en Ingenie ía In o má ica Au o es Jesús Albe o Ba ios Caballe o Samuel Asanza Mesa Di ec o es Jaime Sánchez He nández José Ignacio Gómez Pé ez Con oca o ia: Sep iemb e 2024 Cali icación: G ado en Ingenie ía In o má ica Facul ad de In o má ica Uni e sidad Complu ense de Mad id 13 de sep iemb e de 2024 Dedica o ia A noso os mismos, po el es ue zo y la disciplina, aún cuando se nos ago aban las ene gías Ag adecimien os A mi amilia y amigos, po su indispensable apoyo du an e odo el eco ido de la ca e a y el desa ollo de es e p oyec o. En especial a mi mad e, po supe a un cánce con muchísima ue za y siemp e una son isa en la ca a, y a mi pad e, po aguan a el dolo y los malos pensamien os que la si uación implicó y, con odos los golpes de la ida, ninguno de los dos dejó ni po un momen o de da me lo que necesi aba y hace me eliz. Y a Isma y La i, po deja me sin duda lo su casa como sala de es udio cuando necesi aba máxima concen ación, y como consul a donde compa i nues as c isis exis enciales. - Samuel A mis abuelas Elina y Nidia, que emp endie on un iaje a emp ana edad en busca de una ida mejo , una c uzando el cha co y la o a c uzado una on e a. A mis pad es, que deja on odo a ás pa a da nos a mis he manas y a mi un u u o. A mis amigos, que me p es a on un apoyo incondicional es os úl imos meses u bu- len os. Finalmen e, g acias a la ie a que me io c ece y a los buenos ecue dos que engo de ella, que me hicie on la pe sona que soy hoy en día (Glo ia al b a o pueblo). - Jesús ii Resumen Ins alación In e ac i a de Música Gene a i a En es e p oyec o hemos desa ollado una ins alación in e ac i a capaz de de- ec a la posición y los ges os de las manos de un usua io g acias a una cáma a y una ed neu onal en enada. Con es os ges os, el usua io in e ac úa con una música ambien al que e oluciona en di ec o median e a sonando. Es o lo hemos consegui- do g acias a un modelo de in e encia p e-en enado que hemos pe sonalizado pa a nues o obje i o. La música que suena sigue la iloso ía de la música gene a i a, y el sonido se c ea median e sín esis g anula ; odo es o g acias a di e en es p og amas que hemos conec ado en e sí, de mane a que los da os ob enidos de los ges os sean aducidos en a iaciones de los pa áme os de la música a iempo eal. De es a mane a, se gene an ex u as sono as en base a unos audios y p ese s p e- gua dados y, g acias a los mensajes ecibidos de la ed neu onal, se puede in e ac ua de múl iples mane as con es e sonido gene ado. Po o o lado, a es e sonido se le aplican e ec os de e e b y ecualización, dándole mayo iqueza. El esul ado: enemos es ablecidas las bases pa a gene a un ambien e sono o e olu i o en el cual se in oluc a el usua io, c eando su p opio sonido haciendo ges os y mo imien os en el ai e. Es e p oyec o p e ende ace ca a un usua io inexpe o al mundo de la música ambien al y pe mi i le c ea , u ilizando la In eligencia A i icial no como sus i u o, sino como he amien a c ea i a. Se a a de un abajo con el aspec o écnico de la p og amación y el en enamien o de un modelo, así como el aspec o expe imen al y c ea i o de la in o má ica musical. También se p e ende explo a el po encial de la usión de odas es as he amien as y lo compac o y po able que puede se el esul ado. Palab as cla e Música Gene a i a, Sín esis G anula , Open Sound Con ol, Modelo de In e en- cia, MediaPipe, Ins alación In e ac i a, Py hon, JUCE, Jupy e No ebook, Machine Lea ning ix Índice de ablas 6.1. Resul ados de las mé icas . . . . . . . . . . . . . . . . . . . . . . . . 31 8.1. Pa áme os asociados con los di e en es ges os y manos. OR =pa á- me o de O ilRi e ; EC =pa áme o de Emission Con ol . . . . . . . 44 x ii Cap´ ı ulo 1 In oducción “No es el des ino lo que impo a. Es el cambio de escena io.” — B ian Eno En e sus cuasi in ini os ámbi os y aplicaciones, en la e a digi al ac ual la in o - má ica es á ue emen e enlazada al a e en odas sus disciplinas; más aún hemos is o es o en los úl imos años, siendo es igos de cómo la in eligencia a i icial es capaz de c ea ob as a ís icas que algunos conside a ían dignas de un se humano. Sin ahonda en es e complicado e eno, desde hace décadas la ecnología digi al se ha a aigado en una de las sie e bellas a es del mundo: la música. Tan o es es o así que la ecnología es undamen al desde su c eación (c eación de sonidos, g aba- ción, composición, p oducción...) has a su consumo (di usión, en a, modi icación, ep oducción...). Conc e amen e, donde más des aca el uso de la ecnología digi al es en el géne o de la música elec ónica, que se basa en el uso de ins umen os y ecnología digi al pa a su p oducción e in e p e ación. En ocándonos de ini i amen e en la cla e de es e p oyec o, amos a in oduci la pied a angula del mismo: la música gene a i a [1]. Sin en a muy en de alle, pues le dedica emos un capí ulo en e o más adelan e, la música gene a i a es p ác icamen e una analogía a la in o má ica: la idea cla e es que el au o c ea una se ie de eglas, pod íamos deci que las “p og ama”, y es en su ep oducción que, siguiendo dichas eglas, se c ea la ob a; es a ob a, como ya e emos, puede se dis in a y única cada ez que se ep oduzca, lo que le da una mayo iqueza y genialidad a es e concep o de la música elec ónica. Exis en miles de écnicas pa a c ea es a música gene a i a, siendo una de ellas la sín esis g anula [2], la cual desa olla emos en p o undidad más adelan e. En e- sumen, la cla e de es a écnica es c ea ex u as o e en os acús icos en base a co os g anos de sonido. Va iando la du ación y densidad de es os g anos es posible c ea sonidos complejos que e olucionan dinámicamen e. Recupe ando el ema de la in eligencia a i icial, hoy en día es án en boca de odos las IAs gene a i as, que sus i uyen el aspec o c ea i o humano del a e, pe o 1 2Capí ulo 1. In oducción ese no es el único en oque que se puede da a una he amien a an po en e como una ed neu onal (de nue o, end á su p opio capí ulo más adelan e). Una mane a muy in e esan e de implemen a es a ecnología en el ámbi o mu- sical es en ena un modelo pa a que un usua io pueda in e ac ua con sus ges os con un sis ema que, a su ez, sea el que c ee es a música gene a i a. Así, en ez de u iliza la in eligencia a i icial pa a sus i ui al humano, es a puede se empleada como una he amien a pa a que sea el humano quien gene e a e. Con odo es o sob e la mesa, ¿cómo se puede comunica un modelo de in e encia con un sin e izado g anula ? Pues bien, en el mundo de la música digi al exis e un p o ocolo de comunicación casi an u ilizado como MIDI que es el p o ocolo Open Sound Con ol (OSC) [3]. Es e es un mé odo de comunicación lige o, lexible, muy p eciso y de baja la encia o ien ado a la in e p e ación de música en iempo eal. Tiene su p opio o ma o y codi icación, al que dedica emos un capí ulo más adelan e. 1.1. Mo i ación La idea undamen al en es e p oyec o es que el usua io inal, sin necesidad de ene un conocimien o musical p e io, sea capaz de in e ac ua in ui i amen e con un sis ema musical con unos p ese s y sonidos p e-con igu ados que puedan a ia y e oluciona . De es a mane a, eniendo noso os un con ol sob e el esul ado inal y sus lími es (pa a e i a , has a cie o pun o, silencios o sonidos desag adables y es iden es), el usua io end á cie os g ados de libe ad pa a la gene ación de la música, pe mi iéndole mo e se en un ango limi ado. El sonido c eado, sin emba go, se á algo luido y sin una es uc u a cla a; no se busca una pieza con un empo ijado o una pa i u a bien de inida, sino algo más bien ce cano a la música ambien [4], c eándose una ex u a y una a mós e a sono a cons an es a las que el usua io aplica á pequeñas a iaciones con sus ges os. En de ini i a, que emos una ins alación in e ac i a in ui i a que c ee una música ambien al y cinemá ica, de mane a que el usua io, sin necesidad de sabe lo que es á cambiando, pueda escucha lo y se sien a pa e de la ob a. En es e p oyec o buscamos in oduci a usua ios sin expe iencia en el ámbi o de la música ambien al, o eciéndoles la posibilidad de c ea con el apoyo de la In eligencia A i icial, no como un eemplazo, sino como un ecu so c ea i o. La idea es uni el aspec o écnico de la p og amación y el en enamien o de modelos con el lado expe imen al y a ís ico de la in o má ica musical. Asimismo, buscamos explo a cómo la in eg ación de múl iples he amien as puede gene a esul ados compac os y ácilmen e anspo ables. 1.2. Obje i os Los obje i os del p oyec o son: En ena un modelo obus o capaz de econoce ges os. 1.3. Plan de abajo 3 Busca y explo a un so wa e de gene ación musical pa iendo de la écnica de la sín esis g anula . Plan ea la in e acción del usua io, median e los ges os de sus manos, con odos los posibles pa áme os musicales. Desa olla un p og ama que u ilice MediaPipe pa a de ec a los ges os y la posición de la mano. Es ablece una conexión clien e-se ido , u ilizando el p o ocolo OSC, en e el p og ama que hace la in e encia y el en o no enca gado de la música gene a i a. Habili a una ins alación in e ac i a en el salón p incipal de la Facul ad de In o má ica de la Uni e sidad Complu ense de Mad id. 1.3. Plan de abajo Una ez se plan ea on los obje i os p incipales del p oyec o is os en la sección an e io , se desa olló un plan de abajo pa a log a los en un cie o o den. 1.3.1. In es igación del da ase de ges os Pa a desa olla es e p oyec o, hubo una in es igación en la que e isamos a ios da ase s de ges os de manos p o enien es de dis in os si ios especializados (como lo son Kaggle [5] o HuggingFace [6]). Tu imos en cuen a a ias nociones, como la can idad de imágenes o los ges os en sí. 1.3.2. Explo ación de la c eación del modelo Una ez escogimos el da ase , se p ocedió a in es iga qué he amien as se u ili- za ían pa a la c eación del modelo, qué a qui ec u as de ed neu onal nos a o ecen o, incluso, si se puede usa un modelo p e-en enado pa a acili a el abajo. 1.3.3. Explo ación de g anulado es Al comienzo del p oyec o hubo un p oceso muy expe imen al de búsqueda, es- udio y desca e de dis in os so wa es ex e nos has a encon a el más iable y que más se adecua a a nues as necesidades; odo es e p oceso iene su p opio capí ulo más adelan e. 1.3.4. Expe imen ación con el en o no musical Una ez cen ados en el p og ama con el que inalmen e nos queda íamos, se sucedió de nue o un p oceso expe imen al y c ea i o de es udia dicho p og ama, en ende los dis in os pa áme os, explo a a ondo sus posibilidades y gene a ex- u as sono as icas e in e esan es. También se comenzó a in es iga cómo ecibe los mensajes OSC. 4Capí ulo 1. In oducción 1.3.5. Desa ollo del p og ama de econocimien o Una ez u imos el modelo en enado, debíamos c ea un p og ama que econo- cie a los ges os con la ayuda que nos p opo ciona MediaPipe. Es e desa ollo debe se escalable y con el su icien e endimien o pa a ene una la encia baja y que el usua io pueda ene una expe iencia in e ac i a luida. 1.3.6. De inición de los mensajes Llegados a es e pun o, debíamos conc e a el o ma o que end ían los mensajes OSC y cómo in e ac ua ía cada ges o con los dis in os pa áme os del g anulado . 1.3.7. Es ablecimien o de la conexión ía OSC Conociendo el o ma o de los mensajes que se an a manda , se debe desa olla una es uc u a clien e-se ido , de mane a que el p og ama de econocimien o de ges os en íe los esul ados de la in e encia con el o ma o aco dado a un se ido que edi igi á es os mensajes a los p og amas que gene an la música. 1.3.8. Re inamien o de la in e acción ges ual Una ez u imos el sis ema comple o diseñado, debíamos puli odos sus elemen- os: que la in e encia de los ges os se hicie a de mane a p ecisa y consis en e, que no su gie an p oblemas de la encia ni de endimien o du an e la ejecución, que los ges os ue an in ui i os y a ec asen a pa áme os no ables y que la música esul an e ue a ag adable e in e esan e. 1.4. Es uc u a de la memo ia En es a sección se e á cómo es á di idido el documen o y se da á una pequeña explicación de en qué consis e cada capí ulo. Capí ulo 1 - In oducción: se explica la mo i ación del p oyec o, los obje i- os del desa ollo, el plan de abajo que se siguió y, po úl imo, la es uc u a del documen o. Capí ulo 2 - Es ado de la Cues ión: se e isan a ios p oyec os an e io- es elacionados con elemen os undamen ales de es e abajo, como lo son la de ección de ges os, la música gene a i a y la p opias ins alaciones musicales in e ac i as. Capí ulo 3 - ¿Qué es la Música Gene a i a?: se explica en ex ensión qué es la musica gene a i a, desde su o igen y popula ización has a mé odos, aplicaciones y ejemplos. Capí ulo 4 - Sín esis G anula : se de ine la écnica de la sín esis g anula y sus di e sas aplicaciones en el ámbi o de la música gene a i a. 1.4. Es uc u a de la memo ia 5 Capí ulo 5 - Selección del So wa e a U iliza : se mues a una de las e apas expe imen ales de es e abajo, en la que se p oba on dis in os so wa es independien es que se emplea on en la ins alación del p oyec o. Capí ulo 6 - In e encia y En enamien o de Ges os: se p esen an las he amien as enca gadas de la in e encia de los ges os y cómo se aplican los esul ados de dichas in e encias, Además se explican cómo se en enó el modelo u ilizado pa a la de ección de los ges os de las manos. Capí ulo 7 - Conexión OSC: se explica el p o ocolo OSC y su uso pa a el en ío/ ecepción de los dis in os pa áme os. Capí ulo 8 - Ins alación Musical: se de ine la ins alación comple a de es e p oyec o, euniendo odo lo explicado an e io men e. Capí ulo 9 - Conclusiones y T abajo Fu u o: se esume el esul ado inal del p oyec o, qué obje i os se cumplie on, cuáles no y el posible abajo a u u o que deja. Cap´ ı ulo 2 Es ado de la Cues ión En es e capí ulo e isa emos algunos p oyec os y es ilos musicales ya exis en- es, así como di e sas ins alaciones musicales in e ac i as; analiza emos dis in os ejemplos pa a e la ecnología, el diseño sono o y las écnicas in e ac i as que han implemen ado pa a c ea expe iencias inme si as y pa icipa i as. Con es o, pod emos en ende la base de lo que se quie e log a en es e p oyec o. Podemos comenza hablando de una ob a clásica ompedo a que, aun empo al- men e lejana al concep o de la música gene a i a, e a en espí i u lo que pos e io - men e sen a ía las bases de es e es ilo de composición. Es a ob a no es ni más ni menos que “In C”, compues a en 1964 po Te y Riley pa a un núme o inde inido de in é p e es. Lo in e esan e de la pieza son sus di ec ices de in e p e ación: “Todos los in é p e es ocan a pa i de la misma página de 53 pa ones melódicos ocados en secuencia. Cualquie núme o de ins umen os de cualquie ipo puede oca . Todos los in é p e es deben oca es ic a- men e en i mo, y es esencial que odos oquen cada pa ón con cuidado. Se puede supone que cada pa ón se epe i á du an e 45-90 segundos o más. Es muy impo an e que los in é p e es se escuchen a en amen e en e ellos, incluso pa ando ocasionalmen e a escucha . También es impo an e no ap esu a se de un pa ón a o o, sino es a en cada uno lo su icien e pa a en elaza se con o os pa ones que es án sonando. A medida que a anza la in e p e ación, los in é p e es no deben sepa a se unos de o os más de 2 o 3 pa ones. El conjun o puede se apoyado po un pulso de co chea ocado en los Do agudos de un piano o un ins umen o de pe cusión.” [7] Como se puede supone , una ob a como es a hace de su in e p e ación una a en- u a única cada ez, cen ada en la con ianza y coo dinación en e sus in é p e es1 2. 1In e p e ación de In C po la o ques a de la escuela Juillia d: h ps://www.you ube.com/ wa ch? =u7IE SweXpk 2In e p e ación de In C po Te y Riley y el g upo S a gaze: h ps://www.you ube.com/ wa ch? =lJPJywW yGo 7 14 Capí ulo 4. Sín esis G anula po ello que decidimos cen a nos en ecnologías de es e es ilo. [17] 4.2. Cu is Roads y la sín esis g anula Cu is Roads ha sido una igu a des acada en la his o ia de la sín esis g anula . No solo su abajo en el campo ha sido inno ado , sino que ambién ha ayudado a solidi ica la écnica como un elemen o undamen al en la p oducción de música elec ónica y expe imen al. Con su lib o “Mic osound” de 2001, que se pod ía con- side a un abajo impo an e sob e la sín esis g anula y los mé odos elacionados con la manipulación de sonido a escala mic o empo al, Roads explo a cómo se pue- den usa los g anos pa a c ea nue os ipos de sonido y música. Su abajo se basa, en gene al, en la p emisa de que cada g ano es lo su icien emen e pequeño como pa a se conside ado una unidad undamen al de sonido. Mezclando y ans o man- do los g anos de es a mane a, se pueden c ea ex u as sono as complejas que son comple amen e incon encionales espec o a la música adicional. [18] Roads ambién ha in es igado la posibilidad de la sín esis g anula en ma e ia de música gene a i a, ya que la capacidad de p oduci y maneja miles de g anos de sonido al mismo iempo en iempo eal pe mi e p oduci paisajes sono os que cambian con el iempo. En sus ob as, como “Poin Line Cloud” de 2005, Roads de- mues a cómo la sín esis g anula se puede emplea pa a o igina es uc u as sono as complejas que cambian de mane as imp edecibles, el ac o p incipal de la música gene a i a. [19] 4.3. Aplicaciones de la sín esis g anula en la música gene a i a La sín esis g anula se ha con e ido en una he amien a esencial pa a compo- si o es y a is as que abajan en música gene a i a, po su capacidad de p oduci sonidos complejos y en cons an e ans o mación. Algunas de las aplicaciones más des acadas de la sín esis g anula en es e ámbi o incluyen: 1. C eación de ex u as e olu i as: la capacidad de la sín esis g anula pa a gene a ex u as densas y en cons an e cambio es ideal pa a la música ge- ne a i a, donde la a iación con inua es una ca ac e ís ica undamen al. Al manipula los pa áme os de los g anos, como su densidad, du ación, o e- cuencia, el composi o puede c ea sonidos que e olucionan o gánicamen e a lo la go del iempo. 2. Manipulación empo al y espacial: la sín esis g anula pe mi e un con- ol de allado sob e el iempo y el espacio del sonido. Po ejemplo, los g anos pueden se dispe sados en es é eo, c eando paisajes sono os en ol en es. Asi- mismo, el iempo puede se es i ado o comp imido, lo que pe mi e explo a di e en es dimensiones empo ales en la música gene a i a. 4.3. Aplicaciones de la sín esis g anula en la música gene a i a 15 3. In e acción en iempo eal: En la música in e ac i a, la modi icación de los pa áme os en iempo eal es c ucial. La sín esis g anula , especialmen- e cuando se implemen a en so wa e o ha dwa e especializado, pe mi e a los a is as manipula los sonidos en i o, espondiendo a o os elemen os gene- a i os o a la in e acción del público. Es a lexibilidad es ines imable en la c eación de ob as gene a i as que deben adap a se a en o nos cambian es o a la pa icipación ac i a del oyen e. 4. T ans o mación sono a: La sín esis g anula es ambién ú il pa a ans o - ma sonidos g abados o sin e izados en o mas nue as. Po ejemplo, un simple sonido puede se ans o mado en una ex u a comple amen e di e en e al se p ocesado de o ma g anula , lo que ab e un as o campo de posibilidades pa a la expe imen ación sono a en con ex os gene a i os. Cap´ ı ulo 5 Selección del So wa e a U iliza Exis en miles de so wa es o ien ados al desa ollo musical, en e DAWs (es a- ciones de abajo de audio digi al), plugins, p og amas s and-alone, e c. Aun con- c e ando en música gene a i a y sín esis g anula , la a iedad es as ísima. En es e capí ulo amos a habla de los p og amas de música gene a i a y elacio- nados que hemos encon ado y es udiado a lo la go del desa ollo del p oyec o, con cuáles nos hemos quedado, y cuáles inalmen e hemos desca ado y po qué. Es e ha sido un p oceso muy expe imen al, de p ueba y e o , has a queda nos con el que se ía el en o no inal. 5.1. Gene ación de la música Inicialmen e u imos en conside ación dos p og amas: Cecilia 5 y Emission Con- ol 2, ambos cen ados en la sín esis g anula pa a la p oducción de ex u as sono as. También nos plan eamos o as al e na i as como: Nodal: [20] iene un concep o muy in e esan e de c eación musical pe o, apa e de se un so wa e de pago, se alejaba comple amen e de la sín esis g anula y no encajaba en nues o sis ema. Wo ja: [21] es un sis ema g a ui o con o ma os plugin e independien e muy po en e de música gene a i a en i o. PolyGAS: [22] un plugin de sín esis g anula muy comple o e in e esan e que in en amos hace unciona en la DAW g a ui a Reape , pe o es á desac uali- zado (la úl ima e sión es á hecha pa a Windows XP) y se colgaba a los pocos segundos de encende lo. The Mangle: [23] o o plugin de sín esis g anula que, sob e el papel, pa e- cía muy in e esan e, pe o que no pudimos consegui ya que ambién es aba desac ualizado y su equipo c eado , Sound Gu u, ya no exis e. G anula o III: [24] una posibilidad que manejamos ue implemen a el sis- ema con una DAW que incluye a un plugin de sín esis g anula . Más especí i- 17 18 Capí ulo 5. Selección del So wa e a U iliza camen e, el plugin “G anula o III ” pa a Able on, pe o es e so wa e equie e de una licencia de pago. 5.1.1. Cecilia 5 Cecilia 5 es “un en o no de p ocesamien o de señales de audio. [...] incluye mó- dulos p opios pa a e ec os de sonido y sín esis” [25]. Es á comple amen e esc i o en Py hon y u iliza el mo o de audio pyo, un po en e módulo pa a p ocesa señales de audio. Figu a 5.1: In e az de Cecilia 5 con el módulo Ul ima eG aine Cecilia es un p og ama muy po en e y comple o, pe o su complejidad jugaba en nues a con a al ejecu a lo al mismo iempo que la in e encia, dando p oble- mas de endimien o; po o a pa e, la conexión median e OSC no es aba del odo co ec amen e implemen ada ni documen ada, y ambién su ía de p oblemas de endimien o. 5.1.2. Emission Con ol 2 Emission Con ol 2 es un so wa e desa ollado po Cu is Roads y o os cola- bo ado es, diseñado pa a compone y manipula sonido usando sín esis g anula en iempo eal. Es e p og ama, esc i o en C++, iene un endimien o mucho mejo cuando ejecu- amos odo el conjun o del p oyec o, po lo que decidimos cen a nos en él y explo a odo su po encial. Aunque equie e bas an e ensayo y calib ado ob ene sonidos y ex u as ag adables e in e esan es con Emission, as abaja en p o undidad con él y en ende odos sus pa áme os, nos dimos cuen a de que es un so wa e muy po en e y e sá il. En la Figu a 5.2 podemos e su in e az g á ica. Pa a en ende los p incipales pa áme os de Emission Con ol, amos a hace e e encia a su manual (pa a mayo de alle, éase el mismo en la bibliog a ía [26]): 1. G ain Ra e [0.1, 100]: Tasa de emisión de los g anos po segundo. 5.1. Gene ación de la música 19 Figu a 5.2: In e az de Emission Con ol 2 en uncionamien o 2. Asynch onici y [0, 1]: G ado de asinc onía en la emisión de los g anos. La densidad de los g anos es la misma an o si el lujo es sinc ónico como asinc ónico. En un lujo pe ec amen e sinc ónico, los g anos se siguen unos a o os en in e alos pe iódicos. Un lujo asinc ónico se andomiza en el iempo. 3. In e mi ency [0, 1]: G ado de in e upción del lujo de g anos, indepen- dien emen e de si el lujo es sinc ónico o asinc ónico. Una al a in e mi encia educe la densidad de los g anos. 4. S eams [1, 12]: Núme o de lujos pa alelos de g anos. Los g anos de nue os lujos se inse an en e los g anos exis en es. La densidad gene al de g anos es un p oduc o de la asa de g anos, la du ación de los g anos y el núme o de lujos. 5. Playback Ra e [-2, +2]: Cambia la elocidad a la que cada g ano ep oduce el a chi o de sonido uen e, lo que a ía el ono y/o la di ección de lec u a. 6. Fil e Cen e [60, 5000]: F ecuencia cen al en he cios de un il o paso- banda. Cada g ano se il a po sepa ado. 7. Resonance [0, 1]: Ajus a el alo Q o la esonancia del il o. A un alo de 1 gene a una onda sinusoidal. 8. Sound File:Selecciona el a chi o de sonido a g anula . Se pueden ca ga múl iples a chi os de sonido y gua da p ese s de sonidos. Los usua ios pueden mo e el deslizado pa a cambia en e los a chi os de sonido ca gados. La selección del a chi o ambién puede modula se median e un LFO. 9. Scan Begin [0, 1]: Con ola el pun o de inicio en el bú e de sonido pa a co- menza la g anulación. Es un alo ela i o, donde 0 indica el inicio del a chi o de sonido, 0.5 indica el pun o medio y 1.0 indica el inal, independien emen e de la longi ud del a chi o de sonido seleccionado. 20 Capí ulo 5. Selección del So wa e a U iliza 10. Scan Range [-1, +1]: De e mina qué longi ud del a chi o explo a . Un alo de 1 signi ica explo a odo el a chi o. Un alo de 0 man iene el escáne en el luga del pun o de inicio de la explo ación. También se pueden es ablece alo es nega i os pa a ex ende el ango a la izquie da del pun o de inicio de la explo ación. 11. Scan Speed [-2, +2]: De e mina qué an ápido se explo a el a chi o y en qué di ección. Es o es independien e del Playback Ra e, que cambia el ono de los g anos indi iduales. Puede se 0, po ejemplo, en cuyo caso se epi e un solo g ano. De e mina el cambio de ono y si el g ano se lee hacia adelan e o hacia a ás. 12. G ain Du a ion [0.01, 1000]: Con ola la du ación del g ano en milisegun- dos. La du ación mínima del g ano aho a depende de la asa de mues eo, que es 2000/Sample Ra e. Po ejemplo, si la asa de mues eo es 44.1 kHz, la du- ación mínima del g ano es ap oximadamen e 0.045 ms. Si la asa de mues eo es 96 kHz, la du ación mínima del g ano es ap oximadamen e 0.021 ms. 13. En elope Shape [0, 1]: De e mina la o ma de la en ol en e del g ano. Con alo 0 es a iene un a aque ab up o y decaimien o exponencial o expodec; en el medio oma o ma de campana; con alo 1 es un expodec in e ido. 14. Pan [-1, +1]: Posición espacial de los g anos. -1 es izquie da. 15. Ampli ude [-60, +24]: Ajus a la ampli ud de salida en decibelios (dB). Todos es os pa áme os pueden se modulados en base a oscilado es de baja ecuencia (LFOs). En la sección MODULATION CONTROLS se puede asigna el ango de es a modulación, y en la sección LFO CONTROLS se especi ican los pa áme os de los oscilado es pa a selecciona el ipo de modulación. Además, cabe des aca lo bien implemen ada que es á en Emission Con ol la conexión con OSC y su ácil comp ensión, como se puede obse a en la Figu a 5.3; es o nos pe mi ió diseña la a qui ec u a enca gada de in e ac ua con odos sus pa áme os, que explica emos más adelan e. Emission Con ol pe mi e maneja median e OSC odos los deslizado es, la ca - ga de p ese s, inicia /de ene la g abación y modi ica la ca pe a y el nomb e del iche o de salida de las g abaciones. En el menú de la igu a 5.3 podemos especi ica la di ección IP, el pue o y el iempo de imeou de la conexión OSC; más abajo podemos asigna el add ess del mensaje ( odo es o se explica á en el capí ulo 7) a cada pa áme o y, si lo necesi amos, mapea el alo ecibido. Una de las ca ac e ís icas más des acables de es e p og ama son los p ese s, en los que podemos gua da con igu aciones especí icas de pa áme os; de es a mane a, enemos un mayo con ol sob e el esul ado inal, pudiendo almacena múl iples con igu aciones que sabemos que suenan bien y pe mi iendo al usua io inal na ega en e ellas y aplica les pequeñas a iaciones. Emission ambién nos pe mi e hace 5.2. So wa e de en u amien o de señal y e ec os 21 Figu a 5.3: Ven ana de con igu ación de la conexión OSC en Emission Con ol 2 ansiciones g aduales en e es os p ese s, pudiendo especi ica la du ación (mo ph ime) de las mismas. Pa a in es iga Emission Con ol 2 más a ondo, se puede encon a un manual en la desca ga que hay disponible en su Gi Hub [27], o bien, de mane a más esumida, se puede lee el comunicado de p ensa disponible en la web o icial de Cu is Roads [28]. 5.2. So wa e de en u amien o de señal y e ec os Una posibilidad que mejo a mucho el esul ado sono o es enlaza la salida de Emission Con ol a algún ipo de e e b/ecualizado pa a en iquece el esul ado inal; pa a consegui es o se u iliza on los siguien es p og amas y d i e s: Pedalboa d 2: es e so wa e es un hos de plugins VST diseñado pa a uso en i o. Es á basado en el código “audio plugin hos ” de JUCE [29] y se maneja de o ma modula e in ui i a como emos en la igu a 5.4; además, pe mi e con ola los pa áme os de es os plugins median e mensajes OSC. O ilRi e : plugin con e e b y ecualizado de 3 bandas que pe mi e simula la e e be ación de una pequeña o g an habi ación; es o añade ex u a y iqueza al sonido que c eamos en Emission Con ol. En la Figu a 5.5 podemos e su in e az. 22 Capí ulo 5. Selección del So wa e a U iliza Figu a 5.4: Pedalboa d 2 en uso, conec ando en adas y salidas de audio Figu a 5.5: In e az g á ica de O ilRi e VB-Cable: es e d i e es un disposi i o de audio i ual que unciona como cable de audio; es deci , conec a en adas y salidas de audio de mane a i ual pa a pode en elaza disposi i os de audio. De es a mane a, la conexión es la siguien e: la salida de audio de Emission Con- ol, quien gene a el sonido, se conec a median e VB-Cable a la en ada de Pedal- boa d; es e conec a dicha en ada a O ilRi e , que aplica e e b al sonido y saca el audio modi icado; inalmen e, es e audio se en ía a la salida deseada del disposi i o (po ejemplo, los al a oces). Es o se puede e más cla amen e en el esquema de la igu a 5.6. 5.2. So wa e de en u amien o de señal y e ec os 23 Figu a 5.6: Esquema del en u amien o del audio 30 Capí ulo 6. In e encia y En enamien o de Ges os 1hpa ams = ges u e_ ecognize . HPa ams ( 2expo _di = " ../ models " , 3epochs = 30, 4lea ning_ a e = 0.005 , 5ba ch_size = 32, 6l _decay = 0.999 7) 8 9model_op ions = ges u e_ ecognize . ModelOp ions ( 10 d opou _ a e = 0.2, 11 laye _wid hs = [256 ,128 ,64] 12 ) 13 14 op ions = ges u e_ ecognize . Ges u eRecognize Op ions ( 15 hpa ams = hpa ams 16 ) 17 18 model = ges u e_ ecognize . Ges u eRecognize . c ea e ( 19 ain_da a = ain_da a , 20 alida ion_da a = alida ion_da a , 21 op ions = op ions 22 ) Figu a 6.4: Con igu ación de MediaPipe Model Make P ecision:es la p opo ción de e dade os posi i os espec o al o al de p edic- ciones posi i as ( e dade as y alsas) que ealizó el modelo. P ecision = T P T P +F P Recall: es la p opo ción de los e dade os posi i os que iden i icó co ec amen e el modelo en compa ación con el o al de casos que e an ealmen e posi i os. Recall = T P T P +F N F1-Sco e:es la media a mónica de la p ecisión y el ecall. Es a media demues a si hay un buen balance en e es as dos mé icas. F1-Sco e = 2 ×P ecision ×Recall P ecision +Recall 6.3. In e encia de ges os 31 Figu a 6.5: Ma iz de con usión Mé ica Resul ado Accu acy 0.98 P ecision 0.99 Recall 0.98 F1-Sco e 0.99 Tabla 6.1: Resul ados de las mé icas Como podemos obse a en la abla 6.1, odos los esul ados es án po encima de 0.98, e lejando la obus ez y iabilidad del modelo pa a la clasi icación de los ges os. Es á equilib ado en su capacidad pa a iden i ica co ec amen e las clases posi i as y minimiza los e o es de p edicción. 6.3. In e encia de ges os En es a sección de alla emos cómo aplicamos las dis in as he amien as que o e- ce MediaPipe Task pa a ap o echa los esul ados ob enidos del econocimien o de los ges os. A su ez, expond emos una de p incipales clases que usa dicha he a- mien a y cómo es a ans o ma dichos esul ados en lo que luego se án los mensajes. 32 Capí ulo 6. In e encia y En enamien o de Ges os 6.3.1. MediaPipe Task En ando más en de alle en el amewo k, el cual dispone de g an can idad de unciones, podemos des aca el p ocesamien o de imágenes de en ada, el umb al de pun uación y la lis a de e ique as pe mi idas que, en esencia, son las ca ego ías que econoce el modelo. Además, iene múl iples pa áme os que se pueden con igu a pa a c ea el “Ges u eRecognize ” [38], que es la he amien a con la que se hace la in e encia. A con inuación, se mues an algunos de es os pa áme os: unning_mode: es ablece el modo de ejecución de la he amien a. Exis en es modos: •IMAGE: es el modo pa a en adas de una sola imagen. •VIDEO: es el modo pa a los o og amas decodi icados de un ídeo. •LIVE_STREAM : es el modo pa a una ansmisión en i o de en adas de da os. num_hands: can idad máxima de manos que pueden se de ec adas. min_hand_de ec ion_con idence: la pun uación de con ianza mínima necesa ia pa a la de ección de la mano espec o al modelo de de ección de la palma (si la pun uación de con ianza supe a es e umb al, se conside a que la mano ha sido de ec ada exi osamen e en la imagen). min_hand_ acking_con idence: la pun uación de con ianza mínima ne- cesa ia pa a que se conside e exi oso el seguimien o de la mano. esul _callback: con igu a el obje o de escucha pa a ecibi los esul ados de la clasi icación de o ma asínc ona. Solo se puede u iliza en el modo de ejecución LIVE_STREAM. 6.3.2. In e ence class Es a clase es la p incipal enca gada de la in e encia de los ges os, además de maneja los esul ados de es a in e encia a iempo eal. Explica emos paso po paso cómo se implemen ó el amewo k de MediaPipe Task y cómo se pe sonalizó pa a es e desa ollo. En la igu a 6.6 se puede e el agmen o de código u ilizado pa a la c eación del modelo de econocimien o de ges os, jun o con la unción asociada al pa áme o “ esul _callback”, la cual se explica á en de alle más adelan e. Una ez con igu amos el “Ges u eRecognize ” con la ayuda de OpenCV [39], se le an suminis ando ames de la ansmisión en i o al modelo mien as es e a ecogiendo el esul ado de mane a asínc ona en la unción “p in _ esul ”, que se ap ecia en la igu a 6.6 como pa áme o de “ esul _callback”. La unción “p in _ esul ” ecibe el “Ges u eRecognize Resul ” [40], que es donde se gua dan los esul ados de la in e encia como se mues a en la es uc u a de la 6.3. In e encia de ges os 33 1op ions = Ges u eRecognize Op ions( 2base_op ions = BaseOp ions( 3model_asse _pa h = 4" u ils ges u e_ ecognize . ask " 5), 6 unning_mode = VisionRunningMode . LIVE_STREAM , 7 esul _callback = sel . p in _ esul , 8num_hands = 2, 9min_hand_de ec ion_con idence = 0.2 , 10 ) Figu a 6.6: Con igu ación de Ges u eRecognize MediaPipe Task igu a 6.7 . Dichos esul ados son la in o mación ecopilada del ame in e ido, de la que se des aca la clasi icación del ges o, la la e alidad, los landma ks no malizados espec o a la imagen y los landma ks sin no maliza . Es a in o mación iene dada en o ma de ec o es, uno pa a cada mano de ec ada. 1mp. asks . ision . Ges u eRecognize Resul ( 2ges u es : 3Lis [Lis [ ca ego y_module . Ca ego y ]], 4 5handedness : 6Lis [Lis [ ca ego y_module . Ca ego y ]], 7 8hand_landma ks: 9Lis [Lis [ landma k_module . No malizedLandma k ]], 10 hand_wo ld_landma ks: 11 Lis [Lis [ landma k_module . Landma k ]] 12 ) Figu a 6.7: Con igu ación de Ges u eRecognize MediaPipe Task Aho a bien, pa a es e p oyec o debíamos en ia es os da os pa a aduci los en los pa áme os que a ec a ían a la c eación de la música gene a i a. A con inuación se explica án uno po uno y cómo se consiguie on a pa i de los esul ados de la in e encia: 1. Ges o in e ido: es el da o que se consigue de mane a más di ec a. Es sim- plemen e la ca ego ía del ges o in e ido; si bien, el “Ges u eRecognize Resul ” da como esul ado el nomb e del ges o, a es e le aplicamos una aducción numé ica pa a sea más ácil de en ia . 2. Coo denadas X e Y: pa a es os da os se u ilizan los landma ks no maliza- dos. Es os, a a és de una unción, se aducen a las coo denadas eales del 34 Capí ulo 6. In e encia y En enamien o de Ges os ame cap u ado, y pa a simpli ica solo se usa un pun o de la mano de ec ada (en es e caso, el no eno pun o de e e encia, éase la igu a 6.2). 3. Ges o numé ico: los ges os numé icos son gene ados de mane a a i icial usando las posiciones de los landma ks. Dichos ges os consis en en los núme os del uno al cinco (como se e en la igu a 6.8). Pa a consegui es o, se u ilizan los landma ks no malizados; es os, igual que en el apa ado an e io , pasan po un se ie de unciones, dando como esul ado los pun os de e e encia no malizados espec o al pun o de la muñeca. Con dichos alo es, se calculan las dis ancias en e a ios pun os de in e és (como lo son las pun as de los dedos) pa a de e mina si se es á ealizando el ges o. 4. La e alidad: es e es o o da o que se consigue de mane a di ec a. Aunque no se emplea en el mensaje, sí in luye en dónde se en ía, haciendo que los mismos ipos de da os se apliquen de mane a di e en e dependiendo de la mano. Figu a 6.8: Ges os numé icos Cap´ ı ulo 7 Conexión OSC El p o ocolo “Open Sound Con ol” (OSC) [3] es una codi icación de anspo e de da os que ue desa ollado pa a la comunicación en e o denado es, sin e izado es musicales y o os disposi i os mul imedia. Tiene como en ajas la independencia del medio de ansmisión y la lexibilidad pa a anspo a cualquie ipo de da o. P incipalmen e se ansmi e u ilizando el p o ocolo UDP. El o ma o del mensaje es á compues o po una cadena de by es que se di ide en es pa es: di ección, ipo de da os y con enido de los da os. Es as es pa es deben ene una longi ud en by es múl iplo de 4, pa a pode así con ola y man ene una lec u a e icien e en e los dis in os da os. La p ime a pa e del mensaje OSC es la di ección. Es a consis e en una cadena que comienza con el cá ac e “/”, que indica la je a quía de na egación, seguido de la cla e que indica po dónde el se ido a a en ia (dispa ch) el mensaje. La segunda pa e del mensaje empieza con el símbolo “,” seguido de una cadena compues a de dis in as le as. Cada una de es as le as iden i ica un ipo de da o que el mensaje anspo a. Po úl imo, la e ce a pa e del mensaje co esponde a los da os como al. Es os an unos seguidos de o os, sin by es de sepa ación, como se obse a en la igu a 7.1 . 7.1. En ío de mensajes Del en ío de mensajes se enca ga p incipalmen e la clase Sende usando la lib e- ía “py hon-osc” [41]. Es a lib e ía pe mi e c ea de mane a sencilla clien es UDP a los que se asignan una di ección ip y un pue o po donde se pod án manda mensajes OSC. Así mismo, es a lib e ía pe mi e c ea los mensajes con uno o a ios a gumen os y especi ica el OSC-add ess que a a ene inculado. En la igu a 7.2 se mues an las add ess que u ilizamos y en la 7.3 cómo se manda cada uno de los mensajes. Pa a e i a el uido de los mensajes y no hace cambios b uscos en la música, el Sende emi e el mensaje cuando haya econocido unas cie as eces seguidas el ges o. De es a mane a, e i amos el uido de in e encias e óneas pun uales. Aho a 35 36 Capí ulo 7. Conexión OSC Figu a 7.1: Mensaje OSC de ejemplo 1de __ini __ ( sel ,ip , po ): 2sel .clien = udp_clien . SimpleUDPClien (ip , po ) 3sel .OSC_ADDRESS1 = "/ mediapipe / handsR " 4sel .OSC_ADDRESS2 = "/ mediapipe / posR " 5sel .OSC_ADDRESS3 = "/ mediapipe / handsL " 6sel .OSC_ADDRESS4 = "/ mediapipe / posL " Figu a 7.2: Add ess OSC u ilizadas bien, en el caso de las coo denadas, implemen amos una cola ci cula : en es a se calcula el p omedio de odos los esul ados ob enidos y es dicho esul ado el que se en ía, haciendo que el cambio sea mucho más p og esi o. El en ío de los mensajes, como se ap ecia en la igu a 7.2 , se hace a a és de esas 4 OSC-Add ess. Como se ha comen ado en capí ulos an e io es, se usa la la e alidad de la mano pa a di idi los esul ados en de echa e izquie da, eniendo así dos conjun os de da os po cada mano: uno con los ges os ( an o in e idos como numé icos) y o o con las coo denadas de la mano. 7.2. El in e media io: JUCE 37 1de send_hands_le ( 2sel , ges :in , nume ics : in 3): 4msg = OscMessageBuilde ( add ess = 5sel .OSC_ADDRESS3) 6msg . add_a g ( ges ) 7msg . add_a g ( nume ics ) 8msg = msg. build () 9sel . clien . send ( msg ) Figu a 7.3: Ejemplo de Sende 7.2. El in e media io: JUCE Llegados a cie o pun o, nos dimos cuen a de que no e a su icien e con en ia di ec amen e los mensajes OSC del modelo a Emission Con ol y Pedalboa d di ec- amen e: necesi ábamos un in e media io capaz de p ocesa y een ia co ec amen e los mensajes. Es o nos da ía más libe ad y con ol sob e cómo pod ían a ec a los ges os del usua io a los dis in os pa áme os que eníamos disponibles. Fue con es e obje i o que comenzamos a abaja con JUCE: “JUCE es un amewo k mul ipla a o ma de código abie o esc i o en C++ pa- a c ea aplicaciones de esc i o io y mó iles, incluyendo plugins de audio y hos s de plugins en múl iples o ma os. [...] JUCE puede se usado como he amien a de c eación de p oyec os median e P ojuce , que pe mi e expo a p oyec os pa a Xco- de (macOS e iOS), Visual S udio, And oid S udio y Make iles de Linux, además de con ene un edi o de código uen e.”[42] JUCE posee un módulo c eado especí icamen e pa a a a con OSC, del cual nos ap o echamos pa a p ocesa esos mensajes, e o ma ea los y een ia los a Emission Con ol y a Pedalboa d (que ac úan cada uno como un se ido dis in o) según la mano, el ges o y los da os que es emos ecibiendo. Es e úl imo p oceso sucede g acias a la a qui ec u a que hemos p og amado pa- a el p ocesamien o de mensajes. Es a a qui ec u a es obus a an e posibles alsos mensajes, e o es de o ma o o alo es ue a de ango. Pa a ello, se implemen a un “juce::OSCRecei e ::Lis ene Wi hOSCAdd ess” que, al ecibi un mensaje OSC, in- oca el callback “oscMessageRecei ed”, que se puede e en la igu a 7.4. Es en es a unción que, dependiendo del add ess OSC ecibido, se oman los da os co espondien es y se llama al mé odo “ esend”. Es e mé odo, a su ez, es el que, según el da o ecibido, en ía el mensaje co espondien e a Emission Con ol o a Pedalboa d. En las igu as 7.5 y 7.6 se pueden e ejemplos de cómo se een ían la posición y el ges o. También se puede e cómo, en caso de e o , se de iene el mé odo y se lanza el mensaje co espondien e. 38 Capí ulo 7. Conexión OSC 1 oid MainComponen :: oscMessageRecei ed (cons juce :: OSCMessage & message ) { 2juce :: S ing e o = ""; 3 4i ( message . ge Add essPa e n () == "/ mediapipe / handsL") { 5le Hand . ges u e = message [0]. ge In 32 (); 6le Hand . nume ic = message [1]. ge In 32 (); 7 8i (! esend ( omAdd ess :: handsL , e o )) 9showConnec ionE o Message (e o ); 10 } 11 else i ( message . ge Add essPa e n () == "/ mediapipe / handsR ") { 12 igh Hand . ges u e = message [0]. ge In 32 (); 13 igh Hand . nume ic = message [1]. ge In 32 (); 14 15 i (! esend ( omAdd ess :: handsR , e o )) 16 showConnec ionE o Message (e o ); 17 } 18 else i ( message . ge Add essPa e n () == "/ mediapipe / posL ") { 19 le Hand .x = message [0]. ge In 32 (); 20 le Hand .y = message [1]. ge In 32 (); 21 22 i (! esend ( omAdd ess :: posL , e o )) 23 showConnec ionE o Message (e o ); 24 } 25 else i ( message . ge Add essPa e n () == "/ mediapipe / posR ") { 26 igh Hand .x = message [0]. ge In 32 (); 27 igh Hand .y = message [1]. ge In 32 (); 28 29 i (! esend ( omAdd ess :: posR , e o )) 30 showConnec ionE o Message (e o ); 31 } 32 else {} // Add ess unknown 33 } Figu a 7.4: Mé odo oscMessageRecei ed del código de JUCE 7.2. El in e media io: JUCE 39 1case MainComponen :: omAdd ess :: handsL : 2MainComponen ::cu en Ges u e. i s = 3( MainComponen :: handGes u e ) le Hand . ges u e ; 4 5swi ch (( MainComponen :: handGes u e ) 6le Hand . ges u e ) 7{ 8case MainComponen :: handGes u e :: none: 9i ( le Hand . nume ic > 0 && 10 le Hand . nume ic <= 5) 11 { 12 i (! sende EC2 . send ("/juce/EC2/ soundFile ", ( loa ) le Hand . nume ic )) 13 { 14 e="E o : could no send soundFile 15 o Emission Con ol 2"; 16 e u n alse ; 17 } 18 else {} // Nume ic unknown o none 19 } 20 21 b eak; 22 23 (...) 24 25 case MainComponen :: handGes u e :: humbDown : 26 i (! sende OR .send ("/ juce /OR/ bypassWe ", 27 1.0 )) 28 { 29 e="E o : could no send bypassD y on 30 o O ilRi e "; 31 e u n alse ; 32 } 33 34 b eak; 35 36 (...) Figu a 7.5: F agmen o del mé odo esend, con ejemplo del een ío de los ges os 46 Capí ulo 9. Conclusiones y T abajo Fu u o a la que se some ía el equipo que se nos p es ó, ya que es e enía que man ene en uncionamien o dis in os p og amas pesados (como lo es Emission Con ol) a la ez que la in e encia. Po o o lado, se nos p esen a on dis in os p oblemas de compa ibilidad con espec o a a ias lib e ías que u iliza MediaPipe y el sis ema ope a i o empleado (Windows 10), con lo que pasamos semanas es ancados en a ios pasos del desa ollo. A su ez, MediaPipe no o ece cie as ca ac e ís icas en el en o no de Windows que nos hubie an pa ecido in e esan es. También, debido a que Emission Con ol es un g anulado pu o sin ningún ipo de añadido, es complicado ob ene un sonido ico y ag adable. Es o nos lle ó a añadi o os e ec os como una e e b y un ecualizado , además de un concienzudo abajo de ap endizaje de cada pa áme o y sus e ec os en el sonido inal. Po úl imo, dado que u ilizamos múl iples p og amas con bases muy di e en es, encon amos un al o g ado de complejidad en el p oceso de comunica los odos. Es o se encon ó an o en el en ío de los da os median e OSC, ya que cada so wa e implemen a es os mensajes de mane a di e en e, como en el en u amien o de la señal de audio en e los p og amas enca gados del sonido. Pese a las di icul ades y el iempo de abajo, log amos cumpli los obje i os es ablecidos, consiguiendo median e la in e acción ísica y los ges os un esul ado musical en di ec o. 9.2. T abajo Fu u o En e o as cosas, somos conscien es del po encial desap o echado de JUCE. Es a es una he amien a ex emadamen e po en e y llena de posibilidades; el uso que le hemos dado ha sido ín imo en compa ación y c eemos que, po ejemplo, se ía posible inco po a en el in e media io un hos de plugins que sus i uya po comple o Pedalboa d 2 y VB-Cable. Respec o a la in e az de la ins alación, se ía iable implemen a una GUI o algún elemen o isual que esul e e escan e y alien e al usua io a segui p obando e in e ac uando con la ins alación. O a ía en la que el abajo se pod ía expandi se ía ealiza un es udio de la ins alación en el que se pudie a p egun a qué an in e ac i a o in ui i a es es a, midiendo si los ges os son áciles de asocia al pa áme o musical que modi ican o si los cambios de los pa áme os musicales son ap eciados po los usua ios. Todo es e es udio in oluc a ía ecoge el “ eedback” de cada pe sona que lo u ilice. Chap e 10 In oduc ion “I ’s no he des ina ion ha ma e s. I ’s he change o scene.” — B ian Eno Among i s almos in ini e ields and applica ions, in oday’s digi al e a compu e science is s ongly linked o a in all i s disciplines; e en mo e so we ha e seen his in ecen yea s, wi nessing how a i icial in elligence is capable o c ea ing a is ic wo ks ha some would conside wo hy o a human being. Wi hou del ing in o his complica ed e ain, o decades now digi al echnol- ogy has aken oo in one o he wo ld’s se en ine a s: music. So much so ha echnology is undamen al om i s c ea ion (sound c ea ion, eco ding, composi ion, p oduc ion...) o i s consump ion (di usion, sale, modi ica ion, ep oduc ion...). Speci ically, whe e he use o digi al echnology s ands ou he mos is in he gen e o elec onic music, which is based on he use o ins umen s and digi al ech- nology o i s p oduc ion and in e p e a ion. Focusing de ini i ely on he key o his p ojec , le ’s in oduce he co ne s one o he p ojec : gene a i e music [1]. Wi hou going oo much in o de ail, as we will dedica e a whole chap e o i la e , gene a i e music is p ac ically an analogy o compu e science: he key idea is ha he au ho c ea es a se ies o ules, we could say ha he “p og ams” hem, and i is in i s ep oduc ion ha , ollowing hese ules, he wo k is c ea ed; his wo k, as we will see, can be di e en and unique each ime i is ep oduced, which gi es a g ea e ichness and genius o his concep o elec onic music. The e a e housands o echniques o c ea e his gene a i e music, one o hem being g anula syn hesis [2], which we will de elop in dep h la e . In sho , he key o his echnique is o c ea e acous ic ex u es o e en s based on sho g ains o sound. By a ying he du a ion and densi y o hese g ains i is possible o c ea e complex sounds ha e ol e dynamically. Re u ning o he opic o a i icial in elligence, nowadays gene a i e AIs a e on e e yone’s lips, eplacing he human c ea i e aspec o a , bu ha is no he only 47 48 Chap e 10. In oduc ion app oach ha can be gi en o a ool as powe ul as a neu al ne wo k (again, i will ha e i s own chap e la e on). A e y in e es ing way o implemen his echnology in he musical ealm is o ain a model so ha a use can in e ac wi h his ges u es wi h a sys em ha , in u n, is he one ha c ea es his gene a i e music. Thus, ins ead o using a i icial in elligence o eplace he human, i can be used as a ool o he human o gene a e a . Wi h all his on he able, how does one communica e an in e ence model wi h a g anula syn hesize ? Well, in he wo ld o digi al music he e is a communica ion p o ocol almos as widely used as MIDI which is he Open Sound Con ol (OSC) [3] p o ocol. This is a ligh weigh , lexible, e y accu a e and low la ency communi- ca ion me hod gea ed owa ds eal- ime music pe o mance. I has i s own o ma and encoding, o which we will de o e a chap e la e . 10.1. Mo i a ion The undamen al idea in his p ojec is ha he inal use , wi hou any p e ious musical knowledge, will be able o in e ac in ui i ely wi h a musical sys em wi h p ese s and p e-con igu ed sounds ha can a y and e ol e. In his way, ha ing con ol o e he inal esul and i s limi s ( o a oid, o a ce ain ex en , silences o unpleasan and s iden sounds), he use will ha e ce ain deg ees o eedom o he gene a ion o he music, allowing him o mo e in a limi ed ange. The sound c ea ed, howe e , will be somewha luid and wi hou a clea s uc- u e; we a e no looking o a piece wi h a ixed empo o a well-de ined sco e, bu some hing close o ambien music, c ea ing a cons an sound ex u e and a mo- sphe e o which he use will apply small a ia ions wi h his ges u es. In he end, we wan an in ui i e in e ac i e ins alla ion ha c ea es an ambien and cinema ic music, so ha he use , wi hou needing o know wha is changing, can lis en o i and eel pa o he wo k. In his p ojec we seek o in oduce inexpe ienced use s o he ield o ambien music, o e ing hem he possibili y o c ea ing wi h he suppo o A i icial In- elligence, no as a eplacemen , bu as a c ea i e esou ce. The idea is o uni e he echnical aspec o p og amming and model aining wi h he expe imen al and a is ic side o music compu ing. We also seek o explo e how he in eg a ion o mul iple ools can gene a e compac and easily po able esul s. 10.2. P ojec Objec i es The objec i es o he p ojec a e: T ain a obus model able o ecognize ges u es. Tea ch and exploi a music gene a ion so wa e based on he g anula syn hesis echnique. 10.3. Wo kplan 49 Conside he in e ac ion o he use , by means o hand ges u es, wi h all he possible musical pa ame e s. De elop a p og am ha uses MediaPipe o de ec hand ges u es and hand posi ion. Es ablish a clien -se e connec ion, using he OSC p o ocol, be ween he in- e ence p og am and he en i onmen in cha ge o he gene a i e music. To enable an in e ac i e ins alla ion in he main hall o he Facul y o Com- pu e Science o he Complu ense Uni e si y o Mad id. 10.3. Wo kplan Once he main objec i es o he p ojec , as seen in he p e ious sec ion, we e es ablished, a wo k plan was de eloped o achie e hem in a ce ain o de . 10.3.1. Ges u e Da ase Resea ch To de elop his p ojec , he e was a esea ch in which we e iewed se e al hand ges u e da ase s om di e en specialized si es (such as Kaggle [5] o HuggingFace [6]). We ook in o conside a ion se e al no ions, such as he numbe o images o he ges u es hemsel es. 10.3.2. Explo ing he c ea ion o he model Once we chose he Da ase , we p oceeded o in es iga e which ools will be used o he c ea ion o he model, which neu al ne wo k a chi ec u es we a o o , e en, i a p e- ained model can be used o acili a e he wo k. 10.3.3. Explo a ion o g anula o s A he beginning o he p ojec he e was a e y expe imen al p ocess o sea ch- ing, s udying and disca ding di e en ex e nal so wa e un il we ound he mos eliable and he one ha bes sui ed ou needs; his whole p ocess has i s own chap e below. 10.3.4. Expe imen a ion wi h he musical en i onmen Once we ocused on he p og am we would inally s ay wi h, an expe imen al and c ea i e p ocess o s udying he p og am, unde s anding he di e en pa ame e s, exploi ing i s possibili ies and gene a ing ich and in e es ing sound ex u es ook place again. We also began o in es iga e how OSC ecei es messages. 50 Chap e 10. In oduc ion 10.3.5. De elopmen o he ecogni ion p og am Once we had he model ained, we had o c ea e a p og am ha would ecognize he ges u es wi h he help p o ided by MediaPipe. This de elopmen mus be scalable and wi h enough pe o mance o ha e a low la ency so ha he use can ha e a smoo h in e ac i e expe ience. 10.3.6. De ini ion o he messages A his poin , we had o speci y he o ma o he OSC messages and how each ges u e would in e ac wi h he di e en pa ame e s o he g anula o . 10.3.7. Es ablishing he connec ion ia OSC Knowing he o ma o he messages o be sen , a Clien -Se e s uc u e mus be de eloped, so ha he ges u e ecogni ion p og am sends he esul s o he in e ence wi h he ag eed o ma o a se e ha will edi ec hese messages o he p og ams ha gene a e he music. 10.3.8. Re inemen o he ges u al in e ac ion Once we had he comple e sys em designed, we had o polish all i s elemen s: ha he ges u e in e ence was accu a e and consis en , ha he e we e no la ency o pe o mance p oblems du ing execu ion, ha he ges u es we e in ui i e and a ec ed no able pa ame e s, and ha he esul ing music was pleasan and in e es ing. 10.4. Documen s uc u e This sec ion will show how he documen is di ided and gi e a b ie explana ion o wha each chap e consis s o . Chap e 1 - In oduc ion: This chap e explains he mo i a ion o he p ojec , he de elopmen objec i es, he wo k plan ha was ollowed, and inally, he s uc u e o he documen . Chap e 2 - S a e o he A : e iews se e al p e ious p ojec s ela ed o undamen al elemen s o his wo k, such as ges u e de ec ion, gene a i e music and in e ac i e music ins alla ions hemsel es. Chap e 3 - Wha is Gene a i e Music?: This chap e p o ides an ex- ensi e explana ion o wha gene a i e music is, om i s o igins and popula - iza ion o me hods, applica ions, and examples. Chap e 4 - G anula Syn hesis: de ines he echnique o g anula syn- hesis and i s a ious applica ions in he ield o gene a i e music. 10.4. Documen s uc u e 51 Chap e 5 - So wa e Selec ion: This chap e p esen s one o he expe i- men al s ages o he p ojec , whe e di e en independen so wa e ools used in he ins alla ion we e es ed. Chap e 6 - Ges u e In e ence and T aining: The ools esponsible o ges u e in e ence a e p esen ed, explaining how he esul s o hese in e ences a e applied, and how he model used o hand ges u e de ec ion was ained. Chap e 7 - OSC Connec ion: This chap e explains he OSC p o ocol and i s use o sending/ ecei ing a ious pa ame e s. Chap e 8 - Musical Ins alla ion: The comple e ins alla ion o his p ojec is de ined, b inging oge he e e y hing explained p e iously. Chap e 9 - Conclusions and Fu u e Wo k: summa ises he inal ou come o he p ojec , which objec i es we e accomplished, which we e no , and he possible u u e wo k i lea es o he u u e. Chap e 11 Conclusions and Fu u e Wo k To conclude, we will e iew wha we ha e achie ed h oughou his p ojec , he objec i es we ha e eached and wha emains as possible u u e wo k. Thanks o he a ious p og ammes we ha e used, we ha e managed o c ea e a gene a i e ambien music based on g anula syn hesis ha , wi h a i m base o sound en i onmen , a ies hanks o a use ’s in e ac ion and hand ges u es. In doing so, we ha e been able o emo e he andom elemen o gene a i e music and eplace i wi h human in e ac ion; in his way, each use o he p ojec will emain unique, no because o andomness, bu because o he na u al and spon aneous eac ion o each pe son. Wi h all his, and hanks o he equipmen o e ed by ou u o s, we ha e ins alled he whole sys em in a compac machine in he Facul y o Compu e Science, wi h he possibili y o being displayed in he main hall. This way, whoe e passes by and has a momen , can enjoy c ea ing music. In conclusion, we ha e succeeded in designing a comple e in e ac i e music sys- em ha , wi h good documen a ion, can be ins alled on a minimally powe ul ma- chine almos anywhe e. We ha e achie ed his by c ea ing ou own so wa e, w i en in di e en en i onmen s and languages, in conjunc ion wi h exis ing p og ammes and by shaping he in e ac ion be ween all hese independen elemen s. Al hough i is always a he aes he ic disc e ion o each use and each lis ene , we conside ha we ha e achie ed a inal esul o e y good sound quali y, uni ing echniques and achie ing e y ich, a ied and unique sound ex u es. All in all, we ha e been able o in es iga e and explo e he union o he echnical discipline o compu ing wi h he a o music, being able o b ing i close o a use who, wi hou needing o ha e ex ensi e knowledge o ei he a ea, can enjoy and eel in ol ed in he sound which, in he end, is in pa hei c ea ion. 11.1. Di icul ies One o he main di icul ies in his de elopmen was he la ency wi h which ges u e ecogni ion was pe o med. This was la gely due o he high load on he equipmen we bo owed, as i had o keep se e al hea y p og ams (such as Emission 53 54 Chap e 11. Conclusions and Fu u e Wo k Con ol) unning a he same ime as he in e ence. On he o he hand, we had di e en compa ibili y p oblems wi h espec o se e al lib a ies ha MediaPipe uses and he ope a ing sys em used (Windows 10), so we spen weeks s uck in se e al s eps o he de elopmen . A he same ime, MediaPipe does no o e ce ain ea u es in he Windows en i onmen ha we would ha e ound in e es ing. Fu he mo e, since Emission Con ol is a pu e g anula o wi hou any addi i es, i is di icul o ge a nice, ich sound. This led us o add o he e ec s such as a e e b and an EQ, plus a lo o pains aking wo k o lea n each pa ame e and i s e ec on he inal sound. Finally, due o he ac ha we used mul iple p og ams wi h e y di e en bases, we ound a high deg ee o complexi y in he p ocess o communica ing hem all. This was ound bo h in he sending o he da a ia OSC, as each so wa e implemen s hese messages di e en ly, and in he ou ing o he audio signal be ween he p og ams in cha ge o he sound. Despi e he di icul ies and he ime in ol ed, we managed o achie e he es- ablished objec i es, achie ing a li e pe o mance h ough physical in e ac ion and ges u es. 11.2. Fu u e Wo k Among o he hings, we a e awa e o he un apped po en ial o JUCE. This is an ex emely powe ul ool and ull o possibili ies; he use we ha e made o i has been iny in compa ison and we belie e ha , o example, i would be possible o inco po a e a plug-in hos in he in e media y o comple ely eplace Pedalboa d 2 and VB-Cable. Rega ding he in e ace o he ins alla ion, i would be easible o implemen a GUI o some isual elemen ha is e eshing and encou ages he use o con inue es ing and in e ac ing wi h he ins alla ion. Ano he way in which he wo k could be expanded would be o conduc a s udy o he ins alla ion in which one could ask how in e ac i e o in ui i e he ins alla ion is, measu ing i he ges u es a e easy o associa e wi h he musical pa ame e hey modi y o i he changes o he musical pa ame e s a e app ecia ed by he use s. This whole s udy would in ol e collec ing “ eedback” om each pe son using i . Con ibuciones Pe sonales Desde un inicio u imos cla o que es e p oyec o enía una di isión muy cla a: el modelo enca gado de lee los ges os y el conjun o de p og amas enca gado de c ea la música, con la unión en e ambos de la conexión OSC. G acias a es o, uimos capaces de di idi nos el abajo en e ambos desde el p incipio, de mane a que pudié amos abaja en pa alelo, sin bloquea nos el a ance el uno al o o. A con inuación especi ica emos cada uno cuáles ue on nues as con ibuciones pe sonales a lo la go del desa ollo del p oyec o. Samuel Asanza Mesa Me en oqué p incipalmen e en el apa ado de in o má ica musical, pues había cu sado el año an e io dicha op a i a y que ía aplica los conocimien os la misma. De es a mane a, y man eniéndome p incipalmen e en con ac o con el u o Jaime Sánchez, comencé a ecupe a el ma e ial sob e música gene a i a y sín esis g anula . Inicialmen e es udié y p obé los g anulado es Cecilia 5 y Emission Con ol 2, p o- bando dis in os sonidos de en ada y ocando los pa áme os. Uno de los p incipales obje i os que enía en men e e a el de encon a los lími es donde cada pa áme o hacía que el sonido gene ado ue a desag adable. Además del apa ado c ea i o, comencé a in o ma me sob e OSC e in es iga cómo en ia es os mensajes a cada g anulado , pues cada uno iene implemen ado es e p o ocolo de una mane a di e en e. En un inicio dejé de lado Emission Con ol pa a cen a me en Cecilia, ya que es e g anulado gene a un sonido ag adable e in e esan e sin mucho es ue zo, pues incluye más e ec os apa e de g anulación pu a. Po con a, me di cuen a de que Cecilia, al se más complejo, p esen aba p oblemas de endimien o. Además, cuando comencé a es uc u a la comunicación OSC, i que la aplicación de es e p o ocolo en Cecilia e a ealmen e ediosa, ya que es á mal implemen ado y agamen e documen ado, po lo que decidí busca al e na i as. En e es as al e na i as encon é las que hemos expues o en el capí ulo 5. De 55