audio_hero 0.1.8 → 0.1.9
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/README.md +15 -0
- data/lib/audio_hero.rb +30 -2
- data/lib/audio_hero/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b233b127c019ea8183e0e87cc3ad04b9674a1013
|
4
|
+
data.tar.gz: 1059b99f40c8fae4e5c83c097d55c6c71a181bd6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37e40ed1a23a192aad0cb960ad3390b5d7f4d2bab212eed1fafa0e0c13b17c390510625ecf92ccde4a50b5b296e9c5b9baf508322df9c99327d0e4cb26e4b8e2
|
7
|
+
data.tar.gz: 4d6d8ac1b6354b54a34a92fff3c49a8357294f64bbb8e54664073a59a9dc7cc7e7a8e1e97e08568ddb73e1c7efe0fdfd20c6590557f8a4a71f5fcc6f5f889362
|
data/README.md
CHANGED
@@ -93,6 +93,21 @@ file = AudioHero::Sox.new(file_array).concat({output_format: "mp3")
|
|
93
93
|
Options(hash):
|
94
94
|
* output_format (default to "wav")
|
95
95
|
|
96
|
+
###Trim
|
97
|
+
Cuts portions out of the audio. Any number of positions may be given.
|
98
|
+
Usage: file = AudioHero::Sox.new(file).trim({trim_positions: "=10 =20 =30 =40"})
|
99
|
+
See sox trim effect for more examples
|
100
|
+
Default output to 16bit 16 sample rate Wave audio
|
101
|
+
|
102
|
+
```ruby
|
103
|
+
file = AudioHero::Sox.new(file).trim({trim_positions: "=10 =20 =30 =40", gc: "true"})
|
104
|
+
```
|
105
|
+
Options(hash):
|
106
|
+
* trim_positions ("=10 =20 =30 =40" means retrieving audio from 10s-20s and from 30s-40s)
|
107
|
+
* input_format (default to "mp3")
|
108
|
+
* output_format (default to "wav")
|
109
|
+
* output_options (default to "-c 1 -b 16 -r 16k", single channel, 16hz, 16bits)
|
110
|
+
* gc (no default, set to "true" to auto close! input file)
|
96
111
|
|
97
112
|
###Stats
|
98
113
|
Get statistics report on audio file (support up to 2 channels).
|
data/lib/audio_hero.rb
CHANGED
@@ -22,7 +22,7 @@ module AudioHero
|
|
22
22
|
channel = options[:channel]
|
23
23
|
input_format = options[:input_format] ? options[:input_format] : "mp3"
|
24
24
|
output_format = options[:output_format] ? options[:output_format] : "wav"
|
25
|
-
output_options = options[:
|
25
|
+
output_options = options[:output_options] ? options[:output_options] : "-c 1 -b 16 -r 16k"
|
26
26
|
case channel
|
27
27
|
when "left"
|
28
28
|
channel = "remix 1"
|
@@ -80,7 +80,6 @@ module AudioHero
|
|
80
80
|
# Returns an array of the full path of the splitted files, can split two input files at one go using {file2: file} option.
|
81
81
|
# Remember its good practice to remove the temp directory after use.
|
82
82
|
# FileUtils.remove_entry tempdir
|
83
|
-
|
84
83
|
def split_by_silence(options={})
|
85
84
|
above_period_duration = options[:above_period_duration] || "0.5"
|
86
85
|
above_period_threshold = options[:above_period_threshold] || "0.05"
|
@@ -129,6 +128,35 @@ module AudioHero
|
|
129
128
|
dst
|
130
129
|
end
|
131
130
|
|
131
|
+
# Cuts portions out of the audio. Any number of positions may be given
|
132
|
+
# Usage: file = AudioHero::Sox.new(file).trim({trim_positions: "=10 =20 =30 =40"})
|
133
|
+
# trim_positions "=10 =20 =30 =40" means retrieving audio from 10s-20s and from 30s-40s, and joining them into one file.
|
134
|
+
# See sox trim effect for more examples
|
135
|
+
# Default output to 16bit 16 sample rate Wave audio
|
136
|
+
def trim(options={})
|
137
|
+
raise AudioHeroError, "Trim parameters not given" unless options[:trim_positions]
|
138
|
+
input_format = options[:input_format] ? options[:input_format] : "mp3"
|
139
|
+
output_format = options[:output_format] ? options[:output_format] : "wav" # Default to wav
|
140
|
+
output_options = options[:output_options] ? options[:output_options] : "-c 1 -b 16 -r 16k"
|
141
|
+
trim_positions = options[:trim_positions]
|
142
|
+
effect = "trim #{trim_positions}"
|
143
|
+
dst = Tempfile.new(["out", ".#{output_format}"])
|
144
|
+
begin
|
145
|
+
parameters = []
|
146
|
+
parameters << "-t #{input_format}"
|
147
|
+
parameters << ":source"
|
148
|
+
parameters << output_options if output_options
|
149
|
+
parameters << ":dest"
|
150
|
+
parameters << effect
|
151
|
+
parameters = parameters.flatten.compact.join(" ").strip.squeeze(" ")
|
152
|
+
success = Cocaine::CommandLine.new("sox", parameters).run(:source => get_path(@file), :dest => get_path(dst))
|
153
|
+
rescue => e
|
154
|
+
raise AudioHeroError, "There was an error trimming #{@basename} using positions #{trim_positions}"
|
155
|
+
end
|
156
|
+
garbage_collect(@file) if options[:gc] == "true"
|
157
|
+
dst
|
158
|
+
end
|
159
|
+
|
132
160
|
def stats(options={})
|
133
161
|
input_format = options[:input_format] ? options[:input_format] : "mp3"
|
134
162
|
begin
|
data/lib/audio_hero/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: audio_hero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- litenup
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|