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