Navigation Menu

Skip to content

jackaudio/a2jmidid

Repository files navigation

a2jmidid

This project aims to ease the usage of legacy, non enabled applications, in a MIDI enabled system, when using

There are two ways to use legacy sequencer applications in a MIDI system:

Automatic bridging: For every sequencer port you get one MIDI port. If an sequencer port is both an input and an output, you get two MIDI ports, one input and output. (This approach works almost always except when the legacy ALSA sequencer application does not create ports and/or wants to use an existing port to capture from or playback to. Such programs are using a feature of the |alsa| sequencer framework that allows sending and receiving MIDI events to/from a port, without creating a connection to it.)

Static bridges: You start an application that creates one sequencer port and one MIDI port. Such a bridge is unidirectional.

For details on how to build and install this project, look at INSTALLATION.rst.

a2jmidid

a2jmidid is a daemon that implements automatic bridging.

It has two modes of operation: Running a bridge manually or as a backgrounded service.

Start daemon

To start a2jmidid in manual mode, just run the executable. a2jmidid will start bridging, and you will get output on stdout and stderr. You can stop the bridge using ctrl-c.

Usually you want to bridge software ports and not bridge hardware ports (they are handled by itself). In case you want to force a2jmidid to bridge hardware ports nonetheless, you can use the according flags:

a2jmidid -e

or:

a2jmidid --export-hw

Start D-Bus service

In D-Bus service mode, a2jmidid works in the background. When service access is requested by some application (such as a2j_control), the session bus daemon activates the object by executing the service executable.

The object has methods for starting and stopping the bridging. You can use a2j_control to do this:

a2j_control --start
a2j_control --stop

You can deactivate (that may cause later reactivation) the service like this:

a2j_control --exit

You can query the bridge status using this command:

a2j_control --status

There also methods (and corresponding a2j_control commands) that can be used to query mapping information:

a2j_control --help

The a2jmidid implementation is based on jack-alsamidi-0.5, which is (almost) identical to the jackd seq MIDI backend), both created by Dmitry Baikov.

a2jmidi_bridge

a2jmidi_bridge creates a static bridge between one sequencer playback port and one MIDI capture port. MIDI events sent to the sequencer playback port can be read from the MIDI capture port.

a2jmidi_bridge has an optional argument that allows overriding the name used for the and client:

a2jmidi_bridge "my precious bridge"

The a2jmidi_bridge implementation is based on alsaseq2jackmidi by Sean Bolton.

j2amidi_bridge

j2amidi_bridge creates a static bridge between one MIDI playback port and one sequencer capture port. MIDI events sent to MIDI playback port can be read from the sequencer capture port.

j2amidi_bridge has an optional argument that allows overriding the name used for the and client:

j2amidi_bridge "my precious bridge"

The j2amidi_bridge implementation is based on jackmidi2alsaseq by Lars Luthman.