scieee Open visual document viewer

Un instrumento virtual basado en síntesis granular para composición musical

Pastore Burgos, Nicolás

Abstract

El objetivo principal de este trabajo es desarrollar un instrumento virtual que, mediante un algoritmo de granulación sobre un archivo de sonido, cree nuevos sonidos para la composición musical de cualquier tipo de proyecto, como la composición de música techno, ambiental o para la composición de bandas sonoras para películas o videojuegos. Este modelo también se utiliza para modificar el timbre o duración de los sonidos. Para ello, se utiliza la síntesis granular, un modelo de producción de sonidos basado en la división de uno o varios sonidos existentes en muchos fragmentos o granos acústicos, que al reorganizarse, secuencial o en paralelo, generan un nuevo sonido. En este proyecto se utiliza un sampler para cargar los archivos, siendo este un programa digital que permite cargar un sonido y reproducirlo. Este instrumento también cuenta con un ecualizador, que actúa como una herramienta para controlar la ganancia de las frecuencias del sonido, al igual que un analizador de estas, tanto para el canal de sonido izquierdo como derecho. El instrumento funciona tanto como una aplicación independiente, standalone, como en formato VST, siendo el que utilizan los DAW, uno de los tipos de software más utilizados en la creación musical.

Full text

Un ins umen o i ual basado en sín esis g anula pa a composición musical A i ual ins umen based on g anula syn hesis o music composi ion Po : Nicolás Pas o e Bu gos T abajo de Fin de G ado G ado en Desa ollo de Videojuegos Facul ad de In o má ica Di igido po Jaime Sánchez He nández Mad id, 2021-2022 Ag adecimien os Quie o ag adece a Jaime po la paciencia in ini a que ha enido conmigo, a Ricky, S i en, Ca los y Ana po echa me una mano con la memo ia y habe es ado ahí cuando lo necesi aba, a Nacho po enseña me que es una bibliog a ía, a Diego y a mis p oduc o es po echa le un ojo y da le eedback, a la ca e a po habe me dado los conocimien os necesa ios pa a hace el p oyec o una ealidad, a mi amilia po habe me dado los ecu sos, habe leído mil eces la memo ia y el impulso de habe podido abaja y segui adelan e. 2 Au o ización y di usión de uso Se au o iza a la UCM (Uni e sidad Complu ense de Mad id) a di undi y usa el abajo ealizado con ines académicos y mencionado a los au o es, an o la memo ia como el código. Nicolás Pas o e Bu gos Mad id, 2021-2022 Es e documen o es a ealizado bajo licencia C ea i e Commons: “Reconocimien o- Compa i Igual 4.0 In e nacional”. 4 Índice gene al Resumen 9 Abs ac 11 1. In oducción 13 1.1. Mo i aciones ............................................. 13 1.2. Obje i os ............................................... 14 1.3. Es uc u adelamemo ia ...................................... 14 1. In oduc ion 16 1.1. Mo i a ion .............................................. 16 1.2. Objec i es............................................... 17 1.3. Documen s uc u e ......................................... 17 2. Es ado del a e 19 3. Me odología y ecnología 23 3.1. Me odologíadeT abajo ....................................... 23 3.2. Plani icacióndelp oyec o ...................................... 25 3.2.1. In es igación ......................................... 25 3.2.2. P ime con ac o con las ecnologías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2.3. Desa olloyP uebas..................................... 25 3.2.4. Documen ación de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3. Tecnologíasu ilizadas ........................................ 26 3.3.1. C++, JUCE, P ojuce y Audio Plugin Hos . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.2. VisualS udio2019...................................... 28 3.3.3. Gi ............................................... 28 3.3.4. T ello ............................................. 28 3.3.5. O e lea ............................................ 28 3.3.6. AdobePho oshop....................................... 28 4. Diseño de la aplicación 30 4.1. P incipiosy equisi os ........................................ 30 4.1.1. Sample ............................................ 30 4.1.2. Sín esisg anula ....................................... 30 4.1.3. Ecualizado .......................................... 30 4.2. Inspi ación .............................................. 31 4.3. Resul ado ............................................... 32 4.3.1. Sample ............................................ 33 4.3.2. Sín esisg anula ....................................... 33 4.3.3. Ecualizado .......................................... 34 4.4. Ejemplodeuso............................................ 35 6 Desa ollo de Videojuegos UCM 5. A qui ec u a e implemen ación del código 37 5.1. A qui ec u a ............................................. 37 5.2. PluginP ocesso ........................................... 37 5.2.1. FileBu e Playe ....................................... 39 5.2.2. G anula Sample ...................................... 40 5.2.3. EQP ocesso ......................................... 40 5.3. PluginEdi o ............................................. 40 6. Conclusiones y abajo u u o 43 6.1. Conclusiones y alo ación del p oyec o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.2. T abajoFu u o............................................ 44 6. Conclusions and u u e wo k 46 6.1. Conclusions and wo k e alua ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 6.2. Fu u ewo k.............................................. 47 Anexos 49 A. Manual de usua io G anula Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Índice de igu as 54 Bibliog a ía 55 7 Capí ulo 1 In oduc ion G anula syn hesis is a sound p oduc ion model based on he composi ion o new sounds by di iding an exis ing sound in o sec ions called acous ic g ains and ep oducing hem in a di e en o de han he o iginal. The o iginal sound can be om many sou ces, bu in his wo k a sample will be used o impo audio iles as he o igin, and o his eason he e m g anula sample will o en be used o e e o he ins umen . This can also be by syn hesis FM,RM, by wa e able o addi i e, among many o he s. This model has o he uses such as ex ending he leng h o a sound wi hou al e ing i s equency, o al e ing i s equency wi hou al e ing i s du a ion, use ul o p og ams like Au o une, which allow you o modi y he pi ch o one sound o help une some in e p e a ions. This p ojec also has an equalize , used o con ol he equencies o he esul ing sound. This allows o cu low and high equencies wi h a high-pass and low-pass il e , espec i ely, as well as a band il e , which allows you o con ol he gain o olume o a zone o equencies. The ins umen will also wo k in a DAW. A DAW, o Digi al Audio Wo ks a ion [3], is a compu e p og am used o digi ally c ea ing, composing, mixing, and mas e ing music. These p og ams usually wo k as a wo k en i onmen whe e VST, o Vi ual S udio Technology p og ams a e launched, which ac as ins umen s o sound e ec s. This p ojec is designed o be used bo h indi idually (s andalone) o as a VST. 1.1. Mo i a ion G anula syn hesis is one o he mos powe ul models o music c ea ion. This is capable o being used as a ool o modi y exis ing sounds o c ea e new ones as I ha e explained be o e. S ill i is one o he mos neglec ed music composi ion algo i hms. Tha ’s why I wan ed o c ea e a ool com o able enough o people who a en’ knowledgeable wi h he echnology o be able o disco e his model, and powe ul enough o c ea e sounds ha can be used in eal music p ojec s. I also wan ed o implemen a con ol o he en elope, ha is, he way in which he g ains s a and s op playing, as I obse ed ha he es o he so wa e wi h his model implemen ed does no usually expe imen wi h i s con ol. Fu he mo e, as a pe son who has been in ol ed wi h music o o e eigh yea s, and as a cu en compose o he ideo game company Mad C eam Games [5] and d umme o he band El Co al de los Quie os, I’ e wo ked on his p ojec wi h he in en ion and hope o being able o use his so wa e o ou nex ideo game Pain ing We he [6] and o u u e songs by he band. 16 Desa ollo de Videojuegos UCM 1.2. Objec i es The objec i e o his wo k is o c ea e a unc ional G anula Sample , wi h a g aphical in e ace ha esponds in eal ime and allows he modi ica ion o he model pa ame e s. These pa ame e s mus be he densi y o g ains playing a he same ime, hei gain, he ange om which he g ains can be ex ac ed om he ile, he ange o hei du a ion and he en elope ha hey use. In addi ion, i mus con ain an equalize wi h a low and high pass il e and a band il e o con ol he di e en equencies o he esul ing sound. I mus be able o be compiled bo h as s andalone, ha is, as an indi idual p og am and in VST o ma wi h he aim o being able o in eg a e i in o a DAW, speci ically, FL S udio , since i is one o he mos used Digi al Audio Wo ks a ion. 1.3. Documen s uc u e This epo is di ided in o se en chap e s, an annex and he bibliog aphy. This con ains links and e e ences o all sou ces o esea ch, wo k and echnologies used in he p ojec . The ollowing sec ions will discuss in g ea e de ail he concep s summa ized below: Chap e 1 - In oduc ion. A i s explana ion o he basic concep s o he p ojec is made and he mo i a ions ha led o he elabo a ion o his wo k a e de eloped as well as i s objec i e. Chap e 2 - S a e o he a . He e i is explained he uses o his echnique, i ’s p esen and i ’s u u e p ojec ion. Chap e 3 - Me hodology and echnology. The me hodology used o ca y ou he p ojec is explained and he echnologies used a e deepened. Chap e 4 - Applica ion Design. Analysis o he g aphic design o he in e ace, om he needs i sa is ies, inspi a ion and an example o use. Chap e 5 - Code a chi ec u e and implemen a ion. This chap e del es in o he compu e code o he p ojec . In i you will see wha a chi ec u e has been ollowed and i s di e en pa s and unc ionali ies. Chap e 6 - Conclusions and u u e wo k. In his, a e ospec i e o he wo k ha was done and he possible changes and imp o emen s ha could be made in u u e e sions a e analyzed. Annex. He e you can ind a use manual ha explains how o use he ins umen . Bibliog aphy. A collec ion o e e ences and hype links o he sou ces o he esea ch and echnologies used o c ea e he p ojec . This documen will be w i en en i ely in Spanish, wi h he excep ion o Chap e s 1, 7 and he Abs ac which will be ansla ed o English, ollowing he egula ions o he Final Deg ee P ojec s o he Complu ense Uni e si y o Mad id. 17 Capí ulo 2 Es ado del a e La sín esis g anula es un modelo de p oducción de sonidos desa ollado po Iannis Xenakis [7] y Cu is Roads [8, 9], y se basa en la c eación de sonidos nue os a pa i de la di isión de o os sonidos en secciones denominadas g anos acús icos o sonic g ains. Es os g anos suelen du a en e 10 y 50 ms (aunque pueden llega a se más la gos en unción del esul ado que se busque) y son comúnmen e colocados siguiendo un o den alea o io. En la igu a 2.1 se puede obse a una ep esen ación g á ica de es e p oceso. Además, muchos g anos suelen ep oduci se al mismo iempo, gene ando una mayo p o undidad en el sonido. Los esul ados de es a écnica suelen p oduci sonidos, man eniendo la ex u a y ca ác e del sonido o iginal. Muchos de los usos mode nos de es e ipo de écnicas de composición se des inan a música ambien al, pa a composiciones de bandas sono as de ideojuegos o películas y música elec ónica mode na, donde ha encon ado muy buena ecepción. También des acan su uso en las dis in as he amien as pa a la composición musical, como en la modi icación del imb e de un sonido o su du ación. Es as écnicas se pueden encon a po ejemplo en aplicaciones que ajus an la a inación de sonidos sin al e a su du ación como es el amoso p og ama Au o-Tune de An a es. El sonido puede o igina po un sin e izado , como uno FM, wa e able o sus ac i o, o puede p o eni de un sample , que pe mi i ía ca ga uno o a ios a chi os al mismo iempo. Un sample es un p og ama in o má ico que es capaz de ca ga y ep oduci a chi os de sonido en momen os de iempo conc e os. Es os se suelen u iliza desde la ep oducción de un sonido, a mesas de DJ, a un con ol mucho más p eciso como se e e lejado en los géne os como Hip-Hop,RnB y o os es ilos musicales mode nos que u ilizan écnicas digi ales de composición. Figu a 2.1: Rep esen ación isual de la di isión de un a chi o en g anos [15] En la igu a 2.2, podemos e las dis in as e apas de la sín esis g anula . P ime o se selecciona del o igen los g anos que se quie en ep oduci . A con inuación se le aplica una en ol en e, que ges iona la en ada y salida 19 Desa ollo de Videojuegos UCM del sonido añadiendo un adein y un adeou , que signi ican una en ada g adual de olumen al comienzo y al inal de un sonido espec i amen e. Po úl imo se suman los g anos con su en ol en e a la salida en un o den alea o io. La pa ame ización en mi p oyec o, ha decidido cen a se en la densidad de g anos que suenan al mismo iempo, en con ola la a iación de la longi ud de es os, la en ol en e que se les aplica y pode limi a una sección de e minada de donde se pueden ex ae los g anos del a chi o. Al igual que un con ol gene al de ecuencias con un ecualizado , pa a apo a más con ol del esul ado inal del sonido. Figu a 2.2: Resumen del p oceso de la sín esis g anula [16] En in e ne , se pueden encon a muchos p og amas de al o ni el que u ilizan es e algo i mo pa a la com- posición de nue os sonidos, simila al uso que se da en es e p oyec o. A con inuación se encuen an los p og amas que se han u ilizado como e e encia: Cecilia [10], Able on G anula o II [11], G anuRise [12] y AD055 Quan a 2 [13]. Cecilia es del que más ha se ido de inspi ación y pun o de e e encia, po se Open Sou ce, po su acilidad de uso y po se capaz de c ea muy buenos esul ados. En la igu a 2.3 podemos 20 Desa ollo de Videojuegos UCM obse a un ejemplo de Cecilia en uncionamien o, en el que se puede obse a su excelen e con ol de la au oma ización en la pa e supe io , y de los con olado es en la pa e in e io que muchos de ellos decidí implemen a en mi ins umen o ambién, como es la densidad de g anos sonando en cada momen o. Figu a 2.3: Una cap u a de Cecilia [10] Muchos músicos en la sín esis g anula como el u u o de la música elec ónica y de la música ambien al. Es a ecnología cada ez es á siendo más u ilizada po odo ipo de a is as y cada ez empieza a gana se más su espacio en e las g andes o mas de sín esis de sonido, no solo po sus usos écnicos explicados an e io men e, sino po su capacidad an po en e y ápida de c ea sonidos muy icos en ex u as y p o undidad. 21 Capí ulo 3 Me odología y ecnología 3.1. Me odología de T abajo Sc um es una me odología ágil i e a i a de abajo diseñada pa a pode abaja en un equipo de mane a óp ima y e icien e. Es a ha sido la me odología que he u ilizado a lo la go de oda la ca e a desde el p ime cu so y es la que he u ilizado como base. Sc um se basa en espe a un ciclo de abajo, llamado sp in de una can idad de iempo de e minado po el equipo (siendo una, dos o más semanas) en las que se ija unas a eas conc e as que se plani ican e mina en ese iempo. Pa a ello suele habe euniones ecuen es (dia ias o cada unos pocos días) donde se pone en común el abajo ealizado po el equipo y qué p oblemas han habido pa a pode ac ualiza al es o. Aún así, al se una me odología cen ada en el abajo en equipo, la he seguido como guía pa a di igi , o ganiza y p io iza el abajo. He hecho es o po se un p oceso o ien ado a la e iciencia y po su en oque i e a i o sob e el p oyec o, que le da mucha mayo lexibilidad a habe seguido uno secuencial como se ía un modelo en cascada. Además, es oy muy amilia izado con es e sis ema de abajo po habe lo u ilizado ex ensamen e du an e mis cua o años cu sando el g ado, po lo que me esul ó na u al segui lo. De es a me odología he u ilizado los siguien es elemen os, ajus ándose a mis necesidades: P oduc Backlog: También conocido como Icebox, es donde se ag upan odas las a eas que quedan po hace . El p oceso suele pa i de un documen o de diseño en el que se explica y desa olla el p oyec o, y se con ie en en una se ie de a eas en ocadas desde la pe spec i a del usua io, conocidas como his o ias de usua io. Es as a eas queda án plani icadas en unción de su di icul ad y es a án diseñadas pa a se lo más concisas y p ecisas posibles. Po ejemplo, en es e p oyec o habían his o ias como: implemen a el powe -c oss ade pa a suma los g anos en e sí, añadi un bo ón pa a ca ga un a chi o en el sample , añadi un bo ón pa a ac i a o desac i a el ecualizado de es bandas. Cabe des aca , que al se un p oceso i e a i o, es lexible a e o es de plani icación y/o de es imación, pe mi iendo di idi la a ea en a ias en caso de se más complicada de lo p e is o. Sp in Planning: Seguí el pa ón de sp in s pa a obliga me a ene echas de en ega y no deja a un lado el abajo. En es a plani icación elegía que a eas e an las más p io i a ias pa a cumpli en el iempo que me pusie a. Sp in Backlog: Es e es una lis a de his o ias de usua io que se es án ealizando du an e el Sp in , an o las que ya es án e minadas, las que se es án abajando en ese momen o, o las que aún quedan po empeza . El obje i o que me p opuse en el Sp in Planning es e mina es e backlog po comple o al e mina . Sp in Re iew: Con encionalmen e, en es a ase se e alúa si se necesi a añadi o e i a his o ias del backlog po p oblemas que hayan su gido de plani icación, pa a mejo a la es imación de p óximos sp in s y de op imiza en el que es án. En mi caso, al es a solo, solía hace una e isión dia ia del sp in pa a e alua la can idad adecuada de abajo que se ía capaz de ealiza . 23 Desa ollo de Videojuegos UCM Sp in Re ospec i e: En es a ase se suele e alua cómo ha sido el sp in ac ual y si se ha plani i- cado y es imado co ec amen e. Al habe e aluado dia iamen e el sp in , ap o echaba es a sesión pa a analiza posibles e o es de es imación que hubie a podido ealiza , al igual que p oblemas que hubie a podido encon a en mi p oceso de abajo. En la igu a 3.1 podemos obse a un diag ama en el que se ep esen an las dis in as ases de Sc um explicados an e io men e, al igual que se e leja la na u aleza i e a i a del p oceso, an o en los Daily Sc um como en los sp in s. Figu a 3.1: Esquema de la me odología Sc um [17] 24 Desa ollo de Videojuegos UCM de ecuencias, y el e ec o al comple o. Es e ue añadido, además de pa a apo a más con ol del sonido inal, pa a pode mi iga la sa u ación de ecuencias que se podían p oduci , es deci , que po la na u aleza adi i a de la sín esis, muchos g anos se sumen en la misma ecuencia gene ando sonidos no deseados en esa egión, empas ando el sonido. 4.2. Inspi ación Como uen e de inspi ación, quise cen a me en sin e izado es modula es analógicos. De es os quise cen a me en el aspec o de coloca los pa áme os de dis in as uncionalidades jun as, en secciones di ididas en e sí y en el con ol de es os pa áme os con con olado es ci cula es, simulando un po encióme o analógico. En la igu a 4.2, se puede e un ejemplo de un sin e izado de es e ipo, y la cla a di isión en secciones de sus uncionalidades. O o mo i o pa a segui es e ipo de diseño, es que muchos o os p og amas ya siguen es e ipo de diseño, ayudando a amilia iza se más ápidamen e con el p og ama a la gen e que ya iene expe iencia con es e ipo de so wa e. Pa a la pale a de colo , he decidido lle a lo a un es ilo más u u is a, u ilizando colo es ib an es emulando el e ec o neón. Es o lo he hecho así ya que la sín esis g anula suele es a concebida con un es ilo más u u is a. En la igu a 4.1 se en dos sin e izado es en el que se en los colo es ib an es neón y el uso de diales ci cula es pa a con ola los pa áme os de la composición. Ambos son plugins p ede e minados del DAW FL S udio. (a) Una cap u a de Ha mo po ImageLine (b) Una cap u a de SimSyn h po ImageLine Figu a 4.1: Sin e izado es digi ales de los que me inspi e 31 Desa ollo de Videojuegos UCM Figu a 4.2: Un ejemplo de un sin e izado modula analógico [18] 4.3. Resul ado En el esul ado inal, isible en la igu a 4.3, se pueden e g an pa e de las in luencias de las que se habla en el pun o an e io . Se e la impo ancia de los diales ci cula es y los colo es ib an es y de neón al igual que dis in as o mas de ep esen a el audio, an o con un analizado de ecuencias como con una g á ica que ep esen a el a chi o que iene ca gado el p og ama y los dis in os picos de olumen a lo la go del iempo. También se e la di isión po egiones de las dis in as uncionalidades, siguiendo las leyes de la Ges al [30] y el diseño de un sin e izado modula analógico, al igual que los p og amas de ejemplo que hice e e encia en el an e io pun o. Figu a 4.3: La in e az g á ica comple a del ins umen o 32 Desa ollo de Videojuegos UCM 4.3.1. Sample En es a sección del p og ama es donde se encuen a la capacidad de ca ga un a chi o de audio, ep oduci lo sin se modi icado po la sín esis g anula , que es el bo ón e de supe io , y ep oduci lo con el a amien o del algo i mo, que es el in e io . Al pulsa uno de es os bo ones e des, el bo ón ojo de su de echa se ilumina á, pe mi iendo de ene su ejecución. Si se pulsa el o o bo ón e de, ambién se de end á. El bo ón g is de la izquie da es el que se u iliza pa a ca ga los a chi os de audio, y lanza á una en ana del sis ema ope a i o pa a elegi el a chi o. En la igu a 4.4, se puede obse a como cambia la in e az, de la imagen (a) a la (b), al ca ga exi osamen e un a chi o, an o ep esen ado en la pa e in e io como ac i ando los dos bo ones e des pa a los dis in os ipos de ep oducciones. (a) El sample sin un a chi o de audio al inicia (b) El sample con un a chi o de audio Figu a 4.4: El sample 4.3.2. Sín esis g anula Los con olado es de la sín esis g anula se di iden en dos egiones. La supe io ep esen ada en la imagen (a) de la igu a 4.5, donde se con ola la densidad de los g anos que se ep oducen al mismo iempo en po cen aje, es deci , que al 100 % hay un g ano sonando y la ganancia o olumen de es os. En la pa e in e io , ep esen ada en la imagen (b) de la misma igu a, se encuen an los con olado es de los angos, an o de la du ación de los g anos, al igual que del ango donde se pueden ex ae del a chi o. También se encuen an los con olado es de la en ol en e de los g anos, es deci , el algo i mo y los pa áme os que u ilizan las dis in as mane as en las que los g anos comienzan y e minan de ep oduci se. (a) Sección supe io del módulo (b) Sección in e io del módulo Figu a 4.5: Secciones de los con olado es de la sín esis modula En la igu a 4.6 se pueden e las dis in as con igu aciones que se pueden asigna a la en ol en e de los g anos. Al modi ica el dial de mayo amaño, los diales más pequeños de la de echa se modi ican, ajus ándose a los pa áme os de cada en ol en e. En el caso del ADSR, el p ime dial desde a iba ma ca la dis ancia desde el comienzo has a el alo del a aque, desde ese alo has a el siguien e se á el decay, de la misma mane a con el siguien e dial es el sus ain y el es o es ese ado pa a el elease. Tan o en el en ol en e lineal y sinusoidal el dial supe io ma ca la du ación del ade in, y el in e io el del ade ou . 33 Desa ollo de Videojuegos UCM (a) En ol en e ADSR (b) En ol en e lineal (c) En ol en e sinusoidal Figu a 4.6: Dis in os ipos de en ol en es de los g anos 4.3.3. Ecualizado El ecualizado se di ide en dos secciones. En la pa e supe io en la que se ep esen an las dis in as ecuencias de los dos canales, izquie do en azul y de echo en na anja. También se encuen a una línea blanca que ep esen a el e ec o del ecualizado sob e las ecuencias y dos bo ones e des en la pa e supe io : el de la izquie da pa a apaga odo el ecualizado , y el de echo pa a desac i a el analizado . En la pa e in e io se encuen an los con olado es del ecualizado . En o den de izquie da a de echa se encuen a el il o low-cu , el il o de banda y el il o hi-cu . Los dos il os de co e ienen dos diales, uno que con ola la ecuencia, y un segundo que con ola la in ensidad de la pendien e del il o. En el caso del de banda, hay es con olado es, uno pa a la ecuencia del il o, o o pa a la ganancia en es as ecuencias y un e ce o que ma ca cuan ancho es el il o, es deci , cuan o a ec a a las ecuencias ecinas. En la igu a 4.7 se puede e el ecualizado uncionando, con el low-cu apagado. También se dis inguen la ep esen ación de ambos canales de sonido, de la línea blanca que mues a el e ec o de los il os en uncionamien o y de los dis in os e ec os que puede ene modi ica los il os en dis in as mane as. 34 Desa ollo de Videojuegos UCM Figu a 4.7: El ecualizado de es bandas 4.4. Ejemplo de uso A con inuación se encuen a el enlace a un ídeo en el que se mues a un ejemplo de uso con ano aciones de cada sección del ins umen o: h ps://www.you ube.com/wa ch? =W7c8Z scY M 35 Capí ulo 5 A qui ec u a e implemen ación del código 5.1. A qui ec u a La a qui ec u a base que ha seguido mi p oyec o ha sido la del modelo que iene po de ec o al c ea un p oyec o de aplicación de sonido con P ojuce . Es e modelo iene dos heb as en uncionamien o, la p ime a pa a el p ocesado de audio, que es la heb a más impo an e y la que lanza la segunda, que es el edi o isual del p og ama. Es a p ime a es capaz de unciona sin la segunda, pe o el edi o es incapaz de unciona sin la de p ocesado. Es as uncionan desde los a chi os PluginP ocesso yPluginEdi o espec i amen e. Ambos a chi os ienen el ciclo p incipal de cada heb a, al igual que los componen es que u iliza cada una. La comunicación en e las dos heb as sólo se gene a po los pa áme os de en ada y salida del ins umen o. Al se es os modi icados desde la heb a del edi o , se necesi a en ia los nue os alo es modi icados median e un sis ema de lis ene s de uel a a la heb a de p ocesado. Como obse ación, algunos de los con oles del p oyec o es án limi ados po o os del ins umen o, ya que suelen se el lími e supe io que no puede supe a . Es o se comunica desde la heb a del p ocesado al edi o , y equie e de una se ie de Mu ex solo al modi ica uno de los dos pa áme os pa a e i a e o es du an e la ejecución. 5.2. Plugin P ocesso En es e a chi o, encon amos oda la uncionalidad y elemen os necesa ios pa a pode p ocesa el audio, desde su lec u a de un a chi o y ep oducción, a la di isión en g anos, la ep oducción de es os y su posible ecualización. Los mé odos más impo an es y que más he modi icado de es a clase son: p epa eToPlay() En es e se inicializan y ca gan odos los ecu sos o con igu aciones necesa ias an es de comenza la ep oducción. En la igu a 5.1, se puede obse a es e mé odo y cómo se p epa an los dis in os elemen os como el ecualizado y las cadenas que u iliza, un oscilado que se u ilizó pa a p uebas, el sis ema de ca ga de a chi os y el amaño del bloque máximo que deben de ol e los g anos. 37 Desa ollo de Videojuegos UCM Figu a 5.1: Cap u a del mé odo p epa eToPlay() p ocessBlock() Es e es el mé odo c í ico del p og ama ya que pide el audio p ocesado po bloques que se planean ep oduci en cada ame del p og ama. Aquí es donde se deben ealiza el p ocesado del audio pa a consegui el esul ado obje i o. En la igu a 5.2, podemos obse a una sección de es e mé odo en la que en unción de cuál de los dos ep oduc o es es á uncionando, copia el bloque co es- pondien e, al igual que la p epa ación y p ocesado del ecualizado en ambos canales y la ac ualización de la es uc u a FIFO pa a el analizado de ecuencias. Figu a 5.2: Cap u a del mé odo p ocessBlock() 38 Desa ollo de Videojuegos UCM c ea ePa ame e Layou () Es el mé odo donde se decla an y se de inen los angos y ipos de los pa áme os con los que se comunica á con el edi o bidi eccionalmen e. En la igu a 5.3 se puede obse a como se c ean es os pa áme os. Figu a 5.3: Cap u a del mé odo c ea ePa ame e Layou () En e el es o de elemen os, encon amos muchos de los mé odos necesa ios pa a hace unciona la clase pad e juce::AudioP ocesso , además de los pa áme os del p og ama que se án los que modi ique los con oles de la in e az g á ica. Después de es os la clase es á di idida en secciones los dis in os elemen os del p ocesado po su uncionalidad, y a su ez, la uncionalidad de es as se encuen an en una clase p opia. Como obse ación, den o de CommonP ocesso , se encuen an los elemen os básicos del p ocesado , como de iniciones de s uc s,enums y o o código que usan odas las clases que p ocesan el audio. 5.2.1. File Bu e Playe Es a clase ealiza la unción de pode lee un a chi o de audio, ca ga lo y pode ep oduci lo en bloques de audio después. Es a no modi ica la en ada de ninguna mane a. Es e iene un juce::AudioBu e < loa > donde gua da oda la in o mación, y iene un sis ema de es ados del ipo T anspo S a e en el que puede ene un es ado de pa ado, empezando, ep oduciéndose y pa ándose. 39 Desa ollo de Videojuegos UCM Los mé odos más impo an es de es a clase son se S a e(), que cambia el es ado del ep oduc o , copy- Nex BlockF omBu e FileTo(), que ealmen e copia el siguien e bloque de audio en el bu e de en ada, yse Bu e (), que cambia el bu e de o igen, cambiando el a chi o que ep oduce. 5.2.2. G anula Sample Es a clase ealiza la unción de un sample g anula , u ilizando el File_Bu e _Playe pa a ca ga el a chi o y lee lo, y usa el mismo sis ema de es ados que la clase. Además es e se enca ga de c ea , ges iona y suma dis in os g anos pa a pode ep oduci los a iempo eal. Los mé odos más signi ica i os son ge Nex AudioBlock(), en el que se c ean, ep oducen y libe an los g anos que se an a ep oduci , y changeS a e(), donde se puede cambia el es ado del sample . Los g anos se implemen an a a és de la clase Ga in, donde se gua dan los alo es de la ep oducción de cada g ano indi idual, como los angos de du ación, la sección de sonido del a chi o y mé odos pa a aplica la en ol en e co espondien e. Además, la ges ión de los g anos se hace a a és de un diseño de pool, es deci , que los g anos solo se cons uyen al comienzo del sample , y después se an eciclando a medida que se ean u ilizando. 5.2.3. EQ P ocesso En es e a chi o encon amos g an pa e de la implemen ación necesa ia pa a ealiza los cálculos del ecuali- zado del ins umen o. Es as se componen p incipalmen e de de iniciones de nomb es, s uc s y enums y de algunos mé odos empla e que se u ilizan du an e el p ocesado de audio pa a compone el il o. Pa a hace unciona el ecualizado , se añade el módulo juce_dsp (Digi al Signal P ocessing) al p oyec o, que apo a g an pa e del cálculo de los il os que se aplican, como las FFT (Fas Fou ie T ans o ms), u ilizadas en el analizado de ecuencias, o IIR (In ini e Impulse Response il e s), aplicado en es e a chi o [29]. El ecualizado unciona u ilizando una se ie de il os impo ados del módulo juce_dsp, explicado a iba. Al llega al mé odo del p ocesado de audio p ocessBlock(), p ime o se ac ualizan los il os según los pa ame os ac uales del ins umen o. Después se p ocesan ambos canales al aplica se po la cadena de il os (llamada en el código MonoChain). Al se ecualizado lo úl imo que se p ocesa, se acaba en iando el esul ado a una es uc u a FIFO (Fi s In, Fi s Ou ), donde se p epa a pa a que el analizado de ecuencias pueda con e i median e ans o maciones de Fou ie (FFT), en una línea pa a su ende izado. 5.3. Plugin Edi o En es e a chi o encon amos odos los componen es g á icos de la in e az, al igual que e e encias al p oce- sado de audio y los mé odos necesa ios pa a c ea y ende iza una in e az g á ica con JUCE. Todas las implemen aciones de los mé odos se encuen an en el a chi o PluginEdi o .cpp. En el cons uc o de es a clase, podemos e cómo se con igu an los componen es al igual de cómo se asocian a los pa áme os de la o a heb a. También se e cómo se con igu an unciones pa a los bo ones y se añade un LookAndFeel, que se u iliza á pa a ajus a el diseño de la aplicación. También se e cómo se c ea la en ana con un amaño de e minado de píxeles. En el des uc o , se des uye la e e encia al LookAndFeel de los componen es. La unción de ende izado que se u iliza á pa a c ea la aplicación se á la de esized(), dejando pain () como una unción de bo ado de pan alla. Es o mejo a el endimien o del p og ama ya que solo ol e á a ende iza cie os elemen os que necesi en se ende izados, en ez de con inuamen e. En esized(), es donde se asigna á a cada elemen o su co espondien e á ea de ende izado, pe mi iendo que se puedan pin a en pan alla. En la igu a 5.4 se puede obse a una sección del mé odo esized(), donde se puede obse a como se asignan las secciones de in e az g á ica a cada elemen o. 40 Desa ollo de Videojuegos UCM 6.2. Fu u e wo k Al hough he wo k has been comple ed acco ding o my o iginal ision, I ollowed a modula design conside- ing he possibili y ha i could be expanded in he u u e. Due o he na u e o he p ojec , he e a e many ways in which i can be u he de eloped. These a e some o he possible expansions o imp o emen s ha could be implemen ed: Imp o ing he g aphical in e ace: Ha ing ocused on he de elopmen o he applica ion a a echnical le el, I would ha e liked o ha e spen mo e ime designing he g aphical in e ace, and o ha e go en people wi h knowledge o he subjec helping wi h he design. Op imize he pe o mance o he code: To be mo e speci ic, on slowe compu e s he pe o mance o he p og am su e s qui e a bi when playing a la ge numbe o g ains, especially i hey a e sho . Fo his, he managemen o g ains playing could be imp o ed. Inc ease he numbe o g ain pa ame e s: The g ea e he numbe o pa ame e s, he mo e eedom he use would ha e in modi ying he esul ing sound. An example could be he modi ica ion o he pi ch o equencies o he g ains ha a e ep oduced, he modi ica ion o he panning, ha is he con ol o ep oduce he amoun o g ains playing on he le o igh channel o inc ease he con ol o he o igin o each g ain. Imp o e he implemen a ion o he Powe -C oss-Fade algo i hm: This is used o ge a olume close o he sound o he ile when pe o ming g ain addi ion. In his p ojec , i was only possible o ca y ou an ini ial in es iga ion o he p oblem, eaching a sa is ac o y, bu no op imal, esul , and i should be possible o in es iga e he possibili y o applying his algo i hm o a numbe No sounds in a ma hema ically p ecise manne , and no he app oxima ion used. Add he possibili y o impo mo e han one ile as a sou ce: This would allow mixing he di e en ex u es o se e al iles, making he esul ing sound mo e complex and in e es ing. Add a comp esso : This module would help mi iga e audio iles wi h e y s ong a acks, allowing he sound o he g ains o ma ch each o he and achie e an e en mo e mono onous olume e ec in he esul ing sound. Imp o e he equency analyze : This wo ks wi h a FFT algo i hm ha e en i wo king, has e y low esolu ion, especially in he lowe equencies. As a solu ion, mo e sophis ica ed algo i hms could be sough o i s implemen a ion, o combining mul iple FFT passes in o one. Add MIDI inpu o pi ch modi ica ion: This ool would change he beha io o he ins umen om a sample o some hing mo e like a syn hesize , allowing you o con ol he equencies o he g ains, bu espec ing hei ex u es. I would also need o add a o e all en elope o con ol how a key no e ades in and ou . 47 Anexos A - Manual de usua io - G anula Sample Con oles gene ales El uso de es e p og ama se con ola p incipalmen e median e un a ón in o má ico. Es e se u iliza pa a pulsa con el bo ón izquie do de es e los dis in os bo ones y con olado es del p og ama. Los con olado es pueden se modi icados median e la ueda del a ón, o a as ando hacia a iba y hacia abajo al pulsa sob e el con olado . Como obse ación impo an e, se puede ajus a con mayo p ecisión el alo del dial, si al modi ica lo se man iene pulsado el bo ón con ol del eclado. Secciones del ins umen o Las secciones del ins umen o son: en la pa e supe io de la izquie da se encuen a el sample ; donde se ca ga el a chi o de audio que u iliza á la sín esis g anula y donde se con ola la ep oducción del ins umen o, la pa e in e io de la izquie da; donde se encuen an los con olado es de la sín esis g anula , y a la de echa el ecualizado , donde se di ide a iba en el analizado de ecuencias; y en la pa e in e io los con oles de los es il os; el de pasa baja, al a y el il o de banda. Figu a A.1: El ins umen uncionando 49 Desa ollo de Videojuegos UCM Ca ga de un a chi o y ep oducción Pa a ca ga un a chi o en el ins umen o, se debe pulsa el bo ón supe io de la izquie da g is. Es e lanza á una en ana del sis ema ope a i o que e pe mi i á na ega po el disposi i o has a encon a el a chi o deseado. Una ez seleccionado y añadido, si el ins umen o ha ca gado co ec amen e el a chi o debe án ilumina se los bo ones e de de ep oducción del a chi o y del modelo g anula , al igual que se debe ep e- sen a el a chi o de audio debajo de los bo ones. Como úl ima comp obación, se puede ep oduci el a chi o de audio pulsando el bo ón e de supe io . Si se quie e pa a en cualquie momen o se debe pulsa el bo ón ojo iluminado de la de echa. Es e solo se ilumina á si se es á ep oduciendo. Si se quie e comenza a g anula el a chi o, se debe á pulsa el bo ón e de in e io . Es e unciona á igual que el que se u iliza pa a ep oduci el a chi o. Figu a A.2: El selec o de a chi os de Windows 50 Desa ollo de Videojuegos UCM Con ol de la g anulación Pa a con ola los g anos que se ep oducen, se ha de modi ica los diales in e io es al sample . En o den de izquie da a de echa y a iba a abajo, los con olado es son: el de la densidad de g anos al segundo, en po cen aje (es deci que el 100 % es equi alen e a un g ano sonando en el momen o), el de la ganancia de los g anos, los con olado es del ango de du ación de los g anos y ango del a chi o de donde se pueden ex ae los g anos, y un con olado de la en ol en e, que pe mi e cambia y el ipo y con ola los pa áme os de cada uno al modi ica lo. De las dis in as en ol en es que hay, el ADSR iene es con oles. Es os se aplican uno de ás del o o, así que empezando desde el ce o has a el alo del p ime con olado es el a aque, del p ime o al segundo el decay, del segundo al e ce o el sus ain y del e ce o al inal el elease. Las o as dos en ol en es ienen dos con olado es que de inen el ade in y ade ou de la en ol en e. (a) Sección supe io del módulo (b) Sección in e io del módulo Figu a A.3: Secciones de los con olado es de la sín esis modula (a) En ol en e ADSR (b) En ol en e lineal (c) En ol en e sinusoidal Figu a A.4: Dis in os ipos de en ol en es de los g anos 51 Desa ollo de Videojuegos UCM Con ol del ecualizado El ecualizado cuen a con es il os di e en es, uno de paso bajo y al o, y un e ce o de banda. Es os es se con olan con los diales de la pa e in e io , siendo la p ime a columna del il o de paso al o, la segunda el il o de banda y la e ce a de paso bajo. Los dos il os de co e cuen an con un con olado de la ecuencia y uno pa a ajus a la ue za con la que se aplica. El de banda iene es il os, que con olan la ecuencia, la ganancia y un e ce con olado que ajus a cuan o a ec a a las ecuencias ecinas. Cada il o cuen a con un bo ón pa a desac i a es e il o, y uno gene al en la esquina supe io izquie da pa a desac i a lo po comple o. Además iene un analizado de ecuencias en la pa e supe io , que ep esen a en azul el canal izquie do y en na anja el canal de echo, una linea blanca que ep esen a el e ec o del il o sob e las ecuencias y un bo ón en la esquina supe io de echa pa a desac i a lo. Figu a A.5: El ecualizado de es bandas 52 Índice de igu as 2.1. Rep esen ación isual de la di isión de un a chi o en g anos [15] . . . . . . . . . . . . . . . . 19 2.2. Resumen del p oceso de la sín esis g anula [16] . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3. Unacap u adeCecilia[10] ..................................... 21 3.1. Esquema de la me odología Sc um [17] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2. La en ana de P ojuce delp oyec o ................................ 27 3.3. La en ana de AudioPluginHos u ilizada du an e el desa ollo. . . . . . . . . . . . . . . . . . 27 3.4. Una cap u a del T ello demip oyec o............................... 28 4.1. Sin e izado es digi ales de los que me inspi e . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2. Un ejemplo de un sin e izado modula analógico [18] . . . . . . . . . . . . . . . . . . . . . . 32 4.3. La in e az g á ica comple a del ins umen o . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.4. El sample .............................................. 33 4.5. Secciones de los con olado es de la sín esis modula . . . . . . . . . . . . . . . . . . . . . . . 33 4.6. Dis in os ipos de en ol en es de los g anos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.7. Elecualizado de esbandas .................................... 35 5.1. Cap u a del mé odo p epa eToPlay() .............................. 38 5.2. Cap u a del mé odo p ocessBlock() ............................... 38 5.3. Cap u a del mé odo c ea ePa ame e Layou () ......................... 39 5.4. Cap u a del mé odo esized() ................................... 41 A.1.Elins umen uncionando...................................... 49 A.2. El selec o de a chi os de Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 A.3. Secciones de los con olado es de la sín esis modula . . . . . . . . . . . . . . . . . . . . . . . 51 A.4. Dis in os ipos de en ol en es de los g anos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 A.5.Elecualizado de esbandas .................................... 52 54 Bibliog a ía [1] Re e encia de la lib e ía JUCE: h ps://juce.com/ [Úl imo acceso: 14/07/2022] [2] Enlace de Spo i y de El Co al de los Quie os: h ps://open.spo i y.com/a is /6Vj ONjz3MbMnFh6dBclVo [Úl imo acceso: 14/07/2022] [3] En ada sob e los DAW de Wikipedia: h ps://en.wikipedia.o g/wiki/Digi al_audio_wo ks a ion [Úl imo acceso: 14/07/2022] [4] En ada sob e los VST de Wikipedia: h ps://en.wikipedia.o g/wiki/Vi ual_S udio_Technology [Úl imo acceso: 14/07/2022] [5] En ada de S eam de la emp esa Mad C eam Games: h ps://s o e.s eampowe ed.com/de elope /MadC eamGames/?u m_sou ce= g [Úl imo acceso: 14/07/2022] [6] Enlace de S eam del ideojuego Pain ing We he : h ps://s o e.s eampowe ed.com/app/1434260/Pain ing_We he [Úl imo acceso: 14/07/2022] [7] En ada sob e Iannis Xenakis de Wikipedia: h ps://es.wikipedia.o g/wiki/Iannis_Xenakis [Úl imo acceso: 14/07/2022] [8] Página web de Cu is Roads: h ps://www.cu is oads.ne / [Úl imo acceso: 14/07/2022] [9] Roads, Cu is (2001). Mic osound. Camb idge: MIT P ess. ISBN 0-262-18215-7. [10] Enlace de Cecilia, el ins umen o i ual: h p://ajaxsounds udio.com/so wa e/cecilia/ [Úl imo acceso: 14/07/2022] [11] Enlace del plugin de able on de g anulación: h ps://www.able on.com/en/packs/g anula o - ii/ [Úl imo acceso: 14/07/2022] [12] Enlace del ins umen o i ual G anuRise: h ps://g anu ise.com/ [Úl imo acceso: 14/07/2022] [13] Enlace del ins umen o i ual Quan a 2: h ps://www.audiodamage.com/p oduc s/ad055- quan a-2 [Úl imo acceso: 14/07/2022] [14] Enlace a los dis in os p oyec os p o esionales c eados po JUCE: h ps://juce.com/disco e /made-wi h-juce [Úl imo acceso: 14/07/2022] 55 Desa ollo de Videojuegos UCM [15] Fuen e de una de las imágenes explica i as de la g anulación: h ps://ea s2.dmu.ac.uk/es/cou ses/sonidos-gene ados/lessons/sin esis-g anula [Úl imo acceso: 14/07/2022] [16] C ossan, A. & Williamson, J. & Mu ay-Smi h, Rode ick. (2004). Hap ic g anula syn hesis: Ta ge ing, isualisa ion and ex u ing. P oceedings o he In e na ional Con- e ence on In o ma ion Visualiza ion. 8. 527- 532. 10.1109/IV.2004.1320195. [17] Fuen e de la imágen u ilizada pa a explica el SCRUM: h ps://www.plainconcep s.com/es/sc um-que-es/ [Úl imo acceso: 14/07/2022] [18] Fuen e de la imágen de ejemplo de un sin e izado g anula : h ps://www.hispasonic.com/anuncios/sin e izado -modula -eu o ack-comple o- ambien-cambio/1039582 [Úl imo acceso: 14/07/2022] [19] Enlace al módulo de Py hon, PYO, pa a el p ocesado de señales: h p://ajaxsounds udio.com/so wa e/pyo/ [Úl imo acceso: 14/07/2022] [20] Enlace al módulo de Py hon, PyAudio, pa a la ges ión E/S de audio: h ps://pypi.o g/p ojec /PyAudio/ [Úl imo acceso: 14/07/2022] [21] Enlace a los u o iales de JUCE: h ps://juce.com/lea n/ u o ials [Úl imo acceso: 14/07/2022] [22] Enlace a la compañía que c eo algunos de los u o iales que seguí pa a amilia iza me con JUCE: h ps://www. eecodecamp.o g/ [Úl imo acceso: 14/07/2022] [23] Enlace a YouTube de uno de los ideos de F ee Code Camp: h ps://www.you ube.com/wa ch? =i_Iq4_Kd7Rc [Úl imo acceso: 14/07/2022] [24] Enlace a YouTube de uno de los ideos de F ee Code Camp: h ps://www.you ube.com/wa ch? =Mo0Oco3Vimo [Úl imo acceso: 14/07/2022] [25] Enlace a la API de JUCE: h ps://docs.juce.com/mas e /index.h ml [Úl imo acceso: 14/07/2022] [26] Enlace a la documen ación del lenguaje de p og amación de C++: h ps://cplusplus.com/ e e ence/ [Úl imo acceso: 14/07/2022] [27] Enlace a la página web del IDE Visual S udio: h ps:// isuals udio.mic oso .com/es/[Úl imo acceso: 14/07/2022] [28] Enlace al eposi o io de Gi Hub del p oyec o: h ps://gi hub.com/NicoPas /G anula Sample -TFG [Úl imo acceso: 14/07/2022] [29] Enlace al u o ial de uso del módulo de DSP de JUCE: h ps://docs.juce.com/mas e / u o ial_dsp_in oduc ion.h ml [Úl imo acceso: 14/07/2022] [30] En ada de las leyes de la Ges al de Wikipedia: h ps://es.wikipedia.o g/wiki/Psicología_de_la_Ges al [Úl imo acceso: 14/07/2022] [31] Enlace al ello del p oyec o: h ps:// ello.com/b/Qz8n9nCY/g anula sample [Úl i- mo acceso: 14/07/2022] 56