scieee Science in your language
[Es] (orig)

Desarrollo del simulador del instrumento Theremin empleando un Leap Motion

Abstract

[ES] El objetivo del proyecto consiste en crear un programa que simula el uso del instrumento musical Theremin y que requiere el uso del dispositivo Leap Motion. La base del programa se ha hecho con ejemplos básicos de otras aplicaciones con librerías de sonido, reconocimiento de gestos y de diseño gráfico. Se ha empleado el lenguaje de programación C++ para desarrollarlo.

Read accessible full text

Desarrollo del simulador del instrumento Theremin empleando un Leap Motion

Author: Sancho I Martínez, Joan
Publisher: Universitat Politècnica de València
Year: 2015
Source: https://riunet.upv.es/bitstream/10251/55862/1/SANCHO%20-%20Desarrollo%20del%20simulador%20del%20instrumento%20Theremin%20empleando%20un%20Leap%20Motion.pdf
Escola Tècnica Supe io d’Enginye ia In o mà ica
Uni e si a Poli ècnica de València
Desa ollo del simulado del ins umen o
The emin empleando un Leap Mo ion
T abajo Fin de G ado
G ado en Ingenie ía In o má ica
Au o : Sancho Ma ínez, Joan
Tu o : Mollá Vayá, Ramón Pascual
2014-2015
Desa ollo del simulado del The emin empleando un Leap Mo ion
2
Resumen
El obje i o del p oyec o consis e en c ea un p og ama que simula el uso del
ins umen o musical The emin y que equie e el uso del disposi i o Leap Mo ion. La
base del p og ama se ha hecho con ejemplos básicos de o as aplicaciones con lib e ías
de sonido, econocimien o de ges os y de diseño g á ico. Se ha empleado el lenguaje de
p og amación C++ pa a desa olla lo.
Palab as cla e: ins umen o i ual, he emin, c++, leap mo ion.
Abs ac
The p ojec goal is o c ea e a p og am ha simula e he use o he musical
ins umen The emin and equi es he use o he Leap Mo ion de ice. The basis o he
p og am is made o pa s om basic examples o applica ions wi h audio, ges u e
ecogni ion and g aphic design lib a ies. I has used he p og aming language C++ o
de elop i .
Keywo ds : i ual ins umen , he emin, c++, leap mo ion.
3
Desa ollo del simulado del The emin empleando un Leap Mo ion
4
Tabla de con enidos
1 In oducción......................................................................................................9
1.1 Mo i ación....................................................................................................9
1.2 Obje i os......................................................................................................9
1.3 Es uc u a de la ob a.................................................................................10
2 Es ado del a e................................................................................................12
2.1 El The emin................................................................................................12
2.2 Disposi i os de econocimien o de ges os................................................13
2.3 Leap Mo ion...............................................................................................14
3 Análisis del p oblema......................................................................................18
3.1 He amien as básicas................................................................................18
3.2 Lib e ías de sonido....................................................................................18
3.3 Lib e ías de diseño g á ico........................................................................20
3.4 He amien as de diseño.............................................................................22
3.5 P esupues o...............................................................................................22
3.6 Plani icación...............................................................................................26
4 Diseño de la solución......................................................................................29
4.1 Es uc u a del p og ama............................................................................29
4.2 Sis ema de en ada....................................................................................30
4.3 Diseño del sis ema de audio......................................................................31
4.4 Aspec o g á ico..........................................................................................35
5 Implemen ación...............................................................................................37
5.1 El con olado del Leap Mo ion..................................................................37
5.2 La clase audio............................................................................................42
5.3 El módulo g á ico.......................................................................................44
5.3.1 Implemen ación de en anas................................................................45
5.3.2 Escena g á ica......................................................................................48
5.3.3 La clase modelo....................................................................................52
6 Conclusiones..................................................................................................54
6.1 Resul ados.................................................................................................54
6.2 Di icul ades encon adas...........................................................................54
6.3 Relación con la ca e a..............................................................................54
5

Desa ollo del simulado del The emin empleando un Leap Mo ion
6.4 T abajo u u o.............................................................................................55
7 Manual de usua io..........................................................................................57
7.1 Ins alación..................................................................................................57
7.2 Con igu ación.............................................................................................57
7.3 Ejecución...................................................................................................58
8 Bibliog a ía......................................................................................................62
9 Glosa io...........................................................................................................64
6
Índice de imágenes
Ilus ación 1: The emin diseñado po la emp esa Moog....................................12
Ilus ación 2: Sis ema de coo denadas del Leap Mo ion....................................15
Ilus ación 3: Es uc u a de cómo econoce el Leap Mo ion los huesos............16
Ilus ación 4: Diag ama de Gan de la plani icación p e ia del p oyec o..........27
Ilus ación 5: Diag ama de Gan de la plani icación eal del p oyec o..............28
Ilus ación 6: Esquema de los módulos del p oyec o y sus elaciones..............29
Ilus ación 7: Esquema del sis ema de en anas y sus elaciones de acceso. .30
Ilus ación 8: Ondas de sonido sinusoidal, cuad á ica, iangula y dien es de
sie a...................................................................................................................32
Ilus ación 9: Pis as de audio idén icas, pe o con ecuencias de mues eo
dis in as...............................................................................................................33
Ilus ación 10: Sis ema de en ol u a ADSR aplicada sob e un sonido..............34
Ilus ación 11: G á ica con las dis ancias en e la no a A0 y cualquie o a.......40
Ilus ación 12: Funcionamien o del mé odo onF ame........................................41
Ilus ación 13: Ciclo de ida del sis ema de audio.............................................44
Ilus ación 14: Ciclo de ida de la escena g á ica..............................................52
Ilus ación 15: Ven ana de inicio del p og ama...................................................58
Ilus ación 16: Ven ana del simulado del The emin..........................................59
Ilus ación 17: Ven ana de con igu ación............................................................60
7
Desa ollo del simulado del The emin empleando un Leap Mo ion
8
1 In oducción
1.1 Mo i ación
Una de las mo i aciones po las que me han lle ado a elegi es e p oyec o es la de
c ea una aplicación que u iese elación con el mundo de la música. En lo que hace
e e encia a las aplicaciones que iene que e con la música, a pa e de los
p og amas de edición y posp oducción de audio o los de econoce canciones a pa i
de una mues a de audio, se encuen an los que in en an simula , con sonido digi al,
ins umen os musicales. En es a sección de aplicaciones, se han c eado muchos pa a
los ins umen os más comunes de hoy en día, que pueden se pianos, gui a as,
iolines o ins umen os de pe cusión en e o os. En mi caso, en ez de c ea o o
simulado como los que hay, se á c ea uno pa a un ins umen o poco común, el
The emin.
Al ene que p og ama con lib e ías de sonido, es e p oyec o me pe mi e ealiza un
ace camien o a su uso en cuan o al ene que p og ama un sis ema de audio, po que
es e ipo de lib e ías no se enseñan en las asigna u as obliga o ias de la ca e a y
pueden se i pa a di e en es sec o es en el mundo de la in o má ica, como en los
ideojuegos o aplicaciones mul imedia.
Po o o lado, el Leap Mo ion es un disposi i o que ha apa ecido hace unos años, con
la capacidad de ob ene in o mación a pa i de la in e p e ación de ges os, una écnica
que úl imamen e es a siendo explo ada po muchas compañías. En es e caso, la idea
de c ea una aplicación que use es a ecnología me puede se i pa a ob ene una
idea base de cómo usa lo, pa a su uso en p og amas que pueda c ea en el u u o que
ambién lo ap o echen.
Po úl imo, el ene que ealiza es a aplicación me puede ayuda a comp ende mejo
como se debe o ganiza un p oyec o de es e es ilo y ambién a ob ene una o mación
p o esional, eniendo en cuen a que la gen e con conocimien os in o má icos son cada
ez más necesi ados en muchos abajos.
1.2 Obje i os
El obje i o p incipal del p oyec o es desa olla una aplicación g á ica que simula el
uso del The emin, un ins umen o musical que gene a sonido pa iendo de la dis ancia
que hay en e las manos del usua io y el ins umen o.
O a inalidad de es e p oyec o es el de usa , como componen e indispensable, el Leap
Mo ion pa a en ia in o mación al p og ama, mos ando al usua io po una pan alla las
9
Desa ollo del simulado del The emin empleando un Leap Mo ion
Aunque no se ap ecia en muchas aplicaciones con el Leap Mo ion, es e disposi i o es
capaz de econoce más de dos manos en un mismo ame, aunque se ecomienda
man ene un máximo de dos manos en su campo de isión pa a pode ob ene una
calidad óp ima en el seguimien o de mo imien os.
También se había mencionado que p opo ciona in o mación de cada dedo de la mano.
Si odo o pa e del dedo no es isible po el con olado , las ca ac e ís icas de ese
dedo se es iman basándose en obse aciones ecien es y po el modelo in e no de la
mano. Cada dedo con iene in o mación sob e su iden idad en la mano que se
encuen a y de los huesos que lo componen.
Es os huesos que lo o man son el me aca piano, alange p oximal, alange media y
alange dis al. En el modelo del dedo pulga se encuen a el de ec o de que no se
ajus a al sis ema de ana omía es ánda , po que el e dade o pulga iene un hueso de
menos compa ado con el es o. Sin emba go, pa a acili a al p og amado , al modelo
del Leap Mo ion se le ha añadido un hueso de más en la base del pulga con longi ud
ce o, haciendo e e encia al me aca piano y subs i uyendo el nomb e del es o de los
huesos, haciéndolos equi alen es a los o os dedos [7].
El so wa e ambién puede econoce cie os pa ones de mo imien o como ges os que
puedan indica una in ención po pa e del usua io. Puede epo a los ges os en un
ame de la misma mane a que in o ma de los da os e e en es al seguimien o de las
manos. Los mo imien os que econoce el disposi i o son:
Gene ación de un ci culo hecho po un dedo.
Mo imien o linea de la mano y sus dedos.
Mo imien o de oca con un dedo, como si se a ase de oca la ecla de un eclado
de o denado .
16
Ilus ación 3: Es uc u a de cómo econoce el Leap
Mo ion los huesos

