Skip to content

Commit 8e35b62

Browse files
committed
cleanup comparing jack
- fix heading hirarchy - line length and paragraphs - fix mailing list name
1 parent baf07e9 commit 8e35b62

1 file changed

Lines changed: 64 additions & 54 deletions

File tree

faq/comparing_jack.md

Lines changed: 64 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -5,79 +5,89 @@ title: "How does JACK compare to ..."
55

66
# How does JACK compare to ...
77

8-
## How does JACK compare to...?
8+
Please mail the jack-devel mailing list if you have any concerns about
9+
the answers to these questions. Also, no disrespect to any effort is
10+
intended, only a recognition of different goals and design principles.
911

10-
Please mail the jackit-devel mailing list if you have any concerns about the
11-
answers to these questions. Also, no disrespect to any effort is intended,
12-
only a recognition of different goals and design principles.
13-
14-
### Other Linux-centered systems
12+
## Other Linux-centered systems
1513

1614
* ALSA: both a HAL and a user-space library for audio under Linux.
17-
ALSA is used to provide the default audio i/o driver for JACK.
18-
ALSA is a very powerful audio API, but it does not provide a
19-
callback-based API or offer any solutions for inter-application
20-
communication, though it has been discussed and is theoretically possible.
15+
ALSA is used to provide the default audio i/o driver for JACK. ALSA
16+
is a very powerful audio API, but it does not provide a callback-based
17+
API or offer any solutions for inter-application communication, though
18+
it has been discussed and is theoretically possible.
19+
2120
* aRts, a streaming media architecture:
2221
aRts was not designed from the ground up with low-latency in mind.
23-
Not a fault, but a design decision. A jack output element could be written
24-
for aRts, though, as far as I can tell.
25-
Note: aRts is not really used anymore by any Linux systems.
22+
Not a fault, but a design decision. A jack output element could be
23+
written for aRts, though, as far as I can tell. Note: aRts is not
24+
really used anymore by any Linux systems.
25+
2626
* GStreamer, another streaming media architecture:
2727
GStreamer is designed for in-process construction of media pipelines,
2828
and is not used to link applications.
29-
JACK elements for GStreamer are under available.
29+
JACK elements for GStreamer are under available.
30+
3031
* LADSPA, LV2: LADSPA is an internal plugin API for DSP routines,
31-
not a way of linking external applications together.
32-
* Phonon
33-
* Canberra
32+
not a way of linking external applications together.
3433

35-
### Cross-platform systems
34+
* Phonon
3635

37-
* PortAudio:
36+
* Canberra
37+
38+
## Cross-platform systems
39+
40+
* PortAudio:
3841
a "cross platform, open-source, audio I/O library" offering both
39-
callback- and blocking I/O-based APIs.
40-
PortAudio backends exist for various Windows, Mac, and Unix HALs.
41-
It is mainly focused on hardware I/O rather than a general concept of
42-
ports and connections. The callback-style API used by both projects
43-
makes it relatively easy to port between the two (no pun intended),
44-
and there is a JACK backend for PortAudio so porting is not always necessary.
45-
* SDL:
46-
* SFML:
47-
* OpenAL:
48-
49-
### MacOS- and/or Windows-centered systems
42+
callback- and blocking I/O-based APIs. PortAudio backends exist for
43+
various Windows, Mac, and Unix HALs. It is mainly focused on hardware
44+
I/O rather than a general concept of ports and connections. The
45+
callback-style API used by both projects makes it relatively easy to
46+
port between the two (no pun intended), and there is a JACK backend
47+
for PortAudio so porting is not always necessary.
48+
49+
* SDL:
50+
51+
* SFML:
52+
53+
* OpenAL:
54+
55+
## MacOS- and/or Windows-centered systems
5056

5157
* CoreAudio, the Mac OS X audio API:
52-
Very similar to JACK in some the sense of being centered on
53-
a synchronous-execution-via-callback API, but does not include
58+
Very similar to JACK in some the sense of being centered on a
59+
synchronous-execution-via-callback API, but does not include
5460
inter-application audio routing. CoreAudio also includes a
55-
hardware-level abstraction layer, whereas JACK uses higher-level drivers
56-
for that purpose. The first JACK driver was based on ALSA,
57-
but others are available for the OSS and PortAudio interfaces.
61+
hardware-level abstraction layer, whereas JACK uses higher-level
62+
drivers for that purpose. The first JACK driver was based on ALSA, but
63+
others are available for the OSS and PortAudio interfaces.
64+
5865
* ASIO:
59-
a HAL for both Windows and MacOS that replaces the native device driver model
60-
with something much cleaner. It supports hardware-level latencies,
61-
but it does not connect applications to each other.
62-
Also, it is subject to license restrictions, and does not exist for Linux
63-
(though it would not be impossible to implement it on top of ALSA).
66+
a HAL for both Windows and MacOS that replaces the native device
67+
driver model with something much cleaner. It supports hardware-level
68+
latencies, but it does not connect applications to each other. Also,
69+
it is subject to license restrictions, and does not exist for Linux
70+
(though it would not be impossible to implement it on top of ALSA).
71+
6472
* ReWire, an inter-app communications API for Windows and MacOS
65-
from PropellerHeads and Steinberg, ReWire is similar in that it provides
66-
inter-application audio routing, but does not allow for
67-
fully independent processes, and has silly restrictions
68-
("up to 64 channels", etc).
69-
JACK also comes without silly license restrictions.
73+
from PropellerHeads and Steinberg, ReWire is similar in that it
74+
provides inter-application audio routing, but does not allow for fully
75+
independent processes, and has silly restrictions ("up to 64
76+
channels", etc). JACK also comes without silly license restrictions.
77+
7078
* VST, AudioUnits, DirectX, MAS, RTAS:
7179
these are all Windows/MacOS audio plugin APIs. None of them permit
72-
inter-application data sharing. Some plugin hosts can make this possible
73-
by using some other system such as ReWire. These APIs also require that
74-
the callback you write to process/generate data be executed
75-
in the context of the plugin host;
76-
JACK allows your callback to be executed within the context
77-
of your own application (if you wish to).
80+
inter-application data sharing. Some plugin hosts can make this
81+
possible by using some other system such as ReWire. These APIs also
82+
require that the callback you write to process/generate data be
83+
executed in the context of the plugin host; JACK allows your callback
84+
to be executed within the context of your own application (if you wish
85+
to).
86+
7887
* Virtual Audio Cable, VAC (Windows only):
7988
Creates a set of virtual audio devices named "Virtual Cables", each
80-
consisting of a pair of the waveform input/output devices. Applications
81-
can send audio stream to an output side of a cable, and any other
82-
application can receive this stream from an input side. ASIO-compatible.
89+
consisting of a pair of the waveform input/output devices.
90+
Applications can send audio stream to an output side of a cable, and
91+
any other application can receive this stream from an input side.
92+
ASIO-compatible.
8393

0 commit comments

Comments
 (0)