Traductor

jueves, 23 de agosto de 2012

Nuevas actualizaciones

    Seguimos mejorando y aprendiendo en el blog. Hemos incorporado una serie de gadgets en el margen derecho con el fin de darle mayor accesibilidad.

    Además de los ya existentes como el archivo del blog, se han añadido los tags más utilizados (etiquetas) con el fin de facilitar búsquedas. También información de un servidor (para que me conozcáis XD) y de una zona donde podéis subscribiros vía RSS.

    Y, ¿Qué es RSS? Simplificando es la forma más sencilla de tener noticias actualizadas de tu interés. De tal forma que cualquier contenido nuevo te aparecerá en tu lector RSS, (Ej. Google Reader) sin necesidad de estar visitando continuamente este blog. Anímate y suscríbete.

    Si te parece esto muy lioso puedes darle a seguidor en el botón azul de google "Participar en este sitio".

    Por último comentar que se ha añadido un traductor por si tú lengua materna no es la de Cervantes. Esta incorporado al inicio del blog.


    Gracias a todos estáis haciendo este sitio más grande.



miércoles, 22 de agosto de 2012

Problema de diseño web

¡Hola amigos!

    Necesito haceros una consulta sobre un asunto de diseño web. Problema: Necesito colgar en este blog documentos, código de programas, esquemas de circuitos, simulaciones… ¿Cómo lo hago de una manera simple y visual?

    Mis soluciones, a parte de colocar los documento en descargas directas y en scribd, son:
  • Google docs: Ahora llamado google drive.
  • Google sites: Permite crear un sitio web en html, además permite almacenar 100Mb por lo que se podrían colgar documentos ordenados.  La pega es la dispersión que provoca tener otro segundo sitio de referencia.

    Espero comentarios en este blog o tweets a @mballest1. GRACIAS

viernes, 10 de agosto de 2012

Piano Casio + Conversor USB+ Midiox -- MIDI práctico (I)

    El otro día hablamos de MIDI pero hoy vamos a verlo en acción. Queremos ver mensajes MIDI de manera práctica. Como ya dijimos aquí estos mensajes podríamos utilizarlos para grabar una melodía o reproducir con una mejor calidad o simplemente crear una partitura.

   Los materiales que requiero son los siguientes:

  • Piano Casio CTK-431: Un teclado electrónico normal y corriente. Dispone de 49 teclas, 100 melodías del banco de canciones (con un controlador para ensayar que te va guiando), 100 tonos y 12 notas polifónicas.




  • Conversor MIDI- USB: Totalmente transparente (para ti será un puerto MIDI) y totalmente plug&play (los drivers se instalan automáticamente). Cero complicaciones.

             Conexión apropiada entre el teclado y el ordenador

  •  Midiox: Programa multifunción de libre distribución, todo relacionado al MIDI. Permite monitorizar los eventos midi en pantalla (este será su uso aquí), capturar sysex y enviarlos, aplicar filtros para descartar información o cambiarla por otra. Podéis descargaros el programa y además,  obtener muchísima información en: http://www.midiox.com/




    Primero podéis ve la configuración que utilizo en el programa en este video:



    Super resumido: 1) Options-> Pass SisEx 2) Options-> Midi Devices…-> Seleccionar “Dispositivo de audio USB” y pulsar OK 3)Seleccionar en el panel de control el icono del semáforo para ponerlo “verde” 4) Comenzar a enviar datos MIDI

    Aquí entramos en materia (teníamos que utilizar el canal de youtube XD). Podéis ver el sistema completo y como se observa la info de los mensajes:



    Más en detalle podemos ver el monitoraje, en el que observamos diferentes campos. Para la semana que viene...

    Espero que os haya interesado. Aguardo vuestras dudas y sugerencias. Además me estoy dando cuenta de que tengo demasiadas cosas para escribir. Pero eso no es malo….

jueves, 2 de agosto de 2012

Software - MIDI (II)

La especificación MIDI incluye un aspecto de software que parte de la estructura de mensaje y la organización de los bytes.  Partimos pues y recordamos el hecho de que cuando el músico pulsa una tecla, un botón, una palanca o activa un sensor se genera cierta información  en unos y ceros al que  denominamos mensaje.

Bytes MIDI
     
    El byte se define como un número binario (dos combinaciones 1 o 0) de 8 bits. La transmisión de los datos se efectúa en serie, es decir, un bit tras otro, de manera asíncrona, lo que obliga a agregar un bit de inicio y otro de parada. La velocidad de recepción/transmisión de los datos MIDI se definió en 31.250 baudios, o bits por segundo, así sólo deben transcurrir 32 microsegundos entre un bit y el siguiente. También se exige que los 8 bits que conforman el dato en cuestión se envíen LSB primero.

     Existen dos tipos de bytes: De estado -status byte- y de información -data byte-. Se diferencian por el primer bit: si es un 1, tenemos un byte de estado, y si es un 0, es un byte de datos. Al generar un mensaje MIDI, por norma general, siempre enviamos un byte de estado, que puede estar seguido de cierta cantidad de bytes de datos. Por ejemplo, podemos enviar un primer mensaje de estado "activar nota", seguido de un byte de datos informado qué nota es la que se activa.

     A su vez, los mensajes de estado se dividen en dos grupos: mensajes de canal y mensajes de sistema. Los mensajes de canal se envían a un dispositivo específico, mientras que los mensajes de sistema son recibidos por todos los equipos.

      En la siguiente tabla tenemos una lista con todos los mensajes de estado disponibles.



       Los primeros bytes, cuyos últimos cuatro bits están marcados como "cccc", se refieren a mensajes de canal; el resto de bytes son mensajes de sistema.
