scieee Science in your language
[es] (orig)

Técnicas de extracción en tiempo real del tempo de pistas de audio sobre dispositivos móviles

Abstract

En este trabajo se presentan dos análisis para la detección del ritmo en pistas de audio, llamados “Simple Sound Energy” y “Frecuency Selected Sound Energy” los cuales se describen como son en el Capítulo 3 y como han sido implementados en la Sección 4.2 y el Apéndice A. Para llegar a ello primero se describe en la Sección 2.1 la manera en que el sonido es almacenado en un ordenador y como es reproducido, detallando dos de los formatos de archivos de audio más utilizados. A continuación, en la Sección 2.1.2 se recorre la situación actual en lo que a detección de ritmo se refiere, que tipos de algoritmos existen y que proyectos o aplicaciones hacen este tipo de análisis. También se muestra, en la Sección 2.2.1 la manera de integrar un código C/C++ dentro de una aplicación Android para obtener algo de eficiencia a la hora de ejecutar algoritmos complicados o que requieran grandes recursos y se desarrolla una aplicación para Android utilizando esta técnica en la Sección 4.3. En esa aplicación se han integrado los análisis de detección de ritmo en código C/C++ y se muestra el resultado de manera visual en la aplicación. Posteriormente, en el Capítulo 5 se ha medido el nivel de precisión de ambos análisis con una encuesta online donde los usuarios encuestados han escuchado diversas pistas marcadas con un elemento sonoro en los instantes donde se han producido los golpes de ritmo. Finalmente, en el Capítulo 6 se exponen las conclusiones obtenidas sobre todo el trabajo realizado y el futuro trabajo que podrá ser desarrollado.

Read accessible full text

Técnicas de extracción en tiempo real del tempo de pistas de audio sobre dispositivos móviles

Author: Doménech Arellano, Jesús Javier
Year: 2015
Source: https://docta.ucm.es/bitstreams/9165cbf9-f484-4dc2-91ea-4857ae0b0e93/download
Técnicas de ex acción en iempo eal
del empo de pis as de audio sob e
disposi i os mó iles
TRABAJO DE FIN DE GRADO
Doble G ado en Ingenie ía In o má ica y Ma emá icas
Jesús Ja ie Doménech A ellano
Di igido po el Doc o
Ped o Pablo Gómez Ma ín
Codi igido po el Doc o
Ma co An onio Gómez Ma ín
Depa amen o de Ingenie ía del So wa e e In eligencia A icial
Facul ad de In o má ica
Uni e sidad Complu ense de Mad id
Junio 2015
Documen o maque ado con TEX
i
S .1.0.
Es e documen o es á p epa ado pa a se imp imido a doble ca a.
Técnicas de ex acción en
iempo eal del empo de pis as de
audio sob e disposi i os mó iles
Memo ia que p esen a pa a op a al
Doble G aduado en Ma emá icas e Ingenie ía In o má ica
Jesús Ja ie Doménech A ellano
Di igido po el Doc o
Ped o Pablo Gómez Ma ín
Codi igido po el Doc o
Ma co An onio Gómez Ma ín
Depa amen o de Ingenie ía del So wa e e
In eligencia A icial
Facul ad de In o má ica
Uni e sidad Complu ense de Mad id
Junio 2015
Copy igh c

Jesús Ja ie Doménech A ellano
A Ana, mi pa eja,
y
a mi ex ensa amilia.

Siemp e que e p egun en si puedes hace un abajo,
con es a que sí y pon e enseguida a ap ende cómo se hace.
F anklin D. Roose el (1882-1945)
Ag adecimien os
A odos los que la p esen e ie en y
en endie en.
Inicio de las Leyes O gánicas. Juan
Ca los I
Es e abajo no hab ía sido posible sin muchas pe sonas, aho a ci o solo
una pequeña pa e de aquellas que me han dado lo necesa io pa a ealiza lo.
Po una pa e mi pequeña g an amilia que me ha sopo ado odo el des-
o den que he p oducido en casa, me han escuchado aunque no en endiesen
de que les hablaba y se han adap ado a mis ho a ios; po eso y más g acias.
Mi pa eja, Ana Pé ez Gómez, cada día animando a e mina el abajo
siemp e pendien e y ayudando en esa ec a nal del abajo que se iba ha-
ciendo cues a a iba.
D. Pablo Es e e y Joaquín Sánchez, que han colabo ado con c i e ios y
dando ese
plus
a los mo i os po los que se hacen las cosas y ambién lo que
podemos llama un poco de
ikismo
.
Quie o ag adece ambién a odos los que han colabo ado en la encues a
de p ecisión y en especial a la compañe a, Es íbaliz Bus o Pé ez de Mendi-
gu en, que me cedió una g abación pa a el análisis.
A mis p o eso es y amigos Luis He nández Yáñez, Ped o Pablo Gómez
Ma ín y Ma co An onio Gómez Ma ín, que no sólo han con ibuido en mi
o mación odos es os años y han es ado al pie del cañón du an e odo el
TFG, sino que ambién han con ibuido a que se ac ecien e mi deseo de se ,
en un u u o, p o eso e in es igado en la uni e sidad.
Po úl imo a mis compañe os: Luis Ma ía Cos e o, Jenni e He nán-
dez, Alejand o Agui e, F ancisco C iado y Pablo Cabeza po se el equipo
SWERC
acompañándome odos es os años.
ix
x i Índice
5.3. Resul ados y conclusiones . . . . . . . . . . . . . . . . . . . . 34
6. Conclusiones y abajo u u o 37
6.1. Conclusiones ........................... 37
6.2. T abajo u u o .......................... 38
6.3. Valo ación pe sonal . . . . . . . . . . . . . . . . . . . . . . . . 38
A. Código implemen ado 41
A.1.In oducción............................ 41
A.2.And oid.............................. 42
A.2.1. ac i i y_main.xml . . . . . . . . . . . . . . . . . . . . 42
A.2.2. MainAc i i y.ja a . . . . . . . . . . . . . . . . . . . . . 44
A.3.Na i o............................... 48
A.3.1.Na i e.c.......................... 48
A.3.2. Bea De ec o .cpp . . . . . . . . . . . . . . . . . . . . . 48
A.3.3.And oid.mk........................ 53
Bibliog a ía 55
Lis a de ac ónimos 56

