/[svn]/web/trunk/www.linuxsampler.org/faq.html
ViewVC logotype

Diff of /web/trunk/www.linuxsampler.org/faq.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 894 by schoenebeck, Mon Nov 21 14:25:10 2005 UTC revision 895 by schoenebeck, Sat Jul 1 16:57:37 2006 UTC
# Line 134  Line 134 
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">
# Line 169  Line 174 
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>                                          &bull;&nbsp;&nbsp;&nbsp;"<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>
# Line 196  make</pre> Line 204  make</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>                                  &bull;&nbsp;&nbsp;&nbsp;"<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>
# Line 217  make</pre> Line 228  make</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>
# Line 233  g++ --version</pre> Line 242  g++ --version</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>
# Line 246  export CXX=`which g++`</pre> Line 262  export CXX=`which g++`</pre>
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
# Line 259  export CXX=`which g++`</pre> Line 274  export CXX=`which g++`</pre>
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>
# Line 275  make</pre> Line 303  make</pre>
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.
# Line 288  make</pre> Line 315  make</pre>
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>
# Line 300  make</pre> Line 328  make</pre>
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>

Legend:
Removed from v.894  
changed lines
  Added in v.895

  ViewVC Help
Powered by ViewVC