Musician Archive
Thread: The loops don't loop properly!
Chroma_Key wrote:
Most of the songs follow a 4/4 time signature yet the loops are not recorded so they can actually loop. There is a gap between each one that ruins the groove making it sound like an awful 9/8 or I don't know what!
Have a musician do the loops! You have ruined the songs by cropping the loops like that...
Yeah, they botched it.
They should have had a good sound engineer do the loop pieces. I think a good one put the songs together, then they had who-knows-who split it apart for each flourish. Whoever it was didn't do a great job.
I guess I wonder if that pause is lag-induced, or possibly client-side. I'm more of the opinion that it'sa bad edit on each flourish sound.
I'm more displeased with the flourishes for Western. They all sound the same to me. At least with Ballad or Jazz, or pretty much all of our other songs, they GO somewhere when you combine different flourishes. All the flourishes in Western (to me) sound just like the default non-flourishing run of notes when playing on a Mandoviol. The song never goes anywhere, just sort of twangs and then each flourish ends on that same upwards series of notes. Gah, it's so hard to describe. I love how the song sounds, but I hate how the flourishes don't really let you create a flow for the song. Oh well, hopefully our next new song is more like...a song...not a series of 8 flourishes with slight variances, but the same ending sound. Makes Western's flourishes stick out like a sore thumb.
Master Entertainer, Master Musician
Founding Member - Frag's Puppies
Contact S'ita for bookings
President and CEO - Fragpuppie Enterprises and Uber Instruments
Coronet, Corellia, Chilastra
It's lag of some sort. My belief is that it is a combination of things. I'll have to experiment some to check this theory.
My theory of causes:
- The client waits until the last flourish finishes before starting the next. This effects sw1, sw2, and sw3 because they have some flourishes that run over.
- There is some delay starting the sound clip for the flourish. Either in how the library handles timing, or delay loading it off disk. It seems worse when you switch to a new song. Get a full band and do a /changeband, and at least on my computer some instruments come in "late" for the first flourish.
- The more musicians you have, the more sound clips have to be started. This includes duplicate instruments, as it will mix the sounds.
- It's also having to start an animation along with the sound. Even if you don't see it happen, the client "tries" to start it.
- Combine the above, and if one flourish starts 1/64th beat late, for example, you will have 1/64th beat of silence for all other instruments. If you have a fast computer/drive with lots of RAM it will be less noticible than a slow computer/drive with less RAM.
I didn't include network lag, because the server doesn't coordinate flourishes. The clients are 100% responsible for playing flourishes, the server merely sends them as they come. If you spam 5 flourishes, everyone gets those 5 flourishes instantly. This can be seen by listening on two different computers. You can get things in a state where one plays two flourishes back to back, while the other plays a base flourish between.
was going to say that too...again..arg! pfft to you & your T1! Hope you're having a grand vacation!
NewJedi wrote:
Tiaga's analysis makes sense to me. I have a very fast connection, hard disk, and 2G of RAM, and I generally see fewer lag-related problems than other people in SWG. And I rarely notice the loop problem.
My suspicion is that the gap is partly due to the way that DirectSound works. You have to check on playback status explicitly; it doesn't notify the application when playback is completed. With my standalone app, it dedicates most of a thread to checking on DirectSound status (in 100ms intervals, actually). In the context of the game client, that same thread probably performs many other functions so their checks are probably more than 100ms apart on occassion--or, they set a timer for when the sound clip is supposed to be finished so they don't have to check status at all, and assume the timer will be accurate.
Why is it there? I dunno. Should it be on the tip-top of the list of things to fix? No, because most players are either not affected by it or don't notice it, and the ones that do are probably used to the same thing happening in RL, so they can deal with it until more important issues are fixed.
Of course, this is just my opinion, your milage may vary.
Pendarin wrote:
You can perform the same test by using this. It uses the same source files as the game client in much the same way (on-the-fly rendering).
My suspicion is that the gap is partly due to the way that DirectSound works. You have to check on playback status explicitly; it doesn't notify the application when playback is completed. With my standalone app, it dedicates most of a thread to checking on DirectSound status (in 100ms intervals, actually). In the context of the game client, that same thread probably performs many other functions so their checks are probably more than 100ms apart on occassion--or, they set a timer for when the sound clip is supposed to be finished so they don't have to check status at all, and assume the timer will be accurate.
Interesting information. I'm not familiar with DirectX programming of any sort so the issue of timing the sound clips never occurred to me. It certainly does seem to be effected by load. I have a little program that pieces together songs out of the game files, but it produces a new sound file instead of doing live playback. For obvious reasons, the new sound file has the flourishes timed perfectly, down to the sample.