A new release of 2.x or even 3.x is long overdue. The project is in use around the world and fixes and enhancements land in the development version. There is float mixing, libmpg123 input, libout123 output. Added effects. Stuff. Code cleanup for modern compilers. Once my life allows it, there will be a release. Until then, just do a SVN checkout.
Version 2.0.1 fixes the build with more current SoundTouch versions. The next release shall make use of a new output library to support more APIs. I am also planning to implement a proper resampling algorithm (don't feel like using a library for that core function).
It feels like after many lives since the last release, here is version 2.0.0 of DerMixD! There was heavy work going on to clean up the inside. The client API got streamlined. Audio input happens via libraries now, not pipes from/to a decoder (libmpg123, libsndfile, libvorbisfile). There is support for effects ... lots of reasons to check it out. If should start using it more myself, again, actually.
Forget version 1.6.1 -- please! Swallow your anger about the stray sleep(1) call that was left from debugging and install version 1.6.2 ... with now-again seamless playback.
Version 1.6.1 fixes two bugs: First, a quite serious one with the mpg123 input not cleaning up when being closed (playin a sndfile file after a mpeg file on the same channel, for example). This sadly has been there since 1.4.0 . Then, the specific case of 1to2 upsampling now handles volume correctly.
Version 1.6.0 gives you local communication via UNIX domain sockets and peer-to-peer communication between DerMixD-Clients. Yup, that's all.
Version 1.5.1 fixes a mean bug/crash with MPEG input data of a different channel count than mixer (mono vs. stereo) and completes the "scan length" operation with the updating of DerMixD's own value for track length (just like "length" does).
Version 1.5.0 is an enhancement for uninterrupted playback also when there is a lot of background work going on. There are two key components: The mixer takes a lock in the critical time window of gathering data from the active input channels and mixing it. This prevents background scans (operations triggered by the "scan" command) from taking up cpu time and -- more importantly -- I/O resources during that time window. Complementary to that enhancement is the new "preread" command that lets the communication thread of the client -- having lowest priority -- read through a file once. On Linux that causes the file to be available in the disk cache for the following time critical reads during playback, eliminating any stutter because of hard disk I/O.
DerMixD is a TCP-controlled music playing daemon for GNU/Linux and hopefully (at least in the future) other UNIX/POSIX systems. It's inspiration is mixplayd, which does quite the same, but partly less and partly more. And a bit different for sure.
MP3 input via new mpg123 since 0.60 or patched mpg123-0.59r (mpg123-thor, now historic) and OSS output is the envisioned and thus at first implemented mode of operation.
Since version 1.1 Linux/Alsa and Tru64/MME output joined the team, with 1.2 comes (working but not perfect) input via libsndfile.
Version 1.3 adds libvorbisfile input.
The complete source code (sig).
svn co svn://orgis.org/dermixd/trunk dermixd-svn
For novelties of the release series please consult the file CHANGES (also ChangeLog, both in source package).
Besides the included minimal scripts, dermixd is used by my ThOrMA toolset (in need of update for 2.0 series, though) and there is the thing called SLART by SvOlli. This contains Partyman, which is a neat QT4 jukebox player using dermixd.
Wozu gibt's denn sonst Standards?