No integration for FoundryVTT?

I was reading on a FoundryVTT third party module discord discussion that there will be no open API to integrate sounds into FoundryVTT. Ever. This is very disappointing for me as a customer, because I cannot play sounds on cue in a VTT environment. I have plenty of other things to focus on already. Now if sounds could be added as a looping effect on the map itself and players heard it automatically as they stepped closer, or I could make a little macro to have sounds associated with a trigger, like a trap…

But from what I understand, this in not possible as this will reveal protected source code. Is this correct?
I, personally, have no need of an additional application to run in another tab and need to direct players to connect to as there are cheaper options that achieve the same clunky effect.

1 Like

Thanks for your comments. It sounds like we need to clarify our position on 3rd party integrations.

We are and have been encouraging and supportive of 3rd party integrations, developed by our community or the communities of 3rd party apps like Foundry VTT.

That is why we implemented the 3rd party API in the genre players, and allow access to the REST and websocket APIs for the online player master interface, and allow the downloading of remote control links in a CSV file from the online player, ready for import into 3rd party systems. Much of this was implemented in direct response to requests by the developers of 3rd party integrations.

All of this was intended to support 3rd parties wanting to seamlessly control Syrinscape from directly within a 3rd party system. This has been done successfully in several Fantasy Grounds extensions, and from what I saw also at least two Foundry VTT community members who are working on integrations. This is something we are excited to see and would love to support.

What we have not built support for, and are not currently considering, and what was recently requested, is access to the online player app source code, so that the audio engine can be completely recreated directly within the Foundry VTT extension.

The player app contains the audio engine that is the heart of Syrinscape. It is what transforms a list of samples into a dynamic non-repeating soundscape.

As I’m sure you can appreciate, this type of deep integration could not happen without first addressing a number of significant issues, including but not limited to:

  • Protection of our intellectual property, both the audio engine itself and access to the massive library of original content that we have created.

  • Audio consistency. Our content would need to sound the same. We cannot simply provide a list of sample URLs and a playlist to any audio player. Samples are positioned dynamically and move in 3D space, effects are applied, and we do make changes to the data format from time to time.

  • Development capacity. We already support 4 player apps (3 genres plus online) on 5 platforms. Given the aforementioned issues, any new player app really would need to be the exact same codebase, and tied into our release process.

  • Business model. A LOT of effort (time and money spent) over many years has gone into creating our apps, making remote online play possible, allowing users to create their own soundsets, and creating a HUGE library of original content.

I’m sure you can appreciate this would be no small undertaking, and it is not something we are currently considering given that we have a number of other priorities which are always adjusting in order to best serve all our users.

That said, there ARE still things 3rd parties can do, and things we can do to support them, to make 3rd party integrations more functional and less clunky.

What is possible in the integration itself will depend on the plugin capabilities of the platform being integrated. In this case, Foundry VTT. Some features might need support to be built directly into the Foundry VTT app.

Here are a few ideas:

  • Linking online player devices to accounts could be streamlined and done within Foundry VTT.

  • Foundry VTT could itself download, install and manage the running of the online player app.

  • We could implement an API to allow remote control of the local online player volume. This is currently the ONLY interactive control in the app that cannot already be adjusted via the online control panel.

With these changes, a near-identical outcome for end users could likely be achieved, without having to re-implement and support a new player app.

The only limitation to the possibilities is that the audio output must come from the Syrinscape online player app.

You definitely would NOT need to have the Syrinscape Online Player App integrated into the VTT software to make this happen. This sort of thing would already be possible with the REST API as currently available.

NOTE: In Fantasy Grounds there are extensions that read the Chat thread and automatically trigger sounds for :spells cast, misses, hits, and critical, the word “fart”, as well as triggers that can start MOODs, ELEMENTs, and OneShots that can be placed in maps. If these triggers could be triggered by Player Token proximity AND/OR have their element volume set by some distance calculation… then all this sort of stuff is possible and sounds fun!

