everything related to duct tape audio suite (dtas)
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [ANN] dtas 0.20.0 - duct tape audio suite for *nix
@ 2022-02-03  5:15  7% Eric Wong
  0 siblings, 0 replies; 3+ results
From: Eric Wong @ 2022-02-03  5:15 UTC (permalink / raw)
  To: dtas-all, ruby-talk

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, Perl5, and some embedded shell, but may use other languages in
the future.

Changes:

    dtas 0.20.0 - ruby 3.1+ compatibility, splitfx improvements

    This release catches up with Psych (YAML) changes in Ruby 3.1+
    Ruby 2.3+ is now the minimum version, though keep in mind the
    ruby-core team already dropped support for it long ago.

    Most of the features are focused on audio engineering
    capabilities of dtas-splitfx.  dtas-splitfx gains the --filter
    switch, along with per-track environment variables and comments.
    These new features have made my workflow significantly better.

    dtas-archive supports explicit comments, and omits the default
    SoX comment.  To better cope with temporary and modified files
    during editing, dtas-player metadata now checks ctime before
    reusing the cache, handy for frequently-modified files.
    "dtas-tl prune" is now supported to cull temporary files from
    the player tracklist.

    There's a few dtas-console improvements, too.

    28 changes since v0.19.0 (2021-09-05):

          archive: support comments, default to none
          splitfx: use Etc.nprocessors for jobs if unspecified
          dtas-console: set X11 terminal title iff DISPLAY is set
          dtas-console: add 'i' toggle to show comments (metadata)
          splitfx: fix track_zpad with integer arg
          doc: drop ordered map from examples
          player: reduce syscalls when splicing to single target
          dtas-console: support Wayland terminal titles, too
          console: workaround safe warnings in outdated `curses' gem
          require Ruby 2.3+
          get rid of DTAS.dedupe_str wrapper
          move dtas-graph into script/, support Perl for dtas.sh
          use YAML.unsafe_load in Psych 4.x (Ruby 3.1+)
          deduplicate and freeze pathnames + metadata
          player: remove omap conversion
          dtas: drop unnecessary "require 'yaml'" statements
          dtas-tl prune: cull missing files from tracklist
          dtas-tl: drop encoding hacks, use binary stdout+stderr
          use IO#wait_readable consistently
          get rid of DTAS::Nonblock wrapper for Ruby <= 2.0
          unix_accepted: drop Ruby < 2.3 support code
          do not check IO#closed? before calling IO#close
          splitfx: support per-track environment variables
          splitfx: add --filter option to limit match to comments
          player: expire sox metadata cache on file st_ctime changes
          readahead: do not call -@ on non-String
          splitfx: disallow combining --trim and --filter
          splitfx: document changes ahead of 0.20.0 release

* homepage: https://80x24.org/dtas/
* https://80x24.org/dtas/INSTALL
* https://80x24.org/dtas/dtas-player.txt
* https://80x24.org/dtas/NEWS.atom
* git clone https://80x24.org/dtas.git
* dtas-all@nongnu.org (plain-text only, no HTML mail, please)
* mail archives: https://80x24.org/dtas-all/
  nntps://news.public-inbox.org/inbox.comp.audio.dtas
  imaps://anon:mous@public-inbox.org/inbox.comp.audio.dtas.0
  nntp://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/inbox.comp.audio.dtas
  imap://anon:mous@7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/inbox.comp.audio.dtas.0
  https://80x24.org/dtas-all/new.atom

note: .onion URLs require Tor: <https://www.torproject.org/>


^ permalink raw reply	[relevance 7%]

* [PATCH 3/9] dtas: drop unnecessary "require 'yaml'" statements
  2022-01-23 21:37  6% [PATCH 0/9] various cuts for memory savings Eric Wong
@ 2022-01-23 21:37  6% ` Eric Wong
  0 siblings, 0 replies; 3+ results
From: Eric Wong @ 2022-01-23 21:37 UTC (permalink / raw)
  To: dtas-all

We use DTAS.yaml_load to wrap all YAML.*load calls, but
we still need "require 'yaml'" for various .to_yaml calls.
---
 bin/dtas-console           | 1 -
 bin/dtas-msinkctl          | 1 -
 bin/dtas-player            | 3 +--
 bin/dtas-readahead         | 1 -
 bin/dtas-splitfx           | 1 -
 bin/dtas-tl                | 1 -
 lib/dtas/edit_client.rb    | 1 -
 lib/dtas/player.rb         | 1 +
 lib/dtas/sink.rb           | 3 +--
 lib/dtas/source/splitfx.rb | 1 -
 test/player_integration.rb | 3 +--
 test/test_encoding.rb      | 1 -
 test/test_splitfx.rb       | 1 -
 test/test_tfx.rb           | 1 -
 14 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/bin/dtas-console b/bin/dtas-console
index a519ba9..eedd0f0 100755
--- a/bin/dtas-console
+++ b/bin/dtas-console
@@ -11,7 +11,6 @@
 require 'dtas/process'
 require 'dtas/format'
 include DTAS::Process
