Announcement: MapTool 1.5.6 Released

New build announcements plus site news and changes.

Moderators: Azhrei, Craig, dorpond, trevor

Merudo
Giant
Posts: 228
Joined: Wed Jun 05, 2019 7:06 am

Re: Announcement: MapTool 1.5.6 Released

Post by Merudo »

Full Bleed wrote:
Thu Oct 17, 2019 2:59 am
I have an issue with sound.

I was adding a step sound effect to my movement pad to trigger on each step and I noticed that the sound wasn't triggering each time. I played around with various things but I think there is a broader issue.
playStream is not intended for short sounds that are to be played in quick succession. I'll work on a "playClip" function to handle these.
Phergus wrote:
Thu Oct 17, 2019 9:48 am
All audio is cached in memory. It stays in memory unless you use stopStream(). This isn't really streaming. If you play a file off the net it will buffer the whole thing in memory.
Actually, playStream keeps the file in memory but in a compressed state, and only decompress the file as is needed. This saves up a lot of memory.

Compare this to AudioClips, which keep the entire decompressed file in memory.

Phergus
Deity
Posts: 7108
Joined: Fri May 12, 2006 8:56 pm
Location: Middle of Nowhere, NM
Contact:

Re: Announcement: MapTool 1.5.6 Released

Post by Phergus »

Merudo wrote:
Thu Oct 17, 2019 5:02 pm
Actually, playStream keeps the file in memory but in a compressed state, and only decompress the file as is needed. This saves up a lot of memory.
I always assumed it left the mp3 files compressed. No reason not to. Didn't know that it was compressing the wav files into memory. That's a good thing.
Merudo wrote:
Thu Oct 17, 2019 5:02 pm
Compare this to AudioClips, which keep the entire decompressed file in memory.
I guess for short, typically low-fidelity, fx sounds not a big deal.

User avatar
Full Bleed
Demigod
Posts: 4445
Joined: Sun Feb 25, 2007 11:53 am
Location: MD
Contact:

Re: Announcement: MapTool 1.5.6 Released

Post by Full Bleed »

Merudo wrote:
Thu Oct 17, 2019 5:02 pm
playStream is not intended for short sounds that are to be played in quick succession. I'll work on a "playClip" function to handle these.
Thanks for working on this. I've been following what's going on in github... so, hopefully, that takes care of this issue. :)

That said, I was pretty surprised when it dawned on me (after seeing the new execFunction) that playStream wasn't actually playing to all connected clients by default. I got to wondering if I was, somehow, in the minority when anticipating that the vast majority of sounds that I'll be triggering will play to all connected clients?

