{"id":27915105,"url":"https://github.com/jackaudio/a2jmidid","last_synced_at":"2025-08-12T21:14:24.722Z","repository":{"id":46652516,"uuid":"204770541","full_name":"jackaudio/a2jmidid","owner":"jackaudio","description":"ALSA sequencer to JACK MIDI bridging (for jack2)","archived":false,"fork":false,"pushed_at":"2023-09-13T02:46:23.000Z","size":712,"stargazers_count":46,"open_issues_count":18,"forks_count":16,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-06-26T16:09:08.895Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jackaudio.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-08-27T18:59:24.000Z","updated_at":"2025-05-05T17:28:21.000Z","dependencies_parsed_at":"2025-05-06T15:56:53.488Z","dependency_job_id":null,"html_url":"https://github.com/jackaudio/a2jmidid","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/jackaudio/a2jmidid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackaudio%2Fa2jmidid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackaudio%2Fa2jmidid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackaudio%2Fa2jmidid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackaudio%2Fa2jmidid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jackaudio","download_url":"https://codeload.github.com/jackaudio/a2jmidid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackaudio%2Fa2jmidid/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262099731,"owners_count":23258670,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-06T15:34:12.965Z","updated_at":"2025-06-26T16:09:44.467Z","avatar_url":"https://github.com/jackaudio.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"========\na2jmidid\n========\n\nThis project aims to ease the usage of legacy, non |jack| enabled applications,\nin a |jack| MIDI enabled system, when using |jack2|\n\nThere are two ways to use legacy |alsa| sequencer applications in a |jack| MIDI\nsystem:\n\n**Automatic bridging**: For every |alsa| sequencer port you get one |jack| MIDI\nport. If an |alsa| sequencer port is both an input and an output, you get two\n|jack| MIDI ports, one input and output.\n(*This approach works almost always except when the legacy ALSA sequencer\napplication does not create ports and/or wants to use an existing port to\ncapture from or playback to. Such programs are using a feature of the |alsa|\nsequencer framework that allows sending and receiving MIDI events to/from a\nport, without creating a connection to it.*)\n\n**Static bridges**: You start an application that creates one |alsa| sequencer\nport and one |jack| MIDI port. Such a bridge is unidirectional.\n\nFor details on how to build and install this project, look at `INSTALLATION.rst\n\u003cINSTALLATION.rst\u003e`_.\n\na2jmidid\n--------\n\na2jmidid is a daemon that implements **automatic bridging**.\n\nIt has two modes of operation: Running a bridge manually or as a backgrounded\n|dbus| service.\n\nStart daemon\n____________\n\nTo start *a2jmidid* in manual mode, just run the executable.\n*a2jmidid* will start bridging, and you will get output on stdout and stderr.\nYou can stop the bridge using *ctrl-c*.\n\nUsually you want to bridge software ports and not bridge hardware\nports (they are handled by |jack| itself). In case you want to force\n*a2jmidid* to bridge hardware ports nonetheless, you can use the according\nflags::\n\n  a2jmidid -e\n\nor::\n\n  a2jmidid --export-hw\n\nStart D-Bus service\n___________________\n\nIn D-Bus service mode, a2jmidid works in the background. When service access is\nrequested by some application (such as *a2j_control*), the |dbus| session bus\ndaemon activates the object by executing the service executable.\n\nThe object has methods for starting and stopping the\nbridging. You can use *a2j_control* to do this::\n\n  a2j_control --start\n  a2j_control --stop\n\nYou can deactivate (that may cause later reactivation) the service\nlike this::\n\n  a2j_control --exit\n\nYou can query the bridge status using this command::\n\n  a2j_control --status\n\nThere also methods (and corresponding a2j_control commands) that can\nbe used to query mapping information::\n\n  a2j_control --help\n\nThe *a2jmidid* implementation is based on *jack-alsamidi-0.5*, which is\n(almost) identical to the jackd |alsa| *seq* MIDI backend), both created by\nDmitry Baikov.\n\na2jmidi_bridge\n--------------\n\n*a2jmidi_bridge* creates a **static bridge** between one |alsa| sequencer\nplayback port and one |jack| MIDI capture port. MIDI events sent to the |alsa|\nsequencer playback port can be read from the |jack| MIDI capture port.\n\n*a2jmidi_bridge* has an optional argument that allows overriding the name used\nfor the |jack| and |alsa| client::\n\n  a2jmidi_bridge \"my precious bridge\"\n\nThe *a2jmidi_bridge* implementation is based on *alsaseq2jackmidi* by Sean\nBolton.\n\nj2amidi_bridge\n--------------\n\n*j2amidi_bridge* creates a **static bridge** between one |jack| MIDI playback\nport and one |alsa| sequencer capture port. MIDI events sent to |jack|\nMIDI playback port can be read from the |alsa| sequencer capture port.\n\n*j2amidi_bridge* has an optional argument that allows overriding the name used\nfor the |jack| and |alsa| client::\n\n  j2amidi_bridge \"my precious bridge\"\n\nThe *j2amidi_bridge* implementation is based on jackmidi2alsaseq by Lars\nLuthman.\n\n.. |jack| raw:: html\n\n  \u003ca href=\"http://jackaudio.org\" target=\"_blank\"\u003eJACK\u003c/a\u003e\n\n.. |jack2| raw:: html\n\n  \u003ca href=\"https://github.com/jackaudio/jack2\" target=\"_blank\"\u003ejack2\u003c/a\u003e\n\n.. |dbus| raw:: html\n\n  \u003ca href=\"https://www.freedesktop.org/wiki/Software/dbus/\" target=\"_blank\"\u003eD-Bus\u003c/a\u003e\n\n.. |alsa| raw:: html\n\n  \u003ca href=\"https://alsa-project.org/wiki/Main_Page\" target=\"_blank\"\u003eALSA\u003c/a\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackaudio%2Fa2jmidid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackaudio%2Fa2jmidid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackaudio%2Fa2jmidid/lists"}