INSTITUTO POLIT´ECNICO NACIONAL ESCUELA SUPERIOR DE
Transcripción
INSTITUTO POLIT´ECNICO NACIONAL ESCUELA SUPERIOR DE
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Tesis que presenta Christofer Martı́nez López Para obtener el Tı́tulo de Ingeniero en Comunicaciones y Electrónica Especialidad de Acústica Director de la Tesis: Dr. Maximino Peña Guerrero Codirector: Ing. José de Jesús Negrete Redondo México, D.F. Junio de 2008 Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Trabajo de tesis que forma parte de los resultados obtenidos en nuestro proyecto de investigación: KSR: Sistema Digital de Reconocimiento de voz, con número de registro CGPI20071385 asignado por la Secretarı́a de Investigación y Posgrado del Instituto Politécnico Nacional. Dicho proyecto fue realizado durante el año del 2007 dentro de las instalaciones del Laboratorio de Acústica, y dirigido por el Dr. Maximino Peña Guerrero. — i — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI RESUMEN Desde tiempos pasados el hombre siempre ha tenido el afán de producir sonidos con cualquier cosa que tuviera a su alcance, incluso con su propio cuerpo; tiempo después diseñó los primeros instrumentos musicales y al avanzar la tecnologı́a, la instrumentación electrónica no fue la excepción. Se han creado muchas aplicaciones basadas en componentes electrónicos, desde analógicos hasta los digitales, para producir sonidos, teniendo como cumbre los sintetizadores digitales. Pero actualmente la posibilidad existente de los sintetizadores de sonidos esta limitada a la configuración que proveen las tarjetas de sonido (por ejemplo, la lı́nea Sound Blaster), no esta orientada a producir la voz de un solo instrumento, mucho menos conectarlos en red, lo que podrı́a derivar a la creación de una orquesta virtual. En esta tesis se presenta el diseño de un dispositivo capaz de producir la voz de un solo instrumento musical mediante la aplicación práctica de un operador FM y una interfaz programable. Este sistema requiere solamente una palabra de programación procedente de un controlador externo, con la cual interpreta los parámetros de tono, timbre(voz del instrumento), ataque, sostenimiento y decaimiento. Se pretende construir varios elementos con la capacidad de trabajar en red para que cada uno produzca solo una voz diferente por separado de tal forma que en el futuro sea posible construir una orquesta virtual. Para realizar las pruebas necesarias, se presenta el diseño del circuito electrónico digital basado en el operador FM tipo L3 (OPL3) que se podrá acoplar a un altavoz mediante un circuito conversor Digital - Analógico (YAC512) y un arreglo de amplificadores operacionales TL047. Este sistema puede adaptarse a cualquier tipo de salida de audio. Además existe la posibilidad de que dicho dispositivo llegue a ser controlado por un sistema externo que puede ser una PC o un piano MIDI. — ii — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Jacqueline López Ponce, por darme vida y sed de vivirla José Manuel Alejandro Martı́nez y González, por darme carácter Marco Antonio Martı́nez López, por enseñarme que todo es posible Ing. José de Jesús Negrete Redondo, por compartir su experiencia y conocimientos Dr. Maximino Peña Guerrero, por enseñarme la ventaja del trabajo duro Instituto Politécnico Nacional, por todo lo que nos brindas Dios. . . Gracias. — iii — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Todo lo que una persona puede llegar a imaginar, otra puede hacerlo realidad. Julio Verne A veces sentimos que lo que hacemos es una gota en el gran mar,pero el mar serı́a menos si le faltara una sola gota Madre Teresa de Calcúta — iv — Índice 1 Antecedentes y Problemática 1 2 Aspectos Generales de la Generación Automática de Sonido 7 2.1 Funciones Notables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.1 Función Senoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.2 Función Triangular . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.3 Función Diente de Sierra . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.4 Función Cuadrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Análisis Matemáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.1 Transformada de Laplace . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.2 Transformada Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.3 Análisis de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.4 Convolución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.5 Teorema de Nyquist . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3 Osciladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4 Conversores de Señales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 v Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 2.5 2.6 2.4.1 Conversor A/D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4.2 Conversor D/A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Sintetizadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.5.1 Sintetizadores Analógicos . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.5.2 Sintetizadores Digitales . . . . . . . . . . . . . . . . . . . . . . . . . . 22 MIDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3 Descripción del Componente OPL3 3.1 3.2 26 Arquitectura del circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.1.1 Control de Tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.1.2 Temporizador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.3 Control del Bus de Datos . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.4 Arreglo de Resgistros . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.5 Modulación en Amplitud, Vibrato . . . . . . . . . . . . . . . . . . . . 29 3.1.6 Generador de Fase (PG) . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.1.7 Generador de Envolvente ADSR . . . . . . . . . . . . . . . . . . . . . 30 3.1.8 Operador Principal OP . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.1.9 Acumuladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Funciones Principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.1 Reloj Maestro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.2 Interfase con PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.3 Interfase con DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 — vi — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 3.3 Mapa de Resgistro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.4 Organización de la Fuente de Señal FM . . . . . . . . . . . . . . . . . . . . . 35 3.5 Registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.6 Registros de Estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.7 Caracterı́sticas Eléctricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.8 Caracterı́sticas Fı́sicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.9 Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4 Diseño del Hardware 57 4.1 Sintetizador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.2 DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.3 Amplificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.4 Salida de Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.5 Fuente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.6 Diagrama de Conexiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.7 Interfaz a PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5 Pruebas y Resultados Obtenidos 68 5.1 Parámetros de Programación . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.2 Costo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6 Trabajos Futuros 87 — vii — Lista de Figuras 2.1 Especificación del Hardware MIDI . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2 Especificación del Software MIDI . . . . . . . . . . . . . . . . . . . . . . . . 25 3.1 Diagrama a bloques del sintetizador . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 Esquema fı́sico de Pines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.3 Regulación de tiempo de DAC . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.4 Mapa de Registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5 Organización de la fuente de Señal FM . . . . . . . . . . . . . . . . . . . . . 38 3.6 Envolvente con los valores de EGT . . . . . . . . . . . . . . . . . . . . . . . 42 3.7 Conexión con 2 operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.8 Conexión con 4 operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.9 Formas de Onda disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.10 Tiempo de Reloj de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.11 Pulso de Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.12 Tiempo de Direccionamiento/Escritura de datos . . . . . . . . . . . . . . . . 54 3.13 Tiempos en estado de Lectura . . . . . . . . . . . . . . . . . . . . . . . . . . 54 viii Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 3.14 Dimensiones del encapsulado tipo M . . . . . . . . . . . . . . . . . . . . . . 55 4.1 Diagrama a bloques de conexiones del sintetizador . . . . . . . . . . . . . . . 59 4.2 Conexión de los DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.3 Amplificadores de salida para el DAC . . . . . . . . . . . . . . . . . . . . . . 61 4.4 Retroalimentación para CV y MP . . . . . . . . . . . . . . . . . . . . . . . . 62 4.5 Retroalimentación para selecciópn de canales . . . . . . . . . . . . . . . . . . 62 4.6 Arreglo para la Salida de audio . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.7 Conexión de los componentes . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.8 Conexión con el puerto Paralelo . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.1 Tamaño comparativo de los componentes . . . . . . . . . . . . . . . . . . . . 69 5.2 Montaje del CI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.3 Red de capacitores contra ruido . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.4 Conectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.5 Ubicación fı́sica de los Conectores . . . . . . . . . . . . . . . . . . . . . . . . 72 5.6 Cable de alimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.7 Ubicación del cristal oscilador . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.8 Envolvente de un piano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.9 Envolvente de un violı́n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 — ix — Lista de Tablas 3.1 Configuración de Pines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2 Configuración del Bus de Control . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3 Selección de notas para NTS=0 . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.4 Selección de notas para NTS=1 . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.5 Valores para Rof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.6 Valores de Multiplicador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.7 Atenuación en función de KSL . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.8 Sonidos Rı́tmicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.9 Modulación de acuerdo a FB . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.10 Direcciones de CNT con 4 operadores . . . . . . . . . . . . . . . . . . . . . . 46 3.11 Asignación de canales en modo de Cuatro Operadores . . . . . . . . . . . . . 50 3.12 Banderas de Estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.13 Rendimiento Máximo Absoluto . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.14 Condiciones de Operación Recomendadas . . . . . . . . . . . . . . . . . . . . 51 3.15 Caracterı́sticas de CC (Condiciones: Ta=0∼70o C, VDD =5.0±0.25 V) . . . . 52 x Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 3.16 Caracterı́sticas de CA (Condiciones: Ta=0∼70o C, VDD =5.0±0.25 V) . . . . 52 4.1 Tabla general del puerto paralelo . . . . . . . . . . . . . . . . . . . . . . . . 65 5.1 Programación de los modos de operación . . . . . . . . . . . . . . . . . . . . 76 5.2 Especificación de parámetros generales de programación . . . . . . . . . . . . 76 5.3 Valores de los registros AR, DR, SL y RR para ambos sonidos . . . . . . . . 78 5.4 Parámetros para programar el sonido del piano . . . . . . . . . . . . . . . . 78 5.5 Parámetros para programar el sonido del violı́n . . . . . . . . . . . . . . . . 79 5.6 Frecuencia en Hz de Tonos puros . . . . . . . . . . . . . . . . . . . . . . . . 79 5.7 Valores de los registros en $AX y $BX para cada nota . . . . . . . . . . . . 80 5.8 Costo del prototipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 — xi — Capı́tulo 1 Antecedentes y Problemática Antes de 1877, año en que Edison inventó el fonógrafo, las melodı́as no podı́an ser preservadas más que en el papel de las partituras. Aunque originalmente Edison no pensó en que su invento pudiera ser usado para la música, él pensaba en la enseñanza de idiomas y aprendizaje para ciegos, el fonógrafo solamente fue el primero de una serie de inventos que podrı́an preservar en grabaciones los sonidos de la humanidad, siendo al arte de la música el más amplio. También se han añadido inventos cuya finalidad es el generar sonido mediante señales eléctricas, lo que dio origen a la música electrónica. Con el paso de los años y el avance de la tecnologı́a digital, hoy existen aparatos que no sólo graban sonidos o reproducen melodı́as, sino que también las generan. “Sonido Digital” indica la presencia de procesos numéricos para la representación de diversas formas de onda, es decir, los sistemas de audio digital se valen de circuitos que trabajan con valores discretos (0, 1) para guardar el registro de cualquier sonido. Una onda sonora a la entrada de un sistema de audio digital es representada por una serie de pulsos de valores discretos obtenidos mediante un algoritmo matemático realizado por un conversor Analógico-Digital (A/D); el proceso inverso también es posible por otro algoritmo, el cual 1 Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI convierte la serie de valores discretos en una reproducción de la forma de onda original mediante una conversor D/A. Con los registros de pulsos de las formas de sonido originales se pueden llevar a cabo diversas modificaciones llamadas “modulaciones”, las cuales pueden ser a partir de parámetros como frecuencia y amplitud. Se piensa que Singapore Creative Technology, junto con su filial americana Creative Labs fueron los diseñadores originales de una familia de tarjetas de sonido digitales que durante muchos años fueron el estándar para la grabación y reproducción de sonidos en las PC (Personal Computer) de todo el mundo, principalmente de IBM, la familia Sound Blaster. Estas tarjetas tienen incorporados circuitos sintetizadores FM principalmente, con lo cual generan un sonido claro y limpio. Actualmente utilizan circuitos sintetizadores de la familia YMF de YAMAHA Company Otro gran avance de la era digital es la incorporación de los sistemas de redes que permiten que varias computadoras trabajen en conjunto a través de grandes distancias. A finales de los años 80’ se implementaron el lenguaje HTML y la World Wide Web (www) que marcan hoy en dı́a todas las posibilidades del internet. Aunque la red mundial del internet requiere de un servidor, la tecnologı́a también se puede aplicar a pequeñas redes locales de un alcance limitado, que sin embargo pueden sı́ncronizar varios equipos digitales de cuaqluier ı́ndole (video, audio, datos, controladores de máquinas y otros dispositivos) para que intercambien datos entre sı́ y ejecuten tareas muy complejas trabajando conjuntamente. El problema que se presenta es que hasta la fecha no se han creado tarjetas de sonido independientes que puedan conectarse en red TCP/IP (Transfer Control Protocol/Internet Protocol), de tal forma que se pudiese implementar una orquesta virtual, es decir, varios “músicos digitales” tocando una compsición musical en paralelo y en tiempo real. Otro problema que serı́a posible resolver con esta misma tecnologı́a es el reconocimiento de uno o — 2 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI varios instrumentos a partir de una fuente de sonido musical, tal como el que produce una orquesta sinfónica. En esta tesis se presenta una parte de la solución utilizando uno de los grandes avances de esta era digital: el MIDI (Musical Instruments Digital Interface). Este es un lenguaje que utilizan actualmente muchos instrumentos para comunicarse entre ellos, enviar y recibir datos y sincronizarse. Nació dentro del mundo de los sintetizadores como respuesta a una necesidad de los músicos: controlar varios equipos con sus dos manos y hacer capas de varios sonidos entre ellos. Los primeros resultados de esta nueva tecnologı́a se mostraron en el North American Music Manufacturers Show de 1983 en Los Ángeles. La demostración consistió en dos sintetizadores de distintos fabricantes conectados por MIDI con un par de cables; el representante de una de esas dos compañı́as tocó uno de los sintetizadores... ¡y el público se alborotó entre muecas de asombro al ver como los teclados sonaban juntos!. Como ya se mencionó, al igual que dos equipos digitales puede trabajar en conjunto mediante una red, dos instrumentos que soporten el protocolo MIDI pueden comunicarse. La información MIDI tiene un carácter netamente musical: se refiere a comandos play-stop, ataque, sostenimiento, decaimiento, tono, timbre, etc. Aunque su uso avanzado permite muchas más posibilidades. En esta tesis se propone un diseño con base en en uno de los últimos circuitos de la familia YMF, el también denominado OPL3, el YMF262. Aunque los dispositivos MIDI suelen ser un solo circuito integrado (CI), la programación que se requiere para su uso suele ser llavada a cabo por computadoras digitales con interfases o por circuitos auxiliares con otras clases de CI’s. Algunos de los más versátiles son los CPLD (Complex Programmable Logic Device) que contienen bloques de programación dentro de sı́ mismos, los cuales pueden ser conectados entre sı́ por medio de una matriz programable de conexiones o mediante multiplexores. El principal objetivo de estos circuitos es el de poder — 3 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI resumir ecuaciones booleanas sumamente complejas en un solo dispositivo que realice la función completa. Otro tipo de CI importante a mencionar es el FPGA (Field Programmable Gate Array), el cual es una herramienta más potente que el CPLD, cuenta con una mayor capacidad de bloques prgramables, es más flexible y cuenta con capacidades tales como sumadores, multiplicadores y memorias; aunque tiene la desventaja de mayor probabilidad de tener más tiempos de retraso que un CPLD. Es importante señalar que ambos CI’s utilizan el mismo lenguaje de programción, el VHDL, el cual es un acrónimo de la combinación de VHSIC (Very High Speed Integrated Circuit) y HDL (Hardware Description Language). Con esta herramienta se pueden crear circuitos completos usando los CPLD y FPGA, y se pueden diseñar a partir de la descripción de los circuitos, del flujo de datos, de las instancias de los componentes e incluso mediantes diseños mixtos de los anteriores. Esta caracterı́stica se utilizará para complementar un circuito llamado Intrument Musical Maker System (IM2 S) de interfase entre una computadora y el dispositivo MIDI, el cual es el tema del presente trabajo. A veces es necesario modificar de cierta manera la forma de onda de un sonido para que trabaje de forma adecuada en los dispositivos digitales, a esta acción se le llama modulación. Esto no es más que modificar las propiedades de una señal llamada portadora en función de otra que se denomina moduladora. Este proceso facilita el tratamiento de las señales de acuerdo a las necesidades de los circuitos y componentes y puede realizarse en frecuencia, amplitud, fase y para tratar las señales de audio digital, se lleva una a cabo una modulación por pulsos. La modulación de amplitud AM (Amplitude Modulation), modifica el grado de ondulación de la onda portadora a una frecuencia constante, estas señales son propensas al ruido denominado estática, pero su transmisión es más fácil ya que se propaga con un ángulo amplio mientras que las señales tratadas con la modulación de frecuencia FM (Frequency Modulation), alteran el número de veces por segundo que ondula la onda portadora a una — 4 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI amplitud constante, no permiten estática pero son muy direccionales. La modulación por fase PM (Phase Modulation), es muy parecida en la práctica a la modulacuión en frecuencia y lo que las hace diferentes es el tratamiento matemático de la señal, ya que sus expresiones son en función de diferentes variables (fase y frecuencia), con resultados muy similares. La modulación que se lleva a cabo en los conversores A/D se le denomina PCM (Pulse Code Modulation), es decir modulación por pulsos. Este último tipo de modulación se encarga de convertir una señal análoga (como el sonido) en una serie de pulsos que representen todos sus valores (frecuencia, amplitud, fase, etc), los cuales pueden ser tratados y almacenados de forma digital. La PCM requiere de un número de bits para representar el valor de la señal analógica de forma digital, entre más bits, mayor puede ser la fidelidad de la señal digitalizada aunque obviamente ocupa un espacio de memoria mayor. Actualmente existe una nueva modulación denominada PSK (Phase Shift Keying), que es modulación por desplazamiento de fase, donde las portadoras son moduladas por un número determinado de fases, a diferencia de la PM en donde la desviación de fase es continua, además de que en PSK la moduladora es una señal digital. Esto permite un número mayor de fases a mayor número de bits de la moduladora, pudiendo transmitir mayor información por el mismo ancho de banda. Un sintetizador es un aparato que genera y manipula sonidos por medios electrónicos. Con este tipo de dispositivo se pueden crear nuevos sonidos ası́ como reproducir de manera muy aproximada los de diversos instrumentos musicales. La forma de la onda del sonido generado puede ser alterada y modulada en su duración, altura y timbre mediante el uso de dispositivos auxiliares tales como amplificadores, mezcladores, filtros, reverberadores y moduladores de varios tipos. También pueden producirse sonidos que superan la capacidad de los instrumentos convencionales y que es posible combinarlos con sonidos captados en un micrófono. Además de su utilidad en la composición, los sintetizadores se utilizan también para adaptar música instrumental, como en las conocidas grabaciones de Johann Sebastian — 5 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Bach que Walter Carlos realizó en 1969 con ayuda del primer sintetizador, el Moog. Este diseño fue seguido por otros similares de empresas como Buchla y Putney. Entre 1960 y 1980 se fabricaron aparatos más reducidos que usaban microprocesadores, con lo que se hizo posible la grabación digital del sonido. Han utilizado estos instrumentos tanto músicos de formación clásica como grupos de música pop y su alcance aún hoy es muy amplio. Para trasladar notas musicales a un sistema computarizado como un sintetizador, lo ideal fue recurrir a un sistema numérico. Se trata de un análisis matemático de las secuencias de notas y de su ordenación numérica en forma de nodos, es decir, de anexar una serie de notación musical para producir una armonı́a, y saber cómo se comporta esa unión. Este es un lenguaje de algoritmos matemáticos, gracias al cual los sonidos intermedios entre cada nota se localizan en una escala de computadora y luego pueden escucharse a través de un sistema MIDI conectado a la salida de un puerto de la computadora; también existe la posibilidad de crear estos algoritmos en VHDL e implementarlos en circuitos auxiliares CPLD o FPGA. Al finalizar los experimentos se implementaron los programas adecuados para que desde una PC fuera posible comunicar dos o más dispositivos ejecutando cada uno una melodı́a diferente, teniendo ası́ la posibilidad de simular un orquesta a partir de dispositivos MIDI. En el capı́tulo dos se presenta un panorama general de los sistemas de sı́ntesis de sonido de audio. En el capı́tulo tres se presenta el diseño de un sintetizador con base en el C.I.’s YMF262 y YAC512 (ambos de YAMAHA Company). En el capı́tulo cuatro se presenta el diseño especı́fico de un instrumento virtual y su programación. En el capı́tulo cinco se presentan las pruebas y resultados de la presente tesis del dispositivo Instrument Musical Maker System (IM2 S), ası́ como diagramas, señales y pantallas de operación. En el capı́tulo seis se presentan conclusiones y describimos algunas posibles mejoras y aplicaciones como trabajos a desarrollar. — 6 — Capı́tulo 2 Aspectos Generales de la Generación Automática de Sonido . . . Una perturbación mecánica, también denominada oscilación, que se desplaza por un medio elástico que produce una respuesta en el oı́do humano. . . Ası́ podemos definir el sonido de una manera formal. El sonido es una oscilación con forma de onda senoidal producida por una compresión-decompresión de la fuente que mueve las partı́culas del medio elástico, generalmente el aire, y presiona el tı́mpano con las misma naturaleza. La forma de onda es periódica, y como tal posee caracterı́sticas que son fundamentales en su análisis: • Perı́odo. También llamado ciclo, es el tiempo en que transcurre la compresión - descompresión. • Frecuencia. Es el número de veces que se repite un ciclo en una unidad de tiempo (segundo). Esta propiedad se mide en Hz (Hertz). El oı́do humano es sensible a frecuencias desde 20Hz hasta 20 KHz. Con base a la frecuencia se pueden obtener 7 Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI otras dos caracterı́sticas de suma importancia: – Tono. Es la apreciación subjetiva de la frecuencia fundamental de un sonido y determina si es grave o agudo. – Timbre. Los sonidos comunes (como los de los instrumentos musicales) cuentan con frecuencias armónicas, que son de valores equivalentes a múltiplos enteros de la fundamental pero de menor amplitud. El conjunto de estos armónicos le da al sonido una “voz” única. • Amplitud. Es la magnitud de partı́culas de aire desplazado por la compresión - descompresión. Esto genera una presión en el tı́mpano que es medible en una escala logarı́tmica de dB (decibeles). El oı́do humano es sensible desde presiones de 20 µPa, lo cual equivale a 0 dB y tiene el umbral de dolor a los 120 dB. • Longitud de Onda. Es la distancia que cubre un ciclo completo. • Fase. Es la relación de tiempo o distancia que existe entre dos ondas sonoras diferentes al tomar una como referencia. Se mide en grados ó radianes, sin embargo, en apreciación el oı́do humano lo percibe como una diferencia de tiempo entre las dos ondas y se pueden captar desfasamientos desde 50ms. Conocer y comprender estas caracterı́sticas del sonido es imprescindible para diseñar y operar un circuito capaz de generar sonidos de cualquier ı́ndole, desde los sencillos tonos puros hasta las complejas voces de los diferentes instrumentos musicales. — 8 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 2.1 Funciones Notables Como ya se mencionó, la forma de onda del sonido es de naturaleza senoidal, pero existen otras formas que se pueden obtener mediante un generador y que se vuelven útiles en diversas partes del diseño del dispositivo. 2.1.1 Función Senoidal Esta es una función de las familias trigonómetricas y la mayorı́a de los procesos en la naturaleza tienen una respuesta con esta forma. Tiene como variable dependiente el ángulo y su valor se mide generalmente en radianes. En muchas aplicaciones una función cosenoidal se puede tratar como una senoidal defasada 90o . Esta función se aplica ampliamente en análisis de vibraciones mecánicas, sistemas de comunicación, generadores de CA, etc. 2.1.2 Función Triangular Esta es una señal compuesta por dos rectas, una de pendiente positiva y una de pendeinte negativa, que le dan la forma de un triángulo con tiempos de subida y bajada iguales. Se usa en los circuitos que emplean rayos catódicos, como los cinescopios de TV. 2.1.3 Función Diente de Sierra Se forman a partir de una recta de pendiente positiva que incrementa su valor a partir del mı́nimo y que al alcanzar su máximo cae en un tiempo muy corto, que tiende a parecer un impulso, hasta su valor mı́nimo, o viceversa, desde su valor máximo decae en pendiente — 9 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI negativa hasta su valor mı́nimo alcanzando de nuevo el máximo en un tiempo muy corto. Esta forma, parecida a los dientes de una sierra le dio nombre a la función. 2.1.4 Función Cuadrada Esta es una forma muy usada en los circuitos digitales. Solo tiene dos valores máximo y mı́nimo y que representan los valores discretos (0 y 1). La señal cambia del máximo al mı́nimo y viceversa en tiempos muy cortos lo que le da el aspecto de un cuadro. Tiene la gran ventaja de que puede ser almacenada en memorias digitales y se usa en sistemas de sincronización, como disparadores de tiempo, contadores y en todos los sistemas digitales. Los circuitos modernos, que son más exactos, transforman señales de otras formas a este tipo de señales para su tratamiento. 2.2 Análisis Matemáticos Realizar un análisis de señales adecuado es de vital importancia para poder diseñar circuitos que trabajen de forma óptima con las formas de onda mencionadas anteriormente. Las matemáticas como ciencia aplicada son fundamentales en el tratamiento de señales, pues son la base de los diseños de los sistemas que se utilizan hoy en dı́a y son el lenguaje universal de la ingenierı́a. 2.2.1 Transformada de Laplace Este método tiene un papel clave en el enfoque moderno de análisis y diseño de los sistemas de ingenierı́a. El pionero en este tipo de método fue Oliver Heaviside (1850-1925) que desarrolló — 10 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI un método para la solución sistemática de ecuaciones diferenciales ordinarias con coeficientes constantes. Aunque fue duramente criticado por que su sistema se basaba en la intuición y carecı́a de un rigor matemático, fue reconocido que su método tenı́a base en los trabajos de Pierre Simon Laplace (1749-1827), por lo que el método se bautizó como transformada de Laplace. Este método es ejemplo de una clase llamada transformada integral, que toma una función f (t) de una variable t (tiempo) y la transforma en una función F (s) de otra variable s (frecuencia compleja). Cuando se trabaja con señales, el tratamiento clásico para resolverlo queda en un plano de ecuaciones diferenciales en el dominio del tiempo, el cual se puede volver sumamente complejo conforme aparecen más variables y se introducen las condiciones iniciales del sistema, pero las propiedades de la transformada de Laplace permiten que estas ecuaciones diferenciales se transformen en ecuacionas algebraicas en función de la frecuencia, lo que facilita su resolución y al incluir las condiciones iniciales desde el principio éstas ya están incluidas en el resultado, el cual a su vez puede ser devuelto al dominio del tiempo mediante la aplicación de una transformada inversa. Dentro de la ingenierı́a la transformada de Laplace es una herramienta poderosa en los análisis de circuitos eléctricos y vibraciones mecánicas que trabajan o producen formas de onda analógicas. 2.2.2 Transformada Z Al trabajar con señales de tiempo continuo o analógicas, esto es, una señal definida en cualquier instante de tiempo, es necesario realizar la conversión a tiempo discreto para que pueda operar con los sistemas digitales modernos. Una señal en tiempo discreto esta definida solo en los instantes en que se lleva a cabo un proceso de muestreo, este proceso produce una señal digital que puede almacenarse, modularse o utilizarse para construir una nueva señal — 11 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI analógica. En el apartado anterior se mencionó que la transformada de Laplace es una valiosa ayuda en análisis de señal analógica, y la transformada z realiza la misma tarea para sistemas digitales. En la ingenierı́a la transformada z se emplea ampliamente para desarrollar circuitos digitales equivalentes a otros circuitos analógicos, como el caso de los filtros pasivos. 2.2.3 Análisis de Fourier Dentro de las matemáticas aplicadas a ingenierı́a no se puede omitir a Joseph Fourier (17681830), un cientı́fico francés que presentó una serie de estudios de calor que mostraba una solución sencilla para cualquier forma de onda periódica. De hecho fue censurado y desacreditado por otros grandes matemáticos como Laplace, Poisson y principalmente Lagrange. Pero en 1822 apareció su texto clásico Théorie Analytique de la Chaleur (Teorı́a Analı́tica del Calor) que a la postre se convertirı́a en la fuente de todos los métodos modernos de resolución de problemas prácticos asociados con ecuaciones diferenciales parciales sujetas a condiciones de frontera de medios. Además del flujo de calor, el análisis tiene aplicaciones en vibraciones estructurales, propagación de ondas y difusión. Series de Fourier Fourier postuló que cualquier función periódica arbitraria f (t) podı́a ser representada mediante una serie trigonométrica infinita con forma de sumatoria de funciones senoidales y cosenoidales. La gran ventaja de este análisis es que se puede tratar a toda la función a partir de los primeros elementos de la serie. En un sistema dinámico lineal, si la entrada es una senoide, la respuesta será una senoide de la misma frecuencia, aquı́ radica la importancia — 12 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI de la serie de Fourier, ya que al transformar cualquier función periódica no senoidal, como la que entregan los rectificadores electrónicos, en su representación de serie trigonométrica, el análisis puede llevarse a cabo de una manera más sencilla. Este análisis ayuda a conocer la respuesta estacionaria del sistema a la frecuencia de entrada y se aplica en sistemas que trabajan a la entrada con una señal no senoidal de frecuencia más baja que la natural del sistema, ya que se pueden presentar serios problemas debido a la resonancia, los cuales pueden ser localizados mediante el análisis de series de Fourier. Transformada de Fourier Esta es una variación de las series con la diferencia de que se aplica a funciones no periódicas. Cabe señalar que aunque las diferencias entre las transformadas de Fourier y Laplace son muy sutiles, e incluso eventualmente la transformada de Fourier puede ser un caso especial de la de Laplace, no son equivalentes, pues mientras Laplace analiza ecuaciones diferenciales de coeficientes constantes, Fourier trabaja con ecuaciones diferenciales parciales. La transformada se aplica continuamente a señales discretas por lo que tiene grandes aplicaciones en el campo de la teorı́a de la comunicación, el proceso de audio y video digital, modulación, demodulación, diseño de equipos transmisores y receptores y filtrado en el dominio de la frecuencia. 2.2.4 Convolución Si se toma en cuenta que la convolución es un proceso matemático en el que a partir de dos funciones se obtiene una tercera que representa en que grado se suporponen una con la otra, se puede estar hablando de una modulación. Por la forma que tiene la ecuación de la convolución se le llama también integral de convolución, integral de superposición, integral de — 13 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Duhamel, integral de Faltung e integral envolvente. La convolución se aplica constantemente a todos los teoremas de transformada, z, Laplace y Fourier, principalmente con el objetivo de conocer la respuesta del sistema a funciones notables como el impulso unitario, tanto en el dominio del tiempo y de la frecuencia. 2.2.5 Teorema de Nyquist Con base en la función impulso unitario (o delta de Dirac, δ) , la cual existe en un único instante con valor de uno, Nyquist ideó un teorema que es conocido como Nyquist-Shannon. Este teorema postula que se puede generar un tren de impulsos (también conocido como peine de Dirac) a una frecuencia dada para realizar un muestreo de una señal. Este muestreo se lleva a cabo por medio de una convolución, lo que se obtiene es un tren de pulsos cuyas magnitudes varı́an en función de la señal de entrada, esta es la base de la digitalización de señales. El muestreo se realiza a una frecuencia determinada, y según el teorema, debe de ser equivalente al doble de la máxima deseada, por ejemplo en los sistemas de audio modernos de CD se desean hasta 20KHz (máxima frecuencia audible), se muestrea a 44 KHz, esta relación se le llama frecuencia de Nyquist; al tren de impulsos a la frecuencia de Nyquist se le conoce como peine de Nyquist. 2.3 Osciladores Para generar una función de la forma que sea es necesario el uso de dispositivos capaces de reproducir dichas formas mediante componentes electrónicos, estos dispositivos son llamados osciladores. — 14 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Un oscilador es un dispositivo electrónico capaz de convertir una señal de corriente continua en una señal periódica que varı́a con respecto al tiempo a una frecuencia determinada. Fundamentalmente el oscilador es un circuito amplificador cuya salida es retroalimentada, para que esto suceda debe: 1) el defasamiento de la salida a la entrada debe de estar muy cerca de los 0o (retroalimentación positiva), 2)el desfasamiento en el lazo de retroalimentación debe ser 0o y la ganancia de voltaje en el lazo cerrado debe ser igual a la unidad y 3)para que la oscilación exista, la ganancia de la retroalimentación positiva debe ser mayor a 1 de tal manera que la ganancia de salida debe decrecer a 1 para mantener ese nivel deseado. Los osciladores pueden ser clasificados en función de las formas de onda que generan: analógicos o digitales. Los analógicos pueden generar formas senoidales, diente de sierra o triangulares, y los digitales formas de onda cuadradas. Los circuitos osciladores son ampliamente utilizados en sistemas digitales y sistemas de comunicación con el fin de sincronizar el emisor con el receptor y llevar a cabo un intercambio de datos en el menor tiempo posible con la mayor exactitud. A continuación se mencionan los tipos de osciladores más importantes, empezando con los RC, que constan básicamente de un capacitor y una resistencia. Su funcionamiento se basa en la posibilidad del capacitor de cargarse y descargarse en intervalos iguales definidos por los valores de resistencia y capacitancia, estos tiempos determinan la frecuencia de oscilación del circuito. Los hay de diversos tipos como el oscilador de puente Wien, también llamado de retraso-adelanto. Este diseño es utilizado para frecuencias de 5HZ a 1MHz, en diseños de generadores de audio comerciales y aplicaciones de frecuencia baja y moderada. Esta conformado con una red de capacitores en el lazo retroalimentación positiva y a frecuencia de resononacia presenta una ganacia de 1/3 y defasamiento de 0o . Por debajo de esta frecuencia la salida tiende a tener una fase positiva ( de adelanto) y a valores por encima de la resonancia la fase es negativa (retardo con respecto a la entrada). Otro oscilador importante es el de — 15 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI corrimiento de fase, consta de tres redes RC en el lazo de retroalimentación, cada red puede proporcionar un desfasamiento máximo de 60o , y el conjunto las tres produce la oscilación que ocurre a la frecuencia en donde el desfasamiento total es de 180o . Un oscilador más es el doble T, se llama ası́ por que consta de dos redes RC tipo T en el lazo de retroalimentación negativa, una red tiene una respuesta de filtro pasa-bajas y la otra responde como un filtro pasa-altas, lo que produce una respuesta rechaza-banda donde la frecuencia central corresponde a la oscilación deseada. Aunque los osciladores RC son muy útiles para frecuencias bajas y medias, en aplicaciones de altas frecuencias se usa otro tipo de oscilador a partir de una bobina y un capacitor, los LC aprovechan las naturalezas opuestas de ambos componentes, es decir, cuando se carga el capacitor la bobina esta descargada y al empezar a cargarse la bobina el capacitor se descarga, este proceso se repite periódicamente lo cual provoca una frecuencia de oscilación definida. Dentro de estos diseños se tiene el Hartley, que es un oscilador LC compuesto por una red con un capacitor en paralelo, dos bobinas en serie y un transistor (pueden usarse BJT o FET) colocando la carga entre el colector y una bobina. Este diseño obtiene una frecuencia de resonancia y es la única que se obtiene a la salida, esta frecuencia puede ser ajustada variando la capacitancia o la relación entre las bobinas por medio de la “sintonı́a por permeabilidad” y el circuito de polarización debe de influir lo menos posible en el circuito de oscilación. Otra posibilidad es el Colpitts, que tiene como elemento central el transistor, una bobina y dos capacitores, uno conectado en base-emisor y el otro en colector-emisor. El Clapp es una variable del Colpitts con la diferencia de añadir otro capacitor en serie a la bobina para el circuito resonante. Existe un tipo de oscilador que es muy común al usar sintetizadores, es el VCO (Voltage Control Oscilator), el cual varı́a su frecuencia de oscilación en función de un nivel de CC a — 16 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI su entrada. Se puede utilizar para generar formas senoidales o no senoidales, por ejemplo, usando una señal cuadrada y un circuito integrador se puede generar una forma de diente de sierra. Un oscilador digital también se le suele llamar multivibrador. Estos circuitos generan formas de ondas cuadradadas y se utilizan en la sincronización y operación en tiempo real de los circuitos digitales modernos. Generalmente son CI’s basados en circuitos flip-flop. El primero, el más difundido y aún útil, es el 555, es tan versátil que se puede utilizar como disparador, contador, temporizador, generador de onda cuadrada y hasta sirve para realizar modulación AM en algunas señales. Otro tipo de osciladores muy utilizados actualmente tienen su base en un cristal piezoeléctrico en su retroalimentación y son muy útiles dadas sus propiedades de estabilidad de frecuencia y pureza de fase. El oscilador Pierce es un tipo donde la componente de LC es cambiada por un cristal de cuarzo teniendo estabilidad de frecuencia a valores muy elevados. 2.4 Conversores de Señales A veces los procesos de las señales requieren que éstas se conviertan a una señal equivalente de otra naturaleza, generalmente este proceso es de digital a analógico y viceversa. En audio digital, por ejemplo, la señal que capta un micrófono es analógica y se requiere digitalizar; o en un sintetizador digital, la señal de salida requiere convertirse a analógica para que sea audible. — 17 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 2.4.1 Conversor A/D Con el avance de la ciencia y la técnica, tanto la transmisión como la grabación de los sonidos e imágenes analógicas han sufrido grandes cambios en estos últimos años. La introducción de las técnicas digitales, permiten hacer muchas cosas más, con mayores ventajas y más versatilidad que con la tecnologı́a analógica. Estos conversores llamados ADC (Analogic Digital Converter) basan su funcionamiento en la teorı́a del muestreo, para convertir una señal analógica en su equivalente digital, una secuencia de pulsos que traducen la señal original. Esto puede hacerse por diferentes medios, pero el más común es registrar el nivel que tiene la señal analógica cada determinado tiempo. Entre más corto es el tiempo de un dato a otro, se dice que aumenta la frecuencia de muestreo. Con esto se genera un conjunto de datos que tienen un valor de amplitud, o lo que es lo mismo se genera un tren de pulsos que representa la señal analógica original. Utilizando un número determinado de bits se puede representar cada elemento muestreado. Estos bits se agrupan en paquetes llamados palabras, entre mayor sea el número de bits de cada palabra mayor la resolución del sistema, pero de igual forma requiere más capacidad de memoria y de procesamiento del sistema. 2.4.2 Conversor D/A Proceso inverso al anterior, la conversión digital-analógica es necesaria en la parte final de la mayorı́a de los sistemas de audio y video digitales, pues el ojo y el oı́do del ser humano trabajan con señales analógicas. En un DAC (Digital Analogic Converter), es necesario partir de un tren de pulsos para — 18 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI reconstruir una señal lo más parecida que sea posible a un sonido o imagen, segun sea el caso. Esto es necesario por que los sentidos no captan secuencias binarias, ni estas son capaces de mover el cono de un altavoz. Cada palabra de bits contiene información de polaridad y amplitud que se aplica cada cierto tiempo a un circuito que lo traduce, es decir primero verifica la polaridad y después la amplitud del voltaje la suministra mediante una serie de interruptores que se abren y cierran de acuerdo a la magnitud requerida. Este es un proceso inverso al muestreo, pero que se lleva a cabo a la misma frecuencia. 2.5 Sintetizadores Un sintetizador es un aparato que genera y manipula sonidos por medios electrónicos. Con este artefacto se pueden crear nuevos sonidos ası́ como reproducir los de los instrumentos musicales conocidos. La forma de la onda generada es alterada en su duración, altura y timbre mediante el uso de dispositivos tales como amplificadores, mezcladores, filtros, reverberadores, secuenciadores y moduladores de frecuencia. Aunque se empezaron a fabricar a principios de los 20’, pero eran considerados como algo elitista y puramente experimental. No fue sino hasta los 60’ cuando cobraron verdadero auge cuando se llevaron a cabo pruebas y demostraciones en las universidades de Estados Unidos, como en 1969 cuando Bob Moog junto a Walter Carlos realizaron una grabación de los conciertos de Johann Sebastian Bach con el prototipo del primer sintetizador, el Moog. Después tuvieron gran aceptación por parte de diversos músicos de vanguardia y, aunque al principio solo se usaban para añadir nuevos sonidos a las composiciones, con la llegada de la tecnologı́a digital se volvieron capaces de reproducir cualquier clase de sonido. Dentro de un sintetizador se manipulan señales eléctricas con diferentes formas de onda y se obtiene un sonido con el tono y el timbre deseados. Este proceso puede ser analógico (ma— 19 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI nipulando directamente las señales), digital (por modulación FM y algoritmos matemáticos) o por software (tratando valores discretos mediante una PC) o incluso puede ser una combinación de varios. 2.5.1 Sintetizadores Analógicos Como se mencionó en el apartado anterior, en un proceso analógico, las señales eléctricas se manipulan directamente en los circuitos del sintetizador para producir el sonido. El proceso empieza con el teclado, el cual es el medio más común para utilizar un sintetizador analógico, aunque existen otros (MIDI, interfase con un instrumento, otro sintetizador, etc). El teclado tiene dos funciones, la primera es enviar un disparo (trigger signal) a un componente llamado generador de envolvente con las caracterı́sticas simples de on/off, y la otra función es suministrar un voltaje a un VCO interno del sintetizador, el voltaje depende de la tecla que se haya pulsado e influye en el tono que genera el VCO y cada tecla tiene un único voltaje. Este VCO puede generar frecuencias en el espectro audible (20Hz-20KHz)y existen dos estándares para la relación nota/voltaje: una lineal V/Hz y la usada por Moog, de 1V/octava. Este oscilador, normalmente se puede programar con distintos tipos de forma de onda. Esto afectará al timbre del sonido y se pueden obtener otros efectos mediante un oscilador a baja frecuencia o el uso de un voltaje proporcionado por un pitch(frecuencia fundamental de una señal sonora, el tono propiamente dicho es una apreciación subjetiva). Según el tipo de forma de onda, habrá un contenido determinado de armónicos que son lo que realmente definen el aspecto del sonido. Algunos músicos se refieren a estas caracterı́sticas con el erróneo nombre de “brillo del sonido”. Puesto que un sintetizador analógico es muy complejo, generalmente los circuitos estan diseñados para producir 3 tipos de forma de onda, cuadrada, triangular y diente de sierra. La forma de onda senoidal, no se suele usar, debido a que — 20 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI contiene un único armónico, el fundamental y el circuito que lo produce es más complicado de diseñar. Se suele sustituir por la onda triangular que es bastante parecida, con bajos armónicos y en algunos diseños hasta llegan a ser equivalentes. También cuentan con un VCF (Voltage Controlled Filter), cuya función es dejar pasar determinados armónicos o atenuar otros según se desee. Suelen usarse filtros comunes pasabajos, pasa-altos y pasa-banda que poseen dos datos importantes, la frecuencia de corte (la frecuencia a partir de la cual actúan) y la resonancia (factor Q). Estos parámetros pueden ser manipulados por el generador de envolvente en tiempo de ejecución, con lo que se obtienen efectos interesantes en la salida audible. La salida del VCF esta conectada a un amplificador, el VCA (Voltage Controlled Amplifier), esto no es más que un amplificador que tiene efecto en la intensidad del sonido, cuya ganancia esta regulada por el voltaje que entrega la envolvente. Un elemento de vital importancia y que se puede considerar la piedra angular del sintetizador es el generador de envolvente. Este dispositivo genera un voltaje de control cuando recibe una señal de disparo del teclado. Este voltaje actúa sobre el VCF para producir cambios en el tono del sonido y en el VCA para controlar la amplitud del sonido. La principal función de este dispositivo es la de generar una señal que le de al sonido las caracterı́sticas naturales de un instrumento musical, estas son: Ataque (Attack, que representa el tiempo de crecimiento del sonido, es decir el tiempo que tarda en alcanzar su máximo nivel, Decaimiento (Decay), que representa la primera fase de caı́a, es decir, el tiempo que le toma al sonido disminuir su nivel hasta otro determinado, Sostenimiento (Sustain level), esto representa el tiempo que el sistema mantiene un sonido a un nivel casi constante y finalmente Liberación (Release), que es la etapa en la que el sonido decae nuevamente hasta extinguirse. A los generadores de envolvente se les llama ADSR, por sus siglas en inglés. Otro componente que esta presente es el LFO (Low Frequency Oscilator), que tiene la — 21 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI misma naturaleza del VCO, con la diferencia de que el LFO genera frecuencias de 1Hz-10Hz con formas de onda senoidales o triangulares y puede aplicarse al VCO para obtener el efecto llamado vibrato o al VCA para obtener el trémolo. Finalmente, el ruido blanco o rosa también se usa en determinado momento para producir sonidos percusivos como el Hand-Clap (palmada) e incluso simular el viento o el mar si se aplica junto con el LFO. 2.5.2 Sintetizadores Digitales Basados, como es de esperarse, en los sintetizadores analógicos, los sintetizadores digitales estan mucho más difundidos en la actualidad y tienen alcances más importantes y amplios. De hecho, los chips de sintetizadores actuales son poderosı́simos DSP’s (Digital Signal Processor), con posibilidades que van más allá de la generación de sonidos. Se puede decir que la principal diferencia radica en que ya no se tratan las señales eléctricas directamente en los circuitos, si no que se hacen representaciones digitales de ellas, es decir, palabras de bits que contienen la información de alguna señal especı́fica en algún apartado de memoria, por lo que se puede acceder a ella con un simple direccionamiento, (por ejemplo, acceder a la forma de onda y envolvente necesaria para imitar la voz de un piano). También cuentan con un reloj interno similar al de los microprocesadores, esto es muy útil cuando se trata de acoplar varios dispositivos para que operen juntos en tiempo real pues es más fácil sincronizarlos. El alcance de estos dispositivos es tan amplio, que pueden recrear cualquier sonido de la naturaleza de manera muy aproximada al real. — 22 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 2.6 MIDI Se trata de un protocolo industrial estándar que permite a las computadoras, sintetizadores, secuenciadores, controladores y otros dispositivos musicales electrónicos comunicarse y compartir información para la generación de sonidos. Esta información define diversos tipos de datos como números que pueden corresponder a notas particulares, números de sintetizadores o valores de controladores. Gracias a esta simplicidad, los datos pueden ser interpretados de diversas maneras y utilizados con fines diferentes a la música. El protocolo incluye especificaciones complementarias de hardware y software. — 23 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 2.1: Especificación del Hardware MIDI — 24 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 2.2: Especificación del Software MIDI — 25 — Capı́tulo 3 Descripción del Componente OPL3 En secciones anteriores se ha hablado de los sintetizadores, sus componentes básicos y el alcance de sus aplicaciones, en un panorama generalizado. Dado que el presente trabajo trata el diseño de un sintetizador digital, este capı́tulo se centrará en el componente básico del diseño, el OPL3, CI de número YMF262 fabricado por YAMAHA Company, que es un sintetizador muy completo con la capacidad de generar hasta 18 sonidos melódicos simultáneamente. 3.1 Arquitectura del circuito Se debe empezar por verificar la constitución del componente. Para poder interpretar sus funciones detalladamente se puede realizar una división mediante un diagrama a bloques y explicar la función de cada uno individualmente y como se interrelacionan durante la operación. En la Figura 3.1 se muestra dicho diagrama, con el nombre de cada bloque y como se relaciona con los demás ası́ como los pines que le corresponden fı́sicamente a cada uno en el encapsulado. 26 Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 3.1: Diagrama a bloques del sintetizador 3.1.1 Control de Tiempo Tı́picamente en los sistemas digitales debe llevarse a cabo una sincronización con una base de tiempo, con el objetivo de realizar tareas complejas con alto grado de precisión. Cuanto más complejo sea el proceso y más variables o datos ocupe, más importante es la sincronización del sistema, además, para realizar la comunicación exitosa entre varios sistemas o componentes se requiere una sincronización adecuada. Aquı́ se encuentra el reloj maestro (14.32 MHz), que es el que sincroniza los tiempos de todos los bloques. También cuenta con el reloj de transferencia de datos a los canales de salida para la sincronı́a con un DAC con sus respectivos samplers (muestreadores). — 27 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 3.1.2 Temporizador Dentro del sintetizador existe un flujo de datos de manera muy constante, por lo que se puede llegar a presentar un sobreflujo de ellos. Para evitar esta situación, este bloque cuenta con diferentes señalizadores (también denominados banderas) que cambian su estado constantemente conforme al flujo de datos del sintetizador. Este bloque esta diseñado para realizar las interrupciones necesarias de acuerdo a los estados que presenten las banderas del arreglo de registros. 3.1.3 Control del Bus de Datos Este bloque es el que hace posible la conexión con otros dispositivos, ya que cuenta con los registros necesarios para programar la palabra que indique lo que va a hacer el componente con los datos, si van a ser leı́dos o enviados por el bus bidireccional a otro dispositivo con el que se esté comunicando y también si los datos son direcciones o registros. En diseños con más de un sintetizador, con este bloque se selecciona el chip, es decir se habilita o deshabilita según se requiera. 3.1.4 Arreglo de Resgistros Dentro de cada sistema digital, el tratamiento e identificación de los tipos de datos son fundamentales para el correcto desempeño del sistema. Estos datos están disponibles para comunicación o para su uso interno según requiera el diseño de operación, por tal motivo este bloque cuenta con un bus de datos bidireccional. Este bus puede ser conectado en paralelo a una PC (Personal Computer) o a cualquier otra interfase que se desee (PIC, FPGA, otro — 28 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI dispositivo MIDI, etc). Dependiendo de los datos contenidos en el bloque de control del bus de datos, éstos pueden entrar al sintetizador o ser enviados a la PC para sincronı́a y monitoreo de estados de banderas o modos de operación. 3.1.5 Modulación en Amplitud, Vibrato Como se mencionó en el capı́tulo anterior, de acuerdo al usuario de un sintetizador eventualmente se requiere introducir algún efecto como trémolo o vibrato. Este bloque genera dichos efectos con la información contenida en los registros. En sı́ genera la información sonora, es decir, genera un código que es traducido por el operador para generar el sonido deseado. De acuerdo a algunos valores del registro se ajusta la modulación en amplitud e igual que el LFO (Low Frequency Vibrator) de un sintetizador analógico produce los dichos efectos de vibrato o trémolo. Aparte, con los datos que genera este bloque se puede generar un defasamiento o modificar a la envolvente según se requiera. 3.1.6 Generador de Fase (PG) Dentro de la música existe la necesidad de deternminar los tiempos de retardo de los sonidos, algunos serán simultáneos y otros será necesario defasarlos, es decir ejecutarlos en tiempos distintos. A este bloque se le llama Phase Generator (PG), o generador de fase por que de acuerdo a los datos que le proporcione el bloque de modulación en amplitud, genera un defasmiento que es traducido como tal e introducido al operador, mediante el cual afecta a la salida audible. Se puede generar un defsamiento de valor 0 para sincronizar dos o más sonidos de una melodı́a ası́ como generar sonidos defasados para los acompañamientos. — 29 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 3.1.7 Generador de Envolvente ADSR Al igual que en un sinteizador analógico, el generador de envolvente contribuye en gran medida para la forma de onda de un sonido especı́fico. Se denomina ADSR (Attack, Decay, Sustain y Release), llamado ası́ por que genera los tiempos de ataque (tiempo en el que el sonido alcanza su máximo nivel), decaimiento (el tiempo que el sonido disminuye), sostenimiento (el tiempo que el sonido sostiene una nota) y relajación (tiempo en que el sonido desaparece). La gran importancia de este bloque radica en que cada sonido tiene su propia envolvente y poder imitarla le permite crear sonidos idénticos a los originales, por ejemplo la voz de un piano. 3.1.8 Operador Principal OP Propiamente hablando, este bloque es el sintetizador en sı́ mismo. Se le llama operador pricipal OP, que es el encargado de interpretar todos los datos de los demás bloques para realizar la sı́ntesis del sonido, es decir, cada bloque genera un dato en especı́fico como la envolvente o la fase, y se compilan todos dentro de este OP. Existen diferentes modos de operación para este bloque, lo que genera diferentes datos y por ende diferentes sonidos. Los datos generados por el OP son trasnmitidos a los bloques acumuladores en forma de trenes de datos seriales que contienen la información del sonido que cada canal va a generar. 3.1.9 Acumuladores Cuando el OP transmite los datos a los acumuladores lo hace durante solo un instante, es decir solo dentro de un único ciclo de reloj. Después de recibir los datos, los acumuladores los — 30 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI sostienen el tiempo suficiente para que sean transmitidos a un dispositivo DAC, esta tarea la realizan sincronizados con respecto al control de tiempo, para separar de forma óptima un canal del otro y realizarlo de forma precisa y rápida. Dentro de los acumuladores existe una memoria volátil que cambia los datos cada vez que los recibe del OP y repite la tarea cada vez. 3.2 Funciones Principales Al analizar los bloques anteriores es evidente que este componente (el OPL3) es un completo DSP (Digital Signal Processor) y como tal posee diversas funciones, cada una determinada por la configuración de conexiones y señales que detecten los pines de entrada y los datos de los resgistros y direcciones. En la tabla 3.1 se encuentran enumerados los pines con los que cuenta el dispositivo y en la Figura 3.2 se muestra un esquema fı́sico del chip. 3.2.1 Reloj Maestro Esta función es fundamental, ya que proporciona la base de tiempo para todas las demás funciones del componente. Este reloj maestro funciona con una señal externa a frecuencia de 14.32 MHz aplicada al pin φM, puede ser un circuito oscilador, otro dispositivo digital con el que se desee sincronizar o un cristal oscilador. 3.2.2 Interfase con PC Forzosamente se requiere un dispositivo externo para controlar todas las funciones del OPL3. Con el dispositivo que sea se requiere escribir datos a los registros conformados por los pines — 31 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 3.2: Esquema fı́sico de Pines \CS, \RD, \WR, A0, A1 y D0-D7. El proceso de escribir datos a un registro o leer el estado de alguno es completado mediante una señal de 8 bits y una interfase en paralelo con una PC o cualquier otro dispositivo. D0-D7 conforman un bus de datos bidireccional que detecta y transmite datos al controlador seleccionado, \CS, \RD, \WR, A0 y A1 son los que determinan el intercambio de datos como muestra la Tabla 3.2. Modo Inactivo Este sintetizador cuenta con un modo de operación diseñado para que prácticamente no opere. Esta situación es útil en diseños con varios sintetizadores, ya que cuando se requiere que uno o varios no actúen se programan en este modo. Este modo se activa cuando el — 32 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI pin \CS tiene un estado en alto, todo el bus bidireccional D0-D7 tiene un estado de alta impedancia inhabilitando el chip entero. Modo para Escritura de Dirección Para operar correctamente el sintetizador es necesario accesar a las diferentes direcciones con las que cuenta, cada dirección posee un resgistro y cada uno de ellos determina ciertos parámetros para el operador y los demás bloques. Este modo se utiliza exclusivamente para escribir dicha dirección. Existen dos arreglos de resgistro, determinados por el bit A1, cada arreglo tiene diferentes registros en la dirección correspondiente. Para el arreglo de registro 0, A1=L. Para el arreglo de registro 1, A1=H. La dirección de los datos deberı́a de salir por el Bus de Datos. Después de este ciclo, se puede volver a escribir un dato en este modo después de 32 ciclos de reloj. Modo para Escritura de Datos Para poder introducir datos que especifiquen caracterı́sticas del sonido al operador o direcciones para establecer los registros a usar, se tiene que habilitar este modo, donde el sintetizador recibe los datos desde la interfase del bus bidireccional. Se indica la dirección y de ser necesario escribe los datos en dicha dirección. Los datos a ser escritos deben salir en el bus de datos bidireccional. Al igual que el modo de escritura de dirección, se requiere una espera de 32 ciclos de reloj antes de escribir la siguiente dirección o dato. — 33 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Modo de Lectura En determinado momento el controlador externo o PC, e incluso la misma interfase, requieren establecer el estado del sintetizador, es decir si esta capturando datos o enviándolos, o requiere verificar alguna bandera para establecer sincronı́a. Al activar el modo de lectura, los estados de las banderas significativas se monitorean en el bus de datos. 3.2.3 Interfase con DAC También conocido como Conversor D/A, el DAC es el dispositivo encargado de transformar los datos binarios a una señal audible. El YMF262 genera 4 canales de sonido que salen por DOAB y DOCD. El flujo de datos de los canales A y B salen por DOAB y el flujo de los canales C y D se obtienen por DOCD. Los datos del sonido son transmitidos como un flujo de datos binarios seriales compensados de 16 bits. Es importante señalar que la frecuencia de muestreo del YMF262 es de 49.7 KHz. Como parte de la interfase, el YMF262 tiene tres salidas de regulación de tiempo (φSY, SMPBD y SMPAC), el cual se muestra en la Figura 3.3. Figura 3.3: Regulación de tiempo de DAC — 34 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 3.3 Mapa de Resgistro Como ya se ha mencionado antes, cada dirección posee uno o varios resgitros especı́ficos agrupado en una palabra de 8 bits. Al introducir una dirección (con rango desde 01 hasta F5) cada uno de los pines D0-D7 adquiere el valor del registro y este puede ser accesado. Dentro de la memoria del sinteizador existen 2 mapas con diferentes funciones, cada uno para un valor de A1. Eventualmente existirán direcciones donde uno o más bits no operan, e incluso puede presentarse que la dirección entera genere un bloque inoperante. Para poder ilustrar estas situaciones, se presenta un esquema llamado mapa de registro. Con este esquema se puede conocer el rango de direcciones del componente y verificar la función que cada una realiza. En la Figura 3.4 se muestra el estado de los registros D0-D7 en cada dirección válida para ambos estados del pin A1. 3.4 Organización de la Fuente de Señal FM Una gran posibilidad del sinteizador es llevar a cabo una modulación FM a la salida de la señal, obteniendo sonidos con diferentes propiedades. Algunos registros, como se muestra en el Mapa 3.4 activan esta señal FM en determinado canal de los cuatro que dispone a la salida. Este grupo de registros también se divide en dos bloques diferentes dados por el valor de A1. En la Figura 3.5 se muestra un esquema de los registros de los canales existentes para los dos estados posibles de A1. — 35 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Tabla 3.1: Configuración de Pines No. Pin I/O Sı́mbolo Función 1 — VDD Fuente de +5 VCC 2 OD \IRQ Solicitud de Interrupción de Tiempo 3 I+ \IC Borrado Inicial 4 I A0 Interfase con PC, Entrada para Selección de Dirección 5 I A1 Interfase con PC, Entrada para Selección de Dirección 6 I \WR Interfase con PC, Habilita la escritura de datos 7 I \RD Interfase con PC, Habilita la lectura de datos 8 I+ \CS Interfase con PC, Entrada de selección de Chip 9 O TEST Pin de prueba LSI (normalmente no conectado (NC) 10 I/O D0 Interfase con PC, Bus de datos, bit menos significativo (bms) 11 I/O D1 Interfase con PC, Bus de datos 12 — VSS Tierra (GND) 13 I/O D2 Interfase con PC, Bus de datos 14 I/O D3 Interfase con PC, Bus de datos 15 I/O D4 Interfase con PC, Bus de datos 16 I/O D5 Interfase con PC, Bus de datos 17 I/O D6 Interfase con PC, Bus de datos 18 I/O D7 Interfase con PC, Bus de datos, Bit Más Significativo (BMS) 19 O SMPBD Interfase con DAC, Muestreo/Sostenimiento canales B y D 20 O SMPAC Interfase con DAC, Muestreo/Sostenimiento canales A y C 21 O DOAB Interfase con DAC, Salida de datos serial canales A y B 22 O DOCD Interfase con DAC, Salida de datos serial canales C y D 23 O φSY Interfase con DAC, Señal de Candado de Datos 24 I φM Entrada de Reloj Maestro (14.32 MHz) OD Open Drain, salida de descarga abierta I+ Es un pin de entrada de extracción Tabla 3.2: Configuración del Bus de Control Modo de Acceso \CS \RD \WR A0 A1 Inactivo H ? ? ? ? Escritura de Dirección L H L L L/H Escritura de Datos L H L H ? Estado de Lectura L L H L L L= estado bajo o 0 (GND) H= estado alto o 1 (+5VCC ) ?= estado indistinto — 36 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 3.4: Mapa de Registro — 37 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 3.5: Organización de la fuente de Señal FM — 38 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 3.5 Registros Como ya se ha señalado anteriormente, los registros son la parte más importante de la programación del sintetizador. Cada registro determina la función del chip a utilizar, el flujo de datos y las caracterı́sticas que tendrá el sonido a producir. Cada registro se accesa con una dirección y se establecen los estados de operación. Durante el proceso de ejecución los registros se accesan y cambian en todo momento. A continuación se enumeran los registrso de uso general del chip YMF262. • TIMER 1: Valor Predeterminado del Temporizador 1 TIMER 1 es un contador de 8 bits predeterminado. Se presenta cada 80µs y \IRQ (interrupción de tiempo) es generada cuando tiene un sobreflujo, cuando esto ocurre el valor de TIMER 1 se recarga automáticamente en el contador. El tiempo en que tarda en generarse \IRQ (tov) se calcula de la siguiente manera: tov[ms] = (255 − N 1) ∗ 0.08 N 1 = D7 ∗ 27 + D6 ∗ 26 + D5 ∗ 25 + D4 ∗ 24 + D3 ∗ 23 + D2 ∗ 22 + D1 ∗ 2 + D0 • TIMER 2: Valor Predeterminado del Temporizador 2 TIMER 2 es un contador de 8 bits predeterminado. Se presenta cada 320µs y \IRQ (interrupción de tiempo) es generada cuando tiene un sobreflujo, cuando esto ocurre el valor de TIMER 1 se recarga automáticamente en el contador. El tiempo en que tarda en generarse \IRQ (tov) se calcula de la siguiente manera: tov[ms] = (255 − N 1) ∗ 0.32 N 1 = D7 ∗ 27 + D6 ∗ 26 + D5 ∗ 25 + D4 ∗ 24 + D3 ∗ 23 + D2 ∗ 22 + D1 ∗ 2 + D0 • RESET: IRQ Reset — 39 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Borra la señal de \IRQ generada por los temporizadores 1 y 2. RST=1 genera el estado \IRQ=H. • MT1: Máscara de Temporizador 1 Si esta máscara es MT1=1, la señal de \IRQ no se genera con el sobreflujo del temporizador 1. • MT2: Máscara de Temporizador 2 Si esta máscara es MT2=1, la señal de \IRQ no se genera con el sobreflujo del temporizador 2. • ST1: Control de Temporizador 1 Cuando ST1=1, el temporizador 1 carga el valor predeterminado y empieza la cuenta. Si ST1=0, el contador se detiene. • ST2: Control de Temporizador 2 Cuando ST2=1, el temporizador 2 carga el valor predeterminado y empieza la cuenta. Si ST2=0, el contador se detiene. • NTS: Selección de Nota Con este registro se selecciona el método de división del teclado para escoger el número de Key Scale, como se muestra en las Tablas 3.3 y 3.4. Tabla 3.3: Selección de notas para NTS=0 Datos de BLOCK 0 1 2 3 4 5 6 7 F-Number BMS ? ? ? ? ? ? ? ? o F-Number 2 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Key Scale 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ?= estado indistinto — 40 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Datos de BLOCK F-Number BMS F-Number 2o Key Scale Tabla 3.4: Selección 0 1 2 0 1 0 1 0 1 ? ? ? ? ? ? 0 1 2 3 4 5 de notas para NTS=1 3 4 5 0 1 0 1 0 1 ? ? ? ? ? ? 6 7 8 9 10 11 ?= 6 7 0 1 0 1 ? ? ? ? 12 13 14 15 estado indistinto • AM: Trèmolo Activa el efecto trémolo para el puerto conrrespondiente cuando AM=1. La velocidad de repetición es de 3.7 Hz y la intensidad está conrolada por el registro DAM. • VIB: Vibrato Activa el efecto vibrato para el puerto conrrespondiente cuando VIB=1. La velocidad de repetición es de 6.1 Hz y la intensidad está conrolada por el registro DVB. • EGT: Envolvente Generar la envolvente es crucial en la generación de sonidos. Con este registro que está en el bloque ADSR se determinan los tiempos correspondientes a la envolvente y las caracterı́sticas de la misma. Si EGT=1, selecciona el sonido sostenido, y mantiene el nivel de sostenimiento (SL) mientras el registro KON=1. (Fig. 3.6 izq.)Si EGT=0 selecciona el decaimiento, y el rango de relajamiento (RR) actúa aún si KON se mantiene en 1. (Fig. 3.6 der.) • KSR: Seleccion de Velocidad de Key Scale Con instrumentos musicales normales, la velocidad de ataque/decaimiento es más rápida conforme aumenta el pitch. El registro KSR controla simula este efecto. Un corrimiento es agregado a las velocidades de Ataque, Decaimiento y Relajación de la siguiente manera: V elocidad actual = V elocidad ∗ 4 + Rof — 41 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 3.6: Envolvente con los valores de EGT si V elocidad = 0, V elocidad actual = 0 Rof se determina con la Tabla 3.5, dependiendo del valor de KSR: No. Key Scale KSR=0 KSR=1 Tabla 0 1 2 3 0 0 0 0 0 1 2 3 3.5: Valores 4 5 6 7 1 1 1 1 4 5 6 7 para Rof 8 9 10 11 12 13 14 15 2 2 2 2 3 3 3 3 8 9 10 11 12 13 14 15 • MULT: Multiplicador de Frecuencia Determina el multiplicador de frecuencia especificado por el registro BLOCK y FNumber. Este multiplicador es aplicado a la portadora de FM y frecuencias moduladas. (Tabla 3.6) Tabla 3.6: Valores de Multiplicador MULT 0 1 2 3 4 5 6 7 8 9 A B C D E F Multiplier 1/2 1 2 3 4 5 6 7 8 9 10 10 12 12 15 15 — 42 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI • KSL: Selección de Nivel de Key Scale Con los instrumentos musicales convencionales, el volumen disminuye conforme aumenta el pitch. Este registro se usa para simular ese efecto. De acuerdo al valor de KSL se genera una atenuación como se muestra en la Tabla 3.7 Tabla 3.7: Atenuación en función de KSL KSL 0 2 1 3 Atenuación 0 1.5 dB/Oct 3 dB/Oct 6 dB/Oct • TL: Volumen y Modulación Acorde con la salida del generador de envolvente se realiza la atenuación, pudiendo controlar la modulación o el volumen. Atenuación= 24 ∗ D5 + 12 ∗ D4 + 6 ∗ D3 + 3 ∗ D2 + 1.5 ∗ D1 + 0.75 ∗ D0 [dB] • Generador de envolvente ADSR Este es un conjunto de 4 registros, el valor de cada uno determina los tiempos de Ataque, Decaimiento, Sostenimiento y Relajación. Velocidad de Ataque AR = 23 ∗ D7 + 22 ∗ D6 + 2 ∗ D5 + D4 Velocidad de Decaimiento DR = 23 ∗ D3 + 22 ∗ D2 + 2 ∗ D1 + D0 Nivel de sostenimiento SL = 24 ∗ D7 + 12 ∗ D6 + 6 ∗ D5 + 3 ∗ D4 Si D7 = D6 = D5 = D4 = 1, SL = 93dB Velocidad de Relajación RR = 23 ∗ D3 + 22 ∗ D2 + 2 ∗ D1 + D0 — 43 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI • F-Number: Datos de escala con Octava Proporciona los datos de pitch junto con los de BLOCK. F-Number= f ∗ 219 /f s/2BLOCK−1 f =frecuencia f s=frecuencia de muestreo; f s = f M/288 • KON: Generación de Sonido Si KON=1, el canal seleccionado genera un sonido. • BLOCK: Datos de Octava Genera los datos de octava con F-Number. • DAM: Selección de Intensidad de Modulación en Amplitud Solo hay dos valores para este parámetro, si DAM=1, 4.8 dB; si DAM=0, 1 dB. • DVB: Selección de Intensidad de Vibrato Nuevamente solo hay dos valores para este parámetro, si DVB=1, 14%; si DVB=0, 7% dB. • RYT: Selección de Modo de Sonido Rı́tmico Si RYT=1, los canales 7-9 pueden ser utilizados para generar sonidos rı́tmicos. El YMF262 puede generar 5 diferentes bases rı́tmicas, BD(Bass-Drum), SD (Snare-Drum), TC (Top-Cymbal), TT (Tom-Tom) y HH (Hit-Hat). Cada uno de ellos es a su vez un registro que actúa como un switch, cualquiera que tenga el valor de 1 generará el sonido correspondientes por un puerto. (Tabla 3.8) • FB: Intensidad de Modulación para Retroalimentación FM en el puerto 1 — 44 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Tabla 3.8: Sonidos Rı́tmicos Sonido Rı́tmico Puerto usado BD(Bass-Drum) 13, 16 SD(Snare-Drum) 17 TC(Top-Cymbal) 15 TT(Tom-Tom) 18 HH(Hit-Hat) 14 De acuerdo al valor que tenga FB se llevará a cabo una modulación FM cuyo valor se da en radianes en la Tabla 3.9. Tabla 3.9: Modulación de acuerdo a FB FB 0 1 2 3 4 5 6 Modulación 0 π/16 π/8 π/4 π/2 π 2π 7 4π • NEW: Selección de Operación OPL2/OPL3 Con este registro se puede utilizar la caracterı́stica retrocompatible del OPL3 con el OPL2. Para utilizar el sistema de OPL3 solo hay que escribir NEW=1 durante la inicialización. • CNT: Conexión de Operadores Dos operadores pueden ser conectados en serie o en paralelo de acuerdo al valor CNT como lo muestra la Figura 3.7. La conexión determina qué tipo de sı́ntesis se realizará; si CNT=O, se lleva a cabo una sı́ntesis FM, donde OP1 es la moduladora y OP2 es la portadora; si CNT=1, se realiza una sı́ntesis aditiva equivalente a una modulación AM. Con cuatro operadores, ambos bits de CNT se usan para especificar la dirección que corresponde a la operación deseada. (Tabla 3.10). Para cada dirección corresponde una configuración de los cuatro operadores como se muestra en la Figura 3.8. En estos modos de operación se combinan las propiedades de — 45 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 3.7: Conexión con 2 operadores Tabla 3.10: Direcciones de CNT con 4 operadores No. de Canal (Cuatro Operadores) 1 2 3 4 5 6 Dirección CNT C0, C3 C1, C4 C2, C5 C0, C3 C1, C4 C2, C5 A1 L H los modos de operación de 2 operadores, FM-FM, AM-FM, FM-AM y AM-AM. Cada uno de estos modos proporciona al sonido caracterı́sticas diferentes. — 46 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 3.8: Conexión con 4 operadores — 47 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI • WS: Selección de Forma de Onda Con este registro se selecciona una de las 8 formas de onda que puede generar el sintetizador. Cada forma de onda tiene caracterı́sticas sonoras diferentes y junto a la envolvente, marca la gran gama de sonidos que puede entregar el chip. Este registro consta de tres bits, de acuerdo al valor de WS será la forma, como se muestra en la Figura 3.9 — 48 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 3.9: Formas de Onda disponibles — 49 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI • CHA, CHB, CHC, CHD: Selección de Canal de Salida Este sintetizador posee cuatro canales de salida, cada uno con su propio registro. Cuando cualquiera de estos registros esta en 1, la salida de datos es por el canal correspondiente. Aunque se tienen 4 canales, solo se cuenta con 2 pines de salida, lo cual hace necesaria una decodificación serial en sincronı́a con el reloj φSY tal como se muestra en la interfase con el DAC (3.3). CHA y CHB corresponden al pin de salida DOAB, y CHC y CHD son del pin de salida DOCD. • CONNECTION SEL: Modo con Cuatro Operadores Con este registro compuesto por D0-D5, se ocupa un canal de Cuatro Operadores y se usan dos canales de Dos Operadores, dependiendo de que bits de D0-D5 se encuentren en 1, como se muestra en la Tabla 3.11. Tabla 3.11: Asignación de canales en modo de Cuatro Operadores CONNECTION SEL D5 D4 D3 D2 D1 D0 Canal de Cuatro Operadores 6 5 4 3 2 1 Canales de Dos Operadores usados 12, 15 11, 14 10, 13 3, 6 2, 5 1, 4 3.6 Registros de Estado Este sintetizador cuenta con tres bits que muestran el estado en que se encuentra, estos bits son D7, D6 y D5 del bus bidireccional. Cada uno en determinado momento puede ser monitoreado y actuar como una bandera o flag. Cada bandera representa un estado de operación del sintetizador, como lo muestra la Tabla 3.12. BIT Status Tabla 3.12: Banderas de Estado D7 D6 D5 D4 D3 D2 D1 D0 IRQ FT1 FT2 — 50 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI • FT1: Bandera Sobreflujo de Temporizador Esta bandera indica un sobreflujo en el Temporizador 1 colocando un 1 en su estado. Esta bandera no reinicia hasta que se escribe un RST. • FT1: Bandera Sobreflujo de Temporizador Esta bandera indica un sobreflujo en el Temporizador 2 colocando un 1 en su estado. Esta bandera no reinicia hasta que se escribe un RST. • IRQ: Solicitud de Interrupción Su estado cambia a 1 cuando cualquiera de FT1 o FT2 se activan. Esta bandera tampoco se reinicia hasta que se escribe un RST. 3.7 Caracterı́sticas Eléctricas Cuando se pretende diseñar un circuito electrónico es de suma importancia considerar sus caracterı́sticas eléctricas para poder minimizar las fuentes de error al momento de operarlo. En las tablas siguientes (3.13 - 3.16) se muestran los valores más comunes a tomar en cuenta en el diseño. Tabla 3.13: Rendimiento Máximo Absoluto Caracterı́stica Unidades Sı́mbolo Rendimiento Voltage de Fuente de Alimentación V VDD -0.3 ∼ 7.0 Voltage de Entrada V VI -0.3 ∼ VDD +0.5 o Temperatura de Operación C TOP 0 ∼ 70 o Temperatura de Almacenamiento Tstg -50 ∼ 125 C Tabla 3.14: Condiciones de Operación Recomendadas Caracterı́stica Unidades Sı́mbolo Min Typ Max Voltage de Fuente de Alimentación V VDD 4.75 5.00 5.25 Temperatura de Operación V TOP 0 25 70 — 51 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Tabla 3.15: Caracterı́sticas de CC (Condiciones: Ta=0∼70o C, VDD =5.0±0.25 V) Caracterı́stica Unidades Sı́mbolo Condiciones Min Typ Max Consumo de Energı́a mW PD VDD =5.0V 50 fM =14.32MHz Voltaje de Entrada 1, H V VIH1 ∗1 2.2 Voltaje de Entrada 1, L V VIL1 ∗1 0.8 Voltaje de Entrada 2, H V VIH2 ∗2 3.5 Voltaje de Entrada 1, L V VIL2 ∗2 1.0 Pérdida de Corriente µA ILI VI =0∼0.5V,∗3 -10 10 a la Entrada Capacitancia de Entrada pF CI 10 Voltaje de Salida, H V VOH IOH =-80µA VDD -1.0 Voltaje de Salida, L V VOL IOL =2.0mA 0.4 Capacitancia de Salida pF CO 10 Pérdida de Corriente µA ILO VI =0∼0.5V,∗4 -10 10 a la Salida Resitencia de Extracción KΩ RU 80 400 NOTA: ∗1: Aplicado a \WR, \RD, \CS, A0, A1, D0-D7 (si usan como pines de entrada) ∗2: Aplicado a φM, \IC ∗3: Aplicado a φM, \WR, \RD, A0, A1, D0-D7 (si usan como pines de entrada) ∗4: Cuando D0-D7 están en alta impedancia Tabla 3.16: Caracterı́sticas de CA (Condiciones: Ta=0∼70o C, VDD =5.0±0.25 V) Caracterı́stica Unidades Sı́mbolo Figura Min Typ Max Frec. de Reloj Maestro MHz fM Figura 3.10 10 14.32 16 Duty de Reloj Maestro % D 40 50 60 Ancho de Pulso de Reset s tICW Figura 3.11 400/f M Tiempo para establecer ns tAS Figuras 3.12 10 Dirección -3.13 Tiempo que mantiene ns tAH Figura 3.12 10 la Dirección -3.13 Ancho de CS en Escritura ns tCSW Figura 3.12 100 Ancho de CS en Lectura ns tCSR Figura 3.13 150 Ancho de pulso en Escritura ns tW W Figura 3.12 100 Establecimiento de Datos ns tW DS Figura 3.12 10 Sostenimiento de Datos (W) ns tW DH Figura 3.12 20 Ancho de pulso en Lectura ns tRW Figura 3.13 150 Tiempo para Acceso de Datos ns tACC Figura 3.13 150 Sostenimiento de Datos (R) ns tAS Figura 3.13 10 — 52 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 3.10: Tiempo de Reloj de Entrada Figura 3.11: Pulso de Reset — 53 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 3.12: Tiempo de Direccionamiento/Escritura de datos Figura 3.13: Tiempos en estado de Lectura — 54 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 3.8 Caracterı́sticas Fı́sicas Este circuito generalmente se presenta en dos posibles encapsulados, el tipo S de montaje superficial, de 48 pines, es más pequeño para diseño más reducidos de producción en serie; y el que se utiliza es el tipo M de 24 pines, que es un diseño más grande, pero es más versátil en diseños experimentales (Figura 3.14). Es importante analizar estos parámetros para realizar la construcción de manera óptima en el menor espacio posible. Figura 3.14: Dimensiones del encapsulado tipo M — 55 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 3.9 Resumen En este capı́tulo se han analizado las caracterı́sticas especı́ficas del componente principal del circuito que se propone en esta tesis: el YMF262, el cual requiere +5V CC para operar adecuadamente junto con una señal de reloj de 14.32 MHz. También se ha analizado la manera óptima de conectarlo con una PC para ası́ poder tener acceso a los prinipales registros que se deben operar para poder generar un sonido con el tono y el timbre deseados (ver 3.4. Los comandos que se proporcionen mediante la PC deben de ir enfocados a modificar los registros ya mencionados para obtener el máximo rendimiento de las posibilidades del componente, y se considera de suma importancia llevar a cabo todas las implementaciones necesarias (tanto de software como de hardware) tomando en cuenta los diagramas de tiempo (ver Figs. 3.10, 3.11, 3.12 y 3.13), ya que la sincronización de los componentes depende de los tiempos de operación del componente. En el siguiente capı́tulo se expone el diseño para la construcción e implementación del circuito que permita aprovechar las caracterı́sticas del sintetizador para generar sonidos predeterminados por una PC. — 56 — Capı́tulo 4 Diseño del Hardware En este capı́tulo se establecen los criterios a seguir para el diseño apropiado para la implementación de un circuito electrónico digital de propósito especı́fico para obtener una salida de audio óptima. Se propone el uso de componentes comerciales de uso común para realizar las diversas etapas de las que consta el diseño del dispositivo. Debido a ciertas caracterı́sticas de salida digital del sintetizador previamente mencionadas es recomendable emplear un conversor Digital-Analógico especı́fico diseñado por YAMAHA Company adapatado especialmente para ser utilizado en conjunto con el componente OPL3. 4.1 Sintetizador Como ya se describió en el capı́tulo anterior, lo primero que requiere el sintetizador para operar es un cristal oscilador de 14.32 MHz, este criterio es marcado por el fabricante. Un problema que se presenta en este punto radica en que el valor de frecuencia ideal no es comercial, por lo que se sugiere emplear uno con el valor más crecano, que es de 14.318 MHz. Este componente se alimenta con una fuente de +5VCC para que genere una onda de forma 57 Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI cuadrada a la frecuencia ya mencionada. Esta señal que proporciona el cristal es conectada directamente al pin φM. De acuerdo a los datos del capı́tulo anterior, el sintetizador tiene un bus bidireccional (pines D0-D7) que se conectan a la PC directamente, estos pines pueden ser agrupados en un sólo puerto que llamaremos J2. También se conectan a la PC los pines de control de estados y direccionamiento. El pin \IC, que es el que reinicia el sistema; \WR que habilita la escritura de datos y \CS que habilita el chip estan conectados a una misma terminal para que siempre que funcione el chip puedan escribirse datos en el bus bidireccional; el pin \RD se conecta a VCC para inhabilitarlo, pues no es necesario en este diseño obtener un monitoreo de los estados del sintetizador; y finalmente A0 y A1 se conectan independientes para realizar la selección del bloque de registro correspondiente. Todo esto se agrupa en un sólo puerto de entrada J3. Es importante señalar que, dado que el diseño no requiere hacer ninguna interrupción de tiempo, el pin \IRQ se deja sin conectar; tampoco se requiere acceder al estado de prueba, por lo que que el pin TEST también se deja sin conectar. Finalmente se conectan los pines de salida a la parte del conversor Digital-Analógico. El pin φSY se conecta a los conversores para llevar a cabo la sincronización de los canales correspondientes . En consecuencia se conectan los pines DOCD, DOAB, SMPAC y SMPBD a los conversores correspondientes para separar los canales de manera óptima. La conexión sugerida para el sintetizador se muestra en la Figura 4.1. — 58 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 4.1: Diagrama a bloques de conexiones del sintetizador 4.2 DAC Una caracterı́stica muy significativa del sintetizador es la configuración de salida (Figura 3.3). Los cuatro canales de salida están repartidos en 2 pines de salida (DOCD y DOAB)y 2 de sincronización (SMPAC y SMPBD) gobernados por un reloj secundario proporcionado por el mismo sintetizador (φSY). Con estas condiciones se requiere un conversor que sea capaz de separar ambos canales seriales de una señal del sintetizador en 4 canales paralelos. El diseño de un dispositivo con dichas caracterı́sticas puede llegar a ser muy tedioso, grande y poco práctico. Por tal motivo se hace uso de un dispositivo conversor Digital-Analógico de 2 canales flotantes, un sólo chip de número YAC512 fabricado por YAMAHA Company. Este com— 59 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI ponente puede recoger una señal serial del sintetizador y entregar a la salida dos señales analógicas independientes. Como cada uno de estos componentes sólo puede procesar una señal de dos canales, se hará uso de dos componentes conectados como en la Figura 4.2. Figura 4.2: Conexión de los DAC 4.3 Amplificación En esta etapa se llevan a cabo dos redes de amplificación: la que corresponde a cada uno de los canales analógicos de salida (CH1 y CH2 de cada DAC) que es un circuito seguidor simple con un capacitor conectado a tierra de acuerdo a los datos que proporciona el fabricante (Fig. 4.3); y la que corresponde a una retroalimentación necesaria entre dos terminales del mismo DAC, que son la de CV (Center Voltage) a MP (Ajuste de voltaje de referencia) mostrada en la Fig. 4.4 y la red que proporciona la sincronı́a de las salidas CH1 y CH2, que esta de AOUT (Selector de salida CH1/CH2) y SWIN (Punto común del Interruptor de los canales CH1/CH2) mostrada en la Figura 4.5 Con el fin de obtener la mejor calidad del sonido generado se recomienda un amplificador — 60 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 4.3: Amplificadores de salida para el DAC de bajo nivel de ruido,por lo que se utiliza un J-FET de número de serie TL074, un circuito √ integrado que ofrece un valor de equivalente de voltaje de ruido de entrada de 15nV / Hz, y una distorsión armónica de 0.01%. 4.4 Salida de Audio Esta etapa final se implementa con una red de amplificación por cada canal, obteniendo un máximo de 4 salidas monofónicas (que de acuerdo a la programación del mismo sintetizador se pueden convertir en 2 canales estéreo). Cada canal tiene un amplificador configurado como filtro activo y a la salida tiene un filtro pasivo, estos útlimos son los que garantizan que la salida esté dentro del rango audible de 20 Hz - 20 KHz. (Fig. 4.6) — 61 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 4.4: Retroalimentación para CV y MP Figura 4.5: Retroalimentación para selecciópn de canales 4.5 Fuente Como ya se mencionó en el capı́tulo anterior, el componente OPL3 requiere un valor de voltaje de +5VCC para operar correctamente (conectado en J1), mientras que la red de amplificación sugerida requiere valores de voltaje de +12VCC y -12VCC en la polarización de cada componente (conectados en J1). Por tal motivo se sugiere el uso de una fuente de alimentación conmutada (similar a la de una PC casera) que pueda entregar simultáneamente los valores correspondientes a partir de 127VCA a 60 Hz, señal con la que se cuenta comercialmente. También se sugiere el uso de un diodo LED conectado en serie con una resistencia a la alimentación general, con el fin de tener un indicador que muestre que la fuente está — 62 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 4.6: Arreglo para la Salida de audio operando. Uno de los problemas que enfrentan los circuitos que trabajan con frecuencias muy altas (VHF), es el ruido eléctrico que se puede generar por condiciones aleatorias alterando las señales y datos con los que se estén trabajando. Por este motivo se sugiere el uso de una pequeña red de capacitores en paralelo; uno de 10µf, electrolı́tico y uno de 100nf. Esta red se conecta en paralelo con la alimentación de cada uno de los circuitos integrados y fı́sicamente lo más cercano posible a ellos. 4.6 Diagrama de Conexiones En el siguiente esquema se muestra la conexión fı́sica de los componentes, y como se agrupan los conectores J1 - J7. — 63 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 4.7 Interfaz a PC Como ya se mencionó antes, este dispositivo debe ser conectado a una PC con el fin de que sea programado mediante una interfaz. Con el propósito de realizar las pruebas primarias, se recomienda el uso del puerto paralelo LPT1 mediante un conector DB25, con perspectivas futuras de cambiar esta interfaz por alguna que llegue a ser más práctica. Un puerto paralelo esta formado por 17 lı́neas de datos entrada-salida y 8 lı́neas de tierra. Las lı́neas de datos a su vez se agrupan en 4 lı́neas de control que son usadas para el control del intercambio de datos entre el dispositivo conectado (históricamente se usaba este puerto en impresoras) y la PC, 5 de estado que se usan para indicar a la PC una serie de datos predefinidos por el usuario desde el dispositivo conectado y 8 de datos que son propiamente los datos que interesa transmitir en la interfaz, que con las últimas tecnologı́as es un bus bidireccional. De acuerdo a la Tabla 4.1, se puede decidir que para realizar las pruebas primarias se puede usar una interfaz con las 12 salidas que brinda el propio puerto, las cuales serı́an referidas a las entradas de programación del sintetizador, usando las 4 salidas de control en los pines de J3, de la siguiente manera: RS - C0-, A0 - C1-, A1 - C2+ y WR - C3-. El bus bidireccional se conecta directamente. Finalmente se requiere un dispositivo de seguridad capaz de mantener separados el hardware del sintetizador de la PC, con este fin se sugiere utilizar un búffer de tercer estado, es decir que pueda entrar en alta impedancia de ser necesario. El modelo 74HC573 es un dispositivo que cumple eficientemente con estas caracterı́sticas, ya que puede actuar como un búffer o entrar en alta impedancia de acuerdo al control de un solo bit que puede ser gobernado por un sistema de seguridad más complejo que se diseñe más adelante. — 64 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Tabla 4.1: Tabla general del puerto paralelo Pin DB25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18-25 Señal Control 0 Dato 0 Dato 1 Dato 2 Dato 3 Dato 4 Dato 5 Dato 6 Dato 7 Estado 6 Estado 7 Estado 5 Estado 4 Control 1 Estado 3 Control 2 Control 3 Tierra Tipo Registro Activo C0Salida Bajo D0 Salida Alto D1 Salida Alto D2 Salida Alto D3 Salida Alto D4 Salida Alto D5 Salida Alto D6 Salida Alto D7 Salida Alto S6+ Entrada Alto S7Entrada Bajo S5+ Entrada Alto S4+ Entrada Alto C1Salida Bajo S3+ Entrada Alto C2+ Salida Alto C3Salida Bajo ———— — 65 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 4.7: Conexión de los componentes — 66 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 4.8: Conexión con el puerto Paralelo — 67 — Capı́tulo 5 Pruebas y Resultados Obtenidos En este capı́tulo se expone el trabajo hecho para la construcción del hardware adecuado para realizar las pruebas primarias con el sintetizador YMF262. Debido al tamaño de los componentes YMF262 y YAC512 (Fig 5.1) y a que son de montaje superficial, lo primero que se requiere hacer es adaptarlos para hacerlos más manejables y versátiles para poder cambiar el montaje de todo el hardware de ser necesario. La solución es colocarlos encima de una placa fenólica y trazar las pistas de forma que los pines queden ordenados linealmente y se pueda montar en el protoboard o soldarlo indirectamente haciendo uso de un soporte para CI’s (Fig. 5.2). Este proceso se requiere hacer con suma precacución y no es recomendable el uso de un cautı́n convencional, sino de un equipo espcializado en montaje superficial como lo es una pistola de aire caliente a 82o C, ya que con esto se logra que todos los puntos de soldadura se derritan a la vez exponiendo el componente al calor el menor tiempo posible. Al montar los circuitos, y como ya se mencionó anteriormente, es muy recomendable hacer uso de una red de capacitores que 10µF (electrólı́tico) y uno de 100pF (cerámico) para 68 Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 5.1: Tamaño comparativo de los componentes Figura 5.2: Montaje del CI — 69 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 5.3: Red de capacitores contra ruido atenuar cualquier señal de ruido que pudiera filtrarse dentro del CI, y ası́ prevenir una fuente de error.(Figura 5.3) Para construir la interfase, se sugiere el uso de conectores tipo pin (Figuras 5.4 y 5.5), ya que son muy versátiles en su manejo e implementar un cable plano (semenjante al IDE) de 12 hilos para comunicar una PC con el prototipo resulta conveniente y sencillo. Se recomienda agrupar los bits de control y el bus de datos por separado (4 y 8 respectivamente). Como fuente de alimentación se sugiere uitilizar una fuente conmutada de PC, por lo que es necesario utilizar un conector adecuado para el prototipo. Este cable se sugiere que tenga un conector 5,25. (Figura 5.6) — 70 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 5.4: Conectores — 71 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 5.5: Ubicación fı́sica de los Conectores — 72 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 5.6: Cable de alimentación — 73 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 5.7: Ubicación del cristal oscilador — 74 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI 5.1 Parámetros de Programación A continuación se describe el proceso para programar el sintetizador, los parámetros que se van a incluir en la palabra de programación estan enfocados a pruebas preliminares para producir el sonido de un violı́n y de un piano, por lo que en otras aplicaciones los valores de los registros cambiarán según las aplicaciones especı́ficas que desee cada usuario. La interfaz de este prototipo es mediante el puerto paralelo, por tal motivo la programación se llevará a cabo mediante lenguaje C/C++. Dentro del lenguaje de programación C/C++ hay una función para escribir datos en un puerto seleccionado, en este caso será el puerto paralelo LPT1 (0x378HEX ), con la siguiente sintaxis: #include<dos.h> void main(void) { outportb(0x378,"valor") } Dentro de la función outportb, el valor que requiere se divide en tres dı́gitos hexadecimales. El primero está destinado a establecer el modo de operación del componente, los dos últimos son los datos que se requiere escribir en el bus D0-D7. En la Tabla 5.1 se incluyen los valores necesarios del primer dı́gito para establecer los diferentes modos de operación. Es necesario establecer los parámetros generales antes de empezar a programar directamente los sonidos, por lo que en la Tabla 5.2 se especifican los valores que programan el — 75 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Tabla 5.1: Programación de los modos de operación Función Valor HEX Reiniciar el chip 0 Escribir direcciones (A0=1) 7 Escribir direcciones (A0=0) 5 Escribir datos 1 Tabla 5.2: Especificación de parámetros generales de programación Valor de Valor de Registros Propósito Dirección Datos 704 101 CONNECTION Establecer el uso de dos operadoSEL res 705 101 NEW Establecer sistema OPL3 504 160 MT1 y MT2 Establecer ambos registros en 1, para que no se generen los sobreflujos por tiempo 508 140 NTS Establecer NTS=1 para tener mayor rango de frecuencia 5BD 100 DAM, DVB, Establecer que no se requieren RYT, BD, SD, bases rı́tmicas TOM, TC, HH componente con esos parámetros. Para estas pruebas se han seleccionado dos instrumentos para emular sus sonidos: el piano y el violı́n. Cada uno de estos sonidos implica una envolvente diferente como se ilustra en las Figuras 5.8 y 5.9. El piano tiene un tiempo de ataque rápido, un tiempo de decaimiento también rápido, no sostiene un nivel en particular y el tiempo de relajamiento es prolongado; el violı́n posee un tiempo de ataque prolongado, no presenta decaimiento, sostiene un nivel mientras le frota la cuerda con el arco y el tiempo de relajación es muy corto. Para cada uno de estos sonidos se ha elegido un canal, por lo tanto cada uno tiene que ser programado por separado. Los parámetros que marcan la diferencia fundamental entre los dos sonidos son los que corresponden a la envolvente. Para el piano se programa el registro — 76 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Figura 5.8: Envolvente de un piano Figura 5.9: Envolvente de un violı́n — 77 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI EGT=0 con el fin de que ignore si el registro KON pasa al estado bajo y siga produciendo sonido simulando el golpe de la tecla (Fig. 3.6, mientras que EGT=1 para el violı́n, ya que mientras KON tenga valor alto sostendrá un nivel constante simulando cuando se frotala cuerda con el arco. Los valores de los registros correspondientes al ataque, decaimiento, sostenimiento y relajación se especifican en la Tabla 5.3, éstos valores fueron calculados con las ecuaciones indicadas en el capı́tulo 3. Tabla 5.3: Valores de los registros AR, DR, SL AR DR SL Piano 2 1 A Violı́n A 0 A y RR para ambos sonidos RR D 5 Con los datos de la envolvente podemos programar los registros correspondientes a cada sonido, como se muestra en las Tablas 5.4 y 5.5. Tabla 5.4: Parámetros para programar el sonido del piano Valor de Valor de Registros Propósito Dirección Datos 520 111 AM, VIB, Establecer que no habrá efectos EGT, KSR, de trémolo o vibrato, EGT=0 y MULT sin multipilicador 540 1C0 KSL y TL Prover de una atenuación de 3 dB/Octava 560 121 AR y DR Establecer tiempo de ataque y decaimiento 580 1AD SL y RR Establecer nivel de sostenimiento y tiempo de relajación 5C0 111 CHA-CHD, Establecer el canal de salida (A), FB, CNT sin retroalimentación y modo de dos operadores en paralelo Para programar la frecuencia se hace uso de los registros F-NUM y BLOCK, que se encuentran en el bloque de direcciones $AX y $BX (X toma el valor del canal del sonido que se este programando, para piano es 1 y para violin es 2). En este caso se programarán simultáneamente con los mismos valores, en la ejecución del programa se seleccionará uno — 78 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Tabla 5.5: Parámetros para programar el sonido del violı́n Valor de Valor de Registros Propósito Dirección Datos 521 131 AM, VIB, Establecer que no habrá efectos EGT, KSR, de trémolo o vibrato, EGT=1 y MULT sin multipilicador 541 1C0 KSL y TL Prover de una atenuación de 3 dB/Octava 561 1A0 AR y DR Establecer tiempo de ataque y decaimiento 581 1A5 SL y RR Establecer nivel de sostenimiento y tiempo de relajación 5C1 121 CHA-CHD, Establecer el canal de salida (B), FB, CNT sin retroalimentación y modo de dos operadores en paralelo Octava DO RE MI FA SOL LA SI Tabla 5.6: Frecuencia en Hz de Tonos 1 2 3 4 5 32.70 65.41 130.81 261.63 523.25 36.71 73.42 146.83 293.66 587.33 41.20 82.41 164.81 329.63 659.26 43.65 87.31 174.61 349.23 648.46 49.00 98.00 196.00 392.00 783.99 55.00 110.00 220.00 440.00 880.00 61.74 123.47 246.94 493.88 987.86 puros 6 1046.50 1174.66 1318.51 1396.91 1567.98 1760.00 1975.53 7 2093.01 2349.32 2037.02 2793.83 3135.96 3520.00 3951.07 sonido a la vez. Para producir los tonos de la Tabla 5.6 los registros de las direcciones $AX y $BX deben tomar los valores especificados en la Tabla 5.7 — 79 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Tabla 5.7: Valores de los Octava 1 2 Dirección AX BX AX BX DO B2 22 B2 26 RE 06 23 06 27 MI 65 23 65 27 FA 99 23 99 27 SOL 05 22 05 26 LA 45 22 45 26 SI 8B 22 8B 26 registros en 3 AX BX B2 2A 06 2B 65 2B 99 2B 05 2A 45 2A 8B 2A — 80 — $AX y $BX para cada 4 5 AX BX AX BX B2 2E B2 32 06 2F 06 33 65 2F 65 33 99 2F 99 33 05 2E 05 32 45 2E 45 32 8B 2E 8B 32 nota 6 AX B2 06 65 99 05 45 8B 7 BX 36 37 37 37 36 36 36 AX B2 06 65 99 05 45 8B BX 3A 3B 3B 3B 3A 3A 3A Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Tomando en cuenta lo anterior, se puede implementar el siguiente programa en lenguaje C para realizar las pruebas preliminares. Este programa envı́a la palabra de programación por el puerto paralelo (LPT1). #include<stdio.h> #include<dos.h> #include<conio.h> void main(void) { //Establecer los parametros generales int PG[11]={000h, 704h, 101h, 705h, 101h, 504h, 160h, 508h, 140h, 5BDh, 100h}; int i; for(i=0;j<=10;i++){ outportb(0x378,PG); } //Establecer los parametros para simular el piano int SP[10]={520h, 111h, 540h, 1C0h, 560h, 121h, 580h, 1ADh, 5C0h, 111h}; int j; for(j=0;j<=9;j++){ outportb(0x378,SP); } //Establecer los parametros para simular el violin int SV[10]={521h, 131h, 541h, 1C0h, 561h, 1A0h, 581h, 1A5h, 5C1h, 121h}; int k; for(k=0;k<=9;k++){ outportb(0x378,SV); } int REGA; int REGB; int BR[4]={5B0h,100h,5B1,100h}; int l; for(l=0;l<=3;l++){ outportb(0x378,SP); } //Se establece el instrumento a emular printf("Selecciona el instrumento"); — 81 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI printf("1.- Piano"); printf("2.- Viloin); int voz=getchar(); if(voz==’1’) {REGA=5A0h; REGB=5B0h;} if(voz==’2’) {REGA=5A1h; REGB=5B1h;} int int int int nota; octava; DATA; DATB; clrscr(); //Seleccion de octava printf("Selecciona Octava presionando un numero entre 1 y 7"); octava=getchar(); clrscr(); printf("INSTRUCCIONES:"); printf("Cada tecla genera un tono puro de la siguiente forma"); printf("Z=Do"); printf("X=Re"); printf("C=Mi"); printf("V=Fa"); printf("B=Sol"); printf("N=La"); printf("M=Si"); printf("Presiona Q para salir de la aplicacion"); do{ if(octava==’1’){ if(nota==’z’){DATA=1B2h;DATB=122h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’x’){DATA=106h;DATB=123h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’c’){DATA=165h;DATB=123h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’v’){DATA=199h;DATB=123h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’b’){DATA=105h;DATB=122h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’n’){DATA=145h;DATB=122h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’m’){DATA=18Bh;DATB=122h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} } if(octava==’2’){ — 82 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI if(nota==’z’){DATA=1B2h;DATB=126h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’x’){DATA=106h;DATB=127h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’c’){DATA=165h;DATB=127h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’v’){DATA=199h;DATB=127h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’b’){DATA=105h;DATB=126h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’n’){DATA=145h;DATB=126h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’m’){DATA=18Bh;DATB=126h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} } if(octava==’3’){ if(nota==’z’){DATA=1B2h;DATB=12Ah;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’x’){DATA=106h;DATB=12Bh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’c’){DATA=165h;DATB=12Bh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’v’){DATA=199h;DATB=12Bh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’b’){DATA=105h;DATB=12Ah;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’n’){DATA=145h;DATB=12Ah;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’m’){DATA=18Bh;DATB=12Ah;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} } if(octava==’4’){ if(nota==’z’){DATA=1B2h;DATB=12Eh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’x’){DATA=106h;DATB=12Fh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’c’){DATA=165h;DATB=12Fh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’v’){DATA=199h;DATB=12Fh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’b’){DATA=105h;DATB=12Eh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’n’){DATA=145h;DATB=12Eh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’m’){DATA=18Bh;DATB=12Eh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} } if(octava==’5’){ if(nota==’z’){DATA=1B2h;DATB=132h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’x’){DATA=106h;DATB=133h;outportb(0x378,REGA);outportb(0x378,DATA); — 83 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’c’){DATA=165h;DATB=133h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’v’){DATA=199h;DATB=133h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’b’){DATA=105h;DATB=132h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’n’){DATA=145h;DATB=132h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’m’){DATA=18Bh;DATB=132h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} } if(octava==’6’){ if(nota==’z’){DATA=1B2h;DATB=136h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’x’){DATA=106h;DATB=137h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’c’){DATA=165h;DATB=137h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’v’){DATA=199h;DATB=137h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’b’){DATA=105h;DATB=136h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’n’){DATA=145h;DATB=136h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’m’){DATA=18Bh;DATB=136h;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} } if(octava==’7’){ if(nota==’z’){DATA=1B2h;DATB=13Ah;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’x’){DATA=106h;DATB=13Bh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’c’){DATA=165h;DATB=13Bh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’v’){DATA=199h;DATB=13Bh;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’b’){DATA=105h;DATB=13Ah;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’n’){DATA=145h;DATB=13Ah;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} if(nota==’m’){DATA=18Bh;DATB=13Ah;outportb(0x378,REGA);outportb(0x378,DATA); outportb(0x378,REGB);outportb(0x378,DATB);} } }while(nota!=’q’); outportb(0x378,000h) return(0); } — 84 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Al implementar este programa, el usuario tiene que seleccionar que voz de instrumento se va a emular, y en que octava. Una vez seleccionados estos dos parámetros, solo tiene que presionar alguna de las teclas asignadas para escuchar por un soo canal la nota deseada con la voz del instrumento elegido. Al concluir las pruebas con este prototipo se detectaron dos problemas importantes: • Primero. Para poder analizar correctamente el comportamiento del sintetizador se requiere hacer uso de un anlizador lógico, ya que un osciloscopio convencional no cuenta con canales suficientes para monitorear el funcionamiento de cada una de las terminales del componente y de esa manera resulata sumamente difı́cil tener datos suficientes para hacer un análisis de operación correctamente. • Segundo. Aunque realizar el montaje en el protoboard resulta más sencillo y económico, se vuelve una fuente de error importante; esto es por que el cristal oscilador (Figura 5.7) trabaja a una frecuencia de 14.318 MHz, lo que genera una señal con una longitud de onda muy pequeña, comparable fácilmente con un pin, una terminal o incluso la misma pista del protoboard. Esto provoca que el mismo protoboard genere pequeños efectos capacitancia y las terminales de los componentes y el mismo cableado se comporten como antenas, generando una interferencia que afecta directamente al circuito. 5.2 Costo A continuación se presenta una tabla que especifica el costo de los materiales del prototipo. Cabe señalar que de llegar a realizarse una producción en masa del mismo el costo final se reduce. — 85 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Tabla 5.8: Costo del prototipo Costo Cantidad Unitario ($USD) Fuente de Alimentación $10.00 1 Sintetizador YMF262 $60.00 1 Conv. D/A YAC512 $25.00 2 Amplificador TL074 $1.40 3 Cristal oscilador 14.318 MHz $9.00 1 Resistores 1/4 Watt $0.01 23 Capacitores electrolı́ticos $0.50 14 Capacitores cerámicos $0.20 18 Diodo LED $0.10 1 Alambre conductor (m) $0.40 5 Conectores tipo pin $0.01 24 Tabla de pruebas (Protoboard) $6.00 1 Tablilla Fenólica (15x20 cm) $1.00 1 Solución de Cloruro Férrico (500ml) $1.50 1 Soldadura de Estaño con Alma de resina (m) $0.60 2 Chasis con tornillos $10.00 1 Total Concepto — 86 — Costo ($USD) $10.00 $60.00 $50.00 $4.20 $9.00 $0.23 $7.00 $3.60 $0.10 $2.00 $0.24 $6.00 $1.00 $1.50 $1.20 $10.00 $166.07 Capı́tulo 6 Trabajos Futuros Esta tesis puede ser la base de varios trabajos futuros, como la creación de un programa que genere las palabras de programación necesarias para varios sonidos en tiempo de ejecución. Para implementar esta etapa puede hacerse uso desde un puerto LPT1 como se manejó en la presente tesis hasta programar un dispositivo Plug and Play mediante un puerto USB con un software adecuado, el cual se recomienda realizar en base de lenguaje C. Este programa debe de proveer al usuario todas las facilidades para programar los parámetros esenciales del sintetizador como son la frecuencia (tono), la forma de onda, la “voz” del instrumento (generadora de envolvente) y la intensidad con la que se requiere; en otras palabras el usuario debe poder escribir la música al sintetizador. Otra gran mejora que se puede implementar es la de una interfase más especializada, que inclusive tenga la posibilidad de monitorear el estado del sintetizador desde la PC, no sólo la programación del mismo. Este tipo de interfase ayudarı́a enormemente a la minimización de errores del dispositivo y ofrece la posibilidad de corregirlos desde la misma PC. Una vez realizada una interfase adecuada, esta se podrı́a manejar desde un PIC con 87 Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI protocolo TCP/IP, para poder programar el componente desde un punto remoto y teniendo la posibilidad de conectar un número N de dispositivos similares en red para poder realizar la implementación de una orquesta virtual de varios instrumentos, trabajando cada uno de forma independiente. Esta tesis presentó el diseño de un sintetizador digital con tecnologı́a OPL3 para emular instrumentos de orquesta con interfase al puerto paralelo de una PC convencional. — 88 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI Conclusiones En esta tesis se presentó el diseño de un circuito electrónico digital para operar y programar un sintetizador de sonidos de tecnologı́a OPL3. Esta tecnologı́a se aplica a un gran número de tarjetas de sonido actualmente ya que es económica, compacta y con gran versatilidad de programación. Este componente, el YMF262 es más que un simple sintetizador; al analizar este componente se deducen sus capacidades como un completı́simo DSP (Digital signal Processor). Las principales capacidades que presenta como sintetizador son la de generar 4 canales con 18 sonidos cada uno, pudiendo ser 4 canales monofónicos o 2 canales estéreo, proceso en tiempo real de ejecución y un sencillo método de programación de parámetros de operación. Las capacidades de conexión, operación, programación y ejecución de programas complejos en tiempo real mediante una PC le confieren indirectamente la posibilidad de ser operado desde un punto remoto al establecer una red de dos o más PC’s y programarlo con cualquiera de ellas. La otra posibilidad que ofrece es la de conectarse con dispositivos similares al hacer uso del protocolo MIDI. Cuando se analiza la operación del dispositivo OPL3 se hace indispensable monitorear todas las señales de trabajo al mismo tiempo. Un osciloscopio convencional de dos canales es insuficiente para llevar a cabo dicha tarea, por esta razón se requiere el uso de un Analizador Lógico. Este prototipo esta diseñado para pruebas sencillas de carácter preliminiar como monitoreo de señales y sincronı́a, modos de operación y comunicación de interfase. Para realizar las pruebas más completas es necesario añadir una etapa de amplificadores a modo de seguidores para poder aislar sobrecorrientes y excedentes de voltaje en los circuitos más complejos de — 89 — Diseño Hardware para el Sonido de un Instrumento de Orquesta con base en MIDI audio, además de hacer uso de un analizador lógico para poder monitorear adecuadamente todas las señales simultáneamente. En resumen, la contribución principal de esta tesis es el conocimiento de la tecnologı́a OPL3 y el método óptimo para llevar a cabo la programación de un componente con esta tecnologı́a mediante diferentes interfases como son, el puerto paralelo y MIDI. La construcción de este tipo de circuitos es factible ya que su versatilidad de programación y la economı́a de la tarjeta de desarrollo lo hacen una herramienta accesible y útil. Los resultados sugieren que el componente es capaz de generar un sonido que emula de forma muy aproximada la voz de los instrumentos programados y la posibilidad de programar algunos más. La forma de la envolvente se puede alterar y combinar con los efectos de trémolo y vibrato para producir sonidos propios de instrumentos de música electrónica y no necesariamente emular intrumentos de orquesta. — 90 — Bibliografı́a [1] Maximino Peña Guerrero, Captura de Múltiples Eventos MIDI en Tiempo de Ejecución, Primera Edición, 2005 [2] Charles L. Alley, Biblioteca de Ingenierı́a Electrónica, Tomo 3, Segunda edición Ediciones Ciencia y Técnica, S.A., 1992 [3] Glyn James, Matemáticas Avanzadas para Ingenierı́a, Segunda Edición, Editorial Prentice Hall, 2002 [4] H.M. Deitel / P.J. Deitel Como Programar en C/C++, Segunda Edicı́ón, Editorial Prentice Hall, 1995 [5] Wikipedia Enciclopedia Libre http://es.wikipedia.org/wiki/MIDI, 2007 91