This file is indexed.

/usr/share/doc/libjack-dev/HTML/index.html is in libjack-dev 1:0.125.0-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>JACK-AUDIO-CONNECTION-KIT: JACK Audio Connection Kit</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">JACK-AUDIO-CONNECTION-KIT
   &#160;<span id="projectnumber">0.125.0rc1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">JACK Audio Connection Kit </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="intro"></a>
Introduction</h1>
<p>JACK is a low-latency audio server, written for any operating system that is reasonably POSIX compliant. It currently exists for Linux, OS X, Solaris, FreeBSD and Windows. It can connect several client applications to an audio device, and allow them to share audio with each other. Clients can run as separate processes like normal applications, or within the JACK server as "plugins".</p>
<p>JACK was designed from the ground up for professional audio work, and its design focuses on two key areas: synchronous execution of all clients, and low latency operation.</p>
<dl class="section see"><dt>See also</dt><dd><a href="http://jackaudio.org">http://jackaudio.org</a></dd></dl>
<h1><a class="anchor" id="jack_overview"></a>
JACK Overview</h1>
<p>Traditionally it has been hard if not impossible to write audio applications that can share data with each other. In addition, configuring and managing audio interface hardware has often been one of the most complex aspect of writing audio software.</p>
<p>JACK changes all this by providing an API that does several things: </p><pre class="fragment">1. provides a high level abstraction for programmers that
   removes the audio interface hardware from the picture and
   allows them to concentrate on the core functionality of
   their software.

2. allows applications to send and receive audio data to/from
   each other as well as the audio interface. There is no
   difference in how an application sends or receives
   data regardless of whether it comes from/goes to another application 
   or an audio interface.
</pre><p>For programmers with experience of several other audio APIs such as PortAudio, Apple's CoreAudio, Steinberg's VST and ASIO as well as many others, JACK presents a familiar model: your program provides a "callback" function that will be executed at the right time. Your callback can send and receive data as well as do other signal processing tasks. You are not responsible for managing audio interfaces or threading, and there is no "format negotiation": all audio data within JACK is represented as 32 bit floating point values.</p>
<p>For those with experiences rooted in the Unix world, JACK presents a somewhat unfamiliar API. Most Unix APIs are based on the read/write model spawned by the "everything is a file" abstraction that Unix is rightly famous for. The problem with this design is that it fails to take the realtime nature of audio interfaces into account, or more precisely, it fails to force application developers to pay sufficient attention to this aspect of their task. In addition, it becomes rather difficult to facilitate inter-application audio routing when different programs are not all running synchronously.</p>
<p>Using JACK within your program is very simple, and typically consists of just:</p>
<ul>
<li>calling <a class="el" href="group__ClientFunctions.html#gabbd2041bca191943b6ef29a991a131c5">jack_client_open()</a> to connect to the JACK server.</li>
<li>registering "ports" to enable data to be moved to and from your application.</li>
<li>registering a "process callback" which will be called at the right time by the JACK server.</li>
<li>telling JACK that your application is ready to start processing data.</li>
</ul>
<p>There is a lot more that you can do with JACK's interfaces, but for many applications, this is all that is needed. The <a class="el" href="simple__client_8c.html">simple_client.c</a> example demonstrates a complete (simple!) JACK application that just copies the signal arriving at its input port to its output port. Similarly, <a class="el" href="inprocess_8c.html">inprocess.c</a> shows how to write an internal client "plugin" that runs within the JACK server process.</p>
<h1><a class="anchor" id="reference"></a>
Reference</h1>
<p>The JACK programming interfaces are described in several header files. We present them here broken into useful categories to make the API a little clearer: </p><pre class="fragment">- @ref ClientFunctions
- @ref ClientCallbacks
- @ref ClientThreads
- @ref ServerControl
- @ref PortFunctions
- @ref PortSearching
- @ref LatencyFunctions
- @ref TimeFunctions
- @ref TransportControl
- @ref ErrorOutput
- @ref NonCallbackAPI
- @ref MIDIAPI
- @ref SessionClientFunctions
- @ref WeakLinkage
- @ref ControlAPI
- @ref Metadata
</pre><p>The full API is described in:</p>
<ul>
<li><a class="el" href="jack_8h.html">&lt;jack/jack.h&gt;</a> is the main JACK interface.</li>
<li><a class="el" href="statistics_8h.html">&lt;jack/statistics.h&gt;</a> provides interfaces for monitoring the performance of a running JACK server.</li>
<li><a class="el" href="intclient_8h.html">&lt;jack/intclient.h&gt;</a> allows loading and unloading JACK internal clients.</li>
<li><a class="el" href="ringbuffer_8h.html">&lt;jack/ringbuffer.h&gt;</a> defines a simple API for using lock-free ringbuffers. These are a good way to pass data between threads, when streaming realtime data to slower media, like audio file playback or recording.</li>
<li><a class="el" href="transport_8h.html">&lt;jack/transport.h&gt;</a> defines a simple transport control mechanism for starting, stopping and repositioning clients. This is described in the <a class="el" href="transport-design.html">JACK Transport Design</a> document.</li>
<li><a class="el" href="types_8h.html">&lt;jack/types.h&gt;</a> defines the main JACK data types.</li>
<li><a class="el" href="thread_8h.html">&lt;jack/thread.h&gt;</a> functions standardize thread creation for JACK and its clients.</li>
<li><a class="el" href="midiport_8h.html">&lt;jack/midiport.h&gt;</a> functions to handle reading and writing of MIDI data to a port</li>
<li><a class="el" href="session_8h.html">&lt;jack/session.h&gt;</a> functions that form the JACK session API</li>
<li><a class="el" href="control_8h.html">&lt;jack/control.h&gt;</a> the API for starting and controlling a JACK server</li>
<li><a class="el" href="metadata_8h.html">&lt;jack/metadata.h&gt;</a> the API for managing metadata about objects within JACK (clients and ports)</li>
</ul>
<p>In addition, the tools directory provides numerous examples of simple JACK clients that nevertheless use the API to do something useful. It includes</p>
<ul>
<li>a metronome.</li>
<li>a recording client that can capture any number of channels from any JACK sources and store them as an audio file.</li>
<li>command line clients to control the transport mechanism, change the buffer size and more.</li>
<li>commands to load and unload JACK internal clients.</li>
<li>tools for checking the status of a running JACK system.</li>
</ul>
<p>and many more.</p>
<h1><a class="anchor" id="porting"></a>
Porting</h1>
<p>JACK is designed to be portable to any system supporting the relevant POSIX and ANSI C standards. It currently runs under GNU/Linux, Mac OS X and Berkeley Unix on several different processor architectures. If you want to port JACK to another platform, please read the <a class="el" href="porting-guide.html">Porting JACK</a> document.</p>
<h1><a class="anchor" id="license"></a>
License</h1>
<p>Copyright (C) 2001-2011 by Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.</p>
<p>JACK is free software; you can redistribute it and/or modify it under the terms of the GNU GPL and LGPL licenses as published by the Free Software Foundation, <a href="http://www.gnu.org">http://www.gnu.org</a>. The JACK server uses the GPL, as noted in the source file headers. However, the JACK library is licensed under the LGPL, allowing proprietary programs to link with it and use JACK services. You should have received a copy of these Licenses along with the program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</p>
<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.12
</small></address>
</body>
</html>