v2.0 Now Available for .NET 9.0

ListenTogether

A .NET 9.0 NuGet package that enables your Desktop Applications (WPF, WinUI 3, MAUI) to join synchronized listening parties managed by a central server.

Powerful Features

Centralized Signaling

Connects to robust party management servers for stable signaling.

Ready-to-Use UI

Includes a WinUI 3 ListenTogetherView control that handles the entire flow.

Smart Synchronization

"Spotify-style" sync logic keeps everyone aligned within 2s variance.

Real-time Updates

Sync playback state, Queue, Repeat/Shuffle modes, and more.

Host Modes

Supports "Host Only" (Strict) or "Everyone" (Open) control modes.

Auto Reconnection

Exponential backoff with auto-rejoin on disconnect.

Quick Start

WinUI 3

1. Add Namespace

xmlns:lt="using:ListenTogether.UI"

2. Add Control

<lt:ListenTogetherView />

WPF

1. Add Namespace

xmlns:lt="clr-namespace:ListenTogether.Wpf; assembly=ListenTogether"

2. Add Control

<lt:ListenTogetherWpfView />

Or Use the API Manually

// Initialize & Subscribe
var client = new ListenTogetherClient();
client.SetUserProfile("MyNickname");
client.OnStateReceived += (state) => UpdatePlayer(state);
// Create Party
string pin = await client.CreatePartyAsync(isHostOnlyMode: true);
// Managed Queue
await client.UpdateQueueAsync("add", new Track { ... });
await client.ShuffleQueueAsync();