Unless execFunction (which we don't have yet) is somehow the superior method, I really wish that the playStream an playClip functions had a target (with a default set to ALL.)

And if we're to tell what sounds are playing , shouldn't we be able to build a sound status manager using getSoundProperties that tells us that? Without sound targets we won't really know what's going on with stuff we've triggered.


Lastly (and unrelated to the above), has there been any discussion about having object based sound with proximity volume? I suspect that it would be similar to light sources and might even incorporate "hearing" types much like vision types (i.e. a deaf/silenced player wouldn't hear anything from a sound source while someone with exceptional hearing might be able to hear something from twice as far away, etc.)
Last edited by Full Bleed on Wed Oct 23, 2019 4:03 am, edited 2 times in total.
Maptool is the Millennium Falcon of VTT's -- "She may not look like much, but she's got it where it counts."

User avatar
Azhrei
Site Admin
Posts: 12050
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: Announcement: MapTool 1.5.6 Released

Post by Azhrei »

Full Bleed wrote:
Wed Oct 23, 2019 12:32 am
Lastly (and unrelated to the above), has there been any discussion about having object based sound with proximity volume? I suspect that it would be similar to light sources and might even incorporate "hearing" types much like vision types (i.e. a deaf/silenced player wouldn't heard anything from a sound source while someone with exceptional hearing might be able to hear something from twice as far away, etc.)
I haven't really been listening in on the sound discussions (too much traffic), but because the volume is a parameter, it seems a macro could pretty easily calculate the distance and set the volume however it liked.

But be aware that sound support is still very alpha level stuff. From what I've been seeing, the API has changed twice already and who knows if it'll change again. The point being, don't get too caught up in how it works today because it can work differently tomorrow. When we think it's settled down a bit, you can bet the Announcement post will say that clearly. :)

Phergus
Deity
Posts: 7108
Joined: Fri May 12, 2006 8:56 pm
Location: Middle of Nowhere, NM
Contact:

Re: Announcement: MapTool 1.5.6 Released

Post by Phergus »

Full Bleed wrote:
Wed Oct 23, 2019 12:32 am
That said, I was pretty surprised when it dawned on me (after seeing the new execFunction) that playStream wasn't actually playing to all connected clients by default.
Currently audio streams/clips aren't assets or part of a campaign file (except as URIs in macro parameters) and so there isn't a method to transfer them to clients. For web-sourced audio this isn't as much of an issue and using execLink/execFunction to play them on clients will work for now.
Unless execFunction (which we don't have yet) is somehow the superior method, I really wish that the playStream an playClip functions had a target (with a default set to ALL.)
That functionality will come at some point after audio files/sources are made campaign assets I would expect.
And if we're to tell what sounds are playing , shouldn't we be able to build a sound status manager using getSoundProperties that tells us that? Without sound targets we won't really know what's going on with stuff we've triggered.
Actually knowing the status of playback on player clients is most likely a ways off still.
Lastly (and unrelated to the above), has there been any discussion about having object based sound with proximity volume? I suspect that it would be similar to light sources and might even incorporate "hearing" types much like vision types (i.e. a deaf/silenced player wouldn't hear anything from a sound source while someone with exceptional hearing might be able to hear something from twice as far away, etc.)
It's been discussed in the past but would also be reliant upon more extensive underpinnings that are yet to be done.

As Azhrei noted, this is all pretty alpha still.

User avatar
Full Bleed
Demigod
Posts: 4445
Joined: Sun Feb 25, 2007 11:53 am
Location: MD
Contact:

Re: Announcement: MapTool 1.5.6 Released

Post by Full Bleed »

Phergus wrote:
Wed Oct 23, 2019 9:37 am
Full Bleed wrote:
Wed Oct 23, 2019 12:32 am
That said, I was pretty surprised when it dawned on me (after seeing the new execFunction) that playStream wasn't actually playing to all connected clients by default.
Currently audio streams/clips aren't assets or part of a campaign file (except as URIs in macro parameters) and so there isn't a method to transfer them to clients. For web-sourced audio this isn't as much of an issue and using execLink/execFunction to play them on clients will work for now.
I'm not sure how these two issues are connected. What does the method of targeting sounds and default playStream/Clip targeting have to do with whether or not the assets are part of the campaign file?
Unless execFunction (which we don't have yet) is somehow the superior method, I really wish that the playStream an playClip functions had a target (with a default set to ALL.)
That functionality will come at some point after audio files/sources are made campaign assets I would expect.
Honestly, attaching sounds to my campaign file is about the last thing I want to do. I don't want to blow up my campaign file size, increasing load/save and backup times, etc. Streaming from local or URL sources suits me just fine. I just wanted to open a discussion of how people are using sounds and what default behaviour should be. Should people be jumping through the hoops of using execFunction to send sounds to everyone connected when the majority of sounds played will be for everyone connected and when it seems like it would be "simpler" to just add targeting to the functions that play the sounds?
And if we're to tell what sounds are playing , shouldn't we be able to build a sound status manager using getSoundProperties that tells us that? Without sound targets we won't really know what's going on with stuff we've triggered.
Actually knowing the status of playback on player clients is most likely a ways off still.
If playStream/Clip had targets as part of the function then why couldn't you include the target in getSoundProperties so that you could know where a triggered sound was sent (and might still be playing)?
Maptool is the Millennium Falcon of VTT's -- "She may not look like much, but she's got it where it counts."

Merudo
Giant
Posts: 228
Joined: Wed Jun 05, 2019 7:06 am

Re: Announcement: MapTool 1.5.6 Released

Post by Merudo »

Full Bleed wrote:
Wed Oct 23, 2019 2:56 pm
I just wanted to open a discussion of how people are using sounds and what default behaviour should be. Should people be jumping through the hoops of using execFunction to send sounds to everyone connected when the majority of sounds played will be for everyone connected and when it seems like it would be "simpler" to just add targeting to the functions that play the sounds?
I proposed to add a target parameter to playStream but people didn't seem interested.

User avatar
Full Bleed
Demigod
Posts: 4445
Joined: Sun Feb 25, 2007 11:53 am
Location: MD
Contact:

Re: Announcement: MapTool 1.5.6 Released

Post by Full Bleed »

Merudo wrote:
Wed Oct 23, 2019 5:50 pm
I proposed to add a target parameter to playStream but people didn't seem interested.
Well, I know *I'm* interested! I think you needed a larger sample size! ;)

I don't think it diminishes the usefulness of having execFunction (so kudos for adding that)... but I do think it makes a lot more sense to have it in function.
Maptool is the Millennium Falcon of VTT's -- "She may not look like much, but she's got it where it counts."

Phergus
Deity
Posts: 7108
Joined: Fri May 12, 2006 8:56 pm
Location: Middle of Nowhere, NM
Contact:

Re: Announcement: MapTool 1.5.6 Released

Post by Phergus »

Full Bleed wrote:
Wed Oct 23, 2019 2:56 pm
If playStream/Clip had targets as part of the function then why couldn't you include the target in getSoundProperties so that you could know where a triggered sound was sent (and might still be playing)?
I'm not sure why you aren't getting this but these audio functions are strictly local playback. While you can put your audio files on dropbox and, whether through using something like Wiki: execFunction() or a target parameter to Wiki: playStream(), each client is handling its own playback. There is nothing in place to keep track of what's playing where or whether there were errors retrieving the file or if the player client even allows audio playback. There is a whole lot missing before just adding a parameter to Wiki: playStream() will fix it.
Merudo wrote:
Wed Oct 23, 2019 5:50 pm
I proposed to add a target parameter to playStream but people didn't seem interested.
Not a very accurate characterization. You made that comment on the issue for Wiki: execFunction(). No idea if anyone other than you and AliasMask saw it but he said that playing audio wasn't the only reason to ask for Wiki: execFunction(). As it wasn't the right place to have a conversation about that, I ignored it. If you wanted to propose it and get a discussion on it then you should have done so in one of the existing audio related issues or open a new one.

User avatar
Azhrei
Site Admin
Posts: 12050
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: Announcement: MapTool 1.5.6 Released

Post by Azhrei »

Phergus wrote:
Wed Oct 23, 2019 6:50 pm
I'm not sure why you aren't getting this but these audio functions are strictly local playback.
Maybe it would help to think of it like an app on your phone that can play local media, or if you give it a URL, it can download it and play it. (VLC is like this, although it'll start playing immediately and not wait for a full download.)

Now suppose I write an app that can control VLC remotely.

I would either need to give your VLC a URL, or give it the actual data. In the case of MT, we could use some kind of custom URI scheme (maybe "asset://" could be made to work such that it grabs a file from the server and streams it to the client?) or embed the data in the campaign so it's delivered to the client as needed. Either solution requires a fair amount of work, so this won't happen until we have a better idea of how sound feature is going to be used by GMs.

(I'm not sure the current asset scheme will deliver the data in pieces as required by an audio stream.)

User avatar
Full Bleed
Demigod
Posts: 4445
Joined: Sun Feb 25, 2007 11:53 am
Location: MD
Contact:

Re: Announcement: MapTool 1.5.6 Released

Post by Full Bleed »

Phergus wrote:
Wed Oct 23, 2019 6:50 pm
Full Bleed wrote:
Wed Oct 23, 2019 2:56 pm
If playStream/Clip had targets as part of the function then why couldn't you include the target in getSoundProperties so that you could know where a triggered sound was sent (and might still be playing)?
I'm not sure why you aren't getting this but these audio functions are strictly local playback.
First, I get it. I just don't believe the incoming execFunction method of targeting these functions to trigger on clients is the most user friendly or intuitive way to do it.

Second, I'll track who I trigger these functions on myself for output in my sound management frame. I just think the functions could have made this a lot simpler.
Maptool is the Millennium Falcon of VTT's -- "She may not look like much, but she's got it where it counts."

Post Reply

Return to “Announcements”