Uni e sidad del País Vasco
G ado en Ingenie ía In o má ica de Ges ión y Sis emas
de In o mación
He amien a de con e sión
de no ación de aco deón dia ónico
a pa i u a uni e sal:
Compilado y aplicación web
T abajo Fin de G ado
Au o : Al a o Luzu iaga Aguila
Di ec o : Iñigo Pe ona Balda
Co-di ec o : Iñigo Mendialdua Bei ia
Cu so: 2020-2021 Fecha: 26 de julio de 2021
Resumen
El p oyec o aquí documen ado ha sido el esul ado de la in es igación y abajo p esen ado co-
mo p opues a de solución, a un p oblema eal exis en e en el mundo de la música. El p oblema
en cues ión in oluc a a los ‘ iki ixala is’ y su especí ica mane a de lee y esc ibi las pa i u as
que después llegan a in e p e a . Es e ipo de no ación llamado usualmen e ‘zenbakizko’ no ie-
ne ninguna elación con la esc i u a de pa i u a en pen ag ama adicional del que odos es án
acos umb ados.
Po an o, median e he amien as in o má icas y del desa ollo del so wa e, se ha desa ollado
una he amien a capaz de supli es e p oblema de mane a sencilla pa a odo usua io habi uado a
es e lenguaje an único de la ‘ iki ixa’.
Po consiguien e, la elabo ación de dicha he amien a ha cons ado de la c eación de un lenguaje
in e medio comp ensible y amigable pa a cualquie ‘ iki ila i’. Es e lenguaje se á la en ada del
compilado , el cual se ha con eccionado a a és de los analizado es Flex y Bison, con los cuales es
posible p ocesa la léxica y g amá ica eque ida pa a es e p oyec o.
El p oceso de compilación da como esul ado un a chi o en no ación Lilypond, pudiendo ob ene
a a és del p og ama del mismo nomb e una pa i u a de pen ag ama de allada en o ma o PDF,
PNG incluso audio MIDI.
Pa a que odo usua io enga acceso a es as he amien as se ha alido del amewo k de desa ollo
web Django, esc i o en su mayo ía en Py hon y HTML. Así se o ece á dicho compilado de mane a
cla a a odo quien necesi e de su uso.
La memo ia se ha elabo ado en el edi o online O e lea , edi o colabo a i o donde pode esc ibi
documen os en L
A
TEX. Es a incluye una in oducción al p oyec o, la plani icación y ges ión del
mismo, obje i os a cumpli y al e na i as alo adas, el diseño y desa ollo del compilado y la web,
así como las p uebas de los mismos.
Finalmen e se incluyen apéndices de allando el signi icado de la no ación ‘zenbakizko’ de la
iki ixa, p o undización en la no ación Lilypond y la g amá ica del lenguaje in e medio.
i
Índice gene al
Índice de ablas V
Índice de igu as VIII
Glosa io IX
1. In oducción 1
1.1. Mo i ación y obje i os .................................. 2
1.2. Plan eamien o del p oblema ............................... 4
1.3. Es uc u a de la memo ia ................................ 5
2. Plan eamien o inicial 7
2.1. Es uc u a ......................................... 7
2.2. He amien as y lenguajes ................................ 8
2.3. Plani icación ....................................... 10
2.4. Ges ión Riesgos ...................................... 17
2.5. E aluación económica .................................. 23
3. Cap u a de Requisi os 26
3.1. Obje i os ......................................... 26
3.2. Análisis de an eceden es ................................. 27
4. Análisis y diseño 33
4.1. Casos de uso ....................................... 33
4.2. Pa ón MVT ....................................... 35
ii
5. Compilado 38
5.1. Lenguaje in e medio ................................... 38
5.2. Lilypond .......................................... 52
5.3. Flex & Bison ....................................... 57
5.4. Ejecución ......................................... 70
6. Web: Django 75
6.1. Ins alación ......................................... 75
6.2. Fiche os .......................................... 76
6.3. Ejecución y uso ...................................... 79
7. P uebas de so wa e 83
7.1. Compilación y c eación de pa i u a .......................... 84
7.2. Funcionalidades de la Web ................................ 89
8. Conclusiones 93
Bibliog a ía 97
A. Esc i u a de iki ixa 99
B. Lilypond 104
B.1. Ve sion .......................................... 107
B.2. Fo ma o .......................................... 107
B.3. Pen ag ama ........................................ 107
B.4. No as ........................................... 108
B.5. Signos de epe ición ................................... 110
B.6. Resul ado ......................................... 110
C. G amá ica del lenguaje in e medio 111
iii
Índice de ablas
2.1. Tabla de plani icación empo al ‘Plani icación y ges ión’ ............... 12
2.2. Tabla de plani icación empo al ‘Diseño’ ........................ 13
2.3. Tabla de plani icación empo al ‘Implemen ación’ ................... 13
2.4. Tabla de plani icación empo al ‘P uebas y documen ación’ ............. 14
2.5. Tabla de plani icación empo al ‘P esen ación’ ..................... 14
2.6. ‘Ac ualización de equisi os’ de los Riesgos Técnicos ................. 17
2.7. ‘Pé dida de p og eso’ de los Riesgos Técnicos ..................... 17
2.8. ‘E o de Diseño’ de los Riesgos Técnicos ....................... 18
2.9. ‘E o de Implemen ación’ de los Riesgos Técnicos .................. 18
2.10. ‘Fallos de Ha dwa e’ de los Riesgos Técnicos ...................... 19
2.11. ‘Aplicación de ec uosa’ de los Riesgos Técnicos .................... 19
2.12. ‘Inco ec a dis ibución de a eas’ de los Riesgos de Ges ión ............. 20
2.13. ‘Fal a de seguimien o’ de los Riesgos de Ges ión .................... 20
2.14. ‘Incumplimien o de echas de en ega’ de los Riesgos de Ges ión ........... 21
2.15. ‘Incapacidad de abajo pe sonal’ de los Riesgos In e nos ............... 21
2.16. ‘P io ización e ónea de a eas’ de los Riesgos In e nos ................ 22
2.17. ‘Incapacidad de comunicación con los supe iso es’ de los Riesgos Ex e nos . . . . 22
2.18. ‘Insa is acción del abajo ealizado’ de los Riesgos Ex e nos ............. 22
2.19. Cos e de la mano de ob a ................................ 23
2.20. Cos es del Ha dwa e ................................... 24
2.21. Cos es de amo ización .................................. 24
2.22. Gas os a ios ....................................... 25
2.23. Cos e o al del p oyec o ................................. 25
i
4.1. Compa ación en e los pa ones MVC y MVT ..................... 35
5.1. Rep esen ación de los bo ones de la melodía en el lenguaje in e medio ....... 41
5.2. Rep esen ación de múl iples bo ones simul áneos de la melodía ........... 42
5.3. Compa ación en e analizado es sin ác icos LL y LR ................. 59
7.1. Compilación y c eación de pa i u a (1) ........................ 84
7.2. Compilación y c eación de pa i u a (2) ........................ 85
7.3. Compilación y c eación de pa i u a (3) ........................ 86
7.4. Compilación y c eación de pa i u a (4) ........................ 87
7.5. Compilación y c eación de pa i u a (5) ........................ 88
7.6. Funcionalidades de la Web (1) .............................. 89
7.7. Funcionalidades de la Web (2) .............................. 90
7.8. Funcionalidades de la Web (3) .............................. 91
7.9. Funcionalidades de la Web (4) .............................. 92
B.1. No as musicales en Lilypond ............................... 108
B.2. Medidas en Lilypond ................................... 109
Índice de igu as
1.1. T iki ixa con encional .................................. 2
1.2. Compa ación ap oximada: esc i u a iki ixa - esc i u a pen ag ama
Pa i u a: Ikusi mendizaleak ............................... 3
1.3. He amien as p incipales del plan eamien o ...................... 5
2.1. Es uc u a del p oyec o ................................. 7
2.2. Ciclo de ida del p oyec o ................................ 11
2.3. Diag ama EDT del p oyec o ............................... 11
2.4. Diag ama Gan de las a eas .............................. 15
2.5. Tabla de iempos y du ación del diag ama Gan ................... 16
3.1. Ejemplo de O e lea ................................... 31
3.2. Ejemplo de Hacklily ................................... 31
3.3. Ejemplo de F escobaldi .................................. 32
4.1. Caso de Uso: Compila .................................. 33
4.2. Pa ón MVT ....................................... 36
4.3. Pa ón MVT ....................................... 37
5.1. Tipos de lenguajes .................................... 39
5.2. Bo ones de la iki ixa .................................. 40
5.3. Bo ón Nº 11 de la melodía ................................ 40
5.4. Ejemplo del «lenguaje in e medio» ........................... 40
5.5. Múl iples bo ones con el uelle abie o ......................... 42
5.6. Múl iples bo ones con el uelle ce ado ......................... 42
i
me ónomo, indicado es de exp esión í mica como mode a o,adagio,p es o e c.
Te minal En el ámbi o de los compilado es se e ie en como no- e minales a símbolos básicos con
los cuales las cadenas de ex o son o madas. Con ‘ e minales’ se e ie en a que son la
o ma más básica del léxico u ilizado en ese lenguaje y no se puede simpli ica .
Token Salida p oducida po un analizado léxico después de p ocesa una en ada como el código
uen e de un p og ama. Suele se la p ime a ase de un compilado .
Tonalidad En la música se conside a onalidad a la implicación de una o ganización je á quica
pa a las elaciones en e dis in as al u as de las no as, dependiendo de la consonancia
sono a con espec o a la ónica de dicha onalidad. Siendo es a ónica una no a, aco de
y escala dia ónica.
Tónica La ónica o no a ónica e e encia al p ime g ado de la escala musical en un sis ema onal,
de iniendo en onces la onalidad.
Tono Se puede conside a el ono como el in e alo equi alen e a dos semi onos. También es el
g ado de ele ación del sonido dependien e de las can idades de ib aciones po segundo.
T esillo Conjun o de es no as de mismo alo de du ación, las cuales se in e p e an en el mismo
iempo co espondien e al alo de dos de ellas. Pa a indica es e a amien o especial,
se señala con un ‘3’ encima o debajo del g upo.
xii
CAPÍTULO 1
In oducción
El ema del TFG (T abajo Fin de G ado) aquí desa ollado ha sido p esen ado po los p o eso es
Iñigo Pe ona e Iñigo Mendialdua. Su idea pa e como inicia i a de ace ca la esc i u a u ilizada
po un ipo de aco deonis as p opio de Euskadi, los conocidos como «T iki ila is», a la esc i u a
musical más con encional, la de las pa i u as basadas en pen ag amas. A su ez, los músicos más
acos umb ados a las pa i u as de pen ag ama, pod án ace ca se a conoce es e ipo de esc i u a
p opio de los iki ila is.
Siendo el ins umen o de es os in é p e es la conocida como «T iki ixa» (Figu a 1.1), un ipo de
aco deón pequeño que se lle a usando desde el siglo XIX en el País Vasco, y los « iki ila is» los
in é p e es ins uidos en el uso manejo de es e ins umen o [1], es os son gene almen e habi uados
a lee y ejecu a ob as musicales con un ipo de calig a ía y simbología p opia, que no iene ninguna
elación con o a esc i u a gene almen e conocida.
Es e ipo de lenguaje musical p opio de la iki ixa, es á basado p incipalmen e en sus cualidades
como ins umen o de ien o además de como aco deón dia ónico. En la misma se iene en cuen a
el es ado del uelle (abie o o ce ado), el o los bo ones a pulsa , si se es á leyendo melodía o bajo,
la digi ación de cada pulsación e c. Toda la g amá ica es á basada en núme os pa a las no as, y
símbolos pa a la digi ación y demás signos. No exis e ninguna elación con la ya conocida esc i u a
clásica en pen ag ama, más que se ambas esc i u as o ien adas al ámbi o musical. De hecho, es a
esc i u a numé ica, ca ece o almen e de exp esiones de in ensidad y de inición í mica. Po ello,
los aco deonis as suelen deduci el i mo a oído o escuchando p e iamen e a o o in é p e e oca la.
1
Se da el caso en onces, de que ins umen is as de ambas disciplinas engan que in e p e a a la ez
una ob a. Si bien sono amen e pueden llega a en ende se, exis en las ocasiones en las que la al a
de comunicación y comp ensión esc i a pueda da se. Asimismo muchos ins umen os olcló icos
pe du an po que han ace ado en o ques ase con o os ins umen os, y en es e sen ido pode
esc ibi se en pa i u a basada en pen ag amas y ene he amien as que acili en es a esc i u a
apo a a que pe du en.
Figu a 1.1: T iki ixa con encional
1.1. Mo i ación y obje i os
Con lo comen ado p e iamen e emos que exis e un p oblema eal, a la ho a de que e euni
iki ila is con o o ipo de ins umen is as pa a que e in e p e a cie o ipo de ob as. En muchas
ocasiones unos no son capaces de comp ende el lenguaje esc i o del o o y es a al a de comunica-
ción puede llega a en o pece el p opio ensayo de la ob a. Es a incomp ensión sucede dado a que
los iki ila is leen y esc iben pa i u as de una mane a pa icula , a la que se llama á esc i u a
«numé ica», ya que en euske a es conocida como «zenbakiz».
Al e como es e con a iempo puede llega a en o pece el ap endizaje y elabo ación de una
ob a musical en el ámbi o g upal en e músicos de dis in a especialidad, se ha que ido p opone una
solución y una posible implemen ación pa a la solución de es e asun o. Así, se ha que ido elabo a
una he amien a que pueda ace ca ambas esc i u as, pa iendo de p ime a mano de la esc i u a
«numé ica» pa a ob ene una con e sión a la ya comen ada pa i u a clásica en pen ag ama (Figu a
1.2).
2
Figu a 1.2: Compa ación ap oximada: esc i u a iki ixa - esc i u a pen ag ama
Pa i u a: Ikusi mendizaleak
Además de que como pianis a, me he encon ado en si uaciones muy pa ecidas a la ho a de
acompaña a un ins umen is a o oca en conjun o con algún g upo. Puedo deci de p ime a mano
que es un con a iempo eal que solucionado, es muy posible que aho e iempo y es ue zo a odos
los que lleguen a encon a se con es a si uación.
Po ello se ha que ido es ablece dos obje i os p incipales pa a pode llega a sol en a la si-
uación aquí expues a. Siendo es os obje i os un compilado pa a la ans o mación de esc i u a
numé ica o «zenbakiz» a pa i u a adicional. Y una página web accesible a odo el que es é
in e esado en usa es a he amien a de mane a sencilla pa a cualquie usua io.
3
1. Compilado : iene la unción de p ocesa un lenguaje in e medio ideado pa a aseme-
ja se a la esc i u a numé ica, en un ipo de no ación capaz de mos a pa i u as en
pen ag amas.
2. Página web: es la pla a o ma de la que se ald án los usua ios pa a in e ac ua con el
compilado de di e sas o mas.
Los obje i os más de allados y especí icos ienen de inidos en el Capí ulo 3.1
1.2. Plan eamien o del p oblema
A in de encon a una esolución a es e p oblema, se desa olla á un lenguaje in e medio. Es e
lenguaje quie e asemeja se lo máximo posible a lo que se ía una pa i u a de iki ixa pe o ep e-
sen ada en un iche o de ex o, ya que nues o obje i o es que cualquie usua io dada una sencilla
guía pueda usa lo sin mayo es incon enien es. Pa a ello, se pa i á desde la página web de T iki-
i auki1, la cual es una web de dominio público en la que es posible c ea , isualiza y compa i
pa i u as de es e ipo de esc i u a «numé ica». Analizando dichas pa i u as se desa olla á dicho
lenguaje con su p opia es uc u a y g amá ica.
Se c ea á y de ini á un compilado po medio de Flex y Bison. Pa a pode a a es e lenguaje y
que dé como esul ado una pa i u a con encional de pen ag ama y así pode auna ambas esc i-
u as. Así se pod á con e i es e «Lenguaje in e medio» desa ollado a una no ación de lenguaje
pensada pa a pa i u as llamada Lilypond (Figu a 1.3). Al ob ene el código en lenguaje Lilypond,
el mismo puede ealiza una ans o mación a PDF, ob eniendo así la pa i u a en pen ag ama.
Es a in en a á pa ece se lo máximo posible a lo que se ob end ía pasando a mano de una pa i u a
numé ica a una de pen ag ama.
Finalmen e se idea á una sencilla web con Django. En ella el p opio usua io esc ibi á con el len-
guaje in e medio la pa i u a que quie a ob ene basado en núme os, mos ando la web el esul ado
de la compilación y pudiendo ob ene la pa i u a en o ma o PDF. Es a pa i u a ep esen a á el
esul ado en pen ag ama en no ación numé ica, jun o a la no ación uni e sal basada en el pen a-
g ama.
Es e úl imo apa ado es impo an e, ya que uno de los mayo es obje i os de es e abajo es ace ca
las soluciones aquí elabo adas a odo usua io no habi uado al uso de aplicaciones in o má icas. Así
el usua io no debe á complica se en ins ala las dependencias del compilado , acili ando su uso en
g an medida.
1h ps:// i iki auki.com/zenbakiz/
4
Figu a 1.3: He amien as p incipales del plan eamien o
1.3. Es uc u a de la memo ia
Es a memo ia con a á con los siguien es capí ulos:
Plan eamien o inicial (Capí ulo 2): Apa ado donde se expone el plan eamien o
inicial del p oyec o. Se enuncia án las ideas o ganiza i as o iginales del abajo, pa a
así conlle a a su co ec a ejecución den o de un iempo es ipulado con unos equisi os
conc e os.
Cap u a de equisi os (Capí ulo 3): Lis ado y jus i icación de los apa ados a cumpli
que end á el abajo a ealiza , así como las necesidades a sa is ace . Se jus i ica el
uso de las he amien as escogidas y cuales se desca a on. También se exponen las
inspi aciones omadas pa a la elabo ación de la web.
Análisis y diseño (Capí ulo 4): Explicación del diseño del p oyec o, sus pa es y
cómo se di ide. P incipalmen e o ien ado a la web, su es uc u a e in e acción con el
compilado .
Compilado (Capí ulo 5): En es e apa ado se explica las decisiones omadas espec o
al compilado , su diseño e implemen ación. Es o es: el léxico y g amá ica del lenguaje
in e medio c eado, la es uc u a del compilado y el p oceso de su ejecución.
Web: Django (Capí ulo 6): Desa ollo de la web en Django, cuales son sus iche os y
uncionalidades p incipales, así como una explicación de su implemen ación.
P uebas (Capí ulo 7): De inición de las p uebas ealizadas con sus en adas y salidas,
así como la jus i icación del esul ado ob enido y la ele ancia del mismo.
Conclusiones (Capí ulo 8): Es la ecapi ulación del abajo elabo ado y de los obje i-
os cumplidos. Se conclui á comen ando el anscu so del p oyec o. Acla ación de cómo
se debe ealiza el abajo una ez conocido sus pun os c í icos. Qué posibles mejo as
5
o añadidos se pod ía ealiza en un u u o, así como la alo ación de es as. Se ealiza á
un análisis c í ico del esul ado inal y de su u ilidad. Así como un comen a io sob e la
expe iencia pe sonal.
Además es a memo ia cuen a con los siguien es apéndices:
Esc i u a de iki ixa (Apéndice A): En el p ime apéndice se de alla la es uc u a
de la esc i u a p opia de la iki ixa y que signi ica en una no ación musical clásica en
pen ag ama.
Lilypond (Apéndice B): Se de alla el signi icado de la no ación u ilizada en los iche os
de Lilypond, así como su signi icado en una no ación musical clásica en pen ag ama.
G amá ica del lenguaje in e medio (Apéndice C): Demos ación de la g amá ica
u ilizada en el iche o de Bison, su es uc u a así como los nodos e minales y no
e minales.
6
CAPÍTULO 2
Plan eamien o inicial
Median e la siguien e sección se explica á como ha sido el anscu so del p oyec o. Se expond án
la es uc u a y he amien as u ilizadas pa a el mismo, una plani icación inicial eniendo en cuen a
sus iesgos, así como la e aluación económica pa a de e mina sus cos es.
2.1. Es uc u a
La es uc u a del p oyec o la o man la combinación del pa ón MVT (Model View Templa-
e) co espondien e a Django el cual es una a iación del pa ón MVC (Model View Con ole )
y el compilado gene ado con Flex y Bison. El clien e end á acceso a la plan illa c eada po
Django, pudiendo accede así a su lógica y pode ob ene , po medio del compilado , la pa i u a
co espondien e al ex o esc i o como en ada (Figu a 2.1).
Figu a 2.1: Es uc u a del p oyec o
7
Fase/Ta ea Desc ipción Es ue zo
4. P uebas y documen ación 135h
4.1 P uebas de compilación
Con el compilado ya desa ollado
se han ealizado p uebas
con i iendo pa i u as eales al
lenguaje in e medio. Además se han
c eado p uebas p opias pa a es ea
al sis ema.
15h
4.2 P uebas de compilación en la web
Una ez ins alada la web, se ha
p obado su uncionamien o.
Después se ha hecho lo p opio
con la web inculada al compilado .
28h
4.3 Realización de la memo ia
Elabo ación de la memo ia del
p oyec o; e lejando odos sus
esul ados, p ocesos, acie os, allos,
y conclusiones omadas.
92h
Tabla 2.4: Tabla de plani icación empo al ‘P uebas y documen ación’
Fase/Ta ea Desc ipción Es ue zo
5. P esen ación 23h
5.1 Re isión de la documen ación
Re isión de la documen ación una ez
examinada po e ce os. Pa a así
da le más empaque y uni o midad.
11h
5.2 P epa ación de la p esen ación
P epa ación de la p esen ación, an o
haciendo p uebas como ealizando una
demos ación a los in e esados de es e
p oyec o.
10h
5.3 P esen ación del p oyec o P esen ación y de ensa an e el ibunal
sob e el p oyec o aquí ealizado. 2h
To al del p oyec o 358h
Tabla 2.5: Tabla de plani icación empo al ‘P esen ación’
14
Diag ama de Gan
Se ha desa ollado un diag ama en ‘Gan P ojec ’, el cual mues a la du ación y p ecedencia de cada a ea. De es a mane a, ag upando las a eas po
ases y es imando una du ación, es posible calcula ap oximadamen e la du ación o al del p oyec o. Así como el co ec o o den de ejecución de las a eas.
Figu a 2.4: Diag ama Gan de las a eas
15
Figu a 2.5: Tabla de iempos y du ación del diag ama Gan
El iempo o al es imado de desa ollo del p oyec o son 358 ho as. Teniendo es o en cuen a,
in i iendo 3 ho as al día como media, 4 días a la semana du an e 30 semanas ob end íamos las
ho as es imadas. Además eniendo en cuen a odo el ma gen de iempo, pod án in e i más ho as
si son necesa ias sin iesgos de no llega a la echa de en ega.
16
2.4. Ges ión Riesgos
Exis en cie os iesgos a ene en cuen a. Sin una co ec a ges ión de iesgos las consecuencias
en el anscu so del abajo pueden se g a es. Po an o se han iden i icado los siguien es iesgos
de es ipos de ca ego ías.
Riesgos Técnicos
Requisi os: Cambio de obje i o
Desc ipción El obje i o del p oyec o cambia, po equisi o del clien e
P e ención
Se deja án obje i os y alcance del p oyec o cla os desde un p ime
momen o. Fijando los cambios ac ibles o añadidos en un
posible u u o.
Plan de con ingencia Man ene la comunicación con el clien e.
P obabilidad Baja.
Impac o Al o.
Tabla 2.6: ‘Ac ualización de equisi os’ de los Riesgos Técnicos
Tecnología: Pé dida de p og eso
Desc ipción Pé dida pa cial o o al del p og eso del p oyec o. Debido a un e o
de so wa e o de ha dwa e.
P e ención
Realización de copias de segu idad inc emen ales en un pe iodo
aco dado. Es as copias de segu idad se ealiza án en dis in os
disposi i os y o ma os.
Plan de con ingencia Tene una copia de segu idad an e io pa a la ecupe ación
de abajo.
P obabilidad Baja.
Impac o Al o.
Tabla 2.7: ‘Pé dida de p og eso’ de los Riesgos Técnicos
17
Diseño: E o en el diseño p e io
Desc ipción Un e o de diseño obliga a e asa o e ocede en la
implemen ación.
P e ención Realiza un diseñó adecuado y con as ado. Realiza el p oyec o
de mane a modula , an es de pasa a la implemen ación.
Plan de con ingencia Si el diseño es modula , es posible encapsula los e o es pa a
no ene que ealiza cambios o ales al diseño gene al.
P obabilidad Media.
Impac o Media.
Tabla 2.8: ‘E o de Diseño’ de los Riesgos Técnicos
Implemen ación: E o en el implemen ación
Desc ipción
Su gen e o es de implemen ación imp e is os, los cuales conlle an
a un e aso de la plani icación y obligan a dedica más iempo
del eque ido inicialmen e.
P e ención
Realiza un buen diseño p e io ayuda á a supli es e ipo de e o es,
así como una amilia ización p e ia con las he amien as y lenguajes
a u iliza . P e e el posible e aso dando holgu a a las echas
p e is as puede ambién de ayuda.
Plan de con ingencia Encapsula los e o es su gidos, soluciona los de mane a indi idual
pa a no gene a más e o es.
P obabilidad Al a.
Impac o Media.
Tabla 2.9: ‘E o de Implemen ación’ de los Riesgos Técnicos
18
Calidad: Fallos en el ha dwa e
Desc ipción
Du an e el desa ollo suceden e o es en el ha dwa e, pueden se
po e o es elec ónicos o po mal uncionamien os. También pueden
da se casos de i us in o má icos
P e ención Realiza man enimien os y moni o ización de los equipos de abajo.
Comp oba su es ado de ‘salud’ cada cie o pe iodo.
Plan de con ingencia Dispone de un equipo de abajo suple o io pa a no en o pece el
lujo de abajo.
P obabilidad Baja.
Impac o Media.
Tabla 2.10: ‘Fallos de Ha dwa e’ de los Riesgos Técnicos
Calidad: Aplicación de ec uosa
Desc ipción La aplicación comple a p esen a e o es de uncionamien o en la
in e az o es á poco op imizada compu acionalmen e hablando.
P e ención Diseña los algo i mos y diag amas co espondien es de mane a
co ec a desde un inicio.
Plan de con ingencia Comp oba posibles soluciones cambiando el en oque de diseño de
mane a modula , ealiza nue as p uebas más exhaus i as.
P obabilidad Baja.
Impac o Al o.
Tabla 2.11: ‘Aplicación de ec uosa’ de los Riesgos Técnicos
19
Riesgos de Ges ión
Plani icación: Inco ec a dis ibución de a eas
Desc ipción
Se plan ea inco ec amen e la dis ibución de a eas en la ase de
‘Plani icación y ges ión’. Ya que cie a a ea debe ía habe ido
p e ia a o a a ea o ice e sa. También puede sucede que
la es imación empo al no sea la adecuada.
P e ención
Tene en cuen a en la plani icación las en adas y salidas
eque idas de cada ase. Dis ibui un ho a io de abajo e icien e
desde un inicio, si es posible, pa a la co ec a es imación
empo al.
Plan de con ingencia Asigna nue amen e echas de en ega, dependiendo de la a ea
necesa ia a ealiza .
P obabilidad Media.
Impac o Media.
Tabla 2.12: ‘Inco ec a dis ibución de a eas’ de los Riesgos de Ges ión
Seguimien o y Con ol: Fal a de seguimien o
Desc ipción
No se ealiza de mane a co ec a o di ec amen e de ninguna
mane a, un seguimien o p e io a inaliza una a ea o alcanza
un hi o.
P e ención Conc e a echas de eunión con los supe iso es y no i ica
debidamen e los p og esos conseguidos.
Plan de con ingencia Re isión de la a ea sin seguimien o, analizando los posibles
p oblemas a ocasiona .
P obabilidad Baja.
Impac o Baja.
Tabla 2.13: ‘Fal a de seguimien o’ de los Riesgos de Ges ión
20
Plani icación: Incumplimien o de echas de en ega
Desc ipción Las a eas no se inalizan den o de las echas aco dadas en
la plani icación.
P e ención Aco da un calenda io de en egas inicial con holgu a pa a
posibles e asos.
Plan de con ingencia Reo ganiza a co o plazo las a eas a en ega .
P obabilidad Baja.
Impac o Medio.
Tabla 2.14: ‘Incumplimien o de echas de en ega’ de los Riesgos de Ges ión
Riesgos In e nos
Recu sos humanos: Incapacidad de abajo pe sonal
Desc ipción
Debido a p oblemas de salud, pe sonales o amilia es, la
p e isión de abajo se e e asada o la calidad del mismo
se e me mada.
P e ención
Tene una echa inal con iempo su icien e pa a pode
ecupe a abajo. Dispone siemp e de ayuda o supe isión pa a
que la calidad y es ue zo no disminuya. Realiza abajo den o
de un ho a io pa a no hace pelig a el p oyec o.
Plan de con ingencia Recupe a ho as de abajo Pé didas en ho as ue a del ho a io
p e is o.
P obabilidad Baja.
Impac o Al a.
Tabla 2.15: ‘Incapacidad de abajo pe sonal’ de los Riesgos In e nos
21
P io idades: P io ización e ónea de a eas
Desc ipción
A la ho a de ealiza una a ea, se an epone o a a la p e is a en
el o den de a eas. Es o supone que pueda a pe de se iempo
ealizando ac i idades innecesa ias.
P e ención O ganiza de mane a adecuada desde un inicio, odos los
paque es de abajo, obje i os y equisi os del p oyec o.
Plan de con ingencia Realiza con p emu a la a ea sin p io iza .
P obabilidad Baja.
Impac o Media.
Tabla 2.16: ‘P io ización e ónea de a eas’ de los Riesgos In e nos
Riesgos Ex e nos
Supe isión: Incapacidad de comunicación con los supe iso es
Desc ipción
Se pie de capacidad de supe isión y seguimien o con los
supe iso es. Lo que puede supone p oblemas de
incumplimien o de equisi os.
P e ención De ini equisi os comple os desde un inicio. Así como echas
de en ega.
Plan de con ingencia Comunicación po medios no es ablecidos con los supe iso es.
P obabilidad Muy baja.
Impac o Muy Al o.
Tabla 2.17: ‘Incapacidad de comunicación con los supe iso es’ de los Riesgos Ex e nos
Supe isión: Insa is acción del abajo ealizado
Desc ipción La al a de sa is acción po pa e del supe iso , espec o a
la aplicación y documen ación ealizada.
P e ención
Realiza a lo la go de odo el p oyec o euniones de seguimien o
pa a así i comp obando que se es á ealizando las a eas de
acue do a lo es ablecido en la sección de equisi os.
Plan de con ingencia Re isión del abajo ealizado eniendo en cuen a las
insa is acciones.
P obabilidad Media.
Impac o Al o.
Tabla 2.18: ‘Insa is acción del abajo ealizado’ de los Riesgos Ex e nos
22
2.5. E aluación económica
En el siguien e apa ado se ealiza á la e aluación económica pe inen e al p oyec o. Jus i icando
así la in e sión a ealiza si el p oyec o uese inanciado y se u iese que ene en cuen a odos los
gas os económicos ela i os. Pa a e alua lo, el apa ado se di idi á en los siguien es sub-apa ados:
Mano de ob a
El p ecio po ho a de un p og amado in o má ico p omedio según el BOE [3] suele onda los
10€ (1521,56€ mensuales / 152h de abajo medio cada mes). Teniendo en cuen a que el p oyec o
se ha elabo ado en 34 semanas, 4 de ellas siendo acaciones, con un o al de es ho as de abajo
medio dia ias en e semana, dejando los mié coles lib es, da como esul ado 360 ho as.
3 (ho as) x 4 (días) x 30 (semanas) = 360h
Teniendo en cuen a las ho as in e idas y el sala io medio, es necesa io menciona las e enciones
del IRPF y Segu idad Social. Conside ando el sala io de un au ónomo pa a es e p oyec o, se sabe
que p o esionales au ónomos deben aplica un IRPF del 15% a los ing esos que ob engan po su
ac i idad [4]. Po an o en la Tabla 2.19 es posible isualiza el esul ado.
Sala io Ne o 360 ho as * 10 €/ho a 3600 €
IRPF 3600 ·0,15 540 €
Segu idad Social 3600 ·0.10 360 €
Sala io To al 3520 - 540 - 360 2640 €
Tabla 2.19: Cos e de la mano de ob a
So wa e y Ha dwa e
El se un p oyec o o ien ado al desa ollo de un so wa e, en es e caso un compilado , se debe
ene en cuen a el gas o de las he amien as/p og amas u ilizadas y el ha dwa e empleado pa a
maneja las.
El equipo u ilizado es un Xiaomi Ai 13.31 alo ado en 900€, un a ón Logi ech M330 alo ado
en 30€, un eclado Anne P o 2 alo ado en 80€ y pa a el desa ollo e in es igación ue a del luga
de abajo un Xiaomi Redmi No e 4X alo ado en 180€. A es e úl imo hay que suma un acciden e
que equi ió el cambio de pan alla con un cos e de 50€.
1h ps://www.pccomponen es.com/xiaomi-mi-ai -133
23
ue on algunas de las ba ajadas:
JFugue: Es una biblio eca de p og amación de código abie o pa a Ja a, con la que es posible
p og ama música alejándose de las complejidades del MIDI.
JMusic: Es un p oyec o diseñado pa a p opo ciona a los composi o es y desa ollado es de so -
wa e una lib e ía de he amien as de composición y p ocesamien o de audio. De código
abie o y esc i o en Ja a.
Lilypond: U ilizando una sencilla no ación de ex o plano como en ada, se p esen a como al e -
na i a de so wa e lib e pa a la c eación y edición de pa i u as.
MusicXML: Diseñado pa a el in e cambio de pa i u as, especialmen e en e dis in os edi o es
como los is os p e iamen e. MusicXML es un o ma o abie o, basado en XML, de
no ación musical.
Al inal se op ó po Lilypond, la opción más comple a y lexible donde se pod ía gene a la
pa i u a necesa ia de la mane a que se equi iese. Con Lilypond no se necesi a ía ningún lenguaje
apa e como Ja a, o edi o como Musesco e. Además es posible ob ene el esul ado de la pa i u a
en PDF.
Compilado es
Aho a quedaba decidi la he amien a con la que se aduci ía el lenguaje in e medio c eado
(Capi ulo 5.1) a no ación Lilypond. Con la in ención de c ea un compilado se pusie on sob e la
mesa a ias al e na i as:
ANTLR: Es una he amien a pa a la c eación de analizado es sin ác icos (pa se s), in é p e es,
compilado es y aduc o es de lenguajes, pa iendo de la g amá ica desc i a po los
mismos. U iliza algo i mos ‘LL’ de pa sing pa iendo de la desc ipción o mal de la
g amá ica de un lenguaje.
Lex/Flex - Yacc/Bison: Lex es un p og ama in o má ico que gene a analizado es léxicos. Flex
es la al e na i a más comple a de Lex. Ambos pueden i inculados a Yacc/Bison.
Donde Yacc es un p og ama de gene ación de analizado es sin ác icos o pa se s. Bison
es compa ible comple amen e con Yacc y posee ex ensiones que es e úl imo no con-
iene. Bison gene a po de ec o analizado es LALR(1), pe o ambién puede gene a
analizado es canónicos LR, IELR(1) y GLR.
Ocaml: Es un lenguaje de p og amación mul ipa adigma de p opósi o gene al. Amplía el dialec o
Caml de ML (Me a Language) con ca ac e ís icas o ien adas a obje os. Incluye un in-
é p e e in e ac i o de ni el supe io , un compilado de código de by es, un compilado
de código na i o op imizado y un depu ado e e sible.
29
Al inal se e minó op ando po Flex y Bison como base del compilado . Lex y Yacc ambién
eque i án a ención, ya que su uncionamien o con sus e siones ac uales es p ác icamen e la misma.
Es a decisión se lle ó a cabo, en e o as azones, ya que es as he amien as pe mi en diseña de
mane a o almen e pe sonalizada el compilado , pudiendo de ini en es e caso el lenguaje in e medio
de la mane a eque ida. A su ez, son la opción que más cu a de ap endizaje y enseñanzas an a
o ece espec o a el mundo de los compilado es. En el Capí ulo 5.3 se añaden más azones de es a
elección omada.
Desa ollo Web
Finalmen e solo queda elegi una pla a o ma donde c ea la web y pode incula el compilado
con ella. Así se o ece á es a he amien a a odo el que lo necesi e y disponga de conexión a una
ed de In e ne . Es as ue on algunas de las opciones a escoge :
ASP.NET: Desa ollado po Mic oso , es un en o no pa a el desa ollo de si ios web dinámicos
y aplicaciones web.
Django: Desa ollado en Py hon y di igido al desa ollo web escalable, es un po en e amewo k
que espe a el pa ón MVC (Modelo Vis a Con olado ).
Flask: Es un mic o- amwo k pa a el desa ollo de API’s con g an ca ga de isi as. Es u ilizado
pa a p oyec os pe sonalizados y de g an sencillez.
Ruby on Rails: Esc i o en el lenguaje de p og amación Ruby y siguiendo el pa ón MVC, es un
amewo k de aplicaciones web de código abie o.
El p oyec o se acabó desa ollando en Django. En e o as cosas, po cumpli con el pa ón
MVT (Model-View-Templa e, una a iación del pa ón de a qui ec u a MVC) el cual simpli ica y
acla a la elación con la he amien a, po con a con una es uc u a del p oyec o au o-gene ado y
po se más escalable y capaz que el es o. Como lo demues an g andes emp esas como Ins ag am,
Mozila, The Washing on Times, Disqus, Bi bucke y Nex doo .
Inspi aciones
Pa a pode en oca co ec amen e la aplicación y ene un umbo cla o, se u ie on en cuen a
cie as inspi aciones. Es as se in en a on ene en cuen a lo máximo posible, pa a pode asemeja
sus pun os posi i os, a obje i os a alcanza con nues a aplicación. En e o as, las p incipales
ue on:
O e lea : Es a ue la p ime a inspi ación isual de la he amien a. Al que e desa olla un com-
pilado online con una en ada de ex o, con el inpu necesa io y un bo ón donde pulsa
pa a e de mane a con igua el esul ado (Figu a 3.1). Pudiendo compila en es e caso
30
el inpu en o ma o L
A
TEXy ob ene un PDF como esul ado.
Figu a 3.1: Ejemplo de O e lea
Hacklily: Es a web donde se pueden ealiza inpu s en Lilypond y de una mane a cla a com-
p oba sus e o es y el esul ado con iguo ue aún más una inspi ación cla a pa a el
p oyec o. Además de se so wa e lib e y pa e del p oyec o GNU (Figu a 3.2).
Figu a 3.2: Ejemplo de Hacklily
31
F escobaldi: Aunque sea un descub imien o de úl imo momen o e incluye unciones que no se
an a supli , como la edición de pa i u a an o con Lilypond como con la in e az, es
una he amien a a ene en cuen a (Figu a 3.3).
Figu a 3.3: Ejemplo de F escobaldi
32
CAPÍTULO 4
Análisis y diseño
Pa a plan ea el desa ollo del abajo y en qué pa es se di ide el mismo se ha ealizado los
co espondien es diag amas pa a sabe iden i ica las.
4.1. Casos de uso
Pa a pode iden i ica la u ilidad de la aplicación, es necesa io ealiza los casos de usos co es-
pondien es con los ac o es y usos necesa ios.
Compilación
En la aplicación aquí implemen ada solamen e end á acceso un ipo de usua io, que se á
cualquie a que equie a pasa de una pa i u a de iki ixa a una pa i u a de pen ag ama.
Figu a 4.1: Caso de Uso: Compila
33
Compila
Desc ipción
Pe mi e al usua io in oduci y después compila el lenguaje in e medio en una pa i u a. El
esul ado se á la pa i u a compilada y un mensaje de éxi o o un mensaje de e o .
Ac o
Usua io
P econdiciones
Ninguna.
Requisi os no uncionales
Ninguno.
Flujo de e en os
1. El usua io pulsa el bo ón ‘Compila ’.
[Si ha in oducido p e iamen e una pa i u a sin e o es o acía]
a) Se mues a la pa i u a co espondien e y un mensaje de éxi o
[Si ha in oducido p e iamen e una pa i u a con e o es]
a) No se mues a la nue a pa i u a compilada, indicando la localización del
el p ime e o encon ado
Ob ene mul imedia
Desc ipción
El usua io pod á solici a a chi os mul imedia co espondien es a la pa i u a (PDF, PNG,
MIDI), en caso de no habe compilado p e iamen e, se mos a á un mensaje de a iso.
Ac o
Usua io
P econdiciones
Ninguna.
Requisi os no uncionales
Ninguno.
34
Flujo de e en os
1. El usua io pulsa cualquie bo ón co espondien e a la mul imedia.
[Si ha in oducido p e iamen e una pa i u a co ec a]
a) Se mues a la pa i u a en el o ma o solici ado.
[Si no se ha in oducido p e iamen e ninguna pa i u a]
a) No mues a nada y a isa de la necesidad de compila p e iamen e la pa -
i u a.
4.2. Pa ón MVT
El diseño de la aplicación es á o ien ado al pa ón MVT (Model Templa e View), ya que es
el pa ón que u iliza Django pa a su uncionamien o y despliegue. Es e pa ón es simila al is o
du an e el g ado llamado MVC (Modelo Vis a Con olado ) pe o con cie as di e encias (Tabla
4.1).
MVC MVT
Model: Es a capa se ocupa de la lógica
elacionada con los da os. Puede ecupe a ,
modi ica y gua da da os en la base de da os.
Model: Igual que en el pa ón MVC, en
es e caso con los iche os usados y
gene ados po el compilado . En Django
se iden i ica con el iche o models.py.
View: Se enca ga de ecoge los da os
del modelo o del usua io y de
p esen a los. En una aplicación web, odo
lo que se mues a en el na egado
cae bajo es a capa de p esen ación.
View: En el pa ón de diseño MVT, la is a
decide qué da os deben mos a se.
Se iden i ica con el iche o iews.py.
Con olle : Con ola el lujo de da os y la
in e acción en e la is a y el modelo. Po
ejemplo, un con olado , basado en una
solici ud o acción, ecoge á da os
de una base de da os con la ayuda
del Modelo y los en ia á al usua io a
a és de las Vis as.
Templa e: Las plan illas se u ilizan pa a especi ica
una es uc u a pa a una salida. Los
da os pueden ellena se en una plan illa
u ilizando ma cado es de posición. De ine cómo
se p esen an los da os.
En Django se iden i ica con iche os .h ml
den o del di ec o io empla es.
Tabla 4.1: Compa ación en e los pa ones MVC y MVT
Como explicación gene al, el pa ón MVT comienza con el acceso del usua io a la URL a a és del
na egado . Su acceso es a ado po el mapeo de URLs que le mues a la plan illa co espondien e.
Cuando el usua io in e ac úa con la plan illa, el inpu gene ado es ges ionado po la is a, la cual
35
comp ueba si uese necesa io la alidez de las modi icaciones ( o ms). Si es necesa io c ea, edi a y
o ece da os co espondien es a la lógica de la aplicación, pasa á a models los de alles de los da os
a a a . Es e úl imo in e ac úa con la base de da os co espondien e pa a accede o modi ica los
da os necesa ios. La ep esen ación g á ica de es e p oceso puede e se en la Figu a 4.2.
Figu a 4.2: Pa ón MVT
En el caso de es e p oyec o, el p oceso se ía el siguien e. El usua io accede ía a a és del
na egado a la URL co espondien e a la aplicación. El iche o u ls.py se ía el enca gado de la
edi ección seleccionando la u a compilado /, que es quien decide qué is a ( iews.py) debe
36
ejecu a se, siendo la is a la que decide la plan illa. Aquí es donde el usua io in oduci á su lenguaje
in e medio y pulsa ía el bo ón co espondien e a ealiza la compilación. Es a in o mación pasa ía
a se ges ionada po iews.py donde se aloja la is a compilado , quien iene acceso al iche o
models.py donde se almacena la clase compilado . Es a clase se enca ga de la in e acción con
las salidas y en adas del compilado , ges ionando y ejecu ando los comandos co espondien es.
Se de ol e án los a chi os co espondien es (PDF, PNG, MIDI) en cada caso. Es os iche os son
ans e idos a la is a y comp obados po ella pa a que el empla e pueda mos a los, e lejándose
es e cambio en el na egado del usua io. La ep esen ación g á ica de es e p oceso puede e se en
la Figu a 4.3.
Figu a 4.3: Pa ón MVT
37
Teniendo es o como ejemplo, ya es posible ep esen a cualquie a de los sonidos e e en es a la
melodía del aco deón en nues o lenguaje. Pe o aún al a ía la digi ación de los mismos.
La digi ación del aco deón es algo especial, ya que es a basado en símbolos y no en núme os
como suele se habi ual. Se emplean pa a ello odos los dedos de la mano de echa, menos el pulga
(Figu a 5.7). Como es e iden e, cada no a end á únicamen e una digi ación al mismo iempo.
Figu a 5.7: Digi ación del aco deón
- ‘ ’ si la no ación es acía, se debe usa el dedo índice
- • si es un ci culo neg o, se usa el co azón
- ◦ con un ci culo blanco, se usa el anula
- x con la c uz se debe usa el meñique
En una se ie de no as de melodía el esul ado se ía el que se mues a en la Figu a 5.8:
Figu a 5.8: Digi ación en no as de la melodía
Se ha enido que ene en cuen a la exis encia de una digi ación en la esc i u a de la iki ixa.
Po lo que pa a ep esen a lo en nues o lenguaje con cie a lógica y pa a que sea in ui i o espec o
al lenguaje de iki ixa se ha decidido lo siguien e:
Si se quie e ep esen a al dedo índice se pond á ‘ ’ de acío, o nada jun o al núme o.
Con ánimo de ep esen a al dedo co azón se pond á ‘n’ del cí culo neg o.
Pa a ep esen a al dedo anula se pond á ‘b’ del cí culo blanco.
Si se quie e ep esen a al dedo meñique ‘x’ de la p opia c uz.
43
Como úl imo pun o, cada ez que se inalice una línea del lenguaje in e medio, en o as palab as,
se acabe una no a de la melodía, se inaliza á con un ‘;’ pa a que el compilado econozca el in
de ese sonido y el comienzo de o o. Teniendo es o en cuen a en la Figu a 5.9 se mues an algunos
ejemplos con la no ación de la melodía comple a.
Figu a 5.9: Sección de melodía, compa ación de aco deón a lenguaje
Las decisiones omadas pa a ep esen a la melodía en el lenguaje in e medio son las siguien es:
Cada conjun o de sonidos simul áneos en la melodía se indica á en una línea.
Se eque i á indica siemp e el es ado del uelle, p e io a indica los bo ones a pulsa .
Siemp e se debe á ab i y ce a el pa én esis con el con enido de la melodía en el
in e io .
Si la melodía cuen a con más de un sonido, es os se sepa a án po comas.
El ‘;’ end á a con inuación del pa én esis de cie e de la melodía.
Bajo
Al e isa su icien es pa i u as de iki ixa, se sabe que la melodía suele i mayo i a iamen e
acompañada de un bajo. Como es de supone , exis en eglas p opias den o del bajo, po lo que a
con inuación se da á una explicación de cómo se han a ado en nues o lenguaje in e medio.
Los núme os del eclado izquie do co espondien es al bajo, suelen indica se jus o debajo de los
bo ones co espondien es del eclado de echo, es deci la melodía (Figu a 5.10). Es posible oca
un g an núme o de sonidos del bajo jun o a la melodía, ya que sal o en combinaciones especiales
que más adelan e se especi ica án, es os se ocan consecu i amen e. En el ejemplo de la Figu a
5.10 se pueden e dis in as mane as de ep esen a los bo ones del bajo: sepa ados po comas o
simplemen e uno de ás de o o.
Cuando los núme os del bajo los sepa an po comas, quie e indica que po cada coma, las no as
de la melodía que co esponden a ese bajo uel en a oca se. Es deci , que en el ejemplo p e io, el
conjun o con el bajo 7,8,7,8, indica que se oca á de nue o la melodía, con cada núme o del bajo
que hay p e io a una coma. Es o hab á que ene lo en cuen a en el compilado , ya que signi ica á
44
Figu a 5.10: Sección con bajo, ejemplo co ien e
un nue o compás a gene a . En algunos casos se indica encima de las no as de la mano de echa el
núme o de eces que debe án pulsa se esos bo ones (p ime caso de la Figu a 5.11).
En ez de las comas, pueden es a simplemen e sepa ados po espacios o jun os unos de o os.
Ambos signi ican lo mismo, que es as no as del bajo se ocan mien as du a la melodía. Puede
da se que el bajo es é en dos líneas dis in as, no signi icando es o nada en especial y siendo su
unción la misma que pone lo en línea. Es o se da ya que es as pa i u as suelen esc ibi se a mano,
y el espaciado no es muy me iculoso.
Todas las opciones an e io men e mencionadas pueden combina se en e sí, po an o se ha
decidido implemen a el bajo como se puede e en la Figu a 5.11.
Figu a 5.11: Rep esen ación del bajo
En la Figu a 5.11 se mues a la ep esen ación de las no as del bajo en es e lenguaje in e medio.
Es as no as i án en e pa én esis p ecedidos de un guión, es e guión si e pa a sepa a la melodía
45
del bajo. Cuando en la pa e supe io del lenguaje de iki ixa apa ece un núme o, es e se pond á
jus o al p incipio de la línea, indicando cuán as eces se debe á epe i la melodía con su bajo
co espondien e.
Los núme os co espondien es a los bo ones es a án sepa ados po comas si así es án ep esen-
ados en el lenguaje de aco deón, y po guiones pa a la ep esen ación po espacios.
Exis e o o caso posible en el bajo, donde los bo ones del lado izquie do se engan que pulsa de
mane a simul ánea, e Figu a 5.12. En nues o lenguaje se simboliza á con dos pun os en ez de
las ya mencionadas comas o guiones pa a deno a esa simul aneidad.
Figu a 5.12: Rep esen ación del bajo simul áneo
Las decisiones omadas pa a ep esen a el bajo en el lenguaje in e medio son las siguien es:
Se eque i á de un guión jus o después de la sección de la melodía ‘-’ pa a indica que
se quie e ep esen a el bajo.
Siemp e se debe á ab i y ce a el pa én esis con el con enido del bajo en el in e io .
Los bo ones del bajo que se quie an oca po cada sonido de la melodía es a án sepa-
ados po comas.
Los bo ones del bajo que se quie an oca consecu i amen e jun o a un sonido de la
melodía es a án sepa ados po guiones.
Los bo ones del bajo que se quie an oca de mane a simul ánea es a án sepa ados po
dos pun os.
El ‘;’ end á a con inuación del pa én esis de cie e del bajo, no de la melodía.
Silencios
Los silencio musicales, ambién ienen una ep esen ación g á ica den o de la esc i u a p opia
de la iki ixa. Es os se pueden e an o ep esen ados en la melodía como en el bajo. Es posi-
ble e un ejemplo en la Figu a 5.13, pudiendo dis ingui de izquie da a de echa los siguien es casos:
Un silencio único en la melodía.
Un silencio en la melodía y el bajo
46
Un silencio en la melodía y bajo al e nado con silencios
Un único silencio en el bajo
Bajo al e nado con silencios jun o a melodía
Figu a 5.13: Rep esen ación de silencios en esc i u a de iki ixa
Aunque sean casos dis in os, la implemen ación se á la misma. Al silencio se le ha dado el alo
‘0’. Y con él, es posible ealiza cualquie a de las combinaciones p e iamen e mos adas (Figu a
5.14).
Figu a 5.14: Rep esen ación de silencios en lenguaje in e medio
Es isible po an o, que el silencio se in eg a como un núme o más den o del lenguaje in e medio.
No siendo necesa io indica el es ado del uelle si se quie e ep esen a uno de es os en la melodía.
Valiendo lo mismo deno a un único silencio en el bajo, cómo no hace lo
T esillos
Puede ocu i , que el iki ila i quie a ep esen a en la melodía un esillo. Es deci , auna
en un iempo 3 sonidos melódicos simul áneos. En la esc i u a de «zenbakiz» se suele ep esen a
como en la Figu a 5.15:
47
Figu a 5.15: Rep esen ación de esillos en la esc i u a de iki ixa
Hay que ene en cuen a en onces, que únicamen e se an a ep esen a 3 sonidos melódicos en
el esillo, y siemp e suelen acompaña se de un único sonido del bajo. En la Figu a 5.16 se mues a
como se ep esen an los esillos en el lenguaje in e medio.
Figu a 5.16: Rep esen ación de esillos en el lenguaje in e medio
Viendo los ejemplos, es posible acla a que se usa án co che es de ape u a y cie e pa a inclui
en ellos los sonidos co espondien es al esillo. Se iene que ene en cuen a, que la esc i u a de
los elemen os in e nos se á la misma que en ejemplos p e ios, y que solamen e se deben inclui 3
conjun os de sonidos melódicos.
Signos de epe ición
En las p opias pa i u as de aco deón exis en di e sos signos de epe ición pa a indica el o den
de las epe iciones en cada una de las uel as. De ellos se ha decidido adap a el que hace unción
de ‘Coda’ (Figu a 5.17).
48
Figu a 5.17: Ejemplo de ‘Coda’ en la esc i u a de iki ixa. El as e isco ‘*’ indica el luga de sal o
En la Figu a 5.18, se e el uso del as e isco pa a iden i ica de donde a donde se debe sal a a la
ho a de ealiza la epe ición. En la p ime a ez se oca á odo lo incluido en e los dos as e iscos,
pe o una ez se epi a se sal a á de un as e isco a o o sin in e p e a lo que hay en e ellos.
Figu a 5.18: Ejemplo de ‘Coda’ en el lenguaje in e medio
Ex ayendo una sección mos ada en la Figu a 5.18, se e como u ilizando el símbolo ‘*’ es
posible a a la ‘Coda’ de la misma mane a que se u iliza en la pa i u a de iki ixa. Cabe deci
que el símbolo de Coda únicamen e iene sen ido apa eciendo dos eces po pa i u a, es a egla
se cumple ambién en el lenguaje in e medio.
49
Como complemen o a la ‘Coda’ y aunque no es é explíci o en la esc i u a de la iki ixa, se ha
añadido el ‘Dal Segno’ o ‘Segno’. Es e símbolo indica a donde debe sal a se una ez se llega al
símbolo de la ‘Coda’ sin ene en cuen a epe iciones. Su símbolo musical es y en el lenguaje
in e medio se ha implemen ado u ilizando el signo ‘&’. Una ep esen ación en el lenguaje in e medio
se ía el de la Figu a 5.19.
Figu a 5.19: Ejemplo de ‘Segno’ en el lenguaje in e medio
Exis en o o ipo de símbolos de epe ición, basados en la epe ición de pa es más conc e as.
En la esc i u a de iki ixa, se ep esen an como pa én esis, donde el pa én esis de ape u a indica
el inicio de la pa e que se a a ene que epe i y el de cie e el inal. Una ez llegado a ese
inal, se uel e a la localización del pa én esis de ape u a, siguiendo adelan e sin ol e a epe i .
También es posible que apa ezcan a ias de es as epe iciones de mane a consecu i a, como se e
en la Figu a 5.20.
Figu a 5.20: Ejemplo de signos de epe ición de lenguaje numé ico
En el lenguaje in e medio, es os símbolos an de mane a independien e, al igual que la ‘Coda’.
Se c ean combinando símbolos de aya e ical ‘|’ y dos pun os ‘:’ (Figu a 5.21). Cada uno signi ica
epe iciones hacia un lado dis in o, o ambos lados.
50
Figu a 5.21: Signos de epe ición en el lenguaje in e medio
También se ha añadido un símbolo adicional que si e pa a la sepa ación de secciones den o de
la pa i u a, el doble ba a ‘||’. Su ep esen ación den o de la pa i u a y la del es o de símbolos
de epe ición se ía el de la Figu a 5.22.
Figu a 5.22: Signos de epe ición en la pa i u a
51
5.2. Lilypond
Lilypond es una he amien a de edición de pa i u as basada en ex o con g an can idad de
opciones. Lilypond se ha usado pa a c ea una no ación con la su icien e capacidad de ep esen a el
esul ado equi alen e de ans o ma una pa i u a de lenguaje de iki ixa a pa i u a adicional.
Es a no ación se ob end á una ez se compile el lenguaje in e medio, ob eniendo cómo esul ado la
no ación en Lilypond. En el siguien e apa ado se quie e mos a cómo se á ese esul ado ob enido,
compa ándolo con el p opio lenguaje in e medio. Pa a más de alles sob e es e ipo de no ación
consul a el Apéndice B.
No ación
A la ho a de ep esen a los dos pen ag amas den o de Lilypond, se han de inido dos egis os,
co espondiendo cada uno a una de las oces del aco deón. El p ime egis o se ha denominado
pen asol, ya que gua da la melodía esc i a en Cla e de Sol. El segundo egis o denominado
pen a a, dado que gua da el bajo en Cla e de Fa.
Melodía
Pa a cada línea de la melodía del lenguaje in e medio, Lilypond gua da á en el egis o pen asol
su co espondien e esul ado. Es deci , que pa a cada línea e minada en pun o y coma (sal o
excepciones más adelan e especi icadas) se egis a á esas no as de la melodía en un compás.
El compilado end á en cuen a en odo momen o si pa a la melodía el uelle se es á ab iendo o
ce ando. En la pa i u a es o se e á e lejado a la no ación que acompaña á a la melodía, pa a así
ene una e e encia cons an e de la esc i u a de aco deón jun o a la del pen ag ama. A su ez se
mos a á ambién la digi ación co espondien e a esa no a. Se mues a la Figu a 5.23 como en ada
en lenguaje in e medio y salida en Lilypond.
Figu a 5.23: Resul ado de lenguaje in e medio a Lilypond con melodía
52
en ada, se p ocesa de izquie da a de echa, “Le - o- igh ”, la R indica que se p oduce
una de i ación po la de echa, “Righ mos de i a ion”, mien as que el núme o 1 indica
que se u iliza un símbolo de búsqueda hacia adelan e.
En la Tabla 5.3 se mues an de mane a cla a ambos ipos de analizado es y sus di e encias [10].
LL Pa se LR Pa se
Conocido como el pa se que a de ‘a iba a abajo’ Conocido como el pa se que a de ‘abajo a a iba’
La p ime a L de LL es pa a la de i ación de
izquie da (le ) a de echa (es deci , la en ada se
p ocesa en el o den en que se lee) y la segunda L
pa a la de i ación de izquie da
La p ime a L de LR es pa a la de i ación de
izquie da (le ) a de echa (es deci , la en ada se
p ocesa en el o den en que se lee) y
R ( igh ) es de de i ación a la de echa ( igh )
LL comienza únicamen e con la aíz no- e minal LR e mina únicamen e con la aíz no- e minal
LL e mina cuando la pila es á acía LR comienza con una pila acía
LL expande los conjun os no- e minales LR educe el conjun o no- e minal
Du an e el análisis sin ác ico LL, el analizado
sin ác ico elige con inuamen e en e dos acciones.
P edeci : Basado en el conjun o no- e minal más
a la izquie da y en un cie o núme o de okens
de búsqueda.
Empa eja : Hace coincidi el símbolo e minal
más a la izquie da con el símbolo no- e minal
más a la izquie da de la en ada.
Du an e un análisis sin ác ico LR, el analizado
sin ác ico elige con inuamen e en e dos acciones.
Desplazamien o: Añade el siguien e oken de
en ada a un bu e pa a su conside ación.
Reduci : Reduce una colección
de e minales y no e minales.
Los analizado es sin ác icos LL son más
áciles de esc ibi pe o son menos po en es.
Vienen en a ias e siones como LL(1), e c.
Los analizado es sin ác icos LR son muy po en es.
Vienen en muchas e siones como LR(0), SLR(1),
LALR(1), LR(1), e c.
Tabla 5.3: Compa ación en e analizado es sin ác icos LL y LR
Se ha decidido op a po un analizado sin ác ico ‘LR’. La azón p incipal ha sido su capacidad
de p ocesa ex o ecu si amen e a la izquie da, sin ene la necesidad de decla a ope ado es,
simpli icando así en g an medida la elabo ación. Es o hace que el analizado sin ác ico ‘LR’ pueda
maneja más ipos de g amá ica, ya que el ‘LL’ solo llega a mi a los p ime os okens po egla y
‘LR’ lle a a e odos. Además hace posible la c eación de lenguajes menos ambiguos.
Es uc u a del compilado
Los compilado es se o man po dos p ocesos p incipales, análisis ysín esis.
59
Análisis: La pa e co espondien e al análisis di ide el p og ama uen e, en nues o caso el lengua-
je in e medio, en componen es, obligando una es uc u a g ama ical. A con inuación
usando la es uc u a c eada la ans o ma en una ep esen ación in e media del len-
guaje. Dado que el usua io es quien in oduce el ex o a compila , pueden de ec a se
inconsis encias semán icas, sin ác icas y en gene al mal o maciones en el léxico in o-
ducido. P o eyendo al usua io de la in o mación co espondien e pa a soluciona los.
Du an e odo es e p oceso, se ecolec a in o mación sob e el p og ama uen e, gua -
dando una es uc u a de da os p opia llamada abla de símbolos. Es a pasa a la ase
de sín esis jun o a la ep esen ación in e media p e iamen e mencionada.
Sín esis: En el apa ado de la sín esis se cons uye el p og ama de des ino deseado. Valiéndose
de la ep esen ación in e media y de la in o mación de la abla de símbolos.
Es posible examina con más de enimien o cada uno de es os p ocesos, es posible e que es án
di ididos en di e en es ases ealizándose en cada una dis in as ope aciones lógicas. Cada una de
es as e apas o man pa e del p oceso lineal de un compilado . Pueden eni an o de mane a
independien e como ag upada y el esul ado de odas es as no iene po qué da se den o del
compilado de mane a explíci a. Todo es o se e mejo e lejado en la Figu a 5.32.
Como se puede dis ingui en la Figu a 5.32, algunos compilado es ienen una ase de op imización
de código. Es e se ubica en e el on -end y el back-end. El obje i o de es a ase es op imiza la
ans o mación sob e la ep esen ación in e media pa a que el back-end gene é po su lado un
p og ama des ino mejo de lo que se ía sin op imiza . Es e apa ado es opcional, ya que no odos
los compilado es lo ienen. No se da án de alles pa a el compilado aquí desa ollado, pe o sí se
explica á es a ase más adelan e.
Análisis léxico
La p ime a e apa del compilado , la conside ada como escáne o analizado léxico, se enca ga de
lee el p og ama uen e, iden i ica ca ac e es y ag upa los en secuencias con signi icado conocidas
como lexemas. En cada uno de es os lexemas el analizado p oduce un oken y se lo asigna:
(nomb e- oken, alo -a ibu o)
pasando a la siguien e ase, el análisis sin ác ico. En es e caso el nomb e- oken hace e e encia
a un símbolo abs ac o u ilizado du an e el análisis sin ác ico, y el alo -a ibu o apun a a una
en ada co espondien e en la abla de símbolos de es e oken, necesa io pa a el análisis semán ico.
En es e caso, se ha u ilizado Flex como analizado léxico. Flex (la e sión más ápida de Lex) es
una he amien a pa a gene a escáne es. A con inuación se expond á un ejemplo co espondien e
al lenguaje in e medio c eado p e iamen e en el Subcapí ulo (5.1).
60
Figu a 5.32: Fases del compilado
61
c(9n,7b)-(7-8,7-8);
Es posible ag upa los ca ac e es aquí mos ados de la mane a que lo ha ía el compilado en
un análisis léxico, eniendo en cuen a el léxico e lejado en el Apéndice C:
1. A 'c' en el caso de es e compilado , se le asigna el oken FUELLE_CERRAR. Ya que
'c' es un lexema que únicamen e co esponde á a la indicación de que el uelle es á
ce ado. El oken se á el iden i icado de la abla de símbolos y 'c' su alo . Al es a
con emplado po el analizado léxico no se conside a símbolo abs ac o.
2. El símbolo de pa én esis de ape u a '(' es un lexema al cual se le asigna un oken
PARENTESIS_ABRIR. A odos los símbolos no abs ac os es posible asigna les cualquie
oken, pe o po con eniencia y po como se ha desa ollado el apa ado Flex se ha
decidido ep esen a lo así.
3. Se le asigna el oken PARENTESIS_CERRAR al símbolo de pa én esis de cie e )consi-
de ado lexema. A ambos pa én esis se les asigna á el mismo oken, eniendo alo es
dis in os dependiendo de su posición.
4. A los núme os que apa ecen en la ep esen ación, an o los bajos como los agudos ('9
7 8'), se les asigna un oken di e en e aunque sean el mismo núme o epe ido. La
es uc u a básica de un oken es (nomb e- oken, alo -a ibu o), ans o mándose en
es e caso pa a la melodía <numbe s, 1> pa a el ‘9’ y <numbe s, 2> pa a el ‘7’. En
el caso del bajo <numbe s, 3> pa a el p ime ‘7’, <numbe s, 4> pa a el p ime ‘8’,
<numbe s, 5> pa a el segundo ‘7’ y <numbe s, 6> pa a el segundo ‘8’.
5. Las comas ',' cub i án dis in as unciones dependiendo de su posición en la g amá ica
del analizado sin ác ico, pe o se les asigna á a ambas el mismo oken COMA.
6. Los guiones '-' cub i án ambién dis in as unciones dependiendo de su posición en la
g áma ica del analizado sin ác ico, pe o se les asigna á a ambos el mismo oken GUION.
7. Tan o la le a 'n' como 'b' es án elacionadas con la digi ación del aco deón, siendo
pues sus okens co espondien es DIGIT_NEGRO yDIGIT_BLANCO espec i amen e.
Así es como esul a ía as el p oceso de análisis léxico la cadena de símbolos y ca ac e es p e ia:
(FUELLE_CERRAR) (PARENTESIS_ABRIR) (numbe s, 1) (DIGIT_NEGRO) (COMA) (numbe s, 2)
(DIGIT_BLANCO) (PARENTESIS_CERRAR) (GUION) (PARENTESIS_ABRIR) (numbe s, 3)
(GUION) (numbe s, 4) (COMA) (numbe s, 5) (GUION) (numbe s, 6) (PARENTESIS_CERRA)
(PUNTOCOMA)
62
Análisis sin ác ico
La segunda ase del compilado , consis e en un análisis sin ác ico o pa sing u ilizando los o-
kens c eados po el analizado léxico, c eando una ep esen ación in e media, un á bol sin ác ico a
pa i de la g amá ica c eada po el analizado léxico. Dicha es uc u a de e mina á la es uc u a
g ama ical del lujo de okens. De e minando los elemen os es uc u ales del p og ama y sus ela-
ciones, en el cual cada nodo in e io ep esen a una ope ación y los hijos del nodo ep esen an los
a gumen os de la ope ación.
En el á bol se mues a el o den en el que deben lle a se a cabo las ope aciones de la siguien e
asignación:
c(9)-(7-8);
Se sabe po el an e io apa ado que su esul ado en okens se ía el siguien e:
(FUELLE_CERRAR) (PARENTESIS_ABRIR) (numbe s, 1) (PARENTESIS_CERRAR) (GUION)
(PARENTESIS_ABRIR) (numbe s, 2) (GUION) (numbe s, 3) (PARENTESIS_CERRA)
(PUNTOCOMA)
U ilizando la g amá ica elabo ada pa a el lenguaje in e medio, la cual es posible isualiza en el
Apéndice C, se ha lle ado a cabo la ans o mación de la sen encia ob enida as el análisis léxico a
un á bol sin ác ico. Pa a ilus a de una mane a más cla a el p oceso de ans o mación, es posible
e leja lo en la Figu a 5.33.
63
Figu a 5.33: Á bol sin ác ico
64
La ans o mación a á bol se pod ía esumi en la siguien e mane a:
El á bol iene un nodo in e io llamado s m s, que incluye odo el conjun o de ca ac-
e es y símbolos de odas las exp esiones que se inclui án en el á bol. En es e caso úni-
camen e se in oduce una exp esión. Sus dos hijos, uno e minal llamado (PUNTOCMA)
y o o s m el cual es la ep esen ación del conjun o de ca ac e es y símbolos de una
única exp esión c(9)-(7-8);. Cada una de es as sen encias incluyen una melodía (hijo
no a_sol) y puede que un bajo (hijos (GUION) yno a_ a). Analizando es os dos hijos
no e minales es posible sonsaca el es o de la es uc u a del á bol.
Como no a_sol hace e e encia a la melodía, end á hijos ep esen ando el uelle,
pa en esis_ab i ,sol_num_digi s (equi alen e a las no as) y pa en esis_ce a .
En es e caso uelle iene un hijo e minal (FUELLE_ABRIR),pa en esis_ab i un
hijo e minal (PARENTESIS_ABRIR) ypa en esis_ce a un hijo ambién e minal
(PARENTESIS_CERRAR). El único que no iene hijo e minal es sol_num_digi s, enien-
do un hijo no- e minal sol_nume o_digi acion con dos descendien es sol_nume o y
digi ación. Siendo el hijo e minal del p ime o y ep esen ando el núme o de las no as
co espondien es con (NUMERO), y siendo el hijo e minal del segundo y ep esen ando
la digi ación pa a esas no as con (DIGIT_VACIO).
Po o o lado no a_ a e e encia al bajo. Teniendo en es e caso hijos ep esen ando el
pa en esis_ab i , a_medida (equi alen e a las no as y aco des) y pa en esis_ce a .
En es e caso el nodo pa en esis_ab i iene un hijo e minal (PARENTESIS_ABRIR) y
pa en esis_ce a un hijo ambién e minal (PARENTESIS_CERRAR). Siendo a_medida
el nodo no e minal con hijos a_medida_nume o y a_medida2. El p ime o hace e e-
encia a las no as y aco des con su hijo e minal (NUMERO), y el segundo a los símbolos
en e los núme os del bajo con su hijo e minal (GUION). El es o de hojas son las
llamadas anidadas a más núme os den o del bajo.
Pa a p ocede al análisis sin ác ico en es e compilado con la g amá ica p e iamen e mencionada,
se ha hecho uso de Yacc/Bison como gene ado es de es e ipo de analizado es. Ambos son p og amas
que econocen la es uc u a g ama ical de los p og amas. Bison es una e sión más ápida de
Yacc. Más adelan e se da án de alles sob e el uncionamien o de Yacc/Bison y su in e acción con
Lex/Flex.
Análisis semán ico
En un p og ama, la semán ica es el “signi icado” de cada pa e del lenguaje u ilizado, en con a
de la sin axis, que se conside a la “es uc u a”. Es os signi icados se e án du an e la ejecución del
p opio p og ama des ino, pe o es posible i de e minándolos según el compilado a a ando el
lenguaje de en ada.
65
El analizado semán ico se ale del á bol sin ác ico p e iamen e c eado jun o con la abla de
símbolos pa a comp oba la consis encia del p og ama uen e. Es e p oceso gua da la in o mación
de los ipos de símbolos y ca ac e es, an o en la abla de símbolos como en el á bol semán ico
pa a u iliza lo en la c eación del código in e medio. Es e código in e medio es el paso p e io a la
ob ención del código obje i o del compilado .
Es posible da un ejemplo con el mismo caso an e io :
c(9)-(7-8);
Comp obando el á bol sin ác ico y la abla de símbolos, el analizado semán ico de e mina los
alo es y ipos de la exp esión. Ob eniendo un esul ado como el de la Figu a 5.34.
En es e caso se iden i ican los núme os u ilizados en la exp esión como en e os, ya que se con em-
plan den o del ango de núme os posibles pa a el uso cohe en e del lenguaje de es e compilado .
Tend án un a o dis in o al es o de okens, que se gua da án como iden i icado es, no es necesa-
io indica lo en el á bol, pues se á la misma in o mación gua dada de la abla de símbolos con la
es uc u a (nomb e- oken, alo -a ibu o). Po an o, se ano a cada oken no-en e o con su unción
den o del léxico.
66
Figu a 5.34: Á bol semán ico
67
Op imización de código uen e
En la ase de op imización de código uen e, se a a de mejo a el código in e medio a ob e-
ne , de mane a que p oduzca un código de des ino mejo . Gene almen e, eso suele signi ica más
elocidad o un código más co o, ambién uno que consuma menos. El op imizado aplica ans-
o maciones que p ese an la semán ica al á bol de análisis sin ác ico ano ado pa a simpli ica su
es uc u a y acili a la gene ación de un código más e icien e.
En el caso de es e compilado , enca gado de pasa el lenguaje in e medio c eado pa a los aco -
deonis as a un lenguaje Lilypond, la op imización no se á muy g ande, ya que el lenguaje no da
opción a mucha abs acción ni opciones de de ini una misma ope ación de dis in as mane as. Úni-
camen e es posible e como puede que el op imizado e i e los pa én esis de ape u a y cie e, o
los símbolos de pun o y coma cada ez que se lea una línea del iche o de en ada:
c9-7-8
Gene ación de código obje i o
El gene ado de código ans o ma el á bol de análisis sin ác ico ano ado simpli icado en códi-
go obje o u ilizando eglas que deno an la semán ica del lenguaje uen e. El gene ado de código
puede in eg a se con el analizado sin ác ico. T ans o mándose en es e caso en el código Lilypond
obje i o. Siendo el del ejemplo an es u ilizado:
pen a_sol = { pen a_sol <e'' inge ma kup{ o e ide #'( hickness . 1) ci cle9 " "} >1 }
pen a_ a = { pen a_ a se inge ingO ien a ions = #'(up) <c,-7>2 <c-8 e g>2 }
Op imización de código obje i o
En la úl ima ase, el compilado in en a mejo a el código obje i o, gene ado p e iamen e po
el gene ado de código. Es as posibles mejo as incluyen la selección de modos de di eccionamien o
pa a la mejo a de endimien o, eemplazando así ins ucciones len as po o as más ápidas pe o
con la misma unción, y eliminando edundancias en las ope aciones.
En el caso de Bison, el op imizado “peep-hole” examina el código obje o, unas pocas ins uccio-
nes a la ez, e in en a ealiza mejo as de código dependien es de la máquina. Más conc e amen e,
en el caso que aquí ocupa, se enca ga á de elimina ca ac e es edundan es o acíos, así como
llamadas innecesa ias a las a iables pen a_sol ypen a_ a.
P oceso inal
Una ez ya ob enido el esul ado en Lilypond, es posible ep esen a la igu a de las ases del
compilado (Figu a 5.32) en una mane a más conc e a pa a es e p oyec o (Figu a 5.35).
68
CAPÍTULO 6
Web: Django
El siguien e capí ulo se i á como explicación pa a la implemen ación y desa ollo de la web
pues a en uncionamien o en el amewo k Django. También se expond án sus uncionalidades
p incipales y cómo llega a ellas.
6.1. Ins alación
Pa a pode desa olla la web de mane a co ec a, po compa ibilidad y sencillez de ins alación,
se ha decidido desa olla la implemen ación con Django en Ubun u. Una de las mayo es azones de
es a elección es debido a que la consola de GNU/Linux simpli ica en g an medida las ope aciones
a ealiza con el compilado .
Como p ime paso es necesa io ins ala Py hon, an o pa a la ejecución de iche os ‘.py’ como
pa a la ins alación de paque es compa ibles. Eso se ha ealizado con el comando:
sudo ap -ge ins all py hon3
Pa a lle a a cabo un co ec o con ol de e siones, se ha u ilizado e ins alado Gi . Es o se lle a
a cabo con el comando:
sudo ap -ge ins all gi
Pa a pode man ene las dependencias eque idas pa a es e p oyec o de mane a sepa ada, se
ha c eado un en o no i ual de Py hon, donde se han ins alado odas las lib e ías necesa ias, así
como el p opio Django. Pa a ins ala lo y pone lo en ma cha se u ilizan los comandos:
75
sudo ap -ge ins all py hon3- en
py hon3 -m en myen
sou ce myen /bin/ac i a e
Finalmen e, pa a la ins alación de Django se ha eque ido de un iche o equi emen s. x
donde indica emos la necesidad de ins ala Django y su e sión. Es e iche o se encuen a en el
mismo di ec o io donde se ealiza el siguien e comando:
pip ins all --upg ade pip
Median e es e p oceso ya se pod ía empeza a desa olla el p oyec o en Django y edi a el
código con el IDE (In eg a ed De elopmen En i onmen ) que más co esponda.
6.2. Fiche os
Django sigue una es uc u a de iche os pa a o ganiza de mane a co ec a las aplicaciones de la
web. En es e caso se ha enido en cuen a ambién el en o no i ual pa a e leja de mane a comple a
es e apa ado del p oyec o. Es posible e la es uc u a de iche o en la Figu a 6.1. Menciona que se
ha hecho uso de la ex ensa documen ación p o is a en la web o icial de Django pa a la elabo ación
de es a aplicación [17]. A con inuación se expond án los apa ados más ele an es.
manage.py
Es e a chi o se u iliza básicamen e como una u ilidad de línea de comandos y pa a desplega ,
depu a o ejecu a la aplicación web. Con iene código pa a ejecu a unse e ,makemig a ions
omig aciones que u ilizamos en el Shell. De en e odos ellos u iliza emos p incipalmen e el
p ime o pa a ejecu a el se ido de la aplicación web. Cabe menciona que es e iche o no debe á
se modi icado.
__ini __.py
Es e a chi o pe manece acío y es á p esen e sólo pa a indica que es e di ec o io en pa icula
(en es e caso compilado ) es un paque e. A es e iche o ampoco se le deben aplica cambios.
se ing.py
Es e a chi o es á p esen e pa a añadi odas las aplicaciones necesa ias. Incluye la in o mación
sob e plan illas, iche os es á icos y di ec o ios necesa ios den o del p oyec o. Es en é minos
gene ales, el a chi o p incipal de la aplicación.
76
u ls.py
A chi o u ilizado pa a la ges ión de URLs den o de la aplicación. Como en es e p oyec o única-
men e se dispone de una plan illa, es deci una URL, solamen e se indica una den o de la a iable
u lpa e ns.
wsgi.py
Se e ie e al se ido WSGI (Web Se e Ga eway In e ace). En es e p oyec o es e iche o no
llega a usa se, pe o se u iliza pa a desplega nues as aplicaciones en se ido es como Apache.
Pudiendo esul a de u ilidad pa a la elabo ación de ampliaciones den o de la aplicación. En es e
iche o ampoco se debe án aplica cambios.
asgi.py
Si iendo como suceso de WSGI, es la in e az que se encuen a en las nue as e siones de
Django. Es o o iche o en el que no se debe án aplica cambios.
iews.py
Es e iche o es uno de los más ele an es, ya que cuen a con odas las is as con las que in e ac úa
el usua io. Es as ges ionan de mane a supe icial, sin en a en ges iones de da os complejas las
acciones del usua io. En es e p oyec o se cuen a con la is a compilado , la cual ges iona odas
las pe iciones e e en es a la in e acción con el compilado c eado pa a el p oyec o.
models.py
El iche o que con iene los models de la aplicación web, gene almen e como clases. Suele se los
enca gados de a a da os de mane a más exhaus i a y en es e caso ejecu a de mane a di ec a los
comandos e e en es al compilado , a ando sus en adas y salidas.
o ms.py
Cuando se u ilizan o mula ios HTML, es necesa ia la comp obación de la alidez de los campos
in oducidos po el usua io. De eso se enca ga es e iche o, que comp ueba que el cuad o de ex o
co espondien e al compilado no es é acío y sea álido.
empla es
Es el di ec o io donde se gua dan las plan illas co espondien es a las pan allas de la web. Es e
di ec o io debe indica se en se ings.py en la a iable TEMPLATES, pa a que Django sepa de donde
saca las plan illas.
77
s a ic
En Django se u iliza el di ec o io s a ic pa a almacena y o ganiza los a chi os que no se
modi ica án, como Ja asc ip s,CSS, imágenes y audios. En es e caso se gua dan los iche os
co espondien es a la compilación.
Figu a 6.1: Es uc u a de iche os de Django
78
6.3. Ejecución y uso
Una ez la implemen ación se ha lle ado de mane a co ec a, es posible ejecu a el p oyec o
pa a usa la aplicación web desa ollada en Django. Pa a ello se pond á en ma cha la web con el
siguien e comando, lle ando acabo un despliegue en modo DEBUG, ya que po aho a el p oyec o no
es a en ase de p oducción:
py hon manage.py unse e
Ya pues o en ma cha, pod emos accede a la URL indicada en el iche o u ls.py que hace e e-
encia a la is a con la plan illa co espondien e del compilado . En es e caso es la IP de localhos
127.0.0.1:8000/compilado /. Una ez se acceda apa ece á la pan alla con el cuad o de ex o
donde pode empeza a esc ibi las pa i u as en el lenguaje in e medio, la ba a de na egación
donde es án los bo ones de las uncionalidades y el ma gen donde apa ece á la pa i u a una ez
compilada, e Figu a 6.2.
Figu a 6.2: Aplicación web p e-compilado
Zenb2pen (zenbakiz o pen ag ama), que es como se ha decidido bau iza a la aplicación, o ece
di e sas unciones al usua io, a con inuación se enume a án pa a su mejo comp ensión.
Compila : Si se pulsa es e bo ón una ez in oducida una pa i u a en lenguaje in e -
medio en el cuad o de ex o de la ma gen izquie da, se ob end á un mensaje indicando
si la compilación ha sido co ec a, o si se ha encon ado algún e o . Si ocu e es e
79
úl imo, se indica á el p ime e o encon ado en la pa i u a. Cuando la compilación
sea co ec a, la pa i u a esul an e se mos a á en la ma gen de echa (Figu a 6.3).
PDF: Si se pulsa es e bo ón an es de in oduci una pa i u a en el lenguaje in e medio,
se a isa á con un mensaje de que es necesa io compila una pa i u a p e iamen e. Una
ez compilada la pa i u a, pod á clica se pa a ab i una pes aña con el iche o PDF
co espondien e.
PNG: Si se pulsa es e bo ón an es de in oduci una pa i u a en el lenguaje in e medio,
se a isa á con un mensaje de que es necesa io compila una pa i u a p e iamen e. Una
ez compilada la pa i u a, pod á clica se pa a ab i una pes aña con la imagen PNG
co espondien e.
MIDI: Si se pulsa es e bo ón an es de in oduci una pa i u a en el lenguaje in e me-
dio, se a isa á con un mensaje de que es necesa io compila una pa i u a p e iamen e.
Una ez compilada la pa i u a, pod á clica se pa a ab i una pes aña con la ep oduc-
ción del audio MIDI co espondien e.
Ci ado: Si se pulsa es e bo ón an es de in oduci una pa i u a en el lenguaje in e me-
dio, se a isa á con un mensaje de que es necesa io compila una pa i u a p e iamen e.
Una ez compilada la pa i u a, añadi á a la misma el ci ado ame icano debajo de las
no as del bajo.
Rese : Es e bo ón si e pa a bo a el caché gene ado du an e la compilación, pudiendo
ol e al es ado inicial de la web.
Mensajes: El ecuad o in e io al cuad o de ex o, a isa á de dis in a mane a si la
compilación ha sido co ec a, si han su gido e o es (Figu a 6.4), si es necesa io ealiza
algún paso p e io a la unción seleccionada o simplemen e indicando que se in oduzca
una pa i u a álida.
Cuad o de ex o: Es el cuad o de ex o donde se esc ibe el lenguaje in e medio a
compila . Colo ea de dis in a mane a las dis in as pa es del léxico y g amá ica de el
lenguaje pa a mayo cla idad del usua io.
Añadi que el eposi o io donde se puede accede a es a pa e del p oyec o es accesible a a és
de Gi Hub 1.
1h ps://gi hub.com/Al a oLuzu/django_TFG
80
Figu a 6.3: Aplicación web pos -compilado
81
Figu a 6.4: Aplicación web e o de compilado
82
7.2. Funcionalidades de la Web
Id. de p ueba Desc ipción Resul ado espe-
ado
Resul ado ob e-
nido
Obse aciones
1 Clic en el bo ón
‘Compila ’ con el
cuad o de ex o
acío
Se mues a una
pa i u a acía
Pa i u a acía Co ec o
1.1 Clic en el bo-
ón ‘PDF’ sin
habe compilado
p e iamen e una
pa i u a
Mensaje a isan-
do de la al a de
una pa i u a a
in oduci
Mensaje a isan-
do de la al a de
una pa i u a a
in oduci
Co ec o
1.2 Clic en el bo-
ón ‘PNG’ sin
habe compilado
p e iamen e una
pa i u a
Mensaje a isan-
do de la al a de
una pa i u a a
in oduci
Mensaje a isan-
do de la al a de
una pa i u a a
in oduci
Co ec o
1.3 Clic en el bo-
ón ‘MIDI’ sin
habe compilado
p e iamen e una
pa i u a
Mensaje a isan-
do de la al a de
una pa i u a a
in oduci
Mensaje a isan-
do de la al a de
una pa i u a a
in oduci
Co ec o
1.4 Clic en el bo-
ón ‘Ci ado’ sin
habe compilado
p e iamen e una
pa i u a
Mensaje a isan-
do de la al a de
una pa i u a a
in oduci
Mensaje a isan-
do de la al a de
una pa i u a a
in oduci
Co ec o
1.5 Clic en el bo-
ón ‘Rese ’ sin
habe compilado
p e iamen e una
pa i u a
Mensaje in o -
mando pa a que
se in oduzca
una pa i u a
Mensaje in o -
mando pa a que
se in oduzca
una pa i u a
Co ec o
Tabla 7.6: Funcionalidades de la Web (1)
89
Id. de p ueba Desc ipción Resul ado espe-
ado
Resul ado ob e-
nido
Obse aciones
2 Clic en el bo ón
‘Compila ’ con
una pa i u a
sin e o es en el
cuad o de ex o
Se mues a la
pa i u a com-
ple a y mensaje
de compilación
co ec a jun o al
núme o de líneas
Se mues a la
pa i u a com-
ple a y mensaje
de compilación
co ec a jun o al
núme o de líneas
Co ec o
2.1 Clic en el bo-
ón ‘PDF’ ha-
biendo compila-
do una pa i u a
sin e o es
Se ab e una pes-
aña con el PDF
co espondien e
a la pa i u a
Se ab e una pes-
aña con el PDF
co espondien e
a la pa i u a
Co ec o
2.2 Clic en el bo-
ón ‘PNG’ ha-
biendo compila-
do una pa i u a
sin e o es
Se ab e una pes-
aña con el PNG
co espondien e
a la pa i u a
Se ab e una pes-
aña con el PNG
co espondien e
a la pa i u a
Co ec o
2.3 Clic en el bo-
ón ‘MIDI’ ha-
biendo compila-
do una pa i u a
sin e o es
Se ab e una
pes aña con el
MIDI co es-
pondien e a la
pa i u a
Se ab e una
pes aña con el
MIDI co es-
pondien e a la
pa i u a
Co ec o
2.4 Clic en el bo-
ón ‘Ci ado’ ha-
biendo compila-
do una pa i u a
sin e o es
Se mues a
la pa i u-
a comple a
con el ci ado
ame icano con
mensaje de com-
pilación co ec a
jun o al núme o
de líneas
Se mues a
la pa i u-
a comple a
con el ci ado
ame icano con
mensaje de com-
pilación co ec a
jun o al núme o
de líneas
Co ec o
Tabla 7.7: Funcionalidades de la Web (2)
90
Id. de p ueba Desc ipción Resul ado espe-
ado
Resul ado ob e-
nido
Obse aciones
2.5 Clic en el bo-
ón ‘Rese ’ ha-
biendo compila-
do una pa i u a
sin e o es
Se eliminan los
a chi os gene a-
dos con la com-
pilación, qui an-
do la pa i u-
a isible y lim-
piando el cuad o
de ex o
Se eliminan los
a chi os gene a-
dos con la com-
pilación, qui an-
do la pa i u-
a isible y lim-
piando el cuad o
de ex o
Co ec o
3.0 Clic en el bo ón
‘Compila ’ con
una pa i u a
con un e o en
la p ime a linea
del cuad o de
ex o
Mues a un
mensaje de e o
indicando el
núme o de la
línea con el e o
Mues a un
mensaje de e o
indicando el
núme o de la
línea con el e o
Co ec o
3.0.1 Clic en el bo ón
‘Compila ’ con
una pa i u a
con un e o me-
dio del cuad o
de ex o
Mues a un
mensaje de e o
indicando el
núme o de la
línea con el e o
Mues a un
mensaje de e o
indicando el
núme o de la
línea con el e o
Co ec o
3.0.2 Clic en el bo ón
‘Compila ’ con
una pa i u a
con un e o
en el inal del
cuad o de ex o
Mues a un
mensaje de e o
indicando el
núme o de la
línea con el e o
Mues a un
mensaje de e o
indicando el
núme o de la
línea con el e o
Co ec o
3.0.3 Clic en el bo ón
‘Compila ’ con
una pa i u a
con a ios e o-
es en el cuad o
de ex o
Mues a un
mensaje de e o
indicando el nú-
me o de la línea
con el p ime
e o
Mues a un
mensaje de e o
indicando el nú-
me o de la línea
con el p ime
e o
Co ec o
Tabla 7.8: Funcionalidades de la Web (3)
91
Id. de p ueba Desc ipción Resul ado espe-
ado
Resul ado ob e-
nido
Obse aciones
3.1 Clic en el bo-
ón ‘PDF’ ha-
biendo compila-
do una pa i u a
con e o es
Mues a la pa i-
u a p e ia a la
compilación con
e o es
Mues a la pa i-
u a p e ia a la
compilación con
e o es
Co ec o
3.2 Clic en el bo-
ón ‘PNG’ ha-
biendo compila-
do una pa i u a
con e o es
Mues a la pa i-
u a p e ia a la
compilación con
e o es
Mues a la pa i-
u a p e ia a la
compilación con
e o es
Co ec o
3.3 Clic en el bo-
ón ‘MIDI’ ha-
biendo compila-
do una pa i u a
con e o es
Mues a el MI-
DI p e io a la
compilación con
e o es
Mues a el MI-
DI p e io a la
compilación con
e o es
Co ec o
3.4 Clic en el bo-
ón ‘Ci ado’ ha-
biendo compila-
do una pa i u a
con e o es
Mues a la pa i-
u a p e ia a la
compilación con
e o es
Mues a la pa i-
u a p e ia a la
compilación con
e o es
Co ec o
3.5 Clic en el bo-
ón ‘Rese ’ ha-
biendo compila-
do una pa i u a
con e o es
Se eliminan los
a chi os gene a-
dos con la com-
pilación, qui an-
do la pa i u-
a isible y lim-
piando el cuad o
de ex o
Se eliminan los
a chi os gene a-
dos con la com-
pilación, qui an-
do la pa i u-
a isible y lim-
piando el cuad o
de ex o
Co ec o
Tabla 7.9: Funcionalidades de la Web (4)
92
CAPÍTULO 8
Conclusiones
Llegando al inal de es a memo ia podemos conclui diciendo que el abajo esul an e es que el
que espe ábamos. Ya que se ha con eccionado un compilado con Flex y Bison, capaz de p ocesa un
nue o lenguaje semejan e a lo que se ía pasa a ex o plano la esc i u a u ilizada po los iki ila is, a
una no ación (Lilypond) con la que somos capaces de ob ene su equi alen e en pa i u a uni e sal.
Además se o ece es e compilado a los usua ios que lo necesi en a a és de un si io web, g acias a
habe desa ollado una aplicación web que lo con iene hecha con el amewo k pa a desa ollo de
páginas web Django.
Además de que es la única he amien a exis en e que suple el p oblema que su ge en e iki ila is
y o os músicos a la ho a de comunica se po ía esc i a. Dado a que los p ime os u ilizan una
no ación asca pa a esc ibi música de aco deón dia ónico en papel, el cual no es conocido pa a
el es o de músicos habi uados al pen ag ama uni e sal. Es a al a de comunicación en o pece
la colabo ación en e g upos de músicos de ambas especialidades. O eciendo así una solución
en o ma de pa i u a con la que ambos ipos de in é p e es pod ían oca sus ob as, ya que el
esul ado no solo es la ans o mación de la esc i u a ‘zenbakizko’, sino que es a esc i u a jun o
con el pen ag ama uni e sal son mos ados una al lado de la o a.
El p oyec o inalmen e ha cumplido con los obje i os p incipales mencionados en el Capí ulo 3:
De ini un lenguaje in e medio pa a la esc i u a de aco deón 3
C ea un compilado pa a con e i el lenguaje in e medio a Lilypond, desde la cual se
ob end á el a chi o PDF. El compilado end á en cuen a las siguien es no aciones:
• Melodía en cla e de Sol 3
93
• Bajo en cla e de Fa 3
• No as y Aco des de dis in a al u a 3
• Al e aciones 3
• Digi ación y esc i u a numé ica de aco deón 3
Mos a la esc i u a de iki ixa jun o a la pa i u a compilada 3
Página web donde pode ealiza las siguien es unciones:
• Impo a un a chi o de ex o en lenguaje in e medio y expo a lo a PDF
3
• Esc ibi en la p opia web el lenguaje in e medio pa a pode compila y
ob ene una p e isualización 3
Y la mayo ía de los obje i os secunda ios:
Implemen a la expo ación de lenguaje in e medio a MIDI 3
Mos a el esul ado en MIDI en la web al compila 3
Añadi siguien es no aciones al lenguaje in e medio y po an o a la pa i u a:
• Silencios 3
• Ma cas de compás y epe iciones 3
• De inición de compás 7
• No as con medidas y alo es i egula es 3
• No as con pun illo 3
• Indicado es de exp esión (ligadu as, s acca o...) 7
• In ensidad ( o e, piano...) 7
• Tempo (adagio,alleg o...) 7
Implemen a el ci ado ame icano pa a los aco des según cambian en la pa i u a 3
Seguimien o de la pa i u a mien as se ep oduce el MIDI en la web 7
Los obje i os no cumplidos podemos inclui los en el abajo a u u o, ya que p incipalmen e
es as inalidades depende ían de o o ipo de abajo pa a se elabo adas. Véase los indicado es de
compás, exp esión, in ensidad y empo que no apa ecen ep esen ados en una esc i u a de iki ixa,
pe o se pod ía desa olla una In eligencia A i icial capaz de analiza una pa i u a de iki ixa
compa ándola con una base de da os de pa i u as simila es donde ya se conoce ía si es os esul ados
son espe ados en un pen ag ama o no. También se ía posible modela la digi ación u ilizando
una base de da os y añadi le al p oyec o un sis ema in eligen e que asigne la digi ación/ uelle
au omá icamen e a una pa i u a al cual no se le haya indicado es a in o mación p e iamen e.
Aunque las bases de da os en el con ex o de aco deón dia ónico son pequeños, es os modelos de
digi ación se pod ían p e-en ena u ilizando el ap endizaje po ans e encia ya que hay bases de
da os masi as de digi ación en el con ex o del ins umen o piano. Menciona que la ep oducción
de audio ealice un seguimien o no a po no a po la pa i u a compilada, conlle a ía a u iliza
94
he amien as no pensadas pa a es e p oyec o, ya que PDF y PNG no o ecen al e na i as pa a ello.
G acias al ap endizaje de las he amien as u ilizadas, se puede e como elabo a mejo as o
modi icaciones como abajo u u o pa a la ampliación de es e p oyec o. Una de las ideas e a im-
plemen a una uncionalidad en la web, donde inse a un enlace de una pa i u a en T iki i auki1,
y median e un pa se en Py hon analiza el con enido HTML pa a así gene a el lenguaje in e -
medio y ob ene la pa i u a esul an e. O a es pode impo a o os o ma os musicales como
Lilypond, MusicXML y que el compilado ealice el p oceso in e so, ans o mándolos al lenguaje
in e medio. Finalmen e o a mejo a a implemen a un sis ema de ges ión de usua ios en la web,
donde cada usua io pod á c ea y ges iona di e sas pa i u as desde un pe il.
Menciona que el es ue zo inicialmen e p opues o ha supues o una es imación medianamen e
co ec a de las ho as in e idas. El hecho de habe enido que ap ende a u iliza he amien as
nue as con las que abaja , ha supues o una cu a de ap endizaje algo p onunciada, po lo que
esas ho as se han is o inc emen adas conside ablemen e. Suma es o a posibles e asos ha hecho
que haya habido que dedica le un iempo ex a al p oyec o, sin des ia se del plan o iginal, ya que
es e p oblema se ha suplido con más can idad de ho as in e idas al día.
Pa a conclui me gus a ía expone mi expe iencia con es e p oyec o. Desde que comenzó la
ca e a, el ema del TFG e a algo que me su gían muchas dudas e inquie udes. Siemp e pensaba
que llega ía el día en ene que hace lo y no sabe qué hace , o ene que ealiza un abajo de
an o es ue zo que no me mo i ase pa a nada. A eces pensaba de mane a algo an asiosa enlaza
mi pasión musical, a la que había dedicado an as ho as de mi ida con mis conocimien os den o
del g ado. Pe o es as ideas se iban ápidamen e de mi cabeza ya que eía imposible ealiza una
a ea así po la complejidad que supond ía, o po que ya se habían ocado odos los palos posibles.
Cuando llegó el cu so donde se debía comenza con el TFG ocaba elegi de ini i amen e un
ema, así que me ace qué a los emas o e ados po los p o eso es pa a e si me inspi aban a
encon a algo que me sa is iciese. Vi en e odos los emas o e ados el o ecido po Iñigo Pe ona
e Iñigo Mendialdua, p o eso es con los que ya había a ado y con gus o ealiza ía un abajo.
Así que así ue como comenzó es e p oyec o. Uno que ha conlle ado a ap ende a u iliza muchas
he amien as nue as y a supues o una cu a de ap endizaje lige amen e ele ada. La elección de
usa es as he amien as ue el u o de iempo de in es igación, ya que exis ía un desconocimien o
sob e la edición de no ación musical en la in o má ica, la c eación de compilado es y el desa ollo
de páginas web de mane a sencilla. Aunque el iempo in e ido ha me ecido la pena, ya se ha
is o que dichas he amien as han cumplido con c eces sus unciones. Flex y Bison son capaces
1h ps:// i iki auki.com/zenbakiz/
95
de o ece analizado es léxicos y sin ác icos de cualquie ipo si se conoce bien como saca pa ido
a las capacidades del LR Pa se , pe mi iendo así de ini el lenguaje eque ido. Lilypond es una
no ación con muchas opciones y p o undidad a la ho a de la c eación de pa i u as musicales. Y
Django se ha p esen ado como una de las mejo es opciones pa a el desa ollo web sencillo pe o con
su icien e complejidad.
Aunque la ges ión y plani icación no ha sido inco ec a, es cie o que unas mejo as en es a y en el
iempo in e ido pod ía habe supues o un ap endizaje más ápido de las he amien as u ilizadas,
lo que hubie a supues o la capacidad po nues a pa e en un mayo ango de uncionalidades
implemen adas. Sin emba go, el abajo ealizado suple un p oblema eal exis en e en el mundo de
la música, más conc e amen e aquí en el País Vasco. Siendo inalmen e una he amien a única po
los ámbi os en los que se mue e, el p oblema al que pone solución y el como in en a sol en a lo.
96
Los silencios musicales ambién iene ep esen ación den o de la esc i u a de la iki ixa. Se
ep esen an como pun os neg os y pueden usa se an o en la melodía como en el bajo (Figu a A.7).
Figu a A.7: Silencios en melodía y bajo
Se encuen an ambién esillos, incluyendo es no as no con iguas de la melodía, en uel os po
un co che e ho izon al. Siemp e iene acompañado de un único bajo. Es posible ap ecia lo mejo
en la Figu a A.8.
Figu a A.8: T esillos en la melodía
102
A la ho a de ep esen a con coda, se usa un símbolo de ‘es ella’ o as e isco pa a deno a de
donde a donde se debe sal a en la in e p e ación (Figu a A.9).
Figu a A.9: F agmen o con ep esen ación de una coda
103
APÉNDICE B
Lilypond
U ilizando la comple a y ex ensa guía de Lilypond [19], ha sido posible la ealización de pa i-
u as que se puedan asemeja lo máximo posible a lo que se ob end ía pasando a mano un esc i o
del lenguaje de iki ixa, a pa i u a de pen ag ama clásico. Lilypond además po encia el apa -
ado isual y de pe sonalización de las pa i u as, buscando en lo máximo posible asemeja se a
pa i u as ealizadas de mane a manual.
Los iche os ob enidos al compila el lenguaje in e medio de en ada end án una es uc u a y
con enido simila a la siguien e:
1 e sion "2.18.2"
2pen a_sol = {}
3pen a_ a = {}
4pen a_sol = { pen a_sol < b'' inge ma kup{ o e ide #'( hickness . 5) ci cle
{3} d aw-ci cle #0.25 #0 ## } > 1 }
5pen a_ a = { pen a_ a se inge ingO ien a ions = #'(up) <g,-5> 1 _ ma kup{
abs- on size #10 G } }
6pen a_sol = { pen a_sol < > 1 <> 1 }
7pen a_ a = { pen a_ a se inge ingO ien a ions = #'(up) <bes,,-3 bes,-4 des >
1 _ ma kup{ abs- on size #10 Bb } }
8pen a_ a = { pen a_ a se inge ingO ien a ions = #'(up) < ,-1> 1 _ ma kup{
abs- on size #10 F } }
104
9pen a_sol = { pen a_sol uple 3/1 { < a'' inge ma kup{ o e ide #'( hickness
. 5) ci cle{5} " "} > < '' inge ma kup{ o e ide #'( hickness . 5)
ci cle{7} " "} > < g'' inge ma kup{ o e ide #'( hickness . 5) ci cle{8} "
"}>}}
10 pen a_sol = { pen a_sol ba ":|." }
11 pen a_ a = { pen a_ a ba ":|." }
12 pen a_sol = { pen a_sol < e'' inge ma kup{ o e ide #'( hickness . 1) ci cle
{9} " "} c'' inge ma kup{ o e ide #'( hickness . 1) ci cle{12} d aw-
ci cle #0.25 #0 ## } > 1 }
13 pen a_ a = { pen a_ a se inge ingO ien a ions = #'(up) <g,-5> 2 _ ma kup{
abs- on size #10 G } <c-8 e g> 2 _ ma kup{ abs- on size #10 C } }
14 pen a_sol = { pen a_sol < e'' inge ma kup{ o e ide #'( hickness . 1) ci cle
{9} " "} c'' inge ma kup{ o e ide #'( hickness . 1) ci cle{12} d aw-
ci cle #0.25 #0 ## } > 1 }
15 pen a_ a = { pen a_ a }
16 pen a_sol = { pen a_sol once o e ide Sco e.Rehea salMa k. on -size = #4
ma k ma kup { musicglyph #"sc ip s.coda" } }
17 pen a_ a = { pen a_ a once o e ide Sco e.Rehea salMa k. on -size = #4 ma k
ma kup { musicglyph #"sc ip s.coda" } }
18 pen a_sol = { pen a_sol < e'' inge ma kup{ o e ide #'( hickness . 1) ci cle
{9} d aw-ci cle #0.25 #0 ## } ''' inge ma kup{ o e ide #'( hickness . 1)
ci cle{4} abs- on size #3 x} > 1 }
19 pen a_ a = { pen a_ a se inge ingO ien a ions = #'(up) uple 3/1 { < ,-1>_
ma kup{ abs- on size #10 F } < -2 a c'> < ,-1> } }
20 pen a_sol = { pen a_sol b eak }
21 pen a_ a = { pen a_ a b eak }
22 pen a_sol = { pen a_sol once o e ide Sco e.Rehea salMa k. on -size = #4
ma k ma kup { musicglyph #"sc ip s.coda" } }
23 pen a_ a = { pen a_ a once o e ide Sco e.Rehea salMa k. on -size = #4 ma k
ma kup { musicglyph #"sc ip s.coda" } }
24 pen a_sol = { pen a_sol < ''' inge ma kup{ o e ide #'( hickness . 1) ci cle
{4} " "} c'' inge ma kup{ o e ide #'( hickness . 1) ci cle{5} d aw-
ci cle #0.25 #0 ## } > 1 }
25 pen a_sol = { pen a_sol < ''' inge ma kup{ o e ide #'( hickness . 1) ci cle
{4} " "} c'' inge ma kup{ o e ide #'( hickness . 1) ci cle{5} d aw-
ci cle #0.25 #0 ## } > 1 }
105
26 pen a_ a = { pen a_ a se inge ingO ien a ions = #'(up) <bes,-4 des > 1 _
ma kup{ abs- on size #10 Bb } <bes,-4 des > 1 }
27 e sion "2.18.2"
28
29 pape {
30 sys em-sys em-spacing =
31 #'((basic-dis ance . 16)
32 (minimum-dis ance . 8)
33 (padding . 1)(s e chabili y . 60))
34 }
35
36 sco e{
37 <<
38 new S a
39 wi h { emo e "Time_signa u e_eng a e " }{
40 se inge ingO ien a ions = #'(down)
41 cle " eble"
42 pen a_sol
43 ba "|."
44 }
45 new S a
46 wi h { emo e "Time_signa u e_eng a e " }{
47 se inge ingO ien a ions = #'(up)
48 cle "bass"
49 pen a_ a
50 ba "|."
51 }
52 >>
53 }
54 % El iche o de en ada iene 14 lineas
Viendo es e ejemplo de iche o .ly, es posible da un ace camien o a la no ación que u iliza
Lilypond pa a c ea las pa i u as.
106
B.1. Ve sion
Lilypond es un so wa e al que se le siguen aplicando ac ualizaciones, po an o es ecomendable
indica la e sión a u iliza al inicio de cada iche o de es e ipo de no ación. Indicándose con
e sion seguido del núme o de la e sión en e comillas. (Línea 1)
B.2. Fo ma o
Con el comando pape es posible deno a el o ma o que end á la pa i u a una ez se
con ie a a PDF. Incluyendo en es e caso el espaciado en e líneas mínimo, máximo, el elleno
en e no as e c. (Líneas 29-33)
B.3. Pen ag ama
Pa a gene a una pa i u a se usa el comando sco e, con el que se da inicio a la posibilidad de
edi a i mos, compases, cla es, pen ag amas, en e o as unciones. Con el comando new S a
es posible indica una nue a en ada en un pen ag ama. (Líneas 36-53)
Cla es
Exis en muchos ipos cla es que puedan ep esen a se en Lilypond, pe o las más usadas y aquí
e e enciadas son las siguien es:
Cla e de Sol: ep esen ada con el símbolo , y como cle eble en Lilypond. Se
u iliza á den o de la no ación de es e p oyec o al se la cla e donde se ep esen a la
melodía. (Línea 41)
Cla e de Fa: se la ep esen a con el símbolo , y como cle bass en Lilypond.
Pudiendo apa ece en la 3ª o 4ª línea del pen ag ama, se u iliza á es a úl ima u iliza á
den o de la no ación de es e p oyec o al se la cla e donde se ep esen a la melodía.
(Línea 48)
Cla e de Do: ep esen ada con el símbolo , y cle C en Lilypond. Pudiendo apa-
ece en la 2ª, 3ª o 4ª línea del pen ag ama, no se u iliza á ya que no es ú il a la ho a
de que e ep esen a la esc i u a pa a aco deón.
O as opciones
El es o de opciones u ilizadas simbolizan lo siguien e:
emo e 'Time_signa u e_eng a e ': se eliminan la indicación de ma cado de com-
pás, ya que en la aducción lenguaje “zenbakizkopa i u a no hay e e encias a medidas
ni i mos. (Líneas 39, 46)
107
se inge ingO ien a ions = #'(down/up): o ien ación de la digi ación y demás
ma cas que apa ece án en la pa i u a. (Líneas 40, 47)
pen a_sol/pen a_ a: son las a iables donde se gua dan la melodía y el bajo espec-
i amen e. Se de alla án más adelan e. (Líneas 42, 49)
ba '|.': El inal de la pa i u a, en ambas líneas sono as, an o melodía como bajo.
(Líneas 43, 50)
B.4. No as
Como se menciona en la Sección 5.2, el egis o pen a_sol gua da á la in o mación co espon-
dien e a la melodía, y pen a_ a a las no as y aco des del bajo. Ambos se inicializan al p incipio
pa a no pode deja ma gen a gene a e o es. (Líneas 2-26)
Nomb e
Pa a de ini una no a, se necesi an en e o as cosas su nomb e. Los posibles casos son los
siguien es:
Lilypond c d e g a b
Pa i u a do e mi a sol la si silencio
Tabla B.1: No as musicales en Lilypond
Menciona ambién las al e aciones, las cuales se esc iben después del nomb e de la no a:
Si es un sos enido :is
Si es doble sos enido :isis
Si es un bemol Z:es
Si es doble bemol ZZ:eses
Si es becuad o ^: se deja acío
Al u a
La al u a de las no as puede depende de dos si uaciones:
El modo de en ada de oc a a ela i a especí ica cada oc a a en elación a la no a
an e io , si se cambia la oc a a de una no a a ec a á a odas las no as siguien es. Es e
modo se debe in oduci de o ma explíci a usando la ins ucción ela i e.
Las no as cuyos nomb es an desde chas a bse imp imen en la oc a a in e io al Do
cen al. En la esc i u a de oc a a absolu a se u iliza la comilla (') po cada oc a a
que se quie a subi , y una coma (,) po cada una que se quie a baja
108
Como es posible e en el código an e io , se ha decidido usa la esc i u a de oc a a absolu a
al pode gene a un esul ado as la compilación que no enga iesgos a la ambigüedad del modo
ela i o.
Medida
Pa a de ini la medida egula se u ilizan núme os, siendo el 1 la edonda, y las siguien es mi-
ades, el doble del núme o an e io . Véase la Tabla B.2 pa a más cla idad.
Lilypond 1 2 4 8 16 32 64
Pa i u a ¯ ˘ “ˇ“ˇ“(ˇ“)ˇ“*ˇ“+
Tabla B.2: Medidas en Lilypond
Cuando se quie en c ea medidas de alo ación especial se usa el comando uple pa a indica
cuan os sonidos se deben indica en cuan os iempos. (Línea 9)
Digi ación
Al que e ep esen a la digi ación y no ación especi ica de la iki ixa jun o a la pa i u a inal,
se ha decidido inclui las siguien es no aciones pa a indica lo:
inge ma kup{ o e ide #'( hickness . 1)}: no ación pa a añadi un cí culo
jun o a la no a de la melodía co espondien e. Indicando que iene de una no a de
aco deón con el uelle ce ando. (Línea 24)
inge ma kup{ o e ide #'( hickness . 5)}: igual que el an e io , es a ez in-
dicando que iene de una no a de aco deón con el uelle ab iendo. (Línea 5)
ci cle{1}: es el alo que se le da al cí culo an e io men e de inido. Co esponde al
núme o de la no a en esc i u a de aco deón.
' ': la digi ación se ealiza con el dedo índice ( acío).
d aw-ci cle #0.25 #0 ## : la digi ación co espondien e a la no a de la melodía,
en es e caso siendo con el dedo co azón (ci culo neg o). (Línea 5)
d aw-ci cle #0.25 #0 ## : es la digi ación co espondien e a el dedo anula (ci culo
blanco). (Línea 14)
abs- on size #3 x: digi ación co espondien e al dedo meñique (c uz). (Línea 18)
109
Ci ado ame icano
El ci ado ame icano es un ipo de no ación que suele apa ece en odo ipo de pa i u as y aquí
se ha que ido añadi como un ex a pa a la ayuda del in é p e e. Se coloca á el co espondien e
ci ado al inal de cada en ada del bajo, _ ma kup{ abs- on size #10 G } . Donde ‘G’ es el
ci ado co espondien e al aco de de Sol Mayo . (Línea 5)
B.5. Signos de epe ición
Exis en dos ipos de epe iciones aquí implemen adas:
Pa a la ‘Coda’ se usa la exp esión once o e ide Sco e.Rehea salMa k. on -size
= #4 ma k ma kup { musicglyph # sc ip s.coda }. (Línea 22, 23)
Pa a el ‘Segno’ se usa la exp esión once o e ide Sco e.Rehea salMa k. on -size
= #3 ma k ma kup { musicglyph # sc ip s.segno }.
En e las epe iciones de compás se ienen:
• El in de epe ición ba ':|.' (Línea 10, 11)
• El inicio de epe ición ba '.|:'
• La doble epe ición ba ':..:'
• El in de sección ba '||'
B.6. Resul ado
El esul ado en PDF de el código Lilypond es el de la Figu a B.1.
Figu a B.1: Resul ado en pa i u a del código Lilypond
110
APÉNDICE C
G amá ica del lenguaje in e medio
En es e apéndice se mos a á la g amá ica u ilizada pa a el compilado de lenguaje in e medio.
Es el con enido del iche o Bison (.y), dejando únicamen e la es uc u a de símbolos e minales y
no- e minales.
1s m s :
2| s m PUNTOCOMA s m s
3| INICIO_TRESILLO s m s
4| FIN_TRESILLO s m s
5| INICIO_REPETICION s m s
6| FIN_REPETICION s m s
7| DOBLE_REPETICION s m s
8| FIN_SECCION s m s
9| SEGNO s m s
10 | CODA s m s
11
12 s m :
13 | no a_sol
14 | no a_sol GUION no a_ a
15
16 no a_sol :
17 | NUMERO uelle pa en esis_ab i sol_num_digi s pa en esis_ce a
18 | uelle pa en esis_ab i sol_num_digi s pa en esis_ce a
111