Changes in 2.0.0:
	- Years after years of intermittend hacking in the Subversion repository. Lots of reworking under the hood. Some clear outside changes I try to list here. this won't be all.
	- Removed commands:
	  - getstat (just use fullstat or watch a channel)
	  - stop, outstop (use pause and seek)
	  - play (use load & start, available as macro in frontend script)
	  - buffer (somewhat replaced by scan or tunable buffer size)
	  - vol (use volume)
	  - outpause (eject to release resources properly)
	- New commands:
	  - eject, ineject, outeject: un-load a device/file (eject the tape)
	  - buff
	  - effect, effect-bypass, effect-help, effect-list, effect-param, effect-query, effect-remove: handling of effects (timepitch and some rough LADSPA support there)
	  - feedback (switch off waiting for feedback from mixer thread)
	- Output of help command got rearranged to make parsing in frontend code simpler.
	- Frontends now using external Config::Param library.
	- The simple_player is now dermixd-player.
	- Build system smarter now, all thanks due to GNU Make (_not_ Automake).
	- There are tests!
	- The old mpg123 input is gone, using libmpg123 now.
	- Interactive console with daemon=n or -c switch to command line.

Changes in 1.6.2:
	- Oh, my! I wondered why I suddenly got short pauses, late at night -- there was a bit of debugging code that added a sleep.
	  Sorry, folks - I broke my main goal of continuous audio.

Changes in 1.6.1:
	- Fix missing cleanup in mpg123 input (that is a serious one, left a dangling thread; triggering segfault when reusing that channel).
	- Fix volume bug for 1to2 upsampling (corrected the formula).

Changes in 1.6.0:
	- Added control over UNIX domain socket (less complicated local connections; possibility for access control with file permissions).
	- Added peer-to-peer messaging for dermixd clients between each other.

Changes in 1.5.1
	- Fix crash with mono files (and stereo mixer) in prebuffer reading of mpg123 input due to wrong prebuffer format.
	  The open() logic has been fixed to ensure correct prebuffer format, also a safeguard has been installed in the prebuffer to catch such dangerous situations.
	- The length scanner now sets the input length like the "length" command does
	  Reminder: "length" may or may not sctually scan through file as needed, while "scan" always scans.
	  So, "length" still makes sense on its own for inputs like OGG/Vorbis that have header info about length.

Changes in 1.5.0
	Two thumbs up for continuity!
	- Add locks to prevent background scans from taking I/O resources while the important inputs should deliver to the mixer.
	- Add preread command that lets Linux (and other systems, too, I guess) cache the file in RAM.
	  When you do that for every file before load, you don't have the mixer waiting for disk I/O on Linux, which is a very good thing.

