void sound_sweep_frequency( int id_canal, int tiempo, int frecuencia_final )
void sound_stop_sweep_frequency( int id_canal )


Descripción:

 - sound_sweep_frecuency(): Función que realiza un cambio de frecuencia (glissando) desde la frecuencia actual hasta la frecuencia final, especificando el tiempo en milisegundos.

 - sound_stop_sweep_frecuency(): Función que detiene el cambio de frecuencia.


MAIN_PROGRAM_CDIV
PRIVATE
   int
    finicial, ffinal,
    id_sonido,
    canal;

BEGIN_PROGRAM

 set_gfx(GFX_AUTODETECT_WINDOWED);

 set_mode(m320x200); 

 write(0, 0, 10, 0, "Frecuenia Inicial:");
 write_int(0, 180, 10, 0, &finicial);
 write(0, 0, 20, 0, "Frecuenia Final..:");
 write_int(0, 180, 20, 0, &ffinal);
 write(0, 0, 40, 0, "Pulse [SPACE] para detener");

 id_sonido = load_wav("../help.wav", 1);
 
 canal = sound(id_sonido, 127, 127);
 
 finicial = sound_get_frequency(canal);
 
 sound_sweep_frequency( canal, 10000, finicial * 2 );
 
 LOOP
 {
  ffinal = sound_get_frequency(canal);
  
  if( scan_code == _space )
   sound_stop_sweep_frequency(canal);
   
  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.

Se reproduce el sonido por medio de la función sound() estableciendo la frecuencia del sonido a (127  la frecuencia original) en Hz, después establecemos la frecuencia resultante al doble de la frecuencia inicial por medio de la función sound_sweep_frequency() durante 10000 milisegundos y la función sound_get_frequency() mantendrá actualizada la variable ffinal "frecuencia final", si se pulsa la BARRA ESPACIADORA se detendrá por medio de la función sound_stop_sweep_frequency().


Ver: load_wav() - sound() - sound_get_frequency() - change_sound() - stop_sound()