change_channel()

change_channel(<canal>, <volumen>, <balance>)

Descripción:

Se trata de una función complementaria a change_sound(), que modifica las propiedades de uno de los canales de sonido que reproducen los efectos digitales (ver sound()) o módulos musicales (ver song()).

Se debe indicar el número de <canal> que quiere ajustarse, (normalmente el número de canal devuelto por la función sound()), y los siguientes dos valores:

<volumen> - Se trata del volumen propio del canal, entre 0 y 512, independiente del volumen del propio sonido y del volumen general.

Cuando los volumenes de los diferentes canales son demasiado altos se producen efectos de distorsión, por ello se recomienda modificar el volumen de los efectos de sonido mediante la función change_sound() que, además, permite ajustar la frecuencia de los mismos.

<balance> - Es el "panning" o diferencia de volumen entre el atavoz izquierdo y derecho, debe ser un valor entre 0 y 255.


Nota: Los niveles generales de volumen se pueden ajustar mediante la estructura global setup (sonido digital, cd-audio y volumen general).


Programa ejemplo:
PROGRAM ejemplo_change_channel;

PRIVATE
    balance=128;     // Valor medio (0..256)

    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, 256, 256);

    write(0, 160, 0, 1, "Presione derecha o izquierda para cambiar el balance.");
    write_int(0, 160, 10, 1, offset balance);
    LOOP

        // Cambia el balance del canal

        change_channel(canal, 50, balance);

        IF (key(_right) AND balance<255) balance++; END
        IF (key(_left) AND balance>0) balance--; 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 puede cambiar el balance del canal por el que está sonando dicho sonido con la función change_channel(), utilizando las teclas de los cursores.


Nota: Ver también la tabla global predefinida channel, que indica cuales de los canales de sonido están siendo utilizados.


Ver: change_sound() - sound() - song() STRUCT setup