1
Fork 0

Feature/release cleanup (#4)

* README.rst: Moving to restructured text for better readibility.

* INSTALLATION.rst: Moving to rst for readability and offering information on how to build using meson.

* INSTALLATION.rst: Updating meson build/installation instructions.

* README.rst: Adding links to jack{,2}, alsa, dbus. Fixing spelling and removing redundant sentences. Adding link to installation/build documentation.

* README.rst: Switching to non-link in italic section.

* INSTALLATION.rst: Making more clear what DESTDIR is.

* LICENSE: Move GPLv2 license to common location.

* AUTHORS: Adding David Runge. Sorting alphabetically.

* AUTHORS.rst: Switching to rst for nicer lists.

* AUTHORS.rst: Add header and put names in a list.

* CHANGELOG.rst: Switching to rst for better readibility.

* CHANGELOG.rst: Putting releases in sections and items in proper lists. Adding header. Adding information of upcoming version 9.

* CHANGELOG.rst: Adding information on architecture fixes and release date of version 9.

* meson.build: Incrementing version to 9.
This commit is contained in:
David Runge 2019-09-24 00:34:12 +02:00 committed by GitHub
parent c07775d021
commit de37569c92
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 280 additions and 202 deletions

View File

@ -1,6 +0,0 @@
Nedko Arnaudov <nedko@arnaudov.name>
Dmitry S. Baikov <c0ff@konstruktiv.org>
Paul Davis <paul@linuxaudiosystems.com>
Torben Hohn <torbenh@gmx.de>
Juuso Alasuutari has copyright ownership on some D-Bus related code, taken from other projects (lash, jackdbus).

10
AUTHORS.rst Normal file
View File

@ -0,0 +1,10 @@
=======
Authors
=======
* David Runge <dave@sleepmap.de>
* Dmitry S. Baikov <c0ff@konstruktiv.org>
* Juuso Alasuutari has copyright ownership on some D-Bus related code, taken from other projects (lash, jackdbus).
* Nedko Arnaudov <nedko@arnaudov.name>
* Paul Davis <paul@linuxaudiosystems.com>
* Torben Hohn <torbenh@gmx.de>

93
CHANGELOG.rst Normal file
View File

@ -0,0 +1,93 @@
=========
Changelog
=========
Version 9 on 2019-09-24
-----------------------
* architecture fixes for aarch64 and powerpc64
* porting a2j_control to python3
* replace waf with meson as build system
* control unique port names over D-Bus
* man page spelling fixes
* fix linking against libpthread
Version 8 "Sophronius of Vratsa" on 2012-07-05
----------------------------------------------
* -u commandline option
* D-Bus method for checking whether hw export is enabled. Kudos to Danni Coy
* Fix for resource leak. Kudos to Dan A. Muresan
* Improved error message for snd_seq_connect_to() failures
* --mandir= option in waf. Kudos to Dan Church
Version 7 "Paisius of Hilendar" on 2011-01-16
---------------------------------------------
* MIDI processing improvements
* Use the JACK limit for max port name size (sr #2526)
* Adopt to shared library policy changes in some distros (sr #2547)
* dbus support can now be disabled at configure stage
* fix build on not so common platforms (LP: #556351)
* man pages (from Debian)
* reopen log file when it is deleted or replaced
Version 6 "Indzhe Voyvoda" on 2009-12-29
----------------------------------------
* MIDI processing improvements
* Handle large number of ports
* a2j script (non-dbus-like behaviour for dbus environment)
* Allow tweaking through dbus of the hardware port export option
* Fix a use of invalid memory
* Fix port miss that can occur if port appears during bridge startup
Version 5 "Athos" on 2009-06-13
-------------------------------
* Fix thight loop on D-Bus disconnect
* D-Bus signals for bridge start and stop
* Fixed alsamidi "disappearing output" bug. (backport from jack1)
* MIDI note-off normalization fix from Dave Robillard (Backport from jack1)
* Removed wrong assert from alsa_seqmidi.c reported by Ken Ellinwood (Backport
from jack1)
* Mark anything that looks like a hardware port as physical&terminal (Backport
from jack1/jack2)
* Fix potential crash when D-Bus is not used
* Support for multiple ALSA clients with same name
* Merge midibridge changeset by Paul Davis that is expected to fix midi event
timing problems that some people have reported.
Version 4 "Devsirme" on 2008-08-03
----------------------------------
* Fix typos in docs
* Disable use of C++ demangling in sigsegv. Fix for sr #2074
* Fix a2j_control help text (thanks kfoltman!)
* Request fixed JACK client name. Fix for bug #12139
* Handle missing svnversion executable nicely. Fixes bug #12138
Version 3 "Bodrum" on 2008-08-03
--------------------------------
* Improved port naming, support for bidirectional ports
* Allow exporting of hardware ports (disabled by default)
* Switch from autotools to waf
* Remove support for old JACK MIDI API variants
* Remove usage of posix semaphores that could cause sleep in realtime context,
in rare circumstances
* D-Bus background service mode. The old manual mode is still working.
* Log file when running in background service mode.
* Improved documentation
* Import, with slight modifications, static bridges created by Sean Bolton and
Lars Luthman.
Version 2 on 2007-10-27
-----------------------
* Improved build system (autotools) and support for older JACK variants
Version 1 on 2007-08-26
-----------------------
* Initial release

34
INSTALL
View File

@ -1,34 +0,0 @@
= Configure it =
./waf configure
This will configure for installation to /usr/local prefix.
If you want to use other prefix, use --prefix option:
./waf configure --prefix=/usr
For full list of options, run:
./waf configure --help
There are two custom options:
* "--disable-dbus will" force disable dbus support, even if dependencies are present
* "--enable-pkg-config-dbus-service-dir" will force D-Bus service install
dir to be one returned by pkg-config. This is usually needed when
prefix is /usr/local because dbus daemon scans /usr for service
files but does not in /usr/local
= Build it =
./waf
You can use -j option to enable building on more than one CPU:
./waf -j 4
= Install it =
./waf install
You probably want to run later as superuser to install system-wide

48
INSTALLATION.rst Normal file
View File

@ -0,0 +1,48 @@
============
Installation
============
*a2jmidid* uses the |meson| build system.
Configure and build
-------------------
To configure the project, |meson|'s |meson_universal_options| (e.g. *prefix*)
can be used to prepare a build directory::
meson --prefix=/usr build
One additional - project specific - option enables for building without |dbus|
support::
meson --prefix=/usr -Ddisable-dbus=true build
To build the application |ninja| is required::
ninja -C build
Install
-------
|meson| is able to install the project components to the system directories
(when run as root), while honoring the *DESTDIR* environment variable::
DESTDIR="/some/other/location" meson install -C build
.. |meson| raw:: html
<a href="https://mesonbuild.com/" target="_blank">Meson</a>
.. |meson_universal_options| raw:: html
<a href="https://mesonbuild.com/Builtin-options.html#universal-options" target="_blank">universal options</a>
.. |dbus| raw:: html
<a href="https://www.freedesktop.org/wiki/Software/dbus/" target="_blank">D-Bus</a>
.. |ninja| raw:: html
<a href="https://ninja-build.org/" target="_blank">Ninja</a>

View File

59
NEWS
View File

@ -1,59 +0,0 @@
= Version 8 "Sophronius of Vratsa" on 2012-07-05 =
* -u commandline option
* D-Bus method for checking whether hw export is enabled. Kudos to Danni Coy
* Fix for resource leak. Kudos to Dan A. Muresan
* Improved error message for snd_seq_connect_to() failures
* --mandir= option in waf. Kudos to Dan Church
= Version 7 "Paisius of Hilendar" on 2011-01-16 =
* MIDI processing improvements
* Use the JACK limit for max port name size (sr #2526)
* Adopt to shared library policy changes in some distros (sr #2547)
* dbus support can now be disabled at configure stage
* fix build on not so common platforms (LP: #556351)
* man pages (from Debian)
* reopen log file when it is deleted or replaced
= Version 6 "Indzhe Voyvoda" on 2009-12-29 =
* MIDI processing improvements
* Handle large number of ports
* a2j script (non-dbus-like behaviour for dbus environment)
* Allow tweaking through dbus of the hardware port export option
* Fix a use of invalid memory
* Fix port miss that can occur if port appears during bridge startup
= Version 5 "Athos" on 2009-06-13 =
* Fix thight loop on D-Bus disconnect
* D-Bus signals for bridge start and stop
* Fixed alsamidi "disappearing output" bug. (backport from jack1)
* MIDI note-off normalization fix from Dave Robillard (Backport from jack1)
* Removed wrong assert from alsa_seqmidi.c reported by Ken Ellinwood (Backport from jack1)
* Mark anything that looks like a hardware port as physical&terminal (Backport from jack1/jack2)
* Fix potential crash when D-Bus is not used
* Support for multiple ALSA clients with same name
* Merge midibridge changeset by Paul Davis that is expected to fix
midi event timing problems that some people have reported.
= Version 4 "Devsirme" on 2008-08-03 =
* Fix typos in docs
* Disable use of C++ demangling in sigsegv. Fix for sr #2074
* Fix a2j_control help text (thanks kfoltman!)
* Request fixed JACK client name. Fix for bug #12139
* Handle missing svnversion executable nicely. Fixes bug #12138
= Version 3 "Bodrum" on 2008-08-03 =
* Improved port naming, support for bidirectional ports
* Allow exporting of hardware ports (disabled by default)
* Switch from autotools to waf
* Remove support for old JACK MIDI API variants
* Remove usage of posix semaphores that could cause sleep in realtime context, in rare circumstances
* D-Bus background service mode. The old manual mode is still working.
* Log file when running in background service mode.
* Improved documentation
* Import, with slight modifications, static bridges created by Sean Bolton and Lars Luthman.
= Version 2 on 2007-10-27 =
* Improved build system (autotools) and support for older JACK variants
= Version 1 on 2007-08-26 =
* Initial release

102
README
View File

@ -1,102 +0,0 @@
= Overview =
Main goal of this project main is to ease usage of legacy, not
JACK-ified apps, in a JACK MIDI enabled system.
There are two ways to use legacy ALSA sequencer applications in JACK
MIDI system.
The first approach is to use automatic bridging. For every ALSA
sequencer port you get one JACK MIDI port. If ALSA sequencer port is
both input and output one, you get two JACK MIDI ports, one input and
output.
The second approach is to static bridges. You start application that
creates one ALSA sequencer port and one JACK MIDI port. Such bridge is
unidirectional.
First approach works almost always except when legacy ALSA sequencer
application does not create ports and/or wants existing port to exist
so it can capture from or playback to it. Such programs are using the
feature of ALSA sequencer framework that allows sending and receiving
MIDI events to/from port, without creating connection to it.
= a2jmidid =
a2jmidid is daemon that implements automatic bridging. For every ALSA
sequencer port you get one jack midi port. If ALSA sequencer port is
both input and output one, you get two JACK MIDI ports, one input and
output.
a2jmidid has two modes of operation, running bridge manually and
background D-Bus service.
To start a2jmidid in manual mode, just run it (and don't supply the
special "undocumented" dbus parameter). 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 JACK itself). In case you want to force
a2jmidid to bridge hardware ports, you can use the export-hw option:
a2jmidid -e
or
a2jmidid --export-hw
In D-Bus service mode, a2jmidid works in background. When service
access is requested by some application (like a2j_control), dbus
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.
a2jmidid implementation is based on jack-alsamidi-0.5 that is [almost]
same as jackd ALSA "seq" MIDI backend), both created by Dmitry
Baikov.
= a2jmidi_bridge =
a2jmidi_bridge is static bridge that creates one ALSA sequencer
playback port and one JACK MIDI capture port. MIDI events sent to ALSA
sequencer playback port can be read from the JACK MIDI capture port.
a2jmidi_bridge has optional argument that allows overriding name used
for JACK and ALSA client:
a2jmidi_bridge "my precious bridge"
a2jmidi_bridge implementation is based on alsaseq2jackmidi by Sean
Bolton.
= j2amidi_bridge =
j2amidi_bridge is static bridge that creates one JACK MIDI playback
port and one ALSA sequencer capture port. MIDI events sent to JACK
MIDI playback port can be read from the ALSA sequencer capture port.
j2amidi_bridge has optional argument that allows overriding name used
for JACK and ALSA client:
j2amidi_bridge "my precious bridge"
j2amidi_bridge implementation is based on jackmidi2alsaseq by Lars
Luthman.
= Contact info =
If someone wants to contribute please, contact me (Nedko Arnaudov), or
send patches, or request inclusion (Gna! a2jmidid project).
Packagers are more than welcome too.

128
README.rst Normal file
View File

@ -0,0 +1,128 @@
========
a2jmidid
========
This project aims to ease the usage of legacy, non |jack| enabled applications,
in a |jack| MIDI enabled system, when using |jack2|
There are two ways to use legacy |alsa| sequencer applications in a |jack| MIDI
system:
**Automatic bridging**: For every |alsa| sequencer port you get one |jack| MIDI
port. If an |alsa| sequencer port is both an input and an output, you get two
|jack| 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 |alsa| sequencer
port and one |jack| MIDI port. Such a bridge is unidirectional.
For details on how to build and install this project, look at `INSTALLATION.rst
<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
|dbus| 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 |jack| 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 |dbus| 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 |alsa| *seq* MIDI backend), both created by
Dmitry Baikov.
a2jmidi_bridge
--------------
*a2jmidi_bridge* creates a **static bridge** between one |alsa| sequencer
playback port and one |jack| MIDI capture port. MIDI events sent to the |alsa|
sequencer playback port can be read from the |jack| MIDI capture port.
*a2jmidi_bridge* has an optional argument that allows overriding the name used
for the |jack| and |alsa| 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 |jack| MIDI playback
port and one |alsa| sequencer capture port. MIDI events sent to |jack|
MIDI playback port can be read from the |alsa| sequencer capture port.
*j2amidi_bridge* has an optional argument that allows overriding the name used
for the |jack| and |alsa| client::
j2amidi_bridge "my precious bridge"
The *j2amidi_bridge* implementation is based on jackmidi2alsaseq by Lars
Luthman.
.. |jack| raw:: html
<a href="http://jackaudio.org" target="_blank">JACK</a>
.. |jack2| raw:: html
<a href="https://github.com/jackaudio/jack2" target="_blank">jack2</a>
.. |dbus| raw:: html
<a href="https://www.freedesktop.org/wiki/Software/dbus/" target="_blank">D-Bus</a>
.. |alsa| raw:: html
<a href="https://alsa-project.org/wiki/Main_Page" target="_blank">ALSA</a>

View File

@ -8,7 +8,7 @@ project(
],
meson_version: '>=0.50.0',
license: 'GPL2+',
version: '8')
version: '9')
cc = meson.get_compiler('c')