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 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta name="description" content="Internet DJ Console (IDJC) is a Shoutcast/Icecast internet radio client incorporating features for live radio show production." />
<meta name="keywords" xml:lang="en" content="idjc dj shoutcast icecast radio linux gtk live recorded voip irc" />
<link rel="shortcut icon" href="favicon.png" type="application/png" />
<link rel="stylesheet" href="style.css" type="text/css" />
<!--[if lte IE 7]><link rel="stylesheet" href="style_ie.css" type="text/css" /><![endif]-->
<title>Internet DJ Console Homepage</title>
<script type="text/javascript">
// Change the title text and highlight a navigation bar option.
function ui(title, menu) {
document.getElementById('title').innerHTML = title;
s = document.getElementById(menu).style;
s.color = "#F70";
s.fontWeight = "bold";
s.textDecoration = "underline";
}
</script>
</head>
<body>
<!-- Hidden h1 title for search engine seeding -->
<h1 class="unshown">Internet DJ Console Homepage IDJC</h1>
<table id="main-table">
<tr><td>
<table>
<tr id="logo-holder">
<td>
<img src="site-logo.png" width="148" height="212" alt="website logo" title="Internet DJ Console homepage"/>
</td>
</tr>
<tr>
<td id="left-sidebar">
<h3>Contents</h3>
<ul id="sidebar-menu">
<li><a href="index.html" id="front-page-nav">Front page</a></li>
<li><a href="tour.html" id="tour-nav">Tour</a></li>
<li>
<ul>
<li><a href="tour_main.html" id="tour-main-nav">Main window</a></li>
<li><a href="tour_miniplayers.html" id="tour-miniplayers-nav">Mini Players</a></li>
<li><a href="tour_output.html" id="tour-output-nav">Output</a></li>
<li><a href="tour_preferences.html" id="tour-preferences-nav">Preferences</a></li>
</ul>
</li>
<li><a href="install.html" id="install-nav">Installation</a></li>
<li>
<ul>
<li><a href="install_standard.html" id="install-standard-nav">Standard</a></li>
<li><a href="install_build.html" id="install-build-nav">Building</a></li>
<li><a href="install_first_run.html" id="install-first-run-nav">First run</a></li>
</ul>
</li>
<li><a href="tutorials.html" id="tutorials-nav">Tutorials</a></li>
<li>
<ul>
<li><a href="tutorials_icecast.html" id="tutorials-icecast-nav">Icecast</a></li>
<li><a href="tutorials_shoutcast.html" id="tutorials-shoutcast-nav">Shoutcast</a></li>
<li><a href="tutorials_voip.html" id="tutorials-voip-nav">VoIP</a></li>
<li><a href="tutorials_jack_ports_demystified.html" id="tutorials-jackportsdemyst-nav">JACK Ports</a></li>
<li><a href="tutorials_secrets.html" id="tutorials-secrets-nav">Secrets</a></li>
</ul>
</li>
<li><a href="code.html" id="code-nav">Extra code</a></li>
<li>
<ul>
<li><a href="code_idjcmon.html" id="code-idjcmon-nav">idjcmon.py</a></li>
<li><a href="code_pipewire_appname.html" id="code-pipewire-appname-nav">pipewire patch</a></li>
</ul>
</li>
<li><a href="contact.html" id="contact-nav">Contact</a></li>
</ul>
</td>
</tr>
</table>
</td>
<td>
<table id="right-table">
<tr>
<td id="top-titlebar">
<h2 id="title"></h2>
</td>
</tr>
<tr>
<td>
<script type="text/javascript">
ui('Installation: First run', 'install-first-run-nav')
</script>
<h4>The purpose of this page</h4>
<p>In order to ensure the correct sound card or audio interface is used some user and or system wide configuration may need
to be done but it only needs to be done once. It is likely that if the system just has onboard audio things will already work
just fine but there is probably some scope for performance tuning.</p>
<h4>Configuring your system for JACK Audio Connection Kit</h4>
<p>Assuming IDJC is using a dedicated JACK sound server (not direct to <a href="https://pipewire.org/">Pipewire</a>)
it is worthwhile making a simple JACK configuration file.</p>
<p>The configuration file will determine the operating parameters of an automatically started JACK sound server.</p>
<pre>$ echo "/usr/bin/jackd -d alsa -r 44100 -p 256 -n 2" > ~/.jackdrc</pre>
<p>In this example a sample rate of 44100 was selected matching the vast majority of digital music out there.
Additionally a lowish latency of 256 samples was chosen. Too low a number will result in audio problems.
Too large and audio will be noticably delayed. The same is true for the number of buffers. Three buffers is
suggested for USB audio interfaces.</p>
<h5>Making JACK use a particular sound card</h5>
<p>It's a two step process of finding the names of all the sound cards and specifying
which one to use.</p>
<pre>$ cat /proc/asound/cards
0 [Revolution71 ]: ICE1724 - M Audio Revolution-7.1
M Audio Revolution-7.1 at 0xd000, irq 19
1 [nanoKONTROL ]: USB-Audio - nanoKONTROL
KORG INC. nanoKONTROL at usb-0000:00:1d.0-2, full speed
$ jackd -d alsa -d hw:Revolution71 -r 44100 -p 256</pre>
<p>If specifying the card name failed try using the number to the left prefaced by 'hw:' without the quotes.</p>
<pre>
$ jackd -d alsa -d hw:0 -r 44100 -p 256</pre>
</pre>
<p>Normally you would not need to specify hw:0 since it is the first sound device however you may have onboard
audio disabled in the BIOS, at the driver level, or in ALSA itself resulting in card 0 not appearing in
/proc/asound/cards.</p>
<h5>Enabling MIDI events</h5>
<pre>$ jackd -d alsa -r 44100 --midi raw</pre>
<p>Only use the <i>--midi</i> option if you intend to use a MIDI device to control IDJC.</p>
<h4>For systems that run Pipewire</h4>
<p>Some systems that are configured for Pipewire still use a real JACK server as a feed. To use Pipewire directly
start IDJC as follows.</p>
<pre>$ pw-jack idjc</pre>
<p>With IDJC using Pipewire directly, the <em>JACK Ports</em> menu can be used to select or
check the correct audio device(s) are in use.</p>
<p>One of Pipewire's main advantages is an ability to connect audio applications together and share audio regardless
of whether they were created to use Pulseaudio or JACK. To make connections or just get an overview there exist the legacy programs
<a href="http://drobilla.net/software/patchage.html">Patchage</a>, <a href="https://kx.studio/Applications:Catia">Catia</a>, and for Pipewire specifically there is <a href="https://github.com/rncbc/qpwgraph">qpwgraph</a>.</p>
<h4>Finally</h4>
<p>The program <i>qjackctl</i> can be used to start a JACK sound server. It has a nice graphical user
interface and can generate a <i>.jackdrc</i> file as well.</p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
|