easyaudio_utils 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d885918998007b7806797bd68d4d68580fdb76ff9d79fb0d66b1be971bb4f63b
4
- data.tar.gz: 24b8a113c7ce820b33f584e572f3f30da60fd57206ccf7010c9e44074b983878
3
+ metadata.gz: 2db36bcf3b91cd313debbd7f100e00ab90e616b3aa96fc40c62bbc29cf62e92f
4
+ data.tar.gz: 812c13474110e1e5e0c36858a7a714d15aede16c343d57a919112110c1d444d4
5
5
  SHA512:
6
- metadata.gz: 9a20e43975d41ff9b235885deef0d8cb19f8243edd4678843b9840ef05eed026403d6b2a876f087e93c2f1d5ed7ca7587dc447c7f37bab4b32b37235ce5df879
7
- data.tar.gz: b1a06bf5e96d2ed82eac8d800f40c5aa0a3d869c758fa19c79ad43484c04240c9a2c39ad50ff892afd158ab6038a013de0411e21a71bfff9b1075a7e9f828d35
6
+ metadata.gz: 628009f593d4a04d1443a11b66d811db1cdc29e6f15fcff306c92cc7e02453c19928acbbe3336da81e124a8cd094f5c10d10b027fb4fd112131ba38b2a1c1629
7
+ data.tar.gz: 2a6368bdb9e99b5b05c916349a8c27b992ed959bc465fb507e84167d72269d08d55bee67a3dfc5dfecd25a44ef2be06c34c11e42d3712f43b3162ccc9a31d9a8
checksums.yaml.gz.sig CHANGED
Binary file
@@ -9,7 +9,7 @@ require 'ogginfo'
9
9
  # `apt-get install mplayer sox vorbis-tools ffmpeg
10
10
 
11
11
  # installing youtube-dl:
12
- #
12
+ #
13
13
  # `sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/bin/youtube-dl`
14
14
  #
15
15
  # `sudo chmod a+rx /usr/bin/youtube-dl`
@@ -20,7 +20,7 @@ require 'ogginfo'
20
20
 
21
21
  module CommandHelper
22
22
  using ColouredText
23
-
23
+
24
24
  def list(a=@commands)
25
25
 
26
26
  format_command = ->(s) do
@@ -48,16 +48,17 @@ class EasyAudioUtils
48
48
  * concat_files # stiches wav files together
49
49
  * convert # converts a file from 1 format to another #wav #ogg
50
50
  * cut # cuts the audio into a new file as defined by start time and duration
51
- * duration # return the duration for a wav or ogg
51
+ * duration # return the duration for a wav or ogg
52
52
  * generate_silence # generates silence in a wav file
53
53
  * play # plays using mplayer
54
54
  * record # alias for capture_desktop
55
55
  * split # split the wav file by silence
56
+ * volume # increase or decrease (0.50 is equal to 50%)
56
57
  * youtube_dl # downloads audio in Ogg (opus) format
57
58
  ".strip.lines.map {|x| x[/(?<=\* ).*/]}.sort
58
59
 
59
60
 
