0
0

Hi!

Here are a few (hopefully easy) things that would make our lives easier:
– User Properties for Event Categories. Just like for Events and Event Groups.
– Enumerated Integer types for User Properties. Let me specify a list of valid values somewhere, and use that list to set the integer value of the user property with a dropdown.
– Would be nice, too, for Programmer Selected Sounds, to have access to information about the Sound Definition (other than just the number of items in it from the callback data).

And now, for the bug report:
– If I build the wavebanks from the example.fdp project using the default settings of MP2 compression, I get an audible pop with some of the files. It’s easy to reproduce with the programmer sounds example. "You have selected the number…(whatever)…well done." One and four sound fine, but two and three have a pop. (This is using 4.19.04.) If I use MP3 or ADPCM compression, it sounds fine.

Thanks!

  • You must to post comments
0
0

Sorry to bump this thread as I’ve started another one related to this.
I think this is exactly what we need but I’m having trouble figuring out your solution.
How do you set an user property on a sound definiton entry and iterate the sound definition entries in the callback to choose the one you want?

  • You must to post comments
0
0

Apologies for the long delay on this issue.

We won’t be adding user properties to sound definitions at this time. Instead, we will provide the waveform names as was initially requested. You will need to pass a special flag to EventSystem::init – FMOD_EVENT_INIT_KEEP_WAVEFORM_NAMES or similar. If this flag is specified, the first parameter to the FMOD_EVENT_CALLBACKTYPE_SOUNDDEF_SELECTINDEX callback will be an FMOD_SOUNDDEF_INFO structure instead of just the sound definition name. This FMOD_SOUNDDEF_INFO structure will contain an array of sound definition entry names.

Hopefully this solution will meet your needs. Let us know if you foresee any problems with it.

  • You must to post comments
0
0

[quote="Adiss":13lawoze]Hi!
Here are a few (hopefully easy) things that would make our lives easier:
– User Properties for Event Categories. Just like for Events and Event Groups.
[/quote:13lawoze]

If you don’t mind me asking, what functionality or behavior are you intended to implement use with these ‘User Properties for Event Categories’?

cheers,
Templar

  • You must to post comments
0
0

Great! That sounds good. Any estimated time when this might be available?

Thanks,
Pedro

  • You must to post comments
0
0

The short version is that it lets us ask questions about an Event without the sound designers having to add a user property to every single Event or Event Group.

For example, if we have two important spoken messages coming through in rapid succession. We want to play them both, but we can’t play them both at once, nor can we interrupt either one. I can deal with that in code, but I need a user property somewhere to ask whether I should do that. One solution would be to put a user property on the Event or the Event Group for every one of these events (which might be across multiple projects), but that would require the sound designers to remember to do that for every single one. Alternatively, we could put all of these messages into the same Category, and put the user property on the Category.

That way, groups of Events across projects can have their a centralized place to ask questions about them, and the sound designers don’t have to remember to add it to every single one. I’m just trying to save my sound designers some headache, and prevent them from potentially making some mistakes that could cause esoteric bugs later on.

I suppose that they could use templates to accomplish this, but I don’t see User Properties as an option for the template. Also, I’m not sure that templates work across projects. Also also, this might be something that they want to add in addition to an existing template.

So, there you have it. Any thoughts?

Thanks!

  • You must to post comments
0
0

We’ll try to get this change in for this week’s release. Otherwise, it’ll be in next week’s release.

  • You must to post comments
0
0

I forgot one other thing that we could use user properties on Event Categories for: pausing flags. There are different ways of pausing the game – one of them will pause all but the ambiences, while the other will fully pause everything. That really is a property of the category, not the Event(s). If I could have a user property on the Event Category, then I could just check the flag on the category, and call EventCategory::setPaused() for any event with the appropriate flag set based on the type of pause that I’m doing.

I can, of course, have an external piece of data that maps Category names to their pause behavior, but that’s another piece of data for the sound designers to maintain, and it would be a lot better just to have that data on the Category itself.

  • You must to post comments
0
0

Hi Ben, has this gone in yet? I can’t seem to find it on the release logs.

Thanks,
Pedro

  • You must to post comments
0
0

Any word on these things? (Even if the word is "no" :)) We’re starting to have to make some final decisions on our project setups, and I’ll need to know whether or not these things are coming.

  • You must to post comments
0
0

Unfortunately this feature didn’t make it into this week’s release. Sorry about that!

I’m aiming to get it in today for next week’s release. Note that since we are doing a branch rollover next week, this feature will have to go into the new development branch (version 4.25.00).

  • You must to post comments
0
0

Hi,

[quote="Adiss":18s1qmru]
– User Properties for Event Categories. Just like for Events and Event Groups.
[/quote:18s1qmru]

We can do this, but unfortunately we have a lot of pending feature requests at the moment, so it won’t be done until at least two months from now.

[quote="Adiss":18s1qmru]
– Enumerated Integer types for User Properties. Let me specify a list of valid values somewhere, and use that list to set the integer value of the user property with a dropdown.
[/quote:18s1qmru]

We can implement this on the Designer side (i.e. you would use the same programmer API to access the property as you do now), but once again, it’s at least two months away.