Desplazamien o de un dedo, como si se uese a oca la pan alla del o denado .
17
Desa ollo del simulado del The emin empleando un Leap Mo ion
3 Análisis del p oblema
3.1 He amien as básicas
Pa a la c eación de una aplicación que consis e en simula un ins umen o median e
un disposi i o de ges os, se iene que ene en cuen a que debe con ene un sis ema
de e o-alimen ación, que in o ma al usua io con una salida de ideo e audio, mien as
que la aplicación ecibe como in o mación de en ada los ges os y mo imien os de
manos que aya gene ando el Leap Mo ion. Con es a idea, la aplicación equie e de
plugins o lib e ías de p og amación que puedan gene a in o mación sono a y isual.
Como he amien as base pa a el p oyec o, se ha pensado en u iliza como lenguaje de
p og amación el de C++, po que a pa e de segui siendo un es ánda pa a c ea
muchos p og amas de dis in os ipos, pe mi e la posible inse ción de unciones
c eadas po el UPVGameKe nel, diseñado po el DSIC de la acul ad de in o má ica,
que ambién es a esc i o en ese lenguaje.
El UPVGameKe nel se a a de un ke nel que ap o echa lib e ías ex e nas pa a el uso
de sonido, in eligencia a i icial y de socke s pa a conec a se po In e ne en e o os.
También con iene uncionalidades pa a el uso de algunos disposi i os de en ada,
donde se encuen an mé odos ya implemen ados pa a el Leap Mo ion, aunque en es e
p oyec o no nos in e esan po la obsolescencia de sus lib e ías, que no ap o echan
an o el disposi i o como lo hacen las biblio ecas de hoy en día. Po ese mo i o, en ez
de u iliza las unciones del Leap Mo ion ya c eadas po es e ke nel, se le añadi án de
nue as, ac ualizando además sus lib e ías.
Como es posible que se enga en cuen a el uso de a chi os po pa e del
UPVGameKe nel, el en o no en el que se desa olla el p og ama debe de se el Visual
S udio. Po los equisi os mencionados an e io men e y po la posibilidad de accede a
su uso po pa e del o denado que se u iliza pa a la ealización del p oyec o, la
aplicación se ealiza con el sis ema ope a i o Windows 7.
3.2 Lib e ías de sonido
En la ac ualidad se puede encon a una g an a iedad de lib e ías de sonido, donde
cada uno de ellos iene sus ca ac e ís icas que los hacen más dis in os a los o os, sus
en ajas e incon enien es. Muchas de es as biblio ecas ambién con ienen unciones
de diseño g á ico, de modo que se pod ían ca aloga mejo como lib e ías mul imedia.
En e odas ellas se han enido en cuen a las siguien es:
18
Alleg o, de Alleg o de elope s [8], que es una lib e ía mul ipla a o ma di igida a la
c eación de ideojuegos con unciones mul imedia, que sopo a la manipulación de
imágenes y de ex o a pa e de sus con oles de audio y de MIDI. Su biblio eca es a
esc i a en C, pe o es a diseñado pa a pode usa lo con C++, Objec i e-C, Lua y
Py hon en e o os lenguajes de p og amación. Usa una licencia de código abie o y
iene una comunidad de usua ios que con ibuyen en la c eación de lib e ías ex e nas
pa a añadi nue as unciones.
Open Audio Lib a y, más conocido como OpenAL y desa ollado po C ea i e
Technology [9], es o a lib e ía con una API mul ipla a o ma diseñada de o ma
e icien e pa a la gene ación de canales de salida de audio espacializado simulando
espacio 3D. G acias a es a ca ac e ís ica, se ha u ilizado en di e sas pla a o mas de
ideojuegos po su o ma de da ealismo en el ambien e de cualquie juego.
Open Media Lib a y, ambién denominada OpenML y diseñado po Kh onos G oup
[10], es más bien un es ánda de en o no mul ipla a o ma que pe mi e la cap u a,
anspo e, p ocesamien o, isualización y sinc onización de di e en es medios, an o
g á icos 2D o 3D como lujos de audio o ideo. Sopo a lujos asínc onos en e
ha dwa e, OpenGL pa a el p ocesamien o de ideo acele ado y ambién iene con ol
de isualización p o esional. OpenML es de código abie o como o as de las lib e ías
c eadas po la misma compañía.
Simple and Fas Mul imedia Lib a y, conocido po las siglas SFML [11] y c eado po
SFML-Team, ambién es una lib e ía mul imedia. Su a qui ec u a con iene a ios
módulos que pe mi en da sopo e de biblio ecas g á ica, de audio y el uso de socke s
pa a conec a se a la ed. Es á esc i o en C++ y pe mi e el desa ollo de p og amas en
C, Ja a, Py hon, Ruby y Rus en e o os lenguajes. Es mul ipla a o ma, compa ible
con Windows, Linux y OS X, y ambién se encuen a en el sec o del so wa e de
código abie o.
Simple Di ec Media Laye , desa ollado po Sam Lan inga [12] y nomb ado
ab e iadamen e como SDL, es un conjun o de biblio ecas mul imedia implemen adas
en C que p opo cionan unciones básicas pa a ealiza ope aciones de dibujo en 2D y
ges ión de sonido y música. Es compa ible con o os lenguajes de p og amación, como
C++, Ja a, E lang, Py hon o Lua en e o os, y p opo ciona he amien as pa a el
desa ollo de ideojuegos. Es as lib e ías ambién se dis ibuyen bajo la licencia de
código abie o, cosa que le ha pe mi ido un g an a ance en la e olución de su
con enido.
FMOD, de Fi eligh Technologies [13], que es más bien un mo o de audio pa a
ideojuegos, pe mi e ejecu a y mezcla di e sos a chi o de audio en dis in os
o ma os. Aun así, con iene una API de bajo ni el pa a p og ama en C, C++ y C#, y es
19
Desa ollo del simulado del The emin empleando un Leap Mo ion
compa ible en muchas pla a o mas, an o en los sis emas ope a i os de compu ado a
como en las consolas de ideojuegos. También puede se in eg ado en mo o es
g á icos, como C yEngine, Uni y y Un eal, pa a pode p og ama aplicaciones an o
pa a el uso básico como p o esional.
Di ec Sound, c eado po Mic oso , es un componen e so wa e que ap o echa las
lib e ías de audio de Di ec X [14], una biblio eca mul imedia. P opo ciona muchas
capacidades como g abación y mezclado de audio, adición de e ec os al sonido,
posicionamien o del sonido en un espacio 3D. Su API pe mi e el uso de C y C++ pa a
p og ama con él y solo es compa ible con los sis emas ope a i os de Windows.
Pa a las necesidades del p oyec o, se ha elegido las lib e ías de sonido FMOD,
po que es mul ipla a o ma, con lo que se pueden ap o echa las mismas bases
ap endidas en una pla a o ma pa a usa las en o as. También po que su mo o se usa
en aplicaciones p o esionales y pa a ob ene una o mación en su uso, aunque a las
emp esas que lo usan posiblemen e p e ie an a gen e que sepa usa su he amien a
ya diseñada que a aquellos que saben emplea sus unciones de bajo ni el. O o
mo i o de su elección es la de la posible apo ación de unciones ya c eadas po la
API de UPVGameKe nel, que en e las biblio ecas en las que se basan su uso es á el
FMOD, a pa e de las u ilizadas pa a OpenAL y SDL.
3.3 Lib e ías de diseño g á ico
En los obje i os de es e p oyec o se pide que haya una e e encia isual del simulado
del ins umen os, mos ando la o ma del The emin y de las manos en e o os. Pa a
ello hace al a el uso de lib e ías g á icas, donde las APIs más u ilizadas pa a su uso
son:
Open G aphic Lib a y, o OpenGL, diseñado po Silicon G aphics Inc. y desa ollado
po Kh onos G oup [15], que en ealidad es una especi icación es ánda que de ine
una API mul ilenguaje, donde los ab ican es de ha dwa e c ean lib e ías de unciones
que se ajus an a sus equisi os. A pa i de es e es ánda se han o mado biblio ecas
ex e nas que añaden ca ac e ís icas no disponibles en el p opio OpenGL. Es as
lib e ías pueden se :
Glu, el cual o ece unciones de dibujo de al o ni el basadas en p imi i as de
OpenGL.
Glu , que se a a de una API mul ipla a o ma que acili a el manejo de en anas e
in e acción po medio de eclado y a ón.
20
Glui, que consis e en una in e az basada en Glu , que p opo ciona elemen os de
con ol como bo ones o cajas de selección.
Glew, el cual es una lib e ía mul ipla a o ma que ayuda en consul a y ca ga
ex ensiones de OpenGL.
Di ec 3D, de la p opiedad de Mic oso , que o ma pa e del conjun os de biblio ecas
mul imedia Di ec X [14]. Solo es á disponible pa a los sis emas de Windows y pa a sus
consolas Xbox. La API que con iene pe mi e su uso en C y C++, y es á compues o po
o as dos:
API de modo inmedia o, que da sopo e a odas las p imi i as de p ocesamien o 3D
que pe mi en las a je as g á icas, como las luces, los ma e iales o el con ol de
p o undidad. Además abaja undamen almen e con los llamados disposi i os, que
son los enca gados de ealiza la ende ización de la escena.
API de modo e enido, cons uido sob e el an e io y p esen a una abs acción de
ni el supe io o eciendo uncionalidades p e-cons uidas de g á icos como
je a quías o animaciones. El modo e enido o ece muy poca libe ad a los
desa ollado es, siendo el modo inmedia o el que más se usa.
En la elección de la API pa a el uso de las lib e ías g á icas se ha pensado en u iliza
la de OpenGL, po su posibilidad de se usado en dis in os sis emas y po que ya se
había ob enido expe iencia en su uso median e la lib e ía ex e na Glu .
Po o o lado, exis en lib e ías ex e nas de diseño basadas en OpenGL que pe mi en
mejo a la apa iencia de una aplicación y que se han ecomendado u iliza en el
p oyec o. És as son:
Q [16], que se a a de un ma co de abajo mul ipla a o ma pa a c ea in e aces
g á icas de aplicaciones, además de que con iene sopo e en los compilado es que
emplea Visual S udio, en o no de p og amación imp escindible pa a el p oyec o. A
pa e de pe mi i hace in e aces, ambién da la posibilidad de c ea unciones que
pe mi en el acceso a la ed de In e ne y el uso de disposi i os Blue oo h. Sus
biblio ecas es án esc i as en C++ y pe mi e la inse ción de o as lib e ías ex e nas
OpenGL pa a acili a su uso en la implemen ación de una escena g á ica. Con iene
di e en es ipos de licencia de uso, de modo que pe mi e un uso g a ui o, pe o con
limi aciones que no exis en en su licencia de pago.
Open Asse Impo Lib a y, ambién conocida como Assimp [17], que consis e en
unas lib e ías g á icas, que pe mi en impo a en un p og ama a chi os e e en es a
modelos de diseño c eados po aplicaciones de modelado en 3D, como el Blende ,
21

