• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Custom Soundsets

Status
Not open for further replies.
Level 8
Joined
Jul 8, 2013
Messages
249
So for a map I'm working on, I want to use custom soundsets. However, I don't intend to make major changes- just replace a few lines out of some soundsets with other internal sounds. (For example, I want to get rid of references to Lordaeron by putting other appropriate sounds responses from the same unit in place of the problem lines).

I've read the guides I can find on custom soundset making, but they seem to assume one is trying to bring in sounds not already in warcraft. Following those guides thus involves the rather silly process of exporting a sound so that I can import it again (wasting significant amounts of filesize). I'm not very experienced with the sound editor so I can't seem to find a better way so far.

Is there a way to replace internal sounds with other internal sounds without wasting file size on importing sounds that are already in the game? (Note, I want to avoid the triggered method of playing sounds when a unit is given certain orders because that doesn't cause the portrait to 'speak')
 
Level 15
Joined
Aug 7, 2013
Messages
1,337
I don't think there's a solution without replacing the default sound files that come in vanilla warcraft 3.

So if you have a sound editor, just download the unit sounds which make references to Lordaeron, etc. and then remove them from each file as appropriate. But these will still be imported sounds unless you go with the first method.

There is another solution which solve both of those problems--you won't need to import any files or even modify them. You would need to somehow convert the unit sounds in game time to speech signals (basically a vector of many real numbers--called formants (F1, F2, etc.) for speech recognition folk)--and then you recognize any values in the speech stream of the sound being played which the the speech recognizer decides is "Lordaeron." The biggest issue I see is I don't know if there's a way to take a sound and process it into its formants from the natives JASS gives us. If that's possible, then you could do that. But obviously it would have a serious amount of overhead, since you're putting a speech recognition system in your map, essentially.

Also, if there is a way to read off what line a unit is going to say, you could prevent that or turn off sound during that line. Again you would need a native for that or a memory hack. The folks at staredit.net are good at that sort of thing (you basically cause overflows so you can read or write any values you want, e.g. know what line the unit will say next) and might have some answers, as I haven't seen anyone talk about making good use of overflows for Warcraft here on the hive.
 
Level 8
Joined
Jul 8, 2013
Messages
249
the sound file are however rather small so it shouldnt cause any issues space wise.

I don't know if I'm doing something wrong, but the sound files for me are quite large. Most are at minimum 40 kb and some are as high as 160 or so. I'm not replacing every sound in any soundset fortunately, but I AM replacing about 4 or 5 each and sometimes more. That's 200 kb per character minimum and with 6 characters makes for a total of 1.2mb. But actually of course significantly more than that since some of the sound files are much larger than 40kb and so on and some characters need more sounds replaced.
 
Status
Not open for further replies.
Top