Escuela Politécnica Superior de Linares UNIVERSIDAD DE JAÉN Escuela Politécnica Superior de Linares Trabajo Fin de Grado ______ PROGRAMACIÓN DE HERRAMIENTAS DE AFINACIÓN DE INSTRUMENTOS PARA DISPOSITIVOS MÓVILES Alumno: Kaoutar El alga Tutor: Prof. D. Pedro Vera Candeas Depto.: Ingeniería de Telecomunicación Febrero, 2015 ÍNDICE DE CONTENIDOS 1. RESUMEN……………………………………………………………………………………5 2. INTRODUCCIÓN……………………………………………………………............………5 2.1. FÍSICA DEL SONIDO…………………..…………………………..…………….6 2.1.1. Modelado del sonido...............................................................................6 2.1.2. Percepción del sonido…………………………………………………….….7 2.1.3. Propiedades del sonido……………………………………………………...9 2.1.3.1. Tono o frecuencia……………………………………………………...9 2.1.3.2. Sonoridad……………………………………………………………….9 2.1.3.2. Timbre…………………………………………………………………...9 2.1.3.3. Sonoridad ………………………………………………………………9 2.1.3.4. Percepción de duración………………………………………………..9 2.1.3.5. Envolvente o articulación…………………………………………….10 2.1.3.6. Difusión…………………………………………………………………10 2.1.4. Ruido…………………………………..………………………………………11 2.2. TEORÍA MUSICAL…………………………………………..……………………..11 2.2.1. Tonalidad……………………………………………………………………...11 2.2.2. Escala cromática………………………………….………………………….12 2.3. AFINACIÓN……..…………………………………………..……………………..13 2.3.1. Historia…………………………………………………………………………13 2.3.2. Sistema de afinación………………………………….……………………...14 2.3.3. Afinador…………………………………………………………………………14 2.3.4. Creación del afinador ………………………………………………………..15 3. OBJETIVOS…………………………………………………………………………………..15 4. MATERIALES Y MÉTODOS………………………………………………………………..16 4.1. GUITARRA ELÉCTRICA………………………………………………………….16 4.1.1. Estructura…………….…………………………………………………………16 4.1.2. Funcionamiento…….………………………………………………………….17 4.2. MICRÓFONO DE AUDIO…………………………………………………………18 4.3. TARJETA DE SONIDO …….………………………………………………….... 18 4.4. TÉCNICAS PARA DETECCIÓN DEL PITCH………………………………......19 4.4.1. YIN………………………………………………………………………………19 4.5. PROGRAMA DESARROLLADO…………………………………………………23 4.5.1 Rango de operación……………………………….…………………………..26 4.5.2 Frecuencia de muestreo……………………………..………………………..27 4.5.3 Intervalos porcentuales de frecuencia….....…………………………..…….27 4.6. VISTA DE LA APLICACIÓN …………………………….……………………… 28 2 5. RESULTADOS Y DISCUSIÓN………………………………………………………………29 5.1. TRABAJO FINAL OBTENIDO……………………………………………………..29 5.2. LÍNEAS DE FUTURO………………………………………………………………30 6. CONCLUSIONES……………………………………………………………………………..30 6.1. CONCLUSIONES OBTENIDAS………………………………………………..…26 7. PLIEGO DE CONDICIONES……………………………………………………..………….31 7.1. Requisitos de la aplicación………………………………………………………...31 7.2. Características del dispositivo de desarrollo…………………………………….31 8. ANEXOS…………………………………………………………………………………….….35 8.1. ANEXO I. MANUAL DE USUARIO……………………………………………… 35 8.1.1 INSTRUCCIONES PARA AFINAR…………………………………………….36 8.2. ANEXO II. DOCUMENTACIÓN TÉCNICA……………………………………....40 8.3. ANEXO III. ÍNDICE DE FIGURAS Y DE TABLAS……………………………….50 9. REFERENCIAS BIBLIOGRÁFICAS………………………………………………………..52 3 4 1. RESUMEN El presente proyecto consiste en el diseño de un afinador digital para instrumentos musicales, a través el lenguaje C, que pueda ejecutarse en dispositivos móviles de Apple. A lo largo de esta memoria se explicara la naturaleza del sonido y su modelado matemático. Se incluye una breve teoría musical para preparar el ambiente lingüístico musical. Además, se dan a conocer algunos detalles sobre la afinación. Se describirán los componentes físicos necesarios para el afinador. En este caso, se entra en detalle con la guitarra eléctrica que dispone la Escuela Politécnica Superior de Linares, el micrófono y la tarjeta de sonido de la computadora, que convertirá la señal recibida en una señal digital. También se verá el estudio previo realizado, el desarrollo en sí de toda la aplicación con sus problemas y soluciones, un pliego de condiciones y finalmente las clases y métodos implementados para alcanzar el objetivo de este trabajo. 2. INTRODUCCIÓN El actuar diario de una persona se rige por la forma en que interpreta la gran cantidad y variedad de señales que recibe. Tales interpretaciones se ven afectadas por una gran serie de factores; pero principalmente, requieren que la persona tenga la capacidad para percibir óptimamente las señales, procesarlas rápidamente en su cerebro, discriminar las partes que no sean de interés, y luego tomar una decisión en base a los resultados. A veces, el cerebro no está lo suficientemente entrenado para trabajar en alguna actividad específica. O bien, puede que existan limitaciones físicas en la persona que no le permitan interpretar correctamente las señales necesarias para el desempeño de una tarea. Es allí donde se ve la necesidad de procesar señales por otros medios, más eficientes, para tomar decisiones más acertadas. Para ello, se utiliza comúnmente instrumental electrónico, que en su mayoría, incluyen un microprocesador. Estos pequeños dispositivos son el cerebro de cada aparato electrónico. Tienen la capacidad de realizar miles de operaciones matemáticas en una minúscula fracción de segundo. La invención de los microprocesadores permitió reducir enormemente el tamaño de los circuitos finales, que de cualquier otra forma hubieran complicado su implementación en plataformas con reducido espacio de trabajo. Como una aplicación moderna, y haciendo uso de una computadora, como cerebro para el procesamiento, se elaboró el diseño de un afinador digital para 5 instrumentos musicales para confirmar la superioridad de los sistemas digitales sobre los sistemas analógicos. 2.1. FÍSICA DEL SONIDO 2.1.1. Modelado del sonido Un ser humano percibe un sonido cuando el tímpano del oído es puesto en un movimiento característico denominado vibración. Esta vibración es causada por una fuente de sonido que hace pequeños cambios de presión en el aire para propagarse. Cuando un patrón de vibración se repite en intervalos de tiempo iguales se conoce como movimiento periódico. El intervalo de tiempo en el que el patrón de movimiento se repite es llamado período y es denotado por la letra griega tau (𝜏). Uno de los movimientos periódicos más simples de ejemplificar es el de un péndulo. Una característica del mismo es que puede ser representado como la proyección del movimiento de un círculo uniforme sobre un diámetro del círculo, como en la figura 1. A esta proyección se le conoce como movimiento armónico simple y también es llamado movimiento sinusoidal porque puede ser representado por una función trigonométrica llamado seno. Figura 1. Movimiento armónico simple. Algunas características del movimiento sinusoidal es que el tamaño de la onda está limitado por su amplitud, el intervalo en el que el movimiento circular se repite lo determina el período. Si el movimiento de la figura 1 comenzara en otro punto del círculo, habría una diferencia entre posiciones angulares. A la diferencia respecto del patrón se le 6 denomina fase del movimiento armónico simple, la cual se puede apreciar en la figura 2. Figura 2. Diferencia de fase entre dos movimientos armónicos. La importancia del movimiento sinusoidal es que cualquier forma de movimiento periódico puede ser descrita como la suma de vibraciones armónicas simples. 2.1.2. Percepción del sonido Una cantidad que es utilizada con mayor frecuencia que el periodo , es la frecuencia: 𝑓 = 1 𝜏 𝐻𝑧 1 La frecuencia representa el número de repeticiones de un patrón por unidad de tiempo y se mide en hercios (Hz). La razón por la que se prefiere utilizar el término frecuencia se debe a que un aumento de frecuencia es percibido por el humano como un aumento en la agudeza o altura del sonido. Una persona normal puede percibir frecuencias entre 20 y 15,000 Hz. Un sonido armónico simple con características constantes (frecuencia, amplitud y fase) es denominado como tono puro. La música no está hecha de tonos puros. Sin embargo, para llegar a comprender la manera en la que el ser humano percibe el sonido musical, es recomendable partir de los efectos que se acontecen dentro del oído producidos por tonos puros. En el oído interno se encuentra la membrana basilar, que tiene una longitud de 34 milímetros aproximadamente y alrededor de 30,000 unidades receptoras llamados cilios. 7 Los cilios son unos pelos minúsculos que entran en movimiento cada vez que una parte de la membrana vibra. Cuanto los cilios actúan, envían pequeñas señales eléctricas al nervio auditivo. Colectivamente, todo esto forma parte del sonido en nuestro cerebro. Las vibraciones en la membrana basilar están divididas de acuerdo a las frecuencias que componen el sonido que se percibe. Figura 3. Sensibilidad de la membrana basilar. En la figura 3, se muestra una gráfica posición (en mm) en la membrana basilar versus frecuencia. Se observa que casi dos tercios de la membrana perciben un rango de frecuencias de hasta 4000 Hz y el tercio restante, la gran porción de frecuencias restantes entre 4000 y 16,000 Hz. Las líneas discontinuas en la frecuencia parten de A3 es decir de 220 Hz y se van duplicando para A4, A5, etc. Como consecuencia, en la región de la membrana basilar la duplicación de frecuencia representa un desplazamiento constante sobre la sección de la membrana que percibe la frecuencia (eje vertical). Una relación como la anterior se describe como logarítmica. La percepción que tiene el oído humano respecto a pequeñas variaciones de una frecuencia dada depende de la frecuencia. Por ejemplo para un tono de 2000 Hz, la detección de algún cambio se da a partir de una diferencia de al menos 10 Hz, eso es un 0.5%. Pero para un tono de 100 Hz, la detección empieza ante una variación de al menos 3 Hz, que es un 3%. De lo anterior se hace la importante conclusión que la sensibilidad 8 del oído a cambios en frecuencia es mayor a bajas frecuencias. 2.1.3. Propiedades del sonido Existen 6 propiedades o atributos que pueden describir lo que un ser humano experimenta al escuchar un sonido. 2.1.3.1. Tono o frecuencia Se refiere a la rapidez de ocurrencia de las vibraciones que componen un tono. Cuando la frecuencia aumenta, también lo hace el tono. 2.1.3.2. Sonoridad Indica cuan fuerte o suave se escucha un sonido, y se refiere a la amplitud de la onda vibratoria. La cantidad de compresión que sucede en las moléculas de aire, cuando el sonido viaje a través de ellas, no implica la rapidez a la que se desplazan, sino cuanta energía está almacenada en ellas. 2.1.3.3. Timbre Se refiere a la calidad del sonido. Tanto como los instrumentos musicales y la voz humana producen sonidos que son ricos en vibraciones de diferente frecuencia y que son percibidos al mismo tiempo. La combinación de todas esas vibraciones, con diferentes amplitudes también, es lo que se percibe como timbre. Una forma sencilla de comprender este concepto es imaginar una flauta y la voz de una persona emitiendo un tono de la misma frecuencia. Fácilmente puede notarse la diferencia entre ambos sonidos. Colectivamente, el cerebro escucha lo anterior como un cambio en el color del sonido. El timbre es uno de los atributos del sonido más interesantes y complejos de comprender. Pero es en el timbre donde radica la naturaleza del diseño digital del sonido, pues tiene una gran facilidad para cambiar el color y el timbre del sonido rápidamente. Para hacer lo anterior en el mundo acústico, se tendría que cambiar algo del instrumento para cambiar el timbre. Gracias al diseño digital del sonido, la mayor parte de la música que actualmente escuchamos ha pasado por un proceso digital de refinación. Lo que la electrónica puede hacer, que es tan impresionante, es cambiar fácilmente los timbres sólo manipulando ciertos parámetros. 2.1.3.4. Percepción de duración La duración no es un elemento fijo, sino algo que se percibe. Un ser humano puede escuchar un sonido, proveniente de cualquier lado, que dura unas pocas milésimas de segundo, o bien, varios minutos. Cuando se habla de lo que se está experimentando, cualquiera puede decir que percibió un tiempo lento o un tiempo rápido. Si se escucha una canción, ¿cómo se determina si la canción tiene un ritmo lento o 9 rápido? Para ello, existe un punto estándar relativo, como referencia del tiempo, basado en los latidos del corazón. Los latidos del corazón rondan entre los 60, 70, y a veces hasta 80 latidos por minuto si es nervioso. Un sonido se percibirá como de tiempo rápido si va más rápido que los latidos y de tiempo lento, si va más lento. Así que cuando se habla de tiempo rápido y de tiempo lento, el reloj interno del cuerpo es el encargado de proveer la información. 2.1.3.5. Envolvente o articulación Muestra la forma del sonido en el dominio del tiempo basada en la forma en que se interpreta un instrumento musical, incluyendo a la voz humana. La articulación se refiere a lo que sucede en los primeros milisegundos de un sonido, y a la cantidad de energía que se aplica a la nota. Por ejemplo, con un violín se puede aplicar una gran cantidad de energía al tocar una nota, si se ejerce una presión inicial mayor con el arco sobre la cuerda. Luego, se libera la mayor parte de la presión haciendo que el sonido se estabilice hasta que suavemente desaparece. Con un piano, la articulación es diferente, pues inicialmente se escucha un martillazo, y luego, la nota que suavemente desaparece. Así, el piano tiene una articulación percusiva, que gráficamente, representa un impulso inmediato. La envolvente es importante para el diseño digital del sonido. Pues conociendo las envolventes de cada instrumento, se pueden imitar los mismos. Y entonces, por medio de una computadora, se puede tener todos los instrumentos musicales. 2.1.3.6. Difusión Se refiere a capacidad del cerebro para localizar espacialmente la fuente de un sonido. El cerebro tiene la capacidad de procesar simultáneamente múltiples sonidos de diferentes fuentes y, ubicar espacialmente los mismos consciente o inconscientemente. Por ejemplo, si se está en la calle hablando con un amigo, uno le pone mayor atención a la conversación. Cuando se llega a una intersección, inconscientemente se procesan sonidos de ciertos automóviles provenientes de ciertas direcciones. Y en ése momento, se está teniendo la conversación, se están ubicando las fuentes de sonido de los coches, y se está determinando si los mismos se están acercando o alejando. La difusión es un atributo importante en el diseño digital del sonido, por ejemplo, cuando se está escuchando una película en el cine. La experiencia auditiva resulta ser más real en el cine por que el sonido proviene de diferentes fuentes. Esto hace que una persona sienta que forma parte de la acción, y que sienta que forma parte de la película. Aquí, el sonido es representado por una configuración de canales (2.1, 5.1, 7.1). Una configuración 5.1 implica la existencia de 5 fuentes de sonido; y una de 2.1, sólo 2 fuentes. Ésta última configuración es mejor conocida como sonido estéreo. 10 2.1.4 . Ruido El Ruido en la música es una sensación frecuentemente desagradable, producida por movimientos aperiódicos (irregulares), de altura impresa y proveniencia incierta. La mayoría de los instrumentos musicales producen tanto Sonidos como Ruidos; desde luego la intensidad de estos últimos es muy pequeña comparada con la de los primeros, pero contribuyen a caracterizarlos. El concepto anterior da a conocer que en ciertos casos el ruido hace parte de la naturaleza propia de la señal y que hace posible siempre asociarlo a un sonido o una referencia. Por ende desde el punto de vista de ingeniería el ruido como una señal eléctrica no deseada requiere de análisis para su discriminación. 2.2. TEORÍA MUSICAL Existen muchas formas de definir la música, pero se puede decir que es el arte de ordenar los sonidos con el fin de crear una determinada emoción en el oyente. Los sonidos musicales se representan por una serie de símbolos y nomenclaturas llamados notas musicales. Las notas que forman el sistema musical occidental se representan con las palabras o notas: Do, Re, Mi, Fa, Sol, La, Si. En los países de habla inglesa, se emplean letras del alfabeto: C, D, E, F, G, A, B. La C corresponde al Do; la D, al Re y así sucesivamente. 2.2.1. Tonalidad La tonalidad se define a un conjunto de sonidos, cuyo funcionamiento está regido por un sonido principal llamado tónica. La tonalidad se basa en siete sonidos llamados grados y que se corresponden con los siete nombres de las notas. Para definir la tonalidad de cada nota, desde las más bajas a las más altas, el sistema de nombres se repite. Después de cualquier Si viene otro Do. La distancia entre una nota y la siguiente del mismo nombre (por arriba o por abajo) se llama octava. Dos notas separadas por una octava suenan igual pero tienen diferentes tonalidades una es más alta que la otra. Éste es un fenómeno natural, basado en que ambas notas están en una proporción de 2:1. La mejor referencia visual del sistema musical occidental se puede encontrar en el teclado del piano, (ver figura 4). Las siete notas antes descritas están representadas por las teclas blancas. Sin embargo, en el intervalo de las teclas blancas también hay cinco teclas negras. Se nombran en relación con la nota blanca más próxima. Así, la nota de la tecla negra situada entre Do y Re se llama Do sostenido (Do alto) o Re bemol (Re bajo). 11 Figura 4. Una octava en el teclado del piano. Estas notas que pueden recibir dos nombres se llaman enarmónicas y el contexto en que se usan es lo que determina cual nombre es el apropiado. Para indicar que una nota es sostenida se utiliza el símbolo numeral # y para cuando es bemol, la letra b minúscula. 2.2.2. Escala cromática Una escala es una serie consecutiva de notas que forman una progresión entre una nota y su octava. La escala puede ir hacia arriba o hacia abajo, subiendo o bajando una octava. Cualquier escala se puede distinguir de las demás por su diseño de escalones o grados, es decir, por el modo en que las notas dividen la distancia representado por la octava. El intervalo entre la nota de una tecla blanca y la de la tecla negra siguiente es un semitono. Dos semitonos son igual a un tono. Si se observa el teclado, se verá que entre el Si y el Do y entre el Mi y el Fa no hay tecla negra. Esto se debe a que la octava de siete notas no está realmente dividida en intervalos iguales. Del Si al Do y del Mi al Fa hay semitonos, no tonos enteros. Si se cuentan ascendentemente los semitonos desde el Do hasta el próximo Do se contabilizarán 12 semitonos iguales en una octava, de donde se construye la escala cromática que forma la base de la música occidental. Para hacer que todos semitonos sean iguales se tiene una única solución: la distancia musical entre cada una de las notas vecinas debe ser igual a la raíz doceava de 2, o sea, 2 ! !" . El uso de la base dos se debe a la existente proporción 2:1, antes mencionada, entre dos notas del mismo nombre pero con una octava de separación. Con lo anterior, se puede calcular la frecuencia de cada nota en la escala cromática dado el número de semitonos que la separan de la nota La en la tercera octava. Para ello, se 12 utiliza la siguiente ecuación: 𝑓 = 2 ! !" . 440 𝐻𝑧 2 Donde n es el número de semitonos de separación, n toma un valor negativo cuando la nota está por debajo. Si se observa en la ecuación, cada doce semitonos se obtiene un entero, que indica que la nota La está en otra octava, superior o inferior. Para el uso con el estándar MIDI una asignación de frecuencias se define como: 𝑝 = 69 + 12 . 𝑙𝑜𝑔! 𝑓 440 (3) donde p es el número de nota MIDI. 2.3. AFINACIÓN 2.3.1. Historia En la música para fijar la altura o frecuencia de los sonidos han sido creados diversos sistemas de índices acústicos que consisten en ordenar todos los sonidos en sentido ascendente y atribuir a cada nota un subíndice acústico propio u otra señal convencional que se conserva para todas las notas de la octava siguiente : Figura 5. Subíndices Acústicos. Es un habito afinar las orquestas y los instrumentos en general tomando como base la afinación del 𝐿𝐴! esta afinación ha variado considerablemente a través de la historia, desde 373 ciclos (observado por Mersenne en 1648) hasta 461 ciclos durante el siglo XIX en Norteamérica. En el siglo XVII, el desorden en lo referente a la afinación del 𝐿𝐴! era tal, que se afinaba a distinta altura, según se ejecutara música sagrada (Chorton) o profana (Kammerton). La tendencia general de la afinación ha sido ascendente, buscando el brillo que trae consigo el ascenso, pero desde fines del siglo pasado este ascenso ha sido contenido y estabilizado, pues la altura excesiva perjudica el timbre de los instrumentos, volviéndolos estridentes. En Viena se reunió en 1885 un congreso que fijo la frecuencia del 𝐿𝐴! en 435 Hz, llamándose este LA, LA normal o internacional. Actualmente se utiliza el 𝐿𝐴! de 440 Hz, llamado LA brillante o de concierto, con el cual afinan casi todas las orquestas de 13 importancia, establecido esto por una convención internacional reunida en Londres en 1939, y que fue definitivamente adoptada en 1953 por el “Congreso Técnico Internacional de Acústica”. 2.3.2. Sistema de afinación En la música existen distintos sistemas de afinación natural, estos sistemas parten de cálculos matemáticos derivados de las proporciones naturales o intervalos naturales deducidos del fenómeno Físico – Armónico, existiendo básicamente tres sistemas: El sistema natural, El sistema temperado, y El sistema expresivo. Estos sistemas tienen un aspecto en común: la afinación de un conjunto de notas (por ejemplo, los grados de una escala) depende de la frecuencia base sobre la que se realice los cálculos. “El uso de frecuencias de referencia que varíen según nuestras necesidades es la causa de que se obtengan afinaciones relativas, lo que resulta un inconveniente, por ejemplo, para la modulación a tonos lejanos. La frecuencia, por ejemplo, de 𝑀𝐼! no es la misma cuando se calcula a partir de la serie armónica de 𝐷𝑂! que cuando se hace a partir de 𝐿𝐴! o de otro sonido fundamental” Con la invención del temperamento igual (de 12 sonidos) nacido de la contribución de teóricos como Bartolome Ramos Pareja (1440-1522), Francisco de Salinas (15131590), entre otros, se solventa este inconveniente. De acuerdo a los sistemas de afinación se pueden clasificar los instrumentos musicales, perteneciendo la guitarra eléctrica al sistema temperado, pues desde su fabricación se ha diseñado para que su afinación funcione bajo este sistema. Es por ello que los cambios de semitonos se vean representados en trastes los cuales a su vez siguen reglas matemáticas basadas en el temperamento para ser dispuestos a lo largo del diapasón. 2.3.3 Afinador Afinar es el proceso de ajustar el tono de un sonido hasta que coincida con una nota de referencia, momento en el que se considera afinado . Hay muchos factores que inciden de manera negativa en los instrumentos provocando su desafinación. Algunos instrumentos se desafinan por el paso del tiempo o por la obsolescencia, cuando su sonido no sea eficiente y como consecuencia tendrá que ser reparado. También los cambios en la temperatura y la humedad pueden afectar a algunos instrumentos sensibles. Cuando las temperaturas fluctúan, los instrumentos pueden dilatarse o contraerse. Asimismo, para instrumentos con cuerdas, dichas pueden llegar a estar desafinadas si las clavijas son golpeadas o ajustadas. 14 Con el fin de obtener notas afinadas, es de vital importancia contar con un excelente oído musical que permita diferenciar notas. Aquí nace la esencia de la aplicación desarrollada, que es permitir a personas inexpertas la posibilidad de afinar fácilmente su instrumento. 2.3.4 Creación del afinador Para la creación de un afinador capaz de analizar las notas provenientes de un micrófono incorporado, se ha realizado una serie de pasos los cuales son citados a continuación: • Creación del algoritmo encargado de captar sonido del micrófono y dibujarlo por pantalla. • Uso del algoritmo YIN encargado de estimar la frecuencia fundamental del sonido. • Diseño de las vistas que aparecen en la aplicación con sus correspondientes mensajes contextuales. • Unificación de los distintos módulos que componen la aplicación, sincronización de las hebras y depuración. 3. OBJETIVOS El objetivo de este proyecto es familiarizarse con el lenguaje de programación C y sistema operativo IOS para el desarrollo de un afinador para instrumentos musicales en dicha plataforma e implementación del algoritmo de estimación de la frecuencia fundamental del sonido para detectar las notas tocadas . Para conseguir lo citado se tiene que: • Conocer los fundamentos teóricos del proyecto. • Conocer la arquitectura del dispositivo en el que se pretende implementar. • Configurar el entorno de programación, así como las herramientas proporcionadas por la plataforma. • Utilizar un algoritmo de estimación de pitch . • Programar cada uno de los módulos que compone el proyecto. • Unir todos los módulos individuales para conseguir el correcto funcionamiento del programa . 15 4. MATERIALES Y MÉTODOS En este apartado se entra en detalle con los componentes físicos más importantes que hacen trabajar el afinador eficientemente y se darán explicaciones para su selección . Además, se incluyen las técnicas más relevantes investigadas en el ámbito de la estimación del pitch o frecuencia fundamental del sonido. Al final del capitulo se explica todo el desarrollo de la aplicación mostrando su correspondientes vista y diagrama de flujo. 4.1. GUITARRA ELÉCTRICA 4.1.1. Estructura La guitarra eléctrica en su estructura física está compuesta por (ver Figura 6): • Clavijas (TuningPegs): sirven para afinar la guitarra ajustando o desajustando cada una de las cuerdas. • Clavijero (Headstock): el clavijero es donde se encuentran instaladas las clavijas. • Trastes (Fingerboard and Frets): los trastes sirven para separar las notas, los cuales deben de estar a una medida específica. • Selector de pastillas o micrófono (Pick-up selector switch): sirve para activar o desactivar los distintos micrófonos de nuestra guitarra. • Control de tono y volumen: sirven para ajustar los tonos graves y agudos de nuestra guitarra. • Puente (Bridje): aquí se sostienen las cuerdas y se ajusta su altura con respecto al brazo para evitar sonidos molestos, este también es el soporte del VibratoArm. • Pastilla o micrófono (Pickups): estos son los responsables de captar las vibraciones de las cuerdas. • VibratoArm: se usa con el fin de modificar la tensión de las cuerdas momentáneamente para lograr diferentes sonidos. • Conector de cable (Output Jack): aquí se conecta el cable que va directo al amplificador, o a un pedal de distorsión. • Al conjunto de brazo y clavijero se le llama mástil y al resto cuerpo. 16 Figura 6. Elementos de una Guitarra Eléctrica Convencional. El modelo presentado corresponde al modelo básico más usado actualmente. Aunque existe una alta variedad de modelos, en esencia se caracterizan con la misma estructura presentada anteriormente. 4.1.2. Funcionamiento Una guitarra eléctrica utiliza el principio de inducción electromagnética para convertir las vibraciones de sus cuerdas de metal en señales eléctricas. El sonido de la guitarra se verá influido por la madera o el material empleado, la construcción del instrumento (trasteado, afinación, octavación), así como la calidad de sus pastillas. Dado que la señal generada es relativamente débil, esta se amplifica antes de enviarla a un altavoz. Esta señal de salida de la guitarra eléctrica puede ser fácilmente alterada mediante circuitos electrónicos para modificar algunos aspectos del sonido. A menudo, la señal se modifica con efectos como reverberación y la distorsión. Con el instrumento musical no hay elección compleja por hacer . Se ha elegido testear la aplicación con la guitarra eléctrica dado a la gran cantidad de octavos (rango de frecuencias) que es capaz de generar. 17 4.2. MICRÓFONO DE AUDIO El trabajo de un micrófono es el de tratar de capturar lo más fielmente posible el sonido de un instrumento. Pero también se puede utilizar para que caracterice el sonido final en una presentación. Así también, se puede usar un preamplificador para representar un sonido con mayor precisión o darle textura y dimensión. Los micrófonos de audio son sencillamente aquellos tipos de micrófonos que tienen características que permiten captar con fidelidad distintos rangos de frecuencia, audibles para el oído humano, además de permitir darle algún tipo de efecto. Para este estudio, se trabajó con el micrófono interno del dispositivo móvil . La lógica es sencilla, el objetivo principal en su elección es hacer funcionar el afinador con componentes sencillos. 4.3. TARJETA DE SONIDO También conocida como tarjeta de audio, la tarjeta de sonido es una tarjeta de expansión interna para computadoras que facilita la entrada y salida de señales de audio de y hacia una computadora bajo control de algún software específico. Su uso típico incluye aportar la componente de audio de aplicaciones multimedia tales como composición musical, edición de video o audio, presentaciones, entretenimiento, y proyección de video. Muchas usan un Conversor Digital Análogo (DAC), que convierte grabaciones o datos digitales generados en formato analógico. La salida es conectada a unas bocinas amplificadoras o a un dispositivo externo usando conexiones estándar, como un conector RCA, por ejemplo. La mayoría de tarjetas de sonido tiene una entrada de línea para una señal que proviene de una fuente que tiene niveles de voltaje superiores a los de un micrófono. La tarjeta puede digitalizar estas señales así como también transferir las muestras a una memoria principal donde un software puede escribirlas al disco duro para su almacenaje, edición, o posterior edición. Otro conector externo común es la del micrófono, para señales provenientes de un micrófono o de dispositivos de entrada de baja señal. Se utilizará la tarjeta de sonido interna del dispositivo móvil. Bien se podría utilizar una tarjeta de sonido dedicada de una computadora de escritorio, pero el dispositivo móvil servirá además, para representar una computadora con recursos limitados. 18 4.4. Técnicas de estimación del pitch. La estimación del pitch en señales monofónicas es un campo de investigación en el área de procesado de señal, que aunque ha dado muchos frutos, sigue siendo uno de los más activos y que requieren de un gran ingenio e innovación. En este proyecto se pretende realizar la estimación del pitch en el dominio del tiempo, aunque también se puede realizar en el dominio de la frecuencia con métodos muy fiables y efectivos. A continuación se va a comentar de manera breve el método YIN, desarrollado por Alain de Cheveigné y Hideki Kawahara [12] . 4.4.1. Yin Este método es en el que esta basado la parte más importante de procesamiento del afinador como se detallara posteriormente. El método comienza con el cálculo de la función autocorrelación, los siguientes pasos de dicho método surgirán para solucionar los problemas que presenta esta función y obtener resultados más precisos. A. Primer paso: Método de la autocorrelación. La autocorrelación de una señal discreta la podemos definir como: 𝑟! 𝜏 = !!! !!!!! 𝑥! · 𝑥!!! (4) donde 𝑟! (𝜏) es la función de autocorrelación en un intervalo (𝜏) en un tiempo t y con un tamaño de integración de ventana W. En procesado de señales es común utilizar una expresión derivada de la anterior: 𝑟!! 𝜏 = !!!!! !!!!! 𝑥! · 𝑥!!! 5 En esta expresión el tamaño de la ventana se reduce conforme van aumentando los valores de 𝜏, con un resultado que se refleja en el decremento de la envolvente como función de los intervalos. En la figura 7 se observa este efecto. 19 Figura 7. Ejemplo de la forma de onda de la voz hablada. Autocorrelación de acuerdo a la primera ecuación. Autocorrelación de acuerdo a la segunda ecuación. En respuesta a una señal periódica, la función de autocorrelación muestra picos en los múltiplos del periodo fundamental de dicha señal. El método de estimación de pitch mediante la autocorrelación escoge el pico de mayor altura para un intervalo no cero mediante una búsqueda en un rango de intervalos. Si el umbral inferior está muy cercano a cero, el algoritmo puede llegar a escoger el pico del valor cero, lo cual supondría un error. De la misma manera, si el umbral superior es demasiado grande, puede llegar a elegirse un pico situado en un múltiplo de la frecuencia fundamental, lo cual también sería un error. Si se atiende el resultado obtenido mediante la segunda expresión de la autocorrelación, el error por escoger un pico en un valor múltiplo del periodo no se podría dar, ya que al ir 20 decrementándose el valor de la envolvente, no va a haber ningún pico de mayor tamaño que el del verdadero periodo de la señal. Sin embargo, el error de escoger el pico cercano a cero no se soluciona tan fácilmente. B. Segundo paso: La función diferencia. Suponiendo que se trabaja con una señal 𝑥! que es una señal periódica de periodo T, por definición invariante para un desplazamiento temporal de T: 𝑥! − 𝑥!!! = 0 𝑝𝑎𝑟𝑎 𝑡𝑜𝑑𝑜 𝑡 (6) Lo mismo se cumple después de elevar al cuadrado dicha expresión y promediarla a lo largo de una ventana: !!! !!!!! 𝑥! − 𝑥!!! ! = 0 (7) Si esta suma se expresa como una función diferencia, y sus términos se expresan en relación con la función de autocorrelación, se obtiene la siguiente expresión: 𝑑! 𝜏 = 𝑟! 0 + 𝑟!!! 0 − 2𝑟! 𝜏 (8) Los dos primeros términos están relacionados con la energía. La función diferencia variaría de forma contraria a la función de autocorrelación, por lo que buscando los mínimos de la función diferencia se podrá identificar el periodo fundamental de la señal. Si se analizan los mínimos de la señal diferencia y se comparan con los máximos de la función de autocorrelación, no siempre coinciden, aunque el error que se comete utilizando la función diferencia es mucho menor que el que se comete utilizando la función autocorrelación. C. Tercer paso. Función diferencia normalizada de media acumulativa En la figura 7 se puede apreciar como la función diferencia toma el valor cero en el intervalo cero y valores muy cercanos a cero, pero no cero absoluto, en el periodo. Esto es debido a las imperfecciones en cuanto a periodicidad que presenta la función. A no ser que se proponga un umbral inferior a la hora de determinar el nulo que se desea tomar, el método siempre elegiría el mínimo en el intervalo cero. 21 Figura 8. Representación de la función diferencia y de la función diferencia normalizada de media acumulativa. El problema de fijar un umbral es el que se produce si por cualquier causa la frecuencia del primer formante presenta resonancia, lo cual llevaría a la función diferencia a marcar en dicho formante una caída más profunda que para el caso de la frecuencia fundamental. La solución propuesta es reemplazar la función diferencia por una función diferencia normalizada de media acumulativa. 𝑑!! 𝜏 = 1, 𝑠𝑖 𝜏 = 0 ! ! !! (!) , 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜 · !!!! !! (!) (9) Esta nueva función se obtiene de dividir cada valor anterior por una media ponderada de un intervalo reducido. La principal diferencia es que comienza en 1, por lo que no se tiene el problema de la elección del mínimo en T=0. 22 D. Cuarto paso. Umbrales absolutos. Una situación muy probable que se puede presentar es que la caída a una frecuencia múltiplo de la frecuencia fundamental sea más profunda que la caída del periodo. Si la caída de orden superior está incluida dentro del rango de inspección el algoritmo va a tomar una decisión errónea, lo cual se conoce como un error de octava. La solución que este método propone es fijar un umbral absoluto y escoger el valor mínimo de T que proporciona un valor 𝑑′ menor que el umbral fijado. Si ningún valor satisface la condición, se toma el mínimo global. E. Quinto paso. Interpolación parabólica. Todos los pasos anteriores funcionan si la estimación del periodo Cada mínimo local de la función diferencia normalizada junto con sus vecinos conforman una parábola, y la ordenada del mínimo interpolado se usa en el proceso de selección de la caída. La abscisa del mínimo seleccionado sirve para estimar el periodoera un múltiplo del periodo de muestreo. Si esto no es así, la estimación puede llegar a ser incorrecta hasta un valor la mitad del periodo de muestreo. Una solución para este problema es la interpolación parabólica.. La interpolación de la función diferencia o de la función diferencia normalizada es computacionalmente mucho más económica que sobre muestrear la señal. F. Sexto paso. Estimación del mejor local. A pesar de todo lo aplicado anteriormente, puede darse el caso en el que la estimación no se estable o que fluctúe alrededor del periodo fundamental. Para asegurarse de que el valor escogido es el mejor posible, este algoritmo propone un último paso, que se encarga de realizar una optimización global mediante técnicas de programación difusa con los valores pertenecientes a distintos intervalos cercanos al valor estimado en los pasos anteriores. 4.5. PROGRAMA DESARROLLADO Una vez que el instrumento musical emite un pulso mecánico, éste viaja a través del aire y es recibido por el micrófono que lo convierte en un pulso eléctrico analógico, idéntico al emitido, que se mezcla con el ruido del medio. La señal llega a la tarjeta de sonido de la computadora que lo convierte en una señal digital de acuerdo a las especificaciones dadas por el método audioIn (float * input, int bufferSize, int nChannels) en el cual se inicializa el algoritmo Yin.mm a 512 de tamaño de buffer y a 0.15 de umbral, 23 se hace un recorrido del buffer y posteriormente se pasan las muestras pares normalizadas al canal izquierdo y las impares al canal derecho. Cuando la información está almacenada en vector <float> left y vector <float> right correspondientes a los canales izquierdo y derecho, se mostrará por pantalla la señal almacenada a través de la función draw(). En esta última se definirá el escenario principal del entorno gráfico de este proyecto como se explicara en el apartado 4.6. Seguidamente se usa el método Yin_getPitch (Yin *yin,vector<float> buffer) para calcular la frecuencia fundamental F0 del pulso recibido. Para revisar este proceso, dicho método hace uso las siguientes funciones auxiliares : • Yin_difference(Yin *yin,vector<float>buffer) : Calcula la diferencia al cuadrado de la señal con una versión desplazada de sí misma. • Yin_cumulativeMeanNormalizedDifference(Yin *yin) : Calcula la media acumulada de la función anterior para su normalización. • Yin_absoluteThreshold(yin) : Comprueba si la muestra de mayor potencia en el dominio del tiempo supera el umbral YIN_DEFAULT_THRESHOLD determinado experimentalmente. En caso que no se supere, entonces el vector es descartado y se vuelve a tomar una nueva muestra de la señal recibida por el micrófono; el procedimiento se repite hasta que la señal recibida supere dicho umbral. Cuando se ha superado, se pasa la señal al dominio de la frecuencia donde se normaliza de nuevo. Una vez obtenida la F0, el programa indicará qué nota está más cercana a la señal recibida, cuál es la desviación porcentual estimada correspondiente y cuál es la escala. Para la presentación de estas informaciones en la interfaz gráfica de forma útil para el usuario, se emplearon algunas funciones de las librerías ofxUI y ofxGUI. En esta aplicación, se puede gestionar su función mediante el método keyPressed: se define la tecla ‘s’ para empezar la ejecución de esta aplicación, la tecla ‘e’ para la finalización y la tecla ‘ f ’ para la grabación. Todas las clases, métodos y variables mencionadas anteriormente están definidos en el segundo anexo de este proyecto, Documentación técnica. A continuación, se muestra en la figura 9 el diagrama de flujo que representa la lógica de la actividad que conforma el programa desarrollado 24 Figura 9. Diagrama de flujo de la aplicación 25 Si se analiza esta actividad desde el punto de vista mas técnico, se debe de explicar el esquema de sincronización utilizado entre tres hebras : • Hebra encargada de capturar audio. • Hebra encargada de calcular la F0 mediante el método YIN, de definir lo que se debe dibujar por pantalla. • La hebra de la interfaz de usuario encargada de gestionar la aplicación mediante las teclas ‘s’ , ‘f’ y ‘e’. La información que se intercambia en las diferentes hebras se representa en la figura 10 . Figura 10. Sincronización de las hebras principales En esta representación temporal se puede ver que al ejecutar la aplicación se lanza primero la hebra de la interfaz de usuario que a su vez lanza una segunda hebra para la captura de audio. Esta ultima recibe 512 muestras cada 22,68 microsegundos y luego envía la señal recibida a la hebra grafica para calcular la frecuencia fundamental del pulso. A partir de aquí se obtiene el resto de los parámetros : desviación, nota en MIDI y escala; se actualiza la hebra UI y finalmente se dibujan por pantalla los resultados. Este ciclo se repite continuamente hasta que la aplicación se detiene. Las características y procedimientos más importantes se describen con mayor detalle en el resto de secciones. 4.5.1 Rango de operación El rango de operación es el rango de frecuencias sobre las cuales el sonido puede ser detectado por la aplicación y está limitado en nuestro caso de 172 Hz a 44100 Hz como indica el siguiente apartado. Esta información es necesaria para conocer las 26 características del afinador desarrollado y entender su comportamiento. 4.5.2 Frecuencia de muestreo En la aplicación , para el cálculo de la frecuencia fundamental de las notas tocadas, se empleó el método YIN que consiste en una realización de búsqueda de los múltiples periodos de la señal recibida haciendo uso la formula (7) . Se eligió un valor de frecuencia de muestreo fs de 44100 Hz para dos razones : La primera es que limita el rango frecuencial del afinador en 𝑓!"# = ! !!"# = !.!! ! = !.!!"## !"# = 172,11 𝐻𝑧 , donde N= 512 muestras y en 𝑓!"# = 𝑓 ! = 44100 𝐻𝑧. La segunda razón es que este valor permite obtener mejor resolución para los sucesivos periodos estimados por el algoritmo. 4.5.3 Intervalos porcentuales de frecuencia Para la desviación porcentual de cada nota musical se utilizaron 5 intervalos ilustrados en la siguiente figura . Se puede ver que los intervalos no son de igual tamaño. Eso se debe a que la distancia entre las notas aumenta entre notas consecutivas de mayor frecuencia. Si la frecuencia percibida está en un intervalo porcentual de -30% a 50%, o sea, por debajo de la frecuencia central de la nota más cercana, entonces se considera que está desviada -40% de esa nota. Figura 11. División porcentual de una nota musical en el espectro. Para definir la desviación de la nota que esté sonando con respecto a su afinación óptima definitiva, se utilizó la ecuación con la se obtienen las notas MIDI, pero con una pequeña modificación indicada a continuación : 27 𝑝 − 9 = 69 + 12. 𝑙𝑜𝑔! 𝑓 440 (11) desviación = 𝑝 − 9 − 𝑟𝑜𝑢𝑛𝑑(𝑝 − 9) (12) Ahora la ecuación(12) representa la desviación porcentual para cada nota. 4.6. VISTA DE LA APLICACIÓN Este apartado explica el aspecto grafico de la interfaz que contiene la aplicación. Pantalla principal : Es la pantalla que aparece nada más ejecutar la aplicación. Como se puede observar en la imagen insertada debajo de este párrafo aparece: El menú en la parte izquierda donde el usuario puede elegir el color de fondo de la pantalla y ver los parámetros que puede calcular el afinador ;en la parte del medio aparece deslizante que indica el nombre de la nota tocada ( se ha elegido nombrar las notas con las letras C, D , E, F, G, A, B ). Y finalmente, en la parte derecha se pueden observar los valores de los parámetros como por ejemplo la desviación , la nota en MIDI, la escala y el pitch. Además , la aplicación indica con un mensaje en verde si la nota está afinada o en rojo si está desafinada. Esta opción ayudará a los usuarios afinar su instrumento musical rápidamente . Los dos canales que aparecen en la parte inferior de la pantalla corresponden a los canales de sonido y muestran la forma de onda del éste. También existen las siguientes opciones : • Guardar sonido presionando la tecla ‘f’ • Capturar sonido presionando la tecla ‘s’ • Detener la grabación presionando la tecla ‘e’ . 28 Figura 12. Pantalla principal de la aplicación. 5. RESULTADOS Y DISCUSIÓN 5.1. TRABAJO FINAL OBTENIDO El trabajo final obtenido es un simulador de oído que indica, con suficiente precisión, si las notas tocadas están afinadas o desafinadas. Se puso este trabajo a prueba para verificar su rendimiento. Para ello, se utilizó la herramienta de instrumentos incluida en el compilador Xcode y se llegó a la conclusión de que el elevado porcentaje dado por la unidad central del procesador CPU y el alto consumo de batería significan que la aplicación requiere mucha energía para la realización de una gran cantidad de operaciones aritméticas y lógicas. Otra información a incluir sobre la eficacia del programa es que de manera experimental nuestro sistema de afinación opera en entre 172 Hz y 1200 Hz que es el rango de funcionamiento de la guitarra eléctrica. 29 5.2. LÍNEAS DE FUTURO El trabajo fin de grado desarrollado se puede complementar con diferentes ideas surgidas durante la implementación de la aplicación de afinador de instrumentos musicales para dispositivos móviles. A continuación se citan algunas de estos ideas interesantes la cuales pueden ser incluidas para futuros trabajos fin de grado. • Historial de errores. • Estadísticas. • Afinación micro tonal. • Exhibición de altura del sonido . • Pantalla de osciloscopio para calibrar la afinación. • Invento de afinaciones personalizadas. • Automatización del proceso de afinación para minimizar la intervención humana. 6. CONCLUCIONES 6.1. CONCLUSIONES OBTENIDAS • El afinador digital es apto para ejecutarse en computadoras de Apple para cualquier tipo de hardware. Al funcionar aceptablemente en dispositivos móviles, como computadoras de bajos recursos, resulta evidente que funcionará en cualquier otra computadora con mejores características. Se percibieron muy pocas diferencias en el desempeño del afinador al utilizar una computadora de escritorio con un potente procesador. • Además de los factores comunes en el procesado digital de sonido, se dieron a conocer otros factores que se pueden aprovechar al utilizar el compilador Xcode y se demostró la facilidad con que se pueden ejecutar algoritmos que, en cualquier otro lenguaje, serían mucho más complicados de implementar o presentar similar eficiencia. • La sencillez de la interfaz gráfica elaborada para el afinador permitió que los usuarios, con distintos niveles de conocimiento de música, pudieran afinar cómodamente un instrumento musical en cuestión de minutos. 30 7. PLIEGO DE CONDICIONES 7.1. REQUISITOS DE LA APLICACIÓN El trabajo de fin de grado desarrollado, una aplicación de afinación llamada DIGITAL TUNER, necesita de una dispositivo móvil que soporte la plataforma Mac OS o IOS la cual debe de presentar una versión reciente de dicho sistema operativo para su correcto funcionamiento. Como se ha nombrado anteriormente, la aplicación ha sido probada a lo largo de todo el proceso en un Mac 10.9.5 , con una velocidad de CPU de 2,4 GHz , por lo que para computadoras con mayor procesador no debe existir ningún problema. No se ha podido probar para iPad o para iPhone con inferior CPU pero si ha sido probado en Xcode simulando una plataforma IOS y ha respondido correctamente. 7.2. CARACTERÍSTICAS DEL DISPOSITIVO DE DESARROLLO A continuación se muestran las características aportadas por el fabricante del dispositivo utilizado para la realización de todo el banco de pruebas durante el desarrollo de la aplicación. Se ha trabajado con un Mac OS 10.9.5 Dimensiones y peso Alto: 2,74 cm Ancho: 33,03 cm Fondo : 23,17 cm Peso: 2,13 kg Procesador y memoria • Core 2 Duo de Intel a 2,4 GHz con 3 MB de caché de nivel 2 compartida integrada • Bus frontal a 1.066 MHz • 2 GB de SDRAM DDR3 (en dos módulos SO-DIMM de 1 GB) a 1.066 MHz; dos ranuras SO-DIMM admiten hasta 4 GB Comunicaciones • Acceso a redes inalámbricas 802.11n con la AirPort Extreme2 compatibles con las 802.11a, b y g del IEEE 31 • Tecnología inalámbrica Bluetooth 2.1 + EDR (Enhanced Data Rate) integrada • Ethernet Gigabit 10/100/1000BASE-T (conector RJ-45) Rendimiento acústico Tabla 1.Emisiones acústicas declaradas en conformidad con la norma ISO 9296 • LWAd indica el nivel de potencia acústica ponderada A del límite superior estadístico (redondeado al 0,1 B más cercano). • LpAm indica el nivel medio de presión de sonido ponderada A calculado en la posición del operador (redondeado al dB más cercano). • 1 B (belio) = 10 dB (decibelio). Pantalla Pantalla panorámica brillante retroiluminada por LED de 13,3 pulgadas (en diagonal) capaz de reproducir millones de colores Resoluciones compatibles: 1.280 por 800 (nativa), 1.152 por 720, 1.024 por 768, 1.024 por 640, 800 por 600, 800 por 500, 720 por 480 y 640 por 480 píxeles a una relación dimensional de 16:10; 1.024 por 768, 800 por 600 y 640 por 480 píxeles a una relación dimensional de 4:3; y 720 por 480 a una relación dimensional de 3:2 Gráficos y vídeo : • Procesador gráfico GeForce 320M de NVIDIA con 256 MB de SDRAM DDR3 compartida con la memoria principal3. • Escritorio ampliado y vídeo en espejo: admite simultáneamente la 32 resolución nativa completa en la pantalla integrada y hasta 2.560 por 1.600 píxeles en una pantalla externa, ambas con capacidad para millones de colores. • Cámara iSight • Puerto Mini DisplayPort Audio • Altavoces estéreo • Micrófono omnidireccional • Entrada de línea y de auriculares combinada (admite salida digital) • Compatibilidad con los auriculares estéreo con micrófono para el iPhone de Apple Conexiones y ampliación • Toma de corriente MagSafe • Puerto Ethernet Gigabit • Puerto Mini DisplayPort • Dos puertos USB 2.0 (hasta 480 Mb/s) • Entrada/salida de audio • Ranura de seguridad Kensington Almacenamiento • Disco duro Serial ATA de 250 GB a 5.400 rpm; disco opcional de 320 o 500 GB a 5.400 rpm4 • SuperDrive a 8x de carga por ranura (DVD±R DL [doble capa], DVD±RW y CD-RW) Velocidad máxima de grabación: DVD-R y DVD+R a 8x; DVD-R DL (doble capa), DVD+R DL (doble capa), DVD-RW y DVD+RW a 4x; CDR a 24x; y CD-RW a 10x Velocidad máxima de lectura: DVD-R, DVD+R y DVD-ROM a 8x; DVD-ROM (DVD-9 de doble capa), DVD-R DL (doble capa), DVD+R DL (doble capa), DVD-RW y DVD+RW a 6x; y CD a 24x Batería y consumo • Hasta 10 horas de productividad inalámbrica • Batería de polímeros de litio de 63,5 vatios integrada 33 • Adaptador de corriente MagSafe de 60 vatios con sistema de recogida de cable • Toma de corriente MagSafe Requisitos eléctricos y de funcionamiento • Tensión: de 100 a 240 V de CA • Frecuencia: de 50 a 60 Hz • Temperatura de funcionamiento: de 10 a 35 °C • Temperatura de almacenamiento: de -24 a 45 °C • Humedad relativa: del 0 al 90 % sin condensación • Altitud máxima de funcionamiento: 3.000 m • Altitud máxima de almacenamiento: 4.500 m • Altitud máxima de transporte: 10.500 m 34 8. ANEXOS 8.1 ANEXO I. Manual de usuario Este manual explica al usuario como utilizar el programa de afinación para instrumentos musicales. No es necesario que el usuario sea un experto en música, es suficiente si conoce el nombre de las cuerdas si es un instrumento de cuerdas y el nombre de las teclas si es un instrumento de percusión . Descripción de las teclas ( key pressed ) : ‘s’ : Si se marcó, el afinador creara un fichero para guardar el sonido captado por el micrófono de la computadora . ‘f’ : Si se marcó, el afinador guardara los datos del sonido en el fichero creado anteriormente . ‘e’ : El funcionamiento del afinador y la grabación del sonido se detienen . Descripción de los Pitch Sliders: C : emite el tono de la nota Do C#: emite el tono de la nota Re b D : emite el tono de la nota Re D#: emite el tono de la nota Mi b E : emite el tono de la nota Mi F : emite el tono de la nota Fa F# : emite el tono de la nota Sol b G : emite el tono de la nota Sol G #: emite el tono de la nota La b A : emite el tono de la nota La A #: emite el tono de la nota Si b B : emite el tono de la nota Si Una vez iniciada la aplicación y recibida la pulsación del instrumento, el afinador mostrará en la pantalla la nota tocada en ese momento , la frecuencia ‘Pitch’ ,la interfaz digital de instrumentos musicales ‘MIDI’ , la escala y la desviación ‘ Deviation ’ indicando a que porcentaje se está de la nota indicada en la pantalla, puede ser un 20 o 40 por ciento sobre o por debajo de la misma. 35 El afinador también puede indicar si el instrumento esta desafinado o no , esta opción es muy útil para personas sin conocimientos sobre música. Si el afinador no detecta la nota, eso significa que: • La frecuencia recibida de mayor potencia es muy baja y no corresponde a ninguna nota musical. • La frecuencia recibida es muy alta o sólo está detectando ruido lo que se le puede atribuir a que la potencia recibida no es suficiente para ser detectada. En el último caso, se puede corregir si se acerca el micrófono al instrumento o viceversa. Puede ser también que el micrófono no esté funcionando. 8.1.1. INSTRUCCIONES PARA AFINAR : Se realizaron las pruebas sobre una guitarra eléctrica en diferentes estados concernientes a calidad en las clavijas y cuerdas. Las figuras 13, 14, 15, 16, 17 y 18 muestran el proceso realizado para la afinación del instrumento. Pasos : 1) Se enchufa la guitarra, luego se toca una cuerda y se observa la pantalla del afinador digital; si aparece el mensaje “ Tuned “ eso significa que la cuerda está afinada. Por tanto no hace falta ajustarla. Figura 13. Prueba de afinación de la sexta cuerda 36 Figura 14. Pantalla de afinador : Cuerda afinada 2) Si se toca la cuerda y se observa por pantalla el mensaje “ Detuned ” eso significa que se debe ajustar la afinación moviendo la clavija de la correspondiente cuerda . Figura 15. Prueba de afinación de la segunda cuerda 37 Figura 16. Pantalla de afinador : Cuerda desafinada Figura 17. Ajustes de la cuerda desafinada 38 Figura 18. Pantalla de afinador : Cuerda afinada después de ajustarla 3) Se repite este procedimiento para las seis cuerdas de la guitarra. 39 8.2. ANEXO II. Documentación técnica Files List Include/ofApp.h Implementation for DIGITAL TUNER app utilities Include /Yin.h Implementation of pitch extraction Src/ofApp.mm Implementation of DIGITAL TUNER app Src/Yin.mm Implementation of pitch extraction Src/main.mm Implementation of pitch extraction Yin.mm #include "iostream.h" #include <stdlib.h> #include "Yin.h" #include <math.h> #include <stdio.h> using namespace std; Functions void Yin_init(Yin *yin, float bufferSize, float threshold) Inicializa los campos de la estructura Yin . float Yin_getPitch(Yin *yin,vector<float> buffer) Ejecuta el algoritmo Yin encargado de calcular la frecuencia fundamental void Yin_difference(Yin *yin,vector<float>buffer) Paso 1 del método Yin : Calcula la diferencia al cuadrado de la señal con sí misma desplazada en el tiempo void Yin_cumulativeMeanNormalizedDifference(Yin *yin) Paso 2: Se calcula la media acumulada de la diferencia normalizada calculada en el paso 1 float Yin_absoluteThreshold(Yin *yin) 40 Paso 3: Realice una búsqueda entre la matriz media acumulada normalizada y devuelve valores que están por encima del umbral Detailed Description Implementation of pitch extraction. Author: Kaoutar El alga Definition in file yin.mm. Function Documentation Yin_init ( Yin *yin, float bufferSize, float threshold ) Inicializa los campos de la estructura Yin. Parameters: yin Yin objeto para inicializar el método de detección de pitch bufferSize Longitud del búfer de audio para analizar. threshold Umbral que permite la incertidumbre Yin_getPitch ( Yin *yin, vector<float> buffer) Ejecuta el algoritmo Yin . Parameters: yin Yin objeto para inicializar el método de detección de pitch buffer Vector para almacenar datos del sonido 41 Returns: Devuelve la frecuencia fundamental de la señal en Hz. Devuelve -1 si no se puede encontrar valores que están por encima del umbral . Yin_difference ( Yin *yin, vector<float>buffer ) Calcula la diferencia al cuadrado de la señal con sí misma desplazada en el tiempo para la mitad de las muestras. Parameters: yin Yin objeto para inicializar el método de detección de pitch buffer Vector donde almacenar datos del sonido Yin_cumulativeMeanNormalizedDifference(Yin *yin) Calcula la diferencia al cuadrado de la señal con sí misma desplazada en el tiempo para la mitad de las muestras. Parameters: yin Yin objeto para inicializar el método de detección de pitch Yin_absoluteThreshold (Yin *yin) Realice una búsqueda en la matriz media acumulada normalizada Parameters: yin Yin objeto para inicializar el método de detección de pitch Returns: Devuelve valores que están por encima del umbral predefinido. Implementation of pitch estimation Yin.h 42 #include "ofMain.h" #include <stdint.h> #include <fstream> Typedefs ypedef struct _Yin Yin Contiene todas las variables necesarias para detectar el pitch Defines YIN_SAMPLING_RATE Presenta el valor de la frecuencia de muestreo YIN_DEFAULT_THRESH Presenta el valor del umbral elegido Functions void Yin_init(Yin *yin, float bufferSize, float threshold) Inicializa los campos de la estructura Yin . float Yin_getPitch(Yin *yin,vector<float> buffer) Ejecuta el algoritmo Yin encargado de calcular la frecuencia fundamental del sonido Detailed Description Implementation of pitch estimation. Los pasos seguidos para la implementación del algoritmo Yin vienen explicados en : "YIN, a fundamental frequency estimator for speech and music". Alain de Cheveigné and Hideki Kawahara. Journal of the Acoustical Society of America, 111 (4), April 2002. [12] Definition in file yin.h. 43 Function Documentation Yin_init ( Yin *yin, float bufferSize, float threshold ) Inicializa los campos de la estructura Yin. Parameters: yin Yin objeto para inicializar el método de detección de pitch bufferSize Longitud del búfer de audio para analizar. threshold Umbral que permite la incertidumbre Yin_getPitch ( Yin *yin, vector<float> buffer) Ejecuta el algoritmo Yin . Parameters: yin Yin objeto para inicializar el método de detección de pitch buffer Vector para almacenar datos del sonido Implementation for DIGITAL TUNER app utilities #include "ofMain.h" #include <iostream.h> #include <stdlib.h> #include <stdint.h> #include "Yin.h" #include <fstream> #include "ofxUI.h" #include "ofxGui.h" 44 Variables float vector <float> left Vector para almacenar los datos provenientes del canal izquierdo float vector <float> right Vector para almacenar los datos provenientes del canal derecho int bufferCounter Cuenta las muestras del buffer FILE *file Puntero encargado de escribir los datos de los canals en un fichero Yin yin Se declara el objeto Yin float pitch Es la frecuencia fundamental en Hz float midi Es la frecuencia de la nota en MIDI ofSoundStream soundStream Controla y lee el sonido ofxUISperCanvas *gui, *gui1 Punteros para la interfaz , función de la librería ofxUI int escala Presenta la escala de la nota tocada Classes ofApp Hereda de la clase OfBaseApp Clase principal de la aplicación Methods void Setup ( ) Inicialización de las variables y de las funciones 45 void Update ( ) Actualización de las variables y de las funciones void Draw() Para dibujar void audioIn(float * input, int bufferSize, int nChannels) Analiza audio de entrada void threadedFunction() Se encarga de leer el mensaje AFINADO , DESAFINADO Detailed Description Implementation for DIGITAL TUNER app utilities. Function Documentation audioIn( float * input, int bufferSize, int nChannels) Método llamado cada vez que el sistema detecta sonido del micrófono Parameters: input Puntero a la matriz de datos bufferSize Tamaño del buffer nChannels Numero de canales de sonido frequencyComparison (float pitch) Compara las frecuencias de las notas musicales predefinadas y las notas musicales tocadas . Parameters: pitch Es el valor calculado por el método Yin 46 Implementation for DIGITAL TUNER app #include "ofApp.h" #include<unistd.h> #include <stdio.h> #include "Yin.h" #include <stdlib.h> #include "Note.h" using namespace std; Functions of setup () ofSetVerticalSync() Ayuda a dibujar suavizamente objetos ofBackground() Segun las coordenadas de RGB , asigna un color u otro a la pantalla left.asign() Inicializa el buffer del canal izquierdo right.asign() Inicializa el buffer del canal derecho soundStream.setup Se utiliza para obtener más acceso de bajo nivel en el búfer de sonido Functions of draw () ofDrawBitmapString Muestra por pantalla texto ofNoFill() Dibuja líneas ofPushStyle() Permite a los usuarios tener más control de ciertos elementos gráficos 47 ofPushMatrix() Guarda el sistema actual de coordenadas ofTranslate Modifica posiciones gráficas ofSetColor() Establece el color empate con r, g, b, 0-255. ofSetLineWidth() establece el ancho de las ofLines ofRect() Dibuja un rectángulo desde el punto x, y con una anchura y una altura dada. ofBeginShape() para empezar a dibujar una nueva forma Especifica un único punto de una forma. Para ser llamado entre ofVertex() ofEndShape() ofBeginShape y ofEndShape (). Indica al programa que su forma está terminado y que ahora debe elaborar a la pantalla ofPopMatrix() Restaura el sistema de coordenadas ofPopStyle(); Restaura los ajustes de estilo anteriores addSlider() Añadir deslizante, función de la librería ofxUI 48 setWidgetPosition() Establecer Widget Posición , función de la librería ofxGUI addSpacer() Añadir espacio, función de la librería ofxGUI addTextArea() Añadir espacio para texto , función de la librería ofxUI Functions of keyPressed () fopen() Abre un fichero Escribe datos fwrite() fclose() Cierra el fichero Functions Documentation audioIn( float * input, int bufferSize, int nChannels) Método llamado cada vez que el sistema detecta sonido del micrófono. Parameters: input Puntero a la matriz de datos bufferSize Tamaño del buffer nChannels Numero de canales de sonido 49 8.3. ANEXO III. Índice de figuras 1. Movimiento armónico simple ..................................................................................6 2. Diferencia de fase entre dos movimientos armónicos ...............................………..7 3. Sensibilidad de la membrana basilar......................................................................8 4. Una octava en el teclado del piano ...................................................................... 12 5. Elementos de una Guitarra Eléctrica Convencional...............................................13 6. Ejemplo de la forma de onda de la voz hablada……………………………………..17 7. Representación de la función diferencia y de la función diferencia normalizada de media acumulativa……………………………………………………20 8. Representación de la función diferencia y de la función diferencia normalizada de media acumulativa………………………………………………………………….….22 9. Diagrama de flujo de la aplicación………………………………..…………………...25 10. Sincronización de las hebras principales……………………………………………26 11. División porcentual de una nota musical en el espectro…………………………..27 12. Pantalla principal de la aplicación……………………………………………………29 13. Prueba de afinación de la sexta cuerda……………………………………………..36 14. Pantalla de afinador : Cuerda afinada………………………………………………..37 15. Prueba de afinación de la segunda cuerda…………………………………………..37 50 16. Pantalla de afinador : Cuerda desafinada…………………………………………...38 17. Ajustes de la cuerda desafinada………………………………………………………38 18. Pantalla de afinador : Cuerda afinada después de ajustarla………………………39 Índice de tablas 1.Emisiones acústicas declaradas en conformidad con la norma ISO 9296……….32 51 9. REFERENCIAS BIBLIOGRÁFICAS [1] EMSIA. Curso intensivo de sonido. España: Excen Cap, 2002. 10 p. [2] Constantino Pérez Vega. El sonido y audición. Universidad de Cantabria. [3] F.sicaBy Raymond A. Serway, Jerry S. Faughn, P.gina 444 capitulo 14 sonido. [4] Estructura y partes que componen una guitarra eléctrica. http://www.guitaracordes.com/cursoguitarra/3-Estructura_Guitarra.php [5] Juan Sebastián Guevara Sanin. Teoría de la música. 2010 [6] HERRERA, Enric. Teoría musical y armonía moderna Vol. I. España: Antoni Bosch, 2001.133 p. [7] ROEDERER, Juan G. The physics and psychophysics of music. New York: Springer Science, 2008. 228 p. [8] R. A. Rasch y R. Plomp (1982), Apuntes de "ThePerception of Musical Tones". http://www.eumus.edu.uy/docentes/jure/teoria/plomp/plomp.html [9] VOLKOV, Andrei. ¿Cómo se produce la música? [en línea] www.musicaperuana.com/espanol/mm.htm [10] Ciencia de afinar instrumentos musicales, http://es.get-tuned.com/ciencia-de-afinacion.php [11] http://openframeworks.cc/tutorials/ [12] Método YIN , http://www.cs.tut.fi/~digaudio/htyo/lahteet/2002_JASA_YIN.pdf [13] Start Developing Mac Apps Today , https://developer.apple.com [14] Interfaz de usuario , https:://www.syedrezaali.com/#/cinderui/ [15] BecomeAnXcoder 52 https://docs.google.com/file/d/0B82hpQT0csVQYmg4R1RqWjNkdEE/edit> [16] Professional C++ http://it-ebooks.info/book/769/ [17] Acústica Musical y Organología, Tirso de Olazabal . Buenos Aires, Argentina. 53