Revistas en Papel
Anterior
Menú
Logotipo

Música
Quim Guzmán
AMIgA.InFo • Número 12 • Jul/Ago 1996

NOTA: Pulsando sobre las fotos con borde azul ampliarás la imagen.

Librería de sonidos
MIDI

Para todo aquel músico con equipo MIDI que programe sus propios sonidos, es importante el poder salvar dichos sonidos de alguna forma. Normalmente suele ser mediante volcados MIDI o Sysex Dumps.

A la hora de utilizar los sonidos previamente volcados, podemos crear un sistema limpio y fiable que se encargue de enviar estos sonidos a sus sitios respectivos.

Librería MIDI.

   Se entiende por librería MIDI a la colección de sonidos, configuraciones, etc..., de cualquier dispositivo MIDI. En el mercado existen numerosas utilidades que permiten el manejo de dichas librerías. Sin embargo, en el mundo Amiga podemos decir que estas utilidades no abundan y, cuando encontramos alguna, no nos convence por la incomodidad que supone utilizarla o cualquier otra razón.

   La mayoría de estas utilidades permiten recibir la información para que luego se almacene y se envíe en el momento que consideremos oportuno.

   Para este "proyecto" vamos a utilizar un fichero Amigaguide que se encargue de enviar los diferentes sonidos o cualquier información que previamente se haya almacenado. El fichero Amigaguide sirve de interface para facilitar la tarea. El programa encargado de recibir/transmitir la información MIDI es una utilidad llamada SysExpert. Esta utilidad se puede encontrar en el CD que Amiga.Info incluyó en el número 6, (Diciembre del año pasado). Esta utilidad almacena la información MIDI que se le transmita para que luego se envíe cuando se quiera. Dicha utilidad también puede enviar información MIDI recibida por otros programas como OctaMED.

   De momento, todo suena un poco a chino, pero como se verá más adelante, es bastante fácil llevar a cabo este proyecto.

   Como he comentado antes, vamos a utilizar Amigaguide como interface. Antes de nada vamos a ver cómo funciona dicho tipo de fichero sin entrar demasiado en materia, ya que no es el cometido.


El funcionamiento de Amigaguide.


Figura 1.

Figura 2.

   A estas alturas de la vida "Amiga" supongo que sabréis, más o menos, de qué trata este formato de fichero de texto. Se trata de ficheros de texto divididos en páginas a las que se accede pulsando sobre el botón adecuado. A estas páginas se las denomina Nodos. Tanto el funcionamiento, el diseño de los botones como el hacer que una determinada letra o "pedazo" de texto aparezca subrayado en otro color de forma itálica, entre otros, se programa con una serie de instrucciones. Para editar este tipo de texto, se pueden utilizar editores como el Ed. Cygnus Ed, FrexxEd o similares. En la tabla 1, podéis ver las instrucciones más utilizadas. Ahora veamos un ejemplo:

  @DATABASE Miprueba
  @NODE MAIN "Primera página"
  @{"Ir a la segunda página" LINK DOS}
  Modo normal.
  @{b}Modo bold.
  @{ub}
  @{i}Modo italic.
  @{ui}
  @{u}Modo underline.
  @{uu}
  @ENDNODE
  @NODE DOS "Segunda página"
  @{"Ir a la primera" LINK MAIN}
  @ENDNODE

En la figura 1 se observa el ejemplo cuando se visualiza con la utilidad Amigaguide o Multiview.

La figura 2 muestra el mismo ejemplo cuando se pulsa sobre el botón "Ir a la segunda página".

 Instrucciones más utilizadas en el Amigaguide.
