Dtas 0.6.0 - duct tape audio suite for *nix

Free Software command-line tools for audio playback, mastering, and
whatever else related to audio. dtas follows the worse-is-better
philosophy and acts as duct tape to combine existing command-line tools
for flexibility and ease-of-development. dtas is currently implemented
in Ruby (and some embedded shell), but may use other languages in the
future.

Changes since 0.5.0 - player tracklist fixes/improvements

  • dtas-player - many fixes to tracklist handling
    Also minor syscall reduction and a fix for non-Linux-splice users.

  • the “dtas-tl reto” subcommand also works somewhat sanely, now.

There’s also a bunch of work-in-progress code that’s definitely not
ready for prime time and will change a lot. I’m just making this
release because the work-in-progress stuff is completely orthogonal
to the mostly-working stuff, and dtas has users other than myself
now(!)

dtas is going in several different directions related to audio, not just
playback. My immediate focus will probably be on audio editing and
hopefully 0.7.0 will have more of that[1]. Of course, critical fixes to
components people actually use will take priority (but I think
dtas-player is solid, by now.

  • dtas-partstats - initial partitioning wrapper to the sox stats effect
    See commit 4f1a73ed584f0f74d6b32241f02ae871f3415f4a for details.
    This works, but could use some documentation…

There’s also some stuff which is completely not wired up outside
of internal unit tests, but will hopefully be ready in 0.7.0

Eric W. (21):
splitfx: default to default DTAS::Format if unspecified
player: add factor out redundant condition check
buffer/read_write: fix undefined local variable
player: delay tracklist reset until asked to play
buffer: remove ioctl syscall in common paths
pipe: use memoized IO#nonblock? in blocking case
player: “tl add” may trigger player start
tracklist: remove_track updates tracklist position
player: “tl remove” drops the track from the queue
dtas-partstats: initial implementation
tracklist: update position when track is added
format: common detection code (based on sox)
tracklist: fix off-by-one when adding track
player: “tl remove” properly stops current track
dtas-tl: “reto” command does not scan track IDs
IO#nread compatibility for Rubinius (Linux-only)
use shorter socket constants for sockets