Well, I found a solution. But, it opens another problem... Which I also found a solution to

[pascal]
Procedure PlaySound;
begin
music_file := ' ';
StrPCopy(music_file,musicfile[x]);
//music_file := 'C:\Projects\Task Scheduler\test.wav';
init_stuff;
load_song;
BASS_setvolume({volume[x]}100);
totallength := round(BASS_ChannelBytes2Seconds(stream,BASS_Stream GetLength(stream)));
textcolor(12);
Writeln('Playing file ',MUSIC_FILE,'.');
textcolor(7);
play_song;
y := 1;
repeat
y := y+1;
delay(1000);
until y = totallength+2;
y := 0;
stop_song;
done_stuff;
textcolor(7);
end;
[/pascal]

Now, how I did it, was using the totallength := round(BASS_ChannelBytes2Seconds(stream,BASS_Stream GetLength(stream))); which gets the totallength, in seconds, of the song, and made a repeat.. until which made y increment by 1 every second, until y was equal to totallength plus 2 seconds... (to make sure none of the song/sound is cut off). So, yeah. Now I have the problem that the delay forces the program to stop, so I'm just gonna make it launch an external program which plays the sound and such.