1 <?xml version="1.0" encoding="iso-8859-1"?>
2 <!DOCTYPE section SYSTEM "./tX.dtd"[ ]>
6 <question>What is terminatorX?</question>
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
15 <bold>This sofware is designed to run under Linux, FreeBSD and the
20 <question>What does it cost?</question>
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>
29 <question>What platforms does it run on?</question>
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>
38 <question>What audio quality is supported?</question>
40 <para>TerminatorX operates at an arbitrary sampling rate with 16Bit
41 samples and 2 channels (aka stereo). Samples will be converted to mono
46 <question>Why does it take terminatorX so long to load
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>
58 <question>Why doesn't terminatorX support mmap'ed wav reading?</question>
60 <para>Oh well due to my laziness I guess.
62 <name>Benno Senoner</name>
63 <email>sbenno@gardena.net</email>
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>
73 <question>How can I use a second mouse, a joystick or other input devices
74 for scratching?</question>
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
95 <question>Why do I get "./terminatorX: undefined symbol:
96 _t24__default_alloc_template2b1i0.free_list" when I run
97 terminatorX?</question>
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>
105 <question>Why do I get "tX_seqpar.h:25: list: No such file or directory"
106 when building terminatorX myself?</question>
108 <para>You don't have the libstdc++ headers installed. Install the
109 libstdc++-devel package for the libstdc++-package you have
114 <question>What can I do if my mouse doesn't work in scratch
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:
121 <nopara>Make sure that your X-Server supports XFree86-DGA. Remove
122 any lines that read</nopara>
124 <screen>Option "omit xfree86-dga"</screen>
127 <screen>XF86Config</screen>. Check whether the Server loaded dga by
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
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
139 <nopara>Try running terminatorX as root. This fixes the problem for
140 most people.</nopara>
142 </itemizedlist></para>
143 <para>If all this doen't help let me know.</para>
147 <question>Should I install terminatorX suid root?</question>
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>
165 <question>How do I install terminatorX suid root?</question>
168 <italic>cd</italic> into the directory you installed terminatorX to
170 <italic>/usr/local/bin</italic> or
171 <italic>/usr/bin</italic>) and run the following commandline:</para>
173 <screen>chown root: ./terminatorX && chmod u+s
174 ./terminatorX</screen>
179 <question>Is there a Windows version of terminatorX?</question>
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>
186 <question>Where does the name come from?</question>
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>