[RESOURCE] GUI Soundscape Editor

Cynick

L4: Comfortable Member
Feb 7, 2010
153
284
[RESOURCE] GUI Soundscape Editor *UPDATED 4/4*

So after messing around with soundscape files in source, and finding how hard they are to write/debug/find the right sounds for, I decided to make a program to solve all those problems (hopefully). After working out the bugs for several weeks, I finally have something that works. So, without further ado, presenting:

Soundscape Editor 1.8 (Last Updated April 4 2010)

Creative name, right? My goal with this was to make editing soundscapes much easier, so that it is easy to find the right sounds for your map.

Features:
  • Create, Edit, Save soundscape files for any Valve source engine game!
  • Load Valve's official soundscapes (need to be extracted from GCF first)
  • *NEW* Now Fully Supports L4D and L4D2 Official Soundscapes
  • Edit soundscapes with a FULL GUI--no more scripting necessary!
  • Built in GCF Sound Browser/Previewer
  • Ability to find and preview sounds from disk (e.g. in the <game>\sound folder in steamapps)
  • Integrated soundscape previewer (preview soundscapes without booting up the game!) (requires DirectX 9)
  • Games that mount multiple GCFs will now have the sounds from ALL GCF's displayed in the GCF browser
  • Boot the game to a specific map with soundscape debugging enabled--directly from the editor! (for testing purposes)
  • 100% Free (requires a source engine game to write files for, obviously)

Everything you create in this program is license-free for all purposes.

Screenshots:
Soundscape Previewer
soundscape_previewer.png

The default interface:
interface.png

The interface showing off the official 2Fort soundscape files
interface_2fort.png

interface_2fort02.png

The GCF Browser
gcfbrowser.png


A simple test map (the underlying soundscape file was generated by this program)
testmap.png


Download Link: Download From DropBox

Full release notes for 1.8:
Code:
What's changed in 1.8:
  - BUGFIXES:
      - Fixed crash on loading a file with a null keyvalue (Editor and Debugger)
  - NEW FEATURES:
      - Fully supports loading of L4D and L4D2 Soundscape files
  - MINOR CHANGES:
      - Combined the "DSP Settings" and "Soundmixer" entries in the rule list into a "(Settings)" entry which also contains new settings when mapping for L4D/L4D2

Feel free to link to the file download elsewhere, but please do not rehost the file. Thanks

Thanks for reading, please post comments, problems, critiques or suggestions below.:cool1:
 
Last edited:

Penguin

Clinically Diagnosed with Small Mapper's Syndrome
aa
May 21, 2009
2,039
1,484
Very cool stuff.
 

Tapp

L10: Glamorous Member
Jan 26, 2009
776
215
I like, I like. I'm taking dibs on making a soundscape made entirely out of annoying character phrases and weapon sounds.
 

Ida

deer
aa
Jan 6, 2008
2,289
1,372
Thank you so much for this! You've done a great job, the program is easy to use and I'm already far along with making my soundscape. However, I have a problem.

I've created a soundscape and added a PlayRandom rule based off one of your screenshots. There's a problem with setting the volume. Whatever I set it to is automatically multiplied by 100 when I go back to this rule after viewing another, so the program says it's invalid and resets the value to 0. Interestingly, this doesn't apply when I set volume to 100 (that works perfectly), and when I set it to 1 it automatically reads it as a range between 0 and 100.

EDIT: This appears easy to edit actually, so it's no biggie, but probably worth looking into anyway.
 
Last edited:

Cynick

L4: Comfortable Member
Feb 7, 2010
153
284
Thanks, I'll add that to the of bugs that need fixing. (the list is pretty small, so I'll have a bugfix release out soon, possibly tonight, but it'll definitely be out by friday night).

EDIT: Just to clarify, you're entering a whole-number value into the volume box, correct? The volume boxes take a whole number (0-100), unlike the actual soundscape engine. (This value is automatically put in the correct range when saving though, so you don't have to worry about that.)
 
Last edited:

Firest0rm

L4: Comfortable Member
Sep 27, 2009
171
33
i am having an absurdly large amount of trouble renaming the subscapes, attempting to do so gives me an error, giving me the choice to continue or quit. Continue doesn't work because the program kind of freezes, and quit gives me another error and sets me in an error loop. the only way i can rename a subscape now is to rename it, click quit on the error, tell it to save, and kill the process