Desa ollo del simulado del The emin empleando un Leap Mo ion
Maya o 3ds Max. Es án esc i as en C++, aunque ambién con iene in e aces pa a el
uso de C y pe mi e la unión de complemen os ex e nos pa a p og ama con o os
lenguajes de p og amación, como C#, Py hon y Bli zMax.
3.4 He amien as de diseño
Como se p e ende emplea modelos g á icos pa a mejo a el aspec o de la escena
g á ica, es necesa io u iliza una aplicación que pe mi a c ealos y expo a los pa a que
se puedan u iliza . En e las he amien as más amosas es án las siguien es:
Blende [18], una he amien a mul ipla a o ma que a apa e de c ea diseños, pe mi e
la c eación de animaciones, edición de audio y ideo, y desa ollo de ideojuegos,
g acias a su mo o g á ico in e no. Con iene una g an a iedad de p imi i as
geomé icas, pe mi e el uso de luces y ende izado a iempo eal. Es a aplicación es
de licencia de dis ibución lib e y se emplea ambién pa a añadi e ec os
idimensionales en películas4.
3ds Max, que es una aplicación de c eación de g á icos y animaciones en es
dimensiones c eada po la emp esa Au odesk [19]. Su a qui ec u a es á hecha po
plugins y se a a de uno de los p og amas de animación idimensional más u ilizado
pa a la c eación de ideojuegos, anuncios y películas. Con iene ambién una ex ensa
a iedad de p imi i as de obje os, la u ilización de sis emas de pa ículas, iluminación y
c eación de in e aces de usua io pe sonalizable. Se pe mi e su uso en a ios sis emas
ope a i os, como Mic oso Windows, Mac OS X o Linux, y iene sólo licencias de
pago, a excepción de su e sión pa a es udian es, que con iene sus limi aciones.
Maya, ambién desa ollada po Au odesk [20], es un p og ama in o má ico u ilizado
pa a el desa ollo de g á icos en 3D po compu ado a, e ec os especiales y
animaciones. Se ca ac e iza po su po encia de cálculo y las posibilidades de
expansión y pe sonalización de su in e az g á ica y he amien as. Su dis ibución es
pa ecida a la de 3ds Max, po su compa ibilidad con di e en es sis emas ope a i os y
po su licencia de pago, aunque iene una e sión g a ui a pa a su uso no come cial.
Como el uso de és e ipo de he amien a sólo se a a u iliza pa a c ea en un p incipio
un modelo del The emin en es dimensiones, se ha pensado en u iliza Blende , po
su licencia de uso g a ui o, su comunidad de usua ios que esuel en dudas y
p opo cionan u o iales pa a su uso y po sus pequeños conocimien os en su uso po
pa e de alguna asigna u a de la ca e a de in o má ica.
3.5 P esupues o
4 BLENDERNATION. Blende Used in P e iz o Cap ain Ame ica: he Win e Soldie .
<h p://www.blende na ion.com/2014/05/02/blende -used-in-p e iz- o -cap ain-ame ica- he-win e -soldie />
22
Pa a la c eación del p oyec o, se ha ealizado una es imación del p esupues o
esul an e eniendo en cuen a el cos e del pe sonal, de la o icina donde se desa olla el
p oyec o, de su cos e de limpieza, y de los ecu sos que se deben u iliza , an o pa a la
c eación del p og ama como pa a p oba lo en un o denado dis in o.
Sob e el cos e del pe sonal se supone que solo hay un p og amado que se enca ga
de ealiza odo el p oyec o, donde su du ación es imada es de un o al de cua o
meses. Teniendo en cuen a que el sueldo mínimo pa a un desa ollado es de 1000
eu os ne os al mes5 y que no hay días de acaciones du an e el p oceso de
implemen ación, se calcula un cos e o al mínimo de 4000 eu os en o al.
Re e en e al gas o en el uso del local de abajo, se calcula que el cos e del alquile de
una o icina cues a como mínimo 120 eu os al mes, suponiendo que se necesi e una
sala de 20 m², cos ando seis eu os el me o cuad ado6. Como se a a necesi a
abaja en una o icina pa a el p oyec o du an e el iempo es imado, se ob iene un
gas o de 480 eu os en o al.
Jun o a es e cos e, ambién se le añade el p ecio de con a o de asis en es pa a la
limpieza de la o icina, que sólo se necesi a á su se icio una ez a la semana, de
modo que se debe á usa es o un mínimo de diecisie e eces. Suponiendo que el
iempo necesa io pa a la limpieza de la sala al día es de 10 eu os, se debe á gas a
unos 170 eu os.
En el caso de los ecu sos que se usan, po el lado de so wa e se han u ilizado
lib e ías y aplicaciones g a ui as, g acias a sus licencias de código abie o y de uso no
come cial. Es os se han u ilizado du an e el p oceso:
En o no de p og amación Visual S udio.
Aplicación y biblio ecas de FMOD Sound Sys em.
Lib e ías Glu de OpenGL.
Biblio ecas y aplicación de Q .
Lib e ías de Assimp.
Aplicación Blende .
5 TECNOEMPLEO. Encuen a empleo en la mayo bolsa de T abajo TIC. <Tecnoempleo.com>
6 IDEALISTA. Alquile de o icinas en To en . <h p://www.idealis a.com/alquile -o icinas/ o en - alencia/>
23
Desa ollo del simulado del The emin empleando un Leap Mo ion
Aplicación Gimp.
SDK del Leap Mo ion.
Lib eO ice pa a gene a documen os de ex o y diag amas.
El único so wa e que se ha enido que paga es el de los sis emas ope a i os
u ilizados en cada o denado , que se a an de Windows 7 pa a la implemen ación de
la aplicación y Windows 8 pa a el o denado de p uebas.
Sob e el ha dwa e, el p oyec o se ha ealizado en un o denado po á il que se puso
en en a hace unos años, con las siguien es ca ac e ís icas:
P ocesado In el Co e i7-2670QM, con una elocidad de p ocesamien o de 2.2 GHz
y capacidad de o e clocking has a 3.1 GHz.
Memo ia RAM de 6GB de capacidad.
Ta je a g á ica N idia GeFo ce GT 540M de 2GB de capacidad.
El compu ado en el que se ealizan las p uebas de uncionamien o del p og ama es
un o denado ijo de o e con componen es diseñados hace iempo, pa a comp oba la
e iciencia del p og ama espec o a o denado es con una po encia de cálculo in e io al
del que se ha usado pa a p og ama lo. Sus componen es impo an es son los
siguien es:
P ocesado In el Co e Duo Quad Q6600, con 2.4 GHz de elocidad de cómpu o.
Memo ia RAM con 4GB de capacidad.
Ta je a g á ica N idia GeFo ce GTX 550 Ti de 1GB de capacidad.
Sob e el cos e de las ecnologías, sólo se iene en cuen a el p ecio de ambos
o denado es, que ya enían con el sis ema ope a i o y el conjun o de componen es
ha dwa e ya inco po ado, de modo que el o denado po á il llega a cos a 700 eu os y
el o denado de o e unos 600 eu os. En o al se necesi a gas a en ma e iales 1300
eu os.
A odo es o ambién se debe añadi el cos e del disposi i o Leap Mo ion, que sólo se
ha u ilizado uno y se ha enido que ene en cuen a ambién el p ecio de en ió a pa e
de su alo en el me cado, que en o al llega a ale 100 eu os. Añadiéndolo al cos e
del ma e ial empleado, se alcanza un gas o de 1400 eu os.
24
A con inuación se mues a el esumen del p esupues o inicial del p oyec o, donde se
calcula el cos e o al que se equie e en su desa ollo.
Cos e del pe sonal 4000 €
Cos e del alquile de la o icina 480 €
Cos e de man enimien o de la o icina 170 €
Cos e del ma e ial del p oyec o 1400 €
To al 6050 €
Tabla 1: Tabla de p esupues os plan eada al inicio del p oyec o
Al inal del desa ollo del p oyec o, se ha obse ado que se ha necesi ado más iempo
en su ealización, de modo que és o a ec a en el p esupues o o al, en conc e o al
cos e del pe sonal, alquile de la o icina y de su man enimien o.
Al p incipio se p edecía que la du ación del p oyec o se ía de cua o meses, mien as
que el esul ado inal ha sido de cinco meses. Es o cambia el cos e del pe sonal
mínimo a 5000 eu os. En cuan o al alquile de la o icina, su p ecio sube a un pago
mensual de más, con lo que el cos e inal de alquile es de 600 eu os. Re e en e al
man enimien o de la o icina, se equie e el se icio de limpieza du an e cua o
semanas más, de modo que el cos e de man enimien o sube a 210 eu os en o al. En
lo que hace e e encia al ma e ial del p oyec o, no se ha necesi ado nada más de lo
p e is o, con lo que se man iene el mismo cos e del ma e ial del p oyec o.
En la abla siguien e se mues a el esumen del cos e inal del p oyec o, donde se
calcula el o al y la des iación en compa ación al p esupues o inicial.
25
Desa ollo del simulado del The emin empleando un Leap Mo ion
cuando se debe ecibi in o mación pa a modi ica algunos pa áme os del sonido,
aunque no equie e la p og amación de un sis ema de con ol de u nos pa a la
modi icación de a iables globales, po pa e de di e en es p ocesos de o os obje os
de la aplicación.
En la gene ación del sonido, se emplea un sis ema de p ocesamien o de señal digi al,
ambién conocido po las siglas DSP, que pe mi e al mo o FMOD la implemen ación
de il os pe sonalizados o la c eación de señales de audio complicadas pa a ob ene
sonidos de al a calidad.
Re e en e a su uso en es e p oyec o, se u iliza á pa a pode gene a un ono po
de ec o y luego se le a cambiando su ni el de olumen y ecuencia de ono. También
se añade la posibilidad de cambia la o ma de la onda que u iliza un sonido c eado de
es a mane a, eniendo como onda es ánda la sinusoidal, que es la más simple pa a
gene a sonidos. A pa i de ella se puede cambia a o os ipos de ondas, que a
di e encia de la sinusoidal p oducen a ias o mas de dis o sión en el sonido
esul an e. Las que se pe mi en usa en es as lib e ías de audio son la onda
cuad á ica, iangula , y con o ma de dien es de sie a.
Pa a la modi icación de la onalidad del audio que se gene a, FMOD emplea un
mé odo de pi ching a pa i de un alo decimal en e 0 y 1, aunque es o no nos
pe mi e ob ene la ecuencia del ono del sonido esul an e, pa a in o ma a o os
obje os del p og ama. Aun así, exis e o o modo en FMOD pa a cambia la onalidad
de un sonido y sabe a qué ecuencia hace e e encia, y se a a de cambia solo la
ecuencia de mues eo del bu e donde se encuen a la pis a de audio.
La ecuencia de mues eo es la can idad de eces que se oma una mues a de audio
po unidad de iempo. Según su alo , el sis ema de audio puede ep oduci di e en es
amaños de in o mación de una pis a de sonido en una unidad de iempo, de modo
que pa iendo de una pis a de audio, si bajamos el alo de la ecuencia de mues eo,
32
Ilus ación 8: Ondas de sonido sinusoidal,
cuad á ica, iangula y dien es de sie a

