SlideShare a Scribd company logo
1 of 105
Download to read offline
1.   INVESTIGACIÓN TEÓRICA
1.1.      BREVE RESEÑA DE LA TECNOLOGÍA MUSICAL Y DJ


Si hay algo que marca el inicio de la revolución tecnológica en el área de la música
(así como en muchas áreas) es el avance exponencial de la capacidad de
procesamiento y el abaratamiento en el costo de las computadoras.


La tecnología VLI de los microchips DSP, la cantidad de memoria RAM y la
velocidad de los discos duros entre otras características, permitieron la
implementación de software capaz no solo de tener la funcionalidad MIDI – Musical
Instrument Digital Interface- (Interfase Digital de Instrumento Musical) , sino de
soportar subprogramas que emulan el sonido e interfase de equipos de hardware
reales.


Entre las principales aplicaciones de software para creación musical con
funcionalidad MIDI, son los Secuenciadores. Estos son la principal herramienta para
la creación de los metronómicos típicos beats sonoros escuchados especialmente en
la música electrónica de hoy. Y en definitiva, ningún músico electrónico profesional
o DJ consideraría crear música sin la asistencia del secuenciador.


Justamente esta velocidad de procesamiento de los computadores es una de las
principales razones por los cual, prácticamente todo el proceso de producción
musical: grabación, edición, arreglos, mezcla y masterización se lo realiza a nivel
digital. Cada vez hay más software para diferentes aplicaciones: sintetizadores,
procesadores de efectos, procesadores dinámicos, emuladores de sistemas DJ; que
afortunadamente consiguen excelentes resultados de calidad sonora, gracias a los
altos niveles de conversión A/D – D/A (analógica/digital – digital/analógica), y a los
interfaces de audio con resoluciones por ejemplo de hasta 32 bits y frecuencias de
muestreo (“Sampling”) de hasta 96 Khz. por segundo. El bajo costé de los nuevos
computadores y equipamiento de audio, ha permitido que la creación musical de
calidad decente, esté al alcance de muchas personas. Cada día proliferan más y más
estudios caseros, donde las personas pueden dar rienda suelta a su creatividad,
aprovechando la cantidad de software asequibles incluso gratuitamente y en su
mayoría a través del Internet.
El DJ digital. Es la tendencia que actualmente se encuentra en auge, de igual manera
debido a la capacidad de los nuevos computadores. Además, del aporte tecnológico
antes mencionado, un factor sumamente importante en el “boom” del DJ digital es el
Internet y el MP3. Temas muy conocidos y familiarizados por todos, que
prácticamente están enterrando una era del DJ que utiliza discos de vinilo prensados
para realizar sus mezclas. Ahora una computadora, una colección de archivos MP3,
un software adecuado para la realizar virtualmente el procedimiento básico del DJ y
finalmente un Controlador MIDI, abren un abanico enorme de manipulación sonora
para el DJ de hoy.


La tecnología DJ ha evolucionado de los sistemas tradicionales basados en un par de
tocadiscos de vinilo y un mezclador, a su emulación perfecta en software. Programas
como el Ableton Live y el NI Traktor han conseguido no sólo integrar y recrear un
sistema completo para DJ, sino incluso en muchas ocasiones superarlo. Al
aprovechar la flexibilidad y profundidad de manipulación que brinda el audio digital


Todos estos programas tienen lo elementos básicos que se necesitan para empezar a
mezclar y experimentar sesiones de DJ: 2 canales de audio, mezclador, ecualización,
monitoreo en privado, y procesadores de efectos.


Para comprender de una mejor manera las ventajas de un sistema digital para DJ, es
necesario revisar las técnicas básicas utilizadas para la mezcla de pistas de audio.




1.2.     RESUMEN DE TÉCNICAS BÁSICAS DE MEZCLA PARA
         DJ


La técnica básica de mezcla utilizada por muchos DJs se resume en los siguientes
pasos:


1. Reproducir el primer tema que empieza a sonar para “el público” o “al aire” a
   través del Dispositivo Reproductor 1 en el Canal 1 del Mezclador
2. Escoger el siguiente tema para cargarlo en el Dispositivo Reproductor 2 en el
   Canal 2 del Mezclador y escucharlo o monitorearlo en los audífonos para
   verificar el punto de inicio de la reproducción y su velocidad (o tempo) o en
   relación con el tema que está ya sonando en vivo.
3. Una vez ajustado el tema 2 en interno, se empiezan a mezclar los dos temas
   utilizando los controles de volumen para cada canal
4. Finalmente se termina la mezcla y la transición de un tema al otro.
5. Se repiten los pasos del 1 – 4 indefinidamente de manera alternada, es decir, en
   este caso la nueva mezcla sería del canal 2 – 1, después 1 – 2 otra vez y así
   sucesivamente.


Durante todo este proceso se puede hacer uso de recursos extras como son la
ecualización y los procesadores de efectos para aportar con una mayor improvisación
y manipulación del sonido según el gusto de cada DJ.


A continuación podemos observar un flujo grama del proceso que implica la mezcla
de pistas, en una sesión para DJ:
Figura 1 diagrama de flujo para la mezcla de pistas de audio que realiza un DJ



     INICIO
                                                                                       ¿Qué pista
                                                                  1                     finalizó?
                                                                           A
         1                                                                                       B

                                                           ¿Qué pista
                                3                           suena?
                                           A
                                                                                             2
     Cargo pista
    Reproductor A                                                     B
      CANAL 1


                                                              4
                      NO
                                    Preparo tempo o
      ¿Primera                        ajusto pista A                                                     Primera pista
       pista?                        (AUDIFONOS)                               Nueva Pista                  finaliza
                                                                                 Suena
                                                                               (PUBLICO)

3                SI


     Suena Pista                       ¿Lista para            NO
         A                              mezcla?
     (PUBLICO)

                                                      SI



         2

                                                               MEZCLA                                    Suena
                                                               PISTA A Y                               transición
     Cargo pista                                               PISTA B                                entre pistas
    Reproductor B                                                                                    (PUBLICO)
     CANAL 2




                      NO
                                    Preparo tempo o
      ¿Primera                        ajusto pista B,
       pista?                        (AUDIFONOS)



4                SI


     Suena Pista                       ¿Lista para            NO
         B                              mezcla?
     (PUBLICO)

                                                 SI




                                    Fuente: El Autor
1.3.    TECNOLOGÍA MIDI


Cada músico “real” se expresa con su instrumento de una manera conciente o
inconciente utilizando una serie de interpretaciones de diferentes tipos. Por ejemplo,
un pianista podría golpear ciertas notas más fuerte que otras, un guitarrista podría
deslizar sus dedos hacia arriba por el mástil de trastes flexionando el sonido, o podría
sostener algunas notas mientras acorta otras. Todos estos matices contribuyen al
elemento humano detrás de la música, y sin ellas la música sonaría aburrida y sin
vida.


Mucha gente podría discutir que no hay un elemento humano detrás de la música
electrónica “dance” debido a que todo su principio está basado en golpes exactos y
melodías que suenan como si una máquina los hubiera creado. En la mayoría de
casos esto no es verdad y con un detalle minucioso se podría encontrar que incluso el
más repetitivo “Techno1” está copado con pequeñas instancias sónicas que previenen
a que llegue a ser tedioso. Esta es la razón clave de el porqué algunas canciones
parecen tener mucha de energía o “alma” y otras inmóviles y monótonas; y también
es por esto que debe ser imperativo entender como el protocolo MIDI puede ser
utilizado. Conociendo esto, la tecnología MIDI puede ser explotada para crear la
impresión de que un tema tenga energía, manejo y un carácter indefinible.


Mucha de la energía y flujo de cualquier música puede ser atribuida al desarrollo
ligero o agresivo de los sonidos a través de la longitud del arreglo. Mientras el
músico interpreta la pieza musical o el DJ realiza la mezcla de las pistas
naturalmente inyecta esto en su presentación, capturando este sentimiento a través de
MIDI requiere el uso de una serie de controladores MIDI. Por ejemplo, cuando el
músico toca una nota y mueve la rueda “pitch-bend”, esta rueda envía un flujo
continuo de mensajes de control al motor del sintetizador, el cual a su vez flexiona la
afinación hacia arriba o abajo. Si esto juega un papel importante en su rendimiento,
entonces el músico necesitará realizar esto en tiempo real cada vez que interprete su
música. O en el caso del DJ cuando mueve el control deslizante de nivel, este control


1
 “Techno” es un subgénero de la música electrónica de baile, caracterizado generalmente por su
mínima variación en el tiempo y sonidos de percusión repetitivos e hipnóticos.
de igual manera incrementa o disminuye el volumen de la pista de audio en alguno
de los canales del mezclador.


Todo esto se lo podría automatizar o controlar gracias al protocolo MIDI ya sea
desde el secuenciador o los controladores MIDI.


1.3.1.    Controladores MIDI


Tiempo atrás en 1980 uno de los propósitos originales del desarrollo de la
especificación MIDI, era permitir a los intérpretes en vivo, la habilidad de controlar
los sonidos de múltiples sintetizadores desde un simple teclado. Ese concepto ha
tenido un gran éxito y hoy en día cantautores con portátiles, músicos de estudio,
diseñadores de sonido y otros, se han podido beneficiar de la flexibilidad que ofrece
un controlador MIDI.


Técnicamente, un controlador MIDI es un dispositivo que posee un conjunto de
actuadores que adoptan la forma de por ejemplo las teclas estilo piano, deslizadores
como las encontradas en los mezcladores de DJ, o perillas de volumen en equipos de
audio, botones, etc. Todos estos transmiten datos MIDI a módulos de sonido externo,
a sintetizadores, “samplers” (muestreadotes) y secuenciadores de software, tanto
reales como virtuales.


La mayoría de los controladores MIDI adoptan cualquier tipo de diseño dependiendo
del tipo de aplicación o instrumento que se quiera interpretar. Pudiendo ser por
ejemplo, similar al de un teclado – piano, una batería eléctrica o una flauta; incluso
como en el caso de este proyecto, un sistema para DJ. Vale la pena mencionar, que
un controlador MIDI en concreto, no procesa ni genera señales de audio; maneja
exclusivamente señales digitales que comandan los parámetros de audio de otros
instrumentos o programas.


Como habíamos mencionado, una de las principales ventajas que poseen los
controladores MIDI es permitir la interpretación del músico en vivo de su
instrumento electrónico, además de brindar versatilidad y portabilidad. Ellos brindan
el control sobre virtualmente el rango entero de hardware y software musical incluso
al mismo tiempo siendo lo suficientemente compactos para ajustarse a una bolsa de
laptop.


En el siguiente capítulo, se podrá conocer en mayor detalle sobre el protocolo MIDI.


1.3.2.        Especificaciones MIDI


Con lo mencionado en capítulos anteriores podemos tener una idea de lo que abarca
el tema MIDI. Específicamente, la palabra MIDI son las siglas en inglés de “Musical
Instrument Digital Interface” traducido equivale a Interfase Digital de Instrumento
Musical.


MIDI es un protocolo de comunicaciones generalizado que habilita a los
instrumentos equipados con MIDI a que sean interconectados y controlados por un
secuenciador. Es decir, permite que equipos de audio de diferentes compañías
puedan trabajar juntos, lo cual significa que una pieza de software (secuenciador)
pueda convertir un banco de sintetizadores hechos por diferentes empresas en una
orquesta coherente (o banda de rock, ensamble de jazz, instalación de DJs, o casi
todo). Al usar un secuenciador MIDI – un programa que permite grabar y editar
datos MIDI- es posible componer música con una velocidad y flexibilidad que supera
los métodos antiguos de composición. Y finalmente, es posible guardar estas
composiciones en archivos en un formato que permite una fácil colaboración.
MIDI es similar al audio digital en sí, debido al hecho de que reduce varios
elementos de una interpretación musical en comandos numéricos generados. Usando
números, el lenguaje MIDI básico dice por ejemplo a un sintetizador (o
secuenciador, o software con compatibilidad MIDI) la siguiente información:



o Cuándo tocar la nota: el número de la nota2
o Cuándo empezar y terminar esa nota: nota encendida y nota apagada
o Qué tan alto tocar esa nota: esto se conoce como velocidad de la nota


2
    Al final del documento en el Anexo 2 podemos apreciar el número de nota MIDI
o Para que parámetros son: flexión de afinación (pitch bends), modulaciones,
   movimientos de rueda, y el uso del pedales sostenido
o Que sonidos tocar y cuando, y si el sonido cambia ( por ejemplo empezar con un
   sonido de guitarra eléctrica y después enviar mensajes MIDI para cambiar al
   sonido de una guitarra acústica)

En definitiva el MIDI es un vía estandarizada (protocolo) para la comunicación entre
dispositivos musicales. Con la capacidad de manejar hasta 16 canales -16
instrumentos-   Este protocolo especifica diferentes tipos de mensajes que están
conformados por palabras de 10 bits y son transmitidos serialmente a una velocidad
de 31250 bits / segundo.

De estos 10 bits dos especifican el inicio y el final del mensaje, (0 y 1
respectivamente) restando entonces 1 byte (8 bits) que define en sí la palabra MIDI
del mensaje.

El MIDI byte puede ser de dos tipos: estado e información.