If someone is saying otherwise, it’d be great if there were a pathway to them finding out the truth…

If someone is saying otherwise, it’d be great if there were a pathway to them finding out the truth…

Just chiming in as the original message in the Discord came from me, in which I said:

I have received sad news regarding the Syrinscape module. I am very disappointed to report that the Syrinscape team is not interested in working with anyone? to create a new “player” like we want. They will only support recreating the Master Control Interface, aka the soundboard

I apologize if players misunderstood what I was saying. I have tried to be very consistent in messaging what Syrinscape allows developers to do and not do.
The bulk of the discussion, specifically the “new ‘player’ like we want” comes from players being dissatisfied with the current state of the Online Player in terms of setup and reliability.

I have noted in our Discord that I am capable of triggering Syrinscape sounds(ets) using triggered objects within FoundryVTT. I will move forward in my module, with the wonderful assistance of both Ben and Tai to implement that functionality.

I would like to stress to anyone who reads this that Syrinscape has been extremely cooperative and has a most wonderful library of sounds. It is unfair to demand that they open up certain portions of their product. It would be nice if the API were published :wink: but that can be worked around.

In the end, if the API options of Syrinscape do not meet specific requirements of players, then other solutions would need to be considered, but that isn’t necessarily the fault of Syrinscape or its wonderful team of people.

-Eadorin

2 Likes

I imagine it is really difficult thing to integrate into FoundryVTT to allow the dropping of specific sound effects onto localized areas of the VTT (basically, sound tokens with a radius and settings like how they interact with walls), so that when players get close to, say, the Smithy, they start to hear (faintly at first) the sounds of a forge and hammering.

Now I have a subscription, and have maintained it because I used Syrinscape for my IRL games. However, with covid 19, I have not had one of those games in 7 months. It would be amazing to use Syrinscape with foundry for sure, but I get the impression that this is a far fetched idea.

I really appreciate the response to this message and do not want to spread misinformation, so I apologise of I misunderstood what the technical issues are that obstruct the development of the module.

I would like to know if it will be possible to have a specific mood play when a scene is activated, have combat sounds start when the combat tracker is started, and be able to link individual sounds from a sound pad onto my maps and tokens so I don’t have to manually run the sound effects.

Thank you for your time and consideration.

Extremely easy. Already implemented and already used frequently in Fantasy Grounds and a couple of other VTTs. :slight_smile: :smiley:

See this from me just above. :slight_smile:

Triggering sounds in Syrinscape from a VTT is not difficult at all as has been discussed.

The auto triggering of sounds really depends on the capabilities of the VTT. What types of events the VTT allows you to trigger code on. For example, in Fantasy Grounds, extension authors have access to the content of the chat messages as they are delivered. So its possible to check the chat for specific patterns, and when found, trigger a sound to play. There may be other types of events that the VTT is capable of triggering on such as firing an event when a token is placed in a certain area. Or perhaps an event is fired when a token comes within range of another. In any of those cases, if the VTT is capable of issuing an event for code to run, then you can use that to trigger a sound.

This is an example of how I set it up currently. I have no idea how you would pull it off with Syrinscape.
https://foundryvtt.com/article/ambient-sound/

The article lists out the API references at the bottom of the page.

I see that the api reference has a path field that points to the sound file. How is that path field triggered or executed? If Foundry attempts to read the file and play it via internal processes, then it may not work for what you want, but if it allows you to call URL’s outside of the foundry path, it should be able to be used to trigger syrinscape sounds. The necessary URL’s are in the CSV file.

The sound is triggered when an actor token is moved into range of the radius drawn for the sound. If you see in the video, the closer the actor token is moved to the center of the sound radius, the louder the sound gets. As far as I know, the base settings do not allow for a url to be linked to a sound.

If it doesnt allow a URL or REST call, its unlikely that that method will work. There may need to be some additional development or another structure added that allows for triggering a URL. I dont believe that volume can be changed via the syrinscape URL calls, so that aspect of it seems not possible.