60
- def initialize(audio_in=nil, audio_out='audio.wav', out: audio_out,
61
+ def initialize(audio_in=nil, audio_out='audio.wav', out: audio_out,
61
62
  working_dir: '/tmp')
62
63
 
63
64
  @file_in, @file_out, @working_dir = audio_in, out, working_dir
@@ -69,42 +70,42 @@ class EasyAudioUtils
69
70
  #
70
71
  def capture(show: false)
71
72
 
72
- command = "rec -c 1 -r 8000 -t alsa default #{@file_out} " +
73
+ command = "rec -c 1 -r 8000 -t alsa default #{@file_out} " +
73
74
  "silence 1 0.1 5% 5 1.0 5%"
74
75
  run command, show
75
76
 
76
77
  end
77
-
78
- def concat_files(files=[])
79
- WavTool.new(out: @file_out, ).concat files
78
+
79
+ def concat_files(files=[], sample_rate: nil)
80
+ WavTool.new(out: @file_out, sample_rate: sample_rate).concat files
80
81
  end
81
-
82
+
82
83
  alias concat concat_files
83
-
84
+
84
85
  # convert either wav to ogg or ogg to wav
85
86
  #
86
87
  def convert()
87
-
88
+
88
89
  if File.extname(@file_in) == '.ogg' then
89
- ogg_to_wav() if File.extname(@file_out) == '.wav'
90
+ ogg_to_wav() if File.extname(@file_out) == '.wav'
90
91
  else
91
- wav_to_ogg() if File.extname(@file_out) == '.ogg'
92
+ wav_to_ogg() if File.extname(@file_out) == '.ogg'
92
93
  end
93
-
94
+
94
95
  end
95
-
96
+
96
97
  # cut a section of audio and save it to file
97
98
  #
98
- def cut(starttime, duration)
99
-
99
+ def cut(starttime, duration)
100
+
100
101
  command = "avconv -i %s -ss %s -t %s %s" % \
101
102
  [@file_in, starttime, duration, @file_out]
102
- run command, show
103
-
103
+ run command, show
104
+
104
105
  end
105
-
106
+
106
107
  def duration()
107
-
108
+
108
109
  case File.extname(@file_in)
109
110
  when '.ogg'
110
111
  OggInfo.open(@file_in).length
@@ -112,64 +113,71 @@ class EasyAudioUtils
112
113
  WavTool.new().duration(@file_in)
113
114
  when '.mp3'
114
115
  Mp3Info.new(@file_in).length
115
- end
116
-
116
+ end
117
+
117
118
  end
118
-
119
+
119
120
  # silence duration in seconds
120
121
  #
121
122
  def generate_silence(duration)
122
123
  WavTool.new(out: @file_out).silence duration: duration
123
124
  end
124
-
125
+
125
126
  alias record capture
126
-
127
+
127
128
  def play(show: false)
128
129
  command = "mplayer #{@file_out}"
129
130
  run command, show
130
131
  end
131
-
132
+
132
133
  # split by silence
133
134
  #
134
- def split(show: false)
135
+ def split(show: false)
135
136
  command = "sox -V3 #{@file_in} #{@file_out} silence -l 0 " +
136
137
  " 1 0.5 0.1% : newfile : restart"
137
138
  run command, show
138
139
  end
139
-
140
+
141
+ # volume increase or decrease
142
+ #
143
+ def volume(amount=1.0, show: false)
144
+ command = "sox -v #{amount} #{@file_in} #{@file_out}"
145
+ run command, show
146
+ end
147
+
140
148
  # Download and extract audio from a video on YouTube
141
149
  #
142
150
  # By default, Youtube-dl will save the audio in Ogg (opus) format.
143
151
  #
144
- def youtube_dl(show: false)
145
-
152
+ def youtube_dl(show: false)
153
+
146
154
  command = "youtube-dl -x #{url=@file_in}"
147
155
  command += ' -o ' + @file_out if @file_out
148
- run command, show
156
+ run command, show
149
157
 
150
- end
158
+ end
151
159
 
152
160
 
153
161
  private
154
-
155
-
156
- def ogg_to_wav()
157
- `oggdec #{@file_in} #{@file_out}`
158
- end
159
-
162
+
163
+
160
164
  def ogg_to_wav()
165
+ `oggdec #{@file_in} -o #{@file_out}`
166
+ end
167
+
168
+ def wav_to_ogg()
161
169
  `sox -V #{@file_in} #{@file_out}`
162
- end
170
+ end
163
171
 
164
172
  def run(command, show=false)
165
173
 
166
- if show then
174
+ if show then
167
175
  command
168
176
  else
169
177
  puts "Using ->" + command
170
178
  system command
171
179
  end
172
180
 
173
- end
181
+ end
174
182
 
175
183
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easyaudio_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,73 +10,74 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwODE3MTQzMTQ2WhcN
15
- MjEwODE3MTQzMTQ2WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCq7nTP
17
- G87Bg1OlQZHqvE1AEeCfy98/usWtn1+CgLWrqoOIY7VGs8Uk92XOKhMKQeew2uhg
18
- 2ci7aoZZfBVCvLLYM+OD8hNs3kIhR+Ouy5N1eoYFCF6OYMKD9LGAH+cBqH6b76Yn
19
- Kci6XhBNY+aQh56BRNH7FLZ+pcV0/ULvO4sVDqEfht3p/4WceFGnL44FsFDhzCPJ
20
- YQ+KLjWxAI8QuLTLZFGcrZf7/bOq3cy/VEFMUilQ+dOkLMcICfm3WjiN3ZKrnr47
21
- ZQxeTuJWaBsjWk28E7kVssCO0shoYxwBsYjg9GDS5dQb/12OMlDtFji3OkqADhCj
22
- uLX7In01Ch9gewg7k6EubNbXYdT/Do3XRFMSgkd09cFmPoVZIpdSCjP2EXY8vu+f
23
- 3Y0BCweJ3zxd5U12ULVsdFb0ilpD8DV5hrOBQB7GYM42g/jYgTFd8HL924BZQHOs
24
- 1JRpaeRUHtpk8vqSm42ouFuRUnmYG4zVuwXkAnaxmH+kPxaHZh/UAaN+NkUCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUTMUxuO5M
26
- 7UF5aGw4aXWscgydq4owJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
- c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAcHdlP926iCRowPRKfQyDy611G3ceIHe/c7g5Jlov
29
- bjYf/072xcxtpEl3gCkiYAg3RJcje7p11M9yvotU+LfaraeNfc4QY3aKCmdeydZb
30
- M9Epmnd5PzazZzRfGIpp55/FvZhJ8L/3WbFyttgsB1I98WwMcWN4/Z45DfQPAalR
31
- 1+dLVo6FqBtCcEKTSi62qFl/Zww5ErCEyqBCeKArZWPDbVfEKqfjzJWiYNwnuJmJ
32
- r+zG3ZSNfLpTRj1IU6hXGBXBM0i+nngbppJAcSRHYDYNHkPxBdwHYNwivPGg0/ic
33
- Y1Irmj+W7OWcIk289KiEIn9QgHqfL/FkynAa3wW4utEt7evObGIpXJbMDdc55d+b
34
- nN9uJYaGOT/Ui5kx/UjoSqzBWOzkdwZOozcrEyqVVoWIghDaevdwC5G0N6sPpIkr
35
- iV3Y2C+RMq1lzH37GpnqYY/GbIvXMmQ7PO19tYLBCV/OUawXzR16PkiHVjIGnDyN
36
- PaGqcnyxdoovIOkXQxqj5+Zd
13
+ MIIEljCCAv6gAwIBAgIBATANBgkqhkiG9w0BAQsFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTIyMDcxNTA3NTAxNVoXDTIzMDcxNTA3NTAxNVowSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoC
18
+ ggGBAKRHnQmKwofRlU362PipNPZvEP0C0dxKv3Lf2FRomB9nTCcDAaNbJwmuLCpD
19
+ /GWAu+2HEbtNY0vlvMoQ0MJ0Zfsih6KdJaNtSuBIxjZMBAdXTQQxNzkV720hpF0o
20
+ NwoDMoeeHtT9TUjaeF4pKG059H0TuRQUv6fPaihLwBmfPM+6Knzx1aFpJpc+hsXI
21
+ 3RUq2tyP2IlfZitKp7BSMV8mTilaI2W41omh7zxZ0q4kswv2b8yio2fn6m4eMSEy
22
+ eYCFg3zyy2gb0KTxR/Fzw1fdeeva5pnfDKysUKV4ME863BkAjVDnjGFkasiI9F+l
23
+ 8YOSGwzxAFDPnyTVWYYrBlhERMjvsR2989UnPAABhpJVYhxWWFWE4+niP2PiF5Q/
24
+ J9Kb/rYaWpwzY4NctF3C8EO6rQBWTXlxxxhkp/NVoKmQZaROvdKSTggZEYSrFqH6
25
+ b86JohYph9DCwQSzm+Q6a5aumcZeHoBs2gYcoWsz4s6wqlrZ7/ufSKN68OevPNqx
26
+ JFAgFQIDAQABo4GKMIGHMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
27
+ BBTQSbgllZS7hljsidOKoQYs6lSLazAmBgNVHREEHzAdgRtnZW1tYXN0ZXJAamFt
28
+ ZXNyb2JlcnRzb24uZXUwJgYDVR0SBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
29
+ c29uLmV1MA0GCSqGSIb3DQEBCwUAA4IBgQAyu6jZ1/IIGGlDiGZkq/Jg+85ql4oL
30
+ qGIk5oAk3R7UA5uHUquZTS6cIZmveNC7jxOpmF0UWDk02qCEp4vRF6WqlcILiRo9
31
+ v3DrgBIwcqbXtmK5DSpABzPSHQe0rCtLwCJ4JdXgTuo7oFjZT2vooZw8xYvLBzQO
32
+ QbNYfvo0f/hiC33cgQRGzvdjUxXfUrAVfYGQ4ojidfoSEwRqbOk5ZKAc+VFp1Z+t
33
+ iGG8j7K5IxgKs/AMr58nOTmBhzi/s5l4d/b0Xpfzl6MZ8dvb3mcERlY9An5OinOL
34
+ 23PTux9AbbfhpMICrfC+LiXbpSDXnitszninLiw4xXoGuqhCtYBfgyYVih8hWD4I
35
+ vu0cR2nfbXRVexqRSfFr1v8temeuL9ruS53Y2+I0erFTUwGux8iL8RuyDZ6v44NE
36
+ F3apwi0l6qdwAskTEyAeMXR7LY7B6wFhidkOS3+jnhOZp9HJZ+YtpDLMYYPDndKG
37
+ 3I3tmYQyMHrny9W25zsC7d5azh5HCfjexAo=
37
38
  -----END CERTIFICATE-----
38
- date: 2020-08-31 00:00:00.000000000 Z
39
+ date: 2022-07-15 00:00:00.000000000 Z
39
40
  dependencies:
40
41
  - !ruby/object:Gem::Dependency
41
42
  name: c32
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: 0.2.0
47
45
  - - "~>"
48
46
  - !ruby/object:Gem::Version
49
- version: '0.2'
47
+ version: '0.3'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 0.3.0
50
51
  type: :runtime
51
52
  prerelease: false
52
53
  version_requirements: !ruby/object:Gem::Requirement
53
54
  requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 0.2.0
57
55
  - - "~>"
58
56
  - !ruby/object:Gem::Version
59
- version: '0.2'
57
+ version: '0.3'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.3.0
60
61
  - !ruby/object:Gem::Dependency
61
62
  name: wavtool
62
63
  requirement: !ruby/object:Gem::Requirement
63
64
  requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 0.1.0
67
65
  - - "~>"
68
66
  - !ruby/object:Gem::Version
69
67
  version: '0.1'
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 0.1.0
70
71
  type: :runtime
71
72
  prerelease: false
72
73
  version_requirements: !ruby/object:Gem::Requirement
73
74
  requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: 0.1.0
77
75
  - - "~>"
78
76
  - !ruby/object:Gem::Version
79
77
  version: '0.1'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 0.1.0
80
81
  - !ruby/object:Gem::Dependency
81
82
  name: ruby-mp3info
82
83
  requirement: !ruby/object:Gem::Requirement
@@ -118,7 +119,7 @@ dependencies:
118
119
  - !ruby/object:Gem::Version
119
120
  version: 0.7.2
120
121
  description:
121
- email: james@jamesrobertson.eu
122
+ email: digital.robertson@gmail.com
122
123
  executables: []
123
124
  extensions: []
124
125
  extra_rdoc_files: []
@@ -143,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
144
  - !ruby/object:Gem::Version
144
145
  version: '0'
145
146
  requirements: []
146
- rubygems_version: 3.0.3
147
+ rubygems_version: 3.3.7
147
148
  signing_key:
148
149
  specification_version: 4
149
150
  summary: A wrapper for various command-line audio utilities under GNU/Linux.
metadata.gz.sig CHANGED
Binary file