rtpmidi(1)

rtpmidi(1)
rtpmidi(1) RTP MIDI Utilities for ALSA rtpmidi(1)

NAME

rtpmidi - set up an RTP-MIDI session for ALSA
 

SYNOPSIS

rtpmidi (call host:port | listen | multicall host:port | multilisten) [-v sre] [-u udpport] [-J] [-S sloss] [-R rloss] [-A] [-l A] [-p client:port]
 

MODE

The first word immediately following the rtpmidi command, and before the options, is the mode command. The program works in one of five distinct modes.
 
call host:port
 
This mode creates exactly one MIDI session, and calls the named host on the given port. The session is maintained until the remote host says BYE, or until the local host says BYE (with a ^C). The program exits after the session is closed.
 
listen
 
This mode creates exactly one MIDI session at a time. The program listens for an incoming INVITATION from a remote RTP-MIDI host and accepts it. After the session ends, the program listens, awaiting another INVITATION. At most, one session is active at a time.
 
multicall host:port
 
This mode creates a session to call the named host on the given port. In addition, it listens for INVITATION messages and creates a new session for each participant in the RTP-MIDI network. The program will loop indefinitely, creating new sessions. A ^C causes the program to send BYE messages to all participants, and then the program will exit.
 
multilisten
 
The program listens for INVITATION messages and creates a new session for each participant in the RTP-MIDI network. The program will loop indefinitely, creating new sessions for each INVITATION. A ^C causes the program to send BYE messages to each participant, and then the program will exit.
 
gui
 
The program opens the GTK interface.
 
 
 

OPTIONS

-v sre
Print verbose messages. Each verbosity option character following the flag selects specific information to log.
"s" - log sent RTP Midi packets
"r" - log received RTP Midi packets
"e" - log ALSA events
 
-u udpport
By default, the RTP packets are sent to and from port 5004. Use this option to select a different UDP port. (Note: when specifiying port 5004, for example, the RTP custom of using ports 5004/5005 is observed.)
 
-J
Suppress using the RTP-MIDI Journal. This option suppresses generation on the sending side, and suppresses recovery on the receiving side.
 
-S sloss
Simulate loss on the sending side by dropping "sloss" percent of the sent packets. (The parameter "sloss" must be in the range 0..100.) Packets are fully formed and protected by the journal structure, and then they are dropped.
 
-R rloss
Simulate loss on the receiving side by dropping "rloss" percent of the received packets. (The parameter "sloss" must be in the range 0..100.) Packets are received into the receive buffer, and then are simply not evaluated further.
 
-A
Listen to ALSA Midi System events, and log them if enabled.
 
-l AB
Fall back to a "legacy" behavior. Each option character following the flag selects a specific behavior.
"A" - suppress double noteOn sequences. The original algorithm implemented by rtpmidi only emitted noteOn events if the previous state of the note was OFF and the new note had velocity!=0. This algorithm suppressed double noteOn in a heavy handed way. Some applications (like lighting control) send double noteOn sequences. The newer behavior allows this. Use this flag if you want the old behavior.
"B" - suppress sending SND_SEQ_EVENT_SENSING and SND_SEQ_EVENT_CLOCK event types received from the ALSA Midi Sequencer. The original codec filtered these events to reduce the event stream, later versions enabled them. Select the filtering of these events with this option.
 
-p client:port
After the program starts it creates an ALSA Sequencer client for itself, , but it is not connected to any other clients in the system. Use this option to connect the RTP-MIDI Sequencer client to another client:port in the system. Using this option is essentially the same as issuing the commands
aconnect client:port 128:0
aconnect 128:0 client:port
immediately after starting rtpmidi (where "128" is the client ID assigned to rtpmidi).
 
 

EXAMPLES

rtpmidi listen -p 20:0
 
will start an RTP-MIDI session waiting for connections from an external computer. The ALSA Sequencer endpoint created by rtpmidi will be connected to ALSA client "20" on port "0". For example, if client "20" is a synthesizer, this will allow another computer to play the synthesizer.
 
rtpmidi call grannysmith:5004 -v sr
 
will call a computer named "grannysmith" on port 5004 attempting to connect to an RTP-MIDI session there. The verbosity is set to log both sent and received RTP-MIDI packets. The ALSA endpoint created for the session will not be automatically connected to anything.
 
 
 

SEE ALSO

aconnect(1), aseqdump(1)
 

BUGS

None known.
 

LIMITATIONS

Each instance of rtpmidi creates a single session capable of connecting to a single computer. Each instance of rtpmidi requires exclusive access to a pair of UDP ports.
 

AUTHOR

rtpmidi is by McLaren Labs.
 
2019-09-01 0.9.0