dtas 0.17.0 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/Documentation/.gitignore +1 -1
  4. data/Documentation/GNUmakefile +1 -1
  5. data/Documentation/dtas-archive.pod +1 -1
  6. data/Documentation/dtas-console.pod +1 -1
  7. data/Documentation/dtas-ctl.pod +1 -1
  8. data/Documentation/dtas-cueedit.pod +1 -1
  9. data/Documentation/dtas-enq.pod +1 -1
  10. data/Documentation/dtas-env.pod +1 -1
  11. data/Documentation/dtas-msinkctl.pod +1 -1
  12. data/Documentation/dtas-player.pod +1 -1
  13. data/Documentation/dtas-player_effects.pod +1 -1
  14. data/Documentation/dtas-player_protocol.pod +1 -1
  15. data/Documentation/dtas-player_sink_examples.pod +1 -1
  16. data/Documentation/dtas-sinkedit.pod +2 -2
  17. data/Documentation/dtas-sourceedit.pod +2 -2
  18. data/Documentation/dtas-splitfx.pod +42 -9
  19. data/Documentation/dtas-tl.pod +3 -1
  20. data/Documentation/dtas-xdelay.pod +1 -1
  21. data/Documentation/update-footer.rb +1 -1
  22. data/GIT-VERSION-FILE +1 -1
  23. data/GIT-VERSION-GEN +2 -2
  24. data/GNUmakefile +13 -1
  25. data/HACKING +1 -1
  26. data/INSTALL +17 -25
  27. data/NEWS +121 -0
  28. data/README +13 -7
  29. data/Rakefile +1 -1
  30. data/TODO +1 -1
  31. data/bin/dtas-archive +7 -3
  32. data/bin/dtas-console +49 -16
  33. data/bin/dtas-ctl +1 -1
  34. data/bin/dtas-cueedit +1 -1
  35. data/bin/dtas-enq +1 -1
  36. data/bin/dtas-mlib +1 -1
  37. data/bin/dtas-msinkctl +2 -3
  38. data/bin/dtas-partstats +3 -9
  39. data/bin/dtas-player +1 -2
  40. data/bin/dtas-readahead +11 -25
  41. data/bin/dtas-sinkedit +3 -4
  42. data/bin/dtas-sourceedit +3 -4
  43. data/bin/dtas-splitfx +17 -5
  44. data/bin/dtas-tl +32 -27
  45. data/bin/dtas-xdelay +1 -1
  46. data/dtas-linux.gemspec +1 -1
  47. data/dtas-mpris.gemspec +1 -1
  48. data/dtas.gemspec +3 -3
  49. data/dtas.sh +8 -0
  50. data/examples/splitfx.sample.yml +1 -1
  51. data/examples/tfx.sample.yml +1 -1
  52. data/lib/dtas/buffer/fiddle_splice.rb +217 -0
  53. data/lib/dtas/buffer/read_write.rb +3 -4
  54. data/lib/dtas/buffer/splice.rb +5 -2
  55. data/lib/dtas/buffer.rb +11 -8
  56. data/lib/dtas/command.rb +1 -1
  57. data/lib/dtas/cue_index.rb +1 -1
  58. data/lib/dtas/disclaimer.rb +1 -1
  59. data/lib/dtas/edit_client.rb +2 -3
  60. data/lib/dtas/encoding.rb +8 -9
  61. data/lib/dtas/fadefx.rb +2 -2
  62. data/lib/dtas/format.rb +1 -1
  63. data/lib/dtas/mcache.rb +14 -3
  64. data/lib/dtas/mlib/migrations/0001_initial.rb +1 -1
  65. data/lib/dtas/mlib.rb +23 -13
  66. data/lib/dtas/parse_freq.rb +1 -1
  67. data/lib/dtas/parse_time.rb +1 -1
  68. data/lib/dtas/partstats.rb +3 -5
  69. data/lib/dtas/pipe.rb +14 -11
  70. data/lib/dtas/pipeline.rb +1 -4
  71. data/lib/dtas/player/client_handler.rb +25 -17
  72. data/lib/dtas/player.rb +6 -12
  73. data/lib/dtas/process.rb +3 -5
  74. data/lib/dtas/replaygain.rb +1 -1
  75. data/lib/dtas/rg_state.rb +2 -2
  76. data/lib/dtas/serialize.rb +1 -1
  77. data/lib/dtas/sigevent/efd.rb +3 -1
  78. data/lib/dtas/sigevent/fiddle_efd.rb +37 -0
  79. data/lib/dtas/sigevent/pipe.rb +3 -4
  80. data/lib/dtas/sigevent.rb +6 -3
  81. data/lib/dtas/sink.rb +1 -2
  82. data/lib/dtas/source/av.rb +1 -1
  83. data/lib/dtas/source/av_ff_common.rb +4 -4
  84. data/lib/dtas/source/cmd.rb +1 -1
  85. data/lib/dtas/source/common.rb +1 -1
  86. data/lib/dtas/source/ff.rb +1 -1
  87. data/lib/dtas/source/file.rb +1 -1
  88. data/lib/dtas/source/mp3gain.rb +1 -1
  89. data/lib/dtas/source/sox.rb +4 -4
  90. data/lib/dtas/source/splitfx.rb +2 -3
  91. data/lib/dtas/source.rb +1 -1
  92. data/lib/dtas/splitfx.rb +22 -10
  93. data/lib/dtas/state_file.rb +2 -2
  94. data/lib/dtas/tfx.rb +1 -1
  95. data/lib/dtas/track.rb +2 -2
  96. data/lib/dtas/tracklist.rb +1 -1
  97. data/lib/dtas/unix_accepted.rb +12 -37
  98. data/lib/dtas/unix_client.rb +2 -2
  99. data/lib/dtas/unix_server.rb +2 -14
  100. data/lib/dtas/util.rb +1 -1
  101. data/lib/dtas/version.rb +1 -1
  102. data/lib/dtas/watchable/fiddle_ino.rb +78 -0
  103. data/lib/dtas/watchable/inotify.rb +13 -0
  104. data/lib/dtas/watchable.rb +58 -58
  105. data/lib/dtas/writable_iter.rb +1 -1
  106. data/lib/dtas/xs.rb +1 -1
  107. data/lib/dtas.rb +13 -21
  108. data/man/dtas-archive.1 +2 -2
  109. data/man/dtas-console.1 +2 -2
  110. data/man/dtas-ctl.1 +2 -2
  111. data/man/dtas-cueedit.1 +2 -2
  112. data/man/dtas-enq.1 +2 -2
  113. data/man/dtas-env.7 +2 -2
  114. data/man/dtas-msinkctl.1 +2 -2
  115. data/man/dtas-player.1 +2 -2
  116. data/man/dtas-player_effects.7 +2 -2
  117. data/man/dtas-player_protocol.7 +2 -2
  118. data/man/dtas-player_sink_examples.7 +2 -2
  119. data/man/dtas-sinkedit.1 +3 -3
  120. data/man/dtas-sourceedit.1 +3 -3
  121. data/man/dtas-splitfx.1 +43 -13
  122. data/man/dtas-tl.1 +4 -2
  123. data/man/dtas-xdelay.1 +2 -2
  124. data/{perl → script}/dtas-graph +1 -1
  125. data/setup.rb +1 -2
  126. data/test/covshow.rb +1 -1
  127. data/test/helper.rb +1 -1
  128. data/test/player_integration.rb +1 -2
  129. data/test/test_buffer.rb +8 -8
  130. data/test/test_encoding.rb +2 -3
  131. data/test/test_env.rb +1 -1
  132. data/test/test_fadefx.rb +1 -1
  133. data/test/test_format.rb +1 -1
  134. data/test/test_format_change.rb +2 -2
  135. data/test/test_mcache.rb +15 -5
  136. data/test/test_mlib.rb +1 -1
  137. data/test/test_parse_freq.rb +1 -1
  138. data/test/test_pipeline.rb +1 -1
  139. data/test/test_player.rb +1 -1
  140. data/test/test_player_client_handler.rb +2 -2
  141. data/test/test_player_integration.rb +7 -8
  142. data/test/test_process.rb +1 -1
  143. data/test/test_rg_integration.rb +9 -9
  144. data/test/test_rg_state.rb +1 -1
  145. data/test/test_sigevent.rb +20 -0
  146. data/test/test_sink.rb +2 -2
  147. data/test/test_sink_pipe_size.rb +13 -16
  148. data/test/test_sink_tee_integration.rb +1 -1
  149. data/test/test_source_av.rb +1 -1
  150. data/test/test_source_sox.rb +1 -1
  151. data/test/test_splitfx.rb +2 -5
  152. data/test/test_tfx.rb +2 -3
  153. data/test/test_tracklist.rb +1 -1
  154. data/test/test_unixserver.rb +2 -2
  155. data/test/test_util.rb +1 -1
  156. metadata +11 -8
  157. data/lib/dtas/compat_onenine.rb +0 -17
  158. data/lib/dtas/nonblock.rb +0 -24
  159. data/lib/dtas/spawn_fix.rb +0 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: db19072a9f74af0a63fe5d9d2656b06643acba7e3a64d99de59548583bf535c1
