1
<!-- <?xml version="1.0" ?>
2
<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.1-Based Variant V1.0//EN" "dtd/kdex.dtd">
3
To validate or process this file as a standalone document, uncomment
4
this prolog. Be sure to comment it out again when you are done -->
6
<title>Questions and answers</title>
9
This section answers some frequently asked questions about &arts;.
12
<sect1 id="faq-general">
13
<title>General Questions</title>
15
<qandaset id="faqlist">
19
Does &kde; support my sound card for audio output?
25
&kde; uses &arts; to play sound, and &arts; uses the &Linux; kernel
26
sound drivers, either <acronym>OSS</acronym> or <acronym>ALSA</acronym>
27
(using <acronym>OSS</acronym> emulation). If your sound card is
28
supported by either <acronym>ALSA</acronym> or <acronym>OSS</acronym>
29
and properly configured (&ie; any other &Linux; application can output
38
Is there sound support on platforms other than &Linux;?
44
There is currently only support for <acronym>OSS</acronym> (or
45
compatible) drivers on other platforms (⪚ FreeBSD). You are welcome
46
to contribute by adding support for other platforms. The relevant source
47
code is <filename>kdelibs/arts/flow/audiosubsys.cc</filename>.
55
I can't play <literal role="extension">wav</literal> files with &artsd;!
61
Check that &artsd; is linked to <filename>libaudiofile</filename>
62
(<userinput><command>ldd</command>
63
<parameter>artsd</parameter></userinput>). If it isn't, download
64
kdesupport, recompile everything, and it will work.
72
I hear sound when logged in as <systemitem
73
class="username">root</systemitem> but no other users have sound!
79
The permissions of the file <filename
80
class="devicefile">/dev/dsp</filename> affect which users will have
81
sound. To allow everyone to use it, do this:
87
Log in as <systemitem class="username">root</systemitem>.
93
Open a &konqueror; window.
99
Go into the <filename class="directory">/dev</filename> directory.
105
Click on the file <filename>dsp</filename> with the
106
<mousebutton>right</mousebutton> mouse button, and choose properties.
112
Click on the <guilabel>Permissions</guilabel> tab.
118
Check the <guilabel>Read</guilabel> and <guilabel>Write</guilabel> check
119
boxes in all sections.
125
Click on <guibutton>OK</guibutton>.
131
You can achieve the same effect in a terminal window using the command
132
<userinput><command>chmod</command> <option>666</option>
133
<parameter>/dev/dsp</parameter></userinput>.
137
For restricting access to sound to specific users, you can use group
138
permissions. On some &Linux; distributions, for instance Debian/Potato,
139
<filename class="devicefile">/dev/dsp</filename> is already owned by a
140
group called <systemitem class="groupname">audio</systemitem>, so all
141
you need to do is add the users to this group.
149
This helps for &artsd;, but what about &kmix;, &kmid;, &kscd;,&etc;?
155
There are various other devices which provide functionality accessed by
156
multimedia applications. You can treat them in the same way, either by
157
making them accessible for everyone, or using groups to control
158
access. Here is a list, which may still be incomplete (also if there are
159
various devices in a form like <filename
160
class="devicefile">midi0</filename>, <filename
161
class="devicefile">midi1</filename>, ..., then only the 0-version is
168
<filename class="devicefile">/dev/admmidi0</filename>
173
<filename class="devicefile">/dev/adsp0</filename>
178
<filename class="devicefile">/dev/amidi0</filename>
183
<filename class="devicefile">/dev/amixer0</filename>
188
<filename class="devicefile">/dev/audio</filename>
193
<filename class="devicefile">/dev/audio0</filename>
198
<filename class="devicefile">/dev/cdrom</filename>
203
<filename class="devicefile">/dev/dmfm0</filename>
208
<filename class="devicefile">/dev/dmmidi0</filename>
213
<filename class="devicefile">/dev/dsp</filename>
218
<filename class="devicefile">/dev/dsp0</filename>
223
<filename class="devicefile">/dev/midi0</filename>
228
<filename class="devicefile">/dev/midi0</filename>
233
<filename class="devicefile">/dev/midi00</filename>
238
<filename class="devicefile">/dev/midi00</filename>
243
<filename class="devicefile">/dev/mixer</filename>
248
<filename class="devicefile">/dev/mixer0</filename>
253
<filename class="devicefile">/dev/mpu401data</filename>
258
<filename class="devicefile">/dev/mpu401stat</filename>
263
<filename class="devicefile">/dev/music</filename>
268
<filename class="devicefile">/dev/rmidi0</filename>
273
<filename class="devicefile">/dev/rtc</filename>
278
<filename class="devicefile">/dev/sequencer</filename>
283
<filename class="devicefile">/dev/smpte0</filename>
288
<filename class="devicefile">/dev/sndstat</filename>
297
<para>What can I do if artsd doesn't start or crashes while running?</para>
302
First of all: try using the default settings in &kcontrol; (or if you
303
are starting manually, don't give additional options besides maybe
304
<userinput><option>-F</option><parameter>10</parameter>
305
<option>-S</option><parameter>4096</parameter></userinput> for
306
latency). Especially <emphasis>full duplex is likely to break</emphasis>
307
with various drivers, so try disabling it.
311
A good way to figure out why &artsd; doesn't start (or crashes while
312
running) is to start it manually. Open a &konsole; window, and do:
315
<screen width="40"><prompt>%</prompt> <userinput><command>artsd</command> <option>-F</option><parameter>10</parameter> <option>-S</option><parameter>4096</parameter>></userinput></screen>
318
You can also add the <option>-l0</option> option, which will print more
319
information about what is happening, like this:
321
<screen width="40"><prompt>%</prompt> <userinput><command>artsd</command> <option>-l0</option> <option>-F</option><parameter>10</parameter> <option>-S</option><parameter>4096</parameter></userinput></screen>
324
Doing so, you will probably get some useful information why it didn't
325
start. Or, if it crashes when doing this-and-that, you can do
326
this-and-that, and see <quote>how</quote> it crashes. If you want to
327
report a bug, producing a backtrace with <command>gdb</command> and/or
328
an <command>strace</command> may help finding the problem.
335
<para>Can I relocate &artsd; (move compiled files to another
341
You can't relocate &arts; perfectly. The problem is that &artswrapper;
342
has the location of &artsd; compiled in due to security reasons. You can
343
however use the <filename>.mcoprc</filename> file
344
(TraderPath/ExtensionPath entries) to at least make a relocated &artsd;
345
find it's components. See the <link linkend="the-mcoprc-file">chapter
346
about the <filename>.mcoprc</filename> file</link> for details on how to
354
<para>Can I compile &arts; with gcc-3.0?</para>
359
Short answer: no, &arts; will not work if you compile it with gcc-3.0.
363
Long answer: In the official release, there are two gcc-3.0 bugs which affect
364
&arts;. The first, gcc-3.0 bug c++/2733 is relatively harmless (and has to do
365
with problems with the asm statement). It breaks compilation of convert.cc. It
366
has been fixed in the gcc-3.0 CVS, and will no longer be a problem with
367
gcc-3.0.1 and higher. A workaround has also been added to the CVS version
371
The second gcc-3.0 bug, c++/3145 (which is generation of wrong code for some
372
cases of multiple virtual inheritance) is critical. Applications like &artsd;
373
will simply crash on startup when compiled with gcc-3.0. Even if some progress
374
has been made in the gcc-3.0 branch at time of this writing, still &artsd;
375
crashes quite often, unpredictably.
381
<para>What applications run under &arts;?</para>
386
Obviously, all of the applications included with &kde; are
387
&arts;-aware. This includes:
391
<listitem><para>&noatun;</para></listitem>
392
<listitem><para>&artsbuilder;</para></listitem>
393
<listitem><para>&aktion;</para></listitem>
394
<listitem><para>&kmid;</para></listitem>
395
<listitem><para>&kmidi;</para></listitem>
396
<listitem><para>&kmix;</para></listitem>
397
<listitem><para>&kscd;</para></listitem>
398
<listitem><para>&kde; games such as &kpoker; and
399
&ktuberling;</para></listitem>
403
Some &kde; applications that are not yet included in the &kde; release
404
(⪚ in kdenonbeta) also support &arts;, including:
408
<listitem><para>&brahms;</para></listitem>
409
<listitem><para><application>Kaboodle</application></para></listitem>
410
<listitem><para><application>Kdao</application></para></listitem>
414
The following non-&kde; applications are known to work with &arts;:
418
<listitem><para><application>xmms</application> (with &arts;
419
plug-in)</para></listitem>
420
<listitem><para>Real Networks <application>RealPlayer</application> 8.0
421
(works with &artsdsp;; native &arts; support is being
422
considered)</para></listitem>
426
The following applications are known <emphasis>not</emphasis> to work
431
<listitem><para>none</para></listitem>
435
See also the answers to the questions in the section on
436
<link linkend="faq-non-arts">non-&arts; applications</link>.
440
This section is incomplete -- if you have more information on supported
441
and unsupported applications, please send them to the author so they can
451
<sect1 id="faq-non-arts">
452
<title>Non-&arts; Applications</title>
459
As soon as &kde; is running, no other application can access my sound device!
464
Since the &arts; sound server used by &kde; is running, it is using the
465
sound device. If the server is idle for 60 seconds, it will
466
auto-suspend and release it automatically.
474
You said it suspends after 60 seconds, it doesn't for me!
479
If you start artsd from the KDE control panel, the default is to suspend
480
after 60 seconds. If you start artsd from the command line you need to
481
use the -s option to specify the autosuspend time, otherwise it will
482
default to disabling the autosuspend feature.
485
Currently it doesn't suspend when using full duplex. Turn full duplex
486
off from the &kcontrol; and it will suspend. Disabling full duplex is
487
generally a good idea anyway if you only use &arts; for playing audio
496
How can I run old, non-&arts; applications?
502
Run them using the &artsdsp;. For instance, if you normally would run:
505
<screen><prompt>%</prompt> <userinput><command>mpg123</command> <option>foo.mp3</option></userinput></screen>
507
<para>instead use:</para>
509
<screen><prompt>%</prompt> <userinput><command>artsdsp</command> <option>mpg123 foo.mp3</option></userinput></screen>
512
This will redirect the sound output to &arts;. This method doesn't
513
require changes to the applications. It is something of an ugly hack
514
however, and does not yet fully support all features of the sound card
515
device, so some applications may not work.
523
I can't run &artsdsp; with any application, it always crashes!
528
You need a recent version of the glibc library; &artsdsp; will not work
529
reliably on some older &Linux; distributions. For instance, on Debian
530
2.1 (which is glibc 2.0 based) it doesn't work, while on Debian 2.2
531
(which is glibc 2.1.3 based), it does.
539
Are there theoretical limitations with some applications that will
540
prevent them from ever working with &artsdsp;?
545
No. Using &artsdsp; can result in slightly more latency and
546
<acronym>CPU</acronym> usage that using the &arts;
547
<acronym>API</acronym>s directly. Other than that, any application that
548
doesn't work should be considered a bug in &artsdsp;. The technique used
549
by &artsdsp; should, if implemented properly, allow
550
<emphasis>every</emphasis> application to work with it (including large
551
applications like <application>Quake</application> 3).
559
What can I do if an application doesn't work with &artsdsp;?
564
You can wait for &artsd; to suspend or use the command
565
<userinput><command>artsshell</command>
566
<option>suspend</option></userinput> to ask the server to suspend
567
itself. You will only be able to suspend the server if no &arts;
568
applications are currently using it, and no &arts; applications will be
569
able to run when the server is suspended.
573
If the server is busy, a crude but effective way to get rid of it is:
577
<screen><prompt>%</prompt> <userinput><command>killall</command> <option>artsd</option> ; <command>killall</command> <option>artswrapper</option></userinput>
578
<lineannotation>Now start your own application.</lineannotation>
579
<prompt>%</prompt> <userinput><command>kcminit</command> <option>arts</option></userinput>
583
Any currently running &arts; applications may crash, however, once you
591
What about applications written for &kde; 1.x?
596
If you are running &kde; 1.x applications, which output sound via the
597
&kde; 1 audio server, you will need to run
598
<application>kaudioserver</application> to make it work. You can start
599
<application>kaudioserver</application> in the same way than other
600
non-&arts;-applications:
604
<prompt>%</prompt> <userinput><command>artsdsp</command> <option>kaudioserver</option></userinput>
608
You will need to have installed kaudioserver (from the same source where
609
you got your &kde; 1.x applications from) - it belongs to &kde; 1.x, not
618
What about applications using the enlightened sound daemon,
619
<acronym>ESD</acronym>?
624
The issue is similar than with
625
<application>kaudioserver</application>. Such applications will need a
626
running esd server. You can start <command>esd</command> via &artsdsp;,
627
and every <acronym>ESD</acronym> aware application should work fine,
631
<prompt>%</prompt> <userinput><command>artsdsp</command> <option>esd</option></userinput>
640
<sect1 id="faq-latency">
641
<title>Latency</title>
648
I sometimes hear short pauses when listening to music, is this a bug?
653
This is most likely not a bug, but caused by the fact that the &Linux;
654
kernel is not very good at real-time scheduling. There are situations
655
where &arts; will not be able to keep up with playback. You can,
656
however, enable real-time rights (via &kcontrol;), and use a large
657
latency setting (like <guilabel>250ms</guilabel> or <guilabel>don't
658
care</guilabel>), which should improve the situation.
666
What's the effect of the response time setting?
671
The help text for this setting in the &kcontrol; can be misleading. A
672
lower value means that &arts; will take less time to respond to external
673
events (&ie;. the time that it takes between closing a window and
674
hearing a sound played by &artsd;). It will also use more
675
<acronym>CPU</acronym> resources, and be more likely to cause
683
Is there anything else I can do to prevent pauses?
688
For users of <acronym>IDE</acronym> drives, you can use the
689
<command>hdparm</command> command to put your <acronym>IDE</acronym>
690
drive in <acronym>DMA</acronym> mode. A word of warning: this does not
691
work on all hardware, and can result in having to do a hard reset or in
692
rare cases, data loss. Read the documentation for the
693
<command>hdparm</command> command for more details. I have successfully
694
used the following command:
698
<prompt>%</prompt> <userinput><command>hdparm</command> <option>-c1</option> <option>-d1</option> <option>-k1</option> <option>-K1</option> <parameter>/dev/hda</parameter></userinput>
702
You need to run this after every boot, so you might want to place it in
703
a system startup script (how to do this distribution specific, on Debian
704
&Linux; it is usually put in <filename>/etc/rc.boot</filename>).
712
Why is &artsd; taking so much <acronym>CPU</acronym> time?
717
Check your response time settings. However, the current version is not
718
yet really optimized. This will improve, and until then no real
719
prediction can be made how fast &artsd; can or can't be.
727
<sect1 id="faq-network">
728
<title>Network Transparency</title>
735
What do I need for network transparency?
740
Enable it in the &kcontrol; <guilabel>Sound Server</guilabel> settings
741
(<guilabel>enable X11 server for security information</guilabel> and
742
<guilabel>network transparency</guilabel>). Then copy your
743
<filename>.mcoprc</filename> to all machines you plan to use network
744
transparency from. Log in again. Make sure that the hosts that interact
745
know each other by name (&ie; they have resolvable names or are in
746
<filename>/etc/hosts</filename>).
750
This should be all you need to do. However, if it still doesn't work
751
here are some additional details. The &arts; sound server process,
752
&artsd;, should only run on one host, the one with the sound card where
753
the sound should be played. It can be started automatically on login by
754
&kde; (if you configure that in &kcontrol;), or manually using something
759
<prompt>%</prompt> <userinput><command>artsd</command> <option>-n</option> <option>-F</option> <parameter>5</parameter> <option>-S</option> <parameter>8192</parameter></userinput>
763
The <option>-n</option> parameter is for network transparency, while the
764
others configure latency.
768
Your <filename>.mcoprc</filename> file should have this entry:
772
<userinput>GlobalComm=Arts::X11GlobalComm</userinput>
776
on all machines involved, in order for network transparency to work,
777
This is what is enabled by the <guilabel>X11 server for security
778
information</guilabel> control panel setting.
782
Finally, in any &kde; version in the 2.0.x series, there is a bug which
783
applies if you don't have a domain name set. Clients of &artsd; try to
784
find where to connect to via the <systemitem
785
class="systemname"><replaceable>hostname</replaceable>.<replaceable>domainname</replaceable></systemitem>
786
combination. If your domain name is empty, it will try to connect to
788
class="systemname"><replaceable>hostname</replaceable></systemitem>. (note
789
the extra dot). Adding an entry like this to
790
<filename>/etc/hosts</filename> (&ie; <userinput>orion.</userinput> if
791
your hostname is <systemitem class="systemname">orion</systemitem>)
792
works around the problem.
801
How do I debug network transparency if it doesn't work?
806
Assuming you have the &kde; source code, go to <filename
807
class="directory">kdelibs/arts/examples</filename>, and run
808
<userinput><command>make</command> <option>check</option></userinput> to
809
compile some programs, including
810
<application>referenceinfo</application>. Then run
814
<prompt>%</prompt> <userinput><command>./referenceinfo</command> <option>global:Arts_SimpleSoundServer</option></userinput>
818
The output will indicate the host name and port being used by
819
&arts;. For example, <computeroutput>tcp:orion:1698</computeroutput>
820
would mean that any client trying to use network transparency should
821
know how to reach host <systemitem
822
class="systemname">orion</systemitem>.
830
<sect1 id="faq-other">
831
<title>Other Issues</title>
838
I can't use &artsbuilder;. It crashes when executing a module!
843
The most likely cause is that you are using old structures or modules
844
which aren't supported with the &kde; 2 version. Unfortunately the
845
documentation which is on the web refers to &arts;-0.3.4.1 which is
846
quite outdated. The most often reported crash is: that performing an
847
execute structure in &artsbuilder; results in the error message
848
<errorname>[artsd] Synth_PLAY: audio subsystem is already
853
You should use a Synth_AMAN_PLAY instead of a Synth_PLAY module and the
854
problem will go away. Also see the &artsbuilder; help file (hit
855
<keycap>F1</keycap> in &artsbuilder;).
859
Recent versions of &artsbuilder; (&kde; 2.1 beta 1 and later) come with
860
a set of examples which you can use.