1. Estado: Un byte de estado (empieza con el MSB en 1. Entonces, un byte de estado
varía entre 128-255 en decimal y 0x80-0xFF en hexadecimal.

Ejemplo: 1001xxxx

2. Información: En este caso el octavo BIT inicia con 0. Por lo tanto, prácticamente
un mensaje de información MIDI consta de 7 bits. Es decir varía desde 0-127 en
decimal, 0x00-0x7F en hexadecimal.

Ejemplo: 00111100

Enviar bytes de datos con valores ≥ 128 violarían el protocolo MIDI y puede
provocar un comportamiento aleatorio en el lado del receptor, porque el receptor
puede asumir que un nuevo mensaje MIDI empieza (8vo BIT ajustado en el byte de
estado)

En conclusión un mensaje MIDI se compone de un byte de estado y varios bytes de
información continuos.
Por ejemplo:

1. 1001xxxx (note ON)
2. 00111100 (valor 64 que corresponde a la nota do)
3. 0xxxxxxx (la velocidad con la que haya sido apretada la tecla)
4. Pero al soltarla, puede omitir el byte status y apagarla por volumen (otra
    posibilidad es que usase el 1000xxxx “note off” para apagarla). Es decir,
    transmitiría sólo los dos siguientes bytes:
5. 00111100 (valor 64 que corresponde a la nota do)
6. 00000000 (la velocidad cero, que indica que tiene que dejar de sonar esa nota).
    Omitiendo así el byte status. Es más, si nuevamente pulsamos la tecla do,
    volvería a omitir el byte status.


1.3.3.     Tipos de Mensajes MIDI


Existen diferentes tipos de mensajes MIDI3:


1. Mensajes De Canal:


    Mensajes de Voz. Que contienen datos referentes a la interpretación musical. Se
    los puede identificar porque varían su byte de estado desde 1000nnnn a
    1110nnnn
    Mensajes de Modo. Los mensajes de modo contienen datos que alteran la forma
    en que el instrumento receptor interpreta los datos de los mensajes de voz. Inician
    con el byte de estado de 1011nnnn y seguidos por los mensajes de información:
    0ccccccc y 0vvvvvvv, donde "c" varía entre 120 y 127, siendo bastante similar al
    mensaje de voz “Cambio de Control” pero que adopta valores fuera del rango.




3
 Al final del documento en en el Anexo 1 podemos encontrar un resumen de los diferentes tipos de
mensajes MIDI, expuestos desde la propia página Web de la MMA -MIDI Manufacturers
Association- (Asociación de Fabricantes MIDI)
2. Mensajes de Sistema:


   Sistema común. están destinados a todos los receptores del sistema. Estos
   mensajes cumplen varias funciones como por ejemplo: alertar un dispositivo en
   específico, apuntar la posición de una canción, seleccionar la canción, petición de
   afinación, finalización de un mensaje exclusivo. Su byte de estado inicia en
   11110000 hasta 11110111.


   Sistema de tiempo real. Se utilizan para la sincronización de los elementos que
   funcionan mediante un reloj temporizador, como secuenciadores, cajas de ritmo,
   arpegiadotes, etc. Tienen la mayor prioridad entre todos los tipos de mensaje. Su
   byte de estado inicia en 11111000 a 11111111.


3. Mensajes Auxiliares.


   Sistema exclusivo “Sysex”. Estos mensajes incluyen un código de identificación
   del fabricante y se utilizan para transferir bytes de datos formateados según una
   especificación diseñada por ese fabricante. Este tipo de mensajes son los que más
   nos interesa conocer para nuestra aplicación. En el próximo capítulo los vamos a
   conocer más detalladamente.


4. Otros.


Se utilizan habitualmente para enviar datos de parámetros a un sintetizador para la
edición de sonidos. Los Números de parámetro registrados (Registered Parameter
Number - RPN) son aquellos a los que las organizaciones MIDI Manufacturers
Association (MMA) y Japan MIDI Standards Committee (JMSC) han asignado
alguna función particular. Por ejemplo, existen RPNs definidos para controlar la
sensibilidad de pitch bend y la afinación general de un sintetizador. Por su lado, los
no registrados (Non-Registered Parameter Number - NRPN) no tienen asignada
ninguna función específica y pueden ser utilizados de forma distinta según el
fabricante. De nuevo en este caso Roland y Yamaha, entre otros, han adoptado sus
propios estándares.
1.3.4.    Mensajes de Sistema Exclusivos


Este tipo de mensajes como su nombre lo indica son de uso exclusivo de cada
software de audio, sintetizador o sampler. Conocidos también como mensajes Sysex,
nos permite comunicarnos de manera personal y confidencial con cualquiera de estos
equipos y así poder controlar diferentes parámetros que son propios de su estructura.
Cada fabricante define sus propios formatos para este tipo de datos y dispone de un
código de identificación único garantizado por la MMA (MIDI Manufactures
Association) y el JMSC (Japanese MIDI Standard Committee). Esta ID del
fabricante, incorporada en cada mensaje de Sistema Exclusivo, precede a los
distintos paquetes de datos, a continuación de los cuales aparece el mensaje EOX
(End of Sysex) con el que finaliza la transmisión de datos. Los fabricantes están
obligados a publicar los detalles que conforman sus formatos de datos de Sistema
Exclusivo para que puedan ser utilizados libremente por otros fabricantes o por el
propio usuario, siempre y cuando no se alteren o se utilice el formato de forma que
entre en conflicto con las especificaciones originales definidas por el fabricante.


Algunos de estos números de identificación están reservados para protocolos
especiales, entre los que figuran el Estándar para Volcado de Muestras MIDI (MIDI
Sample Dump Standard), un formato de datos de Sistema Exclusivo dedicado a la
transmisión de datos entre muestreadores; así como MIDI Show Control y MIDI
Machine Control.


Al enviar mensajes exclusivos es posible controlar cualquier aspecto del sintetizador
incluyendo controles enlistados en las especificaciones MIDI que no es reconocida
por el sintetizador.



Estructura.

Los mensajes Sysex típicamente consisten de una dirección hexadecimal, que
apuntan a la función dentro del sintetizador que queremos ajustar y un valor Sysex
hexadecimal que dice a la función como queremos ajustarla. Además, un mensaje
Sysex necesita proveer de información básica con respecto al sintetizador al cual
estamos transmitiendo el mensaje. Entonces, por esto un sintetizador requiere que el
mensaje Sysex sea de ocho o nueve palabras de largo, combinando todos los
elementos descritos para completar el mensaje.

A continuación analizaremos un ejemplo de mensaje Sysex:



                Figura 2 Partes y Descripción de un mensaje MIDI tipo Sysex
PARTE           VALOR            DESCRIPCIÓN


                                 Byte de Estado Sysex (mensaje Sysex encendido).
1               F0
                                 Siempre todo mensaje Sysex inicia con este valor.




                                 Valor específico del fabricante. Ignorado por equipos
2               41H
                                 a los cuales no pertenece.




3               10H              Identificar un sintetizador en particular incluso si es
                                 del mismo fabricante




                                 Código de ID del modelo del fabricante. Permite
                                 asignar un valor entre 1 y 32 (por defecto suele ser
                                 17) así podemos distinguir hasta 32 Instrumentos
4               42H
                                 'gemelos' dentro del Sistema MIDI. Este código suele
                                 coincidir con el Canal Básico (también llamado
                                 Global) del Instrumento.
Puede ser de 2 variables: 12H o 11H, usado para
                             especificar ya sea si el mensaje está enviando (12H)
5              12H           o solicitando (11H). Un mensaje 11H es usualmente
                             empleado para volcar enteramente todos los ajustes
                             del sintetizador en un secuenciador conectado.




                             Dirección Sysex de la función que vamos a
6              00 00 11H
                             modificar, en la memoria del instrumento




                             Valor Sysex. Que puede ser el valor enviado si la
                             parte 5 está en modo enviar (12H), o si la parte 5
7              04H           contiene el valor de 11H de petición, esta parte 7
                             indica el número de bytes solicitados por el
                             sintetizador para retornar en su mensaje de respuesta.




                             Esta parte del mensaje es opcional dependiendo del
                             fabricante. Algunos lo emplean para validar los
8              10H           mensajes y asegurarse de que el sintetizador haga
                             específicamente lo que el código hexadecimal
                             solicita. Es una especie de byte de "checksum".




9              F7            EOX - fin de mensaje Sysex. Siempre todo mensaje
                             Sysex termina con este valor.

                                Fuente: El Autor




Comúnmente una cadena de mensajes Sysex es insertada al inicio de cualquier
arreglo MIDI, para que el archivo pueda ser ajustado y reprogramado en cualquier
otro sintetizador con diferente ubicación. De hecho Sysex es muy utilizado para
actualizar el sistema operativo del sintetizador (ejemplo MIOS) o para arreglar
errores en el programa, o proveer un nuevo set de sonidos. También es muy utilizado
para alterar ciertas partes específicas de un sintetizador durante una secuencia MIDI,
como por ejemplo cambiar el tipo de filtro o la forma de onda del LFO (Oscilador de
Baja Frecuencia).

Vale la pena también notar que solo un mensaje Sysex puede ser transmitido a la vez.
Entonces si dos mensajes tienen que ser enviados seguidamente, se debe establecer
una pausa entre los dos hasta que se haya procesado el primero. Es también
importante saber que los instrumentos nunca deben recibir Mensajes de Sistema
Exclusivo en el momento de su encendido.



1.3.5. Conexión con el Computador



Todo instrumento o equipo que tenga capacidad MIDI por lo general tiene tres
conectores: MIDI IN, MIDI OUT y MIDI THRU. En estos conectores se insertan
lógicamente los cables para establecer la comunicación entre el controlador,
sintetizador o teclado y el computador en el que está instalado el programa
secuenciador o de DJ. La “conversación MIDI” real viaja desde el conector MIDI
OUT de un instrumento hasta el conector MIDI IN de otro. La información recibida
en el puerto MIDI IN de un dispositivo puede ser también retransmitida o replicada
en el conector MIDI THRU para que sea reenviada a su vez, al puerto MIDI IN de
otro instrumento; de tal manera que puedan conectarse varios dispositivos MIDI en
cadena. Al conectar equipos MIDI con esta configuración, se crean sistemas más
elaborados permitiendo al secuenciador comunicarse con varios sintetizadores,
samplers o controladores al mismo tiempo.

En la Figura 3 podemos apreciar una configuración típica para la Producción de
Música Electrónica. En el que el secuenciador MIDI instalado en el computador,
funciona como una especie de “director de orquesta”, enviando diferentes tipos de
información digital, los cuales son interpretados por los instrumentos conectados a la
cadena MIDI para reaccionar de una u otra manera según la especificación de estos
mensajes, y finalmente su interpretación de audio sea escuchada a través de la mesa
de mezcla.



     Figura 3 Configuración típica de un Estudio para Producción de Música   Electrónica




             Fuente: Rick Snoman, A simple Dance-Based Studio, 2004 y el Autor.




Los conectores -receptores- MIDI tienen 5 zócalos que encajan perfectamente con
las 5 patillas tipo DIN que forman los conectores -macho- de los cables:




                          Figura 4 Conexiones MIDI, In, Out y Thru
Fuente: Roland, Manual MIDI, Año no disponible



          Figura 5 Conector – receptor MIDI




                  Fuente: el Autor

           Figura 6 Conector – cable MIDI




Fuente: BBD Soft, AT keyboard connector (DIN5), 2007
        http://www.bbdsoft.com/keyboard.html
En estos cables la transmisión de los datos se lo realiza a través de un solo pin, el
número 5. Los pines 1 y 3 fueron agregados para futuras funcionalidades. El pin # 2
se utiliza como blindaje (tierra) y finalmente el pin 4 es para transmitir un voltaje de
5 V, y de esta manera garantizar un flujo correcto de la corriente eléctrica.

Obviamente las conexiones MIDI no son comunes de encontrar en los computadores
disponibles normalmente en el mercado, muchas veces es necesario utilizar una
interfase MIDI adicional, ya sea dedicada o integrada en una tarjeta de sonido.



          Figura 7 Conexión de diferentes dispositivos a través de una interfase MIDI




         Fuente: Rick Snoman, Single and Multi-Buss MIDI Setups, 2004 y el Autor.




También se pueden encontrar interfases MIDI en forma de un conector para palanca
de juegos -joystick-, con la ventaja de utilizar un solo cable para establecer la
comunicación. En la Figura 8 y 9 se puede apreciar un conector de este tipo y la
conexión con un controlador MIDI
Figura 8 Conector MIDI tipo “joystick”




                         Fuente: Crutchfield, Game MIDI Plug, 2009.
            http://akamaipix.crutchfield.com/lifestyle/2001/hGameMIDIPlug.jpeg



Figura 9 Conexión de un controlador y un computador a través de cable MIDI y conector “Joystick”




        Fuente: Turtle Beach, MIDI Cable Connection Charts (Joystick & USB), 2009.
                   http://support.turtlebeach.com/site/kb_ftp/167217296.asp




Incluso actualmente podemos encontrar de una manera prácticamente estandarizada
el uso del puerto USB o Firewire para establecer la comunicación MIDI entre un
dispositivo MIDI (sea este controlador DJ, sintetizador o teclado master) y el
computador. Con la ventaja de evitar una conexión extra como en la conexión
original, ya que a través de un solo cable se establece la comunicación de entrada y
salida. Adicionalmente, en varias ocasiones se han configurado ensambles de varios
computadores que se comunican entre ellos a través del protocolo MIDI pero
utilizando cable Ethernet.
Figura 10 Conexión de un controlador y un computador a través de cable MIDI y conector USB




        Fuente: Turtle Beach, MIDI Cable Connection Charts (Joystick & USB), 2009.
                  http://support.turtlebeach.com/site/kb_ftp/167217296.asp




Para nuestro proyecto utilizaremos la conexión típica a través de los conectores
MIDI normales.



1.4.    SOFTWARE PARA APLICACIONES DE AUDIO



1.4.1. Ableton Live

“Ableton Live” es un programa secuenciador de audio que se lo puede tocar como si
fuera un instrumento. Ya sea por sí solo o con otros músicos y DJs, en presentaciones
en vivo o remixeando en estudio, lo único que requiere Ableton es un computador.
Es prácticamente un secuenciador en tiempo real que utiliza loops, archivos de audio
y MIDI, además de un amplio arsenal de efectos. Una gran ventaja es que puede
funcionar también con otros programas de audio, como Reason, Logic y Cubase.

Gracias a estas características en tiempo real, “Ableton Live” ha abierto enteramente
nuevos mundos de expresión creativa para los DJs; es posible mezclar cualquier
cantidad pistas y loops, remezclar sobre la marcha, capturar loops de audio en tiempo
real desde cualquier fuente externa de sonido como compacteras o tocadiscos.
A continuación revisaremos, la configuración básica del software para utilizarlo
como equipo de DJ.



1.4.1.1. CREACIÓN DE CANALES DE AUDIO



                    Figura 10 Pantalla Inicial del Software – Ableton Live




        Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.




Inicialmente Ableton tiene ya creados un canal MIDI y un canal de Audio en su
“Vista “Sesión”. La vista Sesión ofrece un enfoque hacia la producción musical
permitiendo grabar, reproducir y combinar ideas en la marcha. Esta herramienta es
igualmente útil para la composición musical, “jamming" (sólo o con otros músicos) y
"DJing". Sus transiciones permanecen siempre sincronizadas al tiempo musical,
incluso durante los cambios de tempo y el groove.

Las hileras horizontales de la vista de Sesión               se llaman escenas. En esta
configuración cada escena representa una sección de la canción, como por ejemplo
intro, coro, estrofa, etc. En este modo al reproducir una parte se reproducen todos los
clips cargados en los canales y se mantienen sonando todo el tiempo que se desee.
Figura 11 Reproducción de Clips por Secciones




         Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.




Estos clips que conforman una escena, son simples contenedores de datos de audio o
MIDI y permiten llevar la composición no linear un paso más allá al desviarse de las
escenas y probar variaciones



                         Figura 12 Reproducción de Clips por escena




         Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.




Cualquier clip o escena que se “dispare” estará sincronizado con el tempo del Set.
Por defecto, todos los clips se inician solo en el primer tiempo del compás siguiente
una vez que hayan sido disparados, permitiendo obtener una máxima sincronización.

Se debe notar que si disparamos un nuevo clip este detiene la reproducción del clip
que estaba reproduciéndose anteriormente en la misma columna. Las columnas
verticales en la vista de Sesión representan a las pistas, y una pista solo puede
reproducir un clip al mismo tiempo. Por eso uno normalmente coloca las variaciones
de un clip en la misma pista.

Si queremos detener un clip sin que se inicie otro, podemos usar el botón detener
Clip de la misma pista. Estos botones cuadrados aparecen por defecto en todos los
spots de clip vacíos:
Figura 13 Detener un clip de una escena




        Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.




Al hacer doble clic sobre cualquiera de los clips podemos observar la onda de audio.



                       Figura 14 Forma de Onda del Audio de un Clip




        Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.
Vamos a eliminar el canal MIDI y crear un nuevo canal de Audio para tener dos
canales de audio en total, ya que el enfoque de nuestro controlador y la configuración
básica para un sistema DJ no necesita más canales:



                           Figura 15 Selección de un canal MIDI




        Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.




Seleccionamos el canal MIDI y presionamos la tecla DEL.



                              Figura 16 Canal MIDI eliminado




         Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Ahora para crear un nuevo canal de audio damos clic derecho donde está el cursor de
la imagen anterior y seleccionamos la opción “Insertar pista de audio”:



                       Figura 17 Inserción de un nuevo canal de audio




         Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009



                Figura 18 Dos canales de audio listos para cargar nuevos clips




         Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
1.4.1.2. INSERCIÓN DE MÓDULOS DE EFECTOS.

Una vez que tenemos listos los canales de audio lo que nos corresponde hacer ahora es
insertar los efectos básicos para un sistema DJ.

Primero empezamos insertando los Ecualizadores:

En el panel de navegación de dispositivos Live, nos dirigimos a la opción que dice
“Audio Effects”



                           Figura 19 Explorador de efectos de Audio




          Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Donde podemos apreciar un listado completo de los diferentes módulos de efectos que
ofrece Live. Buscamos la opción que dice "EQ Three", la seleccionamos y sin soltar el
botón del Mouse, arrastramos el módulo hace el panel de efectos de cualquiera de los
canales de audio.



Figura 20 Efecto de Ecualizador de Tres Bandas seleccionado para arrastrarlo al panel de efectos de un
                                           canal de audio




           Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Figura 21 Efecto de Ecualizador de Tres Bandas, Bajos Medios y Agudos, con botones para eliminación
                                  de banda y control de ganancia




           Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009




Ahora, podemos seguir agregando una cadena de efectos después del ecualizador, que
esté en acorde a nuestros gustos. Para este proyecto, hemos decidido seleccionar un
módulo de “Delay” uno de “Reverb” y finalmente uno de Filtro. Para añadirlos,
utilizamos el mismo método indicado para el ecualizador.
Figura 22 Seleccionamos el efecto "Grain Delay", para sumarlo a la cadena de efectos




   Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Figura 23 Efecto Reverb, insertado en la cadena de efectos




          Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009

Y finalmente seleccionamos y arrastramos un módulo de Filtro que decidimos ubicarlo
entre el ecualizador y el Delay.

                   Figura 24 Efecto Reverb, insertado en la cadena de efectos




          Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Esta inserción de cadena de efectos lo realizamos nuevamente pero esta vez para el
canal de audio 1, de tal manera que tendríamos dos canales idénticos.



           Figura 25 Canal 1 seleccionado para ser insertado con una cadena de efectos




          Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Figura 26 Configuración final con los 2 canales de audio y sus respectivas cadenas de efectos




          Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009




Una vez listos la configuración de canales y efectos lo que necesitamos ahora configurar
es la comunicación MIDI.



1.4.1.3. CONFIGURACIÓN MIDI

Lo que primero tenemos que hacer es verificar que Ableton Live se encuentre
detectando los puertos MIDI de nuestra interfase.
Figura 27 Ingresamos a la opción “Preferencias” dentro del menú de “Opciones” para ajustar la
                                      configuración MIDI




          Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009



Para esto nos dirigimos a la opción de preferencias, ubicado en el menú de Opciones, y
en la pestaña de “MIDI Sync” verificamos que estén seleccionados los puertos de
entrada y salida de nuestra interfase y/o controlador MIDI:



       Figura 28 Tanto en Entrada como en Salida debe estar el nombre del controlador MIDI




          Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Y también debe estar activada la opción “Remote” para el puerto de entrada de nuestro
controlador MIDI:



                Figura 29 Habilitamos la entrada para el control remoto de Ableton




           Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009




Ahora el siguiente paso, sería asignar los diferentes controles y botones de nuestro
dispositivo MIDI a cada parámetro que nos gustaría modificar o manipular en Ableton
Live. Para realizar esto lo primero que tenemos que hacer es presionar el botón MIDI
ubicado en la esquina superior izquierda:



    Figura 30 Al presionar el botón MIDI, Ableton ingresa a modo de reconocimiento de controles




           Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009




Al activar esta opción, Live entra en modo de “aprendizaje”, en el cual automáticamente
asignara cualquier parámetro que seleccionemos al control que movamos en nuestro
controlador:
Figura 31 Ableton en Modo “MIDI Learn”, listo para asignar el mapeo de controles




            Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009




Entonces ah continuación seleccionamos cualquier parámetro que necesitemos asignar a
algún actuador, por ejemplo seleccionamos la opción "Dry/Wet" del módulo “Simple
Delay”:



             Figura 32 Seleccionamos en Ableton algún actuador que deseamos controlar




            Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Ahora movemos la perilla o deslizador en nuestro controlador para que sea asignado, al
hacer esto automáticamente Live graba esta información para que esté disponible
después de terminar las asignaciones:



   Figura 33 Después de mover un control para que Ableton lo reconozca, aparece la nomenclatura
                                       asignada al actuador




           Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009




Podemos verificar la asignación de este control en el panel de Mapeo MIDI:



       Figura 34 Verificación en el Panel de Mapeos MIDI, de todos los actuadores asignados




           Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009




Aquí podemos interpretar que el parámetro Dry/Wet del módulo “Simple Delay”
ubicado en el Canal de Audio 2 está asignado el Control de Cambio # 10 del
Controlador MIDI detectado en el canal MIDI 1.

Mientras estemos en este modo podemos seguir asignando controles a cualquier otro
parámetro, y la ventaja es que la reproducción de audio no se interrumpe mientras se
realiza el mapeo MIDI.

Por ejemplo ahora vamos asignar un potenciómetro deslizante de nuestro controlador
para manipular el volumen de uno de los canales de audio:
1. Seleccionamos el control de volumen en Live


       Figura 35 Verificación en el Panel de Mapeos MIDI, de todos los actuadores asignados




           Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009




2. Movemos un potenciómetro deslizante en el controlador MIDI para que Live lo
   reconozca


   Figura 36 Una vez reconocido el control externo para el volumen del canal, podemos observar su
                                           nomenclatura




           Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009




3. Verificamos en el panel del mapa MIDI esta asignación


                          Figura 37 Comprobación en el panel de mapeos




           Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
Podemos verificar que el parámetro “Track Volume” del módulo Mixer en la pista
   de Audio 1, está asignada por el Control de Cambio 10 del dispositivo externo
   asignado a través del Canal MIDI 1.



4. En el caso que hayamos terminado la asignación de los diferentes parámetros
   podemos finalmente presionar el botón MIDI para salir del modo de edición del
   mapeo


                             Figura 38 Finalizar Modo edición MIDI




           Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009




   Este proceso lo podemos repetir cuántas veces sean necesarias, tomando en cuenta
   la capacidad de nuestro controlador MIDI.



5. Una vez ajustados todos estos parámetros podemos proceder con la reproducción y
   mezcla de los archivos de audio para crear una sesión DJ



1.4.2. NI Traktor

Para este programa la configuración de un sistema DJ es mínima debido a que está
diseñado para este tipo de aplicación.

Por lo tanto, nos limitaremos a configurar el mapeo MIDI, el cual es similar al proceso
para el Ableton Live.
Figura 39 Pantalla inicial de NI Traktor Pro




          Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009




Para realizar la configuración MIDI lo que tenemos que hacer es simplemente ingresar
al panel de preferencias dando clic en el siguiente icono:


                          Figura 40 Pantalla inicial de NI Traktor Pro




          Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
En el cuadro de dialogo que se abre seleccionamos la opción “MIDI Setup” y aquí en
las opciones que aparecen tanto para la entrada y salida seleccionamos nuestro
dispositivo MIDI:


                         Figura 41 Configuración de Dispositivos MIDI




          Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009




Una vez seleccionados los controladores MIDI, seleccionamos la opción que se llama
“MIDI Mapping” ubicado al final de la lista de opciones de las preferencias.
Figura 42 Configuración de Dispositivos MIDI




          Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009




Ahora en la parte derecha damos clic en el botón “Add” para agregar un control que
deseamos modificar remotamente con nuestro dispositivo MIDI. En este ejemplo vamos
a agregar el parámetro correspondiente a la ganancia de la banda media para el
ecualizador del canal A:


                           Figura 43 Configuración de Dispositivos MIDI




          Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Figura 44 Podemos añadir cualquier parámetro para ser asignado al Controlador




         Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009




Ahora en la sección “Control Configuration” seleccionamos el enfoque al canal que
necesitamos asignar:
Figura 45 Seleccionamos el enfoque del parámetro seleccionado, Canal A, B o C




         Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009




Ahora presionamos el botón “Learn” y movemos la perilla en nuestro controlador MIDI
para que sea grabado el mapeo:
Figura 46 Después de presionar el botón Learn, podemos asignar el parámetro seleccionado al
                                     controlador MIDI




      Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Figura 47 Podemos comprobar la asignación del parámetro seleccionado




         Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009




Ahora por ejemplo queremos asignar el encendido de la sección de efectos 2 para el
canal B, procedemos de la misma manera:


                  Figura 48 Seleccionamos nuevamente uno de los parámetros




         Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
Presionamos el botón al cual queremos asignar este control, debido a que Traktor
mantuvo su estado de “Aprendizaje”:


 Figura 49 No es necesario presionar el botón de “Learn” nuevamente, directamente seleccionamos el
                    parámetro y accionamos el control al cuál queremos asignar




          Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009




En este caso podemos modificar el tipo de acción del botón asignado, para definir un
comportamiento específico, pudiendo ser este “Hold” -Mantenido-, “Toggle” -
Alternado-, “Direct” -Directo- y “Output” -Salida-.

Estas opciones nos permiten personalizar de cierta manera los diferentes parámetros,
independientemente del tipo de botón que hayamos escogido para nuestro controlador
MIDI. Por ejemplo en este sentido se puede notar una ventaja de Traktor ante Ableton
Live. Ya que esta es una función que no está disponible en Live.
Figura 50 Seleccionamos el modo de interacción




          Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009




En este ejemplo cada vez que presionemos el botón provocará que el control de efectos
asignado se mantenga encendido, sin la necesidad de mantener el botón presionado.

Una vez finalizado el mapeo de todos los parámetros, podemos cerrar el cuadro de
preferencias y empezar a utilizar el programa.




1.5.     MICROCONTROLADORES PIC
1.5.1. Diagrama De Pines


                  Figura 51 Nombres de los pines del PIC18F452




                    Fuente: Microchip, Pin Diagrams, 2006




1.5.1.1. DESCRIPCIÓN DE LOS PINES
Figura 52 Nombres de los pines del PIC18F452




Fuente: Microchip, Pinout I/O Descriptions, 2006
Figura 53 Nombres de los pines del PIC18F452 (continua)




  Fuente: Microchip, Pinout I/O Descriptions, 2006
Figura 54 Nombres de los pines del PIC18F452 (continua)




  Fuente: Microchip, Pinout I/O Descriptions, 2006
Figura 55 Nombres de los pines del PIC18F452 (continua)




                     Fuente: Microchip, Pinout I/O Descriptions, 2006




1.5.2.    Oscilador De Cristal

El oscilador de cristal, es una de las opciones de oscilación que se encuentran
disponibles con el microcontrolador PIC18F452. Este oscilador puede ser seleccionado
a través de los bits de configuración FOSC2, FOSC1 y FOSC0. Para su funcionamiento
este oscilador de cristal es conectado a los pines OSC1 y OSC2 del microcontrolador y
además requiere el uso de un capacitor de corte paralelo. Existen diferentes modos de
oscilación, con cristal:

1.      LP - Cristal de Baja Potencia

2.      XT - Cristal/Resonador

3.      HS - Cristal/Resonador de Alta Velocidad



                      Figura 56 Diagrama del Oscilador para el PIC18F852




 Fuente: Microchip, Crystal/Ceramic Resonator Operation (HS, XT or LP Configuration), 2006
Figura 57 Selección de Capacitores para Oscilador de Cristal




              Fuente: Microchip, Capacitor Selection for Crystal Oscillator, 2006




Se debe tomar en cuenta las siguientes notas:

1. Mientras más alta sea la capacitancia más estabilidad tiene el oscilador, pero
   también aumenta el tiempo de arranque

2. Rs puede ser requerida en el modo HS, como también en XT, para evitar los
   cristales distorsionantes, con un manejo demasiado bajo.

3. Siempre debemos consultar las características de cada oscilador propuestas por el
   fabricante, para estar seguros de los componentes que deben ser conectados.
1.5.3. Reset Maestro

El reset maestro para el PIC puede ser de varios tipos:

a. Power-on Reset (POR). Reinicio en el encendido.

b. MCLR. Reinicialización maestra en plena operación. A través del pin 1 MCLR

c. MCLR. Reinicialización maestra en modo SLEEP.

d. Reinicio a través del temporizador de “perro guardián” Watchdog Timer (WDT)
 durante operación normal

e. Reinicio programable por baja de tensión BOR.

f. Instrucción RESET.

g. Stack lleno

h. Stack vació cuando es apuntado.



De estos diferentes tipos de Reinicialización, los que utilizaríamos para el proyecto son
el POR y BOR.

Para implementar el POR (pulso de reinicio generado en el chip cuando se detecta una
subida de Vdd) basta simplemente con conectar al pin 1 a través de una resistencia a
Vdd. Esto también elimina la necesidad de conectar componentes RC externamente.

Al utilizar la reinicialización debido a una caída de tensión en Vdd, Brown – out Reset,
estamos protegiendo de cierta manera al chip de un posible corto circuito en alguna
parte del sistema al cual integra, además establecemos una reinicialización del mismo
únicamente cuando Vdd haya superado los parámetros establecidos. Este tipo de
reinicialización puede ser habilitada a través del BIT BOREN. Y ajustados sus
lumbrales con los bits BORV1 y BORV0. Dependiendo de los bits en los que hayan
sido configurados se establece el umbral mínimos en el cual se activa BOR, si Vdd es
menor a este voltaje por un tiempo mínimo de 200 µs, se resetea el chip y permanece de
esta manera hasta que sea reestablecido.



1.5.4. Puertos
El PIC18F452 posee 5 puertos, en los que su pines de entrada/salida son multiplexados
con una función alternativa de los periféricos del dispositivo. En general, cuando un
periférico está habilitado, ese pin no debe ser usado como un pin de entrada o salida de
propósito general.

Cada puerto tiene tres registros para su operación. Estos registros son:

-   TRIS, que es el registro de direccionamiento

-   PORT, en el cuál lee los niveles en los pines del dispositivo

-   LAT, registro de salida del Latch, el cual es útil para leer-modificar o operaciones
    en el valor que los pines de I/O están manejando.

A continuación podemos ver los diferentes puertos que caracterizan al PIC18F452, las
funciones de sus pines y los registros asociados a cada uno:

Funciones y Registros Asociados del Puerto A:


                        Figura 58 Funciones de cada Pin en el Puerto A




                        Fuente: Microchip, PORTA Functions, 2006

                          Figura 59 Registros Asociados al Puerto A




           Fuente: Microchip, Summary of Registers Associated with PORTA, 2006

Funciones y Registros Asociados del Puerto B:
Figura 60 Funciones de cada Pin en el Puerto B




                       Fuente: Microchip, PORTB Functions, 2006



                      Figura 61 Registros Asociados con el Puerto B




          Fuente: Microchip, Summary of Registers Associated with PORTB, 2006




Funciones y Registros Asociados del Puerto C:
Figura 62 Funciones de cada Pin en el Puerto C




                      Fuente: Microchip, PORTC Functions, 2006



                      Figura 63 Registros Asociados con el Puerto C




          Fuente: Microchip, Summary of Registers Associated with PORTB, 2006




Funciones y Registros Asociados del Puerto D:
Figura 64 Funciones de cada Pin en el Puerto D




             Fuente: Microchip, PORTD Functions, 2006




            Figura 65 Registros Asociados con el Puerto D




Fuente: Microchip, Summary of Registers Associated with PORTD, 2006
Funciones y Registros Asociados del Puerto E:


                      Figura 66 Funciones de cada Pin en el Puerto E




                       Fuente: Microchip, PORTE Functions, 2006



                      Figura 67 Registros Asociados con el Puerto E




          Fuente: Microchip, Summary of Registers Associated with PORTE, 2006




1.5.5.    Conversión Analógica-Digital
La conversión AD del microcontrolador PIC18F452 se la realiza a través de 8 entradas.
El módulo de conversión AD es controlado por las definiciones de los registros ACON0
y ADCON1. La conversión A/D permite transformar la señal de entrada analógica en un
número digital correspondiente de 10-BIT.

El módulo A/D tiene 4 registros en total:

-   Resultado Alto de la conversión A/D (ADRESH)

-   Resultado Bajo de la conversión A/D (ADRESL)r

-   Registro de Control 0 (ADCON0)

-   Registro de Control 1 (ADCON1)

El registro ADCON0 controla la operación del módulo A/D y el registro ADCON1
configura las funciones de los pines del puerto. A continuación podemos apreciar las
diferentes opciones y funciones de cada registro:




Registro ADCON1
Figura 68 Registro ADCON1




Fuente: Microchip, extracto de PIC18F452 Data Sheet, 2006
La salida de la muestra y retención es la entrada en el convertidor, el cual genera el
resultado vía aproximaciones sucesivas. Cada puerto asociado con el convertido A/D
puede ser configurado con una entrada analógica (RA3 puede ser también una
referencia de voltaje) o como una entrada/salida digital.

Los registros ADRESH y ADRESL contienen el resultado de la conversión A/D.
Cuando la conversión está completa, el resultado es cargado en los registros
ADRESH/ADRESL, el BIT GO/DONE (ADCON0 -2- ) es limpiado, y el BIT de la
bandera de interrupción, ADIF es encendido.

                      Figura 69 Diagrama de bloques del convertidor A/D




                        Fuente: Microchip, A/D Block Diagram, 2006




El valor que está en los registros ADRESH/ADRESL no es modificado por una reseteo
al encendido. Los registros ADRESH/ADRESL contendrán datos desconocidos después
de una reinicialización al encender el chip.

Después de que el módulo haya sido configurado como deseamos, el canal seleccionado
debe adquirido antes que la conversión se iniciada. Las entradas analógicas deben tener
su respectivo TRIS seleccionado como una entrada. Después que el tiempo de
adquisición haya pasado, la conversión A/D puede ser iniciada. Se deben seguir los
siguientes pasos para realizar una conversión:



1. Configurar el modulo A/D:

   -   Configurar los pines analógicos, el voltaje de referencia y la entrada/salida
       digital (ADCON1)

   -   Seleccionar el canal de entrada de A/D (ADCON0)

   -   Seleccionar el reloj de conversión A/D (ADCON0)

   -   Encender el módulo A/D (ADCON0)

2. Configurar la interrupción de A/D (si se desea)

   -   Limpiar el BIT ADIF

   -   Ajustar ADIE

   -   Encender el PEIE

3. Esperar el tiempo de adquisición requerido

4. Iniciar la conversión

   -   Encender el bit GO/DONE (ADCON0)

5. Esperar que la conversión se complete, ya sea,

   -   Esperando que el BIT de GO/DONE sea limpiado (si las interrupciones no están
       habilitadas) o

   -   Esperando por la interrupción de A/D

6. Leer los registros de resultados A/D (ADRESH/ADRESL); limpiar el BIT ADIF si
   es necesario

7. Para la siguiente conversión, ir al paso 1 o paso 2 como sea necesario. El tiempo de
   conversión por BIT es definido como TAD. Un tiempo de adquisición de 2 TAD es
   requerido para iniciar la próxima conversión.
El tiempo de conversión por BIT es definido como TAD. La conversión A/D requiere 12
TAD por cada conversión de 10-BIT. La fuente del reloj de conversión A/D es elegible
por software. Las siete opciones siguientes son posibles:



• 2 TOSC

• 4 TOSC

• 8 TOSC

• 16 TOSC

• 32 TOSC

• 64 TOSC

• Módulo Interno A/D oscilador RC (2-6 μs)



Para un correcta conversión, el reloj TAD debe ser seleccionado de tal manera que
asegure un mínimo TAD de 1.6 µs.


                      Figura 70 Tabla de TAD vs. Frecuencia de Operación




                Fuente: Microchip, TAD vs. Device Operating Frecuencies, 2006
1.5.6.        Set de Instrucciones


                         Figura 71 Tabla de descripción de campos “Opcode”4




                  Fuente: Microchip, Table 20-1: OPCODE Field Descriptions, 2006




4
    OPCODE hacer referencia a “Operational Code” -Código Operacional-
Figura 72 Set de Instrucciones para el PIC18F452




Fuente: Microchip, Table 20-2: PIC18FXXX Instruction Set, 2006
Figura 73 Set de Instrucciones para el PIC18F452 (continuación)




Fuente: Microchip, Table 20-2: PIC18FXXX Instruction Set (continued), 2006
Figura 74 Set de Instrucciones para el PIC18F452 (continuación)




         Fuente: Microchip, Table 20-2: PIC18FXXX Instruction Set (continued), 2006




1.6.     SISTEMA OPERATIVO MIDI (MIOS)



El sistema operativo MIDI, ha sido desarrollado para los requerimientos de aplicaciones
flexibles de controladores MIDI. En diferencia a las soluciones comerciales dedicadas
de hoy, MIOS sigue el concepto de un sistema de computo abierto como fundamento
para la idea del intercambio y las adaptaciones personales. Existen diferentes
aplicaciones que varían según el diseño del panel, elementos de control o flujo de
trabajo preferido, la mayoría de estas aplicaciones son basadas en diseños
preestablecidos que por ende están limitados a las características proporcionadas del
firmware. Con MIOS tales controladores pueden ser realzados para dispositivos de
multipropósito y con código intercambiable, totalmente personalizable para la
aplicación anfitriona aproximada, sintetizador o similares “Dispositivos MIDI”.
1.6.1.      Programación Básica En C

Si bien la aplicación implementada para el proyecto utiliza código ensamblador en su
mayoría, gracias a la cantidad de aplicaciones y librerías MIOS incluidas en el código,
el uso del lenguaje ensamblador no muestra mayor dificultad. Por lo que funciones en
lenguaje C no fueron utilizadas en su mayoría.

Las principales funciones utilizadas de este lenguaje fueron:

#include

La directiva #include hace que se incluya una copia de un archivo especificado en lugar
de la directiva. Las dos formas de la directiva #include son:

         #include <nombrearchivo>

         #include “nombrearchivo”

La diferencia entre estas dos formas es la ubicación en la que el preprocesador busca el
archivo a incluir. Si el nombre del archivo está encerrado entre paréntesis angulares (< y
>), que se utilizan para archivos de encabezado de la biblioteca estándar, el procesador
busca el archivo especificado de una manera dependiente de la implementación, por lo
general mediante directorios previamente designados. Si el nombre del archivo se
encierra entre comillas el procesador busca primero en el mismo directorio en el que se
va a compilar el archivo y después en la misma manera dependiente de la
implementación.

Esta directiva también se utiliza con programas que consisten en varios archivos fuente
que se van a compilar en conjunto. A menudo se crea e incluye en el archivo de
encabezado que contiene declaraciones y definiciones comunes para los archivos de
programa separados.

Ejemplo:

#include <mios.h>

Copia el archivo de toda la estructura de MIOS en el código de la aplicación que
estemos desarrollando.

#if, #else y #endif
Estas operaciones de compilación condicional que permite al programador controlar la
ejecución de las directivas de preprocesador y la compilación del código de programa.
Cada una de las directivas condicionales del preprocesador evalúa una expresión entera
constante que determina si el código se compila o no.              Siempre toda función #if
termina con #endif. Son muy similares a las operaciones condicionales estándar if,
else y endif.

La estructura de selección if realiza una acción indicada solamente cuando la condición
es verdadera; de lo contrario, se evita dicha acción. La estructura de selección permite
al programador especificar una acción a realizar cuando la condición es verdadera, y
una acción diferente a realizar cuando la acción es falsa.

Ejemplo:

if (calificación >= 60)
          cout << “Aprobado”;
else
          cout << “Reprobado”;


Este código simplemente Aprobado si la calificación del estudiante es mayor o igual
que 60, pero imprime Reprobado si la calificación del estudiante es menor que 60.



1.6.2. Funciones Propias

Las principales funciones propias del MIOS5, que han sido utilizadas en la aplicación
específica son:


    MIOS_AIN_NumberSet
    Descripción: Ajusta el numero de pines AIN (analogic inputs) disponibles. Si el
    número es > 64, el valor será forzado a 64
    Entrada: Número de entradas analógicas WREG
    Salida: –
    Usa: BSR (registro selector de banco)




5
    Klose, Thorsten, “MIOS Functions Reference (ASM Version)”, 2009-01-01, http://www.ucapps.de/
MIOS_AIN_Muxed
Descripción: Habilita el modo de multiplexación para que puedan ser conectados y
multiplexados hasta 64 potenciómetros a través del modulo AIN.
Entrada: –
Salida: –
Usa: BSR (registro selector de banco)

MIOS_LCD_PrintMessage
Descripción: Imprime un mensaje por aproximadamente 2 segundos. El flujo
normal del programa no será interrumpido durante este tiempo, simplemente solo la
rutina "DISPLAY_Tick" no será llamada. Después del mensaje, "DISPLAY_Init"
será llamado antes del siguiente "DISPLAY_Tick"
Entrada: Apuntador a la cadena en TBLPTR[LH]. Primera palabra de la cadena
debe contener el largo y la posición del LCD.
Salida: Algunos caracteres en el LCD por 2 segundos
Usa: BSR


MIOS_AIN_UnMuxed
Descripción: Deshabilita el modo de multiplexación, 8 potenciómetros pueden ser
conectados directamente a pines de las entradas analógicas en el PIC.
Entrada: –
Salida: –
Usa: BSR (registro selector de banco)

MIOS_AIN_DeadbandSet
Descripción: Ajusta la diferencia entre el ultimo y el actual valor del
potenciómetro, el cuál tiene que ser alcanzado para disparar la función
“NotifyChange” (Notificación de Cambio).
Entrada: Valor de ajuste in WREG (registro en uso – acumulador)
Salida: –
Usa: BSR (registro selector de banco)


MIOS_SRIO_NumberSet
Descripción: Ajusta el número de registros SR (shift registers) disponibles, si es >
16, el valor es forzado a 16.
Entrada: Número de SRs en WREG
Salida: –
Usa: BSR (registro selector de banco)

MIOS_SRIO_UpdateFrqSet
Descripción: Ajusta la frecuencia de actualización de los registros SR.
Entrada: Frecuencia de actualización (unidad: milisegundos) en WREG
Salida: –
Usa: BSR (registro selector de banco)
MIOS_SRIO_DebounceSet
Descripción: Ajusta la recarga del contador de rebote para los DIN (módulo de
entradas digitales) que no son asignados a los codificadores rotativos para eliminar
los rebotes de botones de baja calidad.
Entrada: Valor de recarga del contador de rebote en WREG
Salida: –
Usa: BSR (registro selector de banco)


MIOS_SRIO_TS_SensitivitySet
Descripción: Ajusta la sensibilidad del sensor táctil. Si es igual a 0x00 deshabilita
el TS (sensor táctil) de tal manera que el PIN RD.4 (J14 del módulo principal) ya
no sea controlado por MIOS y de ahí en adelante queda libre para otros propósitos.
Entrada: Valor de sensibilidad en WREG
Salida: –
Usa: BSR (registro selector de banco)

MIOS_TIMER_Init
Descripción: Inicializa el temporizado el cual llama a la función USER_Timer
periódicamente y la arranca. La resolución del temporizador es de 100nS con un
Prescaler 1:1, 200nS con 1:2, 400nS con 1:4, 800nS con 1:8. El período (número de
señales de reloj) está especificado como un valor de 16.
Entrada: Valor del prescaler en WREG:
0x00: 1:1
0x01: 1:2
0x02: 1:4
0x03: 1:8
número de flancos (byte-inferior) en MIOS_PARAMETER1 (registro MIOS para
funciones especiales)
número de flancos (byte-superior) en MIOS_PARAMETER2 (registro MIOS para
funciones especiales)
Salida: –
Usa: BSR (registro selector de banco)


USER_Timer
Descripción: Esta función periódicamente es llamada por MIOS. La frecuencia
tiene que ser inicializada por con MIOS_Timer_Set. Note que esta es una rutina de
interrupción. Use FSR2 en reemplazo de FSR0 y IRQ_TMPx en reemplazo de
TMPx – y crear una rutina lo más rápida posible.
Entrada: –
Salida: –
ISR: Sí

MIOS_MIDI_DeviceIDGet
Descripción: Retorna la identificación del dispositivo MIDI
Entrada: -
Salida: Número del dispositivo en WREG y MIOS_PARAMETER1 (0x00-0x7f)
Usa: BSR
USER_MPROC_DebugTrigger
Descripción: Esta función es llamada por MIOS cuando un comando de depuración
ha sido recibido vía SysEx.
Entrada: WREG, MIOS_PARAMETER1, MIOS_PARAMETER2,
MIOS_PARAMETER3 como se especifica en el comando de depuración
Salida: Retorna valores WREG, MIOS_PARAMETER1, MIOS_PARAMETER2,
MIOS_PARAMETER3
ISR: No

MIOS_EEPROM_Read
Descripción: Lee un byte desde la EEPROM.
Entrada: Dirección en EEADR (0x00-0xff) EEADRH (0-3, PIC18F4620
únicamente)
Salida: Contenido de la EEPROM en WREG. EEADR será incrementado.
EEADRH (PIC18F4620) no va a ser incrementado en EEADR rebasamiento.
Usa: BSR, EEADR, EEDATA, EECON1, EECON2


USER_MPROC_NotifyReceivedByte
Descripción: Esta función es llamada por MIOS cuando un byte MIDI ha sido
recibido.
Entrada: byte MIDI recibido en WREG y MIOS_PARAMETER1
Salida: -
ISR: no

USER_DISPLAY_Init
Descripción: Esta función es llamada por MIOS cuando el contenido del display
debe ser inicializado. Ese es el caso durante el arranque y después de un mensaje
que has sido impreso en pantalla.
Entrada: -
Salida: -
ISR: no


USER_DISPLAY_Tick
Descripción: Esta función es llamada por MIOS en el loop principal cuando no se
ha mostrado un mensaje temporal en
Entrada: -
Salida: -
ISR: no


USER_MIDI_NotifyTx
Descripción: Esta función es llamada por MIOS antes de transmitir un byte MIDI .
Puede ser usado para monitorear la actividad de transmisión o para hacer cualquier
otra acción (por ejemplo cambiar un pin para salidas MIDI multiplexadas) antes que
el byte sea enviado. Note que este es una rutina de servicio de interrupción
Entrada: byte MIDI transmitido en WREG
Salida: -
ISR: yes
USER_MPROC_NotifyReceivedEvent
Descripción: Esta función es llamada por MIOS cuando un evento completo MIDI
ha sido recibido.
Entrada: Primer byte de evento MIDI en MIOS_PARAMETER1, segundo byte de
evento MIDI en MIOS_PARAMETER2, tercer byte de evento MIDI en
MIOS_PARAMETER3
Salida: -
ISR: No

USER_MPROC_NotifyTimeout
Descripción: Esta función es llamada por MIOS cuando un evento MIDI no ha sido
completamente recibido dentro de 2 segundos.
Entrada: -
Salida: -
ISR: No

USER_MPROC_NotifyFoundEvent
Descripción: Esta función es llamada por MIOS cuando un evento completo MIDI
ha sido recibido, el cual ha sido especificado en la tabla CONFIG_MIDI_IN
Entrada: Primer byte de evento MIDI en MIOS_PARAMETER1, segundo byte de
evento MIDI en MIOS_PARAMETER2, tercer byte de evento MIDI en
MIOS_PARAMETER3
Salida: -
ISR: No

USER_DIN_NotifyToggle
Descripción: Esta función es llamada por MIOS cuando un botón ha sido alternado.
Entrada: Número del botón en WREG y MIOS_PARAMETER1. Valor del botón
en MIOS_PARAMETER2:
- 1 si el botón ha sido soltado (=5V)
- 0 si el botón ha sido presionado (=0V)
Salida: -
ISR: no

USER_ENC_NotifyChange
Descripción: Esta función es llamada por MIOS cuando un encoger (codificador)
ha sido movido.
Entrada: Número de Encoder en WREG y MIOS_PARAMETER1
valor con signo del incrementador en MIOS_PARAMETER2:
- es positivo cuando el codificador has sido girado en torno a las agujas de reloj
- negativo cuando el encoger ha sido girado al contrario.
Salida: -
ISR: no
USER_SR_Service_Prepare
    Descripción: Esta función es llamada por MIOS antes que el shift register sea
    cargado. Note que esta es una rutina de servicio de interrupción, use FSR2 en vez de
    FSR0 e IRQ_TMPx en vez de TMPx.
    Entrada: -
    Salida: -
    ISR: no


    USER_AIN_NotifyChange
    Descripción: Esta función es llamada por MIOS cuando un potenciómetro ha sido
    movido.
    Entrada: Número del Potenciómetro en WREG y MIOS_PARAMETER1
    Valor de LSB en MIOS_PARAMETER2. Valor MSB en MIOS_PARAMETER3
    Salida: -
    ISR: no




1.6.3.        Implementación Sysex


La implementación de los mensajes Sysex6 para nuestra aplicación en especial son:


    a) F0 00 00 7E 43 <d>3 <b> F7
      Solicita un bloque de 256 bytes
        <d> = número del dispositivo (0-7)
        <b> = número de bloque (00-07)


    b) F0 00 00 7E 43 <d>4 <b> <256 bytes> <checksum> F7
      Escribe un bloque de 256 bytes
        <d> = número del dispositivo (0-7)
        <b> = número de bloque (00-07)
        <256 bytes> = el bloque de datos
        <checksum> = el checksum7 de <b> y <256 bytes>