4
- data.tar.gz: 751bdfe20a0ac951a32587a68d1adb860255be610644fd8605f3010c82cc6196
3
+ metadata.gz: 8f1bef240a616d74eeffa033144a1323c2a82b29d270c3620654af293bd2fe42
4
+ data.tar.gz: 2c48a6d95b4d5adebe16ce99bd14e18c997cd9011dd77dae2331d98b7df794de
5
5
  SHA512:
6
- metadata.gz: 4cd403005637338693031ef441170a7fe1e7da77e86e826b3650e7d70344bafe9b3546c2873003f742da583457de7a544b24007dfecf017f7edd364edd05ce83
7
- data.tar.gz: 282169bd243e103b3fea0398a31671e89c0c9ebba972d7924c4eb9542471410c9dcfa1f1b1c9fa2d0872145cd576aca528e96ec9d746bb889ac7eb5c96e4e286
6
+ metadata.gz: a32d0952afed05e71ad637012be3e8622fc889c6217e6baa4322f7bc711c66df1a7c31100cc0f751e8d7f2a862e301789f7e3475ae823f4cd336a7139540661c
7
+ data.tar.gz: d46c3e1b6b48091a9fafeeb0d15af21e01a5f0bfe02d89028165f20fdd0ba026c3de3509308dd959968dd76c5e110fbcc842bc7e86ea2139ec0a0f9cc981ec09
data/.gitignore CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013-2016 all contributors <dtas-all@nongnu.org>
1
+ # Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
2
2
  # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