el sis ema ep oduce menos in o mación de sonido po unidad de iempo, ala gando la
du ación de la pis a y bajando la onalidad del sonido. En el caso con a io, el sis ema
ep oduce mucha más in o mación po unidad de iempo, p o ocando la educción de
la du ación y el aumen o del ono de la pis a de audio.
En la siguien e ilus ación, ob enida pa iendo con el p og ama de posp oducción y
edición de audio Audaci y7, se puede e un ejemplo de cómo cambia la du ación de
un sonido modi icando su ecuencia de mues eo. El alo de esa ecuencia en cada
una de las pis as de audio se mues an sub ayadas en ojo.
En nues o sis ema, sabiendo el alo de la ecuencia de mues eo y el ono que
ienen al p incipio de la ejecución, se calcula la elación que hay en e es os dos, de
modo que si cambiamos la ecuencia de mues eo del sonido a o o alo , se puede
ob ene a qué onalidad se es a gene ando, pa iendo del p oduc o de la nue a
ecuencia de mues eo po la elación calculada al p incipio.
Po o o lado ambién se ha diseñado den o del sis ema de sonido una unción que
pe mi e modi ica la ampli ud de la onda del sonido en dis in as o mas du an e un
pe iodo de iempo, pa iendo del olumen del audio. Es o pe mi e a un sonido DSP el
uso de un sis ema de en ol u a ADSR.
El sis ema de ADSR consis e en modula aspec os del sonido, aunque a menudo
siemp e se modi ica su olumen [21]. No malmen e se emplea en sin e izado es pa a
pode imi a a o os ins umen os en su o ma de gene a un sonido, de modo que
pa iendo de una onda digi al de audio y un buen empleo del sis ema de en ol u a se
puede ob ene un imb e pa ecido al de un ins umen o acús ico o eléc ico eal. Las
7 AUDACITY TEAM. Audaci y. <h p://web.audaci y eam.o g/>
33
Ilus ación 9: Pis as de audio idén icas, pe o con ecuencias de mues eo dis in as
Desa ollo del simulado del The emin empleando un Leap Mo ion
siglas ADSR consis en en las ases po las que pasa un sonido que es modi icado de
es a o ma, que son:
A ack o a aque, donde se especi ica en cuan o iempo equie e un sonido en alcanza
el máximo ni el de olumen empezando des del silencio. En un ins umen o musical, el
ni el de olumen máximo depende de la o ma con la que se oca el ins umen o,
alcanzando un ni el de olumen al o si se ejecu a una no a con ue za, o ob eniendo
un olumen bajo si se oca con sua idad.
Decay o decaimien o, que consis e en el pe iodo de iempo que a da un sonido en
educi su olumen a un ni el es able sin cambios.
Sus ain o sos enimien o, donde se ep esen a el iempo en el que se man iene el
olumen del sonido ob enido en la ase an e io . En los ins umen os musicales
consis e en man ene una no a musical du an e un pe iodo de iempo, man eniendo un
dedo sob e una cue da en el caso de una gui a a o siguiendo soplando ai e en el caso
de una lau a. A pa i de que empieza a descende el olumen, se pasa a la úl ima
ase del sis ema.
Release o elajación, que consis e en el iempo que a da un sonido en educi su ni el
de olumen des de la ase an e io has a el silencio del audio. No malmen e, en un
ins umen o se le aplica es a ase cuando dejamos de man ene una no a musical, de
modo que su du ación en es a ase suele se co a a no se que se p oduzca mucha
esonancia en el sonido po pa e de muchos aspec os, como el ambien e en el que
suena o los ma e iales del mismo ins umen o musical.
A con inuación se mues a un esquema de cómo a ia el olumen de la señal de un
sonido en cada una de las ases ADSR mencionadas an e io men e.
Su uso en la aplicación no iene mucha u ilidad, po que la señal de audio que gene a
un The emin man iene siemp e el mismo ni el de olumen du an e las ases de la
en ol u a ADSR, independien emen e de su con ol de olumen po pa e del usua io.
Aun así, es e sis ema se puede emplea pa a añadi nue as uncionalidades al ke nel
34
Ilus ación 10: Sis ema de en ol u a ADSR aplicada sob e un sonido
de ideojuegos c eado po la acul ad de in o má ica, como obje i o pa alelo
mencionado al p incipio de la memo ia de abajo.
4.4 Aspec o g á ico
La aplicación, como ya se ha explicado al p incipio del apa ado de diseño de la
solución, consis e en un conjun o de en anas, donde el usua io accede p ime o a la
en ana de inicio, que con iene una imagen, ep esen ando la po ada del p og ama, y
un conjun o de bo ones pa a accede al es o de en anas de la aplicación y ce a la
p opia en ana jun o a la aplicación.
En e las o as en anas del p og ama se encuen a la de los c édi os, que mues a un
ex o con la in o mación del c eado y desa ollado de cada una de las pa es que se
han c eado en la aplicación. También con iene un bo ón pa a ce a la en ana y pode
ol e a aquella en ana, donde el usua io an e io men e ha pedido mos a la en ana
de c édi os.
En e las en anas de la aplicación ambién es á la de con igu ación del p og ama, que
pe mi e al usua io modi ica algunas p opiedades sob e el uncionamien o del
simulado . Es as p opiedades son el lími e del ni el máximo del olumen al que puede
alcanza el The emin simulado, y la oc a a musical máxima a la que puede llega a
alcanza el ins umen o. Es a úl ima p opiedad sólo hace e e encia al ango de
ecuencias de sonido que pueda gene a el simulado sin llega a ene con ac o ísico
con el The emin, pudiendo gene a siemp e las no as más g a es.
O a ca ac e ís ica de es a en ana es que con iene una pa eja de bo ones, que
pe mi en al usua io ce a la en ana aplicando los cambios elegidos en el
uncionamien o del p og ama o ce a la en ana sin modi ica ninguna p opiedad de la
aplicación.
Finalmen e queda po menciona la úl ima y más impo an e en ana del sis ema, la
del simulado del The emin, que con iene casi odo el uncionamien o p incipal del
p og ama y enlaza con el sis ema de en ada po pa e del Leap Mo ion, y el sis ema
de salida de audio y ideo.
Es a en ana con iene un acceso a unciones de lib e ías g á icas, pe mi iendo mos a
cualquie diseño g á ico que emplea OpenGL. Las unciones g á icas se di iden en
es ases:
Inicialización, que ejecu a odas las unciones y decla aciones necesa ias nada más
ab i la en ana. En e ellas es á la ac i ación del sis ema de audio y del Leap Mo ion,
35
Desa ollo del simulado del The emin empleando un Leap Mo ion
la iniciación de algunas a iables u obje os, y la ac i ación de algunas unciones
g á icas.
Dibujo, que se gene a en bucle has a que se cie a la en ana con unciones g á icas.
Es a ase se u iliza pa a dibuja la escena con sus con enidos g á icos y pa a ejecu a
o as unciones que ac ualizan p opiedades, an o de la escena que se dibuja en ese
ins an e como de o as pa es del p og ama. En el caso de la aplicación, a pa e de
dibuja el The emin, las manos que se econocen y un eclado de piano, ac ualiza la
ecuencia de sonido y el ni el de olumen que debe gene a el sis ema de sonido, a
pa e de que debe in o ma a ése sis ema de qué ango de ecuencias puede
ep oduci .
Redimensión, que con iene aquellas unciones que se deben emplea en el p og ama
cuando se cambia las dimensiones de la en ana. No malmen e se usa pa a adap a
las p opiedades de la cáma a de la escena dibujada pa a que no se p oduzcan
p oblemas de isualización de los obje os g á icos.
Uso de a ón, donde se encuen an aquellos mé odos que se ac i an cuando se u iliza
el a ón como disposi i o de en ada. En la aplicación se u iliza pa a cambia el pun o
de obse ación de los obje os dibujados.
Po o a pa e, la en ana del simulado con iene una ba a de menú, con la capacidad
de gene a bo ones que pe mi en al usua io ac i a o pa a el sonido del p og ama,
accede a las en anas de c édi os y con igu ación de la aplicación, cambia el ipo de
onda del sonido y ce a la aplicación en e muchas o as. Todas es as uncionalidades
se pueden accede median e el uso del eclado como sis ema de en ada, como se
había explicado en el apa ado de sis ema de en ada, pe mi iendo al p og ama el uso
de comandos ápidos.
También con iene una ba a de a eas, donde se encuen an las acciones ípicas po
pa e de es e ipo de p og amas, ado nadas cada una con una imagen pa a ayuda al
usua io a comp ende la uncionalidad de ésa acción.
36
5 Implemen ación
5.1 El con olado del Leap Mo ion
La clase que pe mi e con ola el uncionamien o del Leap Mo ion iene como obje i o
ob ene in o mación de la posición de las manos del usua io y en iá sela a aquel
módulo de la aplicación que con iene el uso de lib e ías g á icas pa a dibuja las. Como
ambién se p e ende añadi el uso del con olado ya implemen ado po el
UPVGameKe nel, se iene que modi ica es e con olado pa a que pueda ejecu a las
unciones necesa ias que equie e la aplicación, po que el ke nel, que dispone ya de
un módulo pa a el uso del Leap Mo ion, no los iene implemen ados po de ec o.
Ap o echando el con olado que se iene po de ec o del UPVGameKe nel, se
ob ienen las unciones necesa ias pa a c ea un obje o e e en e al Leap Mo ion, jun o
al de inicializa y inaliza el uso del disposi i o po pa e de cualquie aplicación que lo
quie a usa . Pa a ello, se c ea un obje o del ipo con olle , que con iene oda la
in o mación que puede gene a el disposi i o. Pa a pode ob ene esa in o mación, se
c ea ambién un obje o del ipo Lis ene , que se conec a con el con olle pa a pode
il a oda la in o mación que se gene a en la que sea necesa ia pa a el p og ama.
Pa iendo del obje o Lis ene , se c ea una clase que he eda sus mé odos pa a pode
a a con esa in o mación, donde se c ean las siguien es a iables pa a pode
almacena odo lo e e en e al posicionamien o igonomé ico y o ma de las manos:
UGKhandsGL, que consis e en un a ay de ec o es, donde se almacenan las
posiciones de los pun os de lexión de los huesos que compone cada mano.
UGKpalma, del ipo a ay, donde se almacena en ec o es la posición de la palma de
cada una de las manos.
UGKdi eccionManos, que se enca ga de gua da en una lis a de ma ices el angulo
con el que es á gi ado cada una de las palmas en e e encia al disposi i o.
UGKdi eccionHuesos, que con iene la misma uncionalidad que la a iable an e io ,
con la di e encia de que se emplea pa a los huesos de cada mano.
UGKcen oHuesos, que consis e en una lis a de ec o es, donde se gua da la
posición cen al de cada hueso.
UGKlongi udHuesos, ambién del ipo a ay, con la uncionalidad de almacena el
alo de la longi ud de cada hueso de la mano.
37