6
  KLOSE, Thorsten, MIDIbox64 SysEx Implementation, Version 73,
midibox64_sysex_implementation.txt, 2008.
7
  “Checksum” entiéndase por checksum, un dígito que representa la suma de los dígitos en una instancia
de datos digitales; usados para revisar ya sea si los errores ocurrieron en la transmisión o en el
almacenamiento
c) F0 00 00 7E 43 <d>5 F7
      Solicita todos los 8 bloques
        <d> = número del dispositivo (0-7)


    d) F0 00 00 7E 43 <d>6 <p> F7
      Solicita un Patch (programa) (Snapshot – Instantánea, de la configuración)
        <d> = número del dispositivo (0-7)
        <p> = número del programa (0-127)


    e) F0 00 00 7E 43 <d>7 <p> <96 bytes> <checksum> F7
      Graba un programa o patch (Snapshot)
        <d> = número del dispositivo (0-7)
        <p> = número del programa (0-127)
        <checksum> = el checksum de <96 bytes>
    f) F0 00 00 7E 43 <d>8 0n F7
      Solicitar un Banco, n = 0 a 15


      Envía un dato de Acknowledge (admisión) cuando el Banco ha sido cambiado:
        F0 00 00 7E 43 <d>F 0n F7


      O un Disacknowledge (desacuerdo) si el BankStick8 no está conectado:
        F0 00 00 7E 43 <d>F 7F F7


    g) F0 00 00 7E 43 <d>9 00 <pot> <value> F7
      Control remoto de un Potenciómetro
        <d>      = número del dispositivo (0-7)
        <pot> = número del potenciómetro (0-63)
        <value> = valor del potenciómetro (0-127)


    h) F0 00 00 7E 43 <d>9 01 <button> <value> F7
      Control remoto de un botón
        <d>      = número del dispositivo (0-7)


