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