BlitzKraig/fvtt-SoundBoard

Randomize playback behavior

Closed this issue · 4 comments

Here are some suggestions to enhance the randomization of the otherwise repetitive play back of looped sound effects:

  • The random detune option is awesome; even better would be to allow the detune amount to be individually set for each sound effect, since some sounds need a bit more detuning than others.
  • In addition to detuning, it would be great to have random variation of the playback volume, again with a separate setting for individual sound effects.
  • The delayed loop options is really useful; even better would be to allow a random delay of between x and y seconds on each replay.

Thanks for the feedback!
Copying my reply from Discord for future reference:

Hey, thanks so much, always lovely to hear some positive feedback!

I like the idea of detune-per-sound first off, and I could definitely leverage the new per-sound volume stuff to make this a little easier to add.
I'm thinking I would keep the current settings as a 'global' detune, then add a new tool to bring up a slider (like the volume version) on each sound, allowing the user to override the global. Consider this one as definitely on the to-do list.

The volume-range variation is a nice idea too, though I'll need to have a think about how to handle this in the UI. Definitely worth considering though.

Similar to above, the delay-range would be cool, but UI may be an issue, I'll have a think about that.

On top of all of that, I'm still background-thinking about saving soundscapes and how I'd like that to work. It's something I've been wanting to add for a while, but again the UI is by far the most challenging part for me.

I'll split out the first suggestion into its own ticket, it may be added to the next release.

I'll keep this ticket open to reference the other two suggestions.

Thanks again!

Further feedback from trdischat on Discord:

From a UI perspective, maybe detune, volume, and delay could all be sliders of degree of randomness, the way you currently handle detuning. In that case, each would be the degree of random variation for the base setting. So for example, if the loop delay is set to 30 seconds, a moderate level of delay randomness might yield a delay of between 20 and 45 seconds.

Maybe you could use macros to save soundscapes. For example, you could save each sound effect with its options (looping, delay, volume, detuning) to a line in a macro. If the macro has lines for several sounds, the one macro could effectively build the whole soundscape. Your Soundboard would provide the UI to input the options and write the macros. Then a tab in Soundboard with buttons for your saved Soundboard macros could let you conveniently launch them. Or launch them from the macro bar or a Journal entry. A final twist would be letting you associate a Soundboard macro with a Scene, auto-launching it when activating the Scene.

From a UI perspective, maybe detune, volume, and delay could all be sliders of degree of randomness, the way you currently handle detuning. In that case, each would be the degree of random variation for the base setting. So for example, if the loop delay is set to 30 seconds, a moderate level of delay randomness might yield a delay of between 20 and 45 seconds.

This seems like a fairly simple way to handle 'random' delay - though I think more control may be better. However, this is a nice compromise between control and UI-clutter, and fits in nicely with pre-existing functionality.

Maybe you could use macros to save soundscapes. For example, you could save each sound effect with its options (looping, delay, volume, detuning) to a line in a macro. If the macro has lines for several sounds, the one macro could effectively build the whole soundscape. Your Soundboard would provide the UI to input the options and write the macros. Then a tab in Soundboard with buttons for your saved Soundboard macros could let you conveniently launch them. Or launch them from the macro bar or a Journal entry. A final twist would be letting you associate a Soundboard macro with a Scene, auto-launching it when activating the Scene.

I'm thinking a new tool (surprise surprise) will be the right way to generate a soundscape.
Perhaps the GM sets their soundscape up (loop some things, set some delays etc) then clicks a "Generate Soundscape" tool in the toolbar. SoundBoard can then grab everything that's active, and create a new SoundScape object using the current parameters.

I'll think about this a little more, and maybe try out a small proof-of-concept to see if it's viable.