8
    “Bankstick” es un banco de programa almacenado en memoria adicional al microcontrolador
<button> = número del botón (0-63)
       <value> = valor del botón (0=presionado, 1=soltado)


    i) F0 00 00 7E 43 <d>9 02 <sfbn> <sfbp> <value> F7
      Control remoto de un botón especial
       <d>     = número del dispositivo (0-7)
       <sfbn> = número del botón especial (0-127)
       <sfbp> = parámetro del botón especial (0-127)
       <value> = valor del botón (0=presionado, 1=soltado)


    j) F0 00 00 7E 43 <d>F F7
      Ping (simplemente envía la misma cadena Sysex)


.
1.6.4.       Uso De IO -Input / Output- (Entrada / Salida)

El sistema operativo consta de un tipo de “kernel” ( núcleo) que dota al usuario de
atajos a eventos de hardware y software, y que ofrece funciones para una interacción
simple entre los módulos de la Plataforma de Hardware MIDIbox . Un módulo Core,
con un PIC18F452, puede manejar :

      hasta 128 entradas digitales
      hasta 128 salidas digitales
      hasta 64 entradas analógicas
      LCD matriciales gráficas y tipográficas.
      BankSticks (IIC EEPROMs)
      Un MIDI In, un MIDI Out, opcionalmente como interfaz to-COM

Han sido incluidos numerosos controladores que manejan las siguientes tareas de
control desde en segundo plano:

      Procesamiento de MIDI IO
      Cargador “Bootstrap”
      Conversión analógica de hasta 64 pots, faders u otras fuentes analógicas con
      resolución de 10 bits.
Manejo de motor para hasta 8 motorfaders con resolución de 10 bits.
   Manejo de hasta 64 detenido/no-detenido codificadores rotativos
   Manejo de hasta 128 botones, sensores táctiles o dispositivos de entrada similares.
   Manejo de hasta 128 LEDs, relés, conversores analógico-digitales o dispositivos de
   salida similares. En el modo "multiplexado", se puede controlar un número casi
   ilimitado de LEDS, anillos de LED y números con LEDs.
   Lectura/Escritura desde/hacia EEPROM, Flash o BankStick
   PIC18F cores enlazables .

El sistema operativo ha sido escrito completamente en lenguaje ensamblador y ha sido
optimizado para mayor velocidad .Actualmente MIOS asigna 8k de memoria de
programa ( se reservan 4k para futuras extensiones) y 640 bytes de RAM. La
arquitectura de sistema es bastante estable, las funciones adicionales que carga la CPU
no están planeadas. El manejador de SRIO (Shift Registers Input – Output) requiere
solo 75 uS para captar los datos de128 pines digitales de entrada y escribir datos en 128
pines de salida. 16 codificadores rotatorios (rotary encoders) se manejan dentro de los
100 uS. Las entradas analógicas son escaneadas en segundo plano, con un resultado de
conversión cada 200 uS. Hasta 256 eventos MIDI pueden accionar funciones
dedicadas, el procesamiento de la lista de eventos requiere cerca de 300 uS. Los eventos
MIDI también pueden ser procesados por una rutina de usuario para parseado SysEx o
trabajos similares. Un temporizador de usuario permite realizar código activado en el
tiempo. Se han hecho numerosas mediciones para permitir una interacción unificada
con MIOS: Todas las variables de tiempo de ejecución han sido localizadas en el área
BANKED de la RAM y no asigna la página ACCESS. Los parámetros de entrada
(Input) y salida (output) de las funciones y "atajos" se transfieren mediante WREG, tres
registros adicionales (MIOS_PARAMETER[123]) y el indicador FSR1.

TBLPTR[LH], TABLAT, PROD[LH], FSR0 y FSR2 son guardadas y se restaurarán si
una función MIOS hace uso temporal de estos SFRs.




1.6.5.     Plataforma De Procesamiento MIDI
Figura 75 Plataforma de Procesamiento MIDI, MIOS Studio




         Fuente: KING Adam, MIOS Studio, 2005-06-14, http://miosstudio.midibox.org/




La plataforma de procesamiento MIDI, se conoce también con el nombre de MIOS
Studio. MIOS Studio fue iniciado por Jason Williams in Noviembre 2003, y después
retomado por Adam King. Esta aplicación es de mucha utilidad al momento de revisar
las comunicaciones entre nuestro dispositivo MIDI y el computador. Además,
proporciona herramientas de simulación y la disponibilidad de cargar los archivos Sysex
al hardware del controlador MIDI para definir nuestra aplicación específica.

Debemos mencionar que adicionalmente a permitirnos la depuración de MIOS, tiene
también funciones de propósito general como ruteo de puerto MIDI, Monitoreo,
Filtración y un teclado virtual.




1.7.     ELECTRÓNICA DIGITAL
1.7.1.    Optoacopladores

         Un optoacoplador, también llamado optoaislador o aislador acoplado
         ópticamente, es un dispositivo de emisión y recepción de luz que funciona
         como un interruptor excitado mediante la luz. La mencionada luz es emitida
         por un diodo LED que satura un componente optoelectrónico, normalmente en
         forma de fototransistor. De este modo se combinan en un solo dispositivo
         semiconductor, un fotoemisor y un fotorreceptor cuya conexión entre ambos
         es óptica. […]. Se suelen utilizar como medio de protección para dispositivos
         muy sensibles.

                       Figura 76 Plataforma de Procesamiento MIDI, MIOS Studio




               Fuente: Colaboradores de Wikipedia, Optoacoplador, 26 de enero del 2009,
               http://es.wikipedia.org/w/index.php?title=Optoacoplador&oldid=23552960


         La Figura 76 […] muestra un optoacoplador 4N35 formado por un LED y un
         fototransistor. La tensión de la fuente de la izquierda y la resistencia en serie
         establecen una corriente en el LED emisor cuando se cierra el interruptor S1.
         Si dicha corriente proporciona un nivel de luz adecuado, al incidir sobre el
         fototransistor lo saturará, generando una corriente en R2. De este modo la
         tensión de salida será igual a cero con S1 cerrado y a V2 con S1 abierto.

         Si la tensión de entrada varía, la cantidad de luz también lo hará, lo que
         significa que la tensión de salida cambia de acuerdo con la tensión de entrada.
         De este modo el dispositivo puede acoplar una señal de entrada con el circuito
         de salida.

         La ventaja fundamental de un optoacoplador es el aislamiento eléctrico entre
         los circuitos de entrada y salida. Mediante el optoacoplador, el único contacto
         entre ambos circuitos es un haz de luz. Esto se traduce en una resistencia de
         aislamiento entre los dos circuitos del orden de miles de MΩ. Estos
aislamientos son útiles en aplicaciones de alta tensión en las que los
           potenciales de los dos circuitos pueden diferir en varios miles de voltios.9

El optoacoplador utilizado en el proyecto fue el 6N138, que tiene el siguiente esquema
interno:

                    Figura 77 Diagrama Funcional para el Optoacoplador 6N138




    Fuente: Hewlett-Packard, Low Input Current, High Gain Optocouplers - Technical Data, 1998

Sin embargo para nuestra aplicación en específico y para cumplir los requerimientos
eléctricos que establece el estándar MIDI, fue conectado de la siguiente manera:

        Figura 78 Esquema de conexión eléctrica para el 6N138 para el puerto de entrada MIDI




       Fuente: Klose Thorsten, MIDIbox Hardware Platform – MBHP_Core_V3, 2006-06-10




9
 Colaboradores de Wikipedia, Optoacoplador, 26 de enero del 2009,
http://es.wikipedia.org/w/index.php?title=Optoacoplador&oldid=23552960
Este esquema lo podremos apreciar completamente, más adelante cuando veamos el
diseño de hardware. Nótese el diodo en la entrada 2 y 3, el cual invierte la polaridad de
funcionamiento.

A continuación el detalle de las condiciones recomendadas de operación:

                       Figura 79 Condiciones Recomendadas de Operación




   Fuente: Hewlett-Packard, Low Input Current, High Gain Optocouplers - Technical Data, 1998




Especificaciones Eléctricas:
Figura 80 Condiciones Recomendadas de Operación




Fuente: Hewlett-Packard, Low Input Current, High Gain Optocouplers - Technical Data, 1998
1.7.2.     LCD

Una pantalla de cristal líquido o LCD (acrónimo del inglés Liquid Crystal Display) es
una pantalla delgada y plana formada por un número de píxeles en color o monocromos
colocados delante de una fuente de luz o reflectora. A menudo se utiliza en dispositivos
electrónicos de pilas, ya que utiliza cantidades muy pequeñas de energía eléctrica.

Para la realización del proyecto se utilizó un módulo LCD estándar de 16X2 caracteres.
Por lo que fue necesario conocer sus parámetros más relevantes tanto eléctricos como
mecánicos, además de los comandos que utiliza para su manejo.

Características Eléctricas:

                  Figura 81 Características Eléctricas para un Módulo LCD 16x2




Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible




Designación de Pines:
Figura 82 Designación de Pines




Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible




Diagrama de bloques:

                                Figura 83 Diagrama de bloques




Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible


Tiempos de Acceso:

Escritura:
Figura 84 Tiempos de Acceso para Escritura




Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible


Lectura:

                           Figura 85 Tiempos de Acceso para Lectura




Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible




Comandos:

                           Figura 86 Comandos para manejar el LCD
Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible




Dimensiones:




                            Figura 87 Dimensiones del módulo LCD
Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible




1.7.3.     Multiplexación

El concepto de multiplexación fue necesario aplicar en el proyecto, debido a la cantidad
de señales analógicas y la capacidad de entradas en el microprocesador.

Básicamente con tan solo 8 entradas analógicas del PIC se pueden controlar hasta 64
potenciómetros (en el módulo principal), todo gracias al concepto de multiplexación y
al diseño del MIOS.

Un multiplexor selecciona una de sus entradas presentes y la transmite a la salida
principal para su posterior tratamiento. En acorde a una señal de reloj y un código
binario que determina cuando y qué entrada seleccionar.

El multiplexador utilizado en el módulo de entradas analógicas del proyecto, es el chip
4051, que es un multiplexador simple de 8 canales provisto de entradas binarias para
control y de una entrada para inhibición. Las tres señales binarias seleccionan 1 de los 8
canales para ser encendido y conectar una de las 8 entradas a la salida.
Distribución de Pines:




                             Figura 88 Pines del Multiplexor 4051




         Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005


Diagrama de bloques:

               Figura 89 Diagrama de Bloques Funcional para el Multiplexor 4051




         Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005
Tablas de Verdad:

                       Figura 90 Tabla de Verdad para el Multiplexor 4051




          Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005


Principales Características Eléctricas:

             Figura 91 Principales características eléctricas para el Multiplexor 4051
Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005




Figura 92 Principales características eléctricas para el Multiplexor 4051 (continua)
Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005




Valores máximos absolutos:

Fuente de Voltaje (V+ a V-)

         Voltajes referenciados al terminal VSS . . . . . . . -0.5 V a 20 V

Rango de Voltaje de Entrada Digital . . . . . . . . -0.5 V a VDD + 0.5 V

Corriente de Entrada DC, en cualquier entrada . . . . . . . . . . . ±10 mA




1.7.4.       Registros IO (Input – Output)
Entender brevemente el uso de los registro de entrada y salida, nos permitió el manejo
de los botones y los LEDs. La plataforma MIDIBOX, en la que está basada el desarrollo
de los controladores con MIOS, utiliza tanto para los módulos de entradas como para las
salidas este tipo de registros.

A continuación revisaremos sus principales características:

1.7.4.1.    REGISTRO 74HC165

El 74HC165 es un registro de desplazamiento (shift register) de 8 BIT para entradas
paralelas y 1 salida serial.

Características principales:

-   Carga paralela de 8 BIT asincrónica
-   Entrada serial sincrónica
-   Capacidad de salida: Estándar
-   Categoría del ICC: MSI