Capí ulo 1
Mo i ación
La música es un a e que es á ue a de
los lími es de la azón, lo mismo puede
deci se que es á po debajo como que se
encuen a po encima de ella.
Pío Ba oja
El en e enimien o es la g an demanda de hoy en día, odo se mue e en
o no a él, el mundo que busca el
Es ado de Bienes a
quie e hace su ida
amena y di e ida. Den o del en e enimien o exis en unas g andes po en-
cias como pod ían se la ele isión o el ú bol, pe o ambién encon amos los
ideojuegos. Es os equie en cada ez un desa ollo más log ado pa a que
lleguen a so p ende a los usua ios y el ideojuego sea acep ado.
Pa a es o hay que cumpli una se ie de equisi os, en e los cuales se
encuen a el ene una buena idea pa a el juego. Hace un iempo su gió
una idea: que cada ez que juegas el ni el sea di e en e, que la música haga
cambia el escena io, pe o no solo eso, sino que puedas escoge cualquie
música. Con es a idea se desa olló un ideojuego (g. 1.1) en el que ienes
que eco e un escena io que a cambiando al i mo de la música has a
llega al nal, pe o cómo adap a los cambios a la música se con i ió en
un p oblema y se p opuso inicialmen e p eanaliza manualmen e unas pocas
canciones en e las que se pueda elegi . Con la in ención de más adelan e
consegui pe mi i que el usua io pueda elegi cualquie audio y juga con él.
En es e abajo se p e ende ealiza un análisis au omá ico pa a pode
amplia , en un u u o, el juego pa a cumpli con es a úl ima idea. De mane a
que se analice la canción que el usua io elija y se ex aigan las ca ac e ís icas
necesa ias de la canción pa a pode modica el ni el con ellas.
El aumen o de uso de mó iles hacen que el juego uese desa ollado pen-
1
2
Capí ulo 1.
Mo i ación
(a) (b)
(c) (d)
Figu a 1.1: Cap u as del Juego
sando en es os disposi i os, y po an o el análisis debe se ealizado pa a
ellos. En es e abajo se desa olla á dicho análisis a endiendo a las limi-
aciones que es os disposi i os p esen an, como son la memo ia y la baja
capacidad de compu ación. Po an o, se plan ea ealiza dicho análisis en
iempo eal o
s eaming
si uese necesa io pa a minimiza los iempos de
espe a al usua io.
1.1. Plan de abajo
Pa a ealiza la a ea mencionada se ha elabo ado el siguien e plan de
abajo.
Se inició con una p ime a oma de con ac o con oda la ma e ia nue a
que el abajo iba a eque i , como puede se :
P oba el juego.
1.1. Plan de abajo 3
Es udia ace ca del sonido.
La modelización del sonido en che os.
P og amación pa a And oid.
Comunica código pa a And oid con C/C++.
T as ealiza una iniciación en es os pun os, se p ocedió a la in es igación
y es udio de la si uación ac ual en lo espec o a la de ección del empo en
pis as de audio. ¾Cuáles son algunas he amien as ac uales que lo ealizan?
¾Qué ipos de algo i mos hay? ¾Cuán o iempo medio a dan los di e en es
algo i mos? Han sido algunas de las p egun as que se ha buscado esponde .
Además de ejecu a los p og amas que se han encon ado pa a e de mane a
subje i a su p ecisión.
Un e ce paso que ha con inuado al an e io , ha sido ealiza una im-
plemen ación de los algo i mos encon ados más ele an es, adap ándolos al
esul ado que se quie e ob ene pa a su inco po ación al juego. Pe o solamen-
e se ha p e endido ejecu a es os algo i mos en un o denado pa a pode
e alua su p ecisión y endimien o.
T as unos esul ados sa is ac o ios, se ha p ocedido con el desa ollo de
una aplicación en And oid que inco po a el algo i mo. Se ha buscado p og a-
ma el algo i mo en código na i a del disposi i o pa a log a una eciencia
mayo .
Con odo es o se da po nalizado el abajo y la in eg ación del algo i -
mo en el ideojuego que es á desa ollado sob e
Uni y
, se deja á pa a más
adelan e al y como se explica en el Capí ulo 6 de es e abajo.
Capí ulo 2
Si uación ac ual
No es oy diciendo que oy a cambia el
mundo, pe o ga an izo que encende é la
llama del ce eb o que si lo ha á.
Tupac Shaku
Resumen:
En es e capí ulo, desc ibi emos b e emen e lo que es un
sonido sus ca ac e ís icas y como se almacena digi almen e en di e en-
es o ma os de a chi os de audio. También mos a emos la si uación
de los úl imos años en el ámbi o de la ex acción de empo, los di e-
en es algo i mos y pla a o mas sob e las que se ha implemen ado. Po
úl imo, nos asomamos a la p og amación pa a And oid, en especial la
p og amación con código na i o o C/C++.
2.1. El sonido
El sonido es cualquie enómeno que implique una p opagación de on-
das, gene almen e p oducido po un mo imien o ib a o io de un cue po. La
p opagación del sonido implica un anspo e de ene gía sin anspo e de
ma e ia a a és de un medio comúnmen e el ai e y no se puede p opaga
po el acío.
Como el sonido se p oduce po un mo imien o ondula o io al aplica le
la ans o mada de Fou ie podemos exp esa lo po una suma de cu as
sinusoidales que co esponden a onos pu os que se pueden ca ac e iza po
las magni udes de cualquie onda como son:
Pe íodo (
T
)
: es el iempo anscu ido en e dos pun os equi alen es
de una onda. Es o es, si la onda sigue la unción
c( )
, donde
indica
5

6
Capí ulo 2.
Si uación ac ual
Figu a 2.1: Ca ac e ís icas de una onda
el iempo. El
pe íodo
cumple que
c( +T) = c( )∀
, po an o exis en
inni os alo es pa a
T
que sa is acen la condición an e io , se oma
como alo al meno posi i o no nulo que cumpla la condición. Po
ejemplo el
pe íodo
de la unción coseno es
2π
.
Longi ud de onda (
λ
)
: se a a de la dis ancia eal que eco e una onda
en e dos c es as o dos alles, la c es a es el pun o más al o que alcanza
la onda y el alle el más bajo.
F ecuencia (
)
: es la magni ud que mide el núme o de epe iciones
sucede un enómeno en un iempo. En las ondas, la ecuencia es in e -
samen e p opo cional a la
longi ud de onda
, a mayo
ecuencia
meno
longi ud de onda
y ice e sa. La
ecuencia
sigue la elación
=
λ
donde
es la elocidad. Cuando una onda cambia de medio, po ejem-
plo del ai e al agua, la
ecuencia
se man iene cons an e a iando la
elocidad y la
longi ud de onda
.
Ampli ud
: es la medida que ma ca la dis ancia en e el pun o más
alejado de la onda con el pun o de equilib io. Es o es la mi ad de la
dis ancia en e la c es a y el siguien e alle, an e io men e denidos.
Aunque se puede en ende como
ampli ud
pa a un alo conc e o de
iempo, la dis ancia de la onda al pun o de equilib io en ese momen o.
Con es as ca ac e ís icas un sonido audible po los se es humanos, es
aquel que es á en e los 20 y 20000 Hz. Pa a pode almacena los en un o de-
nado se equie e de un pun o de en ada, es un ansduc o que ans o ma
las ondas de p esión de ai e, es deci , las ondas sono as, en señales eléc icas.
Es e ansduc o puede se de di e en es ipos como son el
elec os á ico
,
dinámico
,
piezoeléc ico
, de
ca bono
, e c. Se explica el p ime o pa a e una
idea del uncionamien o.
2.1. El sonido 7
Figu a 2.2: Mues eo y cuan icación de una onda senoidal en código PCM
de 4-bi s de p o undidad
La ib ación de la onda p o oca en el ansduc o el mo imien o osci-
la o io en una memb ana llamada dia agma que p oduce una a iación en
la ene gía almacenada en un condensado . Esa a iación gene a una ensión
eléc ica que es análoga en ampli ud y ecuencia a las ondas sono as inicia-
les. La señal eléc ica ya puede se almacenada.
Pa a almacena la se p ocede a oma en in e alos uni o mes de iempo
unas mues as de la señal eléc ica analógica. La calidad de los da os almace-
nados dependen de la ecuencia de mues eo y la p o undidad o can idad de
bi s po mues a, como se ap ecia en el ejemplo de la gu a 2.2. El núme o de
bi s po mues a de e mina á el e o de p ecisión que se come e po almace-
na un alo con ínuo (ampli ud de la onda en un ins an e dado) en un alo
disc e o (en e o de 8 o 16 bi s no malmen e, de 4 bi s en la gu a an e io ).
Po o o lado la ecuencia de mues eo de e mina la sepa ación (en iempo)
en e una mues a y o a y po an o los huecos en los que no hay mues eo y
en los que los cambios de onda no son de ec ados. Es a modulación se conoce
po PCM (
Pulse Code Modula ion
, Modulación po impusos codicados). A
modo de ejemplo, los CD de audio u ilizan una ecuencia de mues eo de
44.100Hz y 16 bi s po mues a.
Pa a ecupe a la señal o iginal se ealiza un p oceso in e so, con i ien-
do las señales eléc icas en ene gía mecánica y es a en ondas audibles. Al
igual que el ansduc o de en ada, un ansduc o de salida iene ambién
di e en es ipos el
elec os á ico
ecibe en el condensado la señal eléc ica y
al p oduci se una a iación de ene gía se p oduce un e ec o de a acción o
epulsión eléc ica que mue e la memb ana mó il ambién llamada dia ag-
ma, es e mue e el ai e que iene si uado en e a él, gene ando las a iaciones
de p esión en el mismo que son las ondas sono as.
8
Capí ulo 2.
Si uación ac ual
Figu a 2.3: Es uc u a de la cabece a de un a chi o WAV
En es a sección se ha omado la in o mación p incipalmen e del lib o
(Gold e al., 2011).
2.1.1. A chi os de sonido
Los a chi os de sonido se p esen an en o ma os muy a iados, en unción
de la a ea que se a a ealiza con ellos. Exis en o ma os con y sin pé dida de
in o mación, como pueden se : MIDI (
Musical Ins umen Digi al In e ace
,
In e az Digi al de Ins umen os Musicales), WAV (
Wa e o m Ex ensión
,
Ex ensión de o ma de onda), MP3 (
MPEG Audio Laye III
), OGG, WMA
(
Windows Media Audio
), 3GP (
3 d Gene a ion Pa ne ship P ojec
), e c. A
con inuación se desc iben WAV y MP3.
2.1.1.1. WAV
El o ma o de a chi o WAV ue desa ollado en colabo ación po Mic o-
so e IBM. Y es un es ánda pa a los a chi os de audio.
Es os a chi os son un ipo de a chi os en o ma o RIFF, que poseen
en su cabece a un bloque FMT donde se indica el o ma o conc e o del
a chi o WAV. Todo el a chi o es a en
li le-endian
.
Si el campo
Audio Fo ma
iene alo 01 00 el audio se p esen a sin
comp imi , en c udo, en o ma o PCM. Pa a ob ene calidad de CD se
g aba el sonido a 44.100 Hz, campo
Sample Ra e
,ya16
bi s pe sample
.
Cada minu o de sonido llega a ocupa 10 MB. Es o se con ie e en una
limi ación a la ho a de en ia a chi os, pe o no p esen a pé dida de calidad,
2.1. El sonido 9
Figu a 2.4: Es uc u a de la cabece a de un a chi o MP3
po lo que es adecuado pa a analiza un sonido o a a lo de o ma a anzada
e incluso edi a lo.
2.1.1.2. MP3
El MP3 es el o ma o de audio más popula debido a su g an calidad de
sonido y bajo amaño po el algo i mo de comp esión que u iliza.
El audio es comp imido con pé didas, se denomina Lossy, es o es que
se elimina del sonido pa es que luego se án i ecupe ables, pe o que son
i ele an es pa a el sonido dado que pe enecen a la pa e impe cep ible po
el oído humano.
Además p esen a la opción de congu ación de calidad, comp imiendo
más el a chi o sac icando calidad de sonido.
La cabece a es ánda de un a chi o MP3 esponde a la gu a 2.4. Los
campos que más nos in e esan son:
Bi Ra e
, que nos indica la elocidad de la pis a en kbps.
Sampling Ra e
, lo ideal es que enga alo 00, que co esponde con
una ecuencia de 44.100 Hz.
Channel Mode
, que indica el modo en que es a la pis a como po ejem-
plo si es a en
s e eo
o en
mono
.
2.1.2. Ex acción del empo
El
empo
es el i mo o compás de una acción. Conc e amen e en el ám-
bi o musical, es el i mo de una canción o pieza. Es e se suele medi en
16
Capí ulo 2.
Si uación ac ual
Se ecibe un pun e o al a ay del ipo na i o que co esponde el de en a-
da. También se dispone de un mé odo pa a el p oceso in e so de con e i un
a ay de elemen os (
jxxx[]
)de un ipo na i o a un ipo a ay (
jxxxA ay
):
<TipoA ay> New<Tipo>A ay(JNIEn *en , jsize len);
También se dispone de dos mé odos pa a copia de un ipo a o o selec-
cionando una egión pe o se equie e que se haya ese ado el espacio del
a ay des ino p e iamen e, es os mé odos son:
oid (Ge |Se )<Tipo>A ayRegion(JNIEn *en ,<TipoA ay>a ay,
jsize s a , jsize len, <TipoP imi i o> *bu e );
Ge
copia de ipo a ay (
jxxxA ay
) a a ay na i o (
jxxx[]
), y
Se
de
a ay na i o a ipo a ay.
Con odo es o se ienen las he amien as sucien es pa a u iliza JNI en
la in eg ación de C/C++ en Ja a eniendo en cuen a los equisi os amos a
ene desc i os en la Sección 4.3.

