Bridge - a new client

Bridge – a new client and v1.0.0-beta.2

Those of you who have scoured SVT’s GitHub page during the past year may have come across a project very generically named ‘Bridge’. The time has come for me to give it a bit of an explanation.

As most of us know there’s been a need for a new client for quite some time. Although the current ‘Caspar CG Client’ has a lot of functionality it’s not very flexible and there’s a lot left to wish in terms of workflow and how graphics could be operated. I’ve seen many new requirements in terms of content, staffing and technology while working on large-scale productions.

Bridge allows the user to customize their workspace with UI elements called “Widgets”. And allows for plugins to add functionality while ‘piggy backing’ on what’s already there. It’s a platform mainly targeted towards the technical/advanced user.

Buttons-small

An unreleased version of Bridge ran most of the broadcast graphics of the 2024 Eurovision Song Contest. A project with over 2k items and heavy automation.

Core features

  • Customizable workspaces
  • Plugins
  • Variables
  • Multi-user support with real time sync
  • Accurate timing
  • Nested item groups
  • Server groups
  • Several ‘quality of life’ improvements for operators
  • Caspar kill-switch
  • Multi-threading

Roadmap

As mentioned, Bridge is a passion project of mine, which I develop in my own time. The roadmap I envision looks something like the following but will depend heavily on the interest it gathers and the time I have to spare.

Short term

  • Bug fixes
  • Refactors
  • Adding tests
  • Windows build

Future

  • Work towards Caspar feature parity with regards to the current client
  • Add dev and debug features for plugins

Long term

  • Look into file distribution
  • Look into cloud deployment

The current state

I’m releasing v1.0.0-beta.2 for macOS today, which is available under “releases” in the GitHub repo.

Bridge on GitHub

12 Likes

Windows build

Pinging the thread as there’s now a Windows build for the v1.0.0-beta.2 release available on GitHub.

First off, this is really cool. Thank you for putting this out. The shot box-style buttons are awesome, as is the configurable interface and nesting groups feature.

I’m trying out the Windows beta right now, and I can’t get figure out how to get videos within a group to play in order, outside of using delays. I need to play out commercials and this would be a real help.

One other feature request would be a countdown timer on videos and groups of videos, similar to what Superconductor does, so I can be more sure of my timing.

Again, this is super cool, and well done!

Hi
This is a really cool client.
I did get the windows-version running
Would it be possible to do a quick Youtube-tutorial, where you just go through the most common things. I had no problem running a media-file but was struggling getting html-templates to show even if the standard client tells that the server is finding over 600.
But great work !

Thank you Nick. There are currently only actions for on-play, so you’ll need to use delays. But I’ll be sure to add on-end actions to the wishlist.

However, there is a new play mode for groups (which will make delays relative rather than absolute) and make it easier to set up playlists:

  1. Place your media in a group
  2. Change play mode of the group to “Trigger the first child”
  3. Set the on play action to “Play next sibling” of the video files
  4. Set the delay of each video file to the duration of the video before it
  5. (Optional) Create a reference to the group by right-clicking and place it last to create a loop

Countdown timers are in the backlog.

Let me know if this helps you out somewhat.

Thanks Markus.

The library widget has a few known issues which I will try to address in the next release. One of them is that AMCP TLS (the command used to list templates) hasn’t yet been implemented.

To use templates you can specify the path manually in the target field of the ‘Template’ or ‘Template update’ items, just like the CasparCG Client.

Note that this version of Bridge is dropping support for XML data in favor of JSON so your template will need to handle that (which is usually easier than implementing XML support).

A video walkthrough is not a bad idea. I’ll look into that.

Oh, great, thanks. I’ll keep tinkering with it. Again, kudos to you.

Sorry, one more question. Forgive my ignorance, but where can I find the backlog for the countdown timers?

So far I haven’t published the backlog anywhere, mainly because I don’t want to give false promises as I’m doing this on my own time. Although if the project gathers interest I may set up a proper site for it.

I hope to add countdown timers very soon though, it should be a small patch as most of the work has already been done.

1 Like

v1.0.0-beta.3

There’s a new build available on GitHub addressing, among other things, what’s been mentioned in this thread regarding on-end actions and timers.

On-end actions

With similar actions to on-play, on-end will trigger whenever an item has reached its full duration, or at every loop-point for looping clips. This can be used to simplify creation of playlists.

Timers

Timers have been implemented for delays and durations to complement the progress bar. They also work with looping clips.

@nickvoll @markusnygard

1 Like

As requested I’ve started doing a few video tutorials. Let me know if there’s anything in particular that should be covered.

https://www.youtube.com/@bridge-playout

1 Like