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.
37 <bold>Note:</bold> JACK seems to lockup when clients run with realtime
38 scheduling (SCHED_FIFO) - terminatorX can work around this when running
39 with capabilities, but not with the old <screen>--enable-suidroot</screen>
40 mode - so don't enable it when you want to use the JACK back-end. Reniceing
41 via libjack works fine btw (see this
42 <link ref="http://jackit.sourceforge.net/docs/faq.php#a5">JACK FAQ entry</link>).
44 <listitem><para>A new <bold>Parameter Menu</bold>: simply right-click on the
45 parameter of your choice and set the MIDI mappings, bounds or delete events.
48 <screenshot filename="parameter_menu.png"/>
50 <listitem><para>The new <bold>MIDI Bounds</bold> let you modify the range
51 within which a MIDI controller can effect a certain parameter.
55 <para>The new <bold>MIDI Learn</bold> mode provides a much simpler
56 method of mapping MIDI events than the "regular" MIDI mappings dialog.
59 <listitem><para>terminatorX now tries to <bold>reconnect to previously connected MIDI
60 devices</bold> on startup. Might only work with hardware devices (and can
61 therefor be disabled).</para>
64 <para>I finally got sick of green: you can now <bold>adjust the
65 colors</bold> of terminatorX' own widgets (audio signal display and
70 <para>You can now <bold>erase events from the sequencer</bold> for
71 either a complete turntable or a specific parameter for either
72 the complete song or from or upto the current song position.
77 There's a new <bold>Confirm Recorded Events</bold> mode that allows
78 you to discard a take if you're not satisfied with it.
82 <para>Support for <bold>Linux' POSIX capabilities</bold> implementation
83 brings a new, <italic>possibly safer</italic> way of running terminatorX
84 suid-root to achieve realtime scheduling (see the yet again updated
85 <link ref="faq.html#11">FAQ entry</link>).
89 <para>There's a new <bold>Default MIDI Mapping</bold> for the standard
90 parameters, so you don't have to create too many mappings yourself (if the
91 default map suits your needs of course). The defaults are documented
92 in the terminatorX manual.
98 Additonally this release fixes a lot of bugs:
102 Fixed the problems that where found with the old suid-root approach.
103 However there could be other ways to exploit this, so I recommend
104 using the new capabilities based approach instead - if you really want to run
105 terminatorX suid-root. If you want to use the old approach you'll
106 have to run configure with <screen>--enable-suidroot</screen>.
110 <para>compiles with gcc flavours from 2.95 to 3.3.1 (tested)</para>
113 <para>setting <italic>Sync Client</italic> via MIDI now works
117 <para>lots of code cleanups, now compiles with
118 <screen>G*_DISABLE_DEPRECATED</screen> macros enabled.
122 <para>fixed restoring of master volume setting
126 <para>introduced a workaround for
127 <link ref="http://www-stud.fht-esslingen.de/bugzilla/show_bug.cgi?id=4">Bug #4</link>, so
128 if the ALSA back-end segfaults for you, check you have "Free HW Stats"
133 <para>corrected clearing of events for the master parameters
137 <para>fixed a FreeBSD issue with the configure script.
142 <para>OK, I hope this release works for you, if you want to check it out
143 grab it from the <dblink id="download"/>.
148 <newsheader date="August 05">Updates, 3.81 on the way</newsheader>
150 <para>As shown in this <link ref="http://www.securityfocus.com/archive/1/328469">bugtraq
151 post</link> by <person>
152 <name>Andrew Griffiths</name>
153 <email>andrewg@felinemenace.org</email>
154 </person> installing terminatorX suid root is <bold>exploitable</bold>. Although you had been
155 warned before, I decided to change my <link ref="faq.html#11">recommendation</link>.
156 To make bug tracking easier in the future I've setup a
157 <dblink id="bugs">bugzilla</dblink> for terminatorX.</para>
158 <para>Additionally the website now features a new <dblink id="links"/>.</para>
161 <name>Arthur Moore</name>
162 <email>art@infinitybox.net</email>
163 </person> is a "twentieth-century" composer who is using terminatorX for his
165 added three of his compositions to the <dblink id="scratches"/> to find out more about
166 the author and his music check out his <link ref="http://infinitybox.net">site</link>.</para>
167 <para>The kind people of <dblink id="sonar"/> invited me to do a demonstration at this
168 year's festival. As a side effect I was actually forced to <bold>use</bold> terminatorX,
169 so I found and fixed quite some annoying bugs with the upcoming 3.81 release.
170 Additionally it will feature MIDI and sequencer improvements and a <dblink id="jack"/>
175 <newsheader date="April 18">
176 <link ref="download.html#Current Version">terminatorX 3.80</link> and <link
177 ref="aseqjoy.html">aseqjoy 0.0.1</link>
180 <para>This terminatorX release does a very good job at extinguishing points from my
181 TODO-for-4.0 list. Among other things this release introduces: <itemizedlist>
183 <para>Finally terminatorX has a <bold>native</bold>
185 <bold>back-end</bold>. See the new <italic>Preferences</italic> dialog and the
186 online manual for details. The ALSA and the OSS back-ends now both support
187 operating at an <bold>arbitrary sampling rate</bold>.</para>
190 <screenshot filename="shot-3.80-1.png">
191 <nopara>Scrolling audio data, a menu bar and even less space consumption for small
196 <para>The audio data display is now <bold>zoomable</bold>. This helps scratching
197 large audio files (like complete songs) significantly. Use the slider on the right
198 of the display area to adjust the zoom level. When playing the audio data will
199 scroll in such a manner that the current position is always centered.</para>
200 <para>To optimize playback performance terminatorX does a lot of
201 "zoom" calculations in advance - so adjusting the slider will
202 cause quite some amount of recalculation on large audio files. The focused
203 turntable now has a blue background and a yellow audio signal instead of the old
207 <para>A <bold>MIDI interface</bold> thanks to a patch by <person>
208 <name>Arthur Peters</name>
209 <email>amp@singingwizard.org</email>
210 </person>. The MIDI interface is based upon the <dblink id="alsa"/> sequencer API,
211 so you'll have to connect terminatorX' input port to an output port of your choice
212 with either <screen>aconnect</screen> or for example the <link
213 ref="http://pkl.net/~node/alsa-patch-bay.html"> alsa-patch-bay</link>. To map a
214 MIDI controller or note events to a turntable's parameter click the <italic>MIDI
215 Mapping</italic> button.</para>
216 <para>In order to test the new interface I hacked a little tool called <dblink
217 id="aseqjoy"/> that emits MIDI controller messages based on Joystick motion.</para>
220 <para>I finally untied audio rendering and audio back-end. terminatorX now operates
221 at a <bold>fixed internal block size</bold> of 1 ms. So now it doesn't matter
222 anymore with which block size events were recorded - they will be played back
223 correctly with any audio device block size.</para>
224 <para>Note that a minor problem remains: the sampling rate has an effect on the
225 block size, too. While there is no problem switching from 22 or 32 kHz to 48 kHz,
226 there will be a slight rounding error switching from or to 44.1 kHz. So if you
227 record and playback events I suggest you keep the sampling rate the same, or use
228 "straight" sampling rates like 22, 32 and 48 kHz only.</para>
231 <para>I added a little <bold>pitch calculator</bold> that allows adjusting the
232 playback speed of a turntable to that of the master turntable so it is very easy
233 to synchronize (<italic>precisely cut</italic>) loops now. Note that this feature
234 is probably useless with large audio files (like complete songs).</para>
237 <para>Advancing the use of XML: many XML-related bugs have been fixed, and I moved
238 the <bold>set file format to XML</bold>, too. The MIDI mappings of parameters will
239 be stored within set files, too. As XML set files with a lot of sequencer events
240 can grow quite big tX supports writing <bold>gzip compressed set files</bold>
241 through the use of <link ref="http://www.zlib.org">zlib</link>.</para>
244 <para>Thanks to a suggestion by <person>
245 <name>Darrick Servis</name>
246 <email>darrick@dcn.davis.ca.us</email>
247 </person> terminatorX <bold>no longer clips audio</bold>. If the generated
248 amplitude goes beyond the maximum it will simply be cut off.</para>
251 <para>Further cleaning up the layout for small DJ laptop displays: moved some
252 buttons to a <bold>menu bar</bold> to waste less space. Additionally you can now
253 hit <screen>F11</screen> to enter <bold>full screen</bold> mode - if your window
254 manager supports <italic>NETWM</italic>.</para>
257 <para>Dropped support for the old gtk+ 1.2 - you have to use gtk+ >= 2.0, now.</para>
261 <para>This release has seen quite some <link
262 ref="http://developer.kde.org/~sewardj">valgrinding</link> so it should run rather
263 stable and a major memory leak has been fixed, too. Unlike 3.73 this one compiles with gcc
264 > 3.0 with <screen>-Wall</screen> and <screen>-Werror</screen> enabled. Well, the
265 version number ends in a zero, which means lots of new code with possibly lots of new
266 and yet undiscovered bugs. </para>
270 <newsheader date="18 Sep">
271 <link ref="download.html#Current Version">terminatorX V3.73</link> available, <link
272 ref="http://www.debian.org">Debian</link> inclusion + a <dblink id="tutorial"/>
275 <para>Aside of fixing numerous bugs, the new release does have some new features: <itemizedlist>
277 <para>I ported terminatorX to <link ref="http://www.gtk.org">gtk+</link>
278 <bold>Version 2</bold> so tX should integrate nicely with your GNOME 2 desktop.
279 This release still builds with the old gtk+ 1.2, too, but I don't plan to support
280 it much longer.</para>
285 <para>I reworked the GUI a bit in order to make terminatorX fit better on those
286 small DJ-laptop displays. Audio and control panels can now be minimized to a
287 <bold>panel bar</bold> to save space - works just like GNOME's window list. The
288 panel bar status is stored within set files and restored upon loading. Additionally
289 the buttons of the audio panel have been restructured. To lighten up the GUI five
290 buttons have been merged into <bold>two</bold> - on clicking one of these you'll
291 get a popup menu with all previous functionality.</para>
294 <para>After spending an evening with Adrian in front of his big endian system fixing
295 the audio file loading routines, I decided that loading audio files through a pipe
296 is an ugly hack. Therefor I wrote <bold>three new audio file loading
297 methods</bold> that utilize libraries instead of pipes. These are <link
298 ref="http://www.mars.org/home/rob/proj/mpeg/"> mad</link> (for mp3 files), <link
299 ref="http://www.xiph.org/ogg/vorbis/">libvorbis</link> (for OGG/Vorbis files) and
300 <link ref="http://www.68k.org/~michael/audiofile/"> libaudiofile</link> (for
301 wav/aiff/au etc.). Using these routines instead of the old ones brings the
302 following advantages: <itemizedlist>
304 <para>loading audio files is significantly <bold>faster</bold>
308 <para>terminatorX now evaluates the <bold>sample rate</bold> of an audio file
309 and adjusts the turntable's pitch accordingly (this does not affect the
310 regular "pitch" setting BTW)</para>
313 <para>the new routines provide much better <bold>visual feedback</bold> on the
314 loading progress</para>
316 </itemizedlist>Additionally more file formats are supported, so I strongly
317 recommend installing the libraries mentioned above to improve terminatorX' usability.</para>
320 <para>Slowly approaching terminator <bold>XML</bold>: the configuration file (now
321 <italic>~/.terminatorXrc</italic>) is no longer binary but an XML document. This
322 is necessary to become more flexible in the future - and it allows editing your
323 terminatorX configuration with a text editor - if you want to. Of course,
324 terminatorX now requires <link ref="http://www.libxml.org">libxml</link> to be
325 installed. For convenience this release still reads the old binary con figuration and
326 stores it as an XML document on exit. I plan to move the set file format to XML
330 <para>I completely rewrote the <italic>tX_engine</italic> in order to allow
331 installing terminatorX <bold>suid root</bold>. This way terminatorX can run with
332 realtime scheduling policy even for unprivileged users. Right after creation of
333 the engine thread terminatorX drops root privileges - so it might even be safe to
334 install terminatorX suid root - but I'll leave that up to security experts to
335 decide. For a more detailed discussion read <link ref="faq.html#11">this FAQ entry</link>.</para>
338 <para>Playing around with the wonderful <link
339 ref="http://www.povray.org">povray</link> a bit I came up with a new logo for
340 terminatorX. The icons have been replaced, too - the new ones should be easier for
341 your desktop perception.</para>
344 <para>Thanks to <person>
346 <email>adrian@lisas.de</email>
347 </person> terminatorX now has a <bold>manpage</bold>.</para>
351 <para>A lot of bug fixing went into this release, too, most notably: <itemizedlist>
353 <para>An old clipping bug in the <italic>tX_dial</italic> widget code has been fixed.</para>
356 <para>This release builds, runs and loads audio files on big endian architectures.</para>
359 <para>terminatorX should now build from scratch not only on Linux but on FreeBSD,
360 too. Thanks to <person>
361 <name>Tilman Linneweh</name>
362 <email>tilman@arved.de</email>
363 </person> for testing.</para>
366 <para>Many other fixes.</para>
368 </itemizedlist>Have a look at the <link ref="ChangeLog">ChangeLog</link> for more
369 details and grab the tarball or the RPMs from the <link
370 ref="download.html#Current Version">download section</link>.</para>
371 <para>Aside of the release I'd like to bring to your attention that <person>
372 <name>Mike Furr</name>
373 <email>mfurr@debian.org</email>
374 </person> is now maintainer of the <link
375 ref="http://packages.debian.org/unstable/sound/terminatorx.html"> terminatorX Debian
376 package</link>. So if you're a Debian user you may want to <italic>apt-get</italic> this
377 release - if you install <italic>unstable</italic> packages at all and when your local
378 mirror has been updated.</para>
379 <para>For new terminatorX users <person>
381 <email>bredfern@calarts.edu</email>
382 </person> has created a wonderful step-by-step <dblink id="tutorial">
383 "terminatorX TOOT" tutorial</dblink> - reading that will accelerate
384 the creation of your first scratch considerably.</para>
388 <newsheader date="31 Jul">
389 <dblink id="turntables">Turntable gallery</dblink> online and a fresh <dblink id="scratches">scratch</dblink>
392 <para>I finally managed to hack the website's DTD and XSLT stylesheet to support the <link
393 ref="turntable.html">users' turntable section</link>. Now that it's easy to update,
394 please keep these turntable images coming in! I'd really like to see more of your turntables.</para>
398 <email>bredfern@calarts.edu</email>
399 </person> - a California based terminatorX DJ - has contributed a very cool scratch for
400 the <dblink id="scratches">scratches section</dblink>. It's just an excerpt of a
401 complete drum and bass set that is available at Brian's <link
402 ref="http://asapien.org">website</link> - which seems to be down currently. In case it
403 doesn't come up again I'll mirror the complete set here, too.</para>
405 <italic>The names have been changed to protect the innocent...</italic> from
406 <bold>spamming</bold>. The XSLT stylesheet now mangles all email addresses on this site
407 except for mine - if you've seen a correct email address before you should be able to
408 recover the real address easily. BTW if you're a spam victim, too, add the incredible
409 <link ref="http://spamassassin.org">spamassassin</link> to your
410 <italic>.procmailrc</italic> and spam won't annoy you anymore.</para>
411 <para>On terminatorX news Version 3.73 should be ready for release RSN! It will probably
412 still lack native ALSA support, though.</para>
416 <newsheader date="05 jan">happy new year: <link
417 ref="download.html#Current Version">terminatorX V3.72</link> is here.</newsheader>
419 <para>Hope everybody had a nice start into 2002, these are the changes that come with
420 terminatorX release 3.72 (for details check the <dblink id="changelog"/>): <itemizedlist>
422 <para>Thanks to a patch from <person>
423 <name>Matthew Evans</name>
424 <email>activesx@hotmail.com</email>
425 </person>terminatorX finally supports loading <link
426 ref="http://www.vorbis.com">Ogg Vorbis</link> audio files. Note that this feature
427 requires ogg123 (>= RC2) and <link
428 ref="http://sox.sourceforge.net">sox</link> installed. The very fresh RC3 release
429 of Ogg Vorbis works just fine, too.</para>
435 <email>adrian@lisas.de</email>
436 </person>once again submitted code to the project: terminatorX now features
437 <bold>mute</bold> and <bold>solo</bold> buttons for each turntable's mixing unit.
438 The initial patch had some problems with the already existing mute-function in
439 terminatorX, therefor I extended the turntable in such a way that the new buttons
440 <bold>only affect current mixing</bold> - the sequencer will not record any
441 events for them.</para>
444 <para>I updated the XInput code to work with XFree86 > 4. terminatorX now
445 uses the <italic>xsetpointer</italic> binary that comes with XFree86 to switch the
446 core pointer - as the old code doesn't work with newer XFree86 releases anymore.
447 <italic>configure</italic> should auto-detect <italic>xsetpointer</italic> if it's
448 available. <bold>Note:</bold> You only need to specify an additional XInput Device
449 in the options dialog if you want to use a scratching device other than your
450 mouse. (Yeah, I know, I state that in the docs, tooltips, everywhere - but I still
451 get bug reports related to that issue...)</para>
454 <para>Updated mpg123 loading routines that should work with <link
455 ref="http://mpg321.sourceforge.net">mpg321</link> (which many distros install
456 instead of mpg123 these days), too. Note that you'll have to have <link
457 ref="http://sox.sourceforge.net">sox</link> installed in order to get mp3-loading
458 to work (As mpg321 doesn't support mpg123's <italic>-m</italic> switch).</para>
461 <para>fixes for misc bugs (writing broken .wav's on big endian machines, gcc
462 >= 3.x compile fixes, some gtk+ cleanups, etc.)</para>
466 <para>Grab the sources or the fresh RPMs (Thanks, <person>
468 <email>adrian@lisas.de</email>
469 </person>!) from the <link ref="download.html#Current Version">download section</link>.</para>
470 <para>Initially I planned to integrate native <link
471 ref="http://www.alsa-project.org">ALSA</link>-support into this release but I simply
472 failed to finish. As many people wanted to have some of the above features early I
473 decided to release it without ALSA now, as I'll be busy for the upcoming weeks. I
474 haven't given up on ALSA though, hopefully the next terminatorX release will feature a
475 new audio device back-end that supports ALSA (V0.9) <bold>and</bold> OSS and brings many
476 other advantages.</para>
477 <para>The website has undergone minor updates, too: <itemizedlist>
479 <para>The section header's now should look fine with <link
480 ref="http://www.mozilla.org">Mozilla</link>-based browsers. They might look funny
481 with older Netscape releases, though.</para>
484 <para>Updated the <link ref="screenshots.html">screenshots</link> as people started
485 asking howto achieve that old tX V3.5 layout :)</para>
488 <para>Minor fixes to make <link ref="http://www.w3.org">W3C</link>'s validator
489 accept the pages again, and a favicon that needs some improvement.</para>