Date | Commit message (Collapse) |
|
One bugfix on top of dtas 0.12.1
dtas-tl edit: fix ordering of newly-added songs
Everything else in the v0.12.0 release stil applies:
http://80x24.org/dtas-all/20151214-dtas-0.12.0-unle@shed/t/
Have fun!
|
|
Notable additions for dtas-player music listeners.
dtas-ctl queue cat - display the internal queue
dtas-tl shuffle [true|false] - toggle tracklist shuffle
dtas-tl edit - open tracklist in an editor
see dtas-tl(1) manpage for more details on this:
http://dtas.80x24.org/dtas-tl.txt
The player tracklist now uses sequential track IDs instead of Ruby
object IDs, so it should be easier to use existing commands such as
"dtas-tl goto" and "dtas-tl remove"
For people using dtas-player for applying real-time effects to
splitfx YAML files, dtas-player can now watch for changes in scripts
specified in the "command" field of the splitfx YAML file.
Previously, dtas-player could only read the splitfx YAML file
itself. This requires GNU/Linux and the sleepy_penguin RubyGem
installed.
dtas-splitfx also learned some switches to allow easier
interoperability with other processing tools:
-p/--sox-pipe - identical to the sox(1) option
-t/--trim - only expose part of the track, useful when
combined with the above -p switch
See http://dtas.80x24.org/dtas-splitfx.txt for more details.
There's also some work-in-progress stuff that's not well documented
at the moment. As with anything pre-1.0, expect the possibility
of incompatible changes.
Since I'm not good at designing protocols, I've also started working
on mpd compatibility layer to allow using the normal music playback
stuff with more clients (some of the clients I actually like, unlike
the seemingly GUI-only landscape of MPRIS :P).
Of course, dtas-player itself has most the capabilities of a
Unix shell; and those capabilities will certainly not be available
to mpd or MPRIS clients.
64 changes since dtas 0.11.0
INSTALL: update documentation for 0.11.0 release
splitfx: fix lossy output with player command is in use
splitfx: fix non-generic, user-specified targets
use monotonic clock on Ruby 2.1+
dtas-splitfx: no arguments for quiet and --no-dither
dtas-splitfx: support --trim argument
process: implement array expansion to preserve spaces
splitfx: show correct command for output
splitfx: remove support for encoding opus
dtas-console: bind "o" to display time in absolute seconds
splitfx: avoid double-truncation with user command
source/splitfx: allow watching extra external scripts
splitfx: drop unnecessary variable
splitfx: documentation for subclasses
splitfx: simplify output display
dtas-splitfx: comment describing -j (nothing) as infinite
dtas-*edit: fix inotify watch invocations
splitfx: allow -p/--sox-pipe option
splitfx: ensure rate is an integer
splitfx: set OUTFMT correctly for subenv if command is set
favor recv and recv_nonblock over recvmsg variants
parse_time: pass through numeric types
parse_freq: trivial new module for parsing frequencies
use a common /dev/null
player: add "queue cat" command
dtas-readahead: new script for -player users on Linux
dtas-readahead: avoid polling on pause
dtas-cueedit: escape path to temporary file
dtas-readahead: make executable
gemspec: use SPDX-compatible license
README: add link to NNTP and Atom feeds
player: cleanup command dispatch
dtas-archive: allow specifying SoX compression factor
gemspec: duplicate frozen string for older Rubygems
allow building the gem without pandoc
introduce dtas-mlib for music library functions
dtas-mlib: add dump support for debugging
tracklist: use lower number unique track IDs
tracklist: do not mutate @list when serializing
tracklist: avoid needlessly building a hash for track IDs
tracklist: shuffle support
tracklist: support limiting maximum tracklist size
player: refactor and document tracklist interface
player: tl (repeat|shuffle|max) and trim swap values
tracklist: fixup idempotent "tl shuffle false"
switch to exception-free non-blocking I/O
add .gitattributes for Ruby method detection
mlib: remove non-existent entries
mlib: add stats support
mlib: no kwargs for 1.9.3 compatibility
mlib: add find/search functionality based on mpd
mlib: split out the output format from the library
mlib: remove kwargs harder
player: reduce I/O priority of connected clients
mlib: SYSTEM_DEFAULT handlers for SIGINT and SIGPIPE
player: support "tl clear" internally
test_unixserver: remove test for element limit
player: dump state file asynchronously when requested
parse_time: enable frozen_string_literal
unix_accepted: enable checking for readability after emit
tracklist: swap functionality
player: show "tracklist" hash with summary info with "current"
dtas-tl: learn an "edit" sub command
doc: document additions to tracklist handling
|
|
Oops
|
|
Bug fixes:
* Exported INFILE environment variable is always shell-escaped
This prevent screw-ups when users are using funky filenames.
* dtas-player: enqueued commands cannot use audio format bypass
(the audio format cannot be known ahead-of-time from raw commands)
* YAML omap (ordered map) is explicitly used for all env hashes for
user editing. Normal (unordered hashes) are still allowed if loading
existing files. This does not affect Ruby 1.9+ users, but allows
easier processing for users of other languages.
New features (all platforms):
* dtas-player now plays dtas-splitfx YAML files support cue sheet
emulation based on the track list. Under Linux[1], changes to
the YAML file are reflected in real-time as the file is edited
and saved in an $EDITOR. This feature is useful for dialing
in EQ, compressor, and limiter effects on tracks.
* dtas-player supports the "source restart" command for restarting
playback on modified files for systems without inotify support.
* dtas-splitfx now exports the INDIR and INBASE environment variables
which are intended to act like `$(@D)' and `$(@F)' in GNU make(1).
It should ease managing temporary files for some effects
(e.g. noiseprof + noisered in sox)
* dtas-console supports '!' and '@' hotkeys keys for moving within
files with embedded cue sheets.
* dtas-player supports the "trim" command to focus on a particular
portion of a track. It may be useful when combined with the existing
"tl repeat" command for dialing in audio editing parameters
(via a splitfx YAML file):
To continuously repeat a 5 second part of the current track starting
at 1 minute into the track:
dtas-ctl tl repeat 1 && dtas-ctl trim 1:00 5
Passing "off" as the parameter disables trim:
dtas-ctl trim off
* dtas-env(7) manpage added for common environment variables across
the suite
* dtas-sinkedit shows default parameters in addition to user-changed
parameters
New features (Linux-only)
* dtas-sourceedit and dtas-sinkedit support inotify[1] when editing
the YAML text file. This allows real-time updates on $EDITOR
file save as the user edits the parameters of the commands used
for decoding and playback.
* dtas-archive - paranoid archival script for copying and (re-reading)
files. This is useful when transferring files from removable devices
to computers without ECC memory (or any other bit errors in transport
before main memory is accessed). This requires Ruby 1.9.3 or later
(no 3rd-party RubyGems) on Linux for IO#advise support.
There are also many internal cleanups and more work-in-progress
for dtas-splitfx features.
[1] feature requires the sleepy_penguin RubyGem to be installed.
|
|
The documentation part is managed by the new
Documentation/update-copyright script. For the future, the rest may
be managed by the update-copyright tool in gnulib
|
|
The major new feature is '>' and '<' keys are now supported
in the dtas-console interface for dtas-player.
"dtas-tl cat" also received a minor speedup for big tracklists
via syscall reductions
shortlog of changes since 0.8.0:
process: update comment for bug workaround
process: update comment for bug workaround #2
compat_onenine: simplify pipe wrapper
tracklist: favor &:sym_to_proc style
dtas-console: '>' and '<' keys for tracklist next/prev
dtas-tl: halve write() syscalls when emitting tracklists
reduce syscalls in recvmsg invocations
doc: flesh out "tl" subcommand docs
The best is yet to come!
|
|
Several bugfixes for the dtas-player and playback-related
components. Audio-editing support is still being worked on.
See git repository for full details:
git clone git://80x24.org/dtas
Terminal-browser-friendly HTML mail archives are also up at:
http://80x24.org/dtas-all/
The mailing list for anything related to dtas remains at:
dtas-all@nongnu.org
The list is open to all without subscription (no HTML email).
dtas is for and by users who never want to deal with GUIs.
shortlog of changes since 0.7.0:
dtas-console: add note to install "curses" gem if missing
test/helper: compat w/ coverage in Feature #9508
player: style cleanup to favor &:methods
update copyrights and email address for 2014
trimfx: initial cut of scheduling + gap filling
test/helper: ancient minitest compatibility
test_splitfx: fix tests without opus{enc,dec}
remove builtin-$FADEFX support
fadefx: remove module
tests: hoist out pluck generation
xs: favor &: block style for simple cases
rely on filesystem encoding
client_handler: minor cleanup (favor &:proc)
doc: document "tl get"/"dtas-tl cat" escaping gotcha
dtas-console: force encoding for current locale
unix_server: fix for infinite loop
sink: favor &:proc form instead of blocks
favor &:proc form instead of blocks in more places
unix_accepted: wait for readability on EAGAIN
|
|
I'm still normal, and still trolling, but 80x24.org will be epic :)
|
|
dtas-splitfx gained support --no-dither/-D option.
dtas-player should work now for non-Linux users without splice().
There are minor optimizations for users of multiple sinks with
dtas-player.
|
|
Oops, perhaps I should just stick $VERSION in the text...
|
|
* dtas-*edit
- account for editors which rename over files
* dtas-player
- support optional bypass mode for rate, bits, channel
This allows users to avoid any internal resampling at the
cost of losing gapless playback when files have different
decoded formats
- "tl goto" starts playback if idle (and not paused)
- support seeking based on embedded cuesheet (FLAC)
- rename "tl previous" to "tl prev"
See dtas-player_protocol(7) for the protocol extensions
* dtas-console
- allow exit via 'q' key
|
|
Oops :x
|
|
dtas 0.3.0 will be compatible with Syck in the Debian Ruby 1.9.3
install.
|
|
Users need to be able to communicate with us.
|
|
All files we distribute in the tarball need to have a
copyright/license specified for Savannah.
We don't need the example state file anymore.
|
|
This release refactors dtas-player internals and adds lightly-tested
avconv (from libav) and ffmpeg support. It should also be much easier
for us to add direct support for other non-SoX decoders in the future.
The "source ed" and "source cat" protocol commands now both require a
SOURCENAME argument, one of "sox", "av" (avconv), or "ff" (ffmpeg).
"source ed" also supports a new "tryorder" integer parameter to control
the order in which sox, av, and ff are tried.
dtas-console now displays ReplayGain status and allows controlling
ReplayGain mode, fallback_gain, and preamp values via hotkeys.
There are also many corner-case bugfixes and small minor features, see
"git log" for details.
Eric Wong (40):
README: include a pointer to the plain-text docs
set REPLAYGAIN_* vars for source command as documented
dtas-*edit: properly fall back to 'vi' as documented
use require_relative for loading 1.9 compatibility
dtas-console: implement better ReplayGain and format support
dtas-console: swap 'j' / 'k' bindings to match docs
doc: document new dtas-console key bindings
Rakefile: rsync task uploads gzipped files, too
test_rg_integration: avoid unused variable warning
unix_client: remove non-SOCK_SEQPACKET support
tests: use unix_client in tests to kill some redundant code
command: remove kill, we no longer rely on it
player: remove unreachable branch
split out source handling to prepare for avconv/ffmpeg support
format: decouple from soxi
preliminary support for avconv/avprobe from libav
source/av: handle multiple audio streams w/ proper sample rate
dtas-console: always show ReplayGain line
format: fix switching to floating point samples
player: fix logic around sink death/respawns
doc: add note about increased wakeups with dtas-console
process: allow passing env to qx
process: remove redundant "xs" method
process (qx): disambiguate err/err_str, add no_raise
cleanup multi-source handling between sox and av
player: flesh out multi-source in protocol/sourceedit
dtas-{sink,source}edit: reduce redundant code
player: sink ed pipe_size= disallows nils
player: restart sinks on "sink ed" modification
player: break out gracefully if a file is totally unplayable
source/sox: bail out if zero samples are detected
test_source_av: disable if avprobe/avconv are not available
add lightly-tested ffmpeg support
README: remove avconv/ffmpeg item
source/sox: cleanup error handling, quiet redundant warnings
player: do not assign @current until successful spawn
client_handler: remove redundant checks for @current.pid
av_ff_common: :nodoc: this constant and add TODO item
GIT-VERSION-GEN: :nodoc: the version constant
:nodoc: core classes in 1.9 compat layer
|
|
Rename COPYRIGHT -> COPYING, as that seems to be the more common
name for the GPLv3 license file. Kill all rdoc, since I don't
agree with HTML documentation and we do not expose any Ruby APIs.
|
|
|