Los 774HC/HCT165 son registros de desplazamiento de 8-BIT carga-paralela o
entrada-serial, con salidas seriales complementarias (Q7# y Q7) disponibles de la última
etapa. Cuando la entrada de carga paralela (PL) es baja, los datos paralelos desde la
entrada D0 a D7 son cargadas en el registro asincrónicamente.


Cuando PL es alto, los datos ingresan al registro serialmente en la entrada DS y desplaza
un lugar a la derecha (Q0 Q1 Q2, etc.) con transición positiva del reloj. Esta
característica permite una expansión del convertidor paralelo a serial al unir la salida de
Q7 a la entrada DS de la etapa consecutiva.


La entrada del reloj es una estructura de compuerta OR la cual permite a una entrada ser
usada como una entrada de habilitación activa en LOW de reloj (CE). La asignación
para las entradas CP y CE son arbitrarias y pueden ser invertidas para conveniencia de
diseño. La transición BAJO-a-ALTO de la entrada CE debe tomar lugar solamente
cuando CO ALTO para una operación predecible. Ya sea CP o CE deben ser ALTOS
antes de la transición BAJO-a-ALTO de PL para prevenir desplazamiento de los datos
cuando PL está activado.
Descripción de pines:

                    Figura 93 Descripción de Pines para el registro 74HC165




   Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990




           Figura 94 Distribución de los pines en el encapsulado del registro 74HC165




   Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990




                                    Diagrama Funcional
Figura 95 Diagrama Funcional del registro 74HC165




    Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990



Tabla de funcionamiento:


                     Figura 96 Tabla de funcionamiento del registro 74HC165




    Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990




1.7.4.2.   REGISTRO 74HC595
Características Principales:


-   Entrada serial de 8 BIT
-   Salida paralela o serial de 8 BIT
-   Registro de almacenaje con salidas de 3-estados
-   Registro de desplazamiento con limpiado directo
-   Capacidad de salida:
-   Salida paralela, manejador de bus
-   Salida serial, estándar
-   ICC categoría: MSI


Descripción:


Estos registros son utilizados en el módulo de salida para el manejo de LEDs en el
controlador MIDI. Cada registro está provisto de 8 señales digitales, las cuales son
actualizadas con la señal de habilitación del latch, RCLK y son desplazadas con la señal
de reloj SCLK. La ventaja de usar tales registros es que pueden conectados en cascada.


El registro de desplazamiento y almacenaje tienen relojes separados. Los datos son
desplazados en las transiciones positivas del la entrada SHCP. Los datos en cada
registro son transferidos al registro de almacenamiento en una transición positiva de la
entrada STCP. Si ambos relojes son conectados juntos, el registro de desplazamiento
siempre estará un pulso de reloj adelante del registro de almacenamiento.


El registro desplazamiento tiene una entrada serial (DS) y una salida serial estándar
(Q7’) para conexión en cascada. Esta también provisto con un reset asincrónico (activo
a BAJO) para todas las 8 etapas de los registros de desplazamiento. El registro de
almacenaje tiene 8 salidas paralelas manejadas de 3 estados. Los datos en el registro de
almacenamiento aparecen en las salidas cuando la entrada (OE) sea BAJA.
Pines:

                    Figura 97 Descripción de Pines para el registro 74HC595
Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output
                           Latches; 3-State, 4 de Junio del 1998

           Figura 98 Distribución de Pines en el encapsulado para el registro 74HC595




Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output
                           Latches; 3-State, 4 de Junio del 1998




Diagrama Funcional:

                    Figura 99 Diagrama funcional para el registro 74HC595
Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output
                           Latches; 3-State, 4 de Junio del 1998

Tabla de funcionamiento:

                  Figura 100 Tabla de funcionamiento para el registro 74HC595




Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output
                           Latches; 3-State, 4 de Junio de 1998

1.8.   ELECTRÓNICA ANALÓGICA
En el entorno referente a estudios de electrónica analógica, los temas que de pronto
según nuestro criterio merecían una breve revisión, era sobre lo que respecta a las
fuentes de voltaje, especialmente en el aspecto de rectificación. Ya que los módulos
utilizados se alimentan básicamente de DC.


1.8.1. Fuentes De Voltaje


La fuente de voltaje especificada para nuestro proyecto, es una fuente en la que
prácticamente se omite la etapa inicial de transformador, básicamente por la razón de
que el controlador MIDI está diseñado para ser un dispositivo portátil, utilizado por DJs,
es decir no puede ser pesado ni muy grande. Además, es más factible por facilidad de
uso, utilizar directamente un adaptador de DC disponibles en el mercado, y a un precio
asequible.



                Figura 101 Diagrama de bloques de las etapas de una fuente VDC




                Fuente: Unicrom.com, Fuentes de Poder, Diagrama de bloques,
                          http://unicrom.com/Tut_fuentepoder.asp




Por lo antes mencionado, se ha adaptado una etapa de rectificación, filtro y regulación,
en el módulo principal.
Explicaremos rápidamente las diferentes etapas:



        Figura 102 Esquema electrónico para una fuente de 5 VDC (utilizada en el proyecto)




      Fuente: Klose Thorsten, MIDIbox Hardware Platform – MBHP_Core_V3, 2006-06-10



Segunda etapa: rectificación.

La segunda etapa de nuestra fuente de alimentación es la que queda constituida por la
rectificación, en este punto, la señal inducida al secundario, será nuevamente inducida
pero ahora a una señal directa. La fuente más común, posee una rectificación a base de 4
diodos, por lo que su rectificación será de onda completa y esta conectado en “tipo
puente”. Al alimentar el en esta etapa circuito con un adaptador de CC, se evade el
problema que implicaría una inversión de polaridad, gracias al puente rectificador.




                         Figura 103 Forma de un Rectificador por puente
Fuente: Won-Top Electronics, B40C800-B500C800 Bridge Rectifier, 2002




Tercera Etapa: Filtro

Esta etapa, tiene como función, “suavizar” o “alisar” o “reducir” a un mínimo la
componente de rizo y elevar el valor promedio de tensión directa. El capacitor de 2200
uF es de un tamaño y capacidad considerable, para eliminar notablemente las
ondulaciones de la anterior etapa, además de eliminar ruidos que puedan ingresar al
circuito.




Cuarta Etapa: Regulador De Voltaje.
En esta etapa final, garantizamos una alimentación estable a nuestro sistema, gracias al
IC 7805 que nos entrega una salida bastante limpia de 5 VDC, con una alimentación
máxima de 10 VDC, para no recalentar el integrado. Junto a este se conectan
capacitores adicionales, como podemos apreciar en la Figura 102, los condensadores
C6, C4 y C3. Estos valores han sido implementados como sugiere el "data sheet" del IC
7805.


1.8.2. Transistores BJT

         El transistor bipolar es el más común de los transistores, y como los
         diodos, puede ser de germanio o silicio.

         Existen dos tipos transistores: el NPN y el PNP, y la dirección del flujo de la
         corriente en cada caso, lo indica la flecha que se ve en el gráfico de cada tipo
         de transistor.

         El transistor es un dispositivo de 3 patillas con los siguientes nombres: base
         (B), colector (C) y emisor (E), coincidiendo siempre, el emisor, con la patilla
         que tiene la flecha en el gráfico de transistor.



                    Figura 104 Simbología para los diferentes tipos de transistores BJT




                       Transistor NPN                           Transistor PNP



                           Fuente: Unicrom.com, Transistor Bipolar o BJT,
                           http://www.unicrom.com/Tut_transistor_bipolar.asp

         El transistor bipolar es un amplificador de corriente, esto quiere decir que si
         le introducimos una cantidad de corriente por una de sus patillas (base), el
         entregará por otra (emisor), una cantidad mayor a ésta, en un factor que se
         llama amplificación.

         Este factor se llama β (beta) y es un dato propio de cada transistor.

         Entonces:
         - Ic (corriente que pasa por la patilla colector) es igual a β (factor de
         amplificación) por Ib (corriente que pasa por la patilla base).
-               Ic              =              β              *               Ib
            - Ie (corriente que pasa por la patilla emisor) es del mismo valor que Ic, sólo
            que, la corriente en un caso entra al transistor y en el otro caso sale de él, o
            viceversa.10



Figura 105 Variación de la corriente de Colector, en función del Voltaje Colector – Emisor, al mantener
                                   una corriente de base constante




                                              Fuente: 7

El funcionamiento de este tipo de transistores es bastante conocido por todos, pero vale
la plena explicar el funcionamiento del circuito que utiliza estos transistores en módulo
principal del proyecto.




Figura 106 Esquema electrónico en el que se utiliza un transistor BJT para variar la iluminación de un
                                            diodo LED



10
     Unicrom.com, Transistor Bipolar o BJT, http://www.unicrom.com/Tut_transistor_bipolar.asp
Fuente: Klose Thorsten, MIDIbox Hardware Platform – MBHP_Core_V3, 2006-06-10




Al variar el potenciómetro P1, estoy modificando la corriente que llega a la base, por lo
tanto debido a la formula mencionada anteriormente Ic = β * Ib también estoy variando
la corriente que llega al LED del módulo LCD.

More Related Content

Similar to Tecnología musical y DJ: Investigación teórica sobre software, MIDI y técnicas básicas de mezcla

House alejandro nicolas
House alejandro nicolasHouse alejandro nicolas
House alejandro nicolasalejandroynico
 
House alejandro nicolas
House alejandro nicolasHouse alejandro nicolas
House alejandro nicolasalejandroynico
 
Tutorial Fl Studio
Tutorial Fl Studio Tutorial Fl Studio
Tutorial Fl Studio Daniel Rivas
 
15 Caja De Ritmos
15 Caja De Ritmos15 Caja De Ritmos
15 Caja De RitmosMUSICAMOS
 
Actividad como disc jockey
Actividad como disc jockeyActividad como disc jockey
Actividad como disc jockeydjsoto
 
Practica de audacity escalas y generar ondas basicas, aplicar efectos
Practica de audacity escalas y generar ondas basicas, aplicar efectosPractica de audacity escalas y generar ondas basicas, aplicar efectos
Practica de audacity escalas y generar ondas basicas, aplicar efectosJorge Rincón Martín
 
CHORDS - Manual (Español), MANUAL DE ACORDE PROGRESIONES PLUGIN
CHORDS - Manual (Español), MANUAL DE ACORDE PROGRESIONES PLUGINCHORDS - Manual (Español), MANUAL DE ACORDE PROGRESIONES PLUGIN
CHORDS - Manual (Español), MANUAL DE ACORDE PROGRESIONES PLUGINSirPendragon
 
Herramientas FL STUDIO
Herramientas FL STUDIOHerramientas FL STUDIO
Herramientas FL STUDIOAdan Charcas
 
Tm Completo
Tm CompletoTm Completo
Tm Completorsherves
 
Dj @ home!
Dj @ home!Dj @ home!
Dj @ home!lapaujm
 
C:\fakepath\dj@home!
C:\fakepath\dj@home!C:\fakepath\dj@home!
C:\fakepath\dj@home!lapaujm
 
Introducción a la producción músical
Introducción a la producción músicalIntroducción a la producción músical
Introducción a la producción músicalEduardo Mexia
 

Similar to Tecnología musical y DJ: Investigación teórica sobre software, MIDI y técnicas básicas de mezcla (20)

House alejandro nicolas
House alejandro nicolasHouse alejandro nicolas
House alejandro nicolas
 
House alejandro nicolas
House alejandro nicolasHouse alejandro nicolas
House alejandro nicolas
 
Tutorial Fl Studio
Tutorial Fl Studio Tutorial Fl Studio
Tutorial Fl Studio
 
Iniciación a la edición y mezcla musical digital (DJ).pdf
Iniciación a la edición y mezcla musical digital (DJ).pdfIniciación a la edición y mezcla musical digital (DJ).pdf
Iniciación a la edición y mezcla musical digital (DJ).pdf
 
Programa edición de sonido
Programa edición de sonidoPrograma edición de sonido
Programa edición de sonido
 
Programa edición de sonido
Programa edición de sonidoPrograma edición de sonido
Programa edición de sonido
 
15 Caja De Ritmos
15 Caja De Ritmos15 Caja De Ritmos
15 Caja De Ritmos
 
Actividad como disc jockey
Actividad como disc jockeyActividad como disc jockey
Actividad como disc jockey
 
Practica de audacity escalas y generar ondas basicas, aplicar efectos
Practica de audacity escalas y generar ondas basicas, aplicar efectosPractica de audacity escalas y generar ondas basicas, aplicar efectos
Practica de audacity escalas y generar ondas basicas, aplicar efectos
 
CHORDS - Manual (Español), MANUAL DE ACORDE PROGRESIONES PLUGIN
CHORDS - Manual (Español), MANUAL DE ACORDE PROGRESIONES PLUGINCHORDS - Manual (Español), MANUAL DE ACORDE PROGRESIONES PLUGIN
CHORDS - Manual (Español), MANUAL DE ACORDE PROGRESIONES PLUGIN
 
La InformáTica Musical
La InformáTica MusicalLa InformáTica Musical
La InformáTica Musical
 
Techno
TechnoTechno
Techno
 
Herramientas FL STUDIO
Herramientas FL STUDIOHerramientas FL STUDIO
Herramientas FL STUDIO
 
Tm Completo
Tm CompletoTm Completo
Tm Completo
 
Dj @ home!
Dj @ home!Dj @ home!
Dj @ home!
 
C:\fakepath\dj@home!
C:\fakepath\dj@home!C:\fakepath\dj@home!
C:\fakepath\dj@home!
 
Clase 7 tecno i- comunicacion 2015
Clase 7  tecno i- comunicacion 2015Clase 7  tecno i- comunicacion 2015
Clase 7 tecno i- comunicacion 2015
 
Flstudio12
Flstudio12Flstudio12
Flstudio12
 
Introducción a la producción músical
Introducción a la producción músicalIntroducción a la producción músical
Introducción a la producción músical
 
Clase 7 tecno i- periodismo 2015
Clase 7  tecno i- periodismo 2015Clase 7  tecno i- periodismo 2015
Clase 7 tecno i- periodismo 2015
 

Tecnología musical y DJ: Investigación teórica sobre software, MIDI y técnicas básicas de mezcla

  • 1. 1. INVESTIGACIÓN TEÓRICA
  • 2. 1.1. BREVE RESEÑA DE LA TECNOLOGÍA MUSICAL Y DJ Si hay algo que marca el inicio de la revolución tecnológica en el área de la música (así como en muchas áreas) es el avance exponencial de la capacidad de procesamiento y el abaratamiento en el costo de las computadoras. La tecnología VLI de los microchips DSP, la cantidad de memoria RAM y la velocidad de los discos duros entre otras características, permitieron la implementación de software capaz no solo de tener la funcionalidad MIDI – Musical Instrument Digital Interface- (Interfase Digital de Instrumento Musical) , sino de soportar subprogramas que emulan el sonido e interfase de equipos de hardware reales. Entre las principales aplicaciones de software para creación musical con funcionalidad MIDI, son los Secuenciadores. Estos son la principal herramienta para la creación de los metronómicos típicos beats sonoros escuchados especialmente en la música electrónica de hoy. Y en definitiva, ningún músico electrónico profesional o DJ consideraría crear música sin la asistencia del secuenciador. Justamente esta velocidad de procesamiento de los computadores es una de las principales razones por los cual, prácticamente todo el proceso de producción musical: grabación, edición, arreglos, mezcla y masterización se lo realiza a nivel digital. Cada vez hay más software para diferentes aplicaciones: sintetizadores, procesadores de efectos, procesadores dinámicos, emuladores de sistemas DJ; que afortunadamente consiguen excelentes resultados de calidad sonora, gracias a los altos niveles de conversión A/D – D/A (analógica/digital – digital/analógica), y a los interfaces de audio con resoluciones por ejemplo de hasta 32 bits y frecuencias de muestreo (“Sampling”) de hasta 96 Khz. por segundo. El bajo costé de los nuevos computadores y equipamiento de audio, ha permitido que la creación musical de calidad decente, esté al alcance de muchas personas. Cada día proliferan más y más estudios caseros, donde las personas pueden dar rienda suelta a su creatividad, aprovechando la cantidad de software asequibles incluso gratuitamente y en su mayoría a través del Internet.
  • 3. El DJ digital. Es la tendencia que actualmente se encuentra en auge, de igual manera debido a la capacidad de los nuevos computadores. Además, del aporte tecnológico antes mencionado, un factor sumamente importante en el “boom” del DJ digital es el Internet y el MP3. Temas muy conocidos y familiarizados por todos, que prácticamente están enterrando una era del DJ que utiliza discos de vinilo prensados para realizar sus mezclas. Ahora una computadora, una colección de archivos MP3, un software adecuado para la realizar virtualmente el procedimiento básico del DJ y finalmente un Controlador MIDI, abren un abanico enorme de manipulación sonora para el DJ de hoy. La tecnología DJ ha evolucionado de los sistemas tradicionales basados en un par de tocadiscos de vinilo y un mezclador, a su emulación perfecta en software. Programas como el Ableton Live y el NI Traktor han conseguido no sólo integrar y recrear un sistema completo para DJ, sino incluso en muchas ocasiones superarlo. Al aprovechar la flexibilidad y profundidad de manipulación que brinda el audio digital Todos estos programas tienen lo elementos básicos que se necesitan para empezar a mezclar y experimentar sesiones de DJ: 2 canales de audio, mezclador, ecualización, monitoreo en privado, y procesadores de efectos. Para comprender de una mejor manera las ventajas de un sistema digital para DJ, es necesario revisar las técnicas básicas utilizadas para la mezcla de pistas de audio. 1.2. RESUMEN DE TÉCNICAS BÁSICAS DE MEZCLA PARA DJ La técnica básica de mezcla utilizada por muchos DJs se resume en los siguientes pasos: 1. Reproducir el primer tema que empieza a sonar para “el público” o “al aire” a través del Dispositivo Reproductor 1 en el Canal 1 del Mezclador
  • 4. 2. Escoger el siguiente tema para cargarlo en el Dispositivo Reproductor 2 en el Canal 2 del Mezclador y escucharlo o monitorearlo en los audífonos para verificar el punto de inicio de la reproducción y su velocidad (o tempo) o en relación con el tema que está ya sonando en vivo. 3. Una vez ajustado el tema 2 en interno, se empiezan a mezclar los dos temas utilizando los controles de volumen para cada canal 4. Finalmente se termina la mezcla y la transición de un tema al otro. 5. Se repiten los pasos del 1 – 4 indefinidamente de manera alternada, es decir, en este caso la nueva mezcla sería del canal 2 – 1, después 1 – 2 otra vez y así sucesivamente. Durante todo este proceso se puede hacer uso de recursos extras como son la ecualización y los procesadores de efectos para aportar con una mayor improvisación y manipulación del sonido según el gusto de cada DJ. A continuación podemos observar un flujo grama del proceso que implica la mezcla de pistas, en una sesión para DJ:
  • 5. Figura 1 diagrama de flujo para la mezcla de pistas de audio que realiza un DJ INICIO ¿Qué pista 1 finalizó? A 1 B ¿Qué pista 3 suena? A 2 Cargo pista Reproductor A B CANAL 1 4 NO Preparo tempo o ¿Primera ajusto pista A Primera pista pista? (AUDIFONOS) Nueva Pista finaliza Suena (PUBLICO) 3 SI Suena Pista ¿Lista para NO A mezcla? (PUBLICO) SI 2 MEZCLA Suena PISTA A Y transición Cargo pista PISTA B entre pistas Reproductor B (PUBLICO) CANAL 2 NO Preparo tempo o ¿Primera ajusto pista B, pista? (AUDIFONOS) 4 SI Suena Pista ¿Lista para NO B mezcla? (PUBLICO) SI Fuente: El Autor
  • 6. 1.3. TECNOLOGÍA MIDI Cada músico “real” se expresa con su instrumento de una manera conciente o inconciente utilizando una serie de interpretaciones de diferentes tipos. Por ejemplo, un pianista podría golpear ciertas notas más fuerte que otras, un guitarrista podría deslizar sus dedos hacia arriba por el mástil de trastes flexionando el sonido, o podría sostener algunas notas mientras acorta otras. Todos estos matices contribuyen al elemento humano detrás de la música, y sin ellas la música sonaría aburrida y sin vida. Mucha gente podría discutir que no hay un elemento humano detrás de la música electrónica “dance” debido a que todo su principio está basado en golpes exactos y melodías que suenan como si una máquina los hubiera creado. En la mayoría de casos esto no es verdad y con un detalle minucioso se podría encontrar que incluso el más repetitivo “Techno1” está copado con pequeñas instancias sónicas que previenen a que llegue a ser tedioso. Esta es la razón clave de el porqué algunas canciones parecen tener mucha de energía o “alma” y otras inmóviles y monótonas; y también es por esto que debe ser imperativo entender como el protocolo MIDI puede ser utilizado. Conociendo esto, la tecnología MIDI puede ser explotada para crear la impresión de que un tema tenga energía, manejo y un carácter indefinible. Mucha de la energía y flujo de cualquier música puede ser atribuida al desarrollo ligero o agresivo de los sonidos a través de la longitud del arreglo. Mientras el músico interpreta la pieza musical o el DJ realiza la mezcla de las pistas naturalmente inyecta esto en su presentación, capturando este sentimiento a través de MIDI requiere el uso de una serie de controladores MIDI. Por ejemplo, cuando el músico toca una nota y mueve la rueda “pitch-bend”, esta rueda envía un flujo continuo de mensajes de control al motor del sintetizador, el cual a su vez flexiona la afinación hacia arriba o abajo. Si esto juega un papel importante en su rendimiento, entonces el músico necesitará realizar esto en tiempo real cada vez que interprete su música. O en el caso del DJ cuando mueve el control deslizante de nivel, este control 1 “Techno” es un subgénero de la música electrónica de baile, caracterizado generalmente por su mínima variación en el tiempo y sonidos de percusión repetitivos e hipnóticos.
  • 7. de igual manera incrementa o disminuye el volumen de la pista de audio en alguno de los canales del mezclador. Todo esto se lo podría automatizar o controlar gracias al protocolo MIDI ya sea desde el secuenciador o los controladores MIDI. 1.3.1. Controladores MIDI Tiempo atrás en 1980 uno de los propósitos originales del desarrollo de la especificación MIDI, era permitir a los intérpretes en vivo, la habilidad de controlar los sonidos de múltiples sintetizadores desde un simple teclado. Ese concepto ha tenido un gran éxito y hoy en día cantautores con portátiles, músicos de estudio, diseñadores de sonido y otros, se han podido beneficiar de la flexibilidad que ofrece un controlador MIDI. Técnicamente, un controlador MIDI es un dispositivo que posee un conjunto de actuadores que adoptan la forma de por ejemplo las teclas estilo piano, deslizadores como las encontradas en los mezcladores de DJ, o perillas de volumen en equipos de audio, botones, etc. Todos estos transmiten datos MIDI a módulos de sonido externo, a sintetizadores, “samplers” (muestreadotes) y secuenciadores de software, tanto reales como virtuales. La mayoría de los controladores MIDI adoptan cualquier tipo de diseño dependiendo del tipo de aplicación o instrumento que se quiera interpretar. Pudiendo ser por ejemplo, similar al de un teclado – piano, una batería eléctrica o una flauta; incluso como en el caso de este proyecto, un sistema para DJ. Vale la pena mencionar, que un controlador MIDI en concreto, no procesa ni genera señales de audio; maneja exclusivamente señales digitales que comandan los parámetros de audio de otros instrumentos o programas. Como habíamos mencionado, una de las principales ventajas que poseen los controladores MIDI es permitir la interpretación del músico en vivo de su instrumento electrónico, además de brindar versatilidad y portabilidad. Ellos brindan
  • 8. el control sobre virtualmente el rango entero de hardware y software musical incluso al mismo tiempo siendo lo suficientemente compactos para ajustarse a una bolsa de laptop. En el siguiente capítulo, se podrá conocer en mayor detalle sobre el protocolo MIDI. 1.3.2. Especificaciones MIDI Con lo mencionado en capítulos anteriores podemos tener una idea de lo que abarca el tema MIDI. Específicamente, la palabra MIDI son las siglas en inglés de “Musical Instrument Digital Interface” traducido equivale a Interfase Digital de Instrumento Musical. MIDI es un protocolo de comunicaciones generalizado que habilita a los instrumentos equipados con MIDI a que sean interconectados y controlados por un secuenciador. Es decir, permite que equipos de audio de diferentes compañías puedan trabajar juntos, lo cual significa que una pieza de software (secuenciador) pueda convertir un banco de sintetizadores hechos por diferentes empresas en una orquesta coherente (o banda de rock, ensamble de jazz, instalación de DJs, o casi todo). Al usar un secuenciador MIDI – un programa que permite grabar y editar datos MIDI- es posible componer música con una velocidad y flexibilidad que supera los métodos antiguos de composición. Y finalmente, es posible guardar estas composiciones en archivos en un formato que permite una fácil colaboración. MIDI es similar al audio digital en sí, debido al hecho de que reduce varios elementos de una interpretación musical en comandos numéricos generados. Usando números, el lenguaje MIDI básico dice por ejemplo a un sintetizador (o secuenciador, o software con compatibilidad MIDI) la siguiente información: o Cuándo tocar la nota: el número de la nota2 o Cuándo empezar y terminar esa nota: nota encendida y nota apagada o Qué tan alto tocar esa nota: esto se conoce como velocidad de la nota 2 Al final del documento en el Anexo 2 podemos apreciar el número de nota MIDI
  • 9. o Para que parámetros son: flexión de afinación (pitch bends), modulaciones, movimientos de rueda, y el uso del pedales sostenido o Que sonidos tocar y cuando, y si el sonido cambia ( por ejemplo empezar con un sonido de guitarra eléctrica y después enviar mensajes MIDI para cambiar al sonido de una guitarra acústica) En definitiva el MIDI es un vía estandarizada (protocolo) para la comunicación entre dispositivos musicales. Con la capacidad de manejar hasta 16 canales -16 instrumentos- Este protocolo especifica diferentes tipos de mensajes que están conformados por palabras de 10 bits y son transmitidos serialmente a una velocidad de 31250 bits / segundo. De estos 10 bits dos especifican el inicio y el final del mensaje, (0 y 1 respectivamente) restando entonces 1 byte (8 bits) que define en sí la palabra MIDI del mensaje. El MIDI byte puede ser de dos tipos: estado e información. 1. Estado: Un byte de estado (empieza con el MSB en 1. Entonces, un byte de estado varía entre 128-255 en decimal y 0x80-0xFF en hexadecimal. Ejemplo: 1001xxxx 2. Información: En este caso el octavo BIT inicia con 0. Por lo tanto, prácticamente un mensaje de información MIDI consta de 7 bits. Es decir varía desde 0-127 en decimal, 0x00-0x7F en hexadecimal. Ejemplo: 00111100 Enviar bytes de datos con valores ≥ 128 violarían el protocolo MIDI y puede provocar un comportamiento aleatorio en el lado del receptor, porque el receptor puede asumir que un nuevo mensaje MIDI empieza (8vo BIT ajustado en el byte de estado) En conclusión un mensaje MIDI se compone de un byte de estado y varios bytes de información continuos.
  • 10. Por ejemplo: 1. 1001xxxx (note ON) 2. 00111100 (valor 64 que corresponde a la nota do) 3. 0xxxxxxx (la velocidad con la que haya sido apretada la tecla) 4. Pero al soltarla, puede omitir el byte status y apagarla por volumen (otra posibilidad es que usase el 1000xxxx “note off” para apagarla). Es decir, transmitiría sólo los dos siguientes bytes: 5. 00111100 (valor 64 que corresponde a la nota do) 6. 00000000 (la velocidad cero, que indica que tiene que dejar de sonar esa nota). Omitiendo así el byte status. Es más, si nuevamente pulsamos la tecla do, volvería a omitir el byte status. 1.3.3. Tipos de Mensajes MIDI Existen diferentes tipos de mensajes MIDI3: 1. Mensajes De Canal: Mensajes de Voz. Que contienen datos referentes a la interpretación musical. Se los puede identificar porque varían su byte de estado desde 1000nnnn a 1110nnnn Mensajes de Modo. Los mensajes de modo contienen datos que alteran la forma en que el instrumento receptor interpreta los datos de los mensajes de voz. Inician con el byte de estado de 1011nnnn y seguidos por los mensajes de información: 0ccccccc y 0vvvvvvv, donde "c" varía entre 120 y 127, siendo bastante similar al mensaje de voz “Cambio de Control” pero que adopta valores fuera del rango. 3 Al final del documento en en el Anexo 1 podemos encontrar un resumen de los diferentes tipos de mensajes MIDI, expuestos desde la propia página Web de la MMA -MIDI Manufacturers Association- (Asociación de Fabricantes MIDI)
  • 11. 2. Mensajes de Sistema: Sistema común. están destinados a todos los receptores del sistema. Estos mensajes cumplen varias funciones como por ejemplo: alertar un dispositivo en específico, apuntar la posición de una canción, seleccionar la canción, petición de afinación, finalización de un mensaje exclusivo. Su byte de estado inicia en 11110000 hasta 11110111. Sistema de tiempo real. Se utilizan para la sincronización de los elementos que funcionan mediante un reloj temporizador, como secuenciadores, cajas de ritmo, arpegiadotes, etc. Tienen la mayor prioridad entre todos los tipos de mensaje. Su byte de estado inicia en 11111000 a 11111111. 3. Mensajes Auxiliares. Sistema exclusivo “Sysex”. Estos mensajes incluyen un código de identificación del fabricante y se utilizan para transferir bytes de datos formateados según una especificación diseñada por ese fabricante. Este tipo de mensajes son los que más nos interesa conocer para nuestra aplicación. En el próximo capítulo los vamos a conocer más detalladamente. 4. Otros. Se utilizan habitualmente para enviar datos de parámetros a un sintetizador para la edición de sonidos. Los Números de parámetro registrados (Registered Parameter Number - RPN) son aquellos a los que las organizaciones MIDI Manufacturers Association (MMA) y Japan MIDI Standards Committee (JMSC) han asignado alguna función particular. Por ejemplo, existen RPNs definidos para controlar la sensibilidad de pitch bend y la afinación general de un sintetizador. Por su lado, los no registrados (Non-Registered Parameter Number - NRPN) no tienen asignada ninguna función específica y pueden ser utilizados de forma distinta según el fabricante. De nuevo en este caso Roland y Yamaha, entre otros, han adoptado sus propios estándares.
  • 12. 1.3.4. Mensajes de Sistema Exclusivos Este tipo de mensajes como su nombre lo indica son de uso exclusivo de cada software de audio, sintetizador o sampler. Conocidos también como mensajes Sysex, nos permite comunicarnos de manera personal y confidencial con cualquiera de estos equipos y así poder controlar diferentes parámetros que son propios de su estructura. Cada fabricante define sus propios formatos para este tipo de datos y dispone de un código de identificación único garantizado por la MMA (MIDI Manufactures Association) y el JMSC (Japanese MIDI Standard Committee). Esta ID del fabricante, incorporada en cada mensaje de Sistema Exclusivo, precede a los distintos paquetes de datos, a continuación de los cuales aparece el mensaje EOX (End of Sysex) con el que finaliza la transmisión de datos. Los fabricantes están obligados a publicar los detalles que conforman sus formatos de datos de Sistema Exclusivo para que puedan ser utilizados libremente por otros fabricantes o por el propio usuario, siempre y cuando no se alteren o se utilice el formato de forma que entre en conflicto con las especificaciones originales definidas por el fabricante. Algunos de estos números de identificación están reservados para protocolos especiales, entre los que figuran el Estándar para Volcado de Muestras MIDI (MIDI Sample Dump Standard), un formato de datos de Sistema Exclusivo dedicado a la transmisión de datos entre muestreadores; así como MIDI Show Control y MIDI Machine Control. Al enviar mensajes exclusivos es posible controlar cualquier aspecto del sintetizador incluyendo controles enlistados en las especificaciones MIDI que no es reconocida por el sintetizador. Estructura. Los mensajes Sysex típicamente consisten de una dirección hexadecimal, que apuntan a la función dentro del sintetizador que queremos ajustar y un valor Sysex hexadecimal que dice a la función como queremos ajustarla. Además, un mensaje Sysex necesita proveer de información básica con respecto al sintetizador al cual estamos transmitiendo el mensaje. Entonces, por esto un sintetizador requiere que el
  • 13. mensaje Sysex sea de ocho o nueve palabras de largo, combinando todos los elementos descritos para completar el mensaje. A continuación analizaremos un ejemplo de mensaje Sysex: Figura 2 Partes y Descripción de un mensaje MIDI tipo Sysex PARTE VALOR DESCRIPCIÓN Byte de Estado Sysex (mensaje Sysex encendido). 1 F0 Siempre todo mensaje Sysex inicia con este valor. Valor específico del fabricante. Ignorado por equipos 2 41H a los cuales no pertenece. 3 10H Identificar un sintetizador en particular incluso si es del mismo fabricante Código de ID del modelo del fabricante. Permite asignar un valor entre 1 y 32 (por defecto suele ser 17) así podemos distinguir hasta 32 Instrumentos 4 42H 'gemelos' dentro del Sistema MIDI. Este código suele coincidir con el Canal Básico (también llamado Global) del Instrumento.
  • 14. Puede ser de 2 variables: 12H o 11H, usado para especificar ya sea si el mensaje está enviando (12H) 5 12H o solicitando (11H). Un mensaje 11H es usualmente empleado para volcar enteramente todos los ajustes del sintetizador en un secuenciador conectado. Dirección Sysex de la función que vamos a 6 00 00 11H modificar, en la memoria del instrumento Valor Sysex. Que puede ser el valor enviado si la parte 5 está en modo enviar (12H), o si la parte 5 7 04H contiene el valor de 11H de petición, esta parte 7 indica el número de bytes solicitados por el sintetizador para retornar en su mensaje de respuesta. Esta parte del mensaje es opcional dependiendo del fabricante. Algunos lo emplean para validar los 8 10H mensajes y asegurarse de que el sintetizador haga específicamente lo que el código hexadecimal solicita. Es una especie de byte de "checksum". 9 F7 EOX - fin de mensaje Sysex. Siempre todo mensaje Sysex termina con este valor. Fuente: El Autor Comúnmente una cadena de mensajes Sysex es insertada al inicio de cualquier arreglo MIDI, para que el archivo pueda ser ajustado y reprogramado en cualquier
  • 15. otro sintetizador con diferente ubicación. De hecho Sysex es muy utilizado para actualizar el sistema operativo del sintetizador (ejemplo MIOS) o para arreglar errores en el programa, o proveer un nuevo set de sonidos. También es muy utilizado para alterar ciertas partes específicas de un sintetizador durante una secuencia MIDI, como por ejemplo cambiar el tipo de filtro o la forma de onda del LFO (Oscilador de Baja Frecuencia). Vale la pena también notar que solo un mensaje Sysex puede ser transmitido a la vez. Entonces si dos mensajes tienen que ser enviados seguidamente, se debe establecer una pausa entre los dos hasta que se haya procesado el primero. Es también importante saber que los instrumentos nunca deben recibir Mensajes de Sistema Exclusivo en el momento de su encendido. 1.3.5. Conexión con el Computador Todo instrumento o equipo que tenga capacidad MIDI por lo general tiene tres conectores: MIDI IN, MIDI OUT y MIDI THRU. En estos conectores se insertan lógicamente los cables para establecer la comunicación entre el controlador, sintetizador o teclado y el computador en el que está instalado el programa secuenciador o de DJ. La “conversación MIDI” real viaja desde el conector MIDI OUT de un instrumento hasta el conector MIDI IN de otro. La información recibida en el puerto MIDI IN de un dispositivo puede ser también retransmitida o replicada en el conector MIDI THRU para que sea reenviada a su vez, al puerto MIDI IN de otro instrumento; de tal manera que puedan conectarse varios dispositivos MIDI en cadena. Al conectar equipos MIDI con esta configuración, se crean sistemas más elaborados permitiendo al secuenciador comunicarse con varios sintetizadores, samplers o controladores al mismo tiempo. En la Figura 3 podemos apreciar una configuración típica para la Producción de Música Electrónica. En el que el secuenciador MIDI instalado en el computador, funciona como una especie de “director de orquesta”, enviando diferentes tipos de información digital, los cuales son interpretados por los instrumentos conectados a la cadena MIDI para reaccionar de una u otra manera según la especificación de estos
  • 16. mensajes, y finalmente su interpretación de audio sea escuchada a través de la mesa de mezcla. Figura 3 Configuración típica de un Estudio para Producción de Música Electrónica Fuente: Rick Snoman, A simple Dance-Based Studio, 2004 y el Autor. Los conectores -receptores- MIDI tienen 5 zócalos que encajan perfectamente con las 5 patillas tipo DIN que forman los conectores -macho- de los cables: Figura 4 Conexiones MIDI, In, Out y Thru
  • 17. Fuente: Roland, Manual MIDI, Año no disponible Figura 5 Conector – receptor MIDI Fuente: el Autor Figura 6 Conector – cable MIDI Fuente: BBD Soft, AT keyboard connector (DIN5), 2007 http://www.bbdsoft.com/keyboard.html
  • 18. En estos cables la transmisión de los datos se lo realiza a través de un solo pin, el número 5. Los pines 1 y 3 fueron agregados para futuras funcionalidades. El pin # 2 se utiliza como blindaje (tierra) y finalmente el pin 4 es para transmitir un voltaje de 5 V, y de esta manera garantizar un flujo correcto de la corriente eléctrica. Obviamente las conexiones MIDI no son comunes de encontrar en los computadores disponibles normalmente en el mercado, muchas veces es necesario utilizar una interfase MIDI adicional, ya sea dedicada o integrada en una tarjeta de sonido. Figura 7 Conexión de diferentes dispositivos a través de una interfase MIDI Fuente: Rick Snoman, Single and Multi-Buss MIDI Setups, 2004 y el Autor. También se pueden encontrar interfases MIDI en forma de un conector para palanca de juegos -joystick-, con la ventaja de utilizar un solo cable para establecer la comunicación. En la Figura 8 y 9 se puede apreciar un conector de este tipo y la conexión con un controlador MIDI
  • 19. Figura 8 Conector MIDI tipo “joystick” Fuente: Crutchfield, Game MIDI Plug, 2009. http://akamaipix.crutchfield.com/lifestyle/2001/hGameMIDIPlug.jpeg Figura 9 Conexión de un controlador y un computador a través de cable MIDI y conector “Joystick” Fuente: Turtle Beach, MIDI Cable Connection Charts (Joystick & USB), 2009. http://support.turtlebeach.com/site/kb_ftp/167217296.asp Incluso actualmente podemos encontrar de una manera prácticamente estandarizada el uso del puerto USB o Firewire para establecer la comunicación MIDI entre un dispositivo MIDI (sea este controlador DJ, sintetizador o teclado master) y el computador. Con la ventaja de evitar una conexión extra como en la conexión original, ya que a través de un solo cable se establece la comunicación de entrada y salida. Adicionalmente, en varias ocasiones se han configurado ensambles de varios computadores que se comunican entre ellos a través del protocolo MIDI pero utilizando cable Ethernet.
  • 20. Figura 10 Conexión de un controlador y un computador a través de cable MIDI y conector USB Fuente: Turtle Beach, MIDI Cable Connection Charts (Joystick & USB), 2009. http://support.turtlebeach.com/site/kb_ftp/167217296.asp Para nuestro proyecto utilizaremos la conexión típica a través de los conectores MIDI normales. 1.4. SOFTWARE PARA APLICACIONES DE AUDIO 1.4.1. Ableton Live “Ableton Live” es un programa secuenciador de audio que se lo puede tocar como si fuera un instrumento. Ya sea por sí solo o con otros músicos y DJs, en presentaciones en vivo o remixeando en estudio, lo único que requiere Ableton es un computador. Es prácticamente un secuenciador en tiempo real que utiliza loops, archivos de audio y MIDI, además de un amplio arsenal de efectos. Una gran ventaja es que puede funcionar también con otros programas de audio, como Reason, Logic y Cubase. Gracias a estas características en tiempo real, “Ableton Live” ha abierto enteramente nuevos mundos de expresión creativa para los DJs; es posible mezclar cualquier cantidad pistas y loops, remezclar sobre la marcha, capturar loops de audio en tiempo real desde cualquier fuente externa de sonido como compacteras o tocadiscos.
  • 21. A continuación revisaremos, la configuración básica del software para utilizarlo como equipo de DJ. 1.4.1.1. CREACIÓN DE CANALES DE AUDIO Figura 10 Pantalla Inicial del Software – Ableton Live Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009. Inicialmente Ableton tiene ya creados un canal MIDI y un canal de Audio en su “Vista “Sesión”. La vista Sesión ofrece un enfoque hacia la producción musical permitiendo grabar, reproducir y combinar ideas en la marcha. Esta herramienta es igualmente útil para la composición musical, “jamming" (sólo o con otros músicos) y "DJing". Sus transiciones permanecen siempre sincronizadas al tiempo musical, incluso durante los cambios de tempo y el groove. Las hileras horizontales de la vista de Sesión se llaman escenas. En esta configuración cada escena representa una sección de la canción, como por ejemplo intro, coro, estrofa, etc. En este modo al reproducir una parte se reproducen todos los clips cargados en los canales y se mantienen sonando todo el tiempo que se desee.
  • 22. Figura 11 Reproducción de Clips por Secciones Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009. Estos clips que conforman una escena, son simples contenedores de datos de audio o MIDI y permiten llevar la composición no linear un paso más allá al desviarse de las escenas y probar variaciones Figura 12 Reproducción de Clips por escena Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009. Cualquier clip o escena que se “dispare” estará sincronizado con el tempo del Set. Por defecto, todos los clips se inician solo en el primer tiempo del compás siguiente una vez que hayan sido disparados, permitiendo obtener una máxima sincronización. Se debe notar que si disparamos un nuevo clip este detiene la reproducción del clip que estaba reproduciéndose anteriormente en la misma columna. Las columnas verticales en la vista de Sesión representan a las pistas, y una pista solo puede reproducir un clip al mismo tiempo. Por eso uno normalmente coloca las variaciones de un clip en la misma pista. Si queremos detener un clip sin que se inicie otro, podemos usar el botón detener Clip de la misma pista. Estos botones cuadrados aparecen por defecto en todos los spots de clip vacíos:
  • 23. Figura 13 Detener un clip de una escena Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009. Al hacer doble clic sobre cualquiera de los clips podemos observar la onda de audio. Figura 14 Forma de Onda del Audio de un Clip Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009.
  • 24. Vamos a eliminar el canal MIDI y crear un nuevo canal de Audio para tener dos canales de audio en total, ya que el enfoque de nuestro controlador y la configuración básica para un sistema DJ no necesita más canales: Figura 15 Selección de un canal MIDI Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009. Seleccionamos el canal MIDI y presionamos la tecla DEL. Figura 16 Canal MIDI eliminado Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
  • 25. Ahora para crear un nuevo canal de audio damos clic derecho donde está el cursor de la imagen anterior y seleccionamos la opción “Insertar pista de audio”: Figura 17 Inserción de un nuevo canal de audio Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 Figura 18 Dos canales de audio listos para cargar nuevos clips Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
  • 26. 1.4.1.2. INSERCIÓN DE MÓDULOS DE EFECTOS. Una vez que tenemos listos los canales de audio lo que nos corresponde hacer ahora es insertar los efectos básicos para un sistema DJ. Primero empezamos insertando los Ecualizadores: En el panel de navegación de dispositivos Live, nos dirigimos a la opción que dice “Audio Effects” Figura 19 Explorador de efectos de Audio Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
  • 27. Donde podemos apreciar un listado completo de los diferentes módulos de efectos que ofrece Live. Buscamos la opción que dice "EQ Three", la seleccionamos y sin soltar el botón del Mouse, arrastramos el módulo hace el panel de efectos de cualquiera de los canales de audio. Figura 20 Efecto de Ecualizador de Tres Bandas seleccionado para arrastrarlo al panel de efectos de un canal de audio Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
  • 28. Figura 21 Efecto de Ecualizador de Tres Bandas, Bajos Medios y Agudos, con botones para eliminación de banda y control de ganancia Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 Ahora, podemos seguir agregando una cadena de efectos después del ecualizador, que esté en acorde a nuestros gustos. Para este proyecto, hemos decidido seleccionar un módulo de “Delay” uno de “Reverb” y finalmente uno de Filtro. Para añadirlos, utilizamos el mismo método indicado para el ecualizador.
  • 29. Figura 22 Seleccionamos el efecto "Grain Delay", para sumarlo a la cadena de efectos Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
  • 30. Figura 23 Efecto Reverb, insertado en la cadena de efectos Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 Y finalmente seleccionamos y arrastramos un módulo de Filtro que decidimos ubicarlo entre el ecualizador y el Delay. Figura 24 Efecto Reverb, insertado en la cadena de efectos Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
  • 31. Esta inserción de cadena de efectos lo realizamos nuevamente pero esta vez para el canal de audio 1, de tal manera que tendríamos dos canales idénticos. Figura 25 Canal 1 seleccionado para ser insertado con una cadena de efectos Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
  • 32. Figura 26 Configuración final con los 2 canales de audio y sus respectivas cadenas de efectos Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 Una vez listos la configuración de canales y efectos lo que necesitamos ahora configurar es la comunicación MIDI. 1.4.1.3. CONFIGURACIÓN MIDI Lo que primero tenemos que hacer es verificar que Ableton Live se encuentre detectando los puertos MIDI de nuestra interfase.
  • 33. Figura 27 Ingresamos a la opción “Preferencias” dentro del menú de “Opciones” para ajustar la configuración MIDI Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 Para esto nos dirigimos a la opción de preferencias, ubicado en el menú de Opciones, y en la pestaña de “MIDI Sync” verificamos que estén seleccionados los puertos de entrada y salida de nuestra interfase y/o controlador MIDI: Figura 28 Tanto en Entrada como en Salida debe estar el nombre del controlador MIDI Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
  • 34. Y también debe estar activada la opción “Remote” para el puerto de entrada de nuestro controlador MIDI: Figura 29 Habilitamos la entrada para el control remoto de Ableton Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 Ahora el siguiente paso, sería asignar los diferentes controles y botones de nuestro dispositivo MIDI a cada parámetro que nos gustaría modificar o manipular en Ableton Live. Para realizar esto lo primero que tenemos que hacer es presionar el botón MIDI ubicado en la esquina superior izquierda: Figura 30 Al presionar el botón MIDI, Ableton ingresa a modo de reconocimiento de controles Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 Al activar esta opción, Live entra en modo de “aprendizaje”, en el cual automáticamente asignara cualquier parámetro que seleccionemos al control que movamos en nuestro controlador:
  • 35. Figura 31 Ableton en Modo “MIDI Learn”, listo para asignar el mapeo de controles Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 Entonces ah continuación seleccionamos cualquier parámetro que necesitemos asignar a algún actuador, por ejemplo seleccionamos la opción "Dry/Wet" del módulo “Simple Delay”: Figura 32 Seleccionamos en Ableton algún actuador que deseamos controlar Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
  • 36. Ahora movemos la perilla o deslizador en nuestro controlador para que sea asignado, al hacer esto automáticamente Live graba esta información para que esté disponible después de terminar las asignaciones: Figura 33 Después de mover un control para que Ableton lo reconozca, aparece la nomenclatura asignada al actuador Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 Podemos verificar la asignación de este control en el panel de Mapeo MIDI: Figura 34 Verificación en el Panel de Mapeos MIDI, de todos los actuadores asignados Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 Aquí podemos interpretar que el parámetro Dry/Wet del módulo “Simple Delay” ubicado en el Canal de Audio 2 está asignado el Control de Cambio # 10 del Controlador MIDI detectado en el canal MIDI 1. Mientras estemos en este modo podemos seguir asignando controles a cualquier otro parámetro, y la ventaja es que la reproducción de audio no se interrumpe mientras se realiza el mapeo MIDI. Por ejemplo ahora vamos asignar un potenciómetro deslizante de nuestro controlador para manipular el volumen de uno de los canales de audio:
  • 37. 1. Seleccionamos el control de volumen en Live Figura 35 Verificación en el Panel de Mapeos MIDI, de todos los actuadores asignados Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 2. Movemos un potenciómetro deslizante en el controlador MIDI para que Live lo reconozca Figura 36 Una vez reconocido el control externo para el volumen del canal, podemos observar su nomenclatura Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 3. Verificamos en el panel del mapa MIDI esta asignación Figura 37 Comprobación en el panel de mapeos Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009
  • 38. Podemos verificar que el parámetro “Track Volume” del módulo Mixer en la pista de Audio 1, está asignada por el Control de Cambio 10 del dispositivo externo asignado a través del Canal MIDI 1. 4. En el caso que hayamos terminado la asignación de los diferentes parámetros podemos finalmente presionar el botón MIDI para salir del modo de edición del mapeo Figura 38 Finalizar Modo edición MIDI Fuente: Programa Ableton Live 7, Captura de pantalla en el software, 2009 Este proceso lo podemos repetir cuántas veces sean necesarias, tomando en cuenta la capacidad de nuestro controlador MIDI. 5. Una vez ajustados todos estos parámetros podemos proceder con la reproducción y mezcla de los archivos de audio para crear una sesión DJ 1.4.2. NI Traktor Para este programa la configuración de un sistema DJ es mínima debido a que está diseñado para este tipo de aplicación. Por lo tanto, nos limitaremos a configurar el mapeo MIDI, el cual es similar al proceso para el Ableton Live.
  • 39. Figura 39 Pantalla inicial de NI Traktor Pro Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009 Para realizar la configuración MIDI lo que tenemos que hacer es simplemente ingresar al panel de preferencias dando clic en el siguiente icono: Figura 40 Pantalla inicial de NI Traktor Pro Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
  • 40. En el cuadro de dialogo que se abre seleccionamos la opción “MIDI Setup” y aquí en las opciones que aparecen tanto para la entrada y salida seleccionamos nuestro dispositivo MIDI: Figura 41 Configuración de Dispositivos MIDI Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009 Una vez seleccionados los controladores MIDI, seleccionamos la opción que se llama “MIDI Mapping” ubicado al final de la lista de opciones de las preferencias.
  • 41. Figura 42 Configuración de Dispositivos MIDI Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009 Ahora en la parte derecha damos clic en el botón “Add” para agregar un control que deseamos modificar remotamente con nuestro dispositivo MIDI. En este ejemplo vamos a agregar el parámetro correspondiente a la ganancia de la banda media para el ecualizador del canal A: Figura 43 Configuración de Dispositivos MIDI Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
  • 42. Figura 44 Podemos añadir cualquier parámetro para ser asignado al Controlador Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009 Ahora en la sección “Control Configuration” seleccionamos el enfoque al canal que necesitamos asignar:
  • 43. Figura 45 Seleccionamos el enfoque del parámetro seleccionado, Canal A, B o C Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009 Ahora presionamos el botón “Learn” y movemos la perilla en nuestro controlador MIDI para que sea grabado el mapeo:
  • 44. Figura 46 Después de presionar el botón Learn, podemos asignar el parámetro seleccionado al controlador MIDI Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
  • 45. Figura 47 Podemos comprobar la asignación del parámetro seleccionado Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009 Ahora por ejemplo queremos asignar el encendido de la sección de efectos 2 para el canal B, procedemos de la misma manera: Figura 48 Seleccionamos nuevamente uno de los parámetros Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009
  • 46. Presionamos el botón al cual queremos asignar este control, debido a que Traktor mantuvo su estado de “Aprendizaje”: Figura 49 No es necesario presionar el botón de “Learn” nuevamente, directamente seleccionamos el parámetro y accionamos el control al cuál queremos asignar Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009 En este caso podemos modificar el tipo de acción del botón asignado, para definir un comportamiento específico, pudiendo ser este “Hold” -Mantenido-, “Toggle” - Alternado-, “Direct” -Directo- y “Output” -Salida-. Estas opciones nos permiten personalizar de cierta manera los diferentes parámetros, independientemente del tipo de botón que hayamos escogido para nuestro controlador MIDI. Por ejemplo en este sentido se puede notar una ventaja de Traktor ante Ableton Live. Ya que esta es una función que no está disponible en Live.
  • 47. Figura 50 Seleccionamos el modo de interacción Fuente: Programa NI Traktor Pro, Captura de pantalla en el software, 2009 En este ejemplo cada vez que presionemos el botón provocará que el control de efectos asignado se mantenga encendido, sin la necesidad de mantener el botón presionado. Una vez finalizado el mapeo de todos los parámetros, podemos cerrar el cuadro de preferencias y empezar a utilizar el programa. 1.5. MICROCONTROLADORES PIC
  • 48. 1.5.1. Diagrama De Pines Figura 51 Nombres de los pines del PIC18F452 Fuente: Microchip, Pin Diagrams, 2006 1.5.1.1. DESCRIPCIÓN DE LOS PINES
  • 49. Figura 52 Nombres de los pines del PIC18F452 Fuente: Microchip, Pinout I/O Descriptions, 2006
  • 50. Figura 53 Nombres de los pines del PIC18F452 (continua) Fuente: Microchip, Pinout I/O Descriptions, 2006
  • 51. Figura 54 Nombres de los pines del PIC18F452 (continua) Fuente: Microchip, Pinout I/O Descriptions, 2006
  • 52. Figura 55 Nombres de los pines del PIC18F452 (continua) Fuente: Microchip, Pinout I/O Descriptions, 2006 1.5.2. Oscilador De Cristal El oscilador de cristal, es una de las opciones de oscilación que se encuentran disponibles con el microcontrolador PIC18F452. Este oscilador puede ser seleccionado a través de los bits de configuración FOSC2, FOSC1 y FOSC0. Para su funcionamiento este oscilador de cristal es conectado a los pines OSC1 y OSC2 del microcontrolador y
  • 53. además requiere el uso de un capacitor de corte paralelo. Existen diferentes modos de oscilación, con cristal: 1. LP - Cristal de Baja Potencia 2. XT - Cristal/Resonador 3. HS - Cristal/Resonador de Alta Velocidad Figura 56 Diagrama del Oscilador para el PIC18F852 Fuente: Microchip, Crystal/Ceramic Resonator Operation (HS, XT or LP Configuration), 2006
  • 54. Figura 57 Selección de Capacitores para Oscilador de Cristal Fuente: Microchip, Capacitor Selection for Crystal Oscillator, 2006 Se debe tomar en cuenta las siguientes notas: 1. Mientras más alta sea la capacitancia más estabilidad tiene el oscilador, pero también aumenta el tiempo de arranque 2. Rs puede ser requerida en el modo HS, como también en XT, para evitar los cristales distorsionantes, con un manejo demasiado bajo. 3. Siempre debemos consultar las características de cada oscilador propuestas por el fabricante, para estar seguros de los componentes que deben ser conectados.
  • 55. 1.5.3. Reset Maestro El reset maestro para el PIC puede ser de varios tipos: a. Power-on Reset (POR). Reinicio en el encendido. b. MCLR. Reinicialización maestra en plena operación. A través del pin 1 MCLR c. MCLR. Reinicialización maestra en modo SLEEP. d. Reinicio a través del temporizador de “perro guardián” Watchdog Timer (WDT) durante operación normal e. Reinicio programable por baja de tensión BOR. f. Instrucción RESET. g. Stack lleno h. Stack vació cuando es apuntado. De estos diferentes tipos de Reinicialización, los que utilizaríamos para el proyecto son el POR y BOR. Para implementar el POR (pulso de reinicio generado en el chip cuando se detecta una subida de Vdd) basta simplemente con conectar al pin 1 a través de una resistencia a Vdd. Esto también elimina la necesidad de conectar componentes RC externamente. Al utilizar la reinicialización debido a una caída de tensión en Vdd, Brown – out Reset, estamos protegiendo de cierta manera al chip de un posible corto circuito en alguna parte del sistema al cual integra, además establecemos una reinicialización del mismo únicamente cuando Vdd haya superado los parámetros establecidos. Este tipo de reinicialización puede ser habilitada a través del BIT BOREN. Y ajustados sus lumbrales con los bits BORV1 y BORV0. Dependiendo de los bits en los que hayan sido configurados se establece el umbral mínimos en el cual se activa BOR, si Vdd es menor a este voltaje por un tiempo mínimo de 200 µs, se resetea el chip y permanece de esta manera hasta que sea reestablecido. 1.5.4. Puertos
  • 56. El PIC18F452 posee 5 puertos, en los que su pines de entrada/salida son multiplexados con una función alternativa de los periféricos del dispositivo. En general, cuando un periférico está habilitado, ese pin no debe ser usado como un pin de entrada o salida de propósito general. Cada puerto tiene tres registros para su operación. Estos registros son: - TRIS, que es el registro de direccionamiento - PORT, en el cuál lee los niveles en los pines del dispositivo - LAT, registro de salida del Latch, el cual es útil para leer-modificar o operaciones en el valor que los pines de I/O están manejando. A continuación podemos ver los diferentes puertos que caracterizan al PIC18F452, las funciones de sus pines y los registros asociados a cada uno: Funciones y Registros Asociados del Puerto A: Figura 58 Funciones de cada Pin en el Puerto A Fuente: Microchip, PORTA Functions, 2006 Figura 59 Registros Asociados al Puerto A Fuente: Microchip, Summary of Registers Associated with PORTA, 2006 Funciones y Registros Asociados del Puerto B:
  • 57. Figura 60 Funciones de cada Pin en el Puerto B Fuente: Microchip, PORTB Functions, 2006 Figura 61 Registros Asociados con el Puerto B Fuente: Microchip, Summary of Registers Associated with PORTB, 2006 Funciones y Registros Asociados del Puerto C:
  • 58. Figura 62 Funciones de cada Pin en el Puerto C Fuente: Microchip, PORTC Functions, 2006 Figura 63 Registros Asociados con el Puerto C Fuente: Microchip, Summary of Registers Associated with PORTB, 2006 Funciones y Registros Asociados del Puerto D:
  • 59. Figura 64 Funciones de cada Pin en el Puerto D Fuente: Microchip, PORTD Functions, 2006 Figura 65 Registros Asociados con el Puerto D Fuente: Microchip, Summary of Registers Associated with PORTD, 2006
  • 60. Funciones y Registros Asociados del Puerto E: Figura 66 Funciones de cada Pin en el Puerto E Fuente: Microchip, PORTE Functions, 2006 Figura 67 Registros Asociados con el Puerto E Fuente: Microchip, Summary of Registers Associated with PORTE, 2006 1.5.5. Conversión Analógica-Digital
  • 61. La conversión AD del microcontrolador PIC18F452 se la realiza a través de 8 entradas. El módulo de conversión AD es controlado por las definiciones de los registros ACON0 y ADCON1. La conversión A/D permite transformar la señal de entrada analógica en un número digital correspondiente de 10-BIT. El módulo A/D tiene 4 registros en total: - Resultado Alto de la conversión A/D (ADRESH) - Resultado Bajo de la conversión A/D (ADRESL)r - Registro de Control 0 (ADCON0) - Registro de Control 1 (ADCON1) El registro ADCON0 controla la operación del módulo A/D y el registro ADCON1 configura las funciones de los pines del puerto. A continuación podemos apreciar las diferentes opciones y funciones de cada registro: Registro ADCON1
  • 62. Figura 68 Registro ADCON1 Fuente: Microchip, extracto de PIC18F452 Data Sheet, 2006
  • 63. La salida de la muestra y retención es la entrada en el convertidor, el cual genera el resultado vía aproximaciones sucesivas. Cada puerto asociado con el convertido A/D puede ser configurado con una entrada analógica (RA3 puede ser también una referencia de voltaje) o como una entrada/salida digital. Los registros ADRESH y ADRESL contienen el resultado de la conversión A/D. Cuando la conversión está completa, el resultado es cargado en los registros ADRESH/ADRESL, el BIT GO/DONE (ADCON0 -2- ) es limpiado, y el BIT de la bandera de interrupción, ADIF es encendido. Figura 69 Diagrama de bloques del convertidor A/D Fuente: Microchip, A/D Block Diagram, 2006 El valor que está en los registros ADRESH/ADRESL no es modificado por una reseteo al encendido. Los registros ADRESH/ADRESL contendrán datos desconocidos después de una reinicialización al encender el chip. Después de que el módulo haya sido configurado como deseamos, el canal seleccionado debe adquirido antes que la conversión se iniciada. Las entradas analógicas deben tener
  • 64. su respectivo TRIS seleccionado como una entrada. Después que el tiempo de adquisición haya pasado, la conversión A/D puede ser iniciada. Se deben seguir los siguientes pasos para realizar una conversión: 1. Configurar el modulo A/D: - Configurar los pines analógicos, el voltaje de referencia y la entrada/salida digital (ADCON1) - Seleccionar el canal de entrada de A/D (ADCON0) - Seleccionar el reloj de conversión A/D (ADCON0) - Encender el módulo A/D (ADCON0) 2. Configurar la interrupción de A/D (si se desea) - Limpiar el BIT ADIF - Ajustar ADIE - Encender el PEIE 3. Esperar el tiempo de adquisición requerido 4. Iniciar la conversión - Encender el bit GO/DONE (ADCON0) 5. Esperar que la conversión se complete, ya sea, - Esperando que el BIT de GO/DONE sea limpiado (si las interrupciones no están habilitadas) o - Esperando por la interrupción de A/D 6. Leer los registros de resultados A/D (ADRESH/ADRESL); limpiar el BIT ADIF si es necesario 7. Para la siguiente conversión, ir al paso 1 o paso 2 como sea necesario. El tiempo de conversión por BIT es definido como TAD. Un tiempo de adquisición de 2 TAD es requerido para iniciar la próxima conversión.
  • 65. El tiempo de conversión por BIT es definido como TAD. La conversión A/D requiere 12 TAD por cada conversión de 10-BIT. La fuente del reloj de conversión A/D es elegible por software. Las siete opciones siguientes son posibles: • 2 TOSC • 4 TOSC • 8 TOSC • 16 TOSC • 32 TOSC • 64 TOSC • Módulo Interno A/D oscilador RC (2-6 μs) Para un correcta conversión, el reloj TAD debe ser seleccionado de tal manera que asegure un mínimo TAD de 1.6 µs. Figura 70 Tabla de TAD vs. Frecuencia de Operación Fuente: Microchip, TAD vs. Device Operating Frecuencies, 2006
  • 66. 1.5.6. Set de Instrucciones Figura 71 Tabla de descripción de campos “Opcode”4 Fuente: Microchip, Table 20-1: OPCODE Field Descriptions, 2006 4 OPCODE hacer referencia a “Operational Code” -Código Operacional-
  • 67. Figura 72 Set de Instrucciones para el PIC18F452 Fuente: Microchip, Table 20-2: PIC18FXXX Instruction Set, 2006
  • 68. Figura 73 Set de Instrucciones para el PIC18F452 (continuación) Fuente: Microchip, Table 20-2: PIC18FXXX Instruction Set (continued), 2006
  • 69. Figura 74 Set de Instrucciones para el PIC18F452 (continuación) Fuente: Microchip, Table 20-2: PIC18FXXX Instruction Set (continued), 2006 1.6. SISTEMA OPERATIVO MIDI (MIOS) El sistema operativo MIDI, ha sido desarrollado para los requerimientos de aplicaciones flexibles de controladores MIDI. En diferencia a las soluciones comerciales dedicadas de hoy, MIOS sigue el concepto de un sistema de computo abierto como fundamento para la idea del intercambio y las adaptaciones personales. Existen diferentes aplicaciones que varían según el diseño del panel, elementos de control o flujo de trabajo preferido, la mayoría de estas aplicaciones son basadas en diseños preestablecidos que por ende están limitados a las características proporcionadas del firmware. Con MIOS tales controladores pueden ser realzados para dispositivos de multipropósito y con código intercambiable, totalmente personalizable para la aplicación anfitriona aproximada, sintetizador o similares “Dispositivos MIDI”.
  • 70. 1.6.1. Programación Básica En C Si bien la aplicación implementada para el proyecto utiliza código ensamblador en su mayoría, gracias a la cantidad de aplicaciones y librerías MIOS incluidas en el código, el uso del lenguaje ensamblador no muestra mayor dificultad. Por lo que funciones en lenguaje C no fueron utilizadas en su mayoría. Las principales funciones utilizadas de este lenguaje fueron: #include La directiva #include hace que se incluya una copia de un archivo especificado en lugar de la directiva. Las dos formas de la directiva #include son: #include <nombrearchivo> #include “nombrearchivo” La diferencia entre estas dos formas es la ubicación en la que el preprocesador busca el archivo a incluir. Si el nombre del archivo está encerrado entre paréntesis angulares (< y >), que se utilizan para archivos de encabezado de la biblioteca estándar, el procesador busca el archivo especificado de una manera dependiente de la implementación, por lo general mediante directorios previamente designados. Si el nombre del archivo se encierra entre comillas el procesador busca primero en el mismo directorio en el que se va a compilar el archivo y después en la misma manera dependiente de la implementación. Esta directiva también se utiliza con programas que consisten en varios archivos fuente que se van a compilar en conjunto. A menudo se crea e incluye en el archivo de encabezado que contiene declaraciones y definiciones comunes para los archivos de programa separados. Ejemplo: #include <mios.h> Copia el archivo de toda la estructura de MIOS en el código de la aplicación que estemos desarrollando. #if, #else y #endif
  • 71. Estas operaciones de compilación condicional que permite al programador controlar la ejecución de las directivas de preprocesador y la compilación del código de programa. Cada una de las directivas condicionales del preprocesador evalúa una expresión entera constante que determina si el código se compila o no. Siempre toda función #if termina con #endif. Son muy similares a las operaciones condicionales estándar if, else y endif. La estructura de selección if realiza una acción indicada solamente cuando la condición es verdadera; de lo contrario, se evita dicha acción. La estructura de selección permite al programador especificar una acción a realizar cuando la condición es verdadera, y una acción diferente a realizar cuando la acción es falsa. Ejemplo: if (calificación >= 60) cout << “Aprobado”; else cout << “Reprobado”; Este código simplemente Aprobado si la calificación del estudiante es mayor o igual que 60, pero imprime Reprobado si la calificación del estudiante es menor que 60. 1.6.2. Funciones Propias Las principales funciones propias del MIOS5, que han sido utilizadas en la aplicación específica son: MIOS_AIN_NumberSet Descripción: Ajusta el numero de pines AIN (analogic inputs) disponibles. Si el número es > 64, el valor será forzado a 64 Entrada: Número de entradas analógicas WREG Salida: – Usa: BSR (registro selector de banco) 5 Klose, Thorsten, “MIOS Functions Reference (ASM Version)”, 2009-01-01, http://www.ucapps.de/
  • 72. MIOS_AIN_Muxed Descripción: Habilita el modo de multiplexación para que puedan ser conectados y multiplexados hasta 64 potenciómetros a través del modulo AIN. Entrada: – Salida: – Usa: BSR (registro selector de banco) MIOS_LCD_PrintMessage Descripción: Imprime un mensaje por aproximadamente 2 segundos. El flujo normal del programa no será interrumpido durante este tiempo, simplemente solo la rutina "DISPLAY_Tick" no será llamada. Después del mensaje, "DISPLAY_Init" será llamado antes del siguiente "DISPLAY_Tick" Entrada: Apuntador a la cadena en TBLPTR[LH]. Primera palabra de la cadena debe contener el largo y la posición del LCD. Salida: Algunos caracteres en el LCD por 2 segundos Usa: BSR MIOS_AIN_UnMuxed Descripción: Deshabilita el modo de multiplexación, 8 potenciómetros pueden ser conectados directamente a pines de las entradas analógicas en el PIC. Entrada: – Salida: – Usa: BSR (registro selector de banco) MIOS_AIN_DeadbandSet Descripción: Ajusta la diferencia entre el ultimo y el actual valor del potenciómetro, el cuál tiene que ser alcanzado para disparar la función “NotifyChange” (Notificación de Cambio). Entrada: Valor de ajuste in WREG (registro en uso – acumulador) Salida: – Usa: BSR (registro selector de banco) MIOS_SRIO_NumberSet Descripción: Ajusta el número de registros SR (shift registers) disponibles, si es > 16, el valor es forzado a 16. Entrada: Número de SRs en WREG Salida: – Usa: BSR (registro selector de banco) MIOS_SRIO_UpdateFrqSet Descripción: Ajusta la frecuencia de actualización de los registros SR. Entrada: Frecuencia de actualización (unidad: milisegundos) en WREG Salida: – Usa: BSR (registro selector de banco)
  • 73. MIOS_SRIO_DebounceSet Descripción: Ajusta la recarga del contador de rebote para los DIN (módulo de entradas digitales) que no son asignados a los codificadores rotativos para eliminar los rebotes de botones de baja calidad. Entrada: Valor de recarga del contador de rebote en WREG Salida: – Usa: BSR (registro selector de banco) MIOS_SRIO_TS_SensitivitySet Descripción: Ajusta la sensibilidad del sensor táctil. Si es igual a 0x00 deshabilita el TS (sensor táctil) de tal manera que el PIN RD.4 (J14 del módulo principal) ya no sea controlado por MIOS y de ahí en adelante queda libre para otros propósitos. Entrada: Valor de sensibilidad en WREG Salida: – Usa: BSR (registro selector de banco) MIOS_TIMER_Init Descripción: Inicializa el temporizado el cual llama a la función USER_Timer periódicamente y la arranca. La resolución del temporizador es de 100nS con un Prescaler 1:1, 200nS con 1:2, 400nS con 1:4, 800nS con 1:8. El período (número de señales de reloj) está especificado como un valor de 16. Entrada: Valor del prescaler en WREG: 0x00: 1:1 0x01: 1:2 0x02: 1:4 0x03: 1:8 número de flancos (byte-inferior) en MIOS_PARAMETER1 (registro MIOS para funciones especiales) número de flancos (byte-superior) en MIOS_PARAMETER2 (registro MIOS para funciones especiales) Salida: – Usa: BSR (registro selector de banco) USER_Timer Descripción: Esta función periódicamente es llamada por MIOS. La frecuencia tiene que ser inicializada por con MIOS_Timer_Set. Note que esta es una rutina de interrupción. Use FSR2 en reemplazo de FSR0 y IRQ_TMPx en reemplazo de TMPx – y crear una rutina lo más rápida posible. Entrada: – Salida: – ISR: Sí MIOS_MIDI_DeviceIDGet Descripción: Retorna la identificación del dispositivo MIDI Entrada: - Salida: Número del dispositivo en WREG y MIOS_PARAMETER1 (0x00-0x7f) Usa: BSR
  • 74. USER_MPROC_DebugTrigger Descripción: Esta función es llamada por MIOS cuando un comando de depuración ha sido recibido vía SysEx. Entrada: WREG, MIOS_PARAMETER1, MIOS_PARAMETER2, MIOS_PARAMETER3 como se especifica en el comando de depuración Salida: Retorna valores WREG, MIOS_PARAMETER1, MIOS_PARAMETER2, MIOS_PARAMETER3 ISR: No MIOS_EEPROM_Read Descripción: Lee un byte desde la EEPROM. Entrada: Dirección en EEADR (0x00-0xff) EEADRH (0-3, PIC18F4620 únicamente) Salida: Contenido de la EEPROM en WREG. EEADR será incrementado. EEADRH (PIC18F4620) no va a ser incrementado en EEADR rebasamiento. Usa: BSR, EEADR, EEDATA, EECON1, EECON2 USER_MPROC_NotifyReceivedByte Descripción: Esta función es llamada por MIOS cuando un byte MIDI ha sido recibido. Entrada: byte MIDI recibido en WREG y MIOS_PARAMETER1 Salida: - ISR: no USER_DISPLAY_Init Descripción: Esta función es llamada por MIOS cuando el contenido del display debe ser inicializado. Ese es el caso durante el arranque y después de un mensaje que has sido impreso en pantalla. Entrada: - Salida: - ISR: no USER_DISPLAY_Tick Descripción: Esta función es llamada por MIOS en el loop principal cuando no se ha mostrado un mensaje temporal en Entrada: - Salida: - ISR: no USER_MIDI_NotifyTx Descripción: Esta función es llamada por MIOS antes de transmitir un byte MIDI . Puede ser usado para monitorear la actividad de transmisión o para hacer cualquier otra acción (por ejemplo cambiar un pin para salidas MIDI multiplexadas) antes que el byte sea enviado. Note que este es una rutina de servicio de interrupción Entrada: byte MIDI transmitido en WREG Salida: - ISR: yes
  • 75. USER_MPROC_NotifyReceivedEvent Descripción: Esta función es llamada por MIOS cuando un evento completo MIDI ha sido recibido. Entrada: Primer byte de evento MIDI en MIOS_PARAMETER1, segundo byte de evento MIDI en MIOS_PARAMETER2, tercer byte de evento MIDI en MIOS_PARAMETER3 Salida: - ISR: No USER_MPROC_NotifyTimeout Descripción: Esta función es llamada por MIOS cuando un evento MIDI no ha sido completamente recibido dentro de 2 segundos. Entrada: - Salida: - ISR: No USER_MPROC_NotifyFoundEvent Descripción: Esta función es llamada por MIOS cuando un evento completo MIDI ha sido recibido, el cual ha sido especificado en la tabla CONFIG_MIDI_IN Entrada: Primer byte de evento MIDI en MIOS_PARAMETER1, segundo byte de evento MIDI en MIOS_PARAMETER2, tercer byte de evento MIDI en MIOS_PARAMETER3 Salida: - ISR: No USER_DIN_NotifyToggle Descripción: Esta función es llamada por MIOS cuando un botón ha sido alternado. Entrada: Número del botón en WREG y MIOS_PARAMETER1. Valor del botón en MIOS_PARAMETER2: - 1 si el botón ha sido soltado (=5V) - 0 si el botón ha sido presionado (=0V) Salida: - ISR: no USER_ENC_NotifyChange Descripción: Esta función es llamada por MIOS cuando un encoger (codificador) ha sido movido. Entrada: Número de Encoder en WREG y MIOS_PARAMETER1 valor con signo del incrementador en MIOS_PARAMETER2: - es positivo cuando el codificador has sido girado en torno a las agujas de reloj - negativo cuando el encoger ha sido girado al contrario. Salida: - ISR: no
  • 76. USER_SR_Service_Prepare Descripción: Esta función es llamada por MIOS antes que el shift register sea cargado. Note que esta es una rutina de servicio de interrupción, use FSR2 en vez de FSR0 e IRQ_TMPx en vez de TMPx. Entrada: - Salida: - ISR: no USER_AIN_NotifyChange Descripción: Esta función es llamada por MIOS cuando un potenciómetro ha sido movido. Entrada: Número del Potenciómetro en WREG y MIOS_PARAMETER1 Valor de LSB en MIOS_PARAMETER2. Valor MSB en MIOS_PARAMETER3 Salida: - ISR: no 1.6.3. Implementación Sysex La implementación de los mensajes Sysex6 para nuestra aplicación en especial son: a) F0 00 00 7E 43 <d>3 <b> F7 Solicita un bloque de 256 bytes <d> = número del dispositivo (0-7) <b> = número de bloque (00-07) b) F0 00 00 7E 43 <d>4 <b> <256 bytes> <checksum> F7 Escribe un bloque de 256 bytes <d> = número del dispositivo (0-7) <b> = número de bloque (00-07) <256 bytes> = el bloque de datos <checksum> = el checksum7 de <b> y <256 bytes> 6 KLOSE, Thorsten, MIDIbox64 SysEx Implementation, Version 73, midibox64_sysex_implementation.txt, 2008. 7 “Checksum” entiéndase por checksum, un dígito que representa la suma de los dígitos en una instancia de datos digitales; usados para revisar ya sea si los errores ocurrieron en la transmisión o en el almacenamiento
  • 77. c) F0 00 00 7E 43 <d>5 F7 Solicita todos los 8 bloques <d> = número del dispositivo (0-7) d) F0 00 00 7E 43 <d>6 <p> F7 Solicita un Patch (programa) (Snapshot – Instantánea, de la configuración) <d> = número del dispositivo (0-7) <p> = número del programa (0-127) e) F0 00 00 7E 43 <d>7 <p> <96 bytes> <checksum> F7 Graba un programa o patch (Snapshot) <d> = número del dispositivo (0-7) <p> = número del programa (0-127) <checksum> = el checksum de <96 bytes> f) F0 00 00 7E 43 <d>8 0n F7 Solicitar un Banco, n = 0 a 15 Envía un dato de Acknowledge (admisión) cuando el Banco ha sido cambiado: F0 00 00 7E 43 <d>F 0n F7 O un Disacknowledge (desacuerdo) si el BankStick8 no está conectado: F0 00 00 7E 43 <d>F 7F F7 g) F0 00 00 7E 43 <d>9 00 <pot> <value> F7 Control remoto de un Potenciómetro <d> = número del dispositivo (0-7) <pot> = número del potenciómetro (0-63) <value> = valor del potenciómetro (0-127) h) F0 00 00 7E 43 <d>9 01 <button> <value> F7 Control remoto de un botón <d> = número del dispositivo (0-7) 8 “Bankstick” es un banco de programa almacenado en memoria adicional al microcontrolador
  • 78. <button> = número del botón (0-63) <value> = valor del botón (0=presionado, 1=soltado) i) F0 00 00 7E 43 <d>9 02 <sfbn> <sfbp> <value> F7 Control remoto de un botón especial <d> = número del dispositivo (0-7) <sfbn> = número del botón especial (0-127) <sfbp> = parámetro del botón especial (0-127) <value> = valor del botón (0=presionado, 1=soltado) j) F0 00 00 7E 43 <d>F F7 Ping (simplemente envía la misma cadena Sysex) . 1.6.4. Uso De IO -Input / Output- (Entrada / Salida) El sistema operativo consta de un tipo de “kernel” ( núcleo) que dota al usuario de atajos a eventos de hardware y software, y que ofrece funciones para una interacción simple entre los módulos de la Plataforma de Hardware MIDIbox . Un módulo Core, con un PIC18F452, puede manejar : hasta 128 entradas digitales hasta 128 salidas digitales hasta 64 entradas analógicas LCD matriciales gráficas y tipográficas. BankSticks (IIC EEPROMs) Un MIDI In, un MIDI Out, opcionalmente como interfaz to-COM Han sido incluidos numerosos controladores que manejan las siguientes tareas de control desde en segundo plano: Procesamiento de MIDI IO Cargador “Bootstrap” Conversión analógica de hasta 64 pots, faders u otras fuentes analógicas con resolución de 10 bits.
  • 79. Manejo de motor para hasta 8 motorfaders con resolución de 10 bits. Manejo de hasta 64 detenido/no-detenido codificadores rotativos Manejo de hasta 128 botones, sensores táctiles o dispositivos de entrada similares. Manejo de hasta 128 LEDs, relés, conversores analógico-digitales o dispositivos de salida similares. En el modo "multiplexado", se puede controlar un número casi ilimitado de LEDS, anillos de LED y números con LEDs. Lectura/Escritura desde/hacia EEPROM, Flash o BankStick PIC18F cores enlazables . El sistema operativo ha sido escrito completamente en lenguaje ensamblador y ha sido optimizado para mayor velocidad .Actualmente MIOS asigna 8k de memoria de programa ( se reservan 4k para futuras extensiones) y 640 bytes de RAM. La arquitectura de sistema es bastante estable, las funciones adicionales que carga la CPU no están planeadas. El manejador de SRIO (Shift Registers Input – Output) requiere solo 75 uS para captar los datos de128 pines digitales de entrada y escribir datos en 128 pines de salida. 16 codificadores rotatorios (rotary encoders) se manejan dentro de los 100 uS. Las entradas analógicas son escaneadas en segundo plano, con un resultado de conversión cada 200 uS. Hasta 256 eventos MIDI pueden accionar funciones dedicadas, el procesamiento de la lista de eventos requiere cerca de 300 uS. Los eventos MIDI también pueden ser procesados por una rutina de usuario para parseado SysEx o trabajos similares. Un temporizador de usuario permite realizar código activado en el tiempo. Se han hecho numerosas mediciones para permitir una interacción unificada con MIOS: Todas las variables de tiempo de ejecución han sido localizadas en el área BANKED de la RAM y no asigna la página ACCESS. Los parámetros de entrada (Input) y salida (output) de las funciones y "atajos" se transfieren mediante WREG, tres registros adicionales (MIOS_PARAMETER[123]) y el indicador FSR1. TBLPTR[LH], TABLAT, PROD[LH], FSR0 y FSR2 son guardadas y se restaurarán si una función MIOS hace uso temporal de estos SFRs. 1.6.5. Plataforma De Procesamiento MIDI
  • 80. Figura 75 Plataforma de Procesamiento MIDI, MIOS Studio Fuente: KING Adam, MIOS Studio, 2005-06-14, http://miosstudio.midibox.org/ La plataforma de procesamiento MIDI, se conoce también con el nombre de MIOS Studio. MIOS Studio fue iniciado por Jason Williams in Noviembre 2003, y después retomado por Adam King. Esta aplicación es de mucha utilidad al momento de revisar las comunicaciones entre nuestro dispositivo MIDI y el computador. Además, proporciona herramientas de simulación y la disponibilidad de cargar los archivos Sysex al hardware del controlador MIDI para definir nuestra aplicación específica. Debemos mencionar que adicionalmente a permitirnos la depuración de MIOS, tiene también funciones de propósito general como ruteo de puerto MIDI, Monitoreo, Filtración y un teclado virtual. 1.7. ELECTRÓNICA DIGITAL
  • 81. 1.7.1. Optoacopladores Un optoacoplador, también llamado optoaislador o aislador acoplado ópticamente, es un dispositivo de emisión y recepción de luz que funciona como un interruptor excitado mediante la luz. La mencionada luz es emitida por un diodo LED que satura un componente optoelectrónico, normalmente en forma de fototransistor. De este modo se combinan en un solo dispositivo semiconductor, un fotoemisor y un fotorreceptor cuya conexión entre ambos es óptica. […]. Se suelen utilizar como medio de protección para dispositivos muy sensibles. Figura 76 Plataforma de Procesamiento MIDI, MIOS Studio Fuente: Colaboradores de Wikipedia, Optoacoplador, 26 de enero del 2009, http://es.wikipedia.org/w/index.php?title=Optoacoplador&oldid=23552960 La Figura 76 […] muestra un optoacoplador 4N35 formado por un LED y un fototransistor. La tensión de la fuente de la izquierda y la resistencia en serie establecen una corriente en el LED emisor cuando se cierra el interruptor S1. Si dicha corriente proporciona un nivel de luz adecuado, al incidir sobre el fototransistor lo saturará, generando una corriente en R2. De este modo la tensión de salida será igual a cero con S1 cerrado y a V2 con S1 abierto. Si la tensión de entrada varía, la cantidad de luz también lo hará, lo que significa que la tensión de salida cambia de acuerdo con la tensión de entrada. De este modo el dispositivo puede acoplar una señal de entrada con el circuito de salida. La ventaja fundamental de un optoacoplador es el aislamiento eléctrico entre los circuitos de entrada y salida. Mediante el optoacoplador, el único contacto entre ambos circuitos es un haz de luz. Esto se traduce en una resistencia de aislamiento entre los dos circuitos del orden de miles de MΩ. Estos
  • 82. aislamientos son útiles en aplicaciones de alta tensión en las que los potenciales de los dos circuitos pueden diferir en varios miles de voltios.9 El optoacoplador utilizado en el proyecto fue el 6N138, que tiene el siguiente esquema interno: Figura 77 Diagrama Funcional para el Optoacoplador 6N138 Fuente: Hewlett-Packard, Low Input Current, High Gain Optocouplers - Technical Data, 1998 Sin embargo para nuestra aplicación en específico y para cumplir los requerimientos eléctricos que establece el estándar MIDI, fue conectado de la siguiente manera: Figura 78 Esquema de conexión eléctrica para el 6N138 para el puerto de entrada MIDI Fuente: Klose Thorsten, MIDIbox Hardware Platform – MBHP_Core_V3, 2006-06-10 9 Colaboradores de Wikipedia, Optoacoplador, 26 de enero del 2009, http://es.wikipedia.org/w/index.php?title=Optoacoplador&oldid=23552960
  • 83. Este esquema lo podremos apreciar completamente, más adelante cuando veamos el diseño de hardware. Nótese el diodo en la entrada 2 y 3, el cual invierte la polaridad de funcionamiento. A continuación el detalle de las condiciones recomendadas de operación: Figura 79 Condiciones Recomendadas de Operación Fuente: Hewlett-Packard, Low Input Current, High Gain Optocouplers - Technical Data, 1998 Especificaciones Eléctricas:
  • 84. Figura 80 Condiciones Recomendadas de Operación Fuente: Hewlett-Packard, Low Input Current, High Gain Optocouplers - Technical Data, 1998
  • 85. 1.7.2. LCD Una pantalla de cristal líquido o LCD (acrónimo del inglés Liquid Crystal Display) es una pantalla delgada y plana formada por un número de píxeles en color o monocromos colocados delante de una fuente de luz o reflectora. A menudo se utiliza en dispositivos electrónicos de pilas, ya que utiliza cantidades muy pequeñas de energía eléctrica. Para la realización del proyecto se utilizó un módulo LCD estándar de 16X2 caracteres. Por lo que fue necesario conocer sus parámetros más relevantes tanto eléctricos como mecánicos, además de los comandos que utiliza para su manejo. Características Eléctricas: Figura 81 Características Eléctricas para un Módulo LCD 16x2 Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible Designación de Pines:
  • 86. Figura 82 Designación de Pines Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible Diagrama de bloques: Figura 83 Diagrama de bloques Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible Tiempos de Acceso: Escritura:
  • 87. Figura 84 Tiempos de Acceso para Escritura Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible Lectura: Figura 85 Tiempos de Acceso para Lectura Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible Comandos: Figura 86 Comandos para manejar el LCD
  • 88. Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible Dimensiones: Figura 87 Dimensiones del módulo LCD
  • 89. Fuente: Shenzhen Techstar Electronics, TS1620G-1 LCD Module Specification, Fecha no disponible 1.7.3. Multiplexación El concepto de multiplexación fue necesario aplicar en el proyecto, debido a la cantidad de señales analógicas y la capacidad de entradas en el microprocesador. Básicamente con tan solo 8 entradas analógicas del PIC se pueden controlar hasta 64 potenciómetros (en el módulo principal), todo gracias al concepto de multiplexación y al diseño del MIOS. Un multiplexor selecciona una de sus entradas presentes y la transmite a la salida principal para su posterior tratamiento. En acorde a una señal de reloj y un código binario que determina cuando y qué entrada seleccionar. El multiplexador utilizado en el módulo de entradas analógicas del proyecto, es el chip 4051, que es un multiplexador simple de 8 canales provisto de entradas binarias para control y de una entrada para inhibición. Las tres señales binarias seleccionan 1 de los 8 canales para ser encendido y conectar una de las 8 entradas a la salida.
  • 90. Distribución de Pines: Figura 88 Pines del Multiplexor 4051 Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005 Diagrama de bloques: Figura 89 Diagrama de Bloques Funcional para el Multiplexor 4051 Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005
  • 91. Tablas de Verdad: Figura 90 Tabla de Verdad para el Multiplexor 4051 Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005 Principales Características Eléctricas: Figura 91 Principales características eléctricas para el Multiplexor 4051
  • 92. Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005 Figura 92 Principales características eléctricas para el Multiplexor 4051 (continua)
  • 93. Fuente: Texas Instruments, CD 4051B, CD4052B, CD4053B Data Sheet, 2005 Valores máximos absolutos: Fuente de Voltaje (V+ a V-) Voltajes referenciados al terminal VSS . . . . . . . -0.5 V a 20 V Rango de Voltaje de Entrada Digital . . . . . . . . -0.5 V a VDD + 0.5 V Corriente de Entrada DC, en cualquier entrada . . . . . . . . . . . ±10 mA 1.7.4. Registros IO (Input – Output)
  • 94. Entender brevemente el uso de los registro de entrada y salida, nos permitió el manejo de los botones y los LEDs. La plataforma MIDIBOX, en la que está basada el desarrollo de los controladores con MIOS, utiliza tanto para los módulos de entradas como para las salidas este tipo de registros. A continuación revisaremos sus principales características: 1.7.4.1. REGISTRO 74HC165 El 74HC165 es un registro de desplazamiento (shift register) de 8 BIT para entradas paralelas y 1 salida serial. Características principales: - Carga paralela de 8 BIT asincrónica - Entrada serial sincrónica - Capacidad de salida: Estándar - Categoría del ICC: MSI Los 774HC/HCT165 son registros de desplazamiento de 8-BIT carga-paralela o entrada-serial, con salidas seriales complementarias (Q7# y Q7) disponibles de la última etapa. Cuando la entrada de carga paralela (PL) es baja, los datos paralelos desde la entrada D0 a D7 son cargadas en el registro asincrónicamente. Cuando PL es alto, los datos ingresan al registro serialmente en la entrada DS y desplaza un lugar a la derecha (Q0 Q1 Q2, etc.) con transición positiva del reloj. Esta característica permite una expansión del convertidor paralelo a serial al unir la salida de Q7 a la entrada DS de la etapa consecutiva. La entrada del reloj es una estructura de compuerta OR la cual permite a una entrada ser usada como una entrada de habilitación activa en LOW de reloj (CE). La asignación para las entradas CP y CE son arbitrarias y pueden ser invertidas para conveniencia de diseño. La transición BAJO-a-ALTO de la entrada CE debe tomar lugar solamente cuando CO ALTO para una operación predecible. Ya sea CP o CE deben ser ALTOS antes de la transición BAJO-a-ALTO de PL para prevenir desplazamiento de los datos cuando PL está activado.
  • 95. Descripción de pines: Figura 93 Descripción de Pines para el registro 74HC165 Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990 Figura 94 Distribución de los pines en el encapsulado del registro 74HC165 Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990 Diagrama Funcional
  • 96. Figura 95 Diagrama Funcional del registro 74HC165 Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990 Tabla de funcionamiento: Figura 96 Tabla de funcionamiento del registro 74HC165 Fuente: Philips, 74HC/HCT165 8 Bit Parallel In/Serial Out Shift Register Data Sheet, 1990 1.7.4.2. REGISTRO 74HC595
  • 97. Características Principales: - Entrada serial de 8 BIT - Salida paralela o serial de 8 BIT - Registro de almacenaje con salidas de 3-estados - Registro de desplazamiento con limpiado directo - Capacidad de salida: - Salida paralela, manejador de bus - Salida serial, estándar - ICC categoría: MSI Descripción: Estos registros son utilizados en el módulo de salida para el manejo de LEDs en el controlador MIDI. Cada registro está provisto de 8 señales digitales, las cuales son actualizadas con la señal de habilitación del latch, RCLK y son desplazadas con la señal de reloj SCLK. La ventaja de usar tales registros es que pueden conectados en cascada. El registro de desplazamiento y almacenaje tienen relojes separados. Los datos son desplazados en las transiciones positivas del la entrada SHCP. Los datos en cada registro son transferidos al registro de almacenamiento en una transición positiva de la entrada STCP. Si ambos relojes son conectados juntos, el registro de desplazamiento siempre estará un pulso de reloj adelante del registro de almacenamiento. El registro desplazamiento tiene una entrada serial (DS) y una salida serial estándar (Q7’) para conexión en cascada. Esta también provisto con un reset asincrónico (activo a BAJO) para todas las 8 etapas de los registros de desplazamiento. El registro de almacenaje tiene 8 salidas paralelas manejadas de 3 estados. Los datos en el registro de almacenamiento aparecen en las salidas cuando la entrada (OE) sea BAJA. Pines: Figura 97 Descripción de Pines para el registro 74HC595
  • 98. Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output Latches; 3-State, 4 de Junio del 1998 Figura 98 Distribución de Pines en el encapsulado para el registro 74HC595 Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output Latches; 3-State, 4 de Junio del 1998 Diagrama Funcional: Figura 99 Diagrama funcional para el registro 74HC595
  • 99. Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output Latches; 3-State, 4 de Junio del 1998 Tabla de funcionamiento: Figura 100 Tabla de funcionamiento para el registro 74HC595 Fuente: Philips, 74HC/HCT595 8-Bit Serial-In/Serial Or Parallel-Out Shift Register With Output Latches; 3-State, 4 de Junio de 1998 1.8. ELECTRÓNICA ANALÓGICA
  • 100. En el entorno referente a estudios de electrónica analógica, los temas que de pronto según nuestro criterio merecían una breve revisión, era sobre lo que respecta a las fuentes de voltaje, especialmente en el aspecto de rectificación. Ya que los módulos utilizados se alimentan básicamente de DC. 1.8.1. Fuentes De Voltaje La fuente de voltaje especificada para nuestro proyecto, es una fuente en la que prácticamente se omite la etapa inicial de transformador, básicamente por la razón de que el controlador MIDI está diseñado para ser un dispositivo portátil, utilizado por DJs, es decir no puede ser pesado ni muy grande. Además, es más factible por facilidad de uso, utilizar directamente un adaptador de DC disponibles en el mercado, y a un precio asequible. Figura 101 Diagrama de bloques de las etapas de una fuente VDC Fuente: Unicrom.com, Fuentes de Poder, Diagrama de bloques, http://unicrom.com/Tut_fuentepoder.asp Por lo antes mencionado, se ha adaptado una etapa de rectificación, filtro y regulación, en el módulo principal.
  • 101. Explicaremos rápidamente las diferentes etapas: Figura 102 Esquema electrónico para una fuente de 5 VDC (utilizada en el proyecto) Fuente: Klose Thorsten, MIDIbox Hardware Platform – MBHP_Core_V3, 2006-06-10 Segunda etapa: rectificación. La segunda etapa de nuestra fuente de alimentación es la que queda constituida por la rectificación, en este punto, la señal inducida al secundario, será nuevamente inducida pero ahora a una señal directa. La fuente más común, posee una rectificación a base de 4 diodos, por lo que su rectificación será de onda completa y esta conectado en “tipo puente”. Al alimentar el en esta etapa circuito con un adaptador de CC, se evade el problema que implicaría una inversión de polaridad, gracias al puente rectificador. Figura 103 Forma de un Rectificador por puente
  • 102. Fuente: Won-Top Electronics, B40C800-B500C800 Bridge Rectifier, 2002 Tercera Etapa: Filtro Esta etapa, tiene como función, “suavizar” o “alisar” o “reducir” a un mínimo la componente de rizo y elevar el valor promedio de tensión directa. El capacitor de 2200 uF es de un tamaño y capacidad considerable, para eliminar notablemente las ondulaciones de la anterior etapa, además de eliminar ruidos que puedan ingresar al circuito. Cuarta Etapa: Regulador De Voltaje.
  • 103. En esta etapa final, garantizamos una alimentación estable a nuestro sistema, gracias al IC 7805 que nos entrega una salida bastante limpia de 5 VDC, con una alimentación máxima de 10 VDC, para no recalentar el integrado. Junto a este se conectan capacitores adicionales, como podemos apreciar en la Figura 102, los condensadores C6, C4 y C3. Estos valores han sido implementados como sugiere el "data sheet" del IC 7805. 1.8.2. Transistores BJT El transistor bipolar es el más común de los transistores, y como los diodos, puede ser de germanio o silicio. Existen dos tipos transistores: el NPN y el PNP, y la dirección del flujo de la corriente en cada caso, lo indica la flecha que se ve en el gráfico de cada tipo de transistor. El transistor es un dispositivo de 3 patillas con los siguientes nombres: base (B), colector (C) y emisor (E), coincidiendo siempre, el emisor, con la patilla que tiene la flecha en el gráfico de transistor. Figura 104 Simbología para los diferentes tipos de transistores BJT Transistor NPN Transistor PNP Fuente: Unicrom.com, Transistor Bipolar o BJT, http://www.unicrom.com/Tut_transistor_bipolar.asp El transistor bipolar es un amplificador de corriente, esto quiere decir que si le introducimos una cantidad de corriente por una de sus patillas (base), el entregará por otra (emisor), una cantidad mayor a ésta, en un factor que se llama amplificación. Este factor se llama β (beta) y es un dato propio de cada transistor. Entonces: - Ic (corriente que pasa por la patilla colector) es igual a β (factor de amplificación) por Ib (corriente que pasa por la patilla base).
  • 104. - Ic = β * Ib - Ie (corriente que pasa por la patilla emisor) es del mismo valor que Ic, sólo que, la corriente en un caso entra al transistor y en el otro caso sale de él, o viceversa.10 Figura 105 Variación de la corriente de Colector, en función del Voltaje Colector – Emisor, al mantener una corriente de base constante Fuente: 7 El funcionamiento de este tipo de transistores es bastante conocido por todos, pero vale la plena explicar el funcionamiento del circuito que utiliza estos transistores en módulo principal del proyecto. Figura 106 Esquema electrónico en el que se utiliza un transistor BJT para variar la iluminación de un diodo LED 10 Unicrom.com, Transistor Bipolar o BJT, http://www.unicrom.com/Tut_transistor_bipolar.asp
  • 105. Fuente: Klose Thorsten, MIDIbox Hardware Platform – MBHP_Core_V3, 2006-06-10 Al variar el potenciómetro P1, estoy modificando la corriente que llega a la base, por lo tanto debido a la formula mencionada anteriormente Ic = β * Ib también estoy variando la corriente que llega al LED del módulo LCD.