@DATABASE:
Es la primera instrucción que se ha de poner y va precedida del nombre que queremos ponerle a dicho texto. Es obligatoria.
@NODE:
Determina el principio de una página/nodo. Va precedida del nombre nodo. Después, puede ir precedida del nombre de dicha página o nodo entre comillas. El nombre del primer nodo ha de ser: MAIN.
@ENDNODE:
Determina el final de la página/nodo. Es obligatorio.
@FONT:
Determina el tipo de letra para el texto. Si se omite se utiliza la Topaz.font tamaño 7. Si esta instrucción se encuentra antes del primer nodo, rige en todo el fichero. También se puede poner en cada nodo para que éstos se visualicen con diferentes tipos de letras.
@HELP:
Asigna una página/nodo al botón superior Help/Ayuda. Esta instrucción se ha de colocar antes del primer nodo. No es obligatoria.
@INDEX:
Asigna una página/nodo al botón superior Index/Índice. Esta instrucción se ha de colocar antes del primer nodo. No es obligatoria.
@{" " LINK nombredelnodo}:  
Crea un botón. Cuando se pulsa activamos la página/nodo determinada.
@{" " SYSTEM " "}:
Crea un botón. Cuando se pulsa, realiza una tarea de sistema como arrancar un programa, por ejemplo. Dentro de las segundas comillas se ha de introducir la línea de comandos necesaria para ejecutar tal tarea.
@{" " RX " "}:
Crea un botón. Cuando se pulsa, se ejecuta el script ARexx determinado entre las segundas comillas. Las primeras comillas determinan el tamaño del botón y pueden contener texto.
@{b}:
Activa el modo Bold.
@{ub}:
Desactiva el modo Bold.
@{i}:
Activa el modo Italic.
@{ui};
Desactiva el modo Italic.
@{u}:
Activa el modo Underline.
@{uu}:
Desactiva el modo Underline.
@{bg fill}:
Activa un fondo azul.
@{bg highlight}:
Activa un fondo blanco.
@{bg backgorund}:
Desactiva el fondo azul o blanco.
@{fg fill}:
Texto en color azul.
@{fg hightlight}:
Texto en color blanco.

Manos a la faena.

   Por un lado, tenemos Amigaguide, y, por otro, la utilidad SysExpert. Amigaguide se utilizará de interface entre el usuario y SysExpert, facilitando la tarea. El hecho de utilizar Amigaguide para tal evento, supone una comodidad frente al uso de SysExpert para enviar, ya que evita el tener que abrir requesters para buscar por el disco duro aquella información que se ha de enviar y después pulsar el botón adecuado. Con Amigaguide se automatiza dicha tarea.

   Vamos a programar una hipotética librería de sonidos. De aquí en adelante suponemos que hay una partición llamada WORK; un directorio llamado Música, dentro de él uno llamado SysEx, donde tendremos la utilidad SysExpert, y, por último, y dentro del directorio Música, otro llamado SonidosMIDI en el que vamos a tener los volcados de nuestros sonidos MIDI.

   Para atajar caminos es conveniente asignar los directorios: Música, SysEx y SonidosMIDI. Aparte de acortar los caminos de búsqueda de los diferentes directorios, vamos a alargar, en cierta medida, la vida de nuestro disco duro. El método más rápido de asignar los directorios suele ser desde un CLI, pero supone realizar dicha tarea cada vez que arrancamos el Amiga. Todas nuestras asignaciones deberían realizarse en la startup-sequence o en la secuencia de usuario, user-startup. Podemos editar nuestra user-startup con un editor y realizar las asignaciones:

  Assign Musica: WORK:Musica/
  Assign SysEx: Musica:SyeEx/
  Assign SonidosMIDI: Musica:SonidosMIDI/

   A partir de ahora, cada vez que se arranque el Amiga, se realizarán estas asignaciones de forma automática y se pueden utilizar en cualquier momento.

   En primer lugar se han de almacenar los sonidos. Para ello utilizamos la utilidad SysExpert o bien el editor de mensajes MIDI de OctaMED. Con la utilidad SysExpert cargada y nuestro dispositivo MIDI preparado para enviar, pulsamos el botón REC en la pantalla de SysExpert y enviamos la información desde nuestro dispositivo MIDI. Una vez almacenada dicha información, la grabaremos en el directorio SonidosMIDI de nuestro disco duro. Esta utilidad es fácil de manejar. Si tenéis algún problema, se adjunta con un pequeño manual de uso. El manejo del editor de mensajes MIDI de OctaMED se encuentra en el tutorial dedicado a dicho programa.

   Suponemos que nuestra hipotética y pequeña librería consta de 4 sonidos. Después de grabar y almacenar cada sonido en el directorio SonidosMIDI podemos editar nuestro fichero Amigaguide el cual se encargará de enviar esos sonidos. Nuestros hipotéticos sonidos pueden ser los siguientes:

  Piano 1 OldOrgan ElecBass Viola 4

   Estos sonidos ya están almacenados en el directorio SonidosMIDI. Ahora procederemos a editar el fichero Amigaguide, con un editor como Ed o Cygnus Ed, de la siguiente forma:

  @DATABASE MiLibrería
  @NODE MAIN "Mis sonidos"
  @{"Piano 1" SYSTEM "Run SysEx:SysExpert BUFFER=1000 PATH=SonidosMIDI:Piano_1")}
  @{"OldOrgan" SYSTEM "Run SysEx:SysExpert BUFFER=1000 PATH=SonidosMIDI:OldOrgan"}
  @{"ElecBass" SYSTEM "Run SysEx:SysExpert BUFFER=1000 PATH=SonidosMIDI:ElecBass"}
  @{"Viola 4" SYSTEM "Run SysEx:SysExpert BUFFER=1000 PATH=SonidosMIDI:Viola_4"}
  @ENDNODE

