Date | Commit message (Collapse) |
|
Our spawn fix does not cover singleton dispatch from the
Process class; only bareword "function" calls.
|
|
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.
|
|
This can be useful to avoid using the queue internally.
|
|
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"')
|
|
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.
|
|
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).
|
|
Oops :x
commit 0dde5917fb5135ee3601383c29ffc0490071ea9d
("dtas-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...
|
|
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.
|
|
This should allow convenient rearranging and deleting of tracks from
the tracklist from your favorite $EDITOR.
|
|
It is orders of magnitude more efficient to implement this
in the player and very noticeable when using large playlists.
|
|
This makes interrupting the potentially long output of
"dtas-mlib dump" less ugly. Perhaps it makes sense for our
other scripts to follow suit.
|
|
We need this script to work under Ruby 1.9.3 as well,
for the time being.
|
|
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.
|
|
Eventually this will support searching and be the basis
of an mpd-compatible proxy in front of dtas-player
|
|
This can speed up archiving in some cases, as FLAC with
compression-level 8 may be excessively slow.
|
|
Oops, files in bin/ should be executable.
|
|
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.
|
|
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.
|
|
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.
|
|
We'll be using the rate for automatically calculating CDDA
alignment in the future.
|
|
This allows splitfx YAML files to operate more seamlessly with
external commands such as play(1) especially when combined with
the -t/--trim option.
|
|
Broken by commit c02f0b8182b35df1a318418bbd0036c00be93b5c
("source/splitfx: allow watching extra external scripts")
Oops
|
|
I nearly forgot about this myself
|
|
It can be useful to display time as absolute seconds to
ease arithmetic for tracking files.
|
|
It can often be useful to expose only part of a track for quick
inspection. This lets us do that.
|
|
Oops
|
|
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.
|
|
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.
|
|
This can be useful for speeding up splitfx during development,
as sox defaults to maximum compression with FLAC and that is
extremely slow.
|
|
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.
|
|
We already convert xs arg to be an Array, so avoid bloating
our code with redundancy.
|
|
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.
|
|
This archives audio files (typically .wav from a portable devices)
as FLAC and performs a best-effort verification the file was
transferred succesfully without bit errors by dropping kernel caches
and rechecking the result.
|
|
Users may hit Ctrl-Z to stop their editor during editing
and trigger SICHLD, do not waitpid2 indefinitely in that
case. This prevents missed "source ed" calls for inotify
users.
|
|
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
|
|
Ensure we can apply the workaround to dtas-sourceedit and our
test cases while also simplifying the existing call sites a
little. This will also make for less code churn in 3-5
years down the line when we drop <= 2.1 support.
|
|
dtas-sinkedit now shows default parameters in addition
to user-changed parameters, allowing easier editing.
Also, we need to be able to revert back to using the default
pipe_size on Linux by setting pipe_size to nil (as an empty
field in YAML).
|
|
This allows changes in the source YAML file to be reflected
immediately in player after the user saves the file in their
favorite $EDITOR. Previously, a user would need to:
1) start dtas-sourceedit, spawning $EDITOR
2) edit the file
3) save changes
4) exit $EDITOR
5) repeat starting from 1) until happy with the results
Now, the workflow allows avoiding the context switch between their
$EDITOR and terminal to restart dtas-sourcedit:
1) start dtas-sourceedit, spawning $EDITOR
2) edit the file
3) save changes
4) repeat starting from 1) until happy with the results
5) exit $EDITOR
In my experience, this greatly speeds up tuning of the playback
change, giving all the repeatability and flexibility of editing text
files while having the immediacy of an interactive UI.
Keep in mind this can cause problems for those with auto-save
enabled in their $EDITOR buffer at inopportune times, so a
-N/--no-watch option is added.
|
|
Attempting to perform operations on a file which which cannot
handle it should not cause dtas-console to die with a backtrace
|
|
This will likely become more available and faster than GNU nproc(1)
over time.
|
|
The '!' and '@' keys are used in mplayer to skip chapters,
so perhaps this is a good analogy.
|
|
Notably, this speeds up "dtas-tl cat" output a little bit.
Hrm, Ruby really should be using writev here, we'll need to
investigate at a later date.
|
|
These key bindings are used in mplayer, too.
|
|
This is the one place we display the filename for users,
so it should hopefully make it displayable. Users who
care about proper display should use a locale which matches
their music collection (or rename their music collection
to match).
|
|
This avoids compatibility problems as File.expand_path respects the
"filesystem" encoding of Ruby. I'm not 100% sure this is correct,
as Ruby encoding support still confuses me, but this fixes a problem
where I attempted to add UTF-8 filename with non-US-ASCII characters
in it on ruby-trunk.
|
|
I'm still normal, and still trolling, but 80x24.org will be epic :)
|
|
Ruby 2.2.0dev does not bundle the "curses" gem anymore.
Note: not a hard RubyGem dependency since dtas-console is optional.
|
|
splitfx is incapable of knowing in 100% of cases whether dithering
should be used (as it has no visibility into sox internals), so
support disabling it completely via command-line.
This is like the identical sox option, and passed to sox(1), too.
This feature is useful for splitting already-mastered 16-bit
recordings.
|
|
Using a regexp to match trackIDs is probably not intended
by the user.
|