set_song_pos()

set_song_pos(<posición del módulo>)

Descripción:

Fija la posición de reproducción del módulo musical (el número de "pattern").

Esta <posición del módulo> es un número entre 0 y el número máximo de pattern (patrones) del módulo. Este valor varia para cada módulo, y se define en los programas utilizados para componerlos. Los módulos suelen tener un número muy variable de patrones, aunque la media puede situarse entre 30 y 40.

Dentro de cada patrón los módulos tienen un determinado número de líneas (normalmente 64), en las cuales aparecen las notas musicales, por lo que se podría definir cada patrón como una pequeña sección del módulo musical.

Para obtener la posición actual de un módulo que se está reproduciendo se utiliza la función get_song_pos().

Se puede variar la posición del módulo tanto si este está parado, como si se está reproduciendo. Esta función puede utilizarse para avanzar o retroceder en la reproducción del módulo, para implementar diversos bucles repetitivos de ciertas partes de un módulo, etc.

Programa ejemplo:
PROGRAM ejemplo_set_song_pos;

GLOBAL
    id_canción;
    posición_módulo;

BEGIN
    load_song("help\help.xm",1);
    song(id_canción);
    write(0,0,0,0,"Pulse SPACE cambiar la posición del módulo ...");
    write(0,0,20,0,"Posición:");
    write_int(0,0,30,0,OFFSET posición_módulo);
    LOOP
        IF (key(_space))
            posición_módulo=rand(0,19);

            set_song_pos(posición_módulo); // Cambia la posición del módulo

        END
        posición_módulo=get_song_pos();
        FRAME;
    END
END


Este programa carga el módulo contenido en el archivo help.xm y entonces inicia su reproducción con la función song().

A partir de este momento se mostrará la posición actual de módulo en pantalla, y se podrá cambiar la misma pulsando la barra espaciadora (se asignará una posición al azar, entre 0 y 19, ya que este módulo tiene 20 patrones).


Nota: No se puede fijar la línea de reproducción de un módulo (dentro de cada patrón), pero si que se puede obtener este valor con la función get_song_line().


Ver: get_song_pos() - song() - load_song()