-require 'yaml'
 begin
   require 'curses'
 rescue LoadError
diff --git a/bin/dtas-msinkctl b/bin/dtas-msinkctl
index 6fb3863..79c7f26 100755
--- a/bin/dtas-msinkctl
+++ b/bin/dtas-msinkctl
@@ -2,7 +2,6 @@
 # Copyright (C) all contributors <dtas-all@nongnu.org>
 # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
 # frozen_string_literal: true
-require 'yaml'
 require 'dtas/unix_client'
 usage = "#$0 <active-set|active-add|active-sub|nonblock|active> SINK"
 c = DTAS::UNIXClient.new
diff --git a/bin/dtas-player b/bin/dtas-player
index 21bc45f..c926e5f 100755
--- a/bin/dtas-player
+++ b/bin/dtas-player
@@ -1,9 +1,8 @@
 #!/usr/bin/env ruby
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
 # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
 # frozen_string_literal: true
 Thread.abort_on_exception = $stderr.sync = $stdout.sync = true
-require 'yaml'
 require 'dtas/player'
 sock = (ENV["DTAS_PLAYER_SOCK"] || File.expand_path("~/.dtas/player.sock"))
 state = (ENV["DTAS_PLAYER_STATE"] ||
diff --git a/bin/dtas-readahead b/bin/dtas-readahead
index 996142c..d3c6e79 100755
--- a/bin/dtas-readahead
+++ b/bin/dtas-readahead
@@ -12,7 +12,6 @@
 @ffprobe = 'ffprobe'
 @avprobe = 'avprobe'
 
-require 'yaml'
 require 'io/wait'
 require 'dtas/unix_client'
 require 'dtas/process'
diff --git a/bin/dtas-splitfx b/bin/dtas-splitfx
index 05e71e5..6ce6521 100755
--- a/bin/dtas-splitfx
+++ b/bin/dtas-splitfx
@@ -2,7 +2,6 @@
 # Copyright (C) all contributors <dtas-all@nongnu.org>
 # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
 # frozen_string_literal: true
-require 'yaml'
 require 'optparse'
 require 'dtas/splitfx'
 usage = "#$0 [-n|--dry-run][-j [JOBS]][-s|--silent] SPLITFX_FILE.yml [TARGET]"
diff --git a/bin/dtas-tl b/bin/dtas-tl
index c1af933..2b34937 100755
--- a/bin/dtas-tl
+++ b/bin/dtas-tl
@@ -23,7 +23,6 @@ def fix_enc!(str, enc)
 
 def do_edit(c)
   require 'dtas/edit_client'
-  require 'yaml'
   require 'tempfile'
   extend DTAS::EditClient
   tmp = Tempfile.new(%w(dtas-tl-edit .txt))
diff --git a/lib/dtas/edit_client.rb b/lib/dtas/edit_client.rb
index 036d036..2bdc4d8 100644
--- a/lib/dtas/edit_client.rb
+++ b/lib/dtas/edit_client.rb
@@ -2,7 +2,6 @@
 # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
 # frozen_string_literal: true
 require 'tempfile'
-require 'yaml'
 require_relative 'unix_client'
 require_relative 'disclaimer'
 
diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb
index 3db15c3..06ba788 100644
--- a/lib/dtas/player.rb
+++ b/lib/dtas/player.rb
@@ -2,6 +2,7 @@
 # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
 # frozen_string_literal: true
 require 'shellwords'
+require 'yaml'
 require_relative '../dtas'
 require_relative 'xs'
 require_relative 'source'
diff --git a/lib/dtas/sink.rb b/lib/dtas/sink.rb
index 735cdef..966bab4 100644
--- a/lib/dtas/sink.rb
+++ b/lib/dtas/sink.rb
@@ -1,7 +1,6 @@
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
 # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
 # frozen_string_literal: true
-require 'yaml'
 require_relative '../dtas'
 require_relative 'pipe'
 require_relative 'process'
diff --git a/lib/dtas/source/splitfx.rb b/lib/dtas/source/splitfx.rb
index afeb6a3..2268404 100644
--- a/lib/dtas/source/splitfx.rb
+++ b/lib/dtas/source/splitfx.rb
@@ -1,7 +1,6 @@
 # Copyright (C) all contributors <dtas-all@nongnu.org>
 # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
 # frozen_string_literal: true
-require 'yaml'
 require_relative 'sox'
 require_relative '../splitfx'
 require_relative '../watchable'
diff --git a/test/player_integration.rb b/test/player_integration.rb
index 4ad0e0c..66d1c6e 100644
--- a/test/player_integration.rb
+++ b/test/player_integration.rb
@@ -1,11 +1,10 @@
-# Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
+# Copyright (C) all contributors <dtas-all@nongnu.org>
 # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
 # frozen_string_literal: true
 require './test/helper'
 require 'dtas/player'
 require 'dtas/state_file'
 require 'dtas/unix_client'
-require 'yaml'
 require 'tempfile'
 require 'shellwords'
 require 'timeout'
diff --git a/test/test_encoding.rb b/test/test_encoding.rb
index 666d185..5cd5da7 100644
--- a/test/test_encoding.rb
+++ b/test/test_encoding.rb
@@ -3,7 +3,6 @@
 # frozen_string_literal: true
 require './test/helper'
 require 'dtas'
-require 'yaml'
 
 class TestEncoding < Testcase
   def test_encoding
diff --git a/test/test_splitfx.rb b/test/test_splitfx.rb
index e3bd19d..f2e0e09 100644
--- a/test/test_splitfx.rb
+++ b/test/test_splitfx.rb
@@ -1,7 +1,6 @@
 # Copyright (C) all contributors <dtas-all@nongnu.org>
 # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
 # frozen_string_literal: true
-require 'yaml'
 require 'dtas/splitfx'
 require 'thread'
 require_relative 'helper'
diff --git a/test/test_tfx.rb b/test/test_tfx.rb
index 51b1900..be68079 100644
--- a/test/test_tfx.rb
+++ b/test/test_tfx.rb
@@ -4,7 +4,6 @@
 require './test/helper'
 require 'dtas/tfx'
 require 'dtas/format'
-require 'yaml'
 
 class TestTFX < Testcase
   def rate


^ permalink raw reply related	[relevance 6%]

* [PATCH 0/9] various cuts for memory savings
@ 2022-01-23 21:37  6% Eric Wong
  2022-01-23 21:37  6% ` [PATCH 3/9] dtas: drop unnecessary "require 'yaml'" statements Eric Wong
  0 siblings, 1 reply; 3+ results
From: Eric Wong @ 2022-01-23 21:37 UTC (permalink / raw)
  To: dtas-all

"dtas-tl prune" can simplify life a bit for users who frequently
replace/rename tracks on their FS (I do it while editing audio
with dtas-splitfx).

Moving to Ruby 2.3 lets us depend on a bunch of newer APIs and
compatibility code can be dropped, since YARV instructions for
old versions still remain.  The overall difference isn't very
noticeable, but the diffstat showing deleted lines is nice.

Eric Wong (9):
  deduplicate and freeze pathnames + metadata
  player: remove omap conversion
  dtas: drop unnecessary "require 'yaml'" statements
  dtas-tl prune: cull missing files from tracklist
  dtas-tl: drop encoding hacks, use binary stdout+stderr
  use IO#wait_readable consistently
  get rid of DTAS::Nonblock wrapper for Ruby <= 2.0
  unix_accepted: drop Ruby < 2.3 support code
  do not check IO#closed? before calling IO#close

 Documentation/dtas-tl.pod        |  4 ++-
 bin/dtas-console                 |  1 -
 bin/dtas-msinkctl                |  1 -
 bin/dtas-player                  |  3 +-
 bin/dtas-readahead               | 26 ++++-----------
 bin/dtas-splitfx                 |  1 -
 bin/dtas-tl                      | 55 +++++++++++++++++---------------
 lib/dtas/buffer.rb               |  4 +--
 lib/dtas/buffer/read_write.rb    |  3 +-
 lib/dtas/edit_client.rb          |  5 ++-
 lib/dtas/mcache.rb               |  4 +--
 lib/dtas/nonblock.rb             | 24 --------------
 lib/dtas/pipe.rb                 |  5 ++-
 lib/dtas/player.rb               | 14 +++-----
 lib/dtas/process.rb              |  5 ++-
 lib/dtas/sigevent/fiddle_efd.rb  |  7 ++--
 lib/dtas/sigevent/pipe.rb        |  5 ++-
 lib/dtas/sink.rb                 |  3 +-
 lib/dtas/source/sox.rb           |  2 +-
 lib/dtas/source/splitfx.rb       |  1 -
 lib/dtas/track.rb                |  2 +-
 lib/dtas/unix_accepted.rb        | 49 +++++++---------------------
 lib/dtas/unix_client.rb          |  4 +--
 lib/dtas/unix_server.rb          | 16 ++--------
 lib/dtas/watchable.rb            |  3 +-
 lib/dtas/watchable/fiddle_ino.rb |  2 +-
 test/player_integration.rb       |  3 +-
 test/test_buffer.rb              |  2 +-
 test/test_encoding.rb            |  1 -
 test/test_splitfx.rb             |  1 -
 test/test_tfx.rb                 |  1 -
 test/test_unixserver.rb          |  2 +-
 32 files changed, 84 insertions(+), 175 deletions(-)
 delete mode 100644 lib/dtas/nonblock.rb


^ permalink raw reply	[relevance 6%]

Results 1-3 of 3 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2022-01-23 21:37  6% [PATCH 0/9] various cuts for memory savings Eric Wong
2022-01-23 21:37  6% ` [PATCH 3/9] dtas: drop unnecessary "require 'yaml'" statements Eric Wong
2022-02-03  5:15  7% [ANN] dtas 0.20.0 - duct tape audio suite for *nix Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/dtas.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).