1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE section SYSTEM "./tX.dtd">
3 <section name="main"> &db; <main>
5 <heading>Welcome to the terminatorX website!</heading>
7 <nopara>Bookmark this site as <link ref="http://terminatorX.cx">terminatorX.cx</link>. It's
8 located on <link ref="http://42.fht-esslingen.de">42.fht-esslingen.de</link>
12 <para>For those of you who drop by for the first time: terminatorX is a realtime audio
13 synthesizer that allows you to "scratch" on digitally sampled audio data
14 (*.wav, *.au, *.ogg, *.mp3, etc.) the way hiphop-DJs scratch on vinyl records. It features
15 multiple turntables, realtime effects (buit-in as well as <dblink id="ladspa"/> plugin
16 effects), a sequencer and MIDI interface - all accessible through an easy-to-use gtk+ GUI.
17 <bold>This software is designed to run under Linux, FreeBSD and the like</bold>. If you
18 have more questions read the <dblink id="faq"/>, <dblink id="manual">Manual</dblink>,
19 <dblink id="tutorial">Tutorial</dblink>, <dblink id="license">License</dblink> and if
20 you have further questions, suggestions, patches, <dblink
21 id="scratches">scratches</dblink> send me a <link ref="mailto:alex@lisas.de">mail</link>
27 <newsheader date="August 22"><link ref="download.html#Current Version">terminatorX V3.81</link>
28 available</newsheader>
30 <para>The new release introduces the following features:
32 <listitem><para>I've added a <bold>new audio back-end</bold> for the
33 <dblink id="jack">JACK Audio Connection Kit</dblink>. To make use of it
34 the JACK Daemon has to run <italic>before</italic> starting terminatorX.
35 <bold>Note:</bold> just before the release I noticed that JACK doesn't seem
36 to like clients running with SCHED_FIFO (realtime scheduling). So, if you use
37 the JACK back-end do not run terminatorX with realtime scheduling - the
38 capabilities based approach in JACK itself works fine (for more details
40 <link ref="http://jackit.sourceforge.net/docs/faq.php#a5">JACK FAQ entry</link>).
42 <listitem><para>A new <bold>Parameter Menu</bold>: simply right-click on the
43 parameter of your choice and set the MIDI mappings, bounds or delete events.
46 <screenshot filename="parameter_menu.png"/>
48 <listitem><para>The new <bold>MIDI Bounds</bold> let you modify the range
49 within which a MIDI controller can effect a certain parameter.
53 <para>The new <bold>MIDI Learn</bold> mode provides a much simpler
54 method of mapping MIDI events than the "regular" MIDI mappings dialog.
57 <listitem><para>terminatorX now tries to <bold>reconnect to previously connected MIDI
58 devices</bold> on startup. Might only work with hardware devices (and can
59 therefor be disabled).</para>
62 <para>I finally got sick of green: you can now <bold>adjust the
63 colors</bold> of terminatorX' own widgets (audio signal display and
68 <para>You can now <bold>erase events from the sequencer</bold> for
69 either a complete turntable or a specific parameter for either
70 the complete song or from or upto the current song position.
75 There's a new <bold>Confirm Recorded Events</bold> mode that allows
76 you to discard a take if you're not satisfied with it.
80 <para>Support for <bold>Linux' POSIX capabilities</bold> implementation
81 brings a new, <italic>possibly safer</italic> way of running terminatorX
82 suid-root to achieve realtime scheduling (see the yet again updated
83 <link ref="faq.html#11">FAQ entry</link>).
87 <para>There's a new <bold>Default MIDI Mapping</bold> for the standard
88 parameters, so you don't have to create too many mappings yourself (if the
89 default map suits your needs of course). The defaults are documented
90 in the terminatorX manual.
96 Additonally this release fixes a lot of bugs:
100 Fixed the problems that where found with the old suid-root approach.
101 However there could be other ways to exploit this, so I recommend
102 using the new capabilities based approach instead - if you really want to run
103 terminatorX suid-root. If you want to use the old approach you'll
104 have to run configure with <screen>--enable-suidroot</screen>.
108 <para>compiles with gcc flavours from 2.95 to 3.3.1 (tested)</para>
111 <para>setting <italic>Sync Client</italic> via MIDI now works
115 <para>lots of code cleanups, now compiles with
116 <screen>G*_DISABLE_DEPRECATED</screen> macros enabled.
120 <para>fixed restoring of master volume setting
124 <para>introduced a workaround for
125 <link ref="http://www-stud.fht-esslingen.de/bugzilla/show_bug.cgi?id=4">Bug #4</link>, so
126 if the ALSA back-end segfaults for you, check you have "Free HW Stats"
131 <para>corrected clearing of events for the master parameters
135 <para>fixed a FreeBSD issue with the configure script.
140 <para>OK, I hope this release works for you, if you want to check it out
141 grab it from the <dblink id="download"/>.
146 <newsheader date="August 05">Updates, 3.81 on the way</newsheader>
148 <para>As shown in this <link ref="http://www.securityfocus.com/archive/1/328469">bugtraq
149 post</link> by <person>
150 <name>Andrew Griffiths</name>
151 <email>andrewg@felinemenace.org</email>
152 </person> installing terminatorX suid root is <bold>exploitable</bold>. Although you had been
153 warned before, I decided to change my <link ref="faq.html#11">recommendation</link>.
154 To make bug tracking easier in the future I've setup a
155 <dblink id="bugs">bugzilla</dblink> for terminatorX.</para>
156 <para>Additionally the website now features a new <dblink id="links"/>.</para>
159 <name>Arthur Moore</name>
160 <email>art@infinitybox.net</email>
161 </person> is a "twentieth-century" composer who is using terminatorX for his
163 added three of his compositions to the <dblink id="scratches"/> to find out more about
164 the author and his music check out his <link ref="http://infinitybox.net">site</link>.</para>
165 <para>The kind people of <dblink id="sonar"/> invited me to do a demonstration at this
166 year's festival. As a side effect I was actually forced to <bold>use</bold> terminatorX,
167 so I found and fixed quite some annoying bugs with the upcoming 3.81 release.
168 Additionally it will feature MIDI and sequencer improvements and a <dblink id="jack"/>
173 <newsheader date="April 18">
174 <link ref="download.html#Current Version">terminatorX 3.80</link> and <link
175 ref="aseqjoy.html">aseqjoy 0.0.1</link>
178 <para>This terminatorX release does a very good job at extinguishing points from my
179 TODO-for-4.0 list. Among other things this release introduces: <itemizedlist>
181 <para>Finally terminatorX has a <bold>native</bold>
183 <bold>back-end</bold>. See the new <italic>Preferences</italic> dialog and the
184 online manual for details. The ALSA and the OSS back-ends now both support
185 operating at an <bold>arbitrary sampling rate</bold>.</para>
188 <screenshot filename="shot-3.80-1.png">
189 <nopara>Scrolling audio data, a menu bar and even less space consumption for small
194 <para>The audio data display is now <bold>zoomable</bold>. This helps scratching
195 large audio files (like complete songs) significantly. Use the slider on the right
196 of the display area to adjust the zoom level. When playing the audio data will
197 scroll in such a manner that the current position is always centered.</para>
198 <para>To optimize playback performance terminatorX does a lot of
199 "zoom" calculations in advance - so adjusting the slider will
200 cause quite some amount of recalculation on large audio files. The focused
201 turntable now has a blue background and a yellow audio signal instead of the old
205 <para>A <bold>MIDI interface</bold> thanks to a patch by <person>
206 <name>Arthur Peters</name>
207 <email>amp@singingwizard.org</email>
208 </person>. The MIDI interface is based upon the <dblink id="alsa"/> sequencer API,
209 so you'll have to connect terminatorX' input port to an output port of your choice
210 with either <screen>aconnect</screen> or for example the <link
211 ref="http://pkl.net/~node/alsa-patch-bay.html"> alsa-patch-bay</link>. To map a
212 MIDI controller or note events to a turntable's parameter click the <italic>MIDI
213 Mapping</italic> button.</para>
214 <para>In order to test the new interface I hacked a little tool called <dblink
215 id="aseqjoy"/> that emits MIDI controller messages based on Joystick motion.</para>
218 <para>I finally untied audio rendering and audio back-end. terminatorX now operates
219 at a <bold>fixed internal block size</bold> of 1 ms. So now it doesn't matter
220 anymore with which block size events were recorded - they will be played back
221 correctly with any audio device block size.</para>
222 <para>Note that a minor problem remains: the sampling rate has an effect on the
223 block size, too. While there is no problem switching from 22 or 32 kHz to 48 kHz,
224 there will be a slight rounding error switching from or to 44.1 kHz. So if you
225 record and playback events I suggest you keep the sampling rate the same, or use
226 "straight" sampling rates like 22, 32 and 48 kHz only.</para>
229 <para>I added a little <bold>pitch calculator</bold> that allows adjusting the
230 playback speed of a turntable to that of the master turntable so it is very easy
231 to synchronize (<italic>precisely cut</italic>) loops now. Note that this feature
232 is probably useless with large audio files (like complete songs).</para>
235 <para>Advancing the use of XML: many XML-related bugs have been fixed, and I moved
236 the <bold>set file format to XML</bold>, too. The MIDI mappings of parameters will
237 be stored within set files, too. As XML set files with a lot of sequencer events
238 can grow quite big tX supports writing <bold>gzip compressed set files</bold>
239 through the use of <link ref="http://www.zlib.org">zlib</link>.</para>
242 <para>Thanks to a suggestion by <person>
243 <name>Darrick Servis</name>
244 <email>darrick@dcn.davis.ca.us</email>
245 </person> terminatorX <bold>no longer clips audio</bold>. If the generated
246 amplitude goes beyond the maximum it will simply be cut off.</para>
249 <para>Further cleaning up the layout for small DJ laptop displays: moved some
250 buttons to a <bold>menu bar</bold> to waste less space. Additionally you can now
251 hit <screen>F11</screen> to enter <bold>full screen</bold> mode - if your window
252 manager supports <italic>NETWM</italic>.</para>
255 <para>Dropped support for the old gtk+ 1.2 - you have to use gtk+ >= 2.0, now.</para>
259 <para>This release has seen quite some <link
260 ref="http://developer.kde.org/~sewardj">valgrinding</link> so it should run rather
261 stable and a major memory leak has been fixed, too. Unlike 3.73 this one compiles with gcc
262 > 3.0 with <screen>-Wall</screen> and <screen>-Werror</screen> enabled. Well, the
263 version number ends in a zero, which means lots of new code with possibly lots of new
264 and yet undiscovered bugs. </para>
268 <newsheader date="18 Sep">
269 <link ref="download.html#Current Version">terminatorX V3.73</link> available, <link
270 ref="http://www.debian.org">Debian</link> inclusion + a <dblink id="tutorial"/>
273 <para>Aside of fixing numerous bugs, the new release does have some new features: <itemizedlist>
275 <para>I ported terminatorX to <link ref="http://www.gtk.org">gtk+</link>
276 <bold>Version 2</bold> so tX should integrate nicely with your GNOME 2 desktop.
277 This release still builds with the old gtk+ 1.2, too, but I don't plan to support
278 it much longer.</para>
283 <para>I reworked the GUI a bit in order to make terminatorX fit better on those
284 small DJ-laptop displays. Audio and control panels can now be minimized to a
285 <bold>panel bar</bold> to save space - works just like GNOME's window list. The
286 panel bar status is stored within set files and restored upon loading. Additionally
287 the buttons of the audio panel have been restructured. To lighten up the GUI five
288 buttons have been merged into <bold>two</bold> - on clicking one of these you'll
289 get a popup menu with all previous functionality.</para>
292 <para>After spending an evening with Adrian in front of his big endian system fixing
293 the audio file loading routines, I decided that loading audio files through a pipe
294 is an ugly hack. Therefor I wrote <bold>three new audio file loading
295 methods</bold> that utilize libraries instead of pipes. These are <link
296 ref="http://www.mars.org/home/rob/proj/mpeg/"> mad</link> (for mp3 files), <link
297 ref="http://www.xiph.org/ogg/vorbis/">libvorbis</link> (for OGG/Vorbis files) and
298 <link ref="http://www.68k.org/~michael/audiofile/"> libaudiofile</link> (for
299 wav/aiff/au etc.). Using these routines instead of the old ones brings the
300 following advantages: <itemizedlist>
302 <para>loading audio files is significantly <bold>faster</bold>
306 <para>terminatorX now evaluates the <bold>sample rate</bold> of an audio file
307 and adjusts the turntable's pitch accordingly (this does not affect the
308 regular "pitch" setting BTW)</para>
311 <para>the new routines provide much better <bold>visual feedback</bold> on the
312 loading progress</para>
314 </itemizedlist>Additionally more file formats are supported, so I strongly
315 recommend installing the libraries mentioned above to improve terminatorX' usability.</para>
318 <para>Slowly approaching terminator <bold>XML</bold>: the configuration file (now
319 <italic>~/.terminatorXrc</italic>) is no longer binary but an XML document. This
320 is necessary to become more flexible in the future - and it allows editing your
321 terminatorX configuration with a text editor - if you want to. Of course,
322 terminatorX now requires <link ref="http://www.libxml.org">libxml</link> to be
323 installed. For convenience this release still reads the old binary con figuration and
324 stores it as an XML document on exit. I plan to move the set file format to XML
328 <para>I completely rewrote the <italic>tX_engine</italic> in order to allow
329 installing terminatorX <bold>suid root</bold>. This way terminatorX can run with
330 realtime scheduling policy even for unprivileged users. Right after creation of
331 the engine thread terminatorX drops root privileges - so it might even be safe to
332 install terminatorX suid root - but I'll leave that up to security experts to
333 decide. For a more detailed discussion read <link ref="faq.html#11">this FAQ entry</link>.</para>
336 <para>Playing around with the wonderful <link
337 ref="http://www.povray.org">povray</link> a bit I came up with a new logo for
338 terminatorX. The icons have been replaced, too - the new ones should be easier for
339 your desktop perception.</para>
342 <para>Thanks to <person>
344 <email>adrian@lisas.de</email>
345 </person> terminatorX now has a <bold>manpage</bold>.</para>
349 <para>A lot of bug fixing went into this release, too, most notably: <itemizedlist>
351 <para>An old clipping bug in the <italic>tX_dial</italic> widget code has been fixed.</para>
354 <para>This release builds, runs and loads audio files on big endian architectures.</para>
357 <para>terminatorX should now build from scratch not only on Linux but on FreeBSD,
358 too. Thanks to <person>
359 <name>Tilman Linneweh</name>
360 <email>tilman@arved.de</email>
361 </person> for testing.</para>
364 <para>Many other fixes.</para>
366 </itemizedlist>Have a look at the <link ref="ChangeLog">ChangeLog</link> for more
367 details and grab the tarball or the RPMs from the <link
368 ref="download.html#Current Version">download section</link>.</para>
369 <para>Aside of the release I'd like to bring to your attention that <person>
370 <name>Mike Furr</name>
371 <email>mfurr@debian.org</email>
372 </person> is now maintainer of the <link
373 ref="http://packages.debian.org/unstable/sound/terminatorx.html"> terminatorX Debian
374 package</link>. So if you're a Debian user you may want to <italic>apt-get</italic> this
375 release - if you install <italic>unstable</italic> packages at all and when your local
376 mirror has been updated.</para>
377 <para>For new terminatorX users <person>
379 <email>bredfern@calarts.edu</email>
380 </person> has created a wonderful step-by-step <dblink id="tutorial">
381 "terminatorX TOOT" tutorial</dblink> - reading that will accelerate
382 the creation of your first scratch considerably.</para>
386 <newsheader date="31 Jul">
387 <dblink id="turntables">Turntable gallery</dblink> online and a fresh <dblink id="scratches">scratch</dblink>
390 <para>I finally managed to hack the website's DTD and XSLT stylesheet to support the <link
391 ref="turntable.html">users' turntable section</link>. Now that it's easy to update,
392 please keep these turntable images coming in! I'd really like to see more of your turntables.</para>
396 <email>bredfern@calarts.edu</email>
397 </person> - a California based terminatorX DJ - has contributed a very cool scratch for
398 the <dblink id="scratches">scratches section</dblink>. It's just an excerpt of a
399 complete drum and bass set that is available at Brian's <link
400 ref="http://asapien.org">website</link> - which seems to be down currently. In case it
401 doesn't come up again I'll mirror the complete set here, too.</para>
403 <italic>The names have been changed to protect the innocent...</italic> from
404 <bold>spamming</bold>. The XSLT stylesheet now mangles all email addresses on this site
405 except for mine - if you've seen a correct email address before you should be able to
406 recover the real address easily. BTW if you're a spam victim, too, add the incredible
407 <link ref="http://spamassassin.org">spamassassin</link> to your
408 <italic>.procmailrc</italic> and spam won't annoy you anymore.</para>
409 <para>On terminatorX news Version 3.73 should be ready for release RSN! It will probably
410 still lack native ALSA support, though.</para>
414 <newsheader date="05 jan">happy new year: <link
415 ref="download.html#Current Version">terminatorX V3.72</link> is here.</newsheader>
417 <para>Hope everybody had a nice start into 2002, these are the changes that come with
418 terminatorX release 3.72 (for details check the <dblink id="changelog"/>): <itemizedlist>
420 <para>Thanks to a patch from <person>
421 <name>Matthew Evans</name>
422 <email>activesx@hotmail.com</email>
423 </person>terminatorX finally supports loading <link
424 ref="http://www.vorbis.com">Ogg Vorbis</link> audio files. Note that this feature
425 requires ogg123 (>= RC2) and <link
426 ref="http://sox.sourceforge.net">sox</link> installed. The very fresh RC3 release
427 of Ogg Vorbis works just fine, too.</para>
433 <email>adrian@lisas.de</email>
434 </person>once again submitted code to the project: terminatorX now features
435 <bold>mute</bold> and <bold>solo</bold> buttons for each turntable's mixing unit.
436 The initial patch had some problems with the already existing mute-function in
437 terminatorX, therefor I extended the turntable in such a way that the new buttons
438 <bold>only affect current mixing</bold> - the sequencer will not record any
439 events for them.</para>
442 <para>I updated the XInput code to work with XFree86 > 4. terminatorX now
443 uses the <italic>xsetpointer</italic> binary that comes with XFree86 to switch the
444 core pointer - as the old code doesn't work with newer XFree86 releases anymore.
445 <italic>configure</italic> should auto-detect <italic>xsetpointer</italic> if it's
446 available. <bold>Note:</bold> You only need to specify an additional XInput Device
447 in the options dialog if you want to use a scratching device other than your
448 mouse. (Yeah, I know, I state that in the docs, tooltips, everywhere - but I still
449 get bug reports related to that issue...)</para>
452 <para>Updated mpg123 loading routines that should work with <link
453 ref="http://mpg321.sourceforge.net">mpg321</link> (which many distros install
454 instead of mpg123 these days), too. Note that you'll have to have <link
455 ref="http://sox.sourceforge.net">sox</link> installed in order to get mp3-loading
456 to work (As mpg321 doesn't support mpg123's <italic>-m</italic> switch).</para>
459 <para>fixes for misc bugs (writing broken .wav's on big endian machines, gcc
460 >= 3.x compile fixes, some gtk+ cleanups, etc.)</para>
464 <para>Grab the sources or the fresh RPMs (Thanks, <person>
466 <email>adrian@lisas.de</email>
467 </person>!) from the <link ref="download.html#Current Version">download section</link>.</para>
468 <para>Initially I planned to integrate native <link
469 ref="http://www.alsa-project.org">ALSA</link>-support into this release but I simply
470 failed to finish. As many people wanted to have some of the above features early I
471 decided to release it without ALSA now, as I'll be busy for the upcoming weeks. I
472 haven't given up on ALSA though, hopefully the next terminatorX release will feature a
473 new audio device back-end that supports ALSA (V0.9) <bold>and</bold> OSS and brings many
474 other advantages.</para>
475 <para>The website has undergone minor updates, too: <itemizedlist>
477 <para>The section header's now should look fine with <link
478 ref="http://www.mozilla.org">Mozilla</link>-based browsers. They might look funny
479 with older Netscape releases, though.</para>
482 <para>Updated the <link ref="screenshots.html">screenshots</link> as people started
483 asking howto achieve that old tX V3.5 layout :)</para>
486 <para>Minor fixes to make <link ref="http://www.w3.org">W3C</link>'s validator
487 accept the pages again, and a favicon that needs some improvement.</para>