about summary refs log tree commit homepage
path: root/bin
DateCommit message (Collapse)
2016-11-05readahead: handle queued commands properly
We can't do much for readahead when it comes to dtas-player running arbitrary commands.
2016-07-07dtas-readahead: cleanup open files on pause
We must not leave open files lingering when the player pauses, as it could prevent remote filesystems from unmounting.
2016-06-17archive: fix suffix replacement for stats
We should generate "XYZ_0001.stats" files, not "XYZ_0001.flac.stats".
2016-02-12dtas-readahead: do not barf on missing ffprobe/avprobe
Both of these are optional, so stop trying them if we do not detect them.
2016-01-25player: support "consume" mode for tracklist
When activated, this boolean deletes a song from the tracklist after it is played.
2016-01-25mlib: support --force option
We will allow forcing updates since upgrading dependent software (e.g. sox, avprobe, ffprobe) may allow previously-ignored files to become support
2016-01-21dtas-tl: fix "cat" output
It needs to display the track ID on the left like in 0.13.0 and earlier versions. Oops. Fixes: cb5a016bf5e1 ("dtas-tl: shell-unescape cat output")
2016-01-17dtas-mlib: avoid redundant '/' in dumped pathname
Harmless, but noisy and ugly.
2016-01-17dtas-tl: shell-unescape cat output
We do the same with edit and this makes tracklists look nicer with non-7-bit-ASCII characters. While we're at it, use each_slice to request more info from the tracklist to reduce syscalls on both ends.
2016-01-17dtas-tl: hopefully fix up encoding issues
POSIX filesystems allow any combination of bytes, so we should be able to edit the tracklist when we have a filename with non-UTF-8 (or whatever locale the user uses). Try to present the user with a reasonable name when they have an external encoding (typically UTF-8); but be prepared to dump out whatever binary sequence the filesystem allows.
2016-01-05console: show tracklist shuffle status, too
We support this feature, so it should probably be shown along with the repeat status of the tracklist. Ensure we notify all of our listeners about the status change in player, too.
2016-01-04console: try harder to show rate
Try to take advantage of bypass being enabled for sample rate, then show the raw sample offset if we cannot get the rate.
2016-01-02copyright updates for 2016
Using the 'update-copyright' script from gnulib[1]: git ls-files | UPDATE_COPYRIGHT_HOLDER='all contributors' \ UPDATE_COPYRIGHT_USE_INTERVALS=2 \ xargs /path/to/gnulib/build-aux/update-copyright [1] git://git.savannah.gnu.org/gnulib.git
2016-01-01console: display paused commands properly
Running commands can be "paused" (actually, they're stopped), so we must display them correctly when attempting to encode them in the correct format instead of barfing when we attempt to call the 'encode' method on a Hash object.
2015-12-31dtas-console: show trim and "tl repeat" status
It probably makes sense for the -console user to know if tracklist repeat and trim are enabled. Have player emit these in "current" output and let the console client track them for now.
2015-12-31dtas-console: show paused track and time offset
When invoking the "current" command, the player now returns the first track + offset in the queue. This should make it easier to show what's paused or not.
2015-12-25enable "frozen_string_literal: true"
While we're in the area, make a wording change from "GPLv3 or later" to "GPL-3.0+", as the latter is favored by SPDX.org
2015-12-20dtas-readahead: use our spawn fix properly
Our spawn fix does not cover singleton dispatch from the Process class; only bareword "function" calls.
2015-12-16mlib: wire up search/find/stats to the UI
Not in any way a stable interface, yet, and still incomplete. This should emulate parts of the mpd protocol which should make it easier to debug and develop.
2015-12-15dtas-tl: add "aac" (add-after-current) command
This can be useful to avoid using the queue internally.
2015-12-15dtas-tl: "edit" gives sequential track IDs on new tracks
Having sequential track IDs can improve readability, so complicate our code a bit to ensure users get nicer looking track IDs. Followup to commit 90dcf561fd22c8a53c03d97292f86a82e74ca4a3 ('Revert "dtas-tl: simplify existing addtail/addhead while we're at it"')
2015-12-15Revert "dtas-tl: simplify existing addtail/addhead while we're at it"
This partially reverts commit 0dde5917fb5135ee3601383c29ffc0490071ea9d. This fixes "addtail" on an empty tracklist and preserves sequential ordering of track IDs, which might make sense for usability.
2015-12-14player: implement software volume control
This is on a linear scale from 0.0 (mute) to 1.0 (no change) This is in the MPRIS spec and mpd as well (scaled to 0-100) This changes dtas-console key bindings (0/9) slightly to match mplayer more closely. ReplayGain preamp adjustment has moved from '0'/'9' to '7'/'8' keys. The 'm' key also toggles mute state (the pre-mute volume is stored in the dtas-console instance, not in dtas-player itself).
2015-12-14dtas-tl: fixup addtail again
Oops :x commit 0dde5917fb5135ee3601383c29ffc0490071ea9d ("dtas-tl: simplify existing addtail/addhead while we're at it")
2015-12-14dtas-tl: simplify existing addtail/addhead while we're at it
No need to keep track of added track IDs when we can walk the array backwards to insert in the correct order. Also, fix a stupid (probably?) typo in the "addhead" implementation, too. I've known about Array#reverse_each for a while...
2015-12-14dtas-tl edit: fix ordering of newly-added songs
We need to add new songs in reverse order of what's in the file to preserve ordering when they're added after an existing ID. This way we don't have to remember the track we just added, either.
2015-12-14dtas-tl: learn an "edit" sub command
This should allow convenient rearranging and deleting of tracks from the tracklist from your favorite $EDITOR.
2015-12-13player: support "tl clear" internally
It is orders of magnitude more efficient to implement this in the player and very noticeable when using large playlists.
2015-12-13mlib: SYSTEM_DEFAULT handlers for SIGINT and SIGPIPE
This makes interrupting the potentially long output of "dtas-mlib dump" less ugly. Perhaps it makes sense for our other scripts to follow suit.
2015-12-13mlib: remove kwargs harder
We need this script to work under Ruby 1.9.3 as well, for the time being.
2015-11-28dtas-mlib: add dump support for debugging
Using an RFC-822-like format since YAML quoting rules aren't very human-friendly, and we already prevent newlines from entering our DB anyways.
2015-11-22introduce dtas-mlib for music library functions
Eventually this will support searching and be the basis of an mpd-compatible proxy in front of dtas-player
2015-10-19dtas-archive: allow specifying SoX compression factor
This can speed up archiving in some cases, as FLAC with compression-level 8 may be excessively slow.
2015-09-25dtas-readahead: make executable
Oops, files in bin/ should be executable.
2015-09-25dtas-cueedit: escape path to temporary file
Temporary files may still have spaces or weird chars in them. Just keep in mind we need to use $EDITOR/$VISUAL as-is since that may contain additional command-line arguments, so we cannot pass an array.
2015-09-24dtas-readahead: avoid polling on pause
When a player is paused with nothing player, we will not waste CPU time polling for the player to become available. It is wasteful of processing power and battery life.
2015-09-20dtas-readahead: new script for -player users on Linux
This is dependent on Linux /proc/ (the "pos: " field of /proc/$PID/fdinfo/$FD to be exact). This was written to avoid seek latencies on a remote FUSE filesystem with occasional packet loss.
2015-06-03splitfx: ensure rate is an integer
We'll be using the rate for automatically calculating CDDA alignment in the future.
2015-05-24splitfx: allow -p/--sox-pipe option
This allows splitfx YAML files to operate more seamlessly with external commands such as play(1) especially when combined with the -t/--trim option.
2015-05-21dtas-*edit: fix inotify watch invocations
Broken by commit c02f0b8182b35df1a318418bbd0036c00be93b5c ("source/splitfx: allow watching extra external scripts") Oops
2015-05-21dtas-splitfx: comment describing -j (nothing) as infinite
I nearly forgot about this myself
2015-05-19dtas-console: bind "o" to display time in absolute seconds
It can be useful to display time as absolute seconds to ease arithmetic for tracking files.
2015-05-17dtas-splitfx: support --trim argument
It can often be useful to expose only part of a track for quick inspection. This lets us do that.
2015-05-17dtas-splitfx: no arguments for quiet and --no-dither
2015-05-17use monotonic clock on Ruby 2.1+
The monotonic clock is immune to stepping adjustments so it is more suitable for tracking elapsed time differences. Process.clock_gettime also generates less garbage on 64-bit systems due to the use of Flonum.
2015-05-10splitfx: --bits and --rate for quick-n-dirty generic targets
generic targets (e.g. "wav") is useful for quickly checking if clipping is introduced by dither and resampling, so we'll support changing the sample rate and bits-per-sample from the command-line so users don't need to setup their own targets or wait on FLAC encoding.
2015-05-10splitfx: pass compression factor to sox(1)
This can be useful for speeding up splitfx during development, as sox defaults to maximum compression with FLAC and that is extremely slow.
2015-05-10splitfx: support -O/--outdir switch to control output dir
It is useful to force output to a writable directory if the YAML file is on a read-only mount point or to force the output to a large tmpfs mount point to avoid SSD/HDD wear.
2015-04-13cleanup: avoid redundant Array conversion for escapes
We already convert xs arg to be an Array, so avoid bloating our code with redundancy.
2015-04-12dtas-sinkedit: catch up to inotify/pipe changes in sourceedit
This is mainly for consistency in behavior with dtas-sourceedit. Using dtas-sourcedit is still more common and recommended as it is less likely to introduce audible gaps and pauses.