a3bc99cccdde245701d2ae9b03647b62691e70b2
[terminatorX.git] / website / faq.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE section SYSTEM "./tX.dtd"[
3 ]>
4 <section name="faq">
5   <faq>
6     <qa>
7       <question>What is terminatorX?</question>
8       <answer>
9         <para>terminatorX is a realtime audio synthesizer that allows you to
10           scratch on digitally sampled audio data (*.wav, *.au, *.mp3, etc.)
11           the way hiphop-DJs scratch on vinyl records. It features multiple
12           turntables, realtime effects and an easy-to-use gtk+ GUI. The latest
13           feature is the builtin sequencer. <bold>This software runs under
14             LINUX only.</bold>
15         </para>
16       </answer>
17     </qa>
18
19     <qa>
20       <question>What does it cost?</question>
21       <answer>
22         <para>Nothing. TerminatorX is free software. Read the
23           <link ref="COPYING">license</link> (GPL V2).
24         </para>
25       </answer>
26     </qa>
27
28     <qa>
29       <question>What platforms does it run on?</question>
30       <answer>
31         <para>TerminatorX should run on any recent Linux system. I develop
32           terminatorX on an X86-System, but the source contains support for
33           bigendian machines (PowerPC for example). If you experience platform
34           related troubles, please let me know.
35         </para>
36       </answer>
37     </qa>
38
39     <qa>
40       <question>What audio quality is supported? </question>
41       <answer>
42         <para>TerminatorX operates at 16Bit / 44.1 kHz / Stereo
43           (Since 3.71). Samples will be converted to Mono on
44           loading.
45         </para>
46       </answer>
47     </qa>
48
49     <qa>
50       <question>
51         Why does it take terminatorX so long to load samples?
52       </question>
53       <answer>
54         <para>This depends on the file your loading. Wavfiles are loaded with
55           the builtin wavloading routines (if enabled on compiletime) and this
56           happens very fast. Other files will be opened through either sox or
57           mpg123 and that may consume quite some time.
58         </para>
59         <para>
60           Since Version 3.73 loading of audiofiles has been
61           significantly accelerated with the libaudiofile, libvorbis and
62           mad methods.
63         </para>
64       </answer
65         ></qa>
66
67     <qa>
68       <question>Why doesn't terminatorX support streaming? </question>
69       <answer>
70         <para>Oh well due to my laziness I guess.
71           <person>
72             <name>Benno Senoner</name>
73             <email>sbenno@gardena.net</email>
74           </person> wrote a
75           <link ref="http://www.gardena.net/benno/linux/terminatorX-3.2-mmap.patch">patch</link>
76           against 3.2 to support &quot;on-the-fly&quot; reading of wavfiles.
77           The problem is the patch wasn't applyable to later versions of
78           terminatorX, nor would it work with sox/mpg123 support.
79           I still plan to port the patch to the newer releases sometime.
80         </para>
81       </answer>
82     </qa>
83
84     <qa>
85       <question>
86         How can I use a second mouse, a joystick or other input devices for
87         scratching?
88       </question>
89       <answer>
90         <para>Well, you need to configure this mouse as an XFree86 XInput
91           devices and from what I've read I assume you'll need to have XFree86
92           3.3.3.1 or higher. If you want to know how to do this read your
93           XF86Config manual page (run man XF86Config) and find the part on
94           "the optional XInput section". If you successfully configured your
95           second (third ...) mouse / input device for XFree86 you now need to
96           turn on XInput-support in the Options-dialog of terminatorX and you
97           have to select the XInput device you want terminatorX to
98           initialize. Now either press "Apply" or "Ok" and you should be able
99           to scratch with that devices next time you press "Start". I haven' t
100           tested joysticks though.... 
101         </para>
102       </answer>
103     </qa>
104
105     <qa>
106       <question>Why do I get &quot;./terminatorX: undefined symbol:
107         _t24__default_alloc_template2b1i0.free_list&quot; when I run
108         terminatorX?
109       </question>
110       <answer>
111         <para>You proabably downloaded the binary-rpm-package and your
112           libstdc++ is outdated. This seems to occur on Mandrake systems only.
113           Upgrading with a newer libstdc++ package should fix this.
114         </para>
115       </answer>
116     </qa>
117
118     <qa>
119       <question>
120         Why do I get &quot;tX_seqpar.h:25: list: No such file or
121         directory&quot; when building terminatorX myself?
122       </question>
123       <answer>
124         <para>You don't have the libstdc++ headers installed. Install the
125           libstdc++-devel package for the libstdc++-package you have installed.
126         </para>
127       </answer>
128     </qa>
129
130
131     <qa>
132       <question>What can I do if my mouse doesn't work in scratch mode?
133       </question>
134       <answer>
135         <para>Now this issue is rather tricky, as it seems a lot of problems
136           can be the reason here, but there are some things you can try:
137           <itemizedlist>
138             <listitem>
139               <nopara>Make sure that your X-Server supports XFree86-DGA. Remove
140                 any lines that read</nopara><para><screen>Option
141                   "omit xfree86-dga"</screen></para><para> from your <screen>XF86Config</screen>. Check
142                 whether the Server loaded dga by running <bold>xdpyinfo
143                 </bold> - if DGA is loaded one of the lines you get from
144                 xdpyinfo should read <italic>XFree86-DGA</italic>. To check
145                 whether DGA actually works run <bold>dga</bold> as root -
146                 <red>Warning:</red> the only way to exit this tool is
147                 pressing 'q' on your keyboard - and it might take some seconds
148                 until it reacts.
149               </para>
150             </listitem>
151             <listitem>
152               <nopara>Try running terminatorX as root. This fixes the problem
153                 for most people.
154               </nopara>
155             </listitem>
156           </itemizedlist>
157         </para>
158         <para>If all this doen't help let me know.
159         </para>
160       </answer>
161     </qa>
162     <qa>
163       <question>Should I install terminatorX suid root?</question>
164           <answer>
165             <para>
166               Installing terminatorX <italic>suid root</italic> improves
167               terminatorX' performance significantly for non-root users
168               - as terminatorX will use the suid-root privileges to
169               create the engine thread with
170               realtime-scheduling-priority. Immediatley after the
171               creation of the thread terminatorX drops root privileges
172               before any files or devices are accessed. The problem is:
173               the Linux pthreads manager thread can not be told to drop
174               it's root privileges, which means that while the two
175               threads executing terminatorX code run with the real
176               user's privileges, the pthread manager thread still runs
177               with root-privileges. While I cannot see how a malicious
178               user or software could utlize this thread to acquire root
179               privileges it might still be possible, so you'll have to
180               make your on decision on performance vs security.
181             </para>
182           </answer>
183     </qa>
184     <qa>
185       <question>
186         How do I install terminatorX  suid root?</question>
187           <answer>
188             <para>As root <italic>cd</italic> into the directory you
189               installed terminatorX to (typically that is
190               <italic>/usr/local/bin</italic> or 
191               <italic>/usr/bin</italic>) and run the following
192               commandline:
193             </para>
194             <para>
195               <screen>chown root: ./terminatorX &amp;&amp; chmod u+s ./terminatorX</screen>
196             </para>
197           </answer>
198     </qa>
199     <qa>
200       <question>Where does the name come from?</question>
201       <answer>
202         <para>If you don't know find out a little something about
203           <link ref="http://www.publicenemy.com">Public Enemy</link>. Learn
204           who <link ref="http://www.publicenemy.com/soldiers/termx.php">
205             TerminatorX</link> is or
206           <link ref="http://www.publicenemy.com/gallery/images/txday.jpg">see him</link>
207           do his work
208         </para>
209       </answer>
210     </qa>
211   </faq>
212 </section>
213