The API Update
Note: Don't mind this is published in September.
Over the past few months I've been finishing up the major parts of the resource and room API. In doing so I've found a few fun bugs. An example is the duplicate sound context bug, which everytime you leave and join a room the previous sound contexts are still around. So when you play on one you play on all of them. It's also never destroyed when you leave. It creates a nice harmony of slightly off sync sounds that peak.
I even had a video setup to show having isolate room contexts but that was swiftly killed by the power of duplicated sounds.
You could create some cool tracks with the bug too. Here is a haphazardly clicked colliding orchestra of Shawshank Redemption.
Onto The Features!
Early on this adventure we have resource management. This includes adding/remove resources. The core to everything is a resource. A single url to a sound payload which is interpreted as a specific type. Each type has a sound driver which tells Synk how to actually play and sync the sound. As of right now Synk only supports MP3. Over time Synk will support other drivers such as Youtube, SoundCloud, and possibly Fanburst.
Replicated sound is sure a doozy. Especially when you want to make sure everyone who is in a room stays in sync without actually streaming the from caster to listener. A unique thing about Synk is that audio is able to play at realtime to all listeners in a room. Give or take a latency interval of less than 5 seconds. Unlike with Youtube, Twitch, and the like is Synk doesn't need to stream the video so bandwidth is kept to just handling the events of the rooms. Resources are offloaded to content delivery networks and giant behmoths like AWS S3. Down the line I expect to be able to support hundreds and even thousands of rooms with little overhead using this split. Below is an outdated example of what is possible.
Multiple sounds in a single context
Replicated sound is great but the goal of Synk is to create an experience. Simply playing a single track isn't good enough, so with this update having control over multiple tracks took the forefront. Albiet crude in it's current state and not visually appealing it still offers a really powerful feature. As a presenter you're able to create soundscapes of multiple tracks and craft your world with audio. Compose them into scenes and play them all at once. Pending future features such as scene shuffling (think playlist-shuffling).
As the story progresses or an exciting twist occurs you can swap the scene and play sound bites. You could even present a chilling prerecorded monologue.
Isolated Room Sound
Note: Properly implemented room isolation in Q3 update.
The single most important feature is to keep your sound to your room only and vice-versa. You don't want someone else to control the sound of your room and they don't want your input either. Speaking back to Q2 this feature was crude and ignored everything clientside only. Now in Q3 you can comfortably relax knowing Jim won't be playing Never Going To Give You Up in your suspensful orchestral scene.
What's with the late update?
Simple, I have a full time job and university. Time divided between that and unfortunate addictions to Ark, Minecraft, and other games which catch my attention have unfortunately delayed a lot of my own projects. Rewriting Synk in Feathers is enough of a step to already create delays but it's already pretty much at the same point as it was in Laravel. Even further when the Q3 update comes around.