Antes de explicar más detalladamente las características de algunos de los mensajes, conviene conocer dos importantes características de MIDI: los canales y los modos.




















Mensajes de estado disponibles

Canales MIDI

       Como se comentó con anterioridad, MIDI está pensado para comunicar un único controlador con varias unidades generadoras de sonido (cada una de las cuales puede tener uno o varios instrumentos sintetizados que deseemos utilizar), todo por un mismo medio de transmisión. Es decir, todos los aparatos conectados a la cadena MIDI reciben todos los mensajes generados desde el controlador. Ello hace necesario un método para diferenciar cada uno de los instrumentos. Este método es el denominado canalMIDI puede direccionar hasta 16 canales (también llamados voces, o instrumentos); por ello, al instalar el sistema MIDI será necesario asignar un número de canal para cada dispositivo.

Modos MIDI


       Dentro del sistema MIDI, se decidió crear una serie de diferentes modos de funcionamiento, cada uno con ciertas características. Antes de verlo, debemos diferenciar entre los siguientes conceptos:
§  Monofónico: un instrumento monofónico sólo puede reproducir una nota simultáneamente. Es decir, para reproducir una nueva nota debe primero dejar de sonar la anterior. Por ejemplo, los instrumentos de viento son monofónicos, ya que sólo reproducen un único sonido cada vez.
§  Polifónico: un instrumento polifónico puede reproducir varias notas simultáneamente. Un ejemplo es un piano, que puede formar acordes por medio de hacer sonar dos o más notas a la vez.
        Una vez aclarado este aspecto, podemos resumir los modos MIDI en la siguiente tabla:



Modos MIDI

Los dos primeros modos se denominan "Omni on". Esto se debe a que en esos modos la información de canal está desactivada. Esas configuraciones se reservan para configuraciones donde sólo utilicemos un instrumento. Los otros dos modos, "Omni off", sí admiten la información de canal.

Ejemplo de estructura del mensaje

Como ya hemos dicho todos los mensajes MIDI comienzan con un encabezamiento (byte status) de ocho bits donde se indica el tipo de mensaje y el número de canal. A estos les siguen  2 mensajes de datos. Esto se  resume en las siguientes figuras donde se informa de la activación y desactivación de notas:

 

                    Ejemplos de formato de mensajes          

       En el primer byte de datos lleva el número de nota siguiendo el criterio que presenta en la siguiente tabla :

Correspondencia entre el numero y su nota correspondiente

Si, por ejemplo, el músico ha pulsado un do medio enviaremos el número 60 en binario. El rango de datos (0 a 127), junto con la resolución de un semitono da una cobertura de más de diez de octavas, bastante amplia..

De hecho son poco los instrumentos MIDI con un rango tan amplio pero esto no es problema ya que si un instrumento recibe una nota fuera de su rango puede o ignorarlo o trasladarla una o más octavas para que quede dentro de su rango.

En los mensajes de desactivación puede parecer que no tiene sentido el valor de la nota, pero es absolutamente esencial porque en el caso de que estemos trabajando en uno de los  modos que permiten polifonía en un canal necesitamos determinar que nota es la que tiene que acabarse. Como excepción a esto, para instrumentos de batería no es necesario el envío de desactivación de nota. La razón reside en que, por ejemplo, para un teclado influye el tiempo que mantenemos pulsadas las teclas para sonidos que se mantengan durante la presión, mientras que en la percusión sólo influye el impacto transmitido (velocidad) y no tiene sentido hablar de continuidad del sonido. Los sintetizadores son capaces de ocuparse correctamente de esta diferencia entre instrumentos, ya que se especifica que los instrumentos de batería transmitan por el canal 10.

El segundo byte de datos lleva el valor de la velocidad de pulsación que nos da una medida de la fuerza con que se pulsan las teclas o golpean los sensores del instrumento. Este parámetro es importante, ya que es lo que deben captar los sensores de la batería.

Cuando se golpea un instrumento de batería, aparecerá una vibración en la membrana o superficie del mismo, con amplitud máxima en instantes cercanos al impacto y con una disminución de la misma en forma exponencial a medida que pasa el tiempo. El parámetro de velocidad que se debe enviar para la batería es ese valor de amplitud máxima, en los momentos iniciales.

El hecho de llamar a este parámetro “velocidad” se debe a que los primeros instrumentos MIDI eran teclados, y el cálculo de la fuerza con que se pulsaba la tecla se hacía mediante dos sensores colocados en las teclas(uno se activaba al inicio de la pulsación, y el segundo al llegar la tecla al final de su recorrido). La fuerza se hallaba en función del tiempo que se tardara desde que se activaba un sensor hasta que se activaba el otro, es decir, la velocidad que adquiría la tecla en bajar. Para nuestro caso, la velocidad es la fuerza con que se golpean los sensores.

Las velocidades pueden oscilar entre 0 (más fuerte) y 127 (más suave).