AN EUCLIDEAN SEQUENCER PLUGIN FOR DIGITAL
AUDIO WORKSTATIONS
UN PLUGIN DE SECUENCIADOR EUCLIDIANO PARA ESTACIONES
DE TRABAJO DE AUDIO DIGITAL
TRABAJO FIN DE GRADO
CURSO 2021-2022
AUTORES
DAVID BURGOS DÍAZ
GONZALO COSTALES DE LEDESMA
DIRECTOR
MIGUEL GÓMEZ-ZAMALLOA GIL
GRADO EN INGENIERÍA INFORMÁTICA
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
0
AN EUCLIDEAN SEQUENCER PLUGIN FOR DIGITAL
AUDIO WORKSTATIONS
UN PLUGIN DE SECUENCIADOR EUCLIDIANO PARA ESTACIONES
DE TRABAJO DE AUDIO DIGITAL
TRABAJO DE FIN DE GRADO EN INGENIERÍA INFORMÁTICA
DEPARTAMENTO DE SISTEMAS INFORMÁTICOS Y COMPUTACIÓN
AUTORES
DAVID BURGOS DÍAZ
GONZALO COSTALES DE LEDESMA
DIRECTOR
MIGUEL GÓMEZ-ZAMALLOA GIL
CONVOCATORIA: Junio 2022
CALIFICACIÓN:
GRADO EN INGENIERÍA INFORMÁTICA
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
17 DE MAYO DE 2022
2
3
4
Índice gene al
Índice i
1. In oducción 3
1.1. Mo i ación..................................... 3
1.1.1. Unpocodehis o ia............................ 3
1.1.2. Es aciones de T abajo de Audio Digi al . . . . . . . . . . . . . . . . . 4
1.1.3. Plugins................................... 5
1.2. Obje i os ..................................... 5
1.3. Plande abajo.................................. 7
2. Es ado del a e 9
2.1. O igen de los i mos euclidianos . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2. Es aciones de T abajo de Audio Digi al . . . . . . . . . . . . . . . . . . . . . 11
2.3. Plugins....................................... 13
2.4. Secuenciado es .................................. 15
3. Manual de uso del plugin 18
3.1. Ins alación..................................... 18
3.2. Es uc u adelplugin............................... 20
3.2.1. Rep esen ación g á ica de los i mos . . . . . . . . . . . . . . . . . . . 20
3.2.2. Componen es indi iduales de cada i mo . . . . . . . . . . . . . . . . 21
3.2.3. O os componen es del plugin . . . . . . . . . . . . . . . . . . . . . . 22
3.3. Ejemplosdeuso.................................. 23
4. Implemen ación 26
4.1. Concep osbásicos................................. 26
4.2. JUCE ....................................... 26
4.2.1. P ojuce .................................. 27
4.2.2. Es uc u a de un plugin de audio en JUCE . . . . . . . . . . . . . . . 27
4.3. ClaseEuclideanRhy hm ............................. 29
4.3.1. A ibu os ................................. 29
4.3.2. Funciones ................................. 31
4.4. PluginEdi o .................................... 32
4.4.1. A ibu os ................................. 32
4.4.2. Funciones ................................. 32
4.5. PluginP ocesso .................................. 34
4.5.1. A ibu os ................................. 34
i
4.5.2. Funciones ................................. 35
5. Con ibuciones al p oyec o 37
5.1. Da idBu gosDíaz ................................ 37
5.2. Gonzalo Cos ales de Ledesma . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6. Conclusiones y T abajo u u o 44
6.1. Conclusiones.................................... 44
6.2. T abajo u u o .................................. 45
7. In oduc ion 46
7.1. Mo i a ion..................................... 46
7.1.1. His o icalcon ex ............................. 46
7.1.2. Digi al Audio Wo ks a ions . . . . . . . . . . . . . . . . . . . . . . . 47
7.1.3. Plugins................................... 48
7.2. Objec i es..................................... 48
7.3. Wo kPlan..................................... 49
8. Conclusions and u u e wo k 51
8.1. Conclusions .................................... 51
8.2. Fu u ewo k.................................... 51
Bibliog a ía 53
ii
Resumen
Un plugin de secuenciado euclidiano pa a es aciones de abajo de audio
digi al
La cons ancia en el desa ollo y la inno ación en la in o má ica desde que la conocemos
ha supues o a lo la go del iempo una e olución en muchos sec o es. En es a ocasión nos
cen a emos en el musical, ya que, echando la is a a ás a ias decenas de años, pa a eali-
za una composición musical e an necesa ios muchos medios e ins umen os que hacían de
es a, una a ea a eces a dua y compleja que muy pocos podían lle a a cabo. Sin emba go,
odo es o ha cambiado ya que hoy en día cualquie pe sona puede se p oduc o de música
con el simple hecho de ene un o denado a su alcance.
Que es o sea posible se lo debemos a las DAWs, del inglés Digi al Audio Wo ks a ions
o es aciones de abajo de audio digi al. Una DAW es básicamen e un p og ama o so -
wa e que pe mi e g aba , edi a , p ocesa y mezcla múl iples pis as de audio, además de
esc ibi música y hace la sona median e ins umen os i uales. A pa e de la in inidad de
uncionalidades po de ec o, las DAWs pueden se ex endidas median e plugins ex e nos.
Den o de es e g an abanico de plugins, cabe des aca po su elación con es e p oyec o, a
los secuenciado es. La unción de es os es la de secuencia música, o en o as palab as, p o-
g ama e en os musicales en el iempo. Es o es posible haciendo uso de cie a in o mación
p opo cionada po el usua io en o ma de aco des, pa me os, e c.. u o os da os ecogidos
de la in e az g á ica de usua io.
El in de es e p oyec o es desa olla un plugin de secuenciado euclidiano, que es á
basado en los i mos euclidianos, cuyos o ígenes p o ienen, como más adelan e se explica,
del Algo i mo de Euclides. Resumidamen e, usando el máximo común di iso log a coloca
elemen os en una secuencia de la mane a más uni o me posible en una di isión de iempo
dada, es ableciendo un núme o de pasos y de e en os que de inen un pa ón í mico.
De es e modo, g acias a la unción que ealiza es e plugin de gene ación de e en os mu-
sicales, si lo combinamos con o o de ins umen o i ual, se es a ía gene ando música de
mane a casi au omá ica.
Palab as cla e
audio digi al, DAW, plugin, VST, MIDI, JUCE, i mos euclidianos, secuenciado eucli-
diano
Una ez inalizada la cons ucción de es e plugin, y en endido el manejo y c eación de
e en os MIDI, empezamos a desa olla el p oyec o inal. T as nume osas e siones a lo la go
de es e p oceso de desa ollo se consiguie on implemen a los componen es y uncionalida-
des básicos del plugin, des acando el con olado p incipal del i mo, que pe mi e al usua io
median e slide s o a i os selecciona el núme o de pasos y e en os del mismo, y o os con-
oles adicionales, desde el con ol de di ección del i mo, has a posibilidad de ag upa las
no as en esillos y no as con pun illo. Además, se in i ió una g an can idad de iempo a
la in e az debido a su g an complejidad que equie e de señales que la hagan cambia en
iempo eal a una g an elocidad.
Finalmen e, se implemen a on las uncionalidades de gua da y ca ga p ese s que die an
la posibilidad al usua io de almacena las con igu aciones y i mos que desee pa a su pos e io
uso.
8
Capí ulo 2
Es ado del a e
Pa a log a en ende lo ú il e impo an e que puede se un plugin de es as ca ac e ís icas
den o del campo de la p oducción musical debemos desa olla una explicación del es ado
en el que se encuen an es e ipo de gene ado es/e ec os de MIDI. Pa a ello explica emos un
poco más en de alle las dis in as he amien as que componen las DAWs, los ipos de plugins
que hay y lo que es un secuenciado , pe o an es, un poco de con ex o.
2.1. O igen de los i mos euclidianos
En 2004, el in o má ico God ied Toussain descub ió lo que e an los i mos euclidianos
en la música y la capacidad que enían pa a gene a casi odos los i mos al ededo del
globo, excep uando la India. En 2005, es e mismo p o eso desc ibió lo que e an es os i mos
en su pape "The Euclidean Algo i hm Gene a es T adi ional Musical Rhy hms"9. En es e
pape , Toussain aplica el algo i mo de Euclides del maximo común di iso de dos núme os,
co espondien es al núme o de pasos de un i mo, y al núme o de e en os o pulsos del mismo.
El esul ado ob enido son los núme os de pulsos y silencios de un i mo, quedando los pulsos
de un i mo equidis an es en e sí.
El algo i mo a con inuación explicado es el cual el p o eso desa olló en el pape , di ec-
amen e implemen ado con el algo i mo de Euclides2. Pensemos en que un i mo se puede
ep esen a di ec amen e como una cadena bina ia de 1s y 0s, donde los 1s ep esen an e en-
os o pulsos y los 0s ep esen an silencios de mane a que, se desean dis ibui uni o memen e
k e en os en n pasos. Si po ejemplo omamos n = 12 pasos yk = 4 e en os el i mo
euclidiano esul an e se ía E(4,12) = [1,0,0,1,0,0,1,0,0,1,0,0]. El p oblema iene cuando
el máximo común di iso de n y de k no es uno de es os dos núme os, es deci , que en e
odos los e en os no hay el mismo núme o de silencios (e en os no equidis an es).
Tomemos un ejemplo donde el máximo común di iso de n y k sea 1 pa a explica el
algo i mo, como po ejemplo, n = 13 yk=5:
9
1. Empeza emos colocando los cinco 1s seguidos de los ocho 0s co espondien es:
[1111100000000]
2. Aho a p ocedemos a coloca cada 0 de ás de un 1, ob eniendo 5 secuencias de pa es
[10] y es 0s es an es:
[10] [10] [10] [10] [10] [0] [0] [0]
3. Lo siguien e se á dis ibui los es 0s es an es de una mane a simila , colocando cada
[0] de ás de una secuencia [10]:
[100] [100] [100] [10] [10]
4. A con inuación epe i emos el mismo p oceso an as eces sea necesa io has a acaba
con una sola secuencia esul an e:
[1001010010010]
Cabe des aca que, al se una secuencia cíclica, la secuencia ob enida puede se o ada,
de mane a que ob end íamos pe mu aciones del mismo i mo, desplazando simplemen e los
e en os po el i mo:
o ([1001010010010], 1) = [0100101001001]
Podemos e di e en es i mos en unción de la o ación, po ejemplo, con el i mo
E(7,12). Es e i mo sin ninguna o ación co esponde al Bembé (a), con 1 o ación a la
de echa co esponde al i mo de palmeo del oes e del con inen e a icano (b), y con 2 uni-
dades de o ación a la de echa al i mo Tambú de Cu açao (c):
Figu a 2.1:Ejemplos de o ación del Bembé a icano
Pa a descub i y conoce muchísimos o os i mos euclidianos como el esillo cubano
E(3,8), la cumbia colombiana E(3,4) o la Bossa-No a b asileña E(5,16) se ecomienda lee
el pape de God ied Toussain an e io men e mencionado.
10
T as una pues a en con ex o sob e la his o ia que iene a sus espaldas el plugin desa o-
llado en es e p oyec o, hablemos un poco más en p o undidad sob e las DAWs, ya que son
las he amien as donde las usa emos, y sob e los plugins, pa a e los ipos que hay y como
uncionan.
2.2. Es aciones de T abajo de Audio Digi al
A pesa de la compleja in e az que mues a una DAW al inicia se, comp endiendo el
uncionamien o de los siguien es elemen os undamen ales, end emos la posibilidad de lle a
a cabo una p oducción musical. Pa a es a explicación oma emos REAPER como ep esen-
an e, eniendo en cuen a que la g an mayo ía de cosas que se p esen an en es a DAW son
análogas en cualquie o a.
1. Línea de iempo: Es el esquele o de una DAW, debido que a lo la go de es a línea
es donde se i án colocando los di e en es bloques de audio o MIDI. En el eje ho izon-
al es á ep esen ado el iempo, sepa ado en di e en es compases, y en el e ical se
di e encian las ilas o pis as que componen el p oyec o.
Figu a 2.2:Línea de iempo en REAPER
2. Panel de con ol: Es a pa e de la DAW es el cen o de con ol de nues o p oyec o,
desde donde podemos inicia , pausa o g aba una secuencia del mismo. Además am-
bién se encuen an las ca ac e ís icas p incipales de nues o p oyec o como el compás
musical o los pulsos po minu o en e o os, que nos indican la elocidad de ep oduc-
ción. Es as ca ac e ís icas se pueden ajus a en cualquie momen o pa a adap a se a
las necesidades que se deseen.
Figu a 2.3:Panel de con ol en REAPER
3. Con ol indi idual de pis a: Una ez seleccionada la pis a deseada de la línea de
iempo, se mos a á su is a con el con ol indi idual, donde se le pod án aplica e ec-
os y odo ipo de modi icaciones, además de silencia la (pulsando la "M") o aisla la
(pulsando la "S") en e o as cosas.
11
Debemos hace especial hincapié en es a pa e de las DAWs ya que es el componen-
e desde el cual se con olan los e ec os o plugins que usamos en cada pis a. Como
podemos obse a en la Figu a 2.4, en cada pis a des aca el bloque FX o bloque de
e ec os; es e es el enca gado de adminis a el manejo del plugin o plugins que ha-
yamos decidido usa en la pis a. En el bloque FX es donde añadi emos los plugins a
modo de secuencia, es deci , uno conec ado a la salida de o o. Una de las p incipales
ca ac e ís icas que lo con o man es que, dichos e ec os son aplicados en iempo en eal.
Veamos es o con un sencillo ejemplo:
Imaginemos que enemos un eclado MIDI po el cual in oduci emos la en ada (las
no as que deseemos oca ). A es a en ada se le pod ía aplica una cadena de e ec os
o mada po un a pegiado , un ins umen o i ual de piano y inalmen e un e e -
be ado . De es a mane a po ejemplo si se pulsa un aco de de do mayo , sona ía un
pa ón melódico con las no as do-mi-sol en un piano y con una cie a e e be ación,
donde si se modi ica cualquie a de esos e ec os, la salida se e ía modi icada ins an á-
neamen e.
Figu a 2.4:Con ol indi idual de pis a en REAPER
4. Edi o MIDI: Es e componen e lo que nos o ece es una in e az g á ica median-
e la cual podemos p og ama e en os MIDI en el iempo o, si han sido p e iamen e
g abados po ejemplo con un eclado MIDI, nos o ece ambién la capacidad de edi a -
los. MIDI, de las siglas inglesas Musical Ins umen Digi al In e ace, es un p o ocolo
basado en la ep esen ación y el anspo e de e en os cuya in o mación simbólica
ep esen a no as musicales; des acando en e o os pa áme os la du ación, no ación
musical o in ensidad. Es e es ánda ecnológico es el usado po las DAWs pa a ep esn-
a dicha in o mación y además, como más adelan e e emos, puede se in e p e ada
12
po o os disposi i os, p og amas, o ins umen os elec ónicos pa a gene a una salida
de audio.
Pa a c ea dichos e en o solamen e debemos ab i el edi o MIDI e in oduci alo es
con el a ón u o os disposi i os como eclados MIDI. Además, g acias a es os edi o es
MIDI, pod emos edi a las ca ac e ís icas de cada no a indi idualmen e, de modo que
la cus omización nos acili e alcanza las p e e encias deseadas.
Figu a 2.5:Con ol indi idual de pis a en REAPER
5. Mezclado : Es e componen e nos acili a una is a gene al de odas las pis as donde
end emos la posibilidad de modi ica pa áme os en odas ellas al mismo iempo, o
solamen e en las que deseemos, desde un pun o de is a común a odas.
Figu a 2.6:Con ol indi idual de pis a en REAPER
2.3. Plugins
Como hemos comen ado p e iamen e, VST, de las siglas Vi ual S udio Technology, es
el es ánda de desa ollo y conexión de plugins más usado a día de hoy al ededo de odo el
mundo. Dicho es o, se conoce como plugin VST a odo aquel so wa e cuyo in es amplia las
uncionalidades que una es ación de abajo de audio digi al ya iene. Dos de sus p incipales
en ajas son, la capacidad de u ilización y uncionamien o en cualquie DAW (REAPER,
Able on, Logic, e c...) y la espues a en iempo eal del mismo, es deci , que emos la es-
pues a o el cambio que p oduce el plugin VST en la pis a de o ma ins an anea. Des acan
13
3 ipos p incipales de plugins:
1. E ec os de audio: Es e ipo de plugins desa ollan la unción de, oma una en ada
de audio digi al, p ocesa la o ans o ma la, y de ol e ese audio digi al modi icado.
Podemos des aca en e ellos el ecualizado , el comp eso o el e e b.
Figu a 2.7:Esquema de un e ec o de audio
2. Ins umen os i uales (VSTi): A di e encia de los e ec os de audio, es os plugins
lo que eciben es in o mación musical simbólica (e en os MIDI) y sin e izan audio a
pa i de ellos, log ando emula el sonido de ins umen os eales como sin e izado es,
bajos, o pianos, sin la necesidad de gas a se g andes can idades de dine o en ellos.
Figu a 2.8:Esquema de un ins umen o i ual
3. Secuenciado es/gene ado es MIDI: Es os plugins son pa ecidos a los p ime os que
hemos is o, los e ec os de audio, con la di e encia que en luga de ecibi audio digi al,
pueden ecibi MIDI, o no hace lo. Es o signi ica que ienen la capacidad de gene a ,
p ocesa y/o ans o ma MIDI. Algunos ejemplos des acables son el a pegiado , el
gene ado de aco des, el humanizado o, como en el caso del plugin que se desa olla
en es e p oyec o, el secuenciado , más conc e amen e, el secuenciado euclidiano.
Como e emos en la siguien e sección, hay a ios ipos de secuenciado es den o de los
plugins gene ado es/e ec os de audio, des acando el con encional, muchas eces con undido
14
Figu a 2.9:Esquema de un gene ado /e ec o MIDI
con la p opia DAW, y el secuenciado euclidiano. T as es udia como uncionan, pod emos
en ende los p ocesos que lle an a cabo es os plugins de p og ama y ep oduci e en os
musicales (MIDI) de una o ma secuencial con el in de compone y lle a un con ol sob e
equipos de música elec ónica (sin e izado es, cajas de i mos, sample s, e c...).
2.4. Secuenciado es
T as habe de inido lo que son los i mos euclidianos, a con inuación e emos como a día
de hoy se pueden consegui haciendo uso de secuenciado es.
La unión p incipal de es as he amien as es la de p og ama y ep oduci e en os mu-
sicales (MIDI) de una o ma secuencial con el in de compone y lle a un con ol sob e
equipos de música elec ónica (sin e izado es, cajas de i mos, sample s, e c...). Es os se-
cuenciado es MIDI pe mi en al usua io g aba y edi a música sin la necesidad de una uen e
de en ada de audio. Es os da os luego se ep oducen en un ins umen o MIDI o módulo de
sonido. Con es e mé odo, el in é p e e puede selecciona un sonido de piano pa a un ag-
men o musical y luego decidi que el agmen o unciona ía mejo como un sonido de ó gano.
1. Secuenciado es ánda : En su de inición más amplia, un secuenciado es un p o-
g ama o máquina ísica que pe mi e g aba , edi a y ep oduci e en os musicales,
siendo MIDI la in e az de con ol más común pa a ello. Debido a la amplia can idad
de máquinas y so wa e que se ecogen bajo es e é mino, es a no suele se la de inición
de secuenciado es ánda , en endiendose no malmen e po “secuenciado ” al secuen-
ciado de pasos. El é mino “secuenciado de pasos” ecoge máquinas y so wa e que
pe mi en gene a secuencias í micas di idiendo el i mo en pasos del mismo amaño.
Pa a ello se suele usa la ep esen ación de ejilla ( ease la igu a 2.10). Es a consis e
en una ma iz de huecos del mismo amaño que se pueden i ellenando, siendo los
huecos silencios, y los bloques ellenos pulsos sono os. Habi ualmen e el eje ho izon-
al ep esen a el iempo, mien as que el eje e ical a ía, pudiendo ep esen a , po
ejemplo, dis in os elemen os de un ki de pe cusión, no malmen e llamados d um ma-
15
chine( igu a 2.11) o las no as de un eclado, en cuyo caso el secuenciado se conoce ía
como piano oll ( igu a 2.12).
Figu a 2.10:Secuenciado Polyma h
Figu a 2.11:OneMo ion d um machine
Figu a 2.12:Secuenciado S ochas
2. Secuenciado euclidiano: Es e ipo de secuenciado es una muy buena al e na i-
a al clásico secuenciado po pasos an e io men e desc i o. Cambia el pa adigma de
p og ama los e en os MIDI y sus p opiedades en una línea empo al de un compás,
po la c eación de pa ones í micos euclidianos. En la p ác ica es o es mucho más
sencillo de cómo suena en la eo ía ya que, lo único que hay que hace es in oduci el
núme o de o al de pasos del compás, y el núme o de e en os o pulsos que deseamos
que enga, y se á el p opio plugin el que c ee el i mo, donde los pulsos in oducidos
es a án dis anciados unos de o os de la mane a más uni o me posible.
Además de es os dos pa áme os es posible ajus a muchos más, como la o ación del
i mo que an e io men e ha sido nomb ada, la no a MIDI que que emos que suene,
16
Figu a 2.13:Euclidean sequence PRO 2.1 - Alkman
le di ección en la que que emos que se in e p e e el i mo, la in ensidad de la no a y
o os pa áme os muy in e esan es.
A lo la go de es e abajo se i á es udiando el uncionamien o y la lógica de es e plugin
con el in de pode en ende lo y desa olla , aplicando lo ap endido, nues o p opio
plugin de secuenciado euclidiano.
17
2. E o - Seleccione P ese : P oducido po que se es á in en ando ca ga un
p ese sin an es habe sido seleccionado ninguno en la comboBox. El cuad o de
diálogo indica á que se debe selecciona un p ese .
Figu a 3.12:E o . Seleccione p ese pa a ca ga
3. E o - P ese Inexis en e: P oducido po que se es á in en ando ca ga un
p ese seleccionado en la comboBox que no exis e en el sis ema, es deci , que ese
slo es a acío. El cuad o de diálogo indica á más de alles.
Figu a 3.13:E o . El p ese seleccionado no exis e
Gua da p ese : En es a ope ación nos podemos encon a con 2 escena ios posibles:
1. Gua dado exi oso: Se p oduce cuando, as selecciona el p ese deseado en
la comboBox, se gua da el es ado del plugin de mane a co ec a en la ubicación
adecuada como se mues a en el cuad o de diálogo.
Figu a 3.14:P ese gua dado con éxi o
24
2. E o - Seleccione P ese : P oducido po que se es á in en ando gua da un
p ese sin an es habe seleccionado el slo o hueco en la comboBox. El cuad o de
diálogo indica á que se debe selecciona un slo donde gua da el p ese de los 8
posibles.
Figu a 3.15:E o . Seleccione slo donde gua da el p ese
25
Capí ulo 4
Implemen ación
En es e capí ulo se a a án los concep os que con o man el algo i mo del secuenciado
euclidiano, así como el so wa e que ha sido empleado pa a desa olla el plugin, y el código
usado pa a implemen a las dis in as uncionalidades. Con el in de ene un eposi o io
común donde odos los au o es pudiésemos accede pa a desca ga y subi los a chi os
necesa ios que se ue an desa ollando, y además lle a un cla o con ol de e siones, el
so wa e escogido ha sido Gi Hub. En el siguien e eposi o io se pueden encon a odos los
que o man el p oyec o:5.
4.1. Concep os básicos
Al ac i a cualquie a de las dis in as e apas del plugin, es a empeza á a gene a mensajes
MIDI en unción de los inpu s que in oduzca el usua io. La uncionalidad básica la o man
dos pa áme os: el núme o de pasos, que indica el o al de no as que iene un compás y
los e en os, que indica de es os pasos, cuán os han de sona y cuan os no (los pulsos del
compás). El algo i mo dis ibuye las no as que suenan y las que no de mane a au omá ica,
de acue do a la de inición de i mo euclidiano.
4.2. JUCE
JUCE es un ma co pa a el desa ollo de aplicaciones mul ipla a o ma o ien adas al audio
y la música de código abie o y desa ollado en C++. Cuen a con una ex ensa colección de
clases con uncionalidades en ocadas al p ocesamien o de audio, in e az de usua io, g á icos
y con e sión a JSON/XML en e o as, sob esaliendo en el apa ado de p ocesamien o de
audio debido a la g an can idad de unciones que iene pa a ello.
De odas las u ilidades que iene, la más in e esan e de ca a a es e abajo es la de
desa olla plugins. Cuen a con sopo e pa a c ea plugins con odos los o ma os es ánda
(VST, VST3, AU, AU 3, RTAS o AAX), siendo VST3 el empleado pa a es e p oyec o, ya
26
que se a a de uno de los más e icien es en cuan o al consumo de CPU y es compa ible con
los p incipales sis emas ope a i os.
Figu a 4.1:Pequeño ex ac o del Class index con odas las uncionalidades de JUCE
4.2.1. P ojuce
P ojuce es la he amien a de gene ación de p oyec os de JUCE. Su u ilidad p incipal
ecae en su capacidad de expo a p oyec os de JUCE a un IDE, del inglés En o no de
Desa ollo In eg ado. Una ez expo ados los a chi os y con igu aciones del p oyec o, P o-
juce gene a de mane a au omá ica los a chi os necesa ios pa a que el p oyec o se pueda
compila en la pla a o ma obje i o. Cuen a con compa ibilidad pa a XCode, Visual S udio,
Codeblocks y Linux Make iles.
4.2.2. Es uc u a de un plugin de audio en JUCE
Un plugin básico de JUCE cuen a con dos clases: PluginP ocesso yPluginEdi o .
PluginP ocesso es la clase que se enca ga de p ocesa odos los mensajes MIDI que a
a i gene ando el plugin. Cuen a con los siguien es mé odos pa a ello:
p epa eToPlay(): es e mé odo se llama nada más a anca el plugin, y en él se
incializan odas las a iables que sean necesa ias pa a el uncionamien o del mismo.
p ocessBlock(): es e mé odo se llama en in e alos de pocos milisegundos y es el
enca gado de ealiza la gene a ación y el p ocesamien o de e en os MIDI que se esc i-
ben en el bu e MIDI de salida, además de p ocesa ambién las señales de audio que
le llegan al plugin y de ol e las en el bu e de salida de mues as de audio, es deci ,
27
Figu a 4.2:Comienzo de un nue o p oyec o en P ojuce
es la unción p incipal de nues o p ocesado . Fijándonos en la Figu a 4.4 eamos un
sencillo ejemplo donde es a unción a ia á el olumen de la señal de audio que le
llegue median e un pa áme o con olado po el usua io:
Figu a 4.3:Sencillo ejemplo del uncionamien o de p ocessBlock
Pa a es e ejemplo solo end emos en cuen a el pa áme o de en ada bu e , que como
hemos comen ado, es el enca gado de p ocesa las señales de audio digi al. Como e-
mos al p incipio del algo i mo, lo p ime o que se hace es ecoge in o mación sob e el
núme o de canales de salida y en ada a ene en cuen a.
T as es o, y a modo de buenas p ác icas, ponemos el cocien e de a iación de olumen
28
awVolume a un ni el adecuado po de ec o, además de acia el bu e de salida
asegu ándonos así de que no haya señales esiduales.
A con inuación, i e a emos sob e odos los canales de en ada que enemos y lo que
ha emos se á, pa a cada uno de ellos, i e a sob e odos los samples que componen
la señal de dicho canal y mul iplica cada uno de es os samples po el cocien e de
a iación de olumen awVolume. Con es o lo que conseguimos es a ia el olumen
de cada señal que nos en a sample a sample po cada canal.
Po úl imo, cabe des aca que en es e caso, el alo awVolume i ía ligado a algún
componen e del PluginEdi o enca gado de ecoge la en ada del usua io.
PluginEdi o es la clase enca gada de man ene la in e az del plugin, se enca ga an o
de lee el inpu del usua io median e los di e en es componen es (slide s o a i os, cajas de
elección y bo ones), como de gene a los g á icos de o ma que se isualice el i mo que se
es á gene ando. Pa a p opo ciona y ecibi in o mación del p ocesado , es a clase cuen a
con un campo de ipo PluginP ocesso . Sus mé odos esenciales son:
pain (): es e mé odo se llama cada ez que es necesa io edibuja alguna pa e del
plugin y se enca ga de la gene ación de los g á icos del plugin.
esized(): se llama cada ez que las dimensiones del plugin a ían, y se enca ga de la
colocación de los dis in os elemen os que componen la in e az.
4.3. Clase EuclideanRhy hm
A pa e de la es uc u a p incipal que odo plugin de audio desa ollado en JUCE debe
ene , en nues o caso enemos además una clase llamada EuclideanRhy hm, cuya unción
es ep esen a un i mo euclidiano una ez es c eado (como e emos a con inuación) al-
macenando odos los pa áme os necesa ios pa a su co ec o uncionamien o en o ma de
a ibu os, además de g an can idad de unciones que pe mi en an o al PluginP ocesso
como al PluginEdi o in e ac ua con es e pudiendo ecibi in o mación pa a sabe en qué
es ado se encuen a y modi ica pa áme os del mismo, al e ando sus ca ac e ís icas.
4.3.1. A ibu os
En e muchos o os, los a ibu os más des acables po su impo an e elación an o con
la pa e que p ocesa el plugin, como con la que man iene su in e az son:
S eps,e en s y o a ion: Es os alo es en e os nos indican el núme o de pasos
o ales, e en os o pulsos, y o ación del i mo espec i amen e. Aba can desde 0 a 32
excep o los s eps, cuyo alo mínimo es 1.
29
EuclideanRhy hm: Es a secuencia de 1s y 0s es la u ilizada pa a almacena el i mo
donde los 1s ma can los e en os y los 0s los silencios.
Di ec ion, e e se ypingPong: Se enca gan, median e alo es booleanos, de indica
el sen ido hacia el cuál el i mo es in e p e ado. Di ec ion = ue indica á que el i mo
a en sen ido ho a io, has a que bien se ponga e e se = ue, donde ha á que el
sen ido se in ie a, o bien pingPong ome el alo de ue con lo que el i mo, cada
ez que llegue a su p ime s ep, in e i á su sen ido.
No eNumbe , eloci y: Enca gados de, po medio de alo es en e os, indica el alo
de las no as MIDI del i mo y la in ensidad de las mismas ( alo es de 0-127 donde 0
se ía in ensidad nula o silencio).
Figu eS ep yga e:Figu eS ep es un loa que, conec ado a una comboBox del Plu-
ginEdi o , nos da la posibilidad de elegi las igu as musicales de los pasos del i mo
( edondas - 1, blancas - 1/2, neg as 1/4, e c...). Po o a pa e, ga e es un en e o
que nos pe mi e decidi que po cen aje de esa igu a (en iempo) que emos que sue-
ne. Oscila en e un 0 y un 400 %, donde 0% se ía un silencio, y un 100%, el iempo
co espondien e a la igu a elegida.
T iple s ydo edNo es: Es os dos booleanos nos dan la posibilidad de hace que
las no as de nues o i mo se con ie an en esillos o en no as con pun illo.
Además de es os pa áme os que podemos modi ica di ec amen e in e ac uando con
dis in os componen es de la in e az, cabe des aca , po su u ilidad e impo ancia a la ho a
de hace el p ocesamien o, los siguien es a ibu os:
Index,bpm,sampleRa e: El alo en e o index nos indica la posición de la no a (el
paso) del a ibu o euclideanRhy hm an e io men e mencionado que se es á p ocesando.
El bpm y el sampleRa e po su pa e son alo es ecogidos de la DAW que nos indican
la can idad de pasos po minu o, o elocidad de ep oducción el p oyec o. Po o a
pa e el sampleRa e nos indica la ecuencia de mues eo del mismo, es deci , el núme o
de mues as po unidad de iempo que se oman de una señal, no malmen e 44100Hz
(44100 mues as de la señal en 1s).
s epDu a ion y imeS ep: Es os en e os ep esen an espec i amen e, la du ación
de un s ep en núme o de samples y el iempo en núme o de samples que lle a p ocesán-
dose ese s ep. (mismos dos pa áme os espec i amen e pa a las no as, no eDu a ion
y imeNo e, que dependiendo del alo de ga e coincidi án o no)
NumSamplesPe Ba ycu en Sample Pe Ba : Median e dos en e os, exp esan
el núme o o al de samples que iene el i mo, y el núme o del sample que acabamos
de p ocesa , lo que nos si e pa a e po qué pa e del i mo amos.
30
no esDu a ionMap: Po úl imo, pe o no menos impo an e, enemos es e mapa de
<in , in >donde el p ime alo iden i ica una no a MIDI y el segundo el núme o de
samples que lle a sonando. Es o nos ayuda a man ene las no as MIDI sonando o no,
de mane a que cuando es el u no de un e en o o pulso, se manda á el e en o MIDI
no eOn de la no a co espondien e al bu e MIDI de salida y se añadi á a es e mapa.
Es a pa a á de sona cuando su segundo alo , el co espondien e al núme o de samples
que lle a sonando, llegue al máximo ( imeNo e alcance el alo de no eDu a ion),
mandando un e en o MIDI no eO al bu e MIDI de salida.
4.3.2. Funciones
T as habe des acado los a ibu os undamen ales de es a clase, comen a emos las dos
unciones más impo an es que, jun os con odos los ge e s yse e s que la componen,
hacen que la clase EuclideanRhy hm enga una uncionalidad óp ima:
se _euclideanRhy hm(in s eps, in e en s): Es a unción es la enca gada de,
en unción en núme o de s eps y e en s que eciba, p oduci la secuencia de 1s y 0s
que con o man nues o i mo (a ibu o euclideanRhy hm). Además, dependiendo del
a ibu o o a ion, se le aplica á una o ación u o a (po de ec o es e alo es 0, a no
se que el usua io lo haya modi icado desde la in e az).
Figu a 4.4:Función se _euclideanRhy hm(in s eps, in e en s)
Es o es posible, al y como emos en la Figu a 4.4, g acias a dos unciones auxilia es
que di iden es e p oceso en dos e apas:
•calcula eRhy hm(s eps, e en s): Es a p ime a e apa del p oceso consis e en
ob ene el i mo euclidiano ep esen ado como una secuencia de 1s y 0s, donde los
1s (pulsos del i mo) queda án an equidis an es como sea posible. Pa a conse-
gui lo, en luga de usa el algo i mo que God ied Toussain desa olló en su pape
con es e come ido, y que en capí ulos p e ios ha sido explicado, hemos decidido
usa el algo i mo de B esenham 1, el cual pe mi e ob ene los mismos obje i os
pe o, desde nues o pun o de is a, con una implemen ación más sencilla.
• o a eRigh ( his->_ o a ion): La segunda e apa, as habe ob enido la se-
cuencia de 1s y 0s que ep esen an el i mo euclidano, consis e en aplica le el
núme o de o aciones que sea pe inen e, omando como pa áme o de en ada
el alo del a ibu o o a ion de la p opia clase (nó ese que, si es 0, la secuencia
de 1s y 0s queda ía igual).
31
con e BPMToTime(): Es a unción es ambién undamen al ya que es la que ob-
iene, desde los bpm y el sampleRa e del p oyec o, la du ación en samples de los s eps
y de las no as (la du ación en samples de las no as ambién depende del ga e como
hemos comen ado an es):
s epDu a ion =60 ∗sampleRa e ∗ igu eS ep
bpm .
no eDu a ion =60 ∗sampleRa e ∗( igu eS ep ∗ga e
100 )
bpm .
4.4. PluginEdi o
Como ya se ha desc i o an e io men e, es a es la clase enca gada de man ene la in e az,
manejando el con ol de la misma y con olando lo que se es á mos ando po pan alla.
4.4.1. A ibu os
Los a ibu os esenciales pa a el uncionamien o de es a clase son los siguien es:
audioP ocesso : Es e a ibu o es una e e encia al PluginP ocesso . De es e mo-
do se iene una mane a ápida y e icien e de acceso a los a ibu os y unciones del
PluginP ocesso , que, como amos a e , ha c eado a es e obje o PluginEdi o .
Bu ons, slide s ycomboBoxes: Con ienen la lógica de los bo ones, slide s y demás
elemen os de la in e az con los que el usua io puede in e ac ua . Los elemen os que
son pa icula es pa a cada una de las e apas del secuenciado , como po ejemplo el
núme o de pasos o de e en os, es án man enidos en un mapa, con una en ada pa a
cada una de las cua o e apas del secuenciado , ob eniendo así un código más limpio
y ácilmen e escalable.
A achmen s: Po cada elemen o de lode ecien nomb ados que co esponden a una
e apa (o i mo) del secuenciado , exis e su A achmen s co espondien e. La unción
de los A achmen es la de liga cada elemen o de la in e az con un pa áme o de
la es uc u a AudioP ocesso ValueT eeS a e. Es a es uc u a man iene el es ado com-
ple o del plugin en odo momen o, y es ú il an o pa a almacena con igu aciones de
pa áme os, como pa a pasa alo es al PluginP ocesso .
4.4.2. Funciones
A con inuacion se an a desc ibi las unciones más ele an es que con o man el Plugi-
nEdi o :
32
EuclideanSequence AudioP ocesso Edi o (EuclideanSequence AudioP ocesso &):
Es e es el cons uc o de la clase. En él se c ean odos los mapas que aloja án a bo o-
nes, slide s ycomboBoxes que an a con o ma la in e az. Además, ambién se ligan
a sus espec i os A achmen s y una ez inicializados con los alo es co espondien es
según su unción.
pain (juce::G aphics& g) ypain Rhy hm(juce::G aphics& g, in seqID, loa
inne Ci cleP op): El in de es a unción es el de pin a la ep esen ación g á ica de
los i mos que haya ac i os. Tiene un bucle en el que, po cada e apa del secuenciado
(máximo 4), coge uno de los mu ex pa a que no haya co upciones en memo ia u o os
e o es, y iene el co espondien e, llama a la unción pain Rhy hm. Dicha unción es
la que ealmen e se enca ga de ep esen a g á icamen e los i mos, en unción de los
pasos, e en os y demás pa áme os que con o man cada i mo. T as es a unción el
mu ex queda libe ado pa a que no hayas bloqueos en el plugin.
Figu a 4.5:Función pain (juce::G aphics& g))
se XPa ams: Es e g upo de unciones son las enca gadas de inicializa los dis in os
elem en os in e ac i os de la in e az. Po ejemplo, se No eNumbe ComboBoxPa ams
es la unción da los alo es iniciales de las ComboBoxes que de e minan la no a que
suena en cada i mo.
esized(): Es a unción es la enca gada de es ablece las posiciones de los dis in os
elemen os que componen la in e az.
bu onClicked() ycomboBoxChanged(): Son los lis ene s de los dis in os bo ones
ycomboBoxes. T as econoce cual ha sido el elemen o con el que se ha in e ac uado,
se enca gan de hace los cambios o llama a la unción ap opiada de PluginP ocesso .
disableComponen s(in id) yenableComponen s(in id): Ac i an y desac i an
los componen es de cada e apa del secuenciado . El pa áme o id indica de qué e apa
se a a de las 4 que hay.
33
Después de habe es ado in es igando y es udiando cada uno de mane a indi idual, empeza
a abaja de mane a conjun a ue ácil ya que los conocimien os que eníamos, además de
las ideas pa a el plugin, e an simila es, de mane a que lo que no sabía uno lo sabía el o o,
y sino, siemp e conseguíamos in es iga un poco y acaba solucionando el p oblema que nos
su gie a.
Como ya he dicho, el desa ollo del plugin ue casi en su o alidad de mane a sínc ona,
es deci , que las sesiones de abajo que empleábamos pa a desa olla el plugin e an simul-
áneas. Ya ue a de o ma p esencial, o abajando cada uno de mane a emo a (es ando en
ideollamada y haciendo uso de edi o es de código compa idos), los a ances que el aba-
jo ue eniendo se debie on a que ambos es ábamos in oluc ados en ellos. A con inuación
comen a é de mane a más explíci a cuáles ue on las apo aciones al abajo en las que yo
con ibuí:
Algo i mo de c eación de i mos euclidianos: Basándome en el an e io men e
mencionado Alo i mo de B esenham1, desa ollé un algo i mo que dándole el núme o
de pasos o ales y de e en os del i mo, de uel e una cadena de 1s y 0s donde los 1s,
co espondien es al núme o de e en os, es án epa idos de la mane a más uni o me
posible.
S eps slide yE en s slide : C eación y asociación de dos con olado es a los
pa áme os s eps ye en s.
Algo i mo p incipal: Desa ollo del algo i mo p incipal de p ocessBlock que i e a
sob e cada paso del i mo y c ea y maneja los e en os MIDI de o ma co ec a.
Ro a ion slide yNo eNumbe comboBox: C eación y asociación de dos con o-
lado es a los pa áme os o a ion yno eNumbe .
No eDu a ion comboBox: C eación y asociación del con olado al pa áme o no-
eDu a ion.
Mul i e apa: Diseño e implemen ación del modo mul i e apa del plugin (máximo 4
e apas).
Veloci y slide : C eación y asociación del con olado al pa áme o eloci y.
Limpieza y op imización de código: Limpieza y op imización de odo el código
del p oyec o pa a un óp imo escalado.
On/O bu ons: Implemen ación de un bo ón de On/O po cada e apa, que c ea
o des uye el i mo co espondien e.
Re e se mode: Implemen ación del bo ón Re e se, enca gado de in e i la di ección
del i mo (hace que se p ocese en sen ido an i-ho a io).
40
Ping-Pong mode: Implemen ación del bo ón Ping-Pong, enca gado de hace que la
di ección del i mo pase a modo ping-pong (cambie de sen ido cada ez que llega al
p incipio/ inal del compás).
Re-sync bu on: Implemen ación del bo ón Re-sync, enca gado de sinc oniza odos
los i mos haciéndolos empeza a odos de nue o el compás.
Diseño e implemen ación de la in e az: Diseño e implemen ación de la ep esen-
ación g á ica de los i mos del plugin.
T iple s bu on yDo ed bu on: Implemen aciónes de las uncionalidades de e-
sillo y no as con pu illo haciendo uso de dos bo ones.
Reconocimien o y ex inción de e o añadiendo concu encia: Ex inción de
un e o que sal aba al co ompe se el heap po que el PluginEdi o accedía a pa es de
memo ia que no debía. Es o e a debido a modi icaciones en ese ins an e de la memo ia
po el PluginP ocesso . Éxi o en la co ección haciendo uso de un mu ex en el ins an e
óp imo.
Gua da /Ca ga es ado: Implemen ación del ca gado y gua dado de p ese s me-
dian e un pa de bo ones y una comboBox.
Ex inción de e o es: Ex inción de múl iples c ashes que se p oducían al deja de
isualiza (minimiza ) y luego ol e a hace isible el plugin en una DAW.
Ve sión inal del plugin: Re oques inales en el plugin y e isión de código.
5.2. Gonzalo Cos ales de Ledesma
P e io al comienzo de es e abajo mis conocimien os sob e el p ocesamien o de audio
e an escasos. Si bien sabía maneja DAWs, plugins y conocía el p o ocolo MIDI, mi conoci-
mien o sob e como se implemen aban es os e a nulo.
Como ya ha comen ado mi compañe o Da id, nues a mane a de abo da es e p oyec o
consis ió en consul a de mane a asidua la documen ación de JUCE, ealiza los u o iales
p opues os en su web y e ideos de You ube. En conc e o, el ejemplo que más me si ió
pa a es e abajo ue el del a pegiado simple, que ilus a de mane a muy simple la gene a-
ción y p ocesamien o de mensajes MIDI. Fue a pa i de es e ejemplo como empezamos a
concep ualiza y p og ama el bloque de p ocesamien o de nues o plugin.
El desa ollo del secuenciado se ealizó en su g an mayo ía de mane a conjun a con Da id,
como ya ha explicado p e iamen e, po lo que es di ícil sepa a las a eas en e los dos. A
con inuación oy a explica más en p o undidad las a eas que se ealiza on y dis ingui mi
pa e en ellas, en la medida de los posible:
Algo i mo p incipal: Es a es la unción básica del algo i mo y es, sin luga a du-
das, la a ea que más iempo conlle ó, ocupando al ededo de 12 ho as, odas ellas
41
abajadas con Da id. De a ibui me algo especí icamen e de es a e apa, se ía la idea
de la ep esen ación in e na del secuenciado , basándome en la idea de ep esen a el
i mo como una ci cun e encia y man ene una aguja que apun a al iempo ac ual, así
como las ó mulas pa a man ene la posición de es a aguja en caso de que cambiase el
compás.
No eDu a ion comboBox: C eación y asociación del con olado al pa áme o no-
eDu a ion. Se p og amó en e amen e de mane a conjun a jun o a Da id. Llegamos
jun os a la conclusión de que e a necesa io un mapa pa a man ene odas las no as
que es u ie an sonando a la ez (en el caso de que la du ación de cada no a ue a
supe io al iempo que se a da en laanza la siguien e no a) po lo que en es a pa e
es imposible sepa a las pa icipaciones de cada uno.
Mul i e apa: Diseño e implemen ación del modo mul i e apa del plugin (máximo 4
e apas). Es a pa e ue sencilla de implemen a , simplemen e ue necesa io c ea cua o
obje os donde an es había solo uno. La p og amación se ealizó de mane a conjun a,
así que es a pa e ampoco se puede sepa a .
Veloci y slide : C eación y asociación del con olado al pa áme o, al igual que el
caso an e io , ue sencillo y se p og amo de mane a conjun a. eloci y.
Limpieza y op imización de código: Limpieza y op imización de odo el código del
p oyec o pa a un óp imo escalado. En es a pa e se ag upa on odos los elemen os de
cada e apa en mapas de cua o elemen os(uno po cada e apa), además de implemen a
un código de nomb ado pa a los ids de cada elemen o (po ejemplo el id del slide de
s eps de la e apa 1 se ía “STEP_SLIDER_1”). Se ealizó en su en e idad de mane a
conjun a.
T iple s bu on yDo ed bu on: Implemen aciónes de las uncionalidades de e-
sillo y no as con pu illo haciendo uso de dos bo ones. La idea de la implemen ación
ue mía y la p og amación conjun a.
Reconocimien o y ex inción de e o añadiendo concu encia: Ex inción de
un e o que sal aba al co ompe se el heap po que el PluginEdi o accedía a pa es de
memo ia que no debía. Es o e a debido a modi icaciones en ese ins an e de la memo ia
po el PluginP ocesso . Éxi o en la co ección haciendo uso de un mu ex en el ins an e
óp imo. Realizado de mane a conjun a mien as haciamos el debug de la in e az.
Selec o de canal MIDI: Implemen ación del bo ón del selec o de canal MIDI pa a
pode manda dis in as ins ancias a dis in os ins umen os. Impelmen ación mía, pe o
Da id ayudó en el debug.
Gua da /Ca ga es ado: Implemen ación del ca gado y gua dado de p ese s me-
dian e un pa de bo ones y una comboBox. Realizamos la in es igación de amne a
conjun a y p og amamos una pa e, si bien la mayo ía de la implemen ación ue labo
de Da id.
42
Ex inción de e o es: Ex inción de múl iples c ashes que se p oducían al deja de
isualiza (minimiza ) y luego ol e a hace isible el plugin en una DAW. Realizado
de mane a conjun a.
Ve sión inal del plugin: Re oques inales en el plugin y e isión de código. Realizado
de mane a conjun a.
43
Capí ulo 6
Conclusiones y T abajo u u o
6.1. Conclusiones
Es e p oyec o, como bien sabemos, ha consis ido en el diseño e implemen ación de un
secuenciado euclidiano, inalizando con un plugin que ha cumplido los obje i os iniciales
y o ece la uncionalidad espe ada. Además. cuen a con una in e az g á ica de usua io que
pe mi e a los usua ios gene a has a cua o i mos euclidianos simul áneos de o ma sencilla
e in ui i a.
Además de su unción básica, se han desa ollado nume osas uncionalidades adicionales
que le dan mayo e sa ilidad a la ho a de gene a i mos. Con la unción de o ación es
posible ob ene cualquie i mo euclidiano posible. La capacidad de hace i mos u ilizando
esillos o no as con pun illo da o a capa de posibilidades in e esan es a los i mos gene-
ados. Pode selecciona la no a, implica que el p opio plugin es capaz de gene a e en os
MIDI sin necesidad de un eclado ni ningún ipo de con olado . O a ca ac e ís ica des a-
cable es la capacidad de gua da y ca ga p ese s, lo que hace que sea muy cómodo ol e a
abaja con i mos que se han gene ado con an e io idad, y pode expe imen a con ellos,
sin eme que no puedas ol e a ecupe a ese i mo inicial.
Respec o al p oceso de desa ollo del plugin, los miemb os del equipo podemos a i ma
que ha sido un e o debido a que nunca habíamos abajado con JUCE, ni nos habíamos
en en ado al p ocesamien o audio/MIDI o a la gene ación de una in e az g á ica de usua io
como es a. A pesa de que ha sido di ícil, hemos dis u ado ap endiendo cómo unciona el
p ocesamien o de audio digi al, las DAWs y odas las ecnologías que hemos empleado en
el desa ollo de es e plugin. Resumiendo, ha sido un p oceso muy en iquecedo y g a i ican e.
44
6.2. T abajo u u o
Pa iendo del hecho de que el plugin ha cumplido con los obje i os iniciales espe ados,
algunas o as ca ac e ís icas y uncionalidades que pod ían se in e esan es de implemen a
en el u u o pa a amplían aún más su uncionalidad son:
En p ime luga , se ía in e esan e la posibilidad de implemen a un a pegiado pa a
cada i mo. Es o ex ende ía la capacidad de elegi la no a que suena en cada secuencia-
do , con la posibilidad de pode elegi a ias no as, ya sean aco des, escalas o cualquie
combinación de no as que el usua io desee, de modo que el i mo i e e sob e la lis a
esul an e de no as en cada paso de la secuencia, p opo cionando una pe sonalización
melódica a los i mos.
O a ca ac e ís ica in e esan e se ía la de implemen a di e en es is as pa a la in e az
g á ica, de modo que el usua io pueda cambia y usa la que más cómoda le pa ezca
según sus p e e encias. Dos posibles ideas que se han conside ado son: una opción
donde la ep esen ación de los i mos es á sepa ada, y no ep esen ados odo ellos
concén icamen e como aho a sucede, y o o diseño con los i mos desplegados en una
ec a, yendo es a ep esen ación más aco de con los secuenciado es es ánda .
Nues a úl ima idea elacionada con el abajo u u o consis e en desplega es e plugin
y odas sus uncionalidades en un disposi i o ísico. Es o pe mi i ía, en e o os usos
múl iples, el b inda al usua io la opo unidad de ealiza shows en i o u ilizando
es a inc eíble he amien a, cambiando la ípica mesa de DJ po es e disposi i o y
abandonando la ía con encional.
45
Capí ulo 7
In oduc ion
7.1. Mo i a ion
7.1.1. His o ical con ex
A e many ideas h oughou he la e XIX cen u y and he en i e XX cen u y abou
musical c ea ion wi h he use o echnologies, inally in he 1980s his concep became in o a
eal p ac ice wi h he launch o digi al syn hesize s by Yamaha, speci ically, he DX se ies.
The popula i y o hese ins umen s capable o p oducing sounds using pu ely digi al ci cui s
was such ha , he Yamaha DX7, eached a numbe o sales ha place i oday as one o
he bes -selling syn hesize s in he his o y.
Figu a 7.1:Yamaha DX7
In his ansi ion e a om analog o digi al, i is wo h highligh ing some e en s such as:
The elease o he CD o compac disc in 1982, by Sony and Philips oge he a e
se e al indi idual p o o ypes, which changed he way music is sha ed by in oducing
he abili y o s o e and play digi al audio.
46
In 1985 he launch o Commodo e Amiga, a pe sonal compu e wi h a e y a o dable
p ice and g ea mul imedia capabili ies ha boos ed music p oduc ion using echno-
logy.
The de elopmen and p esen a ion o MIDI (Musical Ins umen Digi al In e ace),
a echnological s anda d ha desc ibes a p o ocol, a digi al in e ace and connec o s
ha make i possible o anspo and s o e symbolic musical in o ma ion, o musical
e en s (commonly called MIDI e en s) be ween compu e s, musical ins umen s and
ha dwa e.
7.1.2. Digi al Audio Wo ks a ions
Nowadays, music p oduc ion and digi al audio a e going h ough hei bes momen ,
since anyone wi h no an ad anced knowledge can de elop mo e han espec able musi-
cal p ojec s wi hou no equi emen s o a p o essional music s udio o la ge in es men s o
money. This is la gely due o he so-called Digi al Audio Wo ks a ions o DAWs (Digi al
Audio Wo ks a ions), digi al audio eco ding, edi ing and p oduc ion sys ems composed o
so wa e ools (plugins, i ual ins umen s, e c ...) and ha dwa e (mic ophones, moni o s,
e c ..).
Du ing he second hal o he XX cen u y, DAWs we e composed en i ely o ha dwa e
componen s (wi h exclusi e so wa e dedica ed o i ) since he compu e s limi a ions o he
ime we e ema kable. When hese limi a ions o da a s o age and p ocessing we e educed,
DAWs e ol ed o a poin whe e e e y hing ha was needed o p oduce digi al audio, ha
easily ull illed a s udio and was qui e expensi e, became basically a so wa e ool. This ool
can be used on con en ional compu e s and e en mobile de ices equi ing no hing mo e
han an in e ace so he use can inpu audio and MIDI e en s in o he de ice ob aining a
playable audio ou pu on o he de ices.
These complex so wa e a e used om he mos basic use s o he bes s udios a ound
he wo ld due o h ee main easons:
Mul i- ack en i onmen : I o e s he abili y o wo k wi h mul iple acks inde-
penden ly.
La ge ex ension: I p o ides us wi h an ex ensi e p ojec du a ion, easily exceeding
5 hou s, o e en mo e, depending on he sample a e we a e wo king wi h.
De aul quali y ools included: DAWs come equipped wi h so wa e such as syn he-
size s o sample s among o he s, and wi h audio e ec s such as equalize s, comp esso s,
e e bs, e c. In addi ion, o he de aul se o ools we can add an in ini y o i ual
ins umen s, e ec s and plugins ha e e ybody can easily acqui e.
47
Figu a 7.2:REAPER’s g aphical use in e ace
7.1.3. Plugins
As we ha e p e iously men ioned, DAWs come wi h a se o de aul ools whe e which
you can also add an in ini y o ex a unc ionali ies hanks o di e en ex ensions among
which a e he VST plugins.
VST, om he ac onym Vi ual S udio Technology11, is a s anda d de eloped by he
Ge man company S einbe g whose pu pose is o o e he possibili y o de eloping and con-
nec ing e ec plugins and audio syn hesize s wi h DAWs. Apa om VST, he e a e o he
s anda ds such as AU (Apple) o AAX (A id Audio), howe e , VST is he mos used o all.
In he nex chap e we will go deepe alking abou bo h he s uc u e o DAWs, as well
as he h ee la ge g oups o plugins ha a e used in hem: audio e ec s (whose unc ion is
o ans o m audio), i ual ins umen s (which gene a e audio in e p e ing MIDI e en s)
and MIDI sequence s o gene a o s (which assis in he wo k o sequencing o p og amming
musical e en s).
7.2. Objec i es
Wi h his p ojec he main objec i e we wan o co e is o c ea e a MIDI gene a o
ha allows he use o es a pa adigm you a e no used o when i comes o c ea ing and
con igu ing hy hms. The implemen a ion o his gene a o as a plugin wi h he VST s an-
da d b ings accessibili y o any use and e sa ili y o being able o use i on you a o i e
digi al audio wo ks a ion.
In addi ion, he ollowing seconda y objec i es a e p oposed:
Show a p o essional in e ace, a he same ime ha is iendly and easy o unde s and
by he use , wi hou ha ing o ead la ge manuals.
48
O e he possibili y o c ea ing hy hms wi h up o ou o hem a he same ime.
This means ha in he same ins ance o he plugin, you can p oduce ou di e en
hy hmic pa e ns simul aneously.
Allow you o connec he ou pu o he plugin o he MIDI channel o he digi al audio
wo ks a ion you wan , connec ing he desi ed ins umen o sound in each ins ance.
O e a com o able con ol panel whe e he use can con igu e as desi ed he di e en
pa ame e s o he hy hm hey wan o ob ain.
Possibili y o synch onize all he hy hms ha a e playing a a gi en momen so ha
hei pa e ns s a again om he beginning. This will allow he use o ha e con ol
o e he synch oniza ion wi hou ha ing o s op and esume he hy hms all he ime.
O e he unc ionali y o sa ing and loading p ese s o he use , so ha plugin con i-
gu a ions and hy hms pa ame e s can be loaded and sa ed a he ime you wan .
To conclude, and speaking o ou pe sonal lea ning, he objec i es we p opose a e he
ollowing ones:
De elop a good wo k s uc u e and a good o ganiza ion ha acili a e he lea ning
and collabo a ing p ocesses, whe e synch oniza ion and communica ion wi h he o he
membe o he eam is op imal so ha he pe o mance is he bes .
Lea n how o use and deal wi h new ools and so wa e such as he JUCE amewo k,
so ha he p og ess o he p ojec and he de elopmen o ou ideas and objec i es
a e way easie .
Face p oblems and si ua ions ha we ha e no aced du ing ou lea ning in he ca ee ,
and being able o sol e hem by esea ching and acqui ing new knowledge ha will
e y possibly be use ul o us in he u u e.
7.3. Wo k Plan
Once he objec i es o he p ojec ha e been es ablished and ha ing desc ibed he mo-
i a ions o he same, i is ime o desc ibe he p ocess ha we ha e ollowed o ca y ou
he p ojec wi h he ul illmen o hese men ioned objec i es.
The i s s eps o his wo k we e o in es iga e he o igin o he Euclidean sequence ,
which led us o unde s and how Euclidean hy hms eme ged, and how, nowadays, hey a e
p esen a ound he whole wo ld. A e unde s anding hese, he nex s ep was o de elop an
algo i hm ha was capable o p oducing hese hy hms, p o iding i as inpu he numbe
o s eps o he hy hm, and he numbe o e en s ha i had so ha i dis ibu ed hem
e enly c ea ing he ele an hy hm.
49