Changes in 1.4.0
	- internal rework of input channel thread communication; fixing synchronization bugs
	  The mpg123 input now uses the same infrastructure as the other inputs.
	- clear end flag of input before seeking, enabling repeated play of vorbis files
	- fix in parameter library for uninitlialized lock
	  I wonder why that didn't blow earlier...
	- fix cwd() in browser for long paths (realloc scheme was broken)
	- fix crash on close when clients did watch on a channel multiple times
		You can only watch a channel or don't watch it... not watch it multiple times.
	- added client commands:
		- spy/unspy: Tap on the overall communication (great for debugging clients).
		- showid <1/0>: Flag for showing channel id in command responses (1=on, 0=off, default).
		- scan <ch> <name1> <name1> ...: Run a number of scans over an input file.
			You give a list of scans to do and you get a multi-line response from them, in order.
			Implemented scans for now: peak (peak volume), length (in samples), format (rate and channel count), power (volume according to RMS power, algorithm same as Chris Vaill's normalize tool).
	- thread games: priorities on linux with -DLINUX in CPPFLAGS
		This is a hack to make input and communication threads drop priority (nice level) for not interrupting the important threads (output, mixer).
		This works only under Linux as threads are treated as processes in the scheduler. Though, on really POSIX thread compilant systems, one could do it properly with thread priorities.
	- some optimization of socket responses to minimize the time the main mixer thread has to spend on this

Changes in 1.3.0
	- add vorbisfile input, initiated by Sven Oliver Moll
	- add browsing commands: cd ls pwd
	  Now you don't need to always specify absolute paths to load files... every client can manage a current working directory and load files from there (or write to there).

Changes in 1.2.1
	- fix a bug in parameter parsing that actually prevented _deactivation_ of gapless and zeroscan
	- make mpg123.zeroscan default to off (the routine had some trouble with a very short test track; also I should not impose this feature to non-aware users)
	- actually _fix_ the zeroscan to properly cut silence at the end (thanks for pushing my nose into this, Bede!)

Changes in 1.2.0
	- lots of thead logic cleanup / fix / enhancements with command structure, giving more reliability and reducing unnecessary waiting times for main mixer thread (Thanks, Bede!)
	- handle EAGAIN on pipe/socket reads
	- generally, a number of border case (threading) bug fixes; thaks again to Bede and his multiprocessor machine
	- now actually able to be debugged with gdb (on multiprocessor machines)
	- good deal of stabilizing work on mpg123 input and the FIFO reader
	- more parsing of mpeg stream info from mpg123
	- improve seeking in mpg123 input
	- added "length" command to scan the length of a loaded track; also automatically storing the really reached length when a track ended
	- added "buffer" command to ensure readyness of audio data (and zeroscan having happened)
	- negative script times now have the meaning of "execute right after track end, with this order" (see README)
	- added "threadstat" command that gives a listing of the child threads of DerMixD (if you are suspicious on where the thread count comes from)
	- more robust output devices: a failed "outstart" just fails, you can try again with the same device
	- do not activate the device on "outload", do this only on "outstart"!
	- introduce "inload" and "inplay" with syntax like "outload" and "outplay" to specify the input device to use and skip the auto detection
	- special device type "nodev" for input and output to remove the device on a channel on demand
	- more flexible raw file playback like "inload 0 raw:1ch:48000Hz file.raw"
	- libsndfile input! That enables dermixd to play wav, au, flac, and so on.

Changes in 1.1.1:

	- endianess fix to make alsa work on ppc (apple macs)
	- fix some issues with follow/gapless transitions, certain cases resulted in fpe or stuck playback

Changes in 1.1.0:

	- new input: sine generator

	- new outputs: Alsa, Tru64/MME, text, raw_s16

	- all outputs properly (I hope;-) multithreaded; you can choose threaded and non-threaded variant for alsa/oss

	- support both layer 2 and layer 3 audio via mpg123 (recognizing *.mp2 *.mp3 *.mpg)

	- support for mono and stero; possibly different for inputs and mixer/output (down/upmix is done accordingly)
		- when in mono mode, the mpg123 decoder is started with -m option to produce mono from the start; helps saving precious cpu cycles e.g. on a laptop that has a mono speaker anyway

	- API cleanup (sorry, frontend writers, if there are any...):
		- all lines ended with "internet line end" CRLF (still takes input with LF or CRLF)
		- say now does give "[saying] stuff" instead of just "stuff"
		- also watch now has [chX] as beginning of every watch info line
		- commands additionally allowed in scripting: follow, nofollow
		- commands additionally disallowed in scripting: id

	- enhanced scripting

	- help for socked clients (the help and showapi commands)

	- more stuff tunable as command line parameter
	- configuration of main/mixer and components via group.name=value on command line

	- there are some way more sensible error messages (for humans), this includes telling about wrong mpg123 version instead of saying "unable to create device"

	- optimized for new mpg123 that doesn't produce needless silence anymore (esp. when mpg123.gapless is on and supported by your mpg123 build)

	- wrapped the mpg123 prebuffer into an own thread - that means you can now work with _huge_ buffers there and still avoid interrupting playback on another channel

	- bugfixes and internal stuff
		- setting speed to 0 doesn't set the track state to stopped anymore (just increasing the speed again will restart playback)
		- speedups
		- cleanups...

Changes in 1.0.1:

	- fixed broken follow functionality (worked, but sounded wrong)

Changes in 1.0.0:

	- Initial release.
