void change_sound( int id_sonido, uchar volumen, frecuencia, pan )


Descripción:

Para utilizar esta función es imprescindible tener una tarjeta de sonido instalada en el ordenador.

Esta función tiene sentido utilizarla sólo tras la función sound() que es la utilizada para emitir sonidos.

change_sound() modifica un sonido que está sonando por uno de los canales, estableciendo nuevamente su volumen y su frecuencia.

Cada identificador de sonido tiene establecidos en todo momento su nivel de volumen y de frecuencia.

Volumen: es un valor entre 0 (volumen mínimo) y 255 (volumen máximo) que determina la potencia con la que se escuchará el sonido de dicho canal.

Frecuencia: es un valor que afecta a la velocidad a la que se oye el sonido, es decir, controla lo grave o agudo que se emite el sonido. Este valor oscila entre 0 (grave) y 255 (agudo).

Pan: Especificará el balance o panoramización van de 0 (min/izquierda) a 255 (máx/derecha). El valor por defecto será 128 el centro del sonido.


MAIN_PROGRAM_CDIV
PRIVATE
   int
    frecuencia,     // Valor medio (0..255)
    volumen,        // Valor medio (0..255)
    id_sonido,
    canal;

BEGIN_PROGRAM

 set_gfx(GFX_AUTODETECT_FULLSCREEN);
 set_mode(m320x200);

 frecuencia = 128;     // Valor medio (0..255)
 volumen = 128;        // Valor medio (0..255)

 load_fpg("../help.fpg");
 put_screen(1, 1);

 id_sonido = load_wav("../help.wav", 1);
 canal = sound(id_sonido, (unsigned char)volumen, (unsigned char)frecuencia);

 write(0, 0, 0, 0, "Derecha o izquierda cambia la frecuencia.");
 write_int(0, 0, 10, 0, &frecuencia);
 write(0, 0, 20, 0, "Arriba o abajo para cambia el volumen.");
 write_int(0, 0, 30, 0, &volumen);

 LOOP{

        // Cambia el sonido
        change_sound(id_sonido, volumen, frecuencia, 128);

        if (key(_right)) frecuencia++;
        if (key(_left)) frecuencia--;
        if (key(_up)) volumen++;
        if (key(_down)) volumen--;
        FRAME;
 }

END_PROGRAM

En el ejemplo se carga y se emite un sonido (contenido en el archivo help.wav). Dentro del bucle principal del programa se cambia la frecuencia y el volumen de este sonido con la función change_sound(); para modificar estos valores se utilizan las teclas de los cursores.


Ver: load_wav() - sound() - unload_wav()