Capí ulo 3
Análisis
Si quie es se sabio, ap ende a in e oga
azonablemen e, a escucha con
a ención, a esponde se enamen e y a
calla cuando no engas nada que deci .
Johann Kaspa La a e
Resumen:
En es e capí ulo se desc ibe el análisis pa a la de ección
de i mo de una pis a de audio. Se p esen an dos modalidades, una
di ec a y o a a a és de la agmen ación en bandas de ecuencia.
Pa a ealiza el análisis se ha omado como guía el manual (Pa in, 2003).
En la explicación del análisis se asume que los audios es án en modo
s e eo
,
po lo que disponen de canal izquie do y de echo, y ienen de ecuencia
de mues eo 44.100 Hz, es a ecuencia no co esponde con la ecuencia de
onda, sino que es á elacionada con el núme o de mues as omadas po se-
gundo.
La suposición an e io no pie de gene alidad si el audio se encuen a en
modo mono. Es e modo posee un solo canal y la ans o mación a dos ca-
nales pod ía ealiza se duplicando el único canal o es ableciendo como nulo
o ce o odo el segundo canal y se p ocede con o al no malidad sin a ec a
a los esul ados al y como e emos a con inuación. En la implemen ación
desc i a en la Sección 4.1.1 se oma la opción de oma como ce os el segundo
canal ya que simplica la implemen ación de la en ada de da os.
En cuan o a la suposición de la ecuencia conc e a ampoco a ía el
esul ado. La ecuencia de mues eo de una pis a puede se educida eli-
minando mues as o ampliada ecupe ando alo es in e medios en e una
mues a y o a, po medio de una in e polación o un p oceso simila . Sin
17
18
Capí ulo 3.
Análisis
emba go exis e o a solución menos cos osa que se ía la modicación de al-
gunas cons an es en el análisis, como po ejemplo el alo de 43 ins an es,
que se oma y dene más adelan e, se puede modica po el núme o de
ins an es que co esponden a un segundo de iempo en la ecuencia de la
pis a que se es é analizando.
Se han desa ollado dos análisis basados en una es adís ica local del
s ea-
ming
(ujo) de la ampli ud de onda del audio.
3.1. Simple Sound Ene gy
Una pe sona escucha el sonido y lo ans o ma en una señal eléc ica
que el ce eb o in e p e a, es a señal end á más o menos ene gía en unción
del sonido escuchado. Un golpe de i mo la pe sona lo de ec a á cuando se
p oduzca un aumen o signica i o de la ene gía del sonido y po un pe iodo
ela i amen e b e e. Po es o se pod ía deci que el golpe de i mo depende
de un his o ial de can idad de ene gía ecibida. Ob iamen e no es lo mismo
la ene gía que se ecibe al escucha ock que al escucha una pieza sua e de
música clásica.
En es e p ime análisis conside a emos que un golpe de i mo sucede
cuando el ins an e de ene gía supe a en cie a can idad a la media de ene -
gía ecibida úl imamen e. Fo malizando un poco más es o decimos:
Sean
(an)
y
(bn)
dos lis as de alo es que con ienen la ampli ud del so-
nido cada cie o iempo
Te
siendo
(an)
los alo es del canal izquie do y
(bn)
los alo es del canal de echo con ambas lis as de amaño
n=
du ación
Te
que
co esponde con el núme o de mues as de que hay omadas en la pis a com-
ple a. Denimos
ins an e
de iempo a la co espondencia con 1024 mues as
de las lis as an e io es, es o se án 23.2 milisegundos (ms) una ecuencia de
mues eo de 44.100 Hz. Sea
(Em)
la lis a que indica la ene gía del audio en
cada
ins an e
, es a ene gía esponde a la ecuación 3.1, que es simplemen e
la suma de los cuad ados de las ampli udes:
Ei=
(i∗1024)+1024
X
k=i∗1024
a2
k+b2
k∀i∈(0,n
1024)
(3.1)
Tomemos aho a la media local, denida como
(Mm)
que es una lis a de
alo es de la media de los 43 ins an es an e io es (43 bloques de 1024 mues-
as son ap oximadamen e un segundo a 44.100 Hz). La ecuación 3.2 exp esa
es e cálculo o malmen e:
3.1. Simple Sound Ene gy 19
Mi=1
43 ∗
i
X
k=i−43
Ek∀i∈(0,n
1024)
(3.2)
Siendo en la ecuación 3.2,
Ek= 0
si
k < 0
. Con lo an e io denimos un
golpe de i mo en el ins an e
i
si la ene gía del dicho ins an e supe a una
cie a p opo ción a la media de los 43 ins an es an e io es:
Ei> C ∗Mi∀i∈(0,n
1024)
(3.3)
Donde
C∈(100,200)
. El coecien e C depende di ec amen e de la can-
ción que se analice siendo po ejemplo,
C= 104
un buen alo pa a música
ecno
o
ap
, mien as que pa a
ock & oll
que iene mucho más uido, un
buen coecien e se ía
C= 101
. Es os alo es se han ob enido median e p ue-
bas, son ap oximados y ienen cie a acep ación. Po o o lado, el in e alo
de
C
es bas an e ácil en ende que si un ins an e iene menos ene gía que
la media no se á un golpe de i mo y que exigi que duplique la media es
excesi o.
Pe o, selecciona un coecien e di e en e pa a cada canción no es una
buena solución po eso se debe hace que el p opio análisis calcule la mejo
cons an e dependiendo de la pis a de audio. Pa a ello podemos usa una
eg esión lineal de
C
con la
a ianza mues al
de la ene gía en cada ins an e.
La a ianza que es á denida po la ecuación 3.4 oma alo es en odo el
espacio eal, po eso se á necesa io no maliza sus alo es pa a inclui los en
un ango limi ado donde pode hace la eg esión lineal de
C
en su in e alo.
Vi=1
43 ∗
i
X
k=i−43
(Ek−Mi)2∀i∈(0,n
1024)
(3.4)
Igual que en el caso an e io se oma
Ek−Mi= 0
si
k < 0
. De modo
que la cons an e
C
ha pasado a depende del ins an e en que es e aluada.
Se decide oma una no malización de la a ianza que la deje en el in e alo
(−200,200)
, en onces se quie e que cuando
Vi
ome su alo mínimo, se la
no malice y quede con alo
−200
, con ese alo se quie e ob ene el alo
máximo posible pa a
Ci
. En el caso con a io cuando la a ianza alcance
el alo máximo, no malizada ome alo
200
y la
Ci
co espondien e ome
su alo mínimo. Es deci , buscamos una ecuación lineal que dependa de la
no malización de la a ianza y de alo es en e 1 y 2 cuando ecibe en e
-200 y 200, de la o ma
C= (A∗V) + B
. Exis en mul i ud de ecuaciones
que cumplen es os equisi os, en la ecuación 3.5 se oman los alo es pa a
A
y pa a
B
más acep ados.
Ci= (−0,0025714 ∗Vi)+1,5142857 ∀i∈(0,n
1024)
(3.5)
20
Capí ulo 3.
Análisis
Con es o naliza el análisis, podemos e su implemen ación en la Sec-
ción 4.2.1.
3.2. F ecuency Selec ed Sound Ene gy
El p oblema p incipal del algo i mo an e io es in en a de ec a a ia-
ciones signica i as de ene gía en canciones con mucho uido como el
ock
o el
pop
. Po eso, amos a busca esas a iaciones en cie as bandas de e-
cuencia. Así pod emos da di e en e impo ancia a cada banda en unción de
lo que nos in e ese. Es o podemos hace lo g acias al
Teo ema de Pa se al
:
Teo ema 1 (Teo ema de Pa se al)
La T ans o mada de Fou ie es uni-
a ia, es o es, la suma (o la in eg al) del cuad ado de una unción es igual a
la suma (o a la in eg al) del cuad ado de su ans o mada.
Si la unción
( )
es con inua y siendo
F(α)
la CFT (
Con inuous Fou ie
T ans o m
, T ans o mada Con inua de Fou ie ) de
( )
.
Z∞
−∞
| ( )|2d =Z∞
−∞
|F(α)|2dα
(3.6)
Pa a una mues a disc e a
xn
, omando
Xn
como la DFT (
Disc e e Fou ie
T ans o m
, T ans o mada Disc e a de Fou ie ) de dichas mues as:
n−1
X
k=0
|xk|2=1
n
n−1
X
α=0
|Xα|2
(3.7)
En onces, según el eo ema no pe demos in o mación de la ene gía de la
canción po lo que podemos con inua con el análisis. Teníamos
(an)
y
(bn)
dos lis as de alo es que con ienen la ampli ud del sonido cada cie o iempo
Te
siendo
(an)
los alo es del canal izquie do y
(bn)
los alo es del canal
de echo, con ambas lis as de amaño
n=
du ación
Te
que co esponde con el
núme o de mues as de que hay omadas en la pis a comple a. Llama emos
(cn)
a los alo es complejos ales que
ck=ak+ibk
. En onces aplicando
la FFT (
Fas Fou ie T ans o m
, T ans o mada Rápida de Fou ie ) cada
1024 mues as de
(cn)
enemos un espec o de ecuencias que di idimos
en
B
bandas. Cuan as más bandas se usen más sensible se á el análisis. La
ene gía po cada banda se ob iene como se exp esa en la ecuación 3.9, es o
es, el módulo al cuad ado del espec o de ecuencias ob enido di idido en
cada banda. Siendo
s < B
el núme o de la banda las ecuaciones quedan del
siguien e modo:
Ki= [ci∗1024, . . . , c(i+1)∗1024−1]∀i∈(0,n
1024)
(3.8)
3.2. F ecuency Selec ed Sound Ene gy 21
Es
i=B
1024 ∗
(i+1)∗B
X
k=i∗B
|(FFT(Ki))[k]|2∀i∈(0,n
1024)
(3.9)
Pa a cada banda
s < B
se calcula la media local:
Ms
i=1
43 ∗
i
X
k=i−43
Es
k∀i∈(0,n
1024)
(3.10)
Y denimos el golpe de i mo en los ins an es
i
en que:
Es
i> C ∗Ms
i∀i∈(0,n
1024)
(3.11)
Es os úl imos cálculos co esponden con las ecuaciones 3.2 y la ecua-
ción 3.3 sólo que se gene aliza pa a cada banda.
La cons an e
C
puede ol e a se calculada con la a ianza mues al en
cada banda siguiendo la ecuación 3.4 del mismo modo que en el caso an e io .
Po an o enemos,
B
lis as
(bea s
i)
indicándonos si la banda
s
iene un
golpe de i mo en el ins an e
i
o no. Pa a con e i es os
bea s
locales a
una banda en
bea s
globales a odo el audio, se p ecisa oma la decisión de
cuándo ha de conside a se que es un golpe de i mo global pa a ello lo ideal
es ponde a cada banda con un alo que ma que la impo ancia de dicha
banda y si en un ins an e se ob iene un cie o po cen aje de bandas con un
golpe de i mo se dice en onces que el
bea
es global.

