dtas 0.17.0 → 0.20.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.
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>