change_sound()

change_sound(<canal>, <volumen>, <frecuencia>)

Descripción:

Para utilizar esta función es imprescindible tener una tarjeta de sonido instalada en el ordenador compatible 100% con las tarjetas de la familia Sound Blaster (tm) o Gravis Ultrasound (tm).

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.

El canal es el código de canal que devuelve la función sound() cuando es llamada; pueden sonar hasta 16 canales a la vez, con el mismo sonido o con diferentes sonidos, por lo tanto, cada vez que se emite un sonido se hará, posiblemente, por un canal diferente.

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

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

La frecuencia es un valor que afecta a la velocidad a la que se oye el sonido por el canal, es decir, controla lo grave o agudo que se emite el sonido. Este valor oscila entre 0 (grave) y 512 (agudo).

Programa ejemplo:
PROGRAM ejemplo_change_sound;

PRIVATE
    frecuencia=256;     // Valor medio (0..512)
    volumen=256;        // Valor medio (0..512)

    id_sonido;
    canal;

BEGIN
    load_fpg("help\help.fpg");
    put_screen(0, 1);

    id_sonido = load_pcm("help\help.pcm", 1);
    canal = sound(id_sonido, volumen, frecuencia);

    write(0, 0, 0, 0, "Presione derecha o izquierda para cambiar la frecuencia.");
    write_int(0, 0, 10, 0, offset frecuencia);
    write(0, 0, 20, 0, "Presione arriba o abajo para cambiar el volumen.");
    write_int(0, 0, 30, 0, offset volumen);
    LOOP

        // Cambia el sonido
        change_sound(canal, volumen, frecuencia);

        IF (key(_right)) frecuencia++; END
        IF (key(_left)) frecuencia--; END
        IF (key(_up)) volumen++; END
        IF (key(_down)) volumen--; END
        FRAME;
    END

END


En el ejemplo se carga y se emite un sonido (contenido en el archivo help.pcm). 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_pcm/wav() - sound() - unload_pcm/wav() - STRUCT setup