Skip to main content
net8.0

RTP-MIDI (RFC 6295) implementation in modern C# with full Apple MIDI session protocol support. Enables bidirectional MIDI over IP β€” receive notes, CC, program changes and send LED feedback to hardware controllers via network MIDI bridges (macOS, rtpMIDI, raveloxmidi, iConnectivity).

Published
Apr 19, 2026
6mo ago
Total Downloads
8.6K
8,644

Install

dotnet add package Haukcode.RtpMidi --version 1.0.52-PR-24-3df3a25e
ProductVersions
.NET
net8.0

README

Haukcode.RtpMidi

RTP-MIDI (RFC 6295) for .NET β€” bidirectional MIDI over IP with full Apple MIDI session protocol support.

Key Features

  • Apple MIDI session protocol (IN/OK/NO/BY/CK) β€” both initiator and responder roles
  • Mandatory clock sync (CK0β†’CK1β†’CK2) β€” compatible with hardware bridges
  • IObservable<T> streams for received MIDI and state changes (System.Reactive)
  • Cross-platform: Windows, Linux ARM64, macOS β€” pure managed C#

Installation

dotnet add package Haukcode.RtpMidi

For mDNS peer discovery:

dotnet add package Haukcode.RtpMidi.Mdns

Quick Start

await using var session = new RtpMidiSession("My App");

session.MidiReceived.Subscribe(midiBytes =>
    Console.WriteLine($"MIDI: {BitConverter.ToString(midiBytes.ToArray())}"));

// Control port N; data port N+1 derived automatically
await session.ConnectAsync(new IPEndPoint(IPAddress.Parse("192.168.1.50"), 5004));

// Send LED feedback to hardware controller
await session.SendMidiAsync(new byte[] { 0xF0, 0x47, 0x7F, 0x30, 0x2C, 0x01, 0x00, 0xF7 });

Compatible Bridges

  • macOS β€” Built-in Network MIDI (Audio MIDI Setup)
  • Windows β€” rtpMIDI (free)
  • Linux β€” raveloxmidi
  • Hardware β€” iConnectivity mioXM and similar

Links

Changes from Previous Version

No structural changes between v1.0.49 and v1.0.52-PR-24-3df3a25e.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.