ID:154844
 
How do I do a thing, where I have three parts of a title, and when they are on the title screen, it plays one part, then when they press a button, either the next part plays where it left off, or plays in sync with the other one, and so on.

It's hard to explain in text, so here's a video on what I want to accomplish:
http://youtu.be/R0Nv7iW-1SA

The video shows that three parts of the song are different, however, when played all at once, it fits in perfectly, as if they are one song! This effect was used in Naruto Shippuden: Ultimate Ninja Storm 2 when navigating through the title screen, menu select, and character select.

I'm thinking there should be separate channels, but I don't know if that would work. I also thought of having three soundmobs nearby with a soundmob library, and have them play at a low volume, then when they press enter, you move to the next soundmob.

What do you guys think? What should I use?

(PS: I know Byond has the capability to do this, I just don't know how, since I'm not the best coder here. To be honest, I'm a beginner who is simply asking for help.)
Play all 3 sounds in the beginning, set them to loop. Put the 2 you don't want to hear in the main menu to a volume of 0. Whenever you get to the sub-menu turn on the volume of the right one and it should be in sync with the one already playing since they started at the same time.
In response to MDC
MDC wrote:
Play all 3 sounds in the beginning, set them to loop. Put the 2 you don't want to hear in the main menu to a volume of 0. Whenever you get to the sub-menu turn on the volume of the right one and it should be in sync with the one already playing since they started at the same time.

Ok, so far I got to the part of making the volume 0, however how do I make the volume change to 100? I tried setting the sound to a variable using var/Title2=sound('SoundFile.ogg',1,volume=0, but when I put Title2.volume=100 in the same proc, it said undefined var.

How would I go about changing the volume after it's been played?
In response to Narutorox123456
You should read up on SOUND_UPDATE.
In response to SuperAntx
SuperAntx wrote:
You should read up on SOUND_UPDATE.

Awesome, thanks! I'll read it.
In response to SuperAntx
SuperAntx wrote:
You should read up on SOUND_UPDATE.

I read it and worked on it a ton.

This is what I have.
sound/var
Title
mob/Login()
usr << sound('Title 1.ogg')
usr << sound(null)
usr << sound('Title 2.ogg')
usr << sound(null)
usr << sound('Title 3.ogg')
usr << sound(null)
var/sound/S = sound('Title 1.ogg',1.#INF,volume=100);S.Title=1
usr << S
var/sound/S3 = sound('Title 2.ogg',1.#INF,volume=100);S3.Title=2
usr << S3
var/sound/S2 = sound('Title 3.ogg',1.#INF,volume=0);S2.Title=3
usr << S2
mob/verb
Title1()
for(var/sound/S in src.client)
if(S.Title==2)
usr << S
S.volume=0
S.status=SOUND_UPDATE
usr << S
return
if(S.Title==3)
usr << S
S.volume=0
S.status=SOUND_UPDATE
usr << S
return
Title2()
for(var/sound/S in src.client)
if(S.Title==2)
usr << S
S.volume=100
S.status=SOUND_UPDATE
usr << S
return
if(S.Title==3)
usr << S
S.volume=0
S.status=SOUND_UPDATE
usr << S
return
Title3()
for(var/sound/S in src.client)
if(S.Title==2)
usr << S
S.volume=100
S.status=SOUND_UPDATE
usr << S
return
if(S.Title==3)
usr << S
S.volume=100
S.status=SOUND_UPDATE
usr << S
return


Now all I need is getting the verbs to work. For some reason, if I put src, src.client, usr, or world, it doesn't work. What should I put to make those verbs work? Also any other input on what it needs improvement on would be appreciated.