Desa ollo del simulado del The emin empleando un Leap Mo ion
UGKanchu aHuesos, que se u iliza pa a gua da en una lis a de alo es eales la
anchu a de cada hueso.
UGKnumManos, donde se almacena el núme o de mano que haya econocido el
Leap Mo ion en un ame.
A pa e de és as a iables, ambién se encuen an aquellas que son necesa ias que
almacenan los da os necesa ios pa a el sis ema de sonido. En e ellas se encuen an
las que calculan el alo de la nue a ecuencia de ono y ni el del olumen, que si en
pa a in o ma al sis ema de audio que debe ac ualiza las p opiedades de su canal de
audio. También es án las que limi an el ni el máximo de olumen y el núme o de
oc a as de no as con las que se pueden ep oduci en el sis ema de sonido, que son
accesibles po pa e del usua io median e una en ana de la aplicación.
Den o de es a clase, ya c eada po pa e del UPVGameKe nel, se u ilizan mé odos
que se ac i an pa iendo de los es ados po los que pasa el con olado . Algunos de
ellos son los que se ac i an cuando el disposi i o se conec a a la aplicación o se
desconec a du an e su uso, aunque no ienen ninguna u ilidad en la implemen ación
de la aplicación.
El mé odo que si que hace al a es la de la unción onF ame, que se enca ga de
gene a la in o mación necesa ia a pa i de lo que econoce el Leap Mo ion en un
ame pa a en iá sela al es o de módulos de la aplicación. Pa a su implemen ación
e e en e a la ob ención de los huesos de las manos, se ha ap o echado código de
o o p oyec o, que si e pa a guia a p incipian es en lo e e en e a dibuja manos a
pa i del Leap Mo ion y que se encuen a en dominio público8.
La unción onF ame, empieza calculando cuan as manos se han econocido y lo
gua da en la a iable UGKnumManos. Pa a cada una de es as manos hace lo
siguien e:
Gua da la posición de la palma de la mano en UGKpalma y la di ección a la que
apun a la mano en UGKdi eccionManos.
Comp ueba si esa palma se si úa den o de la zona e e en e al de la ejecución del
con ol de olumen del The emin, que desde un p incipio se debe sabe po pa e
del desa ollado del p og ama. En el caso de que es é den o, se compa a la
posición Y de la palma con un alo ya gua dado an e io men e po pa e de o as
manos de ec adas. Si el que se ha calculado ecien emen e iene un alo in e io ,
8 GITHUB. Magne ic Mesh <h ps://gi hub.com/leapmo ion-examples/Magne icMesh>
38
se gua da su alo , y en el caso con a io no lo hace, man eniendo siemp e el alo
más bajo.
Después se analiza los dedos de las manos y pa a cada uno de esos dedos, los
huesos que lo componen.
Pa a cada hueso, se almacena su posición cen al en UGKcen oHuesos y su pun a
supe io en UGKhandsGL de la misma o ma que en la posición de la palma.
También se almacenan la longi ud de cada hueso en UGKlongi udHuesos.
En la ob ención de in o mación de los huesos, ambién se comp ueba pa a cada uno
de ellos y con la gua dada an e io men e po o a mano, la dis ancia a la que es án
de la posición donde debe es a la an ena del The emin que gene a el ono del
sonido, almacenando al inal aquella que sea más co a.
Una ez hecho es e p ocedimien o, si no se han ocupado del odo los a ays donde se
gua da la in o mación ob enida an e io men e, se ellenan con alo es que no a ec en
en la uncionalidad de la aplicación.
Finalmen e, pa iendo de los alo es ob enidos sob e las dis ancias de las manos a las
an enas del The emin, la unción onF ame e mina ob eniendo el alo de la ecuencia
y ni el de olumen del sonido que se debe gene a en ese momen o, pa iendo de
unciones que elacionan la dis ancia de las manos con el alo de cada uno de es os
pa áme os.
Re e en e a la unción de la ecuencia de audio, hay que ene en cuen a que la
elación en e la ecuencia onal de una no a musical y o a no sigue un pa ón lineal.
Como la di e encia de ecuencia de sonido en e una no a y o a no es cons an e, se
ha usado una unción que ob iene la ecuencia de una no a a pa i de la ecuencia
del ono de la no a más baja que puede pe cibi el oído humano, la elación en e una
no a cualquie a y la siguien e, y la dis ancia en semi onos en e la no a más baja que
se usa como e e encia y aquella que se quie e ob ene .
F ecuencia de no a X = F ecuencia de no a A0 * [(2^(1/12)) ^ (Dis ancia en
semi onos en e A0 y X)]
En la siguien e imagen se mues a la g á ica que ep esen a la ecuencia de audio a
pa i de la no a musical que se encuen a a cie a dis ancia de la no a más g a e.
39
Desa ollo del simulado del The emin empleando un Leap Mo ion
Como se puede e , no se a a de una unción lineal, pe o que se puede aplica al
p og ama, adap ando el núme o de no as de dis ancia con el in e alo de longi ud que
hay en la escena g á ica en e la posición de la an ena del The emin y el pun o más
alejado de la an ena que pe mi e oda ía gene a un sonido.
En cuan o a la unción que calcula el olumen del sonido, consis e en una unción
lineal donde el olumen se ob iene calculando la di e encia en e la dis ancia en e una
mano y la an ena del olumen di idida po la dis ancia máxima con la que se pe mi e
modi ica el alo del olumen.
En el siguien e esquema se puede obse a un b e e esumen del nue o
uncionamien o que iene la unción onF ame:
40
Ilus ación 11: G á ica con las dis ancias en e la no a A0 y cualquie o a
Con los alo es ob enidos en la unción onF ame, es a clase los puede en ia a los
módulos que se lo pidan pa iendo de los mé odos de ob ención de in o mación de su
cons uc o . Esos mé odos de uel en el alo de cualquie a iable ya mencionada
an e io men e pa iendo de una posición den o de su a ay. También exis en las
unciones que modi ican el alo de las a iable que limi an el olumen y las
ecuencias de ono del sonido.
Como en la implemen ación de la ob ención de las pa es de las manos se u ilizan
unciones que no sopo a la lib e ía de p og amación del Leap Mo ion que con iene el
UPVGameKe nel, se ha enido que c ea un iche o a pa e que con ola el ipo de
biblio ecas que se deben usa , en e las del ke nel y las que se u ilizan en el p og ama.
Con ello, en el caso de que se usen las lib e ías de e siones an e io es, se debe
41
Ilus ación 12: Funcionamien o del mé odo onF ame
Desa ollo del simulado del The emin empleando un Leap Mo ion
El slo que pe mi e de ene la ep oducción del audio consis e en una llamada al
mé odo de de ene el audio que con iene el sis ema de sonido.
A pa e de los mé odos que se enca gan del sonido, se encuen an ambién en la
en ana del simulado aquellas que modi ican p opiedades de la escena g á ica.
El mé odo que pe mi e mos a un eclado de piano pa a guia al usua io cons a de un
acceso y modi icación de una a iable, si uada en el obje o que se enca ga del
ende izado de la escena, pa a que se pueda dibuja en la en ana. En el caso de que
ya se mos aba po pan alla, inhabili a su isualización.
El o o mé odo consis e en ac i a el “Modo A inado” de la aplicación. Pa a ello, se
accede ambién a una a iable del obje o que dibuja la escena, pa a que se puedan
aplica los cambios necesa ios an o en la escena g á ica como en el sis ema de audio.
Si ya se encon aba ac i ado, pedi á al gene ado de la escena que uel a a ipo de
a inación inicial.
Po úl imo, en es a en ana se hallan las unciones de accede a la en ana de
con igu ación del p og ama, accede a la de los c édi os de la aplicación y de ce a el
p og ama. Sus implemen aciones son idén icas a las del la en ana de inicio, con la
excepción de que en el uso de la en ana de con igu ación no hace al a a iables de
almacenamien o, po que sus cambios se pueden e ec ua di ec amen e al sis ema de
en ada, que ya es á c eado. También exis en di e encias en la unción de ce a el
p og ama, de modo que a pa e de ce a la en ana, desac i a el uso del Leap Mo ion
y del sis ema de sonido, que se habían ac i ado en la inicialización de la en ana del
simulado .
Con los mé odos slo implemen ados, solo al a e e encia los como acciones en las
ba as de menú y a eas. Pa a ello, se c ean es obje os con enedo es del ipo Menu
de la ba a de menú. En cada uno de es os con enedo es se añaden bo ones del ipo
Ac ion, jun o al slo que deben ac i a , su ecla de acceso ápido co espondien e y una
imagen del ipo Icon que lo haga mas comp ensible pa a el usua io.
Pa a el caso de la ba a de a eas, sólo se añade aquellos bo ones que necesi e
accede el usua io pa a un uso simple de la aplicación, que son los de ac i a o
de ene el sonido y cambia a uno de los cua o ipos de onda de sonido.
Las en anas de con igu ación y c édi os del p og ama sólo ienen la unción de ce a
la en ana median e el uso de un Push Bu on.
5.3.2 Escena g á ica
48

