Órdenes y propiedades relativas al audio

Seguramente, la más básica que se plantea uno es cómo se pueden reproducir ficheros de audio. Para ello, se pueden emplear dos aproximaciones: la orden play y el objeto player.

La primera basada en las capacidades de MetaCard para reproducir ficheros. Esto se puede hacer con la orden play audioClip indicándole la ruta del fichero a reproducir. Creo que en buena hora, los desarrolladores de esta herramienta pensaron que no debían hacer crecer mucho estas capacidades y dejaron el manejo de los tipos básicos usuales: ya estaba bien de engrosar el tamaño del motor básico cuando hay muy buenas opciones externas que al final suelen estar instaladas y dejar que esas aplicaciones específicas se preocupen de abordar los nuevos tipos de ficheros de audio que aparezcan con el tiempo. Así que se podrá utilizar con ficheros .au (o .snd, el formato que desarrollaran Sun/NeXT) o .wav[1], la orden

play audioClip rutaDelFichero
(mono o estéreo, 8 bits, 8 KHz, utilizando codificación mu-law). Se puede hablar del resto de opciones de esta orden, pero prefiero hablar de la segunda opción que tiene más posibilidades y por la que se aboga desde los propios desarrolladores de MetaCard.

La segunda es utilizar el objeto player. Este se basa en determinadas aplicaciones específicas de cada plataforma. Lo mejor de todo es que, como es un objeto, puede: recibir mensajes, se le pueden enviar, consultar y cambiar propiedades, moverlo (aunque en este caso del audio no se le pueda sacar provecho, claro), etc.

Para poder reproducir el fichero de audio se emplea la orden start sobre un objeto de tipo player y este se encarga de "ejecutar" el fichero que se le haya asignado a la propiedad fileName del mismo. Véamoslo con un sencillo ejemplo:

Para reproducir un fichero de audio mediante un objeto player podemos consultar la ayuda al respecto (Help| Reference, en el apartado Properties by Object, agrupado en el enlace Player Properties). Crearemos una un pila, como siempre, en la que dispondremos: un campo de texto ("tema"), un reproductor (player) ("miPlayer") y un botón para empezar a ejecutar el archivo. El código del botón será el encargado de cambiar la propiedad FileName del reproductor por el texto del campo de texto y lo hará sonar con la orden Start. Sencillo, ¿no?. La Figura 8-4 muesta lo comentado, el rectángulo oscuro es el player en acción, aunque no lo oiga a través del papel..

Figura 8-4. Reproduciendo un fichero de audio mediante un objeto player.

#
# Botón "Reproduir artxiu"
#
on mouseUp
  set the filename of player "miplayer" to fld "tema"
  start player "miplayer"
end mouseUp
                      

Importante: Es importante que de cara a una aplicación que desarrollemos, donde no se deje la opción al usuario de escoger el fichero, sino que este es uno predeterminado, se utilicen rutas relativas. De esta manera, si cambiamos de directorio la aplicación o de máquina (incluso con sistema operativo diferente) funcionará correctamente. Recuerde lo comentado en la la sección de nombre Multiplataforma en Capítulo 3.

En las secciones siguientes veremos activitades relativas al ámbito de la Multimedia donde el audio es el principal medio: donde su peso es importante. Empezando con la orden beep como método más simple de generar sonido con una atrevida incursión en el mundo de los instrumentos musicales, pasando por la realización de un juego real enel que el sonido es protagonista, la generación de efectos sonoros en tiempo real, la creación de un interfaz gráfico para una aplicación de retoque de audio y hasta un acercamiento a la síntesis de voz. Para terminar con la propuesta de un caso de estudio donde haya que unir varias de estas piezas y algo más..

Notas

[1]

Debido a estas características del reproductor de audio interno, que se basa en las capacidades del sistema de ejecución, podemos recurrir a la orden

play videoClip rutaDelFichero
para reproducir el resto de ficheros de tipo WAV, por ejemplo los estéreo, con 16 bits por muestra , etc.