int sound( int id_sonido,
uchar volumen )
int sound( int id_sonido,
uchar volumen, frecuencia )
int sound( int id_sonido,
uchar volumen, frecuencia, panoramización )
Retorna:
El número de canal (mayor o igual a 0) por el que se reproduce el sonido. -1 //Si no puede reproduce el sonido
Descripción:
Hace sonar el efecto cuyo identificador de sonido se especifica como primer parámetro. Primero, el sonido se debe haber cargado de un archivo WAV con las funciones load_sound() / load_wav() / load_voc() que son las que devuelven el identificador de sonido correspondiente a dicho efecto.
Volumen: Especifica el volumen al que se desea reproducir el sonido, siendo 0 el volumen mínimo y 255 el volumen máximo.
Frecuencia: Especificará la velocidad a la que se desea reproducir el sonido, siendo 127 la frecuencia por defecto al que reproducirá el sonido original; a valores menores el sonido se reproducirá más grave, mientras que a valores mayores de frecuencia, más agudo.
Panoramización: Especificará el balance o panoramización van de 0 (min/izquierda) a 255 (máx/derecha). El valor por defecto será 127 el centro del sonido.
MAIN_PROGRAM_CDIV
PRIVATE
int
volumen,
frecuencia,
id_sonido,
canal;
BEGIN_PROGRAM
set_gfx(GFX_AUTODETECT_WINDOWED);
set_mode(m320x200);
frecuencia = 128; // Valor medio (0..255)
volumen = 128; // Valor medio (0..255)
load_fpg("../help.fpg");
put_screen(1, 1);
write(0, 0, 0, 0, "Volumen: Arriba(+) / Abajo(-)");
write_int(0, 0, 10, 0, &volumen);
write(0, 0, 20, 0, "Frecuencia: Derecha(+) / Izquierda(-)");
write_int(0, 0, 30, 0, &frecuencia);
write(0, 160, 180, 1, "Pulse [ESPACIO] para emitir sonido.");
write(0, 160, 190, 1, "Utilice los cursores para cambiar valores.");
id_sonido = load_wav("../help.wav", 0);
LOOP{
if (scan_code == _space)
// Hace que suene
canal = sound(id_sonido, volumen, frecuencia);
if (key(_up) && (volumen < 256)) volumen++;
if (key(_down) && (volumen > 0)) volumen--;
if (key(_right) && (frecuencia < 256)) frecuencia++;
if (key(_left) && (frecuencia > 0)) frecuencia--;
FRAME;
}
END_PROGRAMEn el ejemplo se pone una pantalla de fondo y un texto explicativo, y se carga un sonido con la función load_sound() / load_wav / load_vod(); ésta devuelve el identificador del sonido, que se guarda en la variable id_sonido.
En el bucle principal, a cada pulsación de la barra espaciadora, se emitirá el sonido con la función sound() con los parámetros definidos en las variables volumen y frecuencia.
Con las teclas de los cursores se podrán manipular estos valores para comprender así mejor su funcionamiento.
Ver: load_wav() - change_sound() - stop_sound()