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.org">terminatorX.org</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="November 3rd"><link ref="download.html#Current Version">terminatorX V3.82</link>
28 available and fresh <dblink id="turntables">turntables</dblink></newsheader>
30 <para><img filename="webknob.jpg" align="right"/>
31 Some fresh code finally! Here's what's new with this release:
34 <listitem><para>Support for <bold>stereo LADSPA plugins</bold>. Each
35 turntable now features a stereo effect queue that follows the
36 mono queue. Click the "Stereo FX" button to add stereo plugins
37 to a turntable's effect queue.
39 <listitem><para>Every plugin can now have an extra <bold>Dry/Wet control</bold>
40 if required. Click on a plugin's label to add or remove
44 <para>You can now map <bold>MIDI controllers reverse</bold>: this introduces
45 the possibilty to map a MIDI controller as a crossfader for two (or more)
50 <person><name>Adam King</name><email>aking@lgh.com.au</email></person> contributed
51 a patch that adds <bold>simpler minimization</bold> for control panels and a fix for
52 a sequencer menu crash.
55 This release supports the gtk+ <bold>filechooser</bold> where available.
57 <listitem><para>All VU meters now display the <bold>stereo signal</bold>.
59 <listitem><para>For security reasons the old suid-root method has <bold>gone</bold> - the
60 POSIX capabilties-based method remains available as it's currently believed to
66 From the unnecessary-eye-candy dept.: this release
67 features <bold>new icons</bold> I've drawn with the cool
68 <link ref="http://www.inkscape.org">inkscape</link> and a <bold>new
69 control knob</bold> I've created with the wonderful
70 <link ref="http://www.povray.org">povray</link>. And of course
71 I've used the <link ref="http://www.gimp.org">Gimp</link> all over
72 the place. All images should now blend smoothly with your
78 For more details check the <dblink id="changelog"/>. As usual I've verified this release
79 to build with all gcc releases from 2.95 to 3.4, it fixes a
80 a whole lot of bugs and it's available from the <dblink id="download"/>.
83 Additionally I finally managed to add two new turntables to the
84 <dblink id="turntables"/>. <person>
86 <email>curious@pb194.luban.sdi.tpnet.pl</email>
87 </person> turntable is based on a new belt-driven approach while
90 <email>aking@lgh.com.au</email>
91 </person> turntable is interesting from the inside as well as the
97 <newsheader date="August 22"><link ref="download.html#Current Version">terminatorX V3.81</link>
98 available</newsheader>
100 <para>The new release introduces the following features:
102 <listitem><para>I've added a <bold>new audio back-end</bold> for the
103 <dblink id="jack">JACK Audio Connection Kit</dblink>. To make use of it
104 the JACK Daemon has to run <italic>before</italic> starting terminatorX.
107 <bold>Note:</bold> JACK seems to lockup when clients run with realtime
108 scheduling (SCHED_FIFO) - terminatorX can work around this when running
109 with capabilities, but not with the old <screen>--enable-suidroot</screen>
110 mode - so don't enable it when you want to use the JACK back-end. Reniceing
111 via libjack works fine btw (see this
112 <link ref="http://jackit.sourceforge.net/docs/faq.php#a5">JACK FAQ entry</link>).
114 <listitem><para>A new <bold>Parameter Menu</bold>: simply right-click on the
115 parameter of your choice and set the MIDI mappings, bounds or delete events.
118 <screenshot filename="parameter_menu.jpg"><nopara>Parameter Menu</nopara></screenshot>
120 <listitem><para>The new <bold>MIDI Bounds</bold> let you modify the range
121 within which a MIDI controller can effect a certain parameter.
125 <para>The new <bold>MIDI Learn</bold> mode provides a much simpler
126 method of mapping MIDI events than the "regular" MIDI mappings dialog.
129 <listitem><para>terminatorX now tries to <bold>reconnect to previously connected MIDI
130 devices</bold> on startup. Might only work with hardware devices (and can
131 therefor be disabled).</para>
134 <para>I finally got sick of green: you can now <bold>adjust the
135 colors</bold> of terminatorX' own widgets (audio signal display and
140 <para>You can now <bold>erase events from the sequencer</bold> for
141 either a complete turntable or a specific parameter for either
142 the complete song or from or upto the current song position.
147 There's a new <bold>Confirm Recorded Events</bold> mode that allows
148 you to discard a take if you're not satisfied with it.
152 <para>Support for <bold>Linux' POSIX capabilities</bold> implementation
153 brings a new, <italic>possibly safer</italic> way of running terminatorX
154 suid-root to achieve realtime scheduling (see the yet again updated
155 <link ref="faq.html#11">FAQ entry</link>).
159 <para>There's a new <bold>Default MIDI Mapping</bold> for the standard
160 parameters, so you don't have to create too many mappings yourself (if the
161 default map suits your needs of course). The defaults are documented
162 in the terminatorX manual.
168 Additonally this release fixes a lot of bugs:
172 Fixed the problems that where found with the old suid-root approach.
173 However there could be other ways to exploit this, so I recommend
174 using the new capabilities based approach instead - if you really want to run
175 terminatorX suid-root. If you want to use the old approach you'll
176 have to run configure with <screen>--enable-suidroot</screen>.
180 <para>compiles with gcc flavours from 2.95 to 3.3.1 (tested)</para>
183 <para>setting <italic>Sync Client</italic> via MIDI now works
187 <para>lots of code cleanups, now compiles with
188 <screen>G*_DISABLE_DEPRECATED</screen> macros enabled.
192 <para>fixed restoring of master volume setting
196 <para>introduced a workaround for
197 <link ref="http://www-stud.fht-esslingen.de/bugzilla/show_bug.cgi?id=4">Bug #4</link>, so
198 if the ALSA back-end segfaults for you, check you have "Free HW Stats"
203 <para>corrected clearing of events for the master parameters
207 <para>fixed a FreeBSD issue with the configure script.
212 <para>OK, I hope this release works for you, if you want to check it out
213 grab it from the <dblink id="download"/>.
218 <newsheader date="August 05">Updates, 3.81 on the way</newsheader>
220 <para>As shown in this <link ref="http://www.securityfocus.com/archive/1/328469">bugtraq
221 post</link> by <person>
222 <name>Andrew Griffiths</name>
223 <email>andrewg@felinemenace.org</email>
224 </person> installing terminatorX suid root is <bold>exploitable</bold>. Although you had been
225 warned before, I decided to change my <link ref="faq.html#11">recommendation</link>.
226 To make bug tracking easier in the future I've setup a
227 <dblink id="bugs">bugzilla</dblink> for terminatorX.</para>
228 <para>Additionally the website now features a new <dblink id="links"/>.</para>
231 <name>Arthur Moore</name>
232 <email>art@infinitybox.net</email>
233 </person> is a "twentieth-century" composer who is using terminatorX for his
235 added three of his compositions to the <dblink id="scratches"/> to find out more about
236 the author and his music check out his <link ref="http://infinitybox.net">site</link>.</para>
237 <para>The kind people of <dblink id="sonar"/> invited me to do a demonstration at this
238 year's festival. As a side effect I was actually forced to <bold>use</bold> terminatorX,
239 so I found and fixed quite some annoying bugs with the upcoming 3.81 release.
240 Additionally it will feature MIDI and sequencer improvements and a <dblink id="jack"/>
245 <newsheader date="April 18">
246 <link ref="download.html#Current Version">terminatorX 3.80</link> and <link
247 ref="aseqjoy.html">aseqjoy 0.0.1</link>
250 <para>This terminatorX release does a very good job at extinguishing points from my
251 TODO-for-4.0 list. Among other things this release introduces: <itemizedlist>
253 <para>Finally terminatorX has a <bold>native</bold>
255 <bold>back-end</bold>. See the new <italic>Preferences</italic> dialog and the
256 online manual for details. The ALSA and the OSS back-ends now both support
257 operating at an <bold>arbitrary sampling rate</bold>.</para>
260 <screenshot filename="shot-3.80-1.png">
261 <nopara>Scrolling audio data, a menu bar and even less space consumption for small
266 <para>The audio data display is now <bold>zoomable</bold>. This helps scratching
267 large audio files (like complete songs) significantly. Use the slider on the right
268 of the display area to adjust the zoom level. When playing the audio data will
269 scroll in such a manner that the current position is always centered.</para>
270 <para>To optimize playback performance terminatorX does a lot of
271 "zoom" calculations in advance - so adjusting the slider will
272 cause quite some amount of recalculation on large audio files. The focused
273 turntable now has a blue background and a yellow audio signal instead of the old
277 <para>A <bold>MIDI interface</bold> thanks to a patch by <person>
278 <name>Arthur Peters</name>
279 <email>amp@singingwizard.org</email>
280 </person>. The MIDI interface is based upon the <dblink id="alsa"/> sequencer API,
281 so you'll have to connect terminatorX' input port to an output port of your choice
282 with either <screen>aconnect</screen> or for example the <link
283 ref="http://pkl.net/~node/alsa-patch-bay.html"> alsa-patch-bay</link>. To map a
284 MIDI controller or note events to a turntable's parameter click the <italic>MIDI
285 Mapping</italic> button.</para>
286 <para>In order to test the new interface I hacked a little tool called <dblink
287 id="aseqjoy"/> that emits MIDI controller messages based on Joystick motion.</para>
290 <para>I finally untied audio rendering and audio back-end. terminatorX now operates
291 at a <bold>fixed internal block size</bold> of 1 ms. So now it doesn't matter
292 anymore with which block size events were recorded - they will be played back
293 correctly with any audio device block size.</para>
294 <para>Note that a minor problem remains: the sampling rate has an effect on the
295 block size, too. While there is no problem switching from 22 or 32 kHz to 48 kHz,
296 there will be a slight rounding error switching from or to 44.1 kHz. So if you
297 record and playback events I suggest you keep the sampling rate the same, or use
298 "straight" sampling rates like 22, 32 and 48 kHz only.</para>
301 <para>I added a little <bold>pitch calculator</bold> that allows adjusting the
302 playback speed of a turntable to that of the master turntable so it is very easy
303 to synchronize (<italic>precisely cut</italic>) loops now. Note that this feature
304 is probably useless with large audio files (like complete songs).</para>
307 <para>Advancing the use of XML: many XML-related bugs have been fixed, and I moved
308 the <bold>set file format to XML</bold>, too. The MIDI mappings of parameters will
309 be stored within set files, too. As XML set files with a lot of sequencer events
310 can grow quite big tX supports writing <bold>gzip compressed set files</bold>
311 through the use of <link ref="http://www.zlib.org">zlib</link>.</para>
314 <para>Thanks to a suggestion by <person>
315 <name>Darrick Servis</name>
316 <email>darrick@dcn.davis.ca.us</email>
317 </person> terminatorX <bold>no longer clips audio</bold>. If the generated
318 amplitude goes beyond the maximum it will simply be cut off.</para>
321 <para>Further cleaning up the layout for small DJ laptop displays: moved some
322 buttons to a <bold>menu bar</bold> to waste less space. Additionally you can now
323 hit <screen>F11</screen> to enter <bold>full screen</bold> mode - if your window
324 manager supports <italic>NETWM</italic>.</para>
327 <para>Dropped support for the old gtk+ 1.2 - you have to use gtk+ >= 2.0, now.</para>
331 <para>This release has seen quite some <link
332 ref="http://developer.kde.org/~sewardj">valgrinding</link> so it should run rather
333 stable and a major memory leak has been fixed, too. Unlike 3.73 this one compiles with gcc
334 > 3.0 with <screen>-Wall</screen> and <screen>-Werror</screen> enabled. Well, the
335 version number ends in a zero, which means lots of new code with possibly lots of new
336 and yet undiscovered bugs. </para>
340 <newsheader date="18 Sep">
341 <link ref="download.html#Current Version">terminatorX V3.73</link> available, <link
342 ref="http://www.debian.org">Debian</link> inclusion + a <dblink id="tutorial"/>
345 <para>Aside of fixing numerous bugs, the new release does have some new features: <itemizedlist>
347 <para>I ported terminatorX to <link ref="http://www.gtk.org">gtk+</link>
348 <bold>Version 2</bold> so tX should integrate nicely with your GNOME 2 desktop.
349 This release still builds with the old gtk+ 1.2, too, but I don't plan to support
350 it much longer.</para>
355 <para>I reworked the GUI a bit in order to make terminatorX fit better on those
356 small DJ-laptop displays. Audio and control panels can now be minimized to a
357 <bold>panel bar</bold> to save space - works just like GNOME's window list. The
358 panel bar status is stored within set files and restored upon loading. Additionally
359 the buttons of the audio panel have been restructured. To lighten up the GUI five
360 buttons have been merged into <bold>two</bold> - on clicking one of these you'll
361 get a popup menu with all previous functionality.</para>
364 <para>After spending an evening with Adrian in front of his big endian system fixing
365 the audio file loading routines, I decided that loading audio files through a pipe
366 is an ugly hack. Therefor I wrote <bold>three new audio file loading
367 methods</bold> that utilize libraries instead of pipes. These are <link
368 ref="http://www.mars.org/home/rob/proj/mpeg/"> mad</link> (for mp3 files), <link
369 ref="http://www.xiph.org/ogg/vorbis/">libvorbis</link> (for OGG/Vorbis files) and
370 <link ref="http://www.68k.org/~michael/audiofile/"> libaudiofile</link> (for
371 wav/aiff/au etc.). Using these routines instead of the old ones brings the
372 following advantages: <itemizedlist>
374 <para>loading audio files is significantly <bold>faster</bold>
378 <para>terminatorX now evaluates the <bold>sample rate</bold> of an audio file
379 and adjusts the turntable's pitch accordingly (this does not affect the
380 regular "pitch" setting BTW)</para>
383 <para>the new routines provide much better <bold>visual feedback</bold> on the
384 loading progress</para>
386 </itemizedlist>Additionally more file formats are supported, so I strongly
387 recommend installing the libraries mentioned above to improve terminatorX' usability.</para>
390 <para>Slowly approaching terminator <bold>XML</bold>: the configuration file (now
391 <italic>~/.terminatorXrc</italic>) is no longer binary but an XML document. This
392 is necessary to become more flexible in the future - and it allows editing your
393 terminatorX configuration with a text editor - if you want to. Of course,
394 terminatorX now requires <link ref="http://www.libxml.org">libxml</link> to be
395 installed. For convenience this release still reads the old binary con figuration and
396 stores it as an XML document on exit. I plan to move the set file format to XML
400 <para>I completely rewrote the <italic>tX_engine</italic> in order to allow
401 installing terminatorX <bold>suid root</bold>. This way terminatorX can run with
402 realtime scheduling policy even for unprivileged users. Right after creation of
403 the engine thread terminatorX drops root privileges - so it might even be safe to
404 install terminatorX suid root - but I'll leave that up to security experts to
405 decide. For a more detailed discussion read <link ref="faq.html#11">this FAQ entry</link>.</para>
408 <para>Playing around with the wonderful <link
409 ref="http://www.povray.org">povray</link> a bit I came up with a new logo for
410 terminatorX. The icons have been replaced, too - the new ones should be easier for
411 your desktop perception.</para>
414 <para>Thanks to <person>
416 <email>adrian@lisas.de</email>
417 </person> terminatorX now has a <bold>manpage</bold>.</para>
421 <para>A lot of bug fixing went into this release, too, most notably: <itemizedlist>
423 <para>An old clipping bug in the <italic>tX_dial</italic> widget code has been fixed.</para>
426 <para>This release builds, runs and loads audio files on big endian architectures.</para>
429 <para>terminatorX should now build from scratch not only on Linux but on FreeBSD,
430 too. Thanks to <person>
431 <name>Tilman Linneweh</name>
432 <email>tilman@arved.de</email>
433 </person> for testing.</para>
436 <para>Many other fixes.</para>
438 </itemizedlist>Have a look at the <dblink id="changelog"/> for more
439 details and grab the tarball or the RPMs from the <link
440 ref="download.html#Current Version">download section</link>.</para>
441 <para>Aside of the release I'd like to bring to your attention that <person>
442 <name>Mike Furr</name>
443 <email>mfurr@debian.org</email>
444 </person> is now maintainer of the <link
445 ref="http://packages.debian.org/unstable/sound/terminatorx.html"> terminatorX Debian
446 package</link>. So if you're a Debian user you may want to <italic>apt-get</italic> this
447 release - if you install <italic>unstable</italic> packages at all and when your local
448 mirror has been updated.</para>
449 <para>For new terminatorX users <person>
451 <email>bredfern@calarts.edu</email>
452 </person> has created a wonderful step-by-step <dblink id="tutorial">
453 "terminatorX TOOT" tutorial</dblink> - reading that will accelerate
454 the creation of your first scratch considerably.</para>
458 <newsheader date="31 Jul">
459 <dblink id="turntables">Turntable gallery</dblink> online and a fresh <dblink id="scratches">scratch</dblink>
462 <para>I finally managed to hack the website's DTD and XSLT stylesheet to support the <link
463 ref="turntable.html">users' turntable section</link>. Now that it's easy to update,
464 please keep these turntable images coming in! I'd really like to see more of your turntables.</para>
468 <email>bredfern@calarts.edu</email>
469 </person> - a California based terminatorX DJ - has contributed a very cool scratch for
470 the <dblink id="scratches">scratches section</dblink>. It's just an excerpt of a
471 complete drum and bass set that is available at Brian's <link
472 ref="http://asapien.org">website</link> - which seems to be down currently. In case it
473 doesn't come up again I'll mirror the complete set here, too.</para>
475 <italic>The names have been changed to protect the innocent...</italic> from
476 <bold>spamming</bold>. The XSLT stylesheet now mangles all email addresses on this site
477 except for mine - if you've seen a correct email address before you should be able to
478 recover the real address easily. BTW if you're a spam victim, too, add the incredible
479 <link ref="http://spamassassin.org">spamassassin</link> to your
480 <italic>.procmailrc</italic> and spam won't annoy you anymore.</para>
481 <para>On terminatorX news Version 3.73 should be ready for release RSN! It will probably
482 still lack native ALSA support, though.</para>
486 <newsheader date="05 jan">happy new year: <link
487 ref="download.html#Current Version">terminatorX V3.72</link> is here.</newsheader>
489 <para>Hope everybody had a nice start into 2002, these are the changes that come with
490 terminatorX release 3.72 (for details check the <dblink id="changelog"/>): <itemizedlist>
492 <para>Thanks to a patch from <person>
493 <name>Matthew Evans</name>
494 <email>activesx@hotmail.com</email>
495 </person>terminatorX finally supports loading <link
496 ref="http://www.vorbis.com">Ogg Vorbis</link> audio files. Note that this feature
497 requires ogg123 (>= RC2) and <link
498 ref="http://sox.sourceforge.net">sox</link> installed. The very fresh RC3 release
499 of Ogg Vorbis works just fine, too.</para>
505 <email>adrian@lisas.de</email>
506 </person>once again submitted code to the project: terminatorX now features
507 <bold>mute</bold> and <bold>solo</bold> buttons for each turntable's mixing unit.
508 The initial patch had some problems with the already existing mute-function in
509 terminatorX, therefor I extended the turntable in such a way that the new buttons
510 <bold>only affect current mixing</bold> - the sequencer will not record any
511 events for them.</para>
514 <para>I updated the XInput code to work with XFree86 > 4. terminatorX now
515 uses the <italic>xsetpointer</italic> binary that comes with XFree86 to switch the
516 core pointer - as the old code doesn't work with newer XFree86 releases anymore.
517 <italic>configure</italic> should auto-detect <italic>xsetpointer</italic> if it's
518 available. <bold>Note:</bold> You only need to specify an additional XInput Device
519 in the options dialog if you want to use a scratching device other than your
520 mouse. (Yeah, I know, I state that in the docs, tooltips, everywhere - but I still
521 get bug reports related to that issue...)</para>
524 <para>Updated mpg123 loading routines that should work with <link
525 ref="http://mpg321.sourceforge.net">mpg321</link> (which many distros install
526 instead of mpg123 these days), too. Note that you'll have to have <link
527 ref="http://sox.sourceforge.net">sox</link> installed in order to get mp3-loading
528 to work (As mpg321 doesn't support mpg123's <italic>-m</italic> switch).</para>
531 <para>fixes for misc bugs (writing broken .wav's on big endian machines, gcc
532 >= 3.x compile fixes, some gtk+ cleanups, etc.)</para>
536 <para>Grab the sources or the fresh RPMs (Thanks, <person>
538 <email>adrian@lisas.de</email>
539 </person>!) from the <link ref="download.html#Current Version">download section</link>.</para>
540 <para>Initially I planned to integrate native <link
541 ref="http://www.alsa-project.org">ALSA</link>-support into this release but I simply
542 failed to finish. As many people wanted to have some of the above features early I
543 decided to release it without ALSA now, as I'll be busy for the upcoming weeks. I
544 haven't given up on ALSA though, hopefully the next terminatorX release will feature a
545 new audio device back-end that supports ALSA (V0.9) <bold>and</bold> OSS and brings many
546 other advantages.</para>
547 <para>The website has undergone minor updates, too: <itemizedlist>
549 <para>The section header's now should look fine with <link
550 ref="http://www.mozilla.org">Mozilla</link>-based browsers. They might look funny
551 with older Netscape releases, though.</para>
554 <para>Updated the <link ref="screenshots.html">screenshots</link> as people started
555 asking howto achieve that old tX V3.5 layout :)</para>
558 <para>Minor fixes to make <link ref="http://www.w3.org">W3C</link>'s validator
559 accept the pages again, and a favicon that needs some improvement.</para>