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