3
3
  /GIT-VERSION-FILE
4
4
  /Manifest.txt
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013-2016 all contributors <dtas-all@nongnu.org>
1
+ # Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
2
2
  # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
3
3
  *.1
4
4
  *.5
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013-2016 all contributors <dtas-all@nongnu.org>
1
+ # Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>
2
2
  # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
3
3
  all::
4
4
 
@@ -56,7 +56,7 @@ Number of times to repeat the L<sndfile-cmp(1)> check. Default: 1
56
56
 
57
57
  =head1 COPYRIGHT
58
58
 
59
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
59
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
60
60
 
61
61
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
62
62
 
@@ -84,7 +84,7 @@ No subscription is necessary to post to the mailing list.
84
84
 
85
85
  =head1 COPYRIGHT
86
86
 
87
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
87
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
88
88
 
89
89
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
90
90
 
@@ -68,7 +68,7 @@ No subscription is necessary to post to the mailing list.
68
68
 
69
69
  =head1 COPYRIGHT
70
70
 
71
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
71
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
72
72
 
73
73
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
74
74
 
@@ -29,7 +29,7 @@ No subscription is necessary to post to the mailing list.
29
29
 
30
30
  =head1 COPYRIGHT
31
31
 
32
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
32
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
33
33
 
34
34
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
35
35
 
@@ -34,7 +34,7 @@ No subscription is necessary to post to the mailing list.
34
34
 
35
35
  =head1 COPYRIGHT
36
36
 
37
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
37
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
38
38
 
39
39
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
40
40
 
@@ -70,6 +70,6 @@ No subscription is necessary to post to the mailing list.
70
70
 
71
71
  =head1 COPYRIGHT
72
72
 
73
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
73
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
74
74
 
75
75
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
@@ -51,7 +51,7 @@ No subscription is necessary to post to the mailing list.
51
51
 
52
52
  =head1 COPYRIGHT
53
53
 
54
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
54
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
55
55
 
56
56
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
57
57
 
@@ -115,7 +115,7 @@ No subscription is necessary to post to the mailing list.
115
115
 
116
116
  =head1 COPYRIGHT
117
117
 
118
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
118
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
119
119
 
120
120
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
121
121
 
@@ -98,6 +98,6 @@ No subscription is necessary to post to the mailing list.
98
98
 
99
99
  =head1 COPYRIGHT
100
100
 
101
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
101
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
102
102
 
103
103
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
@@ -470,6 +470,6 @@ No subscription is necessary to post to the mailing list.
470
470
 
471
471
  =head1 COPYRIGHT
472
472
 
473
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
473
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
474
474
 
475
475
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
@@ -77,7 +77,7 @@ No subscription is necessary to post to the mailing list.
77
77
 
