Crates.io | rtpmidi |
lib.rs | rtpmidi |
version | 0.4.4 |
created_at | 2025-05-20 11:28:11.412619+00 |
updated_at | 2025-07-25 12:27:34.3913+00 |
description | A library for RTP-MIDI / AppleMIDI |
homepage | https://github.com/iKadmium/rtp-midi-rs |
repository | https://github.com/iKadmium/rtp-midi-rs |
max_upload_size | |
id | 1681172 |
size | 177,652 |
This provides functions for working with RTP-MIDI in Rust.
let port = 5004_u16;
let ssrc = 123456_u32;
let session = RtpMidiSession::start(port, "My Session", ssrc, InviteResponder::Accept); // you can choose to accept all invitations, none, or supply a custom handler
// Wait for midi commands
session
.add_listener(RtpMidiEventType::MidiPacket, move |data| {
for command in data.commands() {
event!(Level::INFO, "Received command: {:?}", command);
}
})
.await;
// invite another participant to the session
let addr = SocketAddr::new("192.168.0.1".parse().unwrap(), 5006);
let _ = invite_server.invite_participant(addr).await.unwrap();
// send MIDI commands
let command = MidiCommand::NoteOn {
channel: 1,
key: 64,
velocity: 127,
};
session.send_midi(command).await.unwrap();
See the Examples directory for more examples.
cargo add rtpmidi
Supported:
Not supported: