Applied the ogg123 patch and some minor fixes. Alex
[terminatorX.git] / ChangeLog
1 terminatorX - ChangeLog
2 All changes were done by me (Alexander König) if not stated otherwise.
3 This is not a GNU-style ChangeLog but you sort of get the idea what was
4 changed.
5
6 [v3.72]
7 - Applied a patch from Matthew Evans <activesx@hotmail.com> that introduces 
8   support for Ogg Vorbis audiofiles. It requires ogg123 and sox to work.
9   Autodetection is supported via configure (--enable-ogg123).
10 - Experimental support for input devices other than the core-pointer
11   under XFree86 > 4. This uses the xsetpointer executable that comes with
12   XFree86. configure should autodetect this correct, in case it doesn't
13   use --enable-xetpointer switch.
14 - Adrian sent me a patch introducing two new buttons: mute and solo. It's
15   not yet finished though.
16 - fixed a bug that produced corrupt wavfiles on big endian machines
17
18 [v3.71]
19 - applied a big patch from Adrian Reber (adrian@lisas.de). This patch includes:
20   o compile fixes for the newer gcc releases
21   o enhancements to the commandline switches (try --help for more details)
22   o bug fixes for tX_global.c
23 - the bigNewThang (TM) is STEREO output. The Pan-Buttons now actually do what
24   you'd expect them to. Therefore your soundcard must have stereo support of
25   course but I guess in 2001 this really shouldn't be a problem, right? 
26   The recorded wavfiles will now be stereo wavfiles of course.
27   Note that stereo output means double audio-bandwith, so if you tuned your
28   old terminatorX setup to smallest latency you might get clicks now. You can
29   easily fix this by increasing the buffer size in the options dialog by one - 
30   this will result in the same latency as before btw.
31 - The echo effect has undergone some enhancements to profit from the new stereo
32   output. It's signal will now be mixed seperately so you can choose a different
33   stereo panorama position for the echo signal. So the new echo effect now 
34   features it's own PAN-knob. This does have some sideeffects though, for more
35   details on this check the manual.
36   Additionally the echo effect now has it's own volume setting to influence
37   the dry/wet ratio of this effect.
38 - Some LADSPA effects tend to create NAN (Not A Number) float values under
39   certain conditions. This is bad as all following operations will result in 
40   NANs, so there will be no audio output no more. Now I will not introduce code
41   to check for NANs as this is a waste of CPU-power, producing NANs is IMHO
42   a faulty behaviour for LADSPA plugins and it should be fixed in there.
43   Now a problem with the previous release was that the echo and lowpass effects
44   "ate" those NANs resulting in NANs in those effects' buffers. So once a NAN
45   got in there these effects caused the whole audio output to mute (forever). 
46   Which is why I now introduced some code to clear the buffers in echo and
47   lowpass whenever you dis- and reenable them.
48 - The GUI does have two master vu-meters now. The turntable's still have one
49   vu-meter only. Note that the echo-signal is *not* included in the turntable's
50   vu-meter now, as it's mixed seperately.
51 - The 3DNow!-Optimizations are gone. And they'll proabably never come back as
52   I don't have time to maintain the same algorithm twice.
53 - The documentation has been updated to meet the new features. A lot of typos
54   have been fixed as well.
55
56 [v3.70]
57 - this list may be incomplete
58 - This release brings support for LADSPA plugins. These plugins can be inserted
59   into any turntable's effect chain at any position. You can edit the the
60   effect sequence with the two tiny blue arrows. The builtin effects reside in
61   the same effect chain as LADSPA plugins, but unlike LADSPA plugins they cannot
62   be removed (nor multi-instanciated).
63   The LADSPA plugins have to "fit" into the effect chain, which is why
64   terminatorX supports *mono* plugins (plugins that have one audio-in and one
65   audio-out port) only. For the plugin's control ports, termintatorX supports
66   all HINTS except for LADSPA_HINT_LOGARITHMIC. Some control ports might be 
67   hard to handle as LAPDSA control ports can have very wide value ranges. It is
68   possible to enter precise values though.
69   Get LADSPA and the CMT plugins from http://www.ladspa.org
70   All parameters for LADSPA-plugins are "sequencable parameters", so you can
71   record parameter-change events for the plugin's knobs just as for the
72   standard parameters.
73 - GUI re-design to support dynamic plugin GUIs. The audiofile-display is now 
74   seperated from the turntable's controls. The groups are split in to panels
75   which can be minimized if not required (orange arrow). The panels'
76   minimized-status will be saved within the set files.
77   To add a plugin effect into the turntables effect chain click on the "FX"-
78   button and choose the plugin of your choice. To get more info on the
79   plugin effects click on their panel's label.
80   NOTE: The panning-control is not working yet. It'll work as soon as stereo
81   is done.
82 - As always when introducing something new, the set-file file-format has
83   changed.
84 - The parameter-to-mouse-axis mapping has been moved from hardcoded to
85   dynamic. You can now map any parameter that's considered "mappable" to the
86   mouse-axis of your choice (for each turntable separately). This is true
87   for the control ports of LADSPA-plugins, too.
88 - Josh Steiner <joschi@eds.org> has joined terminatorX development. For this 
89   release he has added some startup parameters for terminatorX, some of them
90   aiming for future MIDI support, and therefor not functional yet. Run
91   "terminatorX --help" to get more details.
92 - I know write the "manual" in SGML with the DocBook DTD. The distribution
93   contains the HTML and the postscript version. These transformation have been
94   created using James Clark's jade (DSSSL-processor) and Norman Walsh's DSSSL
95   stylesheets for DocBook.
96 - Removed obsolete "number of vtts"-option from the options dialog.
97 - Applied a patch from Josh that fixes running the soundfile editor for files
98   including a blank in their filename.
99 - New tooltips for the complete GUI.
100
101 [v3.61] (unreleased)
102 - applied a tiny patch from Atsushi Yamagata <yamagata@plathome.co.jp>
103   to set locale on startup.
104
105 [v3.60]
106 - terminatorX has a sequencer now. Warning: with the current design the
107   sequencer will correctly play back recorded events only when the buffer size
108   (of the audio device) is set to the same size as it was when recording the
109   events. I know this is annoying and I will try to find a solution to this. 
110   Please take a look at the README to find out how the sequencer works.
111 - fixed a bug causing the lowpass filter produce a constant signal
112 - fixed the load file / drag'n'drop segfault bug
113 - fixed the prelisten zombie processes bug
114 - fixed the segfault on termination bug (with the audio engine running)
115 - hacked the mixer code to use 3DNow! too. This improves 3DNow! performance gain
116   from previously ~6% to more than 20% (depending on compiler optimizations)
117 - extended the set-file-format to allow storing of sequencer events. This
118   release allows loading old tX-sets too.
119 - some gui icons. Choose Text/Icon / Icon only / Text only display of these
120   icons in the Options dialog. You'll have to restart tX to see the changes
121   though.
122 - "soundfile-editor support": Enter the soundfile-editor of your choice in the
123   tX-Options dialog (Still looking for an editor? Checkout Dave's Linux
124   Sound and MIDI Pages: http://www.bright.net/~dlphilp/linuxsound/).
125   Click the edit button in the Main-Panel to start your editor with the
126   turntable's soundfile - edit ;) - save and click the reload button.
127 - big endian bug fixes by Scott C. Knight <scknight@indiana.edu>
128 - --enable-benchmark will now produce a benchmark binary. This takes a set file
129   as a parameter (that set file should autotrigger all tables, else the
130   benchmark will measure how fast tX can generate zeros ;) WARNING: the
131   benchmark binary is not a usable terminatorX binary.
132 - a new dial-widget. I created this for the upcoming GUI-redesign - and decided
133   I let you debug it right now ;) If you don't want it run configure with the
134   --disable-dial switch.
135 - some gui redesign. The volume scales are now located near their corresponding
136   "flash"-widget. This release fits into very small windows - so it should be
137   usable on smaller displays as well.
138 - Adrian told me configure doesn´t have to check for glib after checking for
139   gtk+ - I guess he´s right so the glib-test has gone.
140 - more minor fixes
141   
142 [v3.55]
143 - implemented "sequenceable parameters" (see tX_seqpar.*). This means the
144   groundwork for the sequencer is done. Although this release does not yet
145   feature a sequencer - there's still a profit: you can now see the GUI (e.g.
146   the lowpass-freq slider) update while you change that value with your mouse in
147   dga grab mode (e.g. up/down with the default X/Y-Control settings).
148 - fixed (libmmx) mmx.h to work with gcc 2.95 and above
149 - fixed compilation problems for big endian machines. still runtime probs
150   reported though.
151 - fixed configure-script as the new bash complains about == in string compares
152 - fixed some gui segfaults
153 - added an ugly GNOME-mimetype installer. This installs the ".tX"-mime type, an
154   terminatorX-application icon and a ".tX"-icon. I could use some hints on how
155   I could make automake install that instead of an extra script.
156   (see README.GNOME)
157 - added Drag'n Drop support. Works with the great gmc. Drop an audio file over 
158   the filename-button or the wavdisplay of a turntable to load it into that
159   table. Drop an audiofile over the "Add Turntable" Button to create a new 
160   turntable and load that file into that turntable. Drop a tX-set file over the
161   "Load Set" button to load the set. 
162
163 [v3.51]
164 - fixes the load_piped() compilation error if you use neither sox nor mpg123.
165   Note that you have no "pre-listening" without mpg123 for mp3s and no 
166   "pre-listening" for any other file without sox.
167
168 [v3.5]
169 - Yet another redesign ;) Oh well this project moved from c++/multithreaded
170   to c++/singlethreaded, to c/multithreaded and now, finally, back to
171   c++/multithreaded. This shows quite some foresight, I'd say ;)
172 - Due to the redesign I had to change a lot (everything?) again so this document
173   can impossibly hold all changes. but let's see:
174 - tX now uses floats instead of doubles for a lot of parameters. Therefore the
175   old .terminatorXrc.bin is now called .terminatorX3rc.bin to allow parallel
176   use of older releases. But you'll have to configure the new release again
177   the first time you run it.
178 - tX now supports an unlimited no of turntables. The only limit is your display
179   really.
180 - Each of these turntables has their own pitch / volume settings and a 
181   dedicated lowpass and echo effect section.
182 - You can now map mouse motion to a function of your choice (scratching/
183   volume/cutoff/echo-feedback and nothing)
184 - Recording will now happen straight to disk. You'll have to specify a filename
185   before you start recording.
186 - You can sync the turntables to one master turntable.
187 - There are two master settings for pitch and volume available to modify all
188   turntables. The turntable pitch is relative to the master pitch.
189 - You can save a complete set (of turntables and settings) to a .tX set file.
190   The audiofile data will *not* be saved within that file, but it'll contain
191   the absolut filename to these files. I know this makes the act of exchanging
192   sets over the net more complex so if somebody wants to code set files with
193   integrated audio data... ;)
194 - The way audiofiles are loaded has been redesigned too: the builtin wav
195   routines, the sox support and mpg123 are no longer connected. This means
196   you can use mpg123 support without sox support and still have the builtin
197   wav routines enabled. If you have the builtin wav reader and sox enabled, tX
198   will try try to use the builtin routines first, and if they fail sox will be
199   used as a fallback which is of course slower as you know... There's some 
200   support for Benno Senoner's brilliant 3.2-mmap() patch but the patch still
201   needs to be ported.
202 - You can now select which parameter to map to a mouse axis.
203 - experimental 3DNow! support (works with gcc < 2.95 only)
204 - tX-windows now have an icon, thanks Michael!
205
206 [v3.2]
207 - implemented 2D-Scratching ;) You can now use the other axis of your mouse
208   two modify the cutoff frequency of the lowpass filter (if enabled). The
209   resonance factor can be set via the slider underneath "LP Filter". Seems
210   to eat quite some CPU power though...
211 - Updated THANKS, AUTHORS
212 - as most people seem to use sox/mpg123 anyway and as I still get "I want mp3"
213   emails I changed the configure script slightly: It now automatically enables
214   the use of sox and mpg123 if these are available. If you still want 'em good
215   old 16Bit/44.1Khz/Mono builtin routines you have to specify --enable-wavonly
216   with your configure cmdline.
217 - Prepared the tarball for the Win32 port. You can now compile tX with cygwin
218   and the Makefile.cygwin in the src directory if you have all the required
219   libs (gtk, pthreads etc...). The resulting exe will run BUT is completely
220   unusable for now... Stou Sandalski <tangui@cell2000.net> and I are planning
221   to make it usable in the future.
222 - The About-Dialog now contains some info on how the binary was compiled
223
224 [v3.1]
225 - Optimized audio-rendering code for speed (might run on some machines
226   with smaller buffsize (-> lower latency) than pre-3.1) - Hey, tX now uses
227   less than 10% CPU (says kpm) with mixing enabled on my i586-200MMX machine!!  
228 - "fixed" stdout-output. Due to the pipe-buffering realtime schratching can
229   not be considered usable for now :(
230 - Added config option --enable-scheduler, which will cause the terminatorX
231   engine-thread to run with FIFO scheduling policy and highest priority. This
232   might enable some machines to use smaller buffsizes. It requries root
233   privileges though - either run terminatorX as root - or make terminatorX
234   suid root WHICH IS A BAD IDEA FOR MULTI-USER SYSTEMS IF OTHER USERS CAN
235   ACCESS THE BINARY ;) You only have to think about this when you experience
236   buffer underruns with your desired latency. And it might not even help...
237 - Rehacked the de-clicking (fading) code. The old one tried to be much more
238   intelligent - and failed fading out the signal sometimes. The new code
239   is much simpler (faster) and is much more reliable.
240 - added common sense to the warp feature (f-key in scratch mode). The warping
241   speed is still connected to the mouse speed but it's now adjusted to the
242   sample size as well: you can warp through any sample completely with the same
243   mouse distance.
244 - added debug configure switch. Enables (very few) debug messages for now. I
245   decided not to enable the old V2.X messages as they are sent to stdout, which
246   would sound pretty strange to people who use the stdout-option.
247     
248 [v3.02] (unreleased)
249 - Fixed Adrian's name in the THANKS file. Sorry, Adrian.
250 - Corrected Makefile.am for license.c that did not build correctly on some 
251   systems - Thanks to Michael Pruett <mikep@ugcs.caltech.edu>
252
253 [v3.01]
254 - fixed a bug that caused terminatorX to crash without --enable-sox or
255   mpg123input.
256
257 [v3.0]
258 - Changed everything ;)
259 - switched from C++ to C for gtk's sake
260 - switched back two multithreading
261 - implemented new gtk+ gui and dialogs
262 - new mouse-sampling code now uses DGA's DirectMouse
263 - implemented "initalizing"-support for XInput devices.
264 - new (alpha) "pre-listening" feature in scratch/loop dialogs
265 - hacked vtt for click-free audio. Might be problematic with big
266   kernel level buffersizes but scratching with big buffsize is no
267   fun anyway.
268 - options are now stored in ~/.terminatorXrc.bin automatically (on exit)
269   as well as windowsize and the last used filenames
270 - terminatorX now comes with a configure script - no more Makefile hacking
271   required (nor a good idea ;) )
272 - new wavdisplay-widget update frequency is now configureable
273 - new position-display is much more visible which allows more precise
274   scratching
275 - new mute-feature allows you to silence the scratch-playback completely
276   while the loop keeps playing (press either <m>-key or right mouse-button.
277 - support for mouse buttons:
278   o 1. (left) button: same as <SPACE>, do scratch
279   o 2. (right) button: mute scratch
280   o 3. (middle) button: stop
281 - wrote support for sox and mpg123. This enables terminatorX to read close
282   to any audiofile. You need to have sox and mp3 and this feature (as it is
283   still alpha) needs to be enabled via configure-switches see INSTALL
284 - licmak now is an awk script. Thanks Christian! I was also received two perl
285   scripts (Thanks, guys!) but I now use the awk script as it is the smallest.
286 - introduced <F>-key to "warp" through scratch-sample (just check it out)
287 - dropped commandline arguments
288 - dropped old X-Code + Mouse warping madness
289 - bug fixes (less than bug introduces though ;) )
290
291
292 [v2.4] (unreleased)
293 - implemented a time counter
294 - licmak now finally is what it should be: a perl script (licmak.pl)
295   it was contributed by: Adam Sjøgren <asjo@diku.dk>. Thanks!
296
297 [v2.3]
298 - X-Window background fixed
299 - wavfile overreading fixed by Andrew C. Bul+hac?k (acb@zikzak.net)
300 - Using portable type definitions now where required. If you don't
301   have a <sys/types.h> on your system and your machines type sizes
302   equal those of an X86-machine you can specify -DUSE_X86_TYPES in
303   Makefile to compile without <sys/types.h>
304 - Slight change in audiodevice-handling that fixes improper buffsize
305   settings on some soundcards (e.g. GUS)
306 - Implemented "keep device open"-feature. Needs to be enabled via the
307   -DKEEP_DEV_OPEN switch in Makefile
308 - Added some comments to the Makefile for easier editing
309 - Added Big Endian support. Use -DBIG_ENDIAN_MACHINE for big endian hosts
310   like ultrapenguin suns or linux ppc. There's also -DBIG_ENDIAN_AUDIO
311   for big endian audio hardware (rare?) available, although proabably
312   nobody will need this.
313 - Changed mix behaviour: Mix is now automatically turned on on startup if
314   the user has specified a proper loop file. (with the --loop or -l switch)
315 - New mixing routine. You can now set the loop to scratch volume ratio with
316   the cursor keys (left/right). If you modify the volumes while recording
317   these action's will not be recorded. Saving happens with the currently
318   set level.
319 - Fixed README-Bug said <m> instead of <x>
320   
321 [v2.2]
322 - first released version
323 - added colors. more standard use of X11.
324 - added loop support.
325 - added statusbar with mode/status display
326 - added commandline options and help (on usage and keys)
327 - added raw/mixed save scratch feature
328 - added licmak to include license into binary
329 - new handling of XAutoRepeat, only turned off now when SPACE pressed.
330 - modified wave display (faster + nicer + incorrect (who cares anyway))
331 - Makefile fixed by Adrian Reber (adreit00@fht-esslingen.de)
332 - bug fixes
333
334 [prerelease]
335
336 [v2.1]
337 - added recording, playback of recording functionality
338
339 [v2.0]
340 - moved from multithreaded to singlethreaded
341 - position feedback
342 - bug fixes
343
344 [v1.0]
345 - mouse support
346 - no more position display due to pthread/X probs
347 - bug fixes
348
349 [v0.5]
350 - first version
351 - no mouse handling
352 - accelerating vtt via sinus
353 - multithreaded
354 - sound aliasing