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

Documentos relacionados