78
78
  =head1 COPYRIGHT
79
79
 
80
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
80
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
81
81
 
82
82
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
83
83
 
@@ -13,7 +13,7 @@ dtas-sinkedit SINKNAME
13
13
  dtas-sinkedit spawns an editor to allow editing of a sink as a YAML file.
14
14
  See L<dtas-player_protocol(7)> for details on SINKARGS.
15
15
 
16
- On Linux machines with the sleepy_penguin RubyGem installed, L<inotify(7)>
16
+ On Linux machines, L<inotify(7)>
17
17
  is used to monitor the file for changes while the text editor is running.
18
18
  Each time a user finishes saving a file, changes are committed immediately.
19
19
  This behavior may be disabled by using the -N or --no-watch command-line
@@ -70,7 +70,7 @@ No subscription is necessary to post to the mailing list.
70
70
 
71
71
  =head1 COPYRIGHT
72
72
 
73
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
73
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
74
74
 
75
75
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
76
76
 
@@ -16,7 +16,7 @@ a pipe or file, it is parsed as YAML and fed to the L<dtas-player(1)> instance
16
16
  non-interactively. This is useful for loading various profiles from the
17
17
  filesystem.
18
18
 
19
- On Linux machines with the sleepy_penguin RubyGem installed, L<inotify(7)>
19
+ On Linux machines, L<inotify(7)>
20
20
  is used to monitor the file for changes while the text editor is running.
21
21
  Each time a user finishes saving a file, changes are committed immediately.
22
22
  This behavior may be disabled by using the -N or --no-watch command-line
@@ -77,7 +77,7 @@ No subscription is necessary to post to the mailing list.
77
77
 
78
78
  =head1 COPYRIGHT
79
79
 
80
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
80
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
81
81
 
82
82
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
83
83
 
@@ -26,7 +26,8 @@ to use L<ecasound(1)>, too.
26
26
  =item -j, --jobs [JOBS]
27
27
 
28
28
  Number of jobs to run in parallel. If no number is specified, all
29
- jobs are run in parallel.
29
+ jobs are run in parallel. Default: number of CPUS (dtas 0.20.0+),
30
+ previous versions of dtas defaulted to 1.
30
31
 
31
32
  =item -n, --dry-run
32
33
 
@@ -41,6 +42,12 @@ Silent operation, commands are not printed as executed
41
42
  Disable automatic setting of the DITHERFX env. This also passes
42
43
  the option to L<sox(1)> via SOX_OPTS.
43
44
 
45
+ =item -E, --err-suffix SUFFIX
46
+
47
+ Write the contents of C<stderr>. This is useful for capturing
48
+ the per-track output of the L<sox(1)> C<stats> effect when
49
+ combined with parallel C<--jobs>.
50
+
44
51
  =item -O, --outdir OUTDIR
45
52
 
46
53
  Set output directory instead of current directory.
@@ -70,6 +77,16 @@ outputs the result as a single file with the TRACKNUMBER
70
77
  of "000". For ease-of-typing, commas in this command-line
71
78
  argument are automatically expanded to spaces when passed to sox.
72
79
 
80
+ This switch may not be combined with L</--filter>
81
+
82
+ =item -f, --filter [FIELD=]VALUE
83
+
84
+ Only process tracks matching a given comment FIELD and VALUE.
85
+ If no C<=> is exists, then all comment fields are matched
86
+ against the specified VALUE.
87
+
88
+ This switch may not be combined with L</--trim>
89
+
73
90
  =item -p, --sox-pipe
74
91
 
75
92
  Used in place of an output target to specify outputting audio data in
@@ -84,9 +101,9 @@ moves printing of output to stderr and disables parallel job invocation.
84
101
 
85
102
  =item infile - string, the pathname of the original audio file
86
103
 
87
- =item env - ordered hash of environment variables to set for all commands
104
+ =item env - hash of environment variables to set for all commands
88
105
 
89
- env: !omap
106
+ env:
90
107
  FX: gain 3 stats
91
108
 
92
109
  =item comments - hash of common tags for all audio (e.g. ARTIST, ALBUM, YEAR)
@@ -115,7 +132,12 @@ highest-numbered track. Default: true
115
132
 
116
133
  =item targets - hash, see "TARGETS" section
117
134
 
118
- =item command - used only by L<dtas-player(1)>
135
+ =item command - override the default sox invocation
136
+
137
+ This command may be used to specify an alternate command to process each
138
+ track.
139
+
140
+ Default: sox "$INFILE" $COMMENTS $OUTFMT $OUTDST $TRIMFX $FX $RATEFX $DITHERFX
119
141
 
