Create account / Log in

Play Sound control

Suggestions for additional features for the module editor and Vassal engine.

Moderators: uckelman, Tim M

Play Sound control

Postby marktb1961 » October 3rd, 2020, 1:38 pm

It is not possible to put a reliable per-player control into a module because the Play Sound trait executing on one player's machine will send sounds to the other player's machine. The module developer must choose between no control or an on/off control that affects all players within a game session.

It would be nice if the Play Sound trait had associated mute and volume controls on the Preferences "Sound" tab or elsewhere, to control the effect of a Play Sound action on the local player's machine, regardless of whether the Play Sound was actioned from that player's own machine or from another player's machine.

Better, add the sound controls as a default Global Option at module level (this might mean creating a module tab by default as well).

Another method of implementation would be a command button akin to the "server controls" or Zoom buttons.

Workaround: Players will need to use their OS in-built per-application volume control or a third party app if necessary (e.g. MacOS).
Platform used:
Vassal 3.4.10
MacOS Big Sur
iMac (27", mid-2020)
User avatar
marktb1961
 
Posts: 335
Joined: October 4th, 2018, 2:36 pm
Location: Liverpool, England

Re: Play Sound control

Postby Cattlesquat » October 4th, 2020, 11:31 pm

So to clarify, you're hoping for a preference for an individual user to e.g. "Turn All Sounds Off" for all modules?

Brian
User avatar
Cattlesquat
 
Posts: 947
Joined: December 2nd, 2019, 4:57 pm
Location: Baltimore, Maryland, USA

Re: Play Sound control

Postby marktb1961 » October 5th, 2020, 6:43 am

Cattlesquat wrote:So to clarify, you're hoping for a preference for an individual user to e.g. "Turn All Sounds Off" for all modules?

Brian


That would probably be be enough.

The other words were about the further possibilities of volume control and allowing control at the module or trait level.
Platform used:
Vassal 3.4.10
MacOS Big Sur
iMac (27", mid-2020)
User avatar
marktb1961
 
Posts: 335
Joined: October 4th, 2018, 2:36 pm
Location: Liverpool, England

Re: Play Sound control

Postby Cattlesquat » October 5th, 2020, 2:17 pm

Ah, gotcha. I guess having the "off switch" be module-by-module probably makes sense.

Volume control may need to away some more thoroughgoing rework of Vassal sound.
User avatar
Cattlesquat
 
Posts: 947
Joined: December 2nd, 2019, 4:57 pm
Location: Baltimore, Maryland, USA

Re: Play Sound control

Postby uckelman » October 5th, 2020, 2:19 pm

Thus spake Cattlesquat:
> Ah, gotcha. I guess having the "off switch" be module-by-module probably
> makes sense.
>
> Volume control may need to away some more thoroughgoing rework of Vassal
> sound.

We should not add a volume control. Volume control is a thing for the
system to handle. If you're going to put sounds into a module, make
them all fit to be played at the same volume.


--
J.
User avatar
uckelman
Site Admin
 
Posts: 8989
Joined: December 10th, 2007, 9:48 am
Location: Durham, England

Re: Play Sound control

Postby marktb1961 » October 5th, 2020, 3:21 pm

uckelman wrote:Thus spake Cattlesquat:
> Ah, gotcha. I guess having the "off switch" be module-by-module probably
> makes sense.
>
> Volume control may need to away some more thoroughgoing rework of Vassal
> sound.

We should not add a volume control. Volume control is a thing for the
system to handle. If you're going to put sounds into a module, make
them all fit to be played at the same volume.


--
J.


Yes, I agree - I was going to come back and retract the volume part.

A Vassal overall sound on/off, including all modules via the existing "Sounds" tab would be good, I think. Except, "Wakeup", which I think should be controlled separately.

I was also going to suggest an additional property on the "Play Sound" trait whereby a module designer can turn that particular sound trait off/on for the local machine. I think I should check something first. Take the screenshot below....

sound trait.png
sound trait.png (72.93 KiB) Viewed 903 times


Assume Flip.wav makes a sound and silence.mp3 does not.

Assuming that prefSoundOn is a Global Option, set to true on the local machine and false on the remote machine(s).
Does the sound (flip.wav) get played on all machines or only on the local machine ? In short, what does Play Sound transmit to the remote machines; the sound file itself or a signal to action that Play Sound trait on the remote machines ?

Mark
Platform used:
Vassal 3.4.10
MacOS Big Sur
iMac (27", mid-2020)
User avatar
marktb1961
 
Posts: 335
Joined: October 4th, 2018, 2:36 pm
Location: Liverpool, England

Re: Play Sound control

Postby Cattlesquat » October 5th, 2020, 4:47 pm

I do want to jump back in (for V4 planning purposes) and add that pretty much every videogame and similar app provides a "master volume" (some provide more detail than that). I think the "desperately-needed-for-now" thing is the Mute, but a master volume control for modules is something we should in the end provide. Even if the module designer has all the sounds for the module at the same volume level, that doesn't mean they will have the correct relative volume to OTHER apps for which the player doesn't want to have to adjust the SYSTEM volume for (like if getting my Vassal sounds means I have to turn my System volume down which then means my browser doesn't play things at the right volume or whatever, then that's very bad for uptake on using sound in VASSAL).

Brian
User avatar
Cattlesquat
 
Posts: 947
Joined: December 2nd, 2019, 4:57 pm
Location: Baltimore, Maryland, USA

Re: Play Sound control

Postby marktb1961 » October 6th, 2020, 10:30 pm

I had more of a go at understanding the Sound Trait and I can see that an extra control would be needed to achieve what I have in mind beyond an overall Vassal control. i.e. to turn a particular Sound Trait or group of traits on/off at the local machine only - including for incoming sounds.

e.g. existing Play Sound properties are:
SoundClip (expression): sound.mp3
Send to Other Players: (ticked)

to these, add a new property:-
Local Sound On: {expression}


When the "Local Sound On" expression evuates to "true" (default), the Play Sound trait performs as now; sound is played locally and send to other players; likewise when the trait is actioned by other players, it is played on the local machine as well.

When this local control is set false, the SoundClip does not play on the local machine but is still sent to other players. Also, however, when actioned on other players machines, the sound trait does not play on the local machine.

Is this feasible, I wonder ?


Mark
Platform used:
Vassal 3.4.10
MacOS Big Sur
iMac (27", mid-2020)
User avatar
marktb1961
 
Posts: 335
Joined: October 4th, 2018, 2:36 pm
Location: Liverpool, England


Return to Feature Requests

Who is online

Users browsing this forum: No registered users and 2 guests