dtas 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/Documentation/.gitignore +1 -1
- data/Documentation/GNUmakefile +1 -1
- data/Documentation/dtas-console.txt +1 -1
- data/Documentation/dtas-ctl.txt +1 -1
- data/Documentation/dtas-cueedit.txt +1 -1
- data/Documentation/dtas-enq.txt +1 -1
- data/Documentation/dtas-msinkctl.txt +1 -1
- data/Documentation/dtas-player.txt +1 -1
- data/Documentation/dtas-player_effects.txt +1 -1
- data/Documentation/dtas-player_protocol.txt +3 -3
- data/Documentation/dtas-player_sink_examples.txt +1 -1
- data/Documentation/dtas-sinkedit.txt +1 -1
- data/Documentation/dtas-sourceedit.txt +1 -1
- data/Documentation/dtas-splitfx.txt +1 -1
- data/Documentation/dtas-tl.txt +2 -1
- data/Documentation/dtas-xdelay.txt +1 -1
- data/GIT-VERSION-GEN +2 -2
- data/GNUmakefile +1 -1
- data/HACKING +1 -1
- data/INSTALL +5 -5
- data/README +1 -1
- data/Rakefile +2 -2
- data/TODO +1 -1
- data/bin/dtas-console +18 -3
- data/bin/dtas-ctl +1 -1
- data/bin/dtas-cueedit +1 -3
- data/bin/dtas-enq +2 -3
- data/bin/dtas-msinkctl +1 -1
- data/bin/dtas-partstats +1 -1
- data/bin/dtas-player +3 -4
- data/bin/dtas-sinkedit +1 -1
- data/bin/dtas-sourceedit +1 -1
- data/bin/dtas-splitfx +1 -1
- data/bin/dtas-tl +3 -3
- data/bin/dtas-xdelay +1 -1
- data/dtas-linux.gemspec +1 -1
- data/dtas-mpris.gemspec +1 -1
- data/dtas.gemspec +1 -1
- data/examples/trimfx.sample.yml +2 -5
- data/lib/dtas.rb +1 -1
- data/lib/dtas/buffer.rb +1 -1
- data/lib/dtas/buffer/read_write.rb +1 -1
- data/lib/dtas/buffer/splice.rb +1 -1
- data/lib/dtas/command.rb +1 -1
- data/lib/dtas/compat_onenine.rb +1 -1
- data/lib/dtas/compat_rbx.rb +1 -1
- data/lib/dtas/cue_index.rb +1 -1
- data/lib/dtas/disclaimer.rb +1 -1
- data/lib/dtas/edit_client.rb +1 -1
- data/lib/dtas/format.rb +1 -1
- data/lib/dtas/parse_time.rb +1 -1
- data/lib/dtas/partstats.rb +1 -1
- data/lib/dtas/pipe.rb +1 -1
- data/lib/dtas/player.rb +2 -2
- data/lib/dtas/player/client_handler.rb +5 -5
- data/lib/dtas/process.rb +1 -1
- data/lib/dtas/replaygain.rb +1 -1
- data/lib/dtas/rg_state.rb +1 -1
- data/lib/dtas/serialize.rb +1 -1
- data/lib/dtas/sigevent.rb +1 -1
- data/lib/dtas/sigevent/efd.rb +1 -1
- data/lib/dtas/sigevent/pipe.rb +1 -1
- data/lib/dtas/sink.rb +2 -2
- data/lib/dtas/source.rb +1 -1
- data/lib/dtas/source/av.rb +1 -1
- data/lib/dtas/source/av_ff_common.rb +1 -1
- data/lib/dtas/source/cmd.rb +1 -1
- data/lib/dtas/source/common.rb +1 -1
- data/lib/dtas/source/ff.rb +1 -1
- data/lib/dtas/source/file.rb +1 -1
- data/lib/dtas/source/mp3gain.rb +1 -1
- data/lib/dtas/source/sox.rb +1 -1
- data/lib/dtas/splitfx.rb +1 -1
- data/lib/dtas/state_file.rb +1 -1
- data/lib/dtas/tracklist.rb +1 -1
- data/lib/dtas/trimfx.rb +64 -3
- data/lib/dtas/unix_accepted.rb +3 -1
- data/lib/dtas/unix_client.rb +2 -2
- data/lib/dtas/unix_server.rb +8 -2
- data/lib/dtas/util.rb +1 -1
- data/lib/dtas/writable_iter.rb +1 -1
- data/lib/dtas/xs.rb +2 -2
- data/perl/dtas-graph +1 -1
- data/test/covshow.rb +1 -1
- data/test/helper.rb +24 -3
- data/test/player_integration.rb +1 -1
- data/test/test_buffer.rb +1 -1
- data/test/test_env.rb +1 -1
- data/test/test_format.rb +1 -1
- data/test/test_format_change.rb +1 -1
- data/test/test_player.rb +1 -1
- data/test/test_player_client_handler.rb +1 -1
- data/test/test_player_integration.rb +1 -1
- data/test/test_process.rb +1 -1
- data/test/test_rg_integration.rb +1 -1
- data/test/test_rg_state.rb +1 -1
- data/test/test_sink.rb +1 -1
- data/test/test_sink_pipe_size.rb +1 -1
- data/test/test_sink_tee_integration.rb +1 -1
- data/test/test_source_av.rb +1 -1
- data/test/test_source_sox.rb +1 -1
- data/test/test_splitfx.rb +8 -12
- data/test/test_tracklist.rb +1 -1
- data/test/test_trimfx.rb +33 -2
- data/test/test_unixserver.rb +1 -1
- data/test/test_util.rb +1 -1
- metadata +3 -5
- data/lib/dtas/fadefx.rb +0 -32
- data/test/test_fadefx.rb +0 -18
data/lib/dtas/unix_server.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require 'socket'
|
4
4
|
require_relative '../dtas'
|
@@ -99,7 +99,13 @@ class DTAS::UNIXServer # :nodoc:
|
|
99
99
|
|
100
100
|
def run_once
|
101
101
|
# give IO.select one-shot behavior, snapshot and replace the watchlist
|
102
|
-
|
102
|
+
begin
|
103
|
+
r = IO.select(@readers.keys, @writers.keys) or return
|
104
|
+
rescue IOError
|
105
|
+
# this only happens when sinks error out
|
106
|
+
@writers.delete_if { |io| io.to_io.closed? }
|
107
|
+
retry
|
108
|
+
end
|
103
109
|
@hot_read = r[0]
|
104
110
|
r[1].each do |io|
|
105
111
|
@writers.delete(io)
|
data/lib/dtas/util.rb
CHANGED
data/lib/dtas/writable_iter.rb
CHANGED
data/lib/dtas/xs.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require_relative '../dtas'
|
4
4
|
require 'shellwords'
|
@@ -9,6 +9,6 @@ require 'shellwords'
|
|
9
9
|
# again, filesystems can use any byte value in names except '\0'.
|
10
10
|
module DTAS::XS # :nodoc:
|
11
11
|
def xs(ary)
|
12
|
-
Shellwords.join(ary.map
|
12
|
+
Shellwords.join(ary.map(&:b))
|
13
13
|
end
|
14
14
|
end
|
data/perl/dtas-graph
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/perl -w
|
2
|
-
# Copyright (C) 2013, Eric Wong <
|
2
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
3
3
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
4
4
|
use strict;
|
5
5
|
use Graph::Easy; # for ASCII-art graphs
|
data/test/covshow.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
#
|
4
4
|
# this works with the __covmerge method in test/helper.rb
|
data/test/helper.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
$stdout.sync = $stderr.sync = Thread.abort_on_exception = true
|
4
4
|
require 'thread'
|
@@ -25,6 +25,12 @@ if ENV["COVERAGE"]
|
|
25
25
|
# filter out stuff that's not in our project
|
26
26
|
COVMATCH =~ filename or next
|
27
27
|
|
28
|
+
# For compatibility with https://bugs.ruby-lang.org/issues/9508
|
29
|
+
# TODO: support those features if that gets merged into mainline
|
30
|
+
unless Array === counts
|
31
|
+
counts = counts[:lines]
|
32
|
+
end
|
33
|
+
|
28
34
|
merge = prev[filename] || []
|
29
35
|
merge = merge
|
30
36
|
counts.each_with_index do |count, i|
|
@@ -44,14 +50,21 @@ if ENV["COVERAGE"]
|
|
44
50
|
at_exit { __covmerge }
|
45
51
|
end
|
46
52
|
|
47
|
-
|
53
|
+
begin
|
54
|
+
gem 'minitest'
|
55
|
+
rescue LoadError
|
56
|
+
end
|
48
57
|
require 'minitest/autorun'
|
49
58
|
require "tempfile"
|
50
59
|
|
51
60
|
Testcase = begin
|
52
61
|
Minitest::Test
|
53
62
|
rescue NameError
|
54
|
-
|
63
|
+
begin
|
64
|
+
Minitest::Unit::TestCase # minitest 4
|
65
|
+
rescue
|
66
|
+
MiniTest::Unit::TestCase # minitest 3
|
67
|
+
end
|
55
68
|
end
|
56
69
|
|
57
70
|
FIFOS = []
|
@@ -86,3 +99,11 @@ class Dir
|
|
86
99
|
end
|
87
100
|
end
|
88
101
|
end unless Dir.respond_to?(:mktmpdir)
|
102
|
+
|
103
|
+
def guitar_pluck(outfile)
|
104
|
+
outfile =~ %r{\A[\w\./-]+\z} or raise ArgumentError, "bad chars"
|
105
|
+
cmd = '(for n in E2 A2 D3 G3 B3 E4; do '\
|
106
|
+
'sox -n -ts32 -c2 -r44100 - synth 4 pluck $n; done ) | ' \
|
107
|
+
"sox -ts32 -c2 -r44100 - #{outfile}"
|
108
|
+
assert_equal(true, system(cmd), cmd)
|
109
|
+
end
|
data/test/player_integration.rb
CHANGED
data/test/test_buffer.rb
CHANGED
data/test/test_env.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require_relative 'helper'
|
4
4
|
require 'dtas/process'
|
data/test/test_format.rb
CHANGED
data/test/test_format_change.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require './test/player_integration'
|
4
4
|
require 'tmpdir'
|
data/test/test_player.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require './test/player_integration'
|
4
4
|
class TestPlayerIntegration < Testcase
|
data/test/test_process.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require './test/helper'
|
4
4
|
require 'dtas/process'
|
data/test/test_rg_integration.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require './test/player_integration'
|
4
4
|
class TestRgIntegration < Testcase
|
data/test/test_rg_state.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require './test/helper'
|
4
4
|
require 'dtas/rg_state'
|
data/test/test_sink.rb
CHANGED
data/test/test_sink_pipe_size.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require './test/player_integration'
|
4
4
|
class TestSinkTeeIntegration < Testcase
|
data/test/test_source_av.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require './test/helper'
|
4
4
|
require 'dtas/source/av'
|
data/test/test_source_sox.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require './test/helper'
|
4
4
|
require 'dtas/source/sox'
|
data/test/test_splitfx.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require 'yaml'
|
4
4
|
require 'dtas/splitfx'
|
@@ -20,11 +20,7 @@ class TestSplitfx < Testcase
|
|
20
20
|
sfx = DTAS::SplitFX.new
|
21
21
|
Dir.mktmpdir do |dir|
|
22
22
|
Dir.chdir(dir) do
|
23
|
-
|
24
|
-
cmd = '(for n in E2 A2 D3 G3 B3 E4; do '\
|
25
|
-
'sox -n -ts32 -c2 -r44100 - synth 4 pluck $n; done ) | ' \
|
26
|
-
'sox -ts32 -c2 -r44100 - foo.flac'
|
27
|
-
assert system(cmd), cmd.inspect
|
23
|
+
guitar_pluck("foo.flac")
|
28
24
|
sfx.import(hash, {})
|
29
25
|
opts = { jobs: nil, silent: true }
|
30
26
|
|
@@ -65,13 +61,13 @@ class TestSplitfx < Testcase
|
|
65
61
|
assert system(cmd), cmd
|
66
62
|
assert_equal `soxi -D #{nr}.flac`, `soxi -D #{nr}.wav`
|
67
63
|
end
|
68
|
-
end
|
69
64
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
65
|
+
# ensure 16/44.1kHz FLAC works (CDDA-like)
|
66
|
+
File.unlink('1.flac', '2.flac')
|
67
|
+
WAIT_ALL_MTX.synchronize { sfx.run("flac-cdda", opts) }
|
68
|
+
%w(1 2).each do |nr|
|
69
|
+
assert_equal `soxi -D #{nr}.flac`, `soxi -D #{nr}.wav`
|
70
|
+
end
|
75
71
|
end
|
76
72
|
end
|
77
73
|
end
|
data/test/test_tracklist.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require_relative 'helper'
|
4
4
|
require 'dtas/tracklist'
|
data/test/test_trimfx.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <
|
1
|
+
# Copyright (C) 2013-2014, Eric Wong <e@80x24.org> and all contributors
|
2
2
|
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
3
|
require './test/helper'
|
4
4
|
require 'dtas/trimfx'
|
@@ -45,6 +45,37 @@ class TestTrimFX < Testcase
|
|
45
45
|
|
46
46
|
def test_tfx_effects
|
47
47
|
tfx = DTAS::TrimFX.new(%w(trim 1 sox vol -1dB))
|
48
|
-
assert_equal %w(sox $SOXIN $SOXOUT $TRIMFX vol -1dB
|
48
|
+
assert_equal %w(sox $SOXIN $SOXOUT $TRIMFX vol -1dB), tfx.cmd
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_schedule_simple
|
52
|
+
fx = [
|
53
|
+
DTAS::TrimFX.new(%w(trim 1 0.3)),
|
54
|
+
DTAS::TrimFX.new(%w(trim 2 0.2)),
|
55
|
+
DTAS::TrimFX.new(%w(trim 0.5 0.5)),
|
56
|
+
].shuffle
|
57
|
+
ary = DTAS::TrimFX.schedule(fx)
|
58
|
+
assert_operator 1, :==, ary.size
|
59
|
+
assert_equal [ 0.5, 1, 2 ], ary[0].map(&:tbeg)
|
60
|
+
assert_equal [ 0.5, 0.3, 0.2 ], ary[0].map(&:tlen)
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_schedule_overlaps
|
64
|
+
fx = [
|
65
|
+
DTAS::TrimFX.new(%w(trim 1 0.3 sox)),
|
66
|
+
DTAS::TrimFX.new(%w(trim 1.1 0.2 sox)),
|
67
|
+
DTAS::TrimFX.new(%w(trim 0.5 0.5 sox)),
|
68
|
+
]
|
69
|
+
ary = DTAS::TrimFX.schedule(fx)
|
70
|
+
assert_equal 2, ary.size
|
71
|
+
assert_equal [ 0.5, 1 ], ary[0].map(&:tbeg)
|
72
|
+
assert_equal [ 1.1 ], ary[1].map(&:tbeg)
|
73
|
+
|
74
|
+
ex = DTAS::TrimFX.expand(fx, 10)
|
75
|
+
assert_equal 2, ex.size
|
76
|
+
assert_equal 0, ex[0][0].tbeg
|
77
|
+
assert_equal 3, ex[0].size
|
78
|
+
assert_equal 0, ex[1][0].tbeg
|
79
|
+
assert_equal 3, ex[1].size
|
49
80
|
end
|
50
81
|
end
|
data/test/test_unixserver.rb
CHANGED
data/test/test_util.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dtas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dtas hackers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |-
|
14
14
|
Free Software command-line tools for audio playback, mastering, and
|
@@ -89,7 +89,6 @@ files:
|
|
89
89
|
- lib/dtas/cue_index.rb
|
90
90
|
- lib/dtas/disclaimer.rb
|
91
91
|
- lib/dtas/edit_client.rb
|
92
|
-
- lib/dtas/fadefx.rb
|
93
92
|
- lib/dtas/format.rb
|
94
93
|
- lib/dtas/parse_time.rb
|
95
94
|
- lib/dtas/partstats.rb
|
@@ -143,7 +142,6 @@ files:
|
|
143
142
|
- test/player_integration.rb
|
144
143
|
- test/test_buffer.rb
|
145
144
|
- test/test_env.rb
|
146
|
-
- test/test_fadefx.rb
|
147
145
|
- test/test_format.rb
|
148
146
|
- test/test_format_change.rb
|
149
147
|
- test/test_player.rb
|
@@ -182,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
180
|
version: '0'
|
183
181
|
requirements: []
|
184
182
|
rubyforge_project:
|
185
|
-
rubygems_version: 2.2
|
183
|
+
rubygems_version: 2.4.2
|
186
184
|
signing_key:
|
187
185
|
specification_version: 4
|
188
186
|
summary: duct tape audio suite for *nix
|
data/lib/dtas/fadefx.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <normalperson@yhbt.net> and all contributors
|
2
|
-
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
|
-
require_relative '../dtas'
|
4
|
-
require_relative 'parse_time'
|
5
|
-
|
6
|
-
class DTAS::FadeFX
|
7
|
-
include DTAS::ParseTime
|
8
|
-
attr_reader :out_prev, :in_main, :out_main, :in_next
|
9
|
-
F = Struct.new(:type, :len)
|
10
|
-
|
11
|
-
def initialize(args)
|
12
|
-
args =~ /\Afade=([^,]*),([^,]*);([^,]*),([^,]*)\z/ or
|
13
|
-
raise ArgumentError, "bad fade format"
|
14
|
-
fades = [ $1, $2, $3, $4 ]
|
15
|
-
%w(out_prev in_main out_main in_next).each do |iv|
|
16
|
-
instance_variable_set("@#{iv}", parse!(fades.shift))
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
# q - quarter of a sine wave
|
21
|
-
# h - half a sine wave
|
22
|
-
# t - linear (`triangular') slope
|
23
|
-
# l - logarithmic
|
24
|
-
# p - inverted parabola
|
25
|
-
# default is 't' (sox defaults to 'l', but triangular makes more sense
|
26
|
-
# when concatenating
|
27
|
-
def parse!(str)
|
28
|
-
type = "t"
|
29
|
-
str.sub!(/\A([a-z])/, "") and type = $1
|
30
|
-
F[type, parse_time(str)]
|
31
|
-
end
|
32
|
-
end
|
data/test/test_fadefx.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
# Copyright (C) 2013, Eric Wong <normalperson@yhbt.net> and all contributors
|
2
|
-
# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt)
|
3
|
-
require_relative 'helper'
|
4
|
-
require 'dtas/fadefx'
|
5
|
-
|
6
|
-
class TestFadeFX < Testcase
|
7
|
-
def test_fadefx
|
8
|
-
ffx = DTAS::FadeFX.new("fade=t1,t3.1;l4,t1")
|
9
|
-
assert_equal 't', ffx.out_prev.type
|
10
|
-
assert_equal 1, ffx.out_prev.len
|
11
|
-
assert_equal 't', ffx.in_main.type
|
12
|
-
assert_equal 3.1, ffx.in_main.len
|
13
|
-
assert_equal 'l', ffx.out_main.type
|
14
|
-
assert_equal 4, ffx.out_main.len
|
15
|
-
assert_equal 't', ffx.in_next.type
|
16
|
-
assert_equal 1, ffx.in_next.len
|
17
|
-
end
|
18
|
-
end
|