120
142
  =back
121
143
 
@@ -127,11 +149,22 @@ segment.
127
149
 
128
150
  =over
129
151
 
130
- =item t TIME TITLE [fade_in/fade_out=FADE_ARGS]
152
+ =item t TIME TITLE [fade_in/fade_out=FADE_ARGS] [.FIELD=VALUE] [env.X=Y]
153
+
154
+ The start of a new track at TIME with TITLE.
155
+ An optional L</fade_in> and L</fade_out> may be specified for any tracks.
156
+ Per-track comments may be specified in the form of C<.FIELD=VALUE>.
157
+ Using per-track C<.ARTIST=FOO> allows proper tagging of multi-artist
158
+ compilations.
131
159
 
132
- The start of a new track
133
- at TIME with TITLE. An optional fade_in and fade_out may be specified
134
- for the first/last tracks.
160
+ Per-track environment variables may be specified in the form
161
+ of C<env.K=V> where C<K> is the environment variable name and
162
+ C<V> is its value. Per-track environment variables do not affect
163
+ playback of YAML files via L<dtas-player(1)> nor use of the L</--trim>
164
+ command-line option. However, per-track environment variables do affect
165
+ any tracks written to the filesystem, including those using the L</--filter>
166
+ switch. These environment variables are intended to affect the specified
167
+ L</command> or default L<sox(1)> invocation.
135
168
 
136
169
  =item skip TIME - skip a segment starting at TIME
137
170
 
@@ -262,7 +295,7 @@ imbalance in a live concert recording from the audience:
262
295
 
263
296
  =head1 COPYRIGHT
264
297
 
265
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
298
+ Copyright all contributors L<mailto:dtas-all@nongnu.org>
266
299
 
267
300
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
268
301
 
@@ -60,6 +60,8 @@ optionally seek to POS. POS should be a timestamp in HH:MM:SS.FRAC format.
60
60
 
61
61
  =item prev - play the previous track in the tracklist
62
62
 
63
+ =item prune - cull non-existent pathnames from the tracklist
64
+
63
65
  =item repeat 1 - repeat the current track
64
66
 
65
67
  =item repeat false - disable repeat
@@ -120,7 +122,7 @@ No subscription is necessary to post to the mailing list.
120
122
 
121
123
  =head1 COPYRIGHT
122
124
 
123
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
125
+ Copyright all contributors L<mailto:dtas-all@nongnu.org>
124
126
 
125
127
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
126
128
 
@@ -86,7 +86,7 @@ No subscription is necessary to post to the mailing list.
86
86
 
87
87
  =head1 COPYRIGHT
88
88
 
89
- Copyright 2013-2016 all contributors L<mailto:dtas-all@nongnu.org>
89
+ Copyright 2013-2020 all contributors L<mailto:dtas-all@nongnu.org>
90
90
 
91
91
  License: GPL-3.0+ L<https://www.gnu.org/licenses/gpl-3.0.txt>
92
92
 
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- # Copyright 2015-2016 all contributors <dtas-all@nongnu.org>
2
+ # Copyright 2015-2020 all contributors <dtas-all@nongnu.org>
3
3
  # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
4
4
  # frozen_string_literal: true
