Guess what - Alex
[terminatorX.git] / website / index.xml
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE section SYSTEM "./tX.dtd">
3 <section name="main"> &db; <main>
4     <general>
5       <heading>Welcome to the terminatorX website!</heading>
6       <subtitle>
7         <nopara>Bookmark this site as <link ref=""></link>. It's
8           located on <link ref=""></link>
9         </nopara>
10       </subtitle>
11       <text>
12         <para>For those of you who drop by for the first time: terminatorX is a realtime audio
13           synthesizer that allows you to &quot;scratch&quot; 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="">mail</link>
22         </para>
23       </text>
24     </general>
25     <news>
26       <newsitem>
27         <newsheader date="August 22"><link ref="download.html#Current Version">terminatorX V3.81</link>
28           available</newsheader>
29         <newstext>
30           <para>The new release introduces the following features:
31             <itemizedlist>
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                   </para>
36                   <para>
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="">JACK FAQ entry</link>).
43                 </para></listitem>
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.
46               </para></listitem>
47             </itemizedlist>
48             <screenshot filename="parameter_menu.png"/>            
49             <itemizedlist>
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.
52                 </para>
53               </listitem>
54               <listitem>
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.
57                 </para>
58               </listitem>
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>
62               </listitem>
63               <listitem>
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 
66                 vu meters).
67                 </para>
68               </listitem>
69               <listitem>
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.
73                 </para>                
74               </listitem>
75               <listitem>
76                 <para>
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.
79                 </para>
80               </listitem>
81               <listitem>
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>).
86                 </para>
87               </listitem>
88               <listitem>
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.
93                 </para>
94               </listitem>
95             </itemizedlist>            
96           </para>
97           <para>
98             Additonally this release fixes a lot of bugs:
99             <itemizedlist>
100               <listitem>
101                 <para>
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>.
107                 </para>
108               </listitem>
109               <listitem>
110                 <para>compiles with gcc flavours from 2.95 to 3.3.1 (tested)</para>
111               </listitem>
112               <listitem>
113                 <para>setting <italic>Sync Client</italic> via MIDI now works
114                 </para>
115               </listitem>
116               <listitem>
117                 <para>lots of code cleanups, now compiles with 
118                 <screen>G*_DISABLE_DEPRECATED</screen> macros enabled.
119                 </para>
120               </listitem>
121               <listitem>
122                 <para>fixed restoring of master volume setting
123                 </para>
124               </listitem>
125               <listitem>
126                 <para>introduced a workaround for 
127                   <link ref="">Bug #4</link>, so
128                   if the ALSA back-end segfaults for you, check you have "Free HW Stats"
129                   disabled.
130                 </para>
131               </listitem>
132               <listitem>
133                 <para>corrected clearing of events for the master parameters
134                 </para>
135               </listitem>
136               <listitem>
137                 <para>fixed a FreeBSD issue with the configure script.
138                 </para>
139               </listitem>
140             </itemizedlist>
141           </para>
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"/>.
144           </para>
145         </newstext>
146       </newsitem>
147       <newsitem>
148         <newsheader date="August 05">Updates, 3.81 on the way</newsheader>
149         <newstext>
150           <para>As shown in this <link ref="">bugtraq
151             post</link> by <person>
152               <name>Andrew Griffiths</name>
153               <email></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>
159           <para>
160             <person>
161               <name>Arthur Moore</name>
162               <email></email>
163             </person> is a &quot;twentieth-century&quot; composer who is using terminatorX for his 
164             compositions. I've
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="">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"/> 
171             back-end.</para>
172         </newstext>
173       </newsitem>
174       <newsitem>
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>
178         </newsheader>
179         <newstext>
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>
182               <listitem>
183                 <para>Finally terminatorX has a <bold>native</bold>
184                   <dblink id="alsa"/>
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>
188               </listitem>
189             </itemizedlist>
190             <screenshot filename="shot-3.80-1.png">
191               <nopara>Scrolling audio data, a menu bar and even less space consumption for small
192                 displays. </nopara>
193             </screenshot>
194             <itemizedlist>
195               <listitem>
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                   &quot;zoom&quot; 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
204                   red border.</para>
205               </listitem>
206               <listitem>
207                 <para>A <bold>MIDI interface</bold> thanks to a patch by <person>
208                     <name>Arthur Peters</name>
209                     <email></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=""> 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>
218               </listitem>
219               <listitem>
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                   &quot;straight&quot; sampling rates like 22, 32 and 48 kHz only.</para>
229               </listitem>
230               <listitem>
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>
235               </listitem>
236               <listitem>
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="">zlib</link>.</para>
242               </listitem>
243               <listitem>
244                 <para>Thanks to a suggestion by <person>
245                     <name>Darrick Servis</name>
246                     <email></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>
249               </listitem>
250               <listitem>
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>
255               </listitem>
256               <listitem>
257                 <para>Dropped support for the old gtk+ 1.2 - you have to use gtk+ &gt;= 2.0, now.</para>
258               </listitem>
259             </itemizedlist>
260           </para>
261           <para>This release has seen quite some <link
262             ref="">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             &gt; 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>
267         </newstext>
268       </newsitem>
269       <newsitem>
270         <newsheader date="18 Sep">
271           <link ref="download.html#Current Version">terminatorX V3.73</link> available, <link
272           ref="">Debian</link> inclusion + a <dblink id="tutorial"/>
273         </newsheader>
274         <newstext>
275           <para>Aside of fixing numerous bugs, the new release does have some new features: <itemizedlist>
276               <listitem>
277                 <para>I ported terminatorX to <link ref="">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>
281               </listitem>
282             </itemizedlist>
283             <itemizedlist>
284               <listitem>
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>
292               </listitem>
293               <listitem>
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=""> mad</link> (for mp3 files), <link
299                   ref="">libvorbis</link> (for OGG/Vorbis files) and
300                     <link ref=""> libaudiofile</link> (for
301                   wav/aiff/au etc.). Using these routines instead of the old ones brings the
302                   following advantages: <itemizedlist>
303                     <listitem>
304                       <para>loading audio files is significantly <bold>faster</bold>
305                       </para>
306                     </listitem>
307                     <listitem>
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 &quot;pitch&quot; setting BTW)</para>
311                     </listitem>
312                     <listitem>
313                       <para>the new routines provide much better <bold>visual feedback</bold> on the
314                         loading progress</para>
315                     </listitem>
316                   </itemizedlist>Additionally more file formats are supported, so I strongly
317                   recommend installing the libraries mentioned above to improve terminatorX' usability.</para>
318               </listitem>
319               <listitem>
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="">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
327                   soon, too.</para>
328               </listitem>
329               <listitem>
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>
336               </listitem>
337               <listitem>
338                 <para>Playing around with the wonderful <link
339                   ref="">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>
342               </listitem>
343               <listitem>
344                 <para>Thanks to <person>
345                     <name>Adrian</name>
346                     <email></email>
347                   </person> terminatorX now has a <bold>manpage</bold>.</para>
348               </listitem>
349             </itemizedlist>
350           </para>
351           <para>A lot of bug fixing went into this release, too, most notably: <itemizedlist>
352               <listitem>
353                 <para>An old clipping bug in the <italic>tX_dial</italic> widget code has been fixed.</para>
354               </listitem>
355               <listitem>
356                 <para>This release builds, runs and loads audio files on big endian architectures.</para>
357               </listitem>
358               <listitem>
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></email>
363                   </person> for testing.</para>
364               </listitem>
365               <listitem>
366                 <para>Many other fixes.</para>
367               </listitem>
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></email>
374             </person> is now maintainer of the <link
375               ref=""> 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>
380               <name>Brian</name>
381               <email></email>
382             </person> has created a wonderful step-by-step <dblink id="tutorial">
383               &quot;terminatorX TOOT&quot; tutorial</dblink> - reading that will accelerate
384             the creation of your first scratch considerably.</para>
385         </newstext>
386       </newsitem>
387       <!--<newsitem>
388         <newsheader date="31 Jul">
389           <dblink id="turntables">Turntable gallery</dblink> online and a fresh <dblink id="scratches">scratch</dblink>
390         </newsheader>
391         <newstext>
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>
395           <para>
396             <person>
397               <name>Brian</name>
398               <email></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="">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>
404           <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="">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>
413         </newstext>
414       </newsitem>
415       <newsitem>
416         <newsheader date="05 jan">happy new year: <link
417             ref="download.html#Current Version">terminatorX V3.72</link> is here.</newsheader>
418         <newstext>
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>
421               <listitem>
422                 <para>Thanks to a patch from <person>
423                     <name>Matthew Evans</name>
424                     <email></email>
425                   </person>terminatorX finally supports loading <link
426                     ref="">Ogg Vorbis</link> audio files. Note that this feature
427                   requires ogg123 (&gt;= RC2) and <link
428                   ref="">sox</link> installed. The very fresh RC3 release
429                   of Ogg Vorbis works just fine, too.</para>
430               </listitem>
431               <listitem>
432                 <para>
433                   <person>
434                     <name>Adrian</name>
435                     <email></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>
442               </listitem>
443               <listitem>
444                 <para>I updated the XInput code to work with XFree86 &gt; 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>
452               </listitem>
453               <listitem>
454                 <para>Updated mpg123 loading routines that should work with <link
455                   ref="">mpg321</link> (which many distros install
456                   instead of mpg123 these days), too. Note that you'll have to have <link
457                   ref="">sox</link> installed in order to get mp3-loading
458                   to work (As mpg321 doesn't support mpg123's <italic>-m</italic> switch).</para>
459               </listitem>
460               <listitem>
461                 <para>fixes for misc bugs (writing broken .wav's on big endian machines, gcc
462                   &gt;= 3.x compile fixes, some gtk+ cleanups, etc.)</para>
463               </listitem>
464             </itemizedlist>
465           </para>
466           <para>Grab the sources or the fresh RPMs (Thanks, <person>
467               <name>Adrian</name>
468               <email></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="">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>
478               <listitem>
479                 <para>The section header's now should look fine with <link
480                   ref="">Mozilla</link>-based browsers. They might look funny
481                   with older Netscape releases, though.</para>
482               </listitem>
483               <listitem>
484                 <para>Updated the <link ref="screenshots.html">screenshots</link> as people started
485                   asking howto achieve that old tX V3.5 layout :)</para>
486               </listitem>
487               <listitem>
488                 <para>Minor fixes to make <link ref="">W3C</link>'s validator
489                   accept the pages again, and a favicon that needs some improvement.</para>
490               </listitem>
491             </itemizedlist>
492           </para>
493         </newstext>
494       </newsitem>-->
495     </news>
496   </main>
497 </section>