Skip to content

Native macOS menu bar app for displaying tally borders from Ross Carbonite switchers

License

Notifications You must be signed in to change notification settings

NorthwoodsCommunityChurch/Limbus-Live

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Limbus Live

A native macOS menu bar app that displays a colored border around your screen based on tally data from a Ross Carbonite video switcher. Helps ProPresenter operators know when they're live.

Limbus Live Screenshot

Features

  • Red border when source is on Program (live)
  • Green border when source is on Preview
  • Multi-display support - choose which screen shows the border
  • TSL 5.0 and 3.1 protocol support with auto-detection
  • Source picker - select which switcher input to monitor
  • Configurable border thickness (4pt, 8pt, 12pt, 16pt)
  • Debug mode - manually trigger red/green borders for testing
  • Menu bar icon reflects current tally state

Requirements

  • macOS 15.0 or later
  • Apple Silicon or Intel Mac
  • Ross Carbonite switcher configured to send TSL data

Installation

  1. Download LimbusLive-v1.0.0-aarch64.zip from Releases
  2. Extract the zip file
  3. Move Limbus Live.app to your Applications folder
  4. Right-click the app and select "Open" (required for first launch due to ad-hoc signing)

Usage

Quick Start

  1. Launch Limbus Live - a gray circle appears in your menu bar
  2. Click the menu bar icon to open the settings popover
  3. Configure your TSL port (default: 5201)
  4. On your Ross Carbonite, configure DashBoard to send TSL 5.0 data to this Mac's IP address on port 5201
  5. Once connected, select your source from the "Monitor Source" dropdown
  6. The border will appear when your source goes to Program (red) or Preview (green)

Ross Carbonite Configuration

  1. Open DashBoard and connect to your Carbonite
  2. Go to Configuration > Devices
  3. Add Device > Type: TSL UMD > Driver: TSL 5
  4. Set the IP address to your Mac's IP
  5. Set the port to 5201 (or your configured port)
  6. Save

Settings

Setting Description
Port TCP port to listen on (default: 5201)
Monitor Source Which switcher input to watch for tally
Show border on Preview Whether to show green border on preview
Border thickness Width of the border in points
Display Which screen shows the border

Building from Source

Requires Xcode 16+ and XcodeGen.

# Clone the repository
git clone https://github.com/NorthwoodsCommunityChurch/limbus-live.git
cd limbus-live

# Generate Xcode project
xcodegen generate

# Build
xcodebuild -scheme LimbusLive -configuration Release build

# The app will be in DerivedData

Project Structure

Limbus Live/
├── Project.yml                    # XcodeGen configuration
├── LimbusLive/
│   ├── LimbusLiveApp.swift        # App entry point
│   ├── AppDelegate.swift          # Lifecycle management
│   ├── Models/
│   │   ├── TallyState.swift       # Tally state enum
│   │   └── AppSettings.swift      # UserDefaults persistence
│   ├── Services/
│   │   └── TSLListener.swift      # TSL 5.0/3.1 TCP listener
│   ├── Views/
│   │   └── SettingsView.swift     # Settings window
│   └── Controllers/
│       ├── StatusBarController.swift    # Menu bar management
│       └── BorderOverlayController.swift # Screen border overlay
└── docs/
    └── images/                    # Screenshots

How It Works

Limbus Live acts as a TSL UMD server. The Ross Carbonite connects to it as a TCP client and sends tally state updates for all sources. The app:

  1. Listens on a configurable TCP port
  2. Auto-detects TSL 5.0 vs 3.1 protocol framing
  3. Parses tally data for all sources
  4. Displays a border when the monitored source is on Program or Preview

License

MIT License - see LICENSE for details.

Credits

See CREDITS.md for third-party acknowledgments.

About

Native macOS menu bar app for displaying tally borders from Ross Carbonite switchers

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published