Patch - Looping Sounds

Discussion in 'Objects' started by Raeven, Jul 21, 2016.

  1. Raeven

    Raeven Well-Known Member

    EDIT: These patches were created for LEGACY.
    If the devs decide to use the in our global server, they will do so in an update (ensuring your computer and their server BOTH have the same files.) Please do not install them in your Global Server FreeSO manually.


    In some objects' the "Play Sounds Event" have the loop flag set for sounds that should not loop. For some reason TSO and The Sims ignore the flag and play the sound once (Something in the FWAV itself rather than the object, perhaps?). FreeSO currently respects the Play Sound Event's "loop", however, and loops the sound according. Since the sounds was not looping for Maxis/EA they failed to put a node into the BHAV telling it that it should stop.

    These patches replace the looping Play Sounds Events with one that does not loop.
    DOWNLOAD PATCHES: http://www.woobsha.com/files/FreeSO/#deloop

    Bath tubs - draining sound during do fill and drain
    Most tubs do "stop all sounds", but by the time that kicks in the first loop already started making causing an odd belch at the end. The cheap tub had "stop all sounds" node disabled, causing the loop to go on (and on and...) making the sound-loop problem much more noticeable in that one tub.

    Fireplaces - match_strike and comfort "aaaaah" voice during Start Fire
    - Interesting note: once looping starts the VOX defaults to male even if the Sim is female after the initial/correct Aaah

    Dishwashers - the dishwasher opening (dishw_sopen), closing (dishw_sclose) and the Sim's complainy noise (dishwasher_wash_vox) during clean core
    This patch does NOT repair the looping voice sound during "Repair". One that should be looping (the sound of the dishwasher running) is playing oddly. So this is an improvement but someone might figure out how to improve it further.

    Computers - the typing sound in Repair, Do Research (sometimes), and Look for job. (Just Do Research on the laptop)
    The real fix for this one is to insert a line that "stops all sounds" and this probably wont work when the client and server don't both have the file. To avoid that issue I didn't patch the computers the proper way, instead I de-looped the sounds. So we are trading the looping noises for some silences (when it should not be silent). Not exactly graceful but I figured it is preferable
    Last edited: Mar 7, 2017
  2. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    Looping is an unusual case. Sometimes it's obvious that a sound's "loop" flag should be set, but in other cases it is set erroneously. It's likely something like - basic sounds respect the loop flag (ones without HIT subroutines), and the fully HIT scripted sounds don't.
    Blayer98 likes this.
  3. Becky with the good hair

    Becky with the good hair Administrator Staff Member Moderator

    Thanks for these patches!! I'm using them all.
    Blayer98 likes this.
  4. Alessandro Needs A Server

    Alessandro Needs A Server Well-Known Member

    Omg yes it worked thanks a lot
    Blayer98 likes this.
  5. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    Note that some patches will change the game function, and may cause desyncs if the server doesn't have the same patch. Patches to sound primitives like this are not an issue, since sound is not synchronised over the internet, but graphical patches like the sink might cause a few more desyncs than usual (and the broken graphic will return the next time you resync). Just be careful!
    Blayer98 and Raeven like this.
  6. Raeven

    Raeven Well-Known Member

    Excellent info! Thanks, Rhys
    I've quoted you in the sink's thread. I suppose all of these threads should have each had a reminder that the server and client need matching files. I'd forgotten about including that since I've been tinkering in a local game.

    ----------------Also a third patch ---------------
    EDIT: These patches were created for LEGACY.
    If the devs decide to use the in our global server, they will do so in an update (ensuring your computer and their server BOTH have the same files.) Please do not install them in your Global Server FreeSO manually.
    Dishwashers - the dishwasher opening (dishw_sopen), closing (dishw_sclose) and the Sim's complainy noise (dishwasher_wash_vox) during clean core
    http://www.woobsha.com/files/FreeSO/dishwashers_patch(de-loop).zip
    caveat (of sorts): I delayed uploading this one because after replacing the 3 mis-looping sounds, I found the one that should be looping (the sound of the dishwasher running) was playing oddly. I assumed I'd broken something. But it turns out it was already playing that way underneath all of the other sounds. So this is an improvement but someone might figure out how to improve it further

    (The first post has been edited to include this patch)
    Last edited: Mar 7, 2017
    JWofles likes this.
  7. Becky with the good hair

    Becky with the good hair Administrator Staff Member Moderator

    There's also a computer sound loop glitch with the typing sound, will you ever think about patching it? I'd like to be loop-free :D
  8. Raeven

    Raeven Well-Known Member

    Happily! But this case is a bit different from the first three. In those the sound was never meant to loop in the first place and I replaced one node (play sound+loop flag) with another node (just play sound). This is apparently something your computer and the server you are on don't bother checking with each other about so it can work fine for you.

    The typing sound is supposed to loop. This time the problem is not knowing when to stop. So adding that instruction in seems to be required and adding something new in WILL be something your computer and the server need to agree on (if I am understand Rhys correctly)
    Sim likes this.
  9. Raeven

    Raeven Well-Known Member

    @Becky with the good hair
    EDIT: These patches were created for LEGACY.
    If the devs decide to use the in our global server, they will do so in an update (ensuring your computer and their server BOTH have the same files.) Please do not install them in your Global Server FreeSO manually.
    I had a hard time recreating the looping noise (on the desktop computers), so I'm not 100% sure this will fix the issue - give it a test and see. The zip includes a patch for the laptop as well as the desktop computers. (I'll add it to the first post after we're sure it's fixing all of the looping)
    http://www.woobsha.com/files/FreeSO/computers_patch(de-loop).zip

    I mentioned in the previous post that the real fix for this one is to insert a line that "stops all sounds" and that this might work out when the client and server don't both have the file. To avoid that issue I didn't patch the computers the proper way, instead I de-looped the sounds. So we are trading the looping noises for some silences (when it should not be silent). Not exactly graceful but I figured it is preferable

    Repair, Do Research, and Look for job are the interactions that these patches change. (Just Do Research on the laptop)
    Last edited: Mar 7, 2017
  10. Alessandro Needs A Server

    Alessandro Needs A Server Well-Known Member

  11. Raeven

    Raeven Well-Known Member

    Interesting. Not on my end.

    Re-pasting the links here didn't work out. You can copy the visible address to a browser to download, though.

    Perhaps there is an anti-spam measure that balks at that many links in one post? Sounds unlikely, but the 404 page is a forum page rather than mine, and the two links in separate posts further down in the thread work just fine.

    I can make a webpage with the links if the forum's redirect page is balking at the fact that the links are directly to the files. Or I can upload the files. I didn't want to clutter the forum with little temporary files but they are tiny. Someone just needs to let me know which is considered preferable at this forum

    EDIT: made the webpage:
    http://www.woobsha.com/files/FreeSO/
    Last edited: Aug 23, 2016
  12. daleylife

    daleylife Member

    Where do we place these patches?
  13. Raeven

    Raeven Well-Known Member

    patches get placed in TSOClient\Content\Patch\User

    EDIT: THOSE ARE OUTDATED INSTRUCTIONS!
    They get installed in the Content\Patch\User of your LEGACY FreeSO install. Do NOT plate them in your TSO folders
    These patches were created for LEGACY.
    If the devs decide to use the in our global server, they will do so in an update (ensuring your computer and their server BOTH have the same files.) Please do not install them in your Global Server FreeSO manually.
    Last edited: Mar 7, 2017
    daleylife likes this.
  14. zero35

    zero35 Active Member

    i want know the looping sounds issues appears in TS1 too?
  15. mrpenguinb

    mrpenguinb Active Member

    It shouldn't, as long as you aren't talking about the "The Sims 1 Port/enhancement" open issue (soon to be a seperate branch) on Github
    zero35 likes this.
  16. Raeven

    Raeven Well-Known Member

    No, the looping sounds problem isn't in TS1
    Somehow TS1 and TSO knew not to loop these sounds despite them being flagged as looping sounds. I imagine the conflicting information is embedded in the animations themselves. These patches are not permanent fixes and wont be incorporated into FreeSO; Rhys will "teach" FreeSO how to make the same distinction and when he does these patches will no longer be of any use at all. These are just to make playing a little more pleasant until that time.

    (That also applies to the DJ booth and the sinks' soap suds patch. All of those stem from the same little issue)
    zero35 and mrpenguinb like this.
  17. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    Thing is, I've added a few tells to the engine to detect when a sound should not loop, but there are still cases where it is set wrong. Here's all of the variables in the equation:

    • Whether the "loop" instruction is called (rarely)
    • Whether SimAntics flags the sound as looping
    • Whether the "set_loop" instruction is called (if it is not then simantics loop is ignored)
    • Whether the track associated with the subroutine has "looped" nonzero (no idea what this does, it always seems to be zero)
    • Special cases where the event name is all wrong, there are no links within the sound event file, and a match to an existing subroutine has to be hard coded (piano sounds)
    I think Maxis completely screwed this up for TSO. They changed the format for everything and left lots of dead and incorrect references, so I can see them going down hacky paths to fix things instead of doing it right.
    Nahuel3d, Raeven and zero35 like this.

Share This Page