5
5
  contact = %q{
data/GIT-VERSION-FILE CHANGED
@@ -1 +1 @@
1
- VERSION = 0.17.0
1
+ VERSION = 0.20.0
data/GIT-VERSION-GEN CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
- # Copyright (C) 2013-2019 all contributors <dtas-all@nongnu.org>
2
+ # Copyright (C) all contributors <dtas-all@nongnu.org>
3
3
  # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
4
4
  # frozen_string_literal: true
5
5
  CONSTANT = "DTAS::VERSION"
6
6
  RVF = "lib/dtas/version.rb"
7
7
  GVF = "GIT-VERSION-FILE"
8
- DEF_VER = "v0.17.0"
8
+ DEF_VER = "v0.20.0"
9
9
  vn = DEF_VER
10
10
 
11
11
  # First see if there is a version file (included in release tarballs),
data/GNUmakefile CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013-2016 all contributors <dtas-all@nongnu.org>
1
+ # Copyright (C) 2013-2021 all contributors <dtas-all@nongnu.org>
2
2
  # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
3
3
  all::
4
4
  pkg = dtas
@@ -74,5 +74,17 @@ $(pkgtgz): .tgz-manifest
74
74
 
75
75
  package: $(pkgtgz) $(pkggem)
76
76
 
77
+ # Install symlinks to ~/bin (which is hopefuly in PATH) which point to
78
+ # this source tree.
79
+ # prefix + bindir matches git.git Makefile:
80
+ prefix = $(HOME)
81
+ bindir = $(prefix)/bin
82
+ symlink-install :
83
+ mkdir -p $(bindir)
84
+ dtas=$(CURDIR)/dtas.sh && cd $(bindir) && \
85
+ for x in $(CURDIR)/bin/*; do \
86
+ ln -sf "$$dtas" $$(basename "$$x"); \
87
+ done
88
+
77
89
  .PHONY: all .FORCE-GIT-VERSION-FILE test $(test_units) NEWS
78
90
  .PHONY: check-warnings fix-perms
data/HACKING CHANGED
@@ -23,5 +23,5 @@ No subscription is necessary to post to the mailing list.
23
23
 
24
24
  # COPYRIGHT
25
25
 
26
- Copyright 2013-2016 all contributors <dtas-all@nongnu.org>.\
26
+ Copyright 2013-2020 all contributors <dtas-all@nongnu.org>.\
27
27
  License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
data/INSTALL CHANGED
@@ -1,33 +1,24 @@
1
- Uncommon for audio software, dtas is implemented in Ruby.
1
+ Uncommon for audio software, dtas is currently implemented in Ruby
2
+ (and some Perl5).
2
3
 
3
4
  The latest stable release or development snapshot of Ruby is recommended.
4
- However, Ruby 1.9.3 and later works, but older versions of Ruby do not.
5
+ However, Ruby 2.3 and later works, but older versions of Ruby do not.
5
6
 
6
7
  SoX is a dependency of dtas-player. While not _strictly_ required,
7
8
  dtas-player uses SoX by default and you will need it unless you've
8
9
  reconfigured dtas-player to use something else.
9
10
 
10
11
  mp3gain is required if you want to use ReplayGain with MP3s
12
+ (it is no longer in new versions of Debian)
11
13
 
12
14
  If you only intend to use dtas-cueedit, you will need metaflac(1) from
13
15
  the FLAC package.
14
16
 
15
- Debian 7+ users can install dependencies easily:
17
+ Debian 10+ users can install dependencies easily:
16
18
 
17
- sudo apt-get install sox libsox-fmt-all mp3gain flac ruby-dev
19
+ sudo apt-get install sox libsox-fmt-all flac ruby-dev ruby-charlock-holmes
18
20
 
19
- # installing dtas RubyGem on GNU/Linux (Linux kernel 2.6.32+)
20
-
21
- Be sure to have Ruby development headers and a working C compiler.
22
- This will pull in the sleepy_penguin RubyGems for minor
23
- speedups. If you cannot be bothered to have a development
24
- environment, just use "gem install dtas".
25
-
26
- sudo gem install dtas-linux
27
-
28
- This should pull in the "sleepy_penguin" RubyGems
29
-
30
- For future upgrades of dtas (upgrades to dtas-linux will be infrequent)
21
+ For future upgrades of dtas
31
22
 
32
23
  sudo gem update dtas
33
24
 
@@ -35,29 +26,30 @@ For future upgrades of dtas (upgrades to dtas-linux will be infrequent)
35
26
 
36
27
  sudo gem install dtas
37
28
 
38
- # installing dtas via tarball and setup.rb
29
+ # installing dtas via tarball
39
30
 
40
31
  Grab the latest tarball from our HTTPS site:
41
32
 
42
- https://80x24.org/dtas/2019/dtas-0.17.0.tar.gz
33
+ https://80x24.org/dtas/2022/dtas-0.20.0.tar.gz
43
34
 
44
- $ tar zxvf dtas-0.17.0.tar.gz
45
- $ cd dtas-0.17.0
46
- $ sudo ruby setup.rb
35
+ $ tar zxvf dtas-0.20.0.tar.gz
36
+ $ cd dtas-0.20.0
47
37
 
48
- GNU/Linux users may optionally install the "sleepy_penguin" package:
38
+ # To install symlinks into ~/bin (assuming your Ruby executable is "ruby")
39
+ $ make symlink-install
49
40
 
50
- * sleepy_penguin - https://bogomips.org/sleepy_penguin/
41
+ # or using setup.rb:
42
+ $ sudo ruby setup.rb
51
43
 
52
44
  # CONTACT
53
45
 
54
46
  Please do not hesitate to send plain-text mail to <dtas-all@nongnu.org>
55
47
  regarding installation and to share your notes/experiences.
56
48
  Mailing list archives available at <https://80x24.org/dtas-all/> or
57
- <ftp://lists.gnu.org/dtas-all>
49
+ <https://lists.gnu.org/archive/html/dtas-all/>
58
50
  No subscription is necessary to post to the mailing list.
59
51
 
60
52
  # COPYRIGHT
61
53
 
62
- Copyright 2013-2019 all contributors <dtas-all@nongnu.org>
54
+ Copyright all contributors <dtas-all@nongnu.org>
63
55
  License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
data/NEWS CHANGED
@@ -1,3 +1,124 @@
1
+ # 0.20.0 / 2022-02-03
2
+
3
+ dtas 0.20.0 - ruby 3.1+ compatibility, splitfx improvements
4
+
5
+
6
+ This release catches up with Psych (YAML) changes in Ruby 3.1+
7
+ Ruby 2.3+ is now the minimum version, though keep in mind the
8
+ ruby-core team already dropped support for it long ago.
9
+
10
+ Most of the features are focused on audio engineering
11
+ capabilities of dtas-splitfx. dtas-splitfx gains the --filter
12
+ switch, along with per-track environment variables and comments.
13
+ These new features have made my workflow significantly better.
14
+
15
+ dtas-archive supports explicit comments, and omits the default
16
+ SoX comment. To better cope with temporary and modified files
17
+ during editing, dtas-player metadata now checks ctime before
18
+ reusing the cache, handy for frequently-modified files.
19
+ "dtas-tl prune" is now supported to cull temporary files from
20
+ the player tracklist.
21
+
22
+ There's a few dtas-console improvements, too.
23
+
24
+ 28 changes since v0.19.0 (2021-09-05):
25
+
26
+ archive: support comments, default to none
27
+ splitfx: use Etc.nprocessors for jobs if unspecified
28
+ dtas-console: set X11 terminal title iff DISPLAY is set
29
+ dtas-console: add 'i' toggle to show comments (metadata)
30
+ splitfx: fix track_zpad with integer arg
31
+ doc: drop ordered map from examples
32
+ player: reduce syscalls when splicing to single target
33
+ dtas-console: support Wayland terminal titles, too
34
+ console: workaround safe warnings in outdated `curses' gem
35
+ require Ruby 2.3+
36
+ get rid of DTAS.dedupe_str wrapper
37
+ move dtas-graph into script/, support Perl for dtas.sh
38
+ use YAML.unsafe_load in Psych 4.x (Ruby 3.1+)
39
+ deduplicate and freeze pathnames + metadata
40
+ player: remove omap conversion
41
+ dtas: drop unnecessary "require 'yaml'" statements
42
+ dtas-tl prune: cull missing files from tracklist
43
+ dtas-tl: drop encoding hacks, use binary stdout+stderr
44
+ use IO#wait_readable consistently
45
+ get rid of DTAS::Nonblock wrapper for Ruby <= 2.0
46
+ unix_accepted: drop Ruby < 2.3 support code
47
+ do not check IO#closed? before calling IO#close
48
+ splitfx: support per-track environment variables
49
+ splitfx: add --filter option to limit match to comments
50
+ player: expire sox metadata cache on file st_ctime changes
51
+ readahead: do not call -@ on non-String
52
+ splitfx: disallow combining --trim and --filter
53
+ splitfx: document changes ahead of 0.20.0 release
54
+
55
+ # 0.19.0 / 2021-09-05
56
+
57
+ dtas 0.19.0 - odd pathname fixes
58
+
59
+
60
+ Non-UTF-8-encoded pathnames now handled properly by dtas-mlib.
61
+ Shell-unfriendly filenames are handled properly if they require
62
+ ffmpeg (they were always handled properly when using sox).
63
+
64
+ Some minor URL and doc updates, too, and there's a new
65
+ "make symlink-install" target for users who lack permissions
66
+ to install RubyGems.
67
+
68
+ 6 changes since v0.18.1 (2021-02-13):
69
+
70
+ mlib: pathnames may be blobs
71
+ README: replace NNTP URL with NNTPS
72
+ gemspec: allow building gem without setting VERSION
73
+ build: add "symlink-install" target
74
+ do not shell-quote filenames for environment
75
+ doc: use Tor v3 .onion URLs
76
+
77
+ # 0.18.1 / 2021-02-13
78
+
79
+ dtas 0.18.1
80
+
81
+
82
+ Mainly seek improvements to dtas-player. The fallback to use
83
+ charlock-holmes for strangely-encoded files is fixed.
84
+
85
+ 7 changes since 0.18.0 (2020-02-03):
86
+
87
+ splitfx: reduce syscalls for writing comments file
88
+ splitfx: support --err-suffix option
89
+ player: fix +/- directional seeks while paused
90
+ README: update and add more URLs for archives
91
+ encoding: use CharlockHolmes properly on first run
92
+ dtas-console: gracefully handle seek failures
93
+ INSTALL: update dependencies for current Debian stable
94
+
95
+ # 0.18.0 / 2020-02-03
96
+
97
+ dtas 0.18.0
98
+
99
+
100
+ fiddle is now supported for Linux users without a C compiler or
101
+ Ruby headers installed to take advantage of inotify(7)
102
+ functionality and efficiency improvements with splice(2) and
103
+ eventfd(7).
104
+
105
+ For non-RubyGems users, there's some setup.rb fixes thanks
106
+ to James Rowe.
107
+
108
+ Eric Wong (8):
109
+ doc: fixup leftover ftp://lists.gnu.org links
110
+ pipe: avoid loading sleepy_penguin
111
+ provide fiddle-based eventfd implementation
112
+ buffer: replace sleepy_penguin with fiddle
113
+ watchable: use fiddle for inotify support
114
+ doc: remove most recommendations for sleepy_penguin
115
+ INSTALL: s/bogomips.org/yhbt.net/
116
+ doc: update copyrights for 2020
117
+
118
+ James Rowe (2):
119
+ setup: update to use RbConfig
120
+ setup: fix duplicate variable warning
121
+
1
122
  # 0.17.0 / 2019-11-14
2
123
 
3
124
  dtas 0.17.0
data/README CHANGED
@@ -74,19 +74,25 @@ All feedback (comments, results, feature requests, bug reports, patches,
74
74
  pull-requests) via plain-text mail to the mailing list is very much
75
75
  appreciated.
76
76
 
77
- Please send plain-text mail to the list at <dtas-all@nongnu.org>\
78
- HTML mail will not be read. dtas is for GUI-phobes, by GUI-phobes.\
79
- Mailing list archives available at <ftp://lists.gnu.org/dtas-all>
80
- or <https://80x24.org/dtas-all/>
77
+ Please send plain-text mail to the list at <dtas-all@nongnu.org>
78
+ HTML mail will not be read. dtas is for GUI-phobes, by GUI-phobes.
79
+ Mailing list archives available at <https://80x24.org/dtas-all/> or
80
+ <https://lists.gnu.org/archive/html/dtas-all/>.
81
+
81
82
  No subscription is necessary to post to the mailing list.
82
83
  You may also read via:
83
- NNTP: <nntp://news.public-inbox.org/inbox.comp.audio.dtas>
84
- <nntp://news.gmane.org/gmane.comp.audio.dtas.general>
84
+ NNTP: <nntps://news.public-inbox.org/inbox.comp.audio.dtas>
85
+ <nntp://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/inbox.comp.audio.dtas>
86
+ <nntp://news.gmane.io/gmane.comp.audio.dtas.general>
87
+ IMAP: <imaps://anon:mous@public-inbox.org/inbox.comp.audio.dtas.0>
88
+ <imap://anon:mous@7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/inbox.comp.audio.dtas.0>
85
89
  Atom: <https://80x24.org/dtas-all/new.atom>
90
+ <http://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/dtas-all/new.atom>
91
+ (.onion URLs require Tor: <https://www.torproject.org/>)
86
92
 
87
93
  ## Copyright
88
94
 
89
- Copyright 2013-2019 all contributors <dtas-all@nongnu.org>\
95
+ Copyright all contributors <dtas-all@nongnu.org>
90
96
  License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
91
97
 
92
98
  dtas is copyrighted Free Software by all contributors, see logs
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013-2019 all contributors <dtas-all@nongnu.org>.
1
+ # Copyright (C) 2013-2020 all contributors <dtas-all@nongnu.org>.
2
2
  # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
3
3
  # frozen_string_literal: true
4
4
  require 'tempfile'
data/TODO CHANGED
@@ -7,5 +7,5 @@
7
7
 
8
8
  # COPYRIGHT
9
9
 
10
- Copyright 2013-2019 all contributors <dtas-all@nongnu.org>
10
+ Copyright 2013-2020 all contributors <dtas-all@nongnu.org>
11
11
  License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>