La escena donde se mues an los obje os diseñados con unciones OpenGL, se c ea a
pa i de una clase, que al mismo iempo si e pa a c ea un con olado del Leap
Mo ion y el sis ema de sonido. En es a clase se necesi an las siguien es a iables:
CSound, que se a a de un obje o con el sis ema de audio del p og ama. Con él se
puede accede a los mé odos de p og amación implemen ados pa a el con ol del
audio.
UseLeap, que consis e en un obje o o mado po la clase que se enca ga del
con olado del Leap Mo ion. Es necesa io pa a accede a la in o mación e e en e a la
posición donde se deben c ea las manos en la escena.
Modelo, que es un obje o de la clase Modelo, con las unciones necesa ias pa a
impo a un diseño g á ico a pa i de un a chi o. Si e pa a impo a el modelo del
The emin c eado con Blende .
Es adoLeap, que se u iliza pa a almacena , con un núme o en e o, si el Leap Mo ion
se ha inicializado o ce ado en la aplicación.
MA inado, que pe mi e al p og ama ejecu a o no las unciones e e en es a los de la
u ilización del “Modo A inado”.
MPiano, que se usa con el mismo obje i o que MA inado, con la di e encia de habili a
o deshabili a el ende izado del eclado de piano.
Las Pos, que almacena la úl ima posición del a ón en base a un sis ema de
coo denadas si uado en el plano de la pan alla.
PosCama a, que consis e en un a ay con la posición de la cáma a de la escena. Se
u iliza pa a si ua la cáma a en di e en es si ios en la escena g á ica.
Tex o, que se a a de una ma iz de le as, donde se almacenan los ca ac e es y
núme os que se deben mos a en pan alla. Cada ila de la ma iz consis e en una
in o mación dis in a.
F ecuencias, que con iene una lis a de ecuencias de sonido en o den desde la no a
musical más g a e has a una no a aguda, si uada en la décima oc a a musical. La lis a
es á hecha en base a la escala musical es ánda [22].
No as, que es una lis a de no as musicales en o den desde la más g abe has a un Do
(C en nomencla u a es ánda ) en la no ena oc a a.
49
Desa ollo del simulado del The emin empleando un Leap Mo ion
Relación, que consis e en un alo decimal con la elación en e la ecuencia de
mues eo del p og ama y la no a musical con la que se inicializa el sonido DSP del
sis ema de sonido en he cios.
No a, que consis e en un pun e o a una posición de las lis as F ecuencias y No as,
pa a ob ene su con enido.
El uncionamien o de es a clase se basa en mé odos he edados de las lib e ías de
OpenGL, de modo que p ime o se ejecu a la ase de inicialización seguida de la de
dibujo, que se ejecu a en bucle has a que se cie a el p og ama. También exis en la
ase de edimensión de la en ana de la escena g á ica y la del uso del a ón como
disposi i o de en ada, que se ac i an an es de la ase de dibujo en el caso de que se
u ilice el a ón o se cambia las dimensiones de la en ana.
En la ase de inicialización, se ac i an el uso del disposi i o Leap Mo ion, el sis ema de
audio y el impo ado de modelos. También se ac i a el uso de luces en el escena io,
pe mi iendo la apa ición de somb as, y la decla ación inicial de las a iables
mencionadas an e io men e.
Du an e la ase de dibujo de la escena, se empieza ac ualizando las p opiedades del
sis ema de audio y algunas a iables de es a clase. Pa a ello, se ob iene la ecuencia
de sonido calculada po el obje o UseLeap en ese momen o. Luego se modi ica la
ecuencia de sonido que gene a el obje o CSound dependiendo del alo de
MA inado.
Si es nega i o, se modi ica la ecuencia de sonido de CSound y se ob iene la no a
musical ela i a a la ecuencia gene ada. Pa a ob ene la no a musical a pa i de la
ecuencia de ono, se u iliza un mé odo de búsqueda donde pa iendo de la a iable
F ecuencias, se ob iene la posición de la ecuencia de sonido más p óxima a la que
se ha calculado, pa a almacena la en la a iable No a y u iliza la pa a encon a la no a
musical más p óxima en la a iable No as.
En el caso de que MA inado con enga un alo posi i o, se calcula y almacena en
No a la posición de la ecuencia de sonido más p óxima a la que se ha calculado.
Luego, median e el alo gua dado en No a, se le asigna al sis ema de sonido una
ecuencia de la lis a F ecuencias y se ob iene la no a musical de la lis a No as.
A con inuación se le asigna a CSound el ni el de olumen calculado po UseLeap,
seguido de la ac ualización de la ma iz Tex o, cambiando los alo es de la ecuencia,
no a musical, olumen y si se encuen a ac i o o no el “Modo A inado”
50
Una ez inalizada la ac ualización de di e sas p opiedades del sis ema, se posiciona
la cáma a del escena io, apun ando hacia donde se debe dibuja el The emin. Luego
se llama a un mé odo del obje o Modelo pa a que dibuje el ins umen o en la escena,
seguido po la c eación de las manos econocidas en ése ins an e po el con olado
del Leap Mo ion.
Pa a pode dibuja las manos en el escena io g á ico, p ime o se debe comp oba si se
ha de ec ado alguna mano en ése momen o, comp obando el con enido de
UGKnumManos del obje o UseLeap, de modo que no se hace nada en el caso de que
no se haya as eado nada. Si po el con a io de han de ec ado manos, se ende iza
cada una de las manos de ec adas, accediendo a aquellas unciones del obje o
UseLeap que de uel en la posición de cada pa e de la mano, según se an pidiendo.
El dibujo de una mano empieza con la c eación de la palma, dibujando una es e a
plana y un anillo, asladándolos a su posición y gi ándola en su di ección espec o al
con enido de UGKpalma y UGKdi eccionManos. Después se c ean di e sas es e as,
que ep esen an el pun o de unión de los di e sos huesos y se posicionan según lo
indica la a iable UGKhandsGL. Finalmen e se dibujan los huesos de la mano,
c eando cilind os planos de la longi ud ob enida en UGKlongi udHuesos y de un adio
equi alen e al de UGKanchu aHuesos, posicionados y gi ados en una di ección
pa iendo de las a iables UGKcen oHuesos y UGKdi eccionHuesos.
Después del ende izado de las manos, se c ea en la escena el ex o de in o mación
del p og ama al lado supe io de la en ana, donde se mues a el con enido de la
ma iz Tex o.
Finalmen e se dibuja en la pa e in e io de la pan alla, en el caso de que lo quie a el
usua io, un eclado de piano, des acando aquella ecla que ep esen a el sonido
gene ado po el The emin, u ilizando la a iable No a.
La ase de edimensión sólo emplea una unción que ac ualiza la pe spec i a de la
cáma a de la escena espec o al ancho y al o de la en ana del simulado .
También exis e una unción que se ac i a cuando se usa el a ón. En és a unción se
calcula la di e encia en e la posición an e io y ac ual del a ón, pa a emplea la
di e encia de la posición ho izon al en el cálculo de la la o ación de la cáma a
al ededo del The emin en el eje X y la di e encia de al u a en el cálculo de la o ación
sob e el eje Y. Pa a hace lo, se ans o ma las di e encias de posición del a ón en
g ados y luego se ac ualiza los alo es de la a iable PosCama a, calculando la nue a
posición de la cáma a según su ángulo.
51
Desa ollo del simulado del The emin empleando un Leap Mo ion
A con inuación se puede obse a un esumen del ciclo de ida de la escena g á ica,
ep esen ando cada una de sus ases, jun o a las unciones que se ejecu an en cada
una de ellas.
5.3.3 La clase modelo
En la escena g á ica se u iliza un modelo diseñado an e io men e con Blende , de
modo que hace al a un sis ema de impo ación de modelos al p og ama pa a que se
mues en en pan alla.
El modelo c eado consis e en un diseño simple del The emin con sus dos an enas de
con ol de olumen y onalidad. Se iene que ene en cuen a que las an enas deben
de es a si uadas en las posiciones que se emplean en la clase del con olado del
Leap Mo ion pa a calcula los alo es de olumen y ecuencia, po que el usua io se
guía en el uso del ins umen o a pa i del modelo g á ico. En el caso de que no
coincidan es as posiciones, el usua io puede llega a en ende que la aplicación no
unciona como debe se .
Pa a impo a el diseño del ins umen o, se c ea una clase con acceso a las lib e ías
de Assimp y a las unciones de OpenGL necesa ias pa a posiciona los obje os
impo ados en la escena, ya que la clase que c ea la escena ya se enca ga de inse a
el es o de uncionalidades g á icas.
Es a clase se ha implemen ado a pa i de un ejemplo hecho po los mismos c eado es
de la lib e ías de Assimp, que pe mi e median e unciones de OpenGL ca ga y mos a
52
Ilus ación 14: Ciclo de ida de la escena g á ica
modelos, con supe icies colo eadas y sin ex u as, en una escena po de ec o9,
aunque es á implemen ado en el lenguaje de p og amación C. T as adap a la a C++ y
cambia algunos mé odos ya de inidos, se ha conseguido que sólo impo ase un
diseño g á ico a una escena ya c eada.
Pa a la u ilización de es a clase, se equie e el uso de la a iable global scene, del ipo
aiScene, que pe mi e almacena una escena g á ica diseñada a pa i de un a chi o
c eado po un diseñado idimensional de modelos.
Al comienzo de su uso, se equie e ejecu a su mé odo de inicialización, que consis e
en accede al a chi o donde se encuen a la escena g á ica que se quie a impo a y
gua da la en la a iable scene.
A pa i de en onces, se le puede llama pa a que añada a una escena lo que hay
almacenado en scene. Pa a ello, se ende izan las supe icies que se componen cada
uno de sus modelos y se le aplica los ma e iales que con ienen, que consis e en
colo ea cada supe icie según la in o mación con enida en cada uno de los modelos.
En el caso de que se cie a el p og ama, se u iliza un mé odo que bo a el con enido
gua dado en scene, po que las lib e ías de Assimp pueden almacena empo almen e
su con enido y puede p o oca allos en impo aciones de escenas u u as.
9 GITHUB. SimpleOpenGL. <h ps://gi hub.com/assimp/assimp/ ee/mas e /samples/SimpleOpenGL>
53