Capí ulo 4
Implemen ación
La idea de ás de los compu ado es
digi ales puede explica se diciendo que
es as máquinas es án des inadas a lle a
a cabo cualquie ope ación que pueda se
ealizada po un equipo humano.
Alan Tu ing
Resumen:
En es e capí ulo emos como se ha lle ado a cabo la im-
plemen ación de es e análisis po medio de dos mé odos di e en es y
como se han inco po ado ambos mé odos a una aplicación And oid que
pe mi e ejecu a el análisis en un disposi i o mó il.
4.1. En ada y salida del análisis
Todo análisis p esen a la es uc u a básica de En ada-Algo i mo-Salida,
en el p ime paso se a an los da os pa a amolda los a las condiciones del
análisis, en el segundo se ealiza p opiamen e dicho análisis y en el e ce o se
a a la espues a pa a pode mos a los esul ados de una mane a amigable
y legible.
4.1.1. En ada de da os
El p ime paso cuando se quie e ealiza cualquie análisis es ob ene los
da os sob e los que se a a abaja , en es e caso los da os se ob ienen de un
a chi o de sonido. Es e a chi o puede es a en cualquie o ma o ya sea con
un algo i mo de comp esión o en su es ado pu o.
23
24
Capí ulo 4.
Implemen ación
Pa a el análisis asumimos que la en ada de audio son dos bue s con
la in o mación ela i a a la ampli ud de la onda de audio en cada mues a,
el p ime bue e e en e a un canal izquie do y el segundo al de echo, asu-
miendo ambién que an a una ecuencia de 44.100 Hz.
Dadas es as p econdiciones, se han es udiado los o ma os más comu-
nes dos de ellos desc i os en la Sección 2.1.1. De es e es udio se plan ean
di e en es al e na i as pa a ealiza la en ada al análisis, una de ellas ue
implemen a un lec o de a chi os de audio que sopo ase al menos la lec-
u a de WAV y MP3, pe o ue desca ada llegando a oma la decisión de
u iliza una lib e ía de audio. Después de busca en e a ias opciones se
eligió la llamada FMODex
1
, que acili a la lec u a y ep oducción de los
a chi os, p incipalmen e po es a disponible pa a la mayo ía de SO incluido
And oid. Además, a es a lib e ía se le puede pedi que de uel a la in o ma-
ción del audio cumpliendo las p econdiciones del análisis, como son el núme o
de canales.
4.1.2. Salida del análisis
Como se e más adelan e en la Sección 4.2, el esul ado del análisis es
un bue donde se nos indica si un de e minado ins an e iene un golpe de
i mo o no. Pa a isualiza el esul ado del análisis se p esen an es o mas
di e en es.
La p ime a y más sencilla consis e en mos a los esul ados po consola
o en un a chi o, donde se mues a el milisegundo de la canción en que se
p oduce el
bea
con un esul ado po línea. Además pa a la consola se o e-
ce la posibilidad de esc ibi es e esul ado mien as se escucha la canción,
iendo de es e modo que se esc ibe el milisegundo en el momen o en que
se p oduce el
bea
. Es e es el p ime mecanismo que se ha u ilizado pa a
e ica la co ección del algo i mo. El a chi o que se puede gene a se á el
u ilizado cuando se p oceda a la in eg ación del algo i mo en el ideojuego
mencionado en el Capí ulo 1.
El segundo mé odo de salida consis e en gene a un a chi o de audio
añadiendo un sonido
beep
en el ins an e del golpe de i mo. Pa a ello se es-
c ibe un a chi o en o ma o WAV, desc i o en la Sección 2.1.1.1. Pa a pode
inse a es e
beep
, se oma la ampli ud ecibida en los bue s de en ada y
se modica haciendo una media con una ampli ud supe io , dis o sionando
así la mues a o iginal.
Es e sis ema esul a inequí oco a la ho a de juzga si un golpe de i mo
1
FMODex: lib e ía de audio que puede encon a se en
h p://www. mod.o g/
4.2. Implemen ación de los algo i mos de análisis 25
ha sido bien de ec ado o no ya que se pe cibe la música y el
beep
al mismo
iempo. Es e sis ema es u ilizado en la Sección 5 al ealiza una encues a a
usua ios sob e la p ecisión del análisis.
El úl imo sis ema de salida, implemen ado en la aplicación And oid con-
sis e en un des ello en el ins an e en que se p oduce el
bea
en el audio que
se es á ep oduciendo; es e sis ema es bas an e isual pa a comp oba sin
es ue zo que el análisis unciona co ec amen e, aunque puede p oduci im-
p ecisión po que las pan allas an a 60 ps (
ames
po segundo). Se p opone
es e sis ema pa a e los esul ados en disposi i os mó iles as in eg a el
algo i mo en ellos a a és del JNI que acili a el NDK de And oid, al como
se de alla más adelan e en la Sección 4.3.
4.2. Implemen ación de los algo i mos de análisis
En el Capí ulo 3 se desc ibió de mane a eó ica cómo se ob ienen los gol-
pes de i mo pa a una canción cualquie a con dos mé odos di e en es; en es a
sección se explica como se ha lle ado a cabo la implemen ación de ambos
mé odos. El análisis ha sido implemen ado en C++ e in eg ado en And oid
con ayuda de NDK.
Aunque inicialmen e se iban a ealiza las implemen aciones pa a un aná-
lisis en iempo eal, es deci , du an e la ep oducción de la pis a de audio,
dada la eciencia de las siguien es implemen aciones, no se ha is o necesa io
lle a a cabo dicha implemen ación. Además se puede obse a , más adelan e,
que pa a lle a a cabo un análisis comple amen e en iempo eal, lo único que
hab ía que hace es gua da de mane a empo al las úl imas 43 medidas de
ene gía pa a pode decidi si en el ins an e ac ual hay un golpe de i mo o no.
Ambos análisis, una ez se ha calculado las ene gías ienen odo el p o-
cedimien o en común menos la nalización. Es e p ocedimien o puede e se
en pocas lineas, los pasos son sencillos, el p ime o es calcula la media y
pos e io men e la a ianza, es a a ianza se no maliza pa a que pe enezca
a un in e alo que se ha decidido sea de -200 a 200:
Función 4.1: Cálculo de los bea s
1
oid
p ocess (
loa
∗
ene gia ,
in
∗
bea ,
in
leng h )
2 {
3
loa
C = 1.4;
4
loa
∗
media = new
loa
[ leng h ] ;
5
loa
∗
a ianza = new
loa
[ leng h ] ;
6 calculoMedia ( ene gia , media , leng h );
7 calculoVa ianza ( ene gia , media , a ianza , leng h );
8 no maliza ( a ianza , leng h ,200);
32
Capí ulo 5.
P ecisión
Figu a 5.1: Cap u a de la encues a ealizada
5.1. Si uación poblacional y del ma e ial
Se ha p ocedido a ealiza una encues a a una población gené ica de 16
a 50 años pa a e alua la p ecisión de los análisis desa ollados en es e a-
bajo (Sección 4.2). La encues a se ha ealizado de mane a
online
a a és de
una web desa ollada exp esamen e pa a es e p opósi o que, a endiendo a la
comodidad de los encues ados, iene un diseño compa ible con odo ipo de
disposi i os mó iles y o denado es, al y como puede ap ecia se en la gu-
a 5.1.
En la encues a se p esen an es canciones con di e en es ca ac e ís icas
a las que se le han aplicado ambos algo i mos y ma cado los esul ados de
mane a audible al como se indica en la Sección 4.1.2. Po an o, la encues a
dispone de un ep oduc o de audio con nue e a chi os
A
,
A
_
1
,
A
_
2
,
B
,
B
_
1
,
B
_
2
,
C
,
C
_
1
y
C
_
2
que explicamos a con inuación.
La canción A es
Lucid
de
Di y Doe ing
que pe enece al géne o
ecno, con i mos muy ma cados y golpes con inuos. Po se música ecno,
no p esen a uidos ue a de la pis a, es a gene ada po un o denado y no
hay in e e encias de o os sonidos. Lo pod íamos llama una pis a limpia y
pe ec a pa a encon a los golpes de i mo.

5.2. Hipó esis de la encues a 33
La canción B es
Oh da ling
de
The Bea les
in e p e ada con ukelele
po una conocida. Es a canción, apa e de se más len a que la an e io es á
in e p e ada con un ins umen o de cue da y el audio p esen a uidos po
se una g abación no p o esional.
La canción C es
Tan a Tin a Ton a
de
Es opa
. U ilizan ins umen os
de cue da con mucho asgueo pe o se a a de una g abación p o esional de
es udio. Pe enece al géne o del Rock, po lo que hay una amplia p esencia
de sonido ins umen al.
Si el nomb e de la pis a de audio e mina po _1 signica que ha sido
analizado po el algo i mo Simple Sound Ene gy desc i o en la Sección 4.2.1
y que e mine po _2 indica que ha sido analizado po el algo i mo F e-
cuency Selec ed Sound Ene gy desc i o en la Sección 4.2.2.
A los encues ados se les pide escucha los nue e audios, y esponde que
po cen aje de acie o c een que ha habido en las seis pis as modicadas con
una ma ca sono a gene ada como se desc ibe en la Sección 4.1.2 en los
bea s
de ec ados po los di e en es algo i mos.
5.2. Hipó esis de la encues a
Al ealiza la encues a con amos con una hipó esis p elimina que que e-
mos e ica o alida al e mino de la misma. Es a hipó esis es á basada en
la desc ipción de las pis as p opues as pa a la encues a y en el conocimien o
in e no del algo i mo, así como su p ueba p e ia.
El esul ado que se espe a ob ene en es a encues a pa a las di e en es
pis as de audio dependen comple amen e de cada pis a y cada algo i mo, po
lo gene al se espe a un mejo esul ado del p ime algo i mo que del segundo,
dado que, como se explica en la Sección 4.2.2, el segundo no p esen a un cie-
e del algo i mo sucien emen e depu ado, sino que p esen a uno gené ico
pa a da un buen esul ado p omedio.
Más de alladamen e, podemos espe a de la p ime a canción de
Di y
Doe ing
una acep ación ele ada po pa e de los encues ados en ambos al-
go i mos, con un po cen aje muy al o en el p ime o po se una canción an
limpia y sencilla que no iene uidos y oda la melodía es á epa ida po
odo el espec o de ecuencias de mane a más o menos uni o me, po lo que
una sepa ación en bandas como hace el segundo algo i mo esul a innecesa-
ia. El segundo algo i mo ambién debe ía ob ene una al a acep ación po
los mismos mo i os aunque meno po lo ya explicado.
34
Capí ulo 5.
P ecisión
Pa a la segunda canción, que eco damos p esen a mucho uido, es una
g abación case a y suena p incipalmen e un ukelele. Es a canción se espe a
que no de buenos esul ados y que no sea muy ampliamen e acep ada ya que
los ins umen os de cue da no suelen p oduci buenos esul ados dado que
con unden al algo i mo, po ejemplo en los momen os en que se p oduce un
cambio de aco de sin ealiza un asgueo, el nue o aco de con inúa con la
ib ación que es aba al aco de an e io .
Po úl imo, la e ce a canción, la canción de Es opa que es Rock, como
decíamos p esen a mucha gui a a. Po ello se espe a ob ene un esul ado
no del odo co ec o pe o mucho más ace ado que la pis a an e io dado que
el audio es de mayo calidad. Y al elegi en e el p ime o segundo algo i -
mo, el segundo pod ía da mejo es esul ados po se Rock, pe o no se iene
especial espe anza en ello.
Po an o si o denamos po o den de p ecisión espe ada se á:
A1> C1≥C2> B1≥A2> B2
(5.1)
5.3. Resul ados y conclusiones
El esul ado de la elabo ación de la encues a ha sido sa is ac o io po los
da os ob enidos que como se de alla más adelan e e ican casi en o alidad
la hipó esis desa ollada en la Sección 5.2.Además, en un b e e pe iodo de
iempo se encues o a una población bas an e amplia. Se han encues ado a
57 pe sonas de di e en es ámbi os en los que se incluyen: in o má icos que
conocen el uncionamien o de los algo i mos, músicos con un oído acos um-
b ado a los empos y i mos, y o os pe les como se ía p o eso es de colegio
e ins i u os y es udian es de di e en es ni eles po lo que se puede ga an iza
que la encues a no ha esul ado sesgada po un ipo de población conc e a.
Me iéndonos en los esul ados ob enidos emos que la hipó esis se ha
cumplido casi o almen e. Adjun amos una pequeña mues a esumida de las
espues as (los alo es co esponden a un po cen aje de p ecisión) donde se
puede obse a que hay algunos esul ados que gene an un poco de uido, se
ha in en ado compensa el uido ealizando la encues a a un núme o ele ado.
En la abla ambién obse amos la media po canción eniendo en cuen a
el o al de encues as ealizadas. Que o denándolo queda:
A1> B1> C1> A2> C2> B2
(5.2)
5.3. Resul ados y conclusiones 35
#
A1A2B1B2C1C2
1
99 80 98 98 99 89
2
80 60 80 80 30 50
3
98 0 70 0 90 50
4
85 60 25 10 60 85
5
97 85 60 10 90 95
6
92 100 85 80 98 95
7
100 90 80 5 100 10
8
98 90 80 30 70 60
9
100 80 70 10 90 80
10
80 90 55 30 50 35
11
98 85 60 60 80 75
12
97 85 60 10 90 95
13
75 80 45 1 40 60
14
96 75 88 98 88 98
15
90 70 70 20 75 80
16
95 90 90 80 60 70
17
95 90 70 50 70 60
18
90 50 100 0 50 50
19
75 44 32 12 54 34
20
75 80 35 50 60 80
...
... ... ... ... ... ...
Media
91.47 69.52 72.40 40.70 70.14 66.86
Rápidamen e emos que el p ime algo i mo, desc i o en la Sección 3.1,
ob iene mejo es esul ados que el desc i o en la Sección 3.2; es o se debe a
que la implemen ación ealizada no ha u ilizado odo el po encial al y como
ad e íamos en la Sección 4.2.2 y al comienzo de es e capí ulo.
Aunque p esen a un deso den el esul ado ob enido espec o a la hipó e-
sis denida, podemos deci que se han cumplido las expec a i as ya que se
p e eía odo igual, sal o
B1
que se espe aba po debajo de
A2
pe o iendo
los esul ados numé icos la di e encia en e ellos es apenas un 3%.
Capí ulo 6
Conclusiones y abajo u u o
He no ado que aun la gen e que dice que
odo es á p edes inado y que no podemos
hace nada pa a cambia nues o des ino,
mi a an es de c uza la calle.
S ephen Hawking
Resumen:
Te minamos el abajo con unas conclusiones sob e la
elabo ación de dicho abajo, una b e e in oducción a lo que se án los
p óximos pasos pa a comple a es e abajo y una alo ación pe sonal
de lo que ha supues o ealiza es e p oyec o.
6.1. Conclusiones
T as naliza el abajo se ob ienen las conclusiones siguien es de i adas
del análisis de los esul ados ob enidos y desa ollados en es e documen o.
Empezando po el ema cen al del abajo, los análisis desa ollados e-
sul an sa is ac o ios y p esen an la compa ibilidad sucien e con el p oyec o
que se que ía desa olla . En e ambos análisis se elige inicialmen e el más
sencillo,
Simple Sound Ene gy
, desc i o en la Sección 3.1, dado que al no ea-
liza la FFT sob e el mues eo del audio ob iene unos esul ados en iempo
mucho mejo es que el segundo, además como se desa olla en la Sección 5.3
las di e encias de p ecisión no son sucien emen e no o ias como pa a u iliza
odos los ecu sos que equie e el análisis de la Sección 3.2, pe o la oma de la
decisión nal se aplaza en espe a de ealiza un es udio pa a mejo a la na-
lización del segundo análisis al y como se desc ibe en la siguien e Sección 6.2.
37

38
Capí ulo 6.
Conclusiones y abajo u u o
Po o o lado, la in eg ación de los análisis a la aplicación And oid u ili-
zando código na i o pa a ello ha esul ado sa is ac o ia, po ello, a al a de
compa a iempos con un análisis ealizado en la misma aplicación con Ja a,
se da po buena es a me odología pa a inco po a el análisis seleccionado al
ideojuego.
Po an o, se conside a sa is ac o io el abajo y los esul ados expues os
en es e documen o.
6.2. T abajo u u o
Se e aho a el modo en que se p e ende con inua es e abajo con di e en-
es acciones que lle a án a un esul ado oda ía más depu ado y p epa ado
pa a la in eg ación con el ideojuego que se con aba en el Capí ulo 1.
Mejo as
: Se p e é mejo a la nalización del algo i mo F ecuency Se-
lec ed Sound Ene gy, ac ualmen e cuen a las bandas que han p o-
ducido un golpe de i mo al y como se desc ibe en la Sección 4.2.2,
es a nalización es injus a con la capacidad del algo i mo. A su ez, se
quie e op imiza el uso de ecu sos e i ando p ecalcula y almacena
an os da os como se hace en los análisis ac uales de modo que se com-
pu e según se a necesi ando aho ando así memo ia que es uno de los
p incipales equisi os de los disposi i os mó iles.
Tiempos
: Se quie e medi la eciencia de los algo i mos con espec o
al iempo pa a oma una decisión de inco po ación de un algo i mo u
o o. También se plan ea la posibilidad de compa a una implemen a-
ción pa a la pa e na i a de And oid, como la explicada en es e abajo,
con una posible implemen ación en código Ja a.
In eg ación
: Como ya es de espe a un paso segu o es la in eg ación
del análisis en el ideojuego; es o conlle a conec a la pa e na i a de
And oid con
Uni y
que es la pla a o ma donde es a desa ollado el
ideojuego, o si los iempos a o ecen inco po a el u u o desa ollo
en Ja a del análisis con el ideojuego.
6.3. Valo ación pe sonal
La elabo ación de es e abajo ha pasado po di e en es e apas, unas más
ag adables y o as de peo es condiciones, si u iese que esumi odo el a-
bajo lo ha ía con algunas de las ases que es án po el abajo dado que
han sido muy signica i as pa a mí a la ho a de i elabo ándolo. El aba-
jo comenzó cuando me disponía a elegi que hace en ese momen o se me
p opuso ealiza un análisis de pis as de audio pa a saca el i mo y me e lo
6.3. Valo ación pe sonal 39
en un mó il. No sabia de música, no sabía de ondas, no sabía de And oid
pe o acep é el e o, es e es el mo i o po el que encabezo el abajo con la
ase de
F anklin D. Roose el
: Siemp e que e p egun en si puedes hace
un abajo, con es a que sí y pon e enseguida a ap ende cómo se hace.
Es oy e dade amen e con en o de habe llegado a un buen esul ado que
lo he podido ob ene g acias a odas las pe sonas mencionadas al p incipio
y a odo lo ap endido en ambas ca e as. In o má ica me ha enseñado a p o-
duci con cabeza y Ma emá icas a pe sis i an e lo desconocido o ex año,
apa e de los conocimien os eó icos.
El abajo con inuó con muchas dicul ades, y odo se io ma cado po la
ase de
San Agus ín
: Es mejo cojea po el camino que a anza a g andes
pasos ue a de él. Pues quien cojea en el camino, aunque a ance poco, se
ace ca a la me a, mien as que quien a ue a de él, cuan o más co e, más
se aleja. Aunque a eces apa ecía ue a del camino siemp e encon aba la
mane a de ol e a cojea den o de él.
Apéndice A
Código implemen ado
En odas las cosas, na u ales y humanas,
el o igen es lo más excelso.
Pla ón
Resumen:
Adjun amos en es e apéndice los a chi os de la imple-
men ación más impo an es del análisis y la aplicación, po si si en
de e e encia pa a u u os abajos.
A.1. In oducción
En es e apéndice se inco po a la implemen ación conc e a de la aplica-
ción And oid. Tal y como se desc ibe en la Sección 4.3 iene es pa es
di e enciadas. No se incluye la denición de los .h que ienen los p o o ipos
de las unciones dado que nos in e esa más los a chi os de la implemen ación
explíci a. En la Tabla A.1, podemos obse a el núme o de líneas de código
que se han esc i o pa a la aplicación.
Lenguaje A chi os Comen a ios Código
Cabece as C/C++ 1 0 19
C++ 1 10 168
C 1 0 18
Ja a 1 11 213
XML 4 0 126
SUMA: 8 21 544
Tabla A.1: Núme o de líneas de código de la aplicación And oid
41
48
Apéndice A.
Código implemen ado
195 }
A.3. Na i o
La pa e del análisis,
Bea De ec o .cpp
, es a esc i a en C++ pe o se
conec a con la aplicación po medio del a chi o
Na i e.c
que es a esc i o en
C. Apa e se incluye el a chi o
And oid.mk
pa a una co ec a compilación
de los a chi os. Todos es os a chi os deben i en la ca pe a
jni
del p oyec o.
A.3.1. Na i e.c
1
2
#include
<jni .h>
3
#include
"Bea De ec o .h"
4
5 JNIEXPORT jin A ay
6 JNICALL Ja a_com_ ike _mbd_MainAc i i y_Bea De ec ES(
7 JNIEn
∗
en , jobjec obj , js ing s )
8 {
9
cons cha
∗
pa h_c=(
∗
en )
−
>Ge S ingUTFCha s(en , s , 0);
10
unsigned in
leng h ;
11
in
∗
bea = Bea De ec o Ene gyS (pa h_c,&leng h ) ;
12
//alloca e
13 jin A ay ou = (
∗
en )
−
>NewIn A ay(en , leng h );
14
// copy
15 (
∗
en )
−
>Se In A ayRegion (en , ou , 0 , leng h , bea );
16
e u n
ou ;
17 }
18
19 JNIEXPORT jin A ay
20 JNICALL Ja a_com_ ike _mbd_MainAc i i y_Bea De ec FE(
21 JNIEn
∗
en , jobjec hisObj , js ing s )
22 {
23
cons cha
∗
pa h_c=(
∗
en )
−
>Ge S ingUTFCha s(en , s , 0);
24
unsigned in
leng h ;
25
in
∗
bea = Bea De ec o F equencyE (pa h_c,&leng h ) ;
26
// alloca e
27 jin A ay bea s = (
∗
en )
−
>NewIn A ay(en , leng h );
28
// copy
29 (
∗
en )
−
>Se In A ayRegion (en , bea s , 0 , leng h , bea );
30
e u n
bea s ;
31 }
A.3.2. Bea De ec o .cpp

