Date | Commit message (Collapse) |
|
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.
|
|
dtas-partstats divides large audio files into small partitions (10
seconds by default) and runs the "stats" effect of sox(1) against each
partition.
Currently it emits space-delimited output, but configurable output
options (including Sequel/SQLite) support is coming.
The intended use of this tool is for quickly finding the loudest
portions of a given recording without the need for a graphical viewer.
This can be useful for selectively applying (and testing the results of)
dynamic range compression filters.
Use with sort(1) in a pipeline is recommended in this scenario
(but again, Sequel support is coming).
|
|
It is easier to break out of dtas-console with one key than using a
2-finger combination.
|
|
We must not assume the temporary file remains in place while
$EDITOR/$VISUAL is running, as it is common for editors to rename
over a file to atomically replace existing files.
|
|
This behaves like "goto", but takes a regular expression
instead of a track_id
|
|
Shorten these commands since they're frequently used and
to make eventual tab completion easier.
|
|
This is implemented in client space, as the MPRIS 2.0
spec does not say this needs to be implemented at all...
|
|
We may get a pause event when we do not have a valid current
hash.
|
|
It's easier to handle the client and player to be in different
directories (and we also do this for dtas-enq(1))
|
|
This adds a bunch of tracks sequentially to the end of the tracklist
|
|
This should allow us to repeat through a list of tracks with relative
ease. There is a rudimentary dtas-tl client implemented. This
may be removed in the future.
|
|
This seems to be working out nicely. Having a basic integration
test should be enough to get us started for now.
|
|
This is lacking tests and documentation, but it works from
a old trivial sample I had from a recording I previously
split using plain POSIX shell
splitfx is like make(1) for splitting and minor audio
editing. It also allows any number of effects.
|
|
Lightly tested, but this seems to work.
|