Desa ollo del simulado del The emin empleando un Leap Mo ion
6 Conclusiones
6.1 Resul ados
El esul ado ob enido al inal de la aplicación ha sido bas an e sa is ac o ia. Se ha
podido alcanza odos los obje i os, con la posibilidad de p opone se o os de nue os
a pa i de es os. Se han ealizado p uebas en un o denado a pa e y se ha obse ado
que el p og ama ealiza odas sus unciones sin p oblemas de uso con el p ocesado y
la memo ia p incipal.
Desde mi pun o de is a, he ap endido a u iliza una g an a iedad de he amien as de
p og amación u ilizadas du an e la implemen ación que no se han is o en la ca e a,
como el FMOD, Leap Mo ion o Q , y ambién a maneja mejo la lib e ía OpenGL a
ni el de desa ollo de código. También he ap endido más sob e el uso del lenguaje de
p og amación C++ y el en o no de p og amación Visual S udio.
Po o o lado me he dado cuen a de que es impo an e una buena plani icación inicial,
sob e odo en la es uc u ación del código, pa a esol e los p oblemas de inse ción de
uncionalidades nue as c eadas po o os p og amas.
6.2 Di icul ades encon adas
La mayo ía de di icul ades se han encon ado en la búsqueda de las he amien as
necesa ias pa a el p oyec o y ap ende cómo se u ilizan, a pa e de los p oblemas que
gene aban al in en a inse a las en el en o no de abajo del p oyec o. En el caso de la
he amien a Q , que pe mi e diseña in e aces g á icas en un p og ama, daba
p oblemas de compa ibilidad con el en o no de p og amación Visual S udio, y pa a
esol e lo se ha enido que u iliza una e sión an e io a la ac ual de Q pa a que no
die a p oblemas.
O o p oblema que ha su gido en el p oyec o ha sido la de añadi a la aplicación el
sis ema de sonido, después de habe implemen ado pa e de la es uc u a pa a dibuja
la escena del simulado . La solución ha consis ido en cambia la es uc u a del código
po una basada en obje os, donde se ep esen an en cada uno de ellos una pa e
empleada en el p og ama. Es o se podía habe e i ado si se hubiese plani icado des
del p incipio la u ilización de es e ipo de es uc u a.
6.3 Relación con la ca e a
El habe cu sado algunas asigna u as de la ca e a ha sido impo an e pa a llega a
ob ene los esul ados mencionados an e io men e, sob e odo aquellas que se cen an
54
en el diseño de la es uc u a, las in e aces y el uso de OpenGL pa a la c eación de un
p og ama. La asigna u a de In e aces Pe sona Compu ado ha ayudado a conoce
es ilos y consejos en el diseño de una in e az g á ica. Las de Ingenie ía del So wa e y
In oducción a la P og amación de Videojuegos me han enseñado a c ea una
es uc u a en el p og ama que pe mi a camba su uncionalidad y eu iliza código pa a
o os p og amas que empleen las mismos mé odos de p og amación. En el caso de la
c eación de un escena io g á ico, la asigna u a In oducción a los Sis emas G á icos
In e ac i os ha esul ado ú il, po que pe mi e conoce el uncionamien o de las lib e ías
de OpenGL y de cómo añadi p opiedades a la escena pa a hace la más ealis a.
A pa e de es as asigna u as, ambién han sido impo an e aquellas que me han
enseñado a p og ama , an o en el ap endizaje del lenguaje de p og amación C++
como en la enseñanza de écnicas óp imas que mejo an la e iciencia de un p og ama.
6.4 T abajo u u o
Aunque se hayan podido log a los obje i os del p oyec o, es e p og ama puede llega
a con ene muchas más uncionalidades espec o a su sis ema de audio y la in e az
g á ica.
En el caso del audio del p og ama, se encuen a la opción de u iliza plugins VST,
pa a ep oduci sonidos semejan es a los que p oducen en la ealidad algunos
ins umen os musicales. También se pod ía c ea un ecualizado de audio con
unciones de cambia el ni el de sono idad de señales g a es y agudas, de modo que
equie e la implan ación de un con olado del ecualizado en la in e az g á ica de la
aplicación.
Sob e el sis ema g á ico, se puede mejo a la pa e de las somb as de cada obje o
pa a demos a mejo la exis encia de un espacio idimensional en el simulado del
The emin, de modo que p oyec en una somb a sob e la supe icie de o o obje o.
Como se encuen a implemen ado un impo ado de modelos idimensionales en el
p og ama, se puede c ea un diseño de las manos que apa ecen en el simulado ,
además de que pueda mo e las a iculaciones dependiendo de los ges os
econocidos con el Leap Mo ion. También se puede implemen a una he amien a que
pe mi a al usua io selecciona un diseño del The emin y de manos, en e un abanico
de modelos ya c eados, pa a que se mues en po la pan alla.
Re e en e al sis ema de en ada, exis e la posibilidad de cambia lo po uno que sólo
necesi e el uso del econocedo de ges os de las manos. Pa a ello, se end ía que
cambia ambién la in e az g á ica a una que ejecu e unciones pa iendo de la
55
Desa ollo del simulado del The emin empleando un Leap Mo ion
posición de las manos y los ges os que gene a, o o a que emplee colisiones en e las
manos y o os obje os g á icos pa a ac i a uncionalidades del p og ama.
En cuan o al p og ama en gene al, es á la opción de hace lo mul ipla a o ma, pa a
pode ejecu a lo ambién en sis emas ope a i os de Apple y Linux.
Si se llega a mejo a el p og ama, se pod ía pensa en la opción de pone lo en el
me cado y añadi con enidos de expansión que puedan se mone izados, como la
posibilidad de inse a más modelos del ins umen o, diseños de manos o plugins VST.
56
7 Manual de usua io
7.1 Ins alación
Pa a ins ala la aplicación exis en dos o mas:
Desca ga el ejecu able jun o a las ca pe as de “Modelos” y “Resou ces”, y
gua da lo en un luga accesible del o denado . En el caso de lo quie a el usua io,
c ea un enlace di ec o al ejecu able y si ua lo en el esc i o io.
Desca ga el p oyec o comple o y ab i lo con el Visual S udio P o essional o Ul ima e
de la e sión 11.0.5 o supe io . Compila el p oyec o y c ea un enlace di ec o en el
esc i o io del o denado , pa iendo del ejecu able ob enido en la compilación. En el
caso de encon a p oblemas de enlaces du an e la compilación, se debe modi ica
las p opiedades de las lib e ías que se u ilizan. La lis a de lib e ías que se usan se
puede encon a en el a chi o “README” del p oyec o.
Tan o los a chi os de su ejecución como el p oyec o en e o se encuen an en un
eposi o io de Gi Hub10.
7.2 Con igu ación
Los disposi i os necesa ios pa a ap o echa al máximo las unciones del p og ama
son los siguien es:
Leap Mo ion.
Ra ón.
Teclado.
La con igu ación del Leap Mo ion se puede modi ica accediendo a la ba a de a eas
del esc i o io, pulsando el bo ón de echo y luego al bo ón “Con igu ación”. También se
puede accede a su con igu ación ab iendo la aplicación de la ienda del Leap Mo ion y
selecciona den o de la pes aña “A chi o” de la ba a de he amien as la opción
“Con igu ación del con olado ”. Den o del panel de con ol se puede modi ica la
al u a en la que se pe mi e el uso del disposi i o, mejo a el as eo de manos con
poca iluminación o e-calib a el disposi i o, dependiendo de los gus os del usua io.
En el caso del eclado o el a ón, exis e la posibilidad de que sus p opiedades se
puedan modi ica pa iendo de una aplicación ins alada po pa e del disposi i o. En el
10 GITHUB. The emin Digi al. <h ps://gi hub.com/joasanm/Q -The emin.gi >
57
Desa ollo del simulado del The emin empleando un Leap Mo ion
9 Glosa io
ADSR: Té mino u ilizado en el en o no musical pa a de ini la e olución empo al de
ampli ud de un sonido.
API: Applica ion P og amming In e ace. Conjun o de sub u inas, unciones y
p ocedimien os que o ece una biblio eca de p og amación pa a se u ilizado po o o
so wa e como una capa de abs acción.
A ay: Tipo de a iable de almacenamien o, que pe mi e gua da una se ie de
elemen os de un mismo ipo. Desde un pun o de is a lógico, se puede isualiza como
un conjun o de elemen os o denados en ila.
Blue oo h: Especi icación indus ial pa a Redes Inalámb icas de Á ea Pe sonal, que
posibili a la ansmisión de in o mación de cualquie o ma o median e un enlace de
adio ecuencias.
Bu e : Espacio de memo ia dinámica donde se almacena una pis a de audio y se le
aplican modi icaciones pa a después ep oduci lo a a és de un al a oz.
Con olle : Clase del Leap Mo ion de inida como la in e az p incipal del disposi i o. La
in o mación que gene a la en ía a los obje os Lis ene s que lo componen, ejecu ando
sus unciones de o ma dis ibuida.
Ecualizado : Disposi i o que modi ica el olumen en ecuencias de la señal que
gene a una pis a de audio. Pe mi e a ia de o ma independien e la in ensidad de los
onos básicos.
F ame: Función del Leap Mo ion que con iene in o mación de odo lo que el disposi i o
ha econocido. Un p og ama que emplea el Leap Mo ion gene a un ame dis in o en
cada momen o.
F ecuencia de mues eo: Núme o de mues as po unidad de iempo que se oman de
una señal con inua pa a p oduci una señal disc e a, con el obje i o de con e i una
señal analógica en digi al.
Ha dwa e: Pa es ísicas de un sis ema in o má ico, donde sus componen es son
eléc icos, elec omecánicos o mecánicos.
Ke nel: So wa e que cons i uye una pa e undamen al del sis ema ope a i o. Es el
enca gada de ges iona ecu sos a a és de se icios de llamada al sis ema pa a da
a los p og amas un acceso segu o al ha dwa e del o denado .
64