A.3. Na i o 49
1
2
3
#include
"Bea De ec o .h"
4
5
unsigned in
ini _FMOD(
cons cha
∗
pa h ,
6
in
∗∗
Lda a ,
in
∗∗
Rda a){
7
unsigned in
leng h =100;
8 FMOD_SYSTEM
∗
sys em;
9 FMOD_SOUND
∗
music ;
10
11 FMOD_Sys em_C ea e(&sys em );
12 FMOD_Sys em_Ini (sys em , 1 , FMOD_INIT_NORMAL, NULL);
13
14 FMOD_Sys em_C ea eSound(sys em , pa h ,
15 FMOD_SOFTWARE | FMOD_2D , 0 , &music );
16
17 FMOD_Sound_Se LoopCoun (music ,
−
1);
18 FMOD_Sound_Ge Leng h(music , &leng h , FMOD_TIMEUNIT_PCM);
19
20
oid
∗
p 1 ;
21
oid
∗
p 2 ;
22
unsigned in
leng h1;
23
unsigned in
leng h2;
24
∗
Lda a =
new in
[ leng h ] ;
25
∗
Rda a =
new in
[ leng h ] ;
26
27 FMOD_Sound_Lock(music , 0 , leng h ,
28 &p 1 , &p 2 , &leng h1 , &leng h2 );
29
o
(
in
i=0 ; i<leng h ; i++)
30 {
31 (
∗
Lda a )[ i ] = ((
in
∗
) p 1 )[ i ]>>16;
32 (
∗
Rda a )[ i ] = (((
in
∗
) p 1 )[ i ]<<16)>>16;
33 }
34 FMOD_Sound_Unlock(music , p 1 , p 2 , leng h1 , leng h2 );
35
36 FMOD_Sys em_Release( sys em );
37
e u n
leng h /1024;
38 }
39
40
in
∗
Bea De ec o Ene gyS(
cons cha
∗
pa h ,
41
unsigned in
∗
len ){
42
in
∗
Lda a ;
43
in
∗
Rda a ;
44
in
∗
bea ;
45
unsigned in
leng h ;
46 leng h = ini _FMOD(pa h,&Lda a,&Rda a );
47
∗
len = leng h ;
48 bea =
new in
[ leng h ] ;
49
loa
∗
ene gia =
new loa
[ leng h ] ;
50
Apéndice A.
Código implemen ado
50
o
(
in
i = 0; i < leng h ; i++)
51 ene gia [ i ] = ene giaES (Lda a , Rda a ,
52 1024
∗
i , 4096 , leng h );
53 p ocess ( ene gia , bea , leng h );
54
dele e
ene gia ;
55
e u n
bea ;
56 }
57
58
in
∗
Bea De ec o F equencyE(
cons cha
∗
pa h ,
59
unsigned in
∗
len ){
60
in
∗
Lda a ;
61
in
∗
Rda a ;
62
in
∗
bea ;
63
unsigned in
leng h ;
64 leng h = ini _FMOD(pa h,&Lda a,&Rda a );
65
∗
len = leng h ;
66 bea =
new in
[ leng h ] ;
67
loa
∗∗
ene gy =
new loa
∗
[ leng h ] ;
// [N_BANDS] ;
68
loa
∗
ene gia =
new loa
[ leng h ] ;
69
in
∗
bea 2 ;
70 bea 2 =
new in
[ leng h ] ;
71
o
(
in
i = 0; i < leng h ; i++){
72 ene gy [ i ] =
new loa
[N_BANDS] ;
73 ene gy [ i ] = ene giaFE (Lda a , Rda a ,
74 1024
∗
i , 1024 , leng h );
75 }
76
in
∗
cuen a ;
77 cuen a =
new in
[ leng h ] ;
78
o
(
in
i = 0; i < N_BANDS; i++){
79
o
(
in
j = 0; j < leng h ; j++){
80 ene gia [ j ] = ene gy [ j ] [ i ] ;
81 }
82 p ocess ( ene gia , bea 2 , leng h );
83
o
(
in
j = 0; j < leng h ; j++){
84
dele e
ene gy [ j ] ;
85
i
( i == 0) cuen a [ j ] = 0;
86 cuen a [ j ] = bea 2 [ j ] ? cuen a [ j ]+1: cuen a [ j ] ;
87 }
88 }
89
in
las =
−
1;
90
o
(
in
i = 0; i < leng h ; i++){
91
i
( las +0<i && cuen a [ i ] > N_BANDS
∗
0.5){
92 bea [ i ] = cuen a [ i ] ;
93 las = i ;
94 }
95 }
96
dele e
ene gia ;
97
dele e
cuen a ;
98
dele e
ene gy;
A.3. Na i o 51
99
e u n
bea ;
100 }
101
102
loa
∗
ene giaFE(
in
∗
le ,
in
∗
igh ,
103
in
o se ,
in
window ,
in
leng h ){
104 complex
∗
_in;
105 complex
∗
_ou ;
106
loa
ene gia =0. ;
107
loa
∗
B ;
108
in
j = 0;
109 _in =
new s uc
complex_ [ window ] ;
110 B =
new loa
[ window ] ;
111
112
// C eamos los complejos pa a FFT
113
o
(
in
i=o se ; ( i<o se +window)&&(i<leng h ) ; i++){
114 _in [ j ] . e = (
double
) l e [ i ] ;
115 _in [ j ] . im = (
double
) igh [ i ] ;
116 j++;
117 }
118
119 _ou = FFT_simple( _in , window );
120
121
// B iene las ampli udes
122
o
(
in
j =0; j<window ; j++)
123 B[ j ] = complex_magni ude( _ou [ j ] ) ;
124
loa
∗
ene gy;
125 ene gy =
new loa
[N_BANDS] ;
126
//calculamos la ene gia de cada banda
127
o
(
in
j =0; j<N_BANDS; j++){
128 ene gia = 0. ;
129
o
(
in
k=0; k<window/N_BANDS; k++)
130 ene gia += B[ j
∗
N_BANDS+k ] ;
131 ene gy [ j ] = ene gia ;
132 }
133
//No dejamos leaks de memo ia
134
dele e
_in;
135
dele e
_ou ;
136
dele e
B;
137
e u n
ene gy;
138 }
139
140
loa
ene giaES(
in
∗
le ,
in
∗
igh ,
141
in
o se ,
in
window ,
in
leng h ){
142
loa
ene gia =0. ;
143
o
(
in
i=o se ; ( i<o se +window)&&(i<leng h ) ; i++)
144 ene gia += ( l e [ i ]
∗
l e [ i ]+ igh [ i ]
∗
igh [ i ] ) ;
145 ene gia = ene gia
∗
1.0/window ;
146
e u n
ene gia ;
147 }
52
Apéndice A.
Código implemen ado
148
149
oid
calculoMedia(
loa
∗
ene gia ,
loa
∗
media ,
150
in
leng h ){
151
loa
suma_43=0. ;
152
// Inicia cálculo de las medias
153
o
(
in
i=0 ; i <43 ; i++){
154 suma_43 = suma_43 + ene gia [ i ] ;
155 media [ i ]=suma_43/43.0;
156 }
157
// pa a los demás
158
o
(
in
i=43 ; i<leng h ; i++){
159 suma_43 = suma_43
−
ene gia [ i
−
43] + ene gia [ i ] ;
160 media [ i ] = suma_43/43.0;
161 }
162 }
163
164
oid
calculoVa ianza(
loa
∗
ene gia ,
loa
∗
media ,
165
loa
∗
a ianza ,
in
leng h ){
166
loa
suma_43 = 0. ;
167
// Inicia cálculo de las a ianza
168
o
(
in
i=0 ; i <43 ; i++){
169 suma_43 +=(ene gia [ i ]
−
media [ i ])
∗
( ene gia [ i ]
−
media [ i ] ) ;
170 a ianza [ i ]=suma_43/43.0;
171 }
172
// pa a los demás
173
o
(
in
i=43 ; i<leng h /1024 ; i++){
174 suma_43
−
= ( ene gia [ i
−
43]
−
media [ i
−
43])
175
∗
( ene gia [ i
−
43]
−
media [ i
−
43]);
176 suma_43 +=(ene gia [ i ]
−
media [ i ])
∗
( ene gia [ i ]
−
media [ i ] ) ;
177 a ianza [ i ] = suma_43/43.0;
178 }
179 }
180
181
oid
no maliza (
loa
∗
signal ,
in
size ,
loa
max_ al){
182
loa
max=0. , aux = 0. ;
183
o
(
in
i=0 ; i<size ; i++){
184 aux = signal [ i ]>0? signal [ i ]:(
−
1)
∗
signal [ i ] ;
185
i
(aux>max) max=aux ;
186 }
187
loa
a io = max_ al/max;
188
o
(
in
i=0 ; i<size ; i++){
189 signal [ i ] = signal [ i ]
∗
a io;
190 }
191 }
192
193
oid
p ocess (
loa
∗
ene gia ,
in
∗
bea ,
in
leng h ){
194
loa
C = 1.4;
195
loa
∗
media =
new loa
[ leng h ] ;
196
loa
∗
a ianza =
new loa
[ leng h ] ;
A.3. Na i o 53
197 calculoMedia ( ene gia , media , leng h );
198 calculoVa ianza ( ene gia , media , a ianza , leng h );
199 no maliza ( a ianza , leng h ,200);
200
o
(
in
i=0 ; i<leng h ; i++){
201 C = (
−
0.0025714
∗
a ianza [ i ]) + 1.5142857 ;
202 bea [ i ] = ( ene gia [ i]>C
∗
media [ i ]) ? 1 : 0;
203 }
204 }
A.3.3. And oid.mk
1 LOCAL_PATH := $( call my
−
di )
2
3
4 include $(CLEAR_VARS)
5 LOCAL_MODULE := Bea De ec o
6 LOCAL_SRC_FILES := Bea De ec o . cpp
7 LOCAL_SHARED_LIBRARIES := modex complex_simple
8 include $(BUILD_SHARED_LIBRARY)
9
10 include $(CLEAR_VARS)
11 LOCAL_MODULE := Na i e
12 LOCAL_SRC_FILES := Na i e . c
13 LOCAL_STATIC_LIBRARIES := Bea De ec o
14 include $(BUILD_SHARED_LIBRARY)
15
16 include $(CLEAR_VARS)
17 LOCAL_MODULE :=
18 LOCAL_SRC_FILES := . cpp
19 LOCAL_SHARED_LIBRARIES := complex_simple
20 include $(BUILD_SHARED_LIBRARY)
21
22 include $(CLEAR_VARS)
23 LOCAL_MODULE := complex_simple
24 LOCAL_SRC_FILES := complex_simple . cpp
25 include $(BUILD_SHARED_LIBRARY)
26
27 include $(CLEAR_VARS)
28
29 LOCAL_MODULE := modex
30 LOCAL_SRC_FILES :=
31 .. / api/ lib /$(TARGET_ARCH_ABI)/ lib modex . so
32 LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../ api/inc
33
34 include $(PREBUILT_SHARED_LIBRARY)

