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