other than that, great program! you should make the filtering better though, because it takes my computer about 10 seconds to filter whatever i type in (and i don't have a horrible computer), and also you should make it so i can copy-paste, when i use similar sounds i don't like having to wait 10 seconds to filter for them, and i don't like completely remaking my large-ish playrandoms as i move them across subscapes

all of this is on the l4d2 version, so i don't know if these things happen to everyone

edit: also, i cannot preview both my subscapes at once, which is extremely irritating
 
Last edited:

Cynick

L4: Comfortable Member
Feb 7, 2010
153
284
i am having an absurdly large amount of trouble renaming the subscapes, attempting to do so gives me an error, giving me the choice to continue or quit. Continue doesn't work because the program kind of freezes, and quit gives me another error and sets me in an error loop. the only way i can rename a subscape now is to rename it, click quit on the error, tell it to save, and kill the process

other than that, great program! you should make the filtering better though, because it takes my computer about 10 seconds to filter whatever i type in (and i don't have a horrible computer), and also you should make it so i can copy-paste, when i use similar sounds i don't like having to wait 10 seconds to filter for them, and i don't like completely remaking my large-ish playrandoms as i move them across subscapes

all of this is on the l4d2 version, so i don't know if these things happen to everyone

edit: also, i cannot preview both my subscapes at once, which is extremely irritating

Dammit, someone found the bug I was hoping nobody would notice before I released a bugfix. :facepalm:

And in-game, only one subscape can play at a time, so I didn't think there was any need for the ability to preview two. And if one subscape references another (with PlaySoundscape within the same file), both scapes will play.

Look for a bugfix soon (today or tomorrow)

After the bugfix release, I'll start working on the ability to copy/paste, import soundscapes from a file, and boot up a game from the editor to a certain map (for testing).
 
Last edited:

Firest0rm

L4: Comfortable Member
Sep 27, 2009
171
33
i didn't know that only one subscape could play at a time, silly me. well whatever, i ended up killing those birds anyway, so no big loss
 

Cynick

L4: Comfortable Member
Feb 7, 2010
153
284
BUGFIX TIEM. Ahem. 1.5.3 just released, nothing new really, but get it anyway because it fixes a few major bugs. Full notes:

The Readme. lol said:
What's changed in 1.5.3:
- BUGFIXES:
- Fixed duplicate sound names crashing the debugger.
- Fixed multiple issues with the "Edit Soundscape Name" button.
- Fixed a crash caused by not selecting a file in the GCF Browser and hitting OK
- NEW FEATURES:
- Added a report bug/leave comment feature, this links to the TF2M topic.
- CHANGES:
- Improved GCF Filtering
- OTHER:
- Added a thanks link to Tf2maps.net in the readme and about box.

What to expect in the future:
- Copy/Paste of soundscapes and rules
- Launch game to specific map from the editor
- Ability to import soundscapes from a file

The "Improved filtering" bit should just make filtering a lot faster, as it only refreshes the filter when you're done typing versus whenever you type a letter into the filter box
 
Last edited:

Cynick

L4: Comfortable Member
Feb 7, 2010
153
284
Alright alright, so after much fussing around with the code, 1.7 is finally here. (Copy/Pasting data structures in C# is needlessly complicated). A couple bugfixes and a bunch of new features (major ones highlighted):

Code:
What's changed in 1.7:
  - BUGFIXES:
      - Fixed several crashes relating to the delete buttons
  - NEW FEATURES:
      - [COLOR="DarkRed"]Added option to launch current game to a specific map and (optionally) soundscape debugging enabled (for testing purposes).[/COLOR]
      - Added a "Check for Updates" feature.  Will now check for updates on startup and display a small non-intrusive icon at the bottom of the window
      - [COLOR="DarkRed"]Added Copy/Paste for subscapes/rules[/COLOR]
      - Added ability to import subscapes from an existing soundscape file
  - MINOR CHANGES:
      - The editor will now remember the current game between startups (it will be selected by default in the "Select Game" dialog)

As always: comments, problems/bugs, and feature suggestions are welcome!
 

Cynick

L4: Comfortable Member
Feb 7, 2010
153
284
I may release the source at a later time. I at least want to get the official Valve L4D/L4D2 soundscapes to load up in the editor first.

Which, on that note, is one thing I'll probably be working on. I've done research into the problem with the L4D(2) soundscape format changes, and these two values seem to be the problem. I haven't seen them in any source engine soundscapes except L4D.

- FadeTime
- Origin

I poked around on google, and to my surprise, I didn't find reference to either of these anywhere. So I did a little of my own research in a test map with a simple soundscape. I made the best assumptions I could about the function of these:

- FadeTime (seconds): Controls the time period the soundscape takes to fade in (note:as far as i can tell, this doesn't affect fade out time). Basically, a value of 10 would make the subscape in question fade in from silent to full volume over the course of 10 seconds. Only some Valve soundscapes specify this value, when they do, its typically .5 (half a second). Usually specified directly after the "dsp" setting.

- Origin (XYZ position): Seems to be a way to force a sound to play from a specific position in the map (much like soundscape positions), except the position is specified directly in the soundscape file. This method doesn't limit you to the 8 locations that can be specified with the "position" keyvalue and info_target, however it does limit you in that the sound will always play from a specific position in the map, impairing re-use.

Code:
"test.newl4dstuff" 
{
    "dsp" "1"
    [COLOR="DarkRed"]"fadetime" ".5"[/COLOR]

    "PlayLooping"
    {
        "wave" "ambient/bla.wav"
        "volume" "1"
        [COLOR="DarkRed"]"origin" "50, 70, 80.5;"[/COLOR]  //Note the semicolon and commas
    }
}

In hindsight, this probably should have been posted on a L4D Mapping site, but whatever. Maybe someone'll find it useful/interesting.