Bibliog a ía
Y así, del mucho lee y del poco do mi ,
se le secó el celeb o de mane a que ino
a pe de el juicio.
Miguel de Ce an es Saa ed a
Ellis, D. P.
Bea acking by dynamic p og amming.
LabROSA, Columbia
Uni e si y, New Yo k
, 2007.
Gold, B.
,
Mo gan, N.
y
Ellis, D.
Speech and Audio Signal P ocessing
.
Jhon Wiley and Sons, INC., 2011.
Go o, M.
y
Mu aoka, Y.
A eal- ime bea acking sys em o audio
signals.
In e na ional Compu e Music Con e ence P oceedings
, 1995.
Liang, S.
The Ja a Na i e In e ace: P og amme 's Guide and Specica ion
.
Ve sión elec ónica, 1999.
Oli ei a, J. L.
,
Da ies, M. E. P.
,
Gouyon, F.
y
Reis, L. P.
Bea
acking o mul iple applica ions: A mul i-agen sys em a chi ec u e wi h
s a e eco e y. , 2010a.
Oli ei a, J. L.
,
Gouyon, F.
,
Ma ins, L. G.
y
Reis, L. P.
Ib : A eal-
ime empo and bea acking sys em.
In P oceedings o In e na ional
Socie y o Music In o ma ion Re ie al Con e ence (ISMIR)
, 2010b.
Pa in, F.
Bea De ec ion Algo i hms
. Ve sión elec ónica, 2003.
San iago, C. B.
,
Oli ei a, J. L.
,
Reis, L. P.
y
Sousa, A. J.
Au ono-
mous obo dancing synch onized o musical hy hmic s imuli.
Con e ence:
In o ma ion Sys ems and Technologies (CISTI)
, 2011.
55
Lis a de ac ónimos
3GP
...........
3 d Gene a ion Pa ne ship P ojec
API
...........
Applica ion P og amming In e ace
, In e az de p og ama-
ción de aplicaciones
BPM
..........
Bea s pe minu e
, pulsos po minu o
CFT
..........
Con inuous Fou ie T ans o m
, T ans o mada Con inua de
Fou ie
DFT
..........
Disc e e Fou ie T ans o m
, T ans o mada Disc e a de Fou-
ie
DVM
..........
Dal ik Vi ual Machine
, Máquina Vi ual de Dal ik
FFT
..........
Fas Fou ie T ans o m
, T ans o mada Rápida de Fou ie
IBT
...........
empo Induc ion and Bea T acke
, Inducción sob e el em-
po y seguimien o del pulso
JNI
...........
Ja a Na i e In e ace
, In e az pa a código na i o y Ja a
JVM
..........
Ja a Vi ual Machine
, Máquina Vi ual de Ja a
MARSYAS
...
Music Analysis, Re ie al and Syn hesis o Audio Signals
MIDI
.........
Musical Ins umen Digi al In e ace
, In e az Digi al de
Ins umen os Musicales
MP3
..........
MPEG Audio Laye III
NDK
..........
Na i e De elope Ki
, Ki de Desa ollo Na i o
PCM
..........
Pulse Code Modula ion
, Modulación po impusos codica-
dos
57