[quote="Adiss":18s1qmru]
– Would be nice, too, for Programmer Selected Sounds, to have access to information about the Sound Definition (other than just the number of items in it from the callback data).
[/quote:18s1qmru]

What information do you need?

[quote="Adiss":18s1qmru]
And now, for the bug report:
– If I build the wavebanks from the example.fdp project using the default settings of MP2 compression, I get an audible pop with some of the files. It’s easy to reproduce with the programmer sounds example. "You have selected the number…(whatever)…well done." One and four sound fine, but two and three have a pop. (This is using 4.19.04.) If I use MP3 or ADPCM compression, it sounds fine.
[/quote:18s1qmru]

Thanks for the report, we’ll look into it.

Ben

  • You must to post comments
0
0

This feature has been added for this week’s release (version 4.25.00). The relevant revision.txt entry is:
[code:2bmlrjds]+ Event API – Added the FMOD_EVENT_INIT_DETAILED_SOUNDDEF_INFO init flag.
This causes an FMOD_EVENT_SOUNDDEFINFO struct to be passed to
the FMOD_EVENT_CALLBACKTYPE_SOUNDDEF_SELECTINDEX event callback
so it can choose an index based on waveform names.
[/code:2bmlrjds]

  • You must to post comments
0
0

[quote:44fi1pue]What information do you need?[/quote:44fi1pue]

Mostly, what I’m looking for is the names of the sounds in the definition (and how many there are, of course). Maybe also a pointer to the wavebank that each sound is in, and I wouldn’t say no to having access to the volume/pitch settings (though I don’t have an immediate use for anything other than the filenames right now).

Specifically, I want to be able to make a decision based on the name of the sound. We’ve got sounds coming in with material information from the game (for footsteps). I want the sound designers to be able to set up one event with multiple sounds in the definition, and set it as a Programmer Selected sound.

Then, using the material information, I want to do a substring search on the filename to determine which one to play in the ProgrammerSelected callback. For many of the sounds with this feature, the sound designers will want to create one "default" fallback sound for all materials, and then override it only for specific materials.

Thanks for the response! I’m sure we can wait for a couple of months to get these things, but, of course, the sooner the better. :) In the meantime, I shall wait patiently.

It occurs to me, incidentally, that having a boolean user property would be an obvious extension of the enumerated user property type. (Both of which would become integers in code-land, of course.)

Looking forward to these things, and thanks again!

  • You must to post comments
0
0

cool! :)

thanks.

  • You must to post comments
0
0

Not to muddle it up too much, but the problem this design is solving is very similar to a request I made sometime ago: The ability to set an index value on the waves in a sound definition and an accompanying parameter effect that allows the sound designer to filter which waves are allowed to play by changing the index value.

For a physical materials example: In the sound definition, waves are assigned integers for the number of different materials represented in the set. On the event layer, a parameter named Material has an effect called Sound Index and its envelope is mapped to set the index of the playing sound definition that filters which waves are able to be heard. For instance, if there are five waves assigned to index value 1, then when the index is set to 1, these five waves are eligible to play based on the sound definition playback mode of random, sequential, and so forth. If the index changes while a wave is still playing, it is allowed to finish or not based on the maximum spawns the sound definition is allotted.

In this manner, the sound designer can work totally data-driven and there are no run-time callbacks or naming dependencies required. In addition, with the parameter-to-index effect envelope mapping, they can handle situations where some waves are shared among two or more materials and other such edge-cases. The only data dependency is agreeing on the values of the material parameter.

I feel that implementing a solution to the problem in this manner will go further toward eliminating sound designer – programmer dependencies, while also greatly expanding the capabilities of the event system parameter interface. It is a sad truth that not all game projects have a dedicated audio programmer who is willing or able to handle the support to do tricks with programmer selected sound definitions. I salute those who do, and wish there were more of you. :)

thanks for reading
-jason

  • You must to post comments
0
0

[quote="Adiss":1oxaiusu]
Mostly, what I’m looking for is the names of the sounds in the definition (and how many there are, of course). Maybe also a pointer to the wavebank that each sound is in, and I wouldn’t say no to having access to the volume/pitch settings (though I don’t have an immediate use for anything other than the filenames right now).
[/quote:1oxaiusu]

This sounds possible, but we’ll have to discuss it further and get back to you.

[quote="Adiss":1oxaiusu]
Specifically, I want to be able to make a decision based on the name of the sound. We’ve got sounds coming in with material information from the game (for footsteps). I want the sound designers to be able to set up one event with multiple sounds in the definition, and set it as a Programmer Selected sound.

Then, using the material information, I want to do a substring search on the filename to determine which one to play in the ProgrammerSelected callback. For many of the sounds with this feature, the sound designers will want to create one "default" fallback sound for all materials, and then override it only for specific materials.
[/quote:1oxaiusu]

We’ll have to discuss it here before I can commit to implementing it, but it sounds like having user properties on sound definition entries might suit this use case better. What do you think?

Thanks,
Ben

  • You must to post comments
0
0

User properties on sound definition entries works, yeah! Then I can just iterate the sound definition entries in the callback and ask for the right user property. It’ll be especially good if we can get the enumerated types, because then the sound designers will be able to set values like "wood" or "metal" instead of numbers.

  • You must to post comments
Showing 17 results
Your Answer

Please first to submit.