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_PROGRAM
En 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()