Lis ene : Clase del Leap Mo ion donde se de inen las acciones que se deben ejecu a
a pa i del es ado del obje o Con olle .
MIDI: Musical Ins umen Digi al In e ace. Es ánda ecnológico que desc ibe un
p o ocolo, in e az digi al y conec o es que pe mi en que a ios ins umen os musicales
elec ónicos, compu ado as y o os disposi i os elacionados se conec en y
comuniquen en e si.
O e clocking: Té mino que consis e en alcanza una mayo elocidad de eloj y mejo
endimien o pa a un componen e elec ónico po encima de las especi icaciones del
ab ican e.
Pi ching: Función de las lib e ías de audio de FMOD, que pe mi e cambia la
ecuencia del ono de un sonido dependiendo del g ado que se le asigna pa a
aumen a o disminui dicha ecuencia.
Plugin: Complemen o de una aplicación que se elaciona con o a pa a añadi una
nue a unción especí ica al p og ama.
RAM: Random Access Memo y. Componen e que se u iliza como memo ia de abajo
de un compu ado pa a el sis ema ope a i o, los p og amas y la mayo pa e del
so wa e.
Sample: Mues a de sonido g abado en cualquie ipo de sopo e pa a eu iliza lo
pos e io men e en un ins umen o musical. Puede es a ans o mado median e e ec os
sono os.
Slide : Componen e g á ico que consis e en un bo ón deslizable sob e una ba a.
Slo : Mé odo empleado en Q pa a c ea una comunicación en e un componen e
g á ico y las unciones de un p og ama.
Sma phone: Telé ono mó il cons uido sob e una pla a o ma in o má ica mó il con una
mayo capacidad de almacenamien o de da os, que pe mi e ealiza p ocesos
semejan es al de un a mic ocompu ado a compa ado con el elé ono con encional.
Socke : Concep o abs ac o donde dos p og amas, si uados en compu ado as
di e en es, pueden in e cambia cualquie lujo de da os de mane a iable y o denada.
So wa e: Sopo e lógico de un sis ema in o má ico que comp ende el conjun o de
componen es que hacen posible la ealización de a eas especí icas, en con aposición
a los componen es ísicos.
65
Desa ollo del simulado del The emin empleando un Leap Mo ion
Swi ch: Función de los lenguajes de p og amación pa a escoge una opción en e
muchas a pa i del con enido de una a iable o un alo dado.
VST: Vi ual S udio Technology. In e az es ánda desa ollada pa a conec a
sin e izado es de audio y plugins de e ec os a edi o es de audio y sis emas de
g abación. Pe mi e eemplaza el ha dwa e adicional de g abación po un es udio
i ual con he amien as so wa e.
66