Figura 3.

   Así quedará nuestro fichero visualizado con Amigaguide o Multiview (figura 3). Al pulsar sobre un botón, ese sonido es enviado a nuestro dispositivo MIDI.

   Una vez editado el fichero, se le añade un icono (Project) y, como herramienta por defecto, podemos utilizar la utilidad lectora de ficheros formato Amigaguide o Multiview. Aconsejo utilizar la utilidad Multiview ya que la utilidad Amigaguide muestra una ventana cada vez que realiza una operación de sistema y ésta puede ser molesta.

   Siguiendo el proceso al pulsar cualquier botón podemos observar cómo funciona el ejemplo: En primer lugar se crea un botón con el nombre del sonido que se va a enviar a nuestro dispositivo; cuando dicho botón se pulsa, se produce una operación de sistema que carga la utilidad SysExpert y envía vía MIDI, el sonido determinado que se encuentra en el directorio SonidosMIDI; cuando dicho sonido MIDI es enviado, SysExpert se desactiva automáticamente.

   Como podéis observar, la utilidad SysExpert utiliza dos comandos: BUFFER y PATH. El comando BUFFER sirve para que dicha utilidad coja una porción de memoria acorde con el tamaño de la información a enviar. El comando PATH sirve para que SysExpert busque la información a enviar por el camino correcto. Se puede decir que SysExpert desde un CLI con estos comandos u opciones, trabaja como un comando normal.

   El nombre de los sonidos, como también podéis observar, no puede tener espacios. Un sonido o fichero de información MIDI como, por ejemplo, Piano 1, no será enviado. Para que SysExpert pueda enviar esta información, a de tener por nombre, Piano_1


Figura 4.

   Cada vez que se pulse un botón, SysExpert se reserva el puerto serie para enviar la información, por lo tanto, si hay otra utilidad que lo utilice en ese momento como un secuenciador MIDI o bien se está efectuando una impresión, no enviará información alguna.

   Nuestra pequeña librería es muy simple. Puede ocurrir que con el paso del tiempo tengamos una librería con cientos de sonidos. En este caso se pueden organizar por tipos: pianos, cuerdas, bajos, etc. Se puede tener cada tipo agrupado en una página/nodo.

   En la figura 4 podemos ver una ventana de Amigaguide de mi librería personal. Podéis observar la cantidad de sonidos. Es conveniente, si el número de ellos es elevado, organizarlos por tipos y cada tipo alojarlo en una página/nodo.

   Este proyecto está abierto a cambios, y se a de ir editando el fichero a medida que nuestra librería aumenta.

   Fuera un poco del proyecto, podemos decir que un fichero Amigaguide convenientemente editado se puede utilizar como interface de carga de módulos, samples, visualizar tanto imágenes como dibujos, etc, etc...

   Bueno, amigos, esto es todo por ahora. Espero que os sea útil este proyecto.


Envía esta página web a un amigo:
Esta opción está desactivada temporalmente, rogamos disculpen las molestias

Volver a la página anterior

Al menú principal