removed useless _ folders
This commit is contained in:
3
Psykes_Music_Script/Psykes_Music_Script.sol
Normal file
3
Psykes_Music_Script/Psykes_Music_Script.sol
Normal file
@@ -0,0 +1,3 @@
|
||||
<Solution name="Psykes_Music_Script">
|
||||
<Project name="Psykes_Music_Script" path="Psykes_Music_Script\Psykes_Music_Script.prj" active="true"/>
|
||||
</Solution>
|
||||
@@ -0,0 +1,159 @@
|
||||
// :CATEGORY:Music
|
||||
// :NAME:Psykes_Music_Script
|
||||
// :AUTHOR:Psyke Phaeton
|
||||
// :CREATED:2010-01-10 05:20:56.000
|
||||
// :EDITED:2013-09-18 15:39:00
|
||||
// :ID:663
|
||||
// :NUM:903
|
||||
// :REV:1.0
|
||||
// :WORLD:Second Life
|
||||
// :DESCRIPTION:
|
||||
// Psyke's Music Script.lsl
|
||||
// :CODE:
|
||||
|
||||
//Psyke's Music Script v4.15.1
|
||||
//Song Player
|
||||
|
||||
//Modified by Psyke Phaeton... this script is free for anyone to use or copy.. please make it copyable from your "CD"
|
||||
//Drop 9 second song clips in reverse order into the Inv of the obect, and touch to play.
|
||||
|
||||
//user variables
|
||||
|
||||
integer waves_to_preload = 3; //wave files to Preload ahead of the wav being played.
|
||||
float preload_load_time = 0.5; // seconds pause between each preloaded wave file attempt b4 play comnences
|
||||
//vector set_text_colour = <,0,0>; // colour of floating text label
|
||||
float set_text_alpha = 1; //no idea what this is LOL
|
||||
float timer_interval = 8.9; //time interval between requesting server to play the next 9 second wave
|
||||
// times just below 9 seconds are suitable as we use sound queueing
|
||||
integer timer_started;
|
||||
|
||||
// program variables
|
||||
list invlist;
|
||||
integer total_wave_files; //number of wave files
|
||||
integer last_wave_file_number; //final wave sequence number (note: sequence starts at zero
|
||||
//- so this is 1 less than total wave files)
|
||||
integer i; //used by timer() player
|
||||
integer c; //user by sound() bufferer
|
||||
string preloading_wave_name; //the name of the wave file being preloaded
|
||||
string playing_wave_name; //the name of the wave being played
|
||||
integer play = FALSE; //toggle for music playing or stopped
|
||||
|
||||
sound()
|
||||
{
|
||||
total_wave_files = llGetInventoryNumber(INVENTORY_SOUND);
|
||||
last_wave_file_number = total_wave_files - 1; // because wav files are numbered from zero
|
||||
float length = total_wave_files*9.0;
|
||||
//llSay(0, "preloading " + (string)tottrack + " wavs. Play length " + (string)llFloor(length) + "secs");
|
||||
integer c = 0;
|
||||
//do full preload of sound
|
||||
llSetSoundQueueing(TRUE); //ONLY WORKS ON llPlaySound not llTriggerSound
|
||||
/////////////////
|
||||
//integer x = waves_to_preload;
|
||||
//if ( total_wave_files < waves_to_preload ) { x = total_wave_files; }
|
||||
////////////////
|
||||
integer x = total_wave_files;
|
||||
llSay(0, "(" + llGetScriptName() + ") " + llGetSubString((string)(x * preload_load_time),0,3) + " sec buffering..");
|
||||
timer_started = FALSE;
|
||||
for (c = 0 ; c <= (x - 1) ; c++) { //preload X wave files b4 we play
|
||||
//since wavs are numbered from 0 we minus 1
|
||||
preloading_wave_name = llGetInventoryName(INVENTORY_SOUND, c);
|
||||
llSetText(llGetObjectName() +
|
||||
"\n(preloading " + llGetSubString((string)((x - c)*preload_load_time),0,3) + " secs)"
|
||||
//////debug lines
|
||||
//+ "\n--debug--\n"
|
||||
//+ "Preload wav: " + (string)c
|
||||
//+ "\nkey: " + (string)llGetInventoryKey(preloading_wave_name)
|
||||
//////end debug line
|
||||
+"\n.", <1,0,0>, set_text_alpha);
|
||||
|
||||
//Attempt to preload first x wave files to local machines cache!
|
||||
llTriggerSound(preloading_wave_name, 0.0);
|
||||
llPreloadSound(preloading_wave_name);
|
||||
//llWhisper(0, (string)c + " of " + (string)tottrack);
|
||||
//llWhisper(0,"Preloading wav: " + (string)c + (string)llGetInventoryKey(preloading_wave_name));
|
||||
|
||||
//start play sound timer in 'timer_interval' seconds when we are less than 'timer_interval' seconds from
|
||||
// finishing preloading.
|
||||
if ( ((total_wave_files - c) * preload_load_time) < timer_interval && !timer_started) {
|
||||
//llWhisper(0, "Starting timer:" + (string)timer_interval);
|
||||
llSetTimerEvent(timer_interval);
|
||||
timer_started = TRUE;
|
||||
}
|
||||
|
||||
llSleep(preload_load_time);
|
||||
}
|
||||
i=0; c=0;
|
||||
llSay(0, "Done! Playing.. (" + (string)llFloor(length) + " secs) Click to stop.");
|
||||
//llSetTimerEvent(8.85);
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
on_rez(integer start_param)
|
||||
{
|
||||
//set text above object to the name of the object
|
||||
llSetText(llGetObjectName() + "\n.", <0,1,0>, set_text_alpha);
|
||||
//llSetSoundQueueing(FALSE); //ONLY WORKS ON llPlaySound not llTriggerSound
|
||||
}
|
||||
touch_start(integer total_number)
|
||||
{
|
||||
if (!play) {
|
||||
//llTargetOmega(<0,0,1>,PI,1.0) ;
|
||||
sound();
|
||||
} else {
|
||||
//llTargetOmega(<0,0,1>,0,0);
|
||||
llSetTimerEvent(0.0);
|
||||
llStopSound();
|
||||
//llSetSoundQueueing(FALSE); //ONLY WORKS ON llPlaySound not llTriggerSound
|
||||
llSay(0, "Stopping..");
|
||||
llSetText(llGetObjectName() + "\n.", <0,1,0>, set_text_alpha);
|
||||
}
|
||||
|
||||
play = !play;
|
||||
}
|
||||
|
||||
timer()
|
||||
{
|
||||
if( i > last_wave_file_number )
|
||||
{
|
||||
//llSay(0, "finished.");
|
||||
play = FALSE;
|
||||
//llSetSoundQueueing(FALSE); //ONLY WORKS ON llPlaySound not llTriggerSound
|
||||
llSetText(llGetObjectName() + "\n.", <0,1,0>, set_text_alpha);
|
||||
//llResetScript();
|
||||
llSetTimerEvent(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
playing_wave_name = llGetInventoryName(INVENTORY_SOUND, i);
|
||||
//llWhisper(0, "llPlaySound wav: " + (string)i + " " + (string)llGetInventoryKey(playing_wave_name) );
|
||||
llPlaySound(playing_wave_name, 0.7);
|
||||
llSetText( llGetObjectName() +
|
||||
"\n(playing " + (string)i +" of "+ (string)last_wave_file_number +")\n."
|
||||
, <0,1,1>, set_text_alpha);
|
||||
|
||||
if(i + waves_to_preload <= last_wave_file_number)
|
||||
{
|
||||
preloading_wave_name = llGetInventoryName(INVENTORY_SOUND, i + waves_to_preload);
|
||||
//llSetText( llGetObjectName() +
|
||||
// "\n(playing " + (string)i +" of "+ (string)last_wave_file_number +")"
|
||||
//////debug line
|
||||
//+ "\n--debug--\n"
|
||||
//+ "Playing key: " + (string)llGetInventoryKey(playing_wave_name) + "\n"
|
||||
//+ "Preloading sequence: " + (string)(i + waves_to_preload)
|
||||
//+ "\nPreloading key: " + (string)llGetInventoryKey(preloading_wave_name)
|
||||
//////end debig line
|
||||
// , set_text_colour, set_text_alpha);
|
||||
|
||||
//llWhisper(0, "Preloading wav:" + (string)(i + waves_to_preload) + " " +
|
||||
// (string)llGetInventoryKey(preloading_wave_name) +" last = " + (string)last_wave_file_number);
|
||||
llTriggerSound(llGetInventoryName(INVENTORY_SOUND, i + waves_to_preload), 0.0);
|
||||
llPreloadSound(llGetInventoryName(INVENTORY_SOUND, i + waves_to_preload));
|
||||
}
|
||||
}
|
||||
|
||||
i++; //increment for next wave file in sequence!
|
||||
}
|
||||
}
|
||||
|
||||
// END //
|
||||
@@ -0,0 +1,6 @@
|
||||
<Project name="Psykes_Music_Script" guid="D773DAEA-6C00-1014-B904-200204C60A89">
|
||||
<Object name="Object" guid="D773DBE8-6C00-1014-B904-200204C60A89">
|
||||
<Script name="Psykes_Music_Script_1.lsl" guid="D7740D84-6C00-1014-B904-200204C60A89">
|
||||
</Script>
|
||||
</Object>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user