134 |
|
|
135 |
<h3>linuxsampler? qsampler? libgig? liblscp? hu?</h3> |
<h3>linuxsampler? qsampler? libgig? liblscp? hu?</h3> |
136 |
<p class="default"> |
<p class="default"> |
137 |
There are currently four subprojects in the LinuxSampler project; linuxsampler, |
There are currently six subprojects in the LinuxSampler project; jlscp, jsampler, |
138 |
qsampler, libgig and liblscp. linuxsampler is the core of the sampler, it includes the |
libgig, liblscp, linuxsampler and qsampler. linuxsampler is the core of the sampler, it includes the |
139 |
sampler engines and audio and MIDI drivers. linuxsampler itself is decoupled from any |
sampler engines and audio and MIDI drivers. linuxsampler itself is decoupled from any |
140 |
user interface. It offers a network server (LSCP server) to allow to be controlled by |
user interface. It offers a native C++ API as well as a network server (LSCP server) to allow to be controlled by |
141 |
an arbitrary user frontend from an arbitrary place over a network connection or |
an arbitrary user frontend from an arbitrary place over a network connection or |
142 |
locally from the same machine as well. |
locally from the same machine as well. |
143 |
qsampler is the first GUI frontend written for linuxsampler, it is written with the Qt |
qsampler is the first GUI frontend written for linuxsampler, it is written in C++ using the Qt |
144 |
GUI library and thus can be compiled for various architectures and operating systems |
GUI library and thus can be compiled for various architectures and operating systems |
145 |
without modifications on the source code. |
without modifications of the source code. |
146 |
libgig is a C++ library written for loading Gigasampler files and DLS Level 1 and 2 |
libgig is a C++ library written for accessing Gigasampler files and DLS Level 1 and 2 |
147 |
files. libgig is used by linuxsampler to load Gigasampler files and it <b>can</b> be |
files, that is for reading and (since version 3.0.0) als writing of those files. |
148 |
|
libgig is used by linuxsampler to load Gigasampler files and it <b>can</b> be |
149 |
used by qsampler to retrieve additional informations about Gigasampler files. liblscp |
used by qsampler to retrieve additional informations about Gigasampler files. liblscp |
150 |
is a C library written as a wrapper around the LSCP network protocol, thus to control |
is a C library written as a wrapper around the LSCP network protocol, thus to control |
151 |
linuxsampler. It was originally designed to be used on both sides, that is on server / |
linuxsampler. It was originally designed to be used on both sides, that is on server / |
152 |
backend side (linuxsampler) and on client / frontend side (e.g. qsampler). But it's now |
backend side (linuxsampler) and on client / frontend side (e.g. qsampler). But it's now |
153 |
only used on client side by qsampler at the moment. |
only used on client side by qsampler at the moment. jsampler is another GUI frontend for |
154 |
|
linuxsampler, it's written in Java and thus platform independent. jlscp is a library which |
155 |
|
can be compared with liblscp, with the only difference that jlscp is written in Java and |
156 |
|
liblscp in C. jsampler requires jlscp. |
157 |
|
|
158 |
</p> |
</p> |
159 |
|
|
160 |
<h3>What do I need to compile and install?</h3> |
<h3>What do I need to compile and install?</h3> |
161 |
<p class="default"> |
<p class="default"> |
162 |
You should compile and install at least libgig and linuxsampler. As a beginner you should |
You should compile and install at least libgig and linuxsampler. As a beginner you should |
163 |
definitely as well compile and install liblscp and qsampler. qsampler is a |
definitely as well compile and install a convenient GUI frontend like either qsampler or |
164 |
convenient GUI frontend for linuxsampler. qsampler depends on liblscp, so you have to |
jsampler, whatever you prefer. qsampler depends on liblscp, so you have to |
165 |
compile and install liblscp before starting to build qsampler. The recommended order to |
compile and install liblscp before starting to build qsampler. The recommended order to |
166 |
compile and install is: |
compile and install is: |
167 |
<ol class="default"> |
<ol class="default"> |
174 |
|
|
175 |
<h3>Compilation of LinuxSampler aborts with ... </h3> |
<h3>Compilation of LinuxSampler aborts with ... </h3> |
176 |
<p class="default"> |
<p class="default"> |
177 |
"<code>can't find a register in class `GENERAL_REGS' while reloading `asm'</code>"<br> |
• "<code>can't find a register in class `GENERAL_REGS' while reloading `asm'</code>"<br> |
178 |
This is caused by the inline assembly code for SIMD optimization. You currently have to compile LinuxSampler with -O2 or -O3 to avoid this problem. Usually this done by default, if not try: |
<br> |
179 |
</p> |
This is caused by the inline assembly code for |
180 |
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
<a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of |
181 |
<tr> |
linuxsampler. You have to compile older versions of LinuxSampler (v0.3.3 and older) with |
182 |
<td><pre class="code">1 |
-O2 or -O3 to avoid this problem. Usually this is done by default, if not try: |
183 |
|
<br> |
184 |
|
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
185 |
|
<tr> |
186 |
|
<td><pre class="code">1 |
187 |
2</pre> |
2</pre> |
188 |
</td> |
</td> |
189 |
<td width="100%"> |
<td width="100%"> |
190 |
<pre class="code">CXXFLAGS="-O3" ./configure |
<pre class="code">CXXFLAGS="-O3" ./configure |
191 |
make</pre> |
make</pre> |
192 |
</td> |
</td> |
193 |
</tr> |
</tr> |
194 |
</table> |
</table> |
195 |
<p class="default"> |
<br> |
196 |
Alternatively you could also disable all hand-crafted assembly optimization code by: |
Alternatively you could also disable all hand-crafted assembly optimization code by: |
197 |
</p> |
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
|
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
|
198 |
<tr> |
<tr> |
199 |
<td><pre class="code">1 |
<td><pre class="code">1 |
200 |
2</pre> |
2</pre> |
204 |
make</pre> |
make</pre> |
205 |
</td> |
</td> |
206 |
</tr> |
</tr> |
207 |
</table> |
</table> |
208 |
<p class="default"> |
<br> |
209 |
but the latter is definitely not recommended, as it will increase CPU usage a lot! |
but the latter is definitely not recommended, as it will increase CPU usage a lot! |
210 |
</p> |
</p> |
211 |
|
|
212 |
<p class="default"> |
<p class="default"> |
213 |
"<code>../common/Resampler.h:142: error: memory input 2 is not directly addressable</code>"<br> |
• "<code>../common/Resampler.h:142: error: memory input 2 is not directly addressable</code>"<br> |
214 |
|
<br> |
215 |
This was reported (<a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9018347&forum_id=12792">1</a>, |
This was reported (<a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9018347&forum_id=12792">1</a>, |
216 |
<a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9019467&forum_id=12792">2</a>) |
<a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9019467&forum_id=12792">2</a>) |
217 |
to be a gcc/g++ version problem. Make sure you got gcc and g++, |
to be a gcc/g++ version problem, in conjunction with the inline assembly code for |
218 |
both of version 3.3 or higher installed. You can check this with: |
<a href="http://en.wikipedia.org/wiki/SIMD">SIMD</a> optimization in older versions of |
219 |
</p> |
linuxsampler. Make sure you got gcc and g++, both of version 3.3 or higher installed. |
220 |
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
You can check this with: |
221 |
|
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
222 |
<tr> |
<tr> |
223 |
<td><pre class="code">1 |
<td><pre class="code">1 |
224 |
2</pre> |
2</pre> |
228 |
g++ --version</pre> |
g++ --version</pre> |
229 |
</td> |
</td> |
230 |
</tr> |
</tr> |
231 |
</table> |
</table> |
|
<p class="default"> |
|
232 |
In case you already got gcc and g++ of version 3.3 or higher |
In case you already got gcc and g++ of version 3.3 or higher |
233 |
installed and it still causes the compilation error mentioned |
installed and it still causes the compilation error mentioned |
234 |
above, try the following: |
above, try the following: |
235 |
</p> |
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
|
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
|
236 |
<tr> |
<tr> |
237 |
<td><pre class="code">1 |
<td><pre class="code">1 |
238 |
2</pre> |
2</pre> |
242 |
export CXX=`which g++`</pre> |
export CXX=`which g++`</pre> |
243 |
</td> |
</td> |
244 |
</tr> |
</tr> |
245 |
</table> |
</table> |
246 |
|
On certain systems however you still get this error in conjunction with older |
247 |
|
versions of LinuxSampler (v0.3.3 and older). Fortunately newer versions of |
248 |
|
linuxsampler are not affected anymore |
249 |
|
(<a href="https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=34">read this for details</a>). |
250 |
|
</p> |
251 |
|
|
252 |
<h3>How do I checkout from CVS?</h3> |
<h3>How do I checkout from CVS?</h3> |
253 |
<p class="default"> |
<p class="default"> |
254 |
The procedure of checking out the newest version from CVS is described on the |
The procedure of checking out the newest version from CVS is described on the |
255 |
<a href="downloads.html">Downloads</a> site. |
<a href="downloads.html#cvs">Downloads</a> site and on the |
256 |
|
<a href="http://cvs.linuxsampler.org/cgi-bin/viewcvs.cgi/">web interface site |
257 |
|
of our CVS server</a>. |
258 |
</p> |
</p> |
259 |
|
|
260 |
<h3>How do I compile from CVS?</h3> |
<h3>How do I compile from CVS?</h3> |
262 |
The procedure for compiling from CVS is the same for all subprojects, that is no matter |
The procedure for compiling from CVS is the same for all subprojects, that is no matter |
263 |
if you are compiling linuxsampler, qsampler, libgig or liblscp from CVS, you need to |
if you are compiling linuxsampler, qsampler, libgig or liblscp from CVS, you need to |
264 |
have the autotools (automake, autoconf and libtool) installed and compile it that way: |
have the autotools (automake, autoconf and libtool) installed and compile it that way: |
265 |
</p> |
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
|
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
|
266 |
<tr> |
<tr> |
267 |
<td><pre class="code">1 |
<td><pre class="code">1 |
268 |
2 |
2 |
274 |
make</pre> |
make</pre> |
275 |
</td> |
</td> |
276 |
</tr> |
</tr> |
277 |
</table> |
</table> |
278 |
|
</p> |
279 |
|
|
280 |
<h3>Can I use linuxsampler without a GUI as well?</h3> |
<h3>Can I use linuxsampler without a GUI as well?</h3> |
281 |
<p class="default"> |
<p class="default"> |
282 |
Yes, but unfortunately there is no console based frontend frontend for linuxsampler (yet). |
Yes, but unfortunately there is no console based frontend for linuxsampler (yet). |
283 |
You have to write LSCP scripts and send it to the running linuxsampler application. |
You have to write LSCP scripts and send it to the running linuxsampler application. But |
284 |
You can send a LSCP script to linuxsampler on the console with the following command: |
don't worry, if you don't know how to write LSCP scripts, you can also start by saving |
285 |
</p> |
a sampler session with QSampler, because the session files qsampler writes are actually |
286 |
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
real LSCP scripts. You can send a LSCP script to linuxsampler on the console with the |
287 |
|
following command: |
288 |
|
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
289 |
|
<tr> |
290 |
|
<td><pre class="code">1</pre> |
291 |
|
</td> |
292 |
|
<td width="100%"> |
293 |
|
<pre class="code">cat yourscript.lscp | netcat localhost 8888</pre> |
294 |
|
</td> |
295 |
|
</tr> |
296 |
|
</table> |
297 |
|
or on certain systems (like Debian) you have to provide the -t switch: |
298 |
|
<table class="default" border="0" cellpadding="1" cellspacing="5"> |
299 |
<tr> |
<tr> |
300 |
<td><pre class="code">1</pre> |
<td><pre class="code">1</pre> |
301 |
</td> |
</td> |
303 |
<pre class="code">cat yourscript.lscp | netcat -t localhost 8888</pre> |
<pre class="code">cat yourscript.lscp | netcat -t localhost 8888</pre> |
304 |
</td> |
</td> |
305 |
</tr> |
</tr> |
306 |
</table> |
</table> |
|
<p class="default"> |
|
307 |
Of course you can also replace localhost by the IP address of the machine where |
Of course you can also replace localhost by the IP address of the machine where |
308 |
linuxsampler is running. Alternatively you can also make a telnet connection (port 8888) |
linuxsampler is running. Alternatively you can also make a telnet connection (port 8888) |
309 |
to linuxsampler's LSCP server and type commands manually. |
to linuxsampler's LSCP server and type commands manually. |
315 |
Yes, have a look on the <a href="documentation.html">Documentation</a> site for some |
Yes, have a look on the <a href="documentation.html">Documentation</a> site for some |
316 |
common LSCP script examples. For details about LSCP read the |
common LSCP script examples. For details about LSCP read the |
317 |
<a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>. Be welcome to ask |
<a href="api/draft-linuxsampler-protocol.html">LSCP reference</a>. Be welcome to ask |
318 |
questions for details about LSCP on the mailing list. |
questions for details about LSCP on the |
319 |
|
<a href="http://lists.sourceforge.net/lists/listinfo/linuxsampler-devel">mailing list</a>. |
320 |
</p> |
</p> |
321 |
|
|
322 |
<a name="dropouts"></a> |
<a name="dropouts"></a> |
328 |
The <a href="http://jackit.sourceforge.net/docs/faq.php">JACK FAQ site</a> is also a good resource |
The <a href="http://jackit.sourceforge.net/docs/faq.php">JACK FAQ site</a> is also a good resource |
329 |
how to configure a realtime stable kernel. But note; LinuxSampler currently has not support for |
how to configure a realtime stable kernel. But note; LinuxSampler currently has not support for |
330 |
libcap yet, that means if you are still using a 2.4.x Linux kernel you most probably have to run |
libcap yet, that means if you are still using a 2.4.x Linux kernel you most probably have to run |
331 |
LinuxSampler with root priviliges (support for libcap is planned though). As a rule of thumb: if |
LinuxSampler with root priviliges. As a rule of thumb: if you don't get warnings like "cannot |
332 |
you don't get warnings like "cannot mlockall() memory" you are safe to run it as ordinary user as well. |
mlockall() memory" on the console, you are safe to run it as ordinary user as well. |
333 |
</p> |
</p> |
334 |
|
|
335 |
</div> |
</div> |