4 Copyright (C) 1999-2004 Alexander König
7 * fixed a liblrdf related issue resulting in use of previously
9 * rendered a new knob with the wonderful povray - all images are now
10 distrbuted in gdk-pixbuf-csource'd form in the src/icons
12 * added an extra "File/Load Audio File" menu item as new users would
13 always try to load an audio file via "File/Open".
14 * fixed compilation issues with g++ >= 3.4.
15 * added reverse mapping of MIDI parameters which can be turned
16 on/off via the parameter menu. This allows setting up a MIDI
17 controller as a crossfader.
18 * in order to have a SPAM protected online version of the ChangeLog
19 this document is now generated from XML sources.
20 * merged a patch from Martin Habets
21 <errandir_news@mph.eclipse.co.uk> that fixes big endian audio
23 * applied a fix from Juha Erkkila <erkkila@cc.jyu.fi> that makes tX
24 work on systems that don't have procfs mounted.
25 * added an optional Dry/Wet control for all LADSPA plugins. Simply
26 click on the plugin's label to add or remove the additional
28 * added an additional stereo effects queue that allows loading
29 stereo LADPSA plugins. The stereo effects are located below the
30 mono effects - to add a new instance press the "Stereo FX" button
31 and select the plugin of your choice.
32 * fixed the plugin menu - empty categories no longer get a menu
34 * plugins that do not qualify as realtime capable will now be
36 * I'm fed up with terminatorX related security postings, so the old
37 suid-root method had to go. To achieve realtime scheduling you now
39 + a) run terminatorX as root (obviously dangerous and not
41 + b) build terminatorX with capabilities enabled and install it
42 suid-root. Due to the use of PR_SET_KEEPCAPS this will work
44 + c) use the JACK backend with "POSIX draft capabilities" (see
46 * loading sets with missing LADPSA plugins no longer crash tX.
47 * fixed a bug that made reading error messages impossible with the
49 * the engine now handles audiodevices that break down when already
50 in playback mode more gracefully. This really necessary when jack
51 decides to kick us out.
52 * all vu meters are stereo now. Having a mono widget for a stereo
53 thing just didn't make any sense anymore.
54 * modified the render loop to comply with LADSPA V1.1: 0 db is now
55 at 1.0f. This makes a lot of plugins work with terminatorX that
56 haven't worked with previous releases.
57 * data send to the JACK backend no goes through the
58 "Anti-Clip-Device", too. Unless you #define TX_DO_CLIP of course.
59 * I've drawn some new icons with the cool inkscape. They're now
60 being built into terminatorX as gdk-pixbuf c-source code, so they
61 actually do alpha blending.
62 * wrote support for gtk+'s new FileChooser widget - will be enabled
63 automatically when configure finds a gtk+ >= 2.4.0
64 * fixed the buffer overflows detected by c0wboy <c0wboy@tiscali.it>
65 in his outsiders-terminatorX-001.txt advisory.
66 * support for gtk+ startup notification.
67 * "README.GNOME" was outdated so it had to go.
68 * merged parts of a patch graciously contributed by Adam King
70 + simpler min/maximization for the control panels
71 + bugfix for sequencer menu crash
72 + the panel formally known as "Trigger" is now known as
74 * added cpu-overload detection - currently disabled
77 * JACK doesn't seem to like SCHED_FIFO clients so I added a little
78 test that will set SCHED_OTHER when jack output was selected. This
79 will work for true root or a capabilities-enabled suid-root binary
81 * removed the disfunctional "Cancel" button from the load-progress
83 * switched default MIDI mapping to non-destructive. (previous
84 settings will not be overwritten now).
85 * added a default MIDI mapping accessible via the "Turntables" menu.
86 The actual mapping is documented in the manual.
87 * fixed a bug that caused enabling sync-client setting via MIDI to
89 * when compiled with rt-scheduling suppport terminatorX will now
90 display the resulting scheduling policy in the "About" dialog.
91 * if terminatorX was setup to use realtime priority for the audio
92 engine thread but you dont want it - disable realtime scheduling
93 in the Preferences dialog. This works with capabilities _ONLY_.
94 * if you don't want to confirm program termination every time you
95 can now disable "Ask for Quit confirmation" in the Preferences.
96 * added support for Linux' POSIX capabilities. This allows a
97 suid-root installed terminatorX binary to drop root privileges
98 much earlier than with the old approach (so it should be more
99 secure). Requires the libcap library.
100 * obligatory documentation updates - clicking on the sub-sections
102 * removed gtk+ 1.2 cruft - terminatorX now compiles with gtk+ 2.2
103 and *_DISABLE_DEPRECATED macros enabled. To verfiy that you can
104 run configure with --disable-deprecated.
105 * terminatorX now has a JACK backend. Currently it works like this:
106 on startup tX will connect to the JACK daemon - if the daemon is
107 not available on startup JACK output is not available. When the
108 audio engine is turned off, tX emits silence via the JACK ports,
109 so you can leave the ports connected.
110 * sick of green - you can now configure the colors terminatorX
111 should use for the audio display as well as the vu meters in the
113 * hopefully fixed wrong setting of the master volume when loading
115 * some ALSA installations seem to core on snd_pcm_hw_params_free()
116 after sound device init. So freeing the hw_params can now be
117 explicitly disabled in the Preferences - if terminatorX crashes
118 right after hitting the "Power On" button it might be necessary to
119 activate this for your ALSA setup. This probably results in a tiny
120 memory leak - but on leak vs core you might decide for leak. Note:
121 I even enabled the leak by default now.
122 * fixed a bug that caused turntable 1 to get the focus on entering
123 Mouse Grab mode even when it's audio panel was minimized.
124 * MIDI mappings can now have "bounds", meaning that the incoming
125 MIDI signals can modify the parameter within the given range only.
126 * introduced a new way of assigning MIDI controllers to parameters:
127 simply right-click on a parameter's control: a menu with "MIDI
128 Learn" and "Remove MIDI Binding" will pop up - select "MIDI Learn"
129 and send the corresponding MIDI event.
130 * fixed a bug in the MIDI callback thanks to David Hamilton
131 <daham2@student.monash.edu>
132 * running suid root (the old way) was reported exploitable by Andrew
133 Griffiths <andrewg@felinemenace.org> - the described environment
134 variable based exploit was fixed - however there are possibly
135 other ways to exploit it. So the old method of running suid root
136 has been disabled by default. On Linux systems you really should
137 use the capabilities based approach (see above). If really want to
138 use the old suid-root solution run configure with
140 * often, you record events and mess things up - in this case I'd
141 often prefer dropping the complete take instead of recording a bad
142 perfomance - which is why you now can activate "Confirm Recorded
143 Events" from the "Sequencer" menu. When enabled terminatorX will
144 ask whether to actually record or drop the events created for the
145 last take. The setting for this flag is stored in your
147 * introduced a new "Sequencer" menu that allows to delete events of
148 a specific type (all, all for certain turntable, all for a certain
149 parameter) from the sequencer. Events can be deleted for the
150 complete song, upto the current song position or from the current
151 song position. Yeah, I know, termintorX is lacking a proper
152 event-editor here, so where's your patch? ;)
153 * switching the X11 mouse cursor when the user has to wait for
154 terminatorX to finish some operation
155 * fixed a sequencer bug: the events for master pitch and volume
156 weren't erased correctly when another set was loaded
157 * fixed FreeBSD issues with the configure script
158 * fixed compilation issues for gcc 2.95.x
161 * I've invested quite some time in valgrinding this release, among
162 other things a major mem leak showed up - the sample memory wasn't
163 being free'd correctly which is now corrected along with many
164 other things. valgrind is a very helpful tool indeed.
165 * Added a new Pitch Calculator that allows adjusting a turntable's
166 pitch to that of the master turntable. This makes synchronizing
167 finely cut loop samples really easy
168 * XML based set files can get rather huge when they contain a lot of
169 sequencer events - to solve this terminatorX now uses zlib to save
170 compressed set files if enabled in the preferences dialog.
171 * I hacked support for Steve Harris' cool liblrdf - if you've got
172 that library setup correctly and you use Steve's wonderful plugin
173 collection with RDF description you should get a nicely structured
174 menu when clicking on the "FX" button. All plugins not categorized
175 through RDF files go to the "Unclassified" category.
176 * I'm no longer including the html and ps versions of the manual -
177 it's now attached in it's XML/DocBook source and will be installed
178 via scrollkeeper. terminatorX offers a menu entry to start
179 gnome-help to display the manual.
180 * Reworked the Preferences dialog - I now use glade-2 to create that
181 code - I'm fed up with copy'n'pasting gtk+ code so now I'll let
182 glade-2 do this whereever possible. The glade project files are
183 included with this tarball in case you want to mess with them.
184 * Switched to a fixed blocksize (1 ms) for rendering. This finally
185 allows to playback set files with events recorded on machines with
186 small buffer sizes on slow machines with large buffer sizes. The
187 buffersize of the audiodevice has no effect on the "operating"
188 blocksize anymore. Note that the samlping rate has a - very small
189 - effect though. Depending on the sampling rate terminatorX will
190 try to find a blocksize that fits exactly 1 ms - while this is
191 easy for "straight" sampling rates (22000 32000 48000) this
192 results in "44.1" samples for 44100 Hz.
193 * Finally hacked a native ALSA backend. It's in "Works For Me" TM
195 * Added "Remove Binding" button
196 * MIDI now uses a GIOCallback so the effect of MIDI controllers is
197 visible even without the audio engine turned on.
198 * Reworked the mastergui for better usabilty and less space
199 consumption, yes, terminatorX now features a boring menubar -
200 which helps using it on small displays quite a bit, and should be
201 easier to handle for first-time users.
202 * Implemented a suggestion from Darrick Servis
203 <darrick@dcn.davis.ca.us> that stops clipping in the mixer
204 routine. The outgoing signal is now limited as it should be, which
205 improves the output quality for signals too loud significantly.
206 * MIDI mappings are now stored within the (new) tX set files.
207 * Applied a patch from Arthur Peters <amp@singingwizard.org> which
208 brings preliminary MIDI support to terminatorX. This is realized
209 via the ALSA sequencer interface, so in order for it to compile
210 you have to have the ALSA devel packages installed. ./configure
211 will autodetect them.
212 * Fixed a bug in XML serialization that dropped strings' contents.
213 * You can now hit "F11" to turn fullscreen mode on/off - this will
214 help using terminatorX on small DJ laptops. Note that the key will
215 have no effect in scratch mode - hit it before you enter grab
216 mode. This feature requires a NETWM compliant window manager.
217 * terminatorX now stores set files as XML documents, too - so
218 terminatorX has become terminatorXML finally. Note: for sets with
219 a large number of events recorded into the sequencer - the XML
220 based set files can grow significally larger than the old ones
221 (see "compression" above)
222 * The old code to support the obsolete binary tX file formats has
223 now been scheduled for deletion. It's been moved into the
224 tX_legacy* source files and it will be built only when
225 "--enable-legacy" was used on configuring terminatorX (which is
226 the default). Expect this to become disabled and then totally
227 removed from the sources in future.
228 * Enhanced audio data display - you can now zoom into the audio
229 signal, which should allow much more precise scratching with
230 larger audio files (ie complete tracks). On playback terminatorX
231 will scroll the displayed area to ensure you always see the area
232 of the sample in which you're currently scratching on.
233 * I have not backported the new code to the old gtk+ 1.2 - so this
234 release no longer builds with gtk+ 1.2 - you have to upgrade to
235 gtk+ Version 2 to be able to build terminatorX.
236 * fixed a nasty gcc 3.2 compilation bug - thanks to Adam Duck
237 <duck@informatik.uni-frankfurt.de> and other reporters
240 * Fixed a compilation bug ocurring on big endian systems only.
241 * Fixed the built-in wav loading routines for big endian systems
243 * Finally traced down and fixed a long outstanding bug in the dial
244 widget, the background of the dials is now drawn correctly.
245 * Ported terminatorX to gtk+ Version 2. The code for gtk2 will be
246 enabled when gtk2 is detected by configure. To force terminatorX
247 to use the good old gtk 1.2.x (x>=5) run configure with the
248 '--disable-gtk2' switch. WARNING: gdkxft-users: gtk2 applications
249 segfault when preloading libgdk_xft.so! So unset LD_PRELOAD and
250 set GDK_USE_XFT=1 instead.
251 * Applied a patch from Adrian that brings lots of new stuff:
252 + Debian package support (removed - Mike Furr now maintains an
253 official Debain package for terminatorX)
254 + enhanced GNOME integration
255 + a manpage for terminatorX
256 * Included another gcc3 fix thanks to Gregor Riepl
257 <seto-kun@freesurf.ch>>
258 * Improved configure's compatibilty - it should detect pthreads more
259 reliably and it should detect ladspa.h when located in
260 /usr/local/include without /usr/local/include being contained in
262 * This release should compile and run on FreeBSD systems and
263 possibly OpenBSD, too. Thanks for help and testing this goes to
264 Tilman Linneweh <tilman@arved.de> .
265 * Sequencer now refuses to play when no events available - and
266 displays a dialog that suggests running the audio engine.
267 * De-uglified the terminatorX note dialog.
268 * Fixed gtk+2 signals for load file dialog
269 * Pre-listen support for mpg321
270 * Added a new auto-hiding "panel-bar" to which turntable control and
271 audio panels can be minimized to.
272 * Cleaned up the turntables' audio panel for better looks and easier
274 * Rewrote the engine thread completely - unlike before the engine
275 thread is created on startup and kept alive until termination.
276 * terminatorX can now be run suid root - and it might even be safe.
277 After creating the engine thread both terminatorX threads drop
278 root privileges before evaluating any parameters or
279 reading/writing files, etc. The problem is the pthread "manager
280 thread" is out of control of terminatorX code - so I cannot tell
281 that thread to drop privileges.
282 * Fixed Drag'n'Drop for GNOME 2
283 * To enhance the loading of audiofiles terminatorX now contains code
284 to use mad (MPEG Audio Decoder), libvorbis and libaudiofile
285 directly instead of pipeing audio data through mpg123, ogg123 or
286 sox. As a result the new routines bring following advantages:
287 + tX loads audiofiles significantly faster
288 + tX now honours the samplerate of an audiofile (by adjusting
289 the pitch of the turntable)
290 + tX provides much better feedback on the loading progress
291 Although the old loading-methods are still available (and piped
292 loading has been improved, too) I highly recommend installing the
293 libraries above as the new routines simply work better.
294 * Deleted tons of old outdated code in tX_engine.cc and
298 * Applied a patch from Matthew Evans <activesx@hotmail.com> that
299 introduces support for Ogg Vorbis audiofiles. It requires ogg123 >
300 RC2 and sox to work. Autodetection is supported via configure
302 * Experimental support for input devices other than the core-pointer
303 under XFree86 > 4. This uses the xsetpointer executable that comes
304 with XFree86. configure should autodetect this correctly, in case
305 it doesn't use the --enable-xetpointer switch.
306 * Adrian sent me a patch introducing two new buttons: mute and solo.
307 As it didn't fully harmonize with the sequencer I rewrote parts of
308 it and added new functionality to the turntables: They can now be
309 switched to mix_solo or mix_mute - these settings affect current
310 mixing only - their values will neither be saved nor will changes
311 to those control be recorded in the sequencer - if you want to
312 record muting events either use the mute button from the
313 turntable's trigger menu, the keyboard short-cuts (alt/strg), or
314 your middle mouse button.
315 * fixed a bug that produced corrupt wavfiles on big endian machines
316 * some minor fixes to make terminatorX compile with newer gcc
318 * Well, I am allowed to change my mind, aren't I? Anyway, 3DNow! is
319 back. Nevertheless newer gcc releases seem to have a bug in
320 handling movq and the current 3DNow! stereo implementation does
321 not seem to be very efficient. So use --enable-3dnow only if you
322 want to help me improve perfomance.
323 * Modified the mpg123 loader in order to make it work with mpg321,
324 too. mpg321 lacks support for mpg123's -m switch ("singlemix")
325 therefor mpg?2?'s output is now piped into sox to convert the
326 signal to mono. For this reason mpg?2? support now requires sox to
328 * added a workaround for a gtk+ bug that causes empty labels when
329 strings contain umlauts - unluckily my name features one of these
330 so I had to write this workaround.
333 * applied a big patch from Adrian Reber <adrian@lisas.de> . This
335 + compile fixes for the newer gcc releases
336 + enhancements to the commandline switches (try --help for more
338 * the bigNewThang (TM) is STEREO output. The Pan-Buttons now
339 actually do what you'd expect them to. Therefore your soundcard
340 must have stereo support of course but I guess in 2001 this really
341 shouldn't be a problem, right? The recorded wavfiles will now be
342 stereo wavfiles of course. Note that stereo output means double
343 audio-bandwith, so if you tuned your old terminatorX setup to
344 smallest latency you might get clicks now. You can easily fix this
345 by increasing the buffer size in the options dialog by one - this
346 will result in the same latency as before btw.
347 * The echo effect has undergone some enhancements to profit from the
348 new stereo output. It's signal will now be mixed seperately so you
349 can choose a different stereo panorama position for the echo
350 signal. So the new echo effect now features it's own PAN-knob.
351 This does have some sideeffects though, for more details on this
352 check the manual. Additionally the echo effect now has it's own
353 volume setting to influence the dry/wet ratio of this effect.
354 * Some LADSPA effects tend to create NAN (Not A Number) float values
355 under certain conditions. This is bad as all following operations
356 will result in NANs, so there will be no audio output no more. Now
357 I will not introduce code to check for NANs as this is a waste of
358 CPU-power, producing NANs is IMHO a faulty behaviour for LADSPA
359 plugins and it should be fixed in there. Now a problem with the
360 previous release was that the echo and lowpass effects "ate" those
361 NANs resulting in NANs in those effects' buffers. So once a NAN
362 got in there these effects caused the whole audio output to mute
363 (forever). Which is why I now introduced some code to clear the
364 buffers in echo and lowpass whenever you dis- and reenable them.
365 * The GUI does have two master vu-meters now. The turntable's still
366 have one vu-meter only. Note that the echo-signal is *not*
367 included in the turntable's vu-meter now, as it's mixed
369 * The 3DNow!-Optimizations are gone. And they'll proabably never
370 come back as I don't have time to maintain the same algorithm
372 * The documentation has been updated to meet the new features. A lot
373 of typos have been fixed as well.
376 * this list may be incomplete
377 * This release brings support for LADSPA plugins. These plugins can
378 be inserted into any turntable's effect chain at any position. You
379 can edit the the effect sequence with the two tiny blue arrows.
380 The builtin effects reside in the same effect chain as LADSPA
381 plugins, but unlike LADSPA plugins they cannot be removed (nor
382 multi-instanciated). The LADSPA plugins have to "fit" into the
383 effect chain, which is why terminatorX supports *mono* plugins
384 (plugins that have one audio-in and one audio-out port) only. For
385 the plugin's control ports, termintatorX supports all HINTS except
386 for LADSPA_HINT_LOGARITHMIC. Some control ports might be hard to
387 handle as LAPDSA control ports can have very wide value ranges. It
388 is possible to enter precise values though. Get LADSPA and the CMT
389 plugins from http://www.ladspa.org. All parameters for
390 LADSPA-plugins are "sequencable parameters", so you can record
391 parameter-change events for the plugin's knobs just as for the
393 * GUI re-design to support dynamic plugin GUIs. The
394 audiofile-display is now seperated from the turntable's controls.
395 The groups are split in to panels which can be minimized if not
396 required (orange arrow). The panels' minimized-status will be
397 saved within the set files. To add a plugin effect into the
398 turntables effect chain click on the "FX"- button and choose the
399 plugin of your choice. To get more info on the plugin effects
400 click on their panel's label. NOTE: The panning-control is not
401 working yet. It'll work as soon as stereo is done.
402 * As always when introducing something new, the set-file file-format
404 * The parameter-to-mouse-axis mapping has been moved from hardcoded
405 to dynamic. You can now map any parameter that's considered
406 "mappable" to the mouse-axis of your choice (for each turntable
407 separately). This is true for the control ports of LADSPA-plugins,
409 * Josh Steiner <joschi@eds.org> has joined terminatorX development.
410 For this release he has added some startup parameters for
411 terminatorX, some of them aiming for future MIDI support, and
412 therefor not functional yet. Run "terminatorX --help" to get more
414 * I know write the "manual" in SGML with the DocBook DTD. The
415 distribution contains the HTML and the postscript version. These
416 transformation have been created using James Clark's jade
417 (DSSSL-processor) and Norman Walsh's DSSSL stylesheets for
419 * Removed obsolete "number of vtts"-option from the options dialog.
420 * Applied a patch from Josh that fixes running the soundfile editor
421 for files including a blank in their filename.
422 * New tooltips for the complete GUI.
424 Version 3.61 (unreleased)
425 * applied a tiny patch from Atsushi Yamagata
426 <yamagata@plathome.co.jp> to set locale on startup.
429 * terminatorX has a sequencer now. Warning: with the current design
430 the sequencer will correctly play back recorded events only when
431 the buffer size (of the audio device) is set to the same size as
432 it was when recording the events. I know this is annoying and I
433 will try to find a solution to this. Please take a look at the
434 README to find out how the sequencer works.
435 * fixed a bug causing the lowpass filter produce a constant signal
436 * fixed the load file / drag'n'drop segfault bug
437 * fixed the prelisten zombie processes bug
438 * fixed the segfault on termination bug (with the audio engine
440 * hacked the mixer code to use 3DNow! too. This improves 3DNow!
441 performance gain from previously ~6% to more than 20% (depending
442 on compiler optimizations)
443 * extended the set-file-format to allow storing of sequencer events.
444 This release allows loading old tX-sets too.
445 * some gui icons. Choose Text/Icon / Icon only / Text only display
446 of these icons in the Options dialog. You'll have to restart tX to
447 see the changes though.
448 * "soundfile-editor support": Enter the soundfile-editor of your
449 choice in the tX-Options dialog (Still looking for an editor?
450 Checkout Dave's Linux Sound and MIDI Pages:
451 http://www.bright.net/~dlphilp/linuxsound/). Click the edit button
452 in the Main-Panel to start your editor with the turntable's
453 soundfile - edit ;) - save and click the reload button.
454 * big endian bug fixes by Scott C. Knight <scknight@indiana.edu>
455 * --enable-benchmark will now produce a benchmark binary. This takes
456 a set file as a parameter (that set file should autotrigger all
457 tables, else the benchmark will measure how fast tX can generate
458 zeros ;) WARNING: the benchmark binary is not a usable terminatorX
460 * a new dial-widget. I created this for the upcoming GUI-redesign -
461 and decided I let you debug it right now ;) If you don't want it
462 run configure with the --disable-dial switch.
463 * some gui redesign. The volume scales are now located near their
464 corresponding "flash"-widget. This release fits into very small
465 windows - so it should be usable on smaller displays as well.
466 * Adrian told me configure doesn't have to check for glib after
467 checking for gtk+ - I guess he's right so the glib-test has gone.
471 * implemented "sequenceable parameters" (see tX_seqpar.*). This
472 means the groundwork for the sequencer is done. Although this
473 release does not yet feature a sequencer - there's still a profit:
474 you can now see the GUI (e.g. the lowpass-freq slider) update
475 while you change that value with your mouse in dga grab mode (e.g.
476 up/down with the default X/Y-Control settings).
477 * fixed (libmmx) mmx.h to work with gcc 2.95 and above
478 * fixed compilation problems for big endian machines. still runtime
479 probs reported though.
480 * fixed configure-script as the new bash complains about == in
482 * fixed some gui segfaults
483 * added an ugly GNOME-mimetype installer. This installs the
484 ".tX"-mime type, an terminatorX-application icon and a ".tX"-icon.
485 I could use some hints on how I could make automake install that
486 instead of an extra script. (see README.GNOME)
487 * added Drag'n Drop support. Works with the great gmc. Drop an audio
488 file over the filename-button or the wavdisplay of a turntable to
489 load it into that table. Drop an audiofile over the "Add
490 Turntable" Button to create a new turntable and load that file
491 into that turntable. Drop a tX-set file over the "Load Set" button
495 * fixes the load_piped() compilation error if you use neither sox
496 nor mpg123. Note that you have no "pre-listening" without mpg123
497 for mp3s and no "pre-listening" for any other file without sox.
500 * Yet another redesign ;) Oh well this project moved from
501 c++/multithreaded to c++/singlethreaded, to c/multithreaded and
502 now, finally, back to c++/multithreaded. This shows quite some
503 foresight, I'd say ;)
504 * Due to the redesign I had to change a lot (everything?) again so
505 this document can impossibly hold all changes. but let's see:
506 * tX now uses floats instead of doubles for a lot of parameters.
507 Therefore the old .terminatorXrc.bin is now called
508 .terminatorX3rc.bin to allow parallel use of older releases. But
509 you'll have to configure the new release again the first time you
511 * tX now supports an unlimited no of turntables. The only limit is
513 * Each of these turntables has their own pitch / volume settings and
514 a dedicated lowpass and echo effect section.
515 * You can now map mouse motion to a function of your choice
516 (scratching/ volume/cutoff/echo-feedback and nothing)
517 * Recording will now happen straight to disk. You'll have to specify
518 a filename before you start recording.
519 * You can sync the turntables to one master turntable.
520 * There are two master settings for pitch and volume available to
521 modify all turntables. The turntable pitch is relative to the
523 * You can save a complete set (of turntables and settings) to a .tX
524 set file. The audiofile data will *not* be saved within that file,
525 but it'll contain the absolut filename to these files. I know this
526 makes the act of exchanging sets over the net more complex so if
527 somebody wants to code set files with integrated audio data... ;)
528 * The way audiofiles are loaded has been redesigned too: the builtin
529 wav routines, the sox support and mpg123 are no longer connected.
530 This means you can use mpg123 support without sox support and
531 still have the builtin wav routines enabled. If you have the
532 builtin wav reader and sox enabled, tX will try try to use the
533 builtin routines first, and if they fail sox will be used as a
534 fallback which is of course slower as you know... There's some
535 support for Benno Senoner's brilliant 3.2-mmap() patch but the
536 patch still needs to be ported.
537 * You can now select which parameter to map to a mouse axis.
538 * experimental 3DNow! support (works with gcc < 2.95 only)
539 * tX-windows now have an icon, thanks Michael!
542 * implemented 2D-Scratching ;) You can now use the other axis of
543 your mouse two modify the cutoff frequency of the lowpass filter
544 (if enabled). The resonance factor can be set via the slider
545 underneath "LP Filter". Seems to eat quite some CPU power
547 * Updated THANKS, AUTHORS
548 * as most people seem to use sox/mpg123 anyway and as I still get "I
549 want mp3" emails I changed the configure script slightly: It now
550 automatically enables the use of sox and mpg123 if these are
551 available. If you still want 'em good old 16Bit/44.1Khz/Mono
552 builtin routines you have to specify --enable-wavonly with your
554 * Prepared the tarball for the Win32 port. You can now compile tX
555 with cygwin and the Makefile.cygwin in the src directory if you
556 have all the required libs (gtk, pthreads etc...). The resulting
557 exe will run BUT is completely unusable for now... Stou Sandalski
558 <tangui@cell2000.net> and I are planning to make it usable in the
560 * The About-Dialog now contains some info on how the binary was
564 * Optimized audio-rendering code for speed (might run on some
565 machines with smaller buffsize (-> lower latency) than pre-3.1) -
566 Hey, tX now uses less than 10% CPU (says kpm) with mixing enabled
567 on my i586-200MMX machine!!
568 * "fixed" stdout-output. Due to the pipe-buffering realtime
569 schratching can not be considered usable for now :(
570 * Added config option --enable-scheduler, which will cause the
571 terminatorX engine-thread to run with FIFO scheduling policy and
572 highest priority. This might enable some machines to use smaller
573 buffsizes. It requries root privileges though - either run
574 terminatorX as root - or make terminatorX suid root WHICH IS A BAD
575 IDEA FOR MULTI-USER SYSTEMS IF OTHER USERS CAN ACCESS THE BINARY
576 ;) You only have to think about this when you experience buffer
577 underruns with your desired latency. And it might not even help...
578 * Rehacked the de-clicking (fading) code. The old one tried to be
579 much more intelligent - and failed fading out the signal
580 sometimes. The new code is much simpler (faster) and is much more
582 * added common sense to the warp feature (f-key in scratch mode).
583 The warping speed is still connected to the mouse speed but it's
584 now adjusted to the sample size as well: you can warp through any
585 sample completely with the same mouse distance.
586 * added debug configure switch. Enables (very few) debug messages
587 for now. I decided not to enable the old V2.X messages as they are
588 sent to stdout, which would sound pretty strange to people who use
592 * Fixed Adrian's name in the THANKS file. Sorry, Adrian.
593 * Corrected Makefile.am for license.c that did not build correctly
594 on some systems - Thanks to Michael Pruett
595 <mikep@ugcs.caltech.edu>
598 * fixed a bug that caused terminatorX to crash without --enable-sox
602 * Changed everything ;)
603 * switched from C++ to C for gtk's sake
604 * switched back two multithreading
605 * implemented new gtk+ gui and dialogs
606 * new mouse-sampling code now uses DGA's DirectMouse
607 * implemented "initalizing"-support for XInput devices.
608 * new (alpha) "pre-listening" feature in scratch/loop dialogs
609 * hacked vtt for click-free audio. Might be problematic with big
610 kernel level buffersizes but scratching with big buffsize is no
612 * options are now stored in ~/.terminatorXrc.bin automatically (on
613 exit) as well as windowsize and the last used filenames
614 * terminatorX now comes with a configure script - no more Makefile
615 hacking required (nor a good idea ;) )
616 * new wavdisplay-widget update frequency is now configureable
617 * new position-display is much more visible which allows more
619 * new mute-feature allows you to silence the scratch-playback
620 completely while the loop keeps playing (press either <m>-key or
622 * support for mouse buttons:
623 + 1. (left) button: same as <SPACE>, do scratch
624 + 2. (right) button: mute scratch
625 + 3. (middle) button: stop
626 * wrote support for sox and mpg123. This enables terminatorX to read
627 close to any audiofile. You need to have sox and mp3 and this
628 feature (as it is still alpha) needs to be enabled via
629 configure-switches see INSTALL
630 * licmak now is an awk script. Thanks Christian! I was also received
631 two perl scripts (Thanks, guys!) but I now use the awk script as
633 * introduced <F>-key to "warp" through scratch-sample (just check it
635 * dropped commandline arguments
636 * dropped old X-Code + Mouse warping madness
637 * bug fixes (less than bug introduces though ;) )
639 Version 2.4 (unreleased)
640 * implemented a time counter
641 * licmak now finally is what it should be: a perl script (licmak.pl)
642 it was contributed by Adam Sjøgren <asjo@diku.dk> . Thanks!
645 * wavfile overreading fixed by Andrew C. Bul+hac?k <acb@zikzak.net>
646 * Using portable type definitions now where required. If you don't
647 have a <sys/types.h> on your system and your machines type sizes
648 equal those of an X86-machine you can specify -DUSE_X86_TYPES in
649 Makefile to compile without <sys/types.h>
650 * Slight change in audiodevice-handling that fixes improper buffsize
651 settings on some soundcards (e.g. GUS)
652 * Implemented "keep device open"-feature. Needs to be enabled via
653 the -DKEEP_DEV_OPEN switch in Makefile
654 * Added some comments to the Makefile for easier editing
655 * Added Big Endian support. Use -DBIG_ENDIAN_MACHINE for big endian
656 hosts like ultrapenguin suns or linux ppc. There's also
657 -DBIG_ENDIAN_AUDIO for big endian audio hardware (rare?)
658 available, although proabably nobody will need this.
659 * Changed mix behaviour: Mix is now automatically turned on on
660 startup if the user has specified a proper loop file. (with the
662 * New mixing routine. You can now set the loop to scratch volume
663 ratio with the cursor keys (left/right). If you modify the volumes
664 while recording these action's will not be recorded. Saving
665 happens with the currently set level.
666 * Fixed README-Bug said <m> instead of <x>
669 * first released version
670 * added colors, more standard use of X11
672 * added statusbar with mode/status display
673 * added commandline options and help (on usage and keys)
674 * added raw/mixed save scratch feature
675 * added licmak to include license into binary
676 * new handling of XAutoRepeat, only turned off now when SPACE
678 * modified wave display (faster + nicer + incorrect (who cares
680 * Makefile fixed by Adrian Reber <adrian@lisas.de>
683 Version 2.1 (unreleased)
684 * added recording, playback of recording functionality
686 Version 2.0 (unreleased)
687 * moved from multithreaded to singlethreaded
691 Version 1.0 (unreleased)
693 * no more position display due to pthread/X probs
696 Version 0.5 (unreleased)
699 * accelerating vtt via sinus