Updating to current release - 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.65]
7 - new GUI
8 - Plugins
9 - setformat
10 - mappable parameters
11
12 [v3.61] (unreleased)
13 - applied a tiny patch from Atsushi Yamagata <yamagata@plathome.co.jp>
14   to set locale on startup.
15
16 [v3.60]
17 - terminatorX has a sequencer now. Warning: with the current design the
18   sequencer will correctly play back recorded events only when the buffer size
19   (of the audio device) is set to the same size as it was when recording the
20   events. I know this is annoying and I will try to find a solution to this. 
21   Please take a look at the README to find out how the sequencer works.
22 - fixed a bug causing the lowpass filter produce a constant signal
23 - fixed the load file / drag'n'drop segfault bug
24 - fixed the prelisten zombie processes bug
25 - fixed the segfault on termination bug (with the audio engine running)
26 - hacked the mixer code to use 3DNow! too. This improves 3DNow! performance gain
27   from previously ~6% to more than 20% (depending on compiler optimizations)
28 - extended the set-file-format to allow storing of sequencer events. This
29   release allows loading old tX-sets too.
30 - some gui icons. Choose Text/Icon / Icon only / Text only display of these
31   icons in the Options dialog. You'll have to restart tX to see the changes
32   though.
33 - "soundfile-editor support": Enter the soundfile-editor of your choice in the
34   tX-Options dialog (Still looking for an editor? Checkout Dave's Linux
35   Sound and MIDI Pages: http://www.bright.net/~dlphilp/linuxsound/).
36   Click the edit button in the Main-Panel to start your editor with the
37   turntable's soundfile - edit ;) - save and click the reload button.
38 - big endian bug fixes by Scott C. Knight <scknight@indiana.edu>
39 - --enable-benchmark will now produce a benchmark binary. This takes a set file
40   as a parameter (that set file should autotrigger all tables, else the
41   benchmark will measure how fast tX can generate zeros ;) WARNING: the
42   benchmark binary is not a usable terminatorX binary.
43 - a new dial-widget. I created this for the upcoming GUI-redesign - and decided
44   I let you debug it right now ;) If you don't want it run configure with the
45   --disable-dial switch.
46 - some gui redesign. The volume scales are now located near their corresponding
47   "flash"-widget. This release fits into very small windows - so it should be
48   usable on smaller displays as well.
49 - Adrian told me configure doesn´t have to check for glib after checking for
50   gtk+ - I guess he´s right so the glib-test has gone.
51 - more minor fixes
52   
53 [v3.55]
54 - implemented "sequenceable parameters" (see tX_seqpar.*). This means the
55   groundwork for the sequencer is done. Although this release does not yet
56   feature a sequencer - there's still a profit: you can now see the GUI (e.g.
57   the lowpass-freq slider) update while you change that value with your mouse in
58   dga grab mode (e.g. up/down with the default X/Y-Control settings).
59 - fixed (libmmx) mmx.h to work with gcc 2.95 and above
60 - fixed compilation problems for big endian machines. still runtime probs
61   reported though.
62 - fixed configure-script as the new bash complains about == in string compares
63 - fixed some gui segfaults
64 - added an ugly GNOME-mimetype installer. This installs the ".tX"-mime type, an
65   terminatorX-application icon and a ".tX"-icon. I could use some hints on how
66   I could make automake install that instead of an extra script.
67   (see README.GNOME)
68 - added Drag'n Drop support. Works with the great gmc. Drop an audio file over 
69   the filename-button or the wavdisplay of a turntable to load it into that
70   table. Drop an audiofile over the "Add Turntable" Button to create a new 
71   turntable and load that file into that turntable. Drop a tX-set file over the
72   "Load Set" button to load the set. 
73
74 [v3.51]
75 - fixes the load_piped() compilation error if you use neither sox nor mpg123.
76   Note that you have no "pre-listening" without mpg123 for mp3s and no 
77   "pre-listening" for any other file without sox.
78
79 [v3.5]
80 - Yet another redesign ;) Oh well this project moved from c++/multithreaded
81   to c++/singlethreaded, to c/multithreaded and now, finally, back to
82   c++/multithreaded. This shows quite some foresight, I'd say ;)
83 - Due to the redesign I had to change a lot (everything?) again so this document
84   can impossibly hold all changes. but let's see:
85 - tX now uses floats instead of doubles for a lot of parameters. Therefore the
86   old .terminatorXrc.bin is now called .terminatorX3rc.bin to allow parallel
87   use of older releases. But you'll have to configure the new release again
88   the first time you run it.
89 - tX now supports an unlimited no of turntables. The only limit is your display
90   really.
91 - Each of these turntables has their own pitch / volume settings and a 
92   dedicated lowpass and echo effect section.
93 - You can now map mouse motion to a function of your choice (scratching/
94   volume/cutoff/echo-feedback and nothing)
95 - Recording will now happen straight to disk. You'll have to specify a filename
96   before you start recording.
97 - You can sync the turntables to one master turntable.
98 - There are two master settings for pitch and volume available to modify all
99   turntables. The turntable pitch is relative to the master pitch.
100 - You can save a complete set (of turntables and settings) to a .tX set file.
101   The audiofile data will *not* be saved within that file, but it'll contain
102   the absolut filename to these files. I know this makes the act of exchanging
103   sets over the net more complex so if somebody wants to code set files with
104   integrated audio data... ;)
105 - The way audiofiles are loaded has been redesigned too: the builtin wav
106   routines, the sox support and mpg123 are no longer connected. This means
107   you can use mpg123 support without sox support and still have the builtin
108   wav routines enabled. If you have the builtin wav reader and sox enabled, tX
109   will try try to use the builtin routines first, and if they fail sox will be
110   used as a fallback which is of course slower as you know... There's some 
111   support for Benno Senoner's brilliant 3.2-mmap() patch but the patch still
112   needs to be ported.
113 - You can now select which parameter to map to a mouse axis.
114 - experimental 3DNow! support (works with gcc < 2.95 only)
115 - tX-windows now have an icon, thanks Michael!
116
117 [v3.2]
118 - implemented 2D-Scratching ;) You can now use the other axis of your mouse
119   two modify the cutoff frequency of the lowpass filter (if enabled). The
120   resonance factor can be set via the slider underneath "LP Filter". Seems
121   to eat quite some CPU power though...
122 - Updated THANKS, AUTHORS
123 - as most people seem to use sox/mpg123 anyway and as I still get "I want mp3"
124   emails I changed the configure script slightly: It now automatically enables
125   the use of sox and mpg123 if these are available. If you still want 'em good
126   old 16Bit/44.1Khz/Mono builtin routines you have to specify --enable-wavonly
127   with your configure cmdline.
128 - Prepared the tarball for the Win32 port. You can now compile tX with cygwin
129   and the Makefile.cygwin in the src directory if you have all the required
130   libs (gtk, pthreads etc...). The resulting exe will run BUT is completely
131   unusable for now... Stou Sandalski <tangui@cell2000.net> and I are planning
132   to make it usable in the future.
133 - The About-Dialog now contains some info on how the binary was compiled
134
135 [v3.1]
136 - Optimized audio-rendering code for speed (might run on some machines
137   with smaller buffsize (-> lower latency) than pre-3.1) - Hey, tX now uses
138   less than 10% CPU (says kpm) with mixing enabled on my i586-200MMX machine!!  
139 - "fixed" stdout-output. Due to the pipe-buffering realtime schratching can
140   not be considered usable for now :(
141 - Added config option --enable-scheduler, which will cause the terminatorX
142   engine-thread to run with FIFO scheduling policy and highest priority. This
143   might enable some machines to use smaller buffsizes. It requries root
144   privileges though - either run terminatorX as root - or make terminatorX
145   suid root WHICH IS A BAD IDEA FOR MULTI-USER SYSTEMS IF OTHER USERS CAN
146   ACCESS THE BINARY ;) You only have to think about this when you experience
147   buffer underruns with your desired latency. And it might not even help...
148 - Rehacked the de-clicking (fading) code. The old one tried to be much more
149   intelligent - and failed fading out the signal sometimes. The new code
150   is much simpler (faster) and is much more reliable.
151 - added common sense to the warp feature (f-key in scratch mode). The warping
152   speed is still connected to the mouse speed but it's now adjusted to the
153   sample size as well: you can warp through any sample completely with the same
154   mouse distance.
155 - added debug configure switch. Enables (very few) debug messages for now. I
156   decided not to enable the old V2.X messages as they are sent to stdout, which
157   would sound pretty strange to people who use the stdout-option.
158     
159 [v3.02] (unreleased)
160 - Fixed Adrian's name in the THANKS file. Sorry, Adrian.
161 - Corrected Makefile.am for license.c that did not build correctly on some 
162   systems - Thanks to Michael Pruett <mikep@ugcs.caltech.edu>
163
164 [v3.01]
165 - fixed a bug that caused terminatorX to crash without --enable-sox or
166   mpg123input.
167
168 [v3.0]
169 - Changed everything ;)
170 - switched from C++ to C for gtk's sake
171 - switched back two multithreading
172 - implemented new gtk+ gui and dialogs
173 - new mouse-sampling code now uses DGA's DirectMouse
174 - implemented "initalizing"-support for XInput devices.
175 - new (alpha) "pre-listening" feature in scratch/loop dialogs
176 - hacked vtt for click-free audio. Might be problematic with big
177   kernel level buffersizes but scratching with big buffsize is no
178   fun anyway.
179 - options are now stored in ~/.terminatorXrc.bin automatically (on exit)
180   as well as windowsize and the last used filenames
181 - terminatorX now comes with a configure script - no more Makefile hacking
182   required (nor a good idea ;) )
183 - new wavdisplay-widget update frequency is now configureable
184 - new position-display is much more visible which allows more precise
185   scratching
186 - new mute-feature allows you to silence the scratch-playback completely
187   while the loop keeps playing (press either <m>-key or right mouse-button.
188 - support for mouse buttons:
189   o 1. (left) button: same as <SPACE>, do scratch
190   o 2. (right) button: mute scratch
191   o 3. (middle) button: stop
192 - wrote support for sox and mpg123. This enables terminatorX to read close
193   to any audiofile. You need to have sox and mp3 and this feature (as it is
194   still alpha) needs to be enabled via configure-switches see INSTALL
195 - licmak now is an awk script. Thanks Christian! I was also received two perl
196   scripts (Thanks, guys!) but I now use the awk script as it is the smallest.
197 - introduced <F>-key to "warp" through scratch-sample (just check it out)
198 - dropped commandline arguments
199 - dropped old X-Code + Mouse warping madness
200 - bug fixes (less than bug introduces though ;) )
201
202
203 [v2.4] (unreleased)
204 - implemented a time counter
205 - licmak now finally is what it should be: a perl script (licmak.pl)
206   it was contributed by: Adam Sjøgren <asjo@diku.dk>. Thanks!
207
208 [v2.3]
209 - X-Window background fixed
210 - wavfile overreading fixed by Andrew C. Bul+hac?k (acb@zikzak.net)
211 - Using portable type definitions now where required. If you don't
212   have a <sys/types.h> on your system and your machines type sizes
213   equal those of an X86-machine you can specify -DUSE_X86_TYPES in
214   Makefile to compile without <sys/types.h>
215 - Slight change in audiodevice-handling that fixes improper buffsize
216   settings on some soundcards (e.g. GUS)
217 - Implemented "keep device open"-feature. Needs to be enabled via the
218   -DKEEP_DEV_OPEN switch in Makefile
219 - Added some comments to the Makefile for easier editing
220 - Added Big Endian support. Use -DBIG_ENDIAN_MACHINE for big endian hosts
221   like ultrapenguin suns or linux ppc. There's also -DBIG_ENDIAN_AUDIO
222   for big endian audio hardware (rare?) available, although proabably
223   nobody will need this.
224 - Changed mix behaviour: Mix is now automatically turned on on startup if
225   the user has specified a proper loop file. (with the --loop or -l switch)
226 - New mixing routine. You can now set the loop to scratch volume ratio with
227   the cursor keys (left/right). If you modify the volumes while recording
228   these action's will not be recorded. Saving happens with the currently
229   set level.
230 - Fixed README-Bug said <m> instead of <x>
231   
232 [v2.2]
233 - first released version
234 - added colors. more standard use of X11.
235 - added loop support.
236 - added statusbar with mode/status display
237 - added commandline options and help (on usage and keys)
238 - added raw/mixed save scratch feature
239 - added licmak to include license into binary
240 - new handling of XAutoRepeat, only turned off now when SPACE pressed.
241 - modified wave display (faster + nicer + incorrect (who cares anyway))
242 - Makefile fixed by Adrian Reber (adreit00@fht-esslingen.de)
243 - bug fixes
244
245 [prerelease]
246
247 [v2.1]
248 - added recording, playback of recording functionality
249
250 [v2.0]
251 - moved from multithreaded to singlethreaded
252 - position feedback
253 - bug fixes
254
255 [v1.0]
256 - mouse support
257 - no more position display due to pthread/X probs
258 - bug fixes
259
260 [v0.5]
261 - first version
262 - no mouse handling
263 - accelerating vtt via sinus
264 - multithreaded
265 - sound aliasing