audio_hero 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +68 -5
- data/lib/audio_hero/version.rb +1 -1
- data/lib/audio_hero.rb +5 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3648b9480f862ec47b982e8883f1d8e329ee9a3
|
4
|
+
data.tar.gz: 8b1228ca980943bb77a1e80c631271c73e7086e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02d4bbb19b2754a205459014bfeb62ce02e6709f672f0a23762d3a445ebe1ad30a27f8061fb764bf169065ff670599c28cd1bee14278d45e13fea2be5ae03287
|
7
|
+
data.tar.gz: 4cd6164c3d846ac9f12bc0edb7c9caa9e3cfa2821b2406fb83bb0a4ed31dce0944d50814f28a7e911c1ec1fa7fe11d516fe04299184844be2764c5aabc30dfa6
|
data/README.md
CHANGED
@@ -1,11 +1,15 @@
|
|
1
1
|
# AudioHero
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
This is a ruby wrapper for [sox](http://sox.sourceforge.net/), the swiss army knife for audio.
|
4
|
+
I've implemented sensible defaults for basic operations so converting mp3 to wav is as simple as:
|
5
|
+
```ruby
|
6
|
+
AudioHero::Sox.new(mp3file).convert
|
7
|
+
```
|
6
8
|
|
7
9
|
## Installation
|
8
10
|
|
11
|
+
Requirements: Obviously, make sure your system has sox installed already.
|
12
|
+
|
9
13
|
Add this line to your application's Gemfile:
|
10
14
|
|
11
15
|
```ruby
|
@@ -22,7 +26,66 @@ Or install it yourself as:
|
|
22
26
|
|
23
27
|
## Usage
|
24
28
|
|
25
|
-
|
29
|
+
###Convert
|
30
|
+
|
31
|
+
Return the converted audio as ruby temp file object
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
file = open("url/or/path/to/audio/file")
|
35
|
+
|
36
|
+
new_file = AudioHero::Sox.new(file).convert({output_options: "-c 1", output_format: "mp3", channel: "left"})
|
37
|
+
# Optional: Close the file after you are done for garbage collection.
|
38
|
+
new_file.close!
|
39
|
+
|
40
|
+
# With no options hash it will runs this command by default: `sox -t input.mp3 -c 1 -b 16 -r 16k out.wav`
|
41
|
+
AudioHero::Sox.new(file).convert
|
42
|
+
```
|
43
|
+
Options(hash):
|
44
|
+
* channel (set "left", "right", or leave blank for stereo)
|
45
|
+
* input_format (default to "mp3")
|
46
|
+
* output_format (default to "wav")
|
47
|
+
* output_options (default to "-c 1 -b 16 -r 16k", single channel, 16hz, 16bits)
|
48
|
+
* gc (no default, set to "true" to auto close! input file)
|
49
|
+
|
50
|
+
###Remove Silence
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
file = AudioHero::Sox.new(file).remove_silence({input_format: "wav", gc: "true"})
|
54
|
+
```
|
55
|
+
Options(hash):
|
56
|
+
* silence_duration (default to 0.1 seconds)
|
57
|
+
* silence_level (default to 0.03%)
|
58
|
+
* input_format (default to "mp3")
|
59
|
+
* output_format (default to "wav")
|
60
|
+
* gc (no default, set to "true" to auto close! input file)
|
61
|
+
|
62
|
+
###Split into multiple files by silence
|
63
|
+
|
64
|
+
```ruby
|
65
|
+
file_array = AudioHero::Sox.new(file).split_by_silence({input_format: "wav", gc: "true"})
|
66
|
+
# file_array == ["path/to/out001.wav", "path/to/out002.wav"]
|
67
|
+
```
|
68
|
+
Options(hash):
|
69
|
+
* silence_duration (default to 0.1 seconds)
|
70
|
+
* silence_level (default to 0.03%)
|
71
|
+
* input_format (default to "mp3")
|
72
|
+
* output_format (default to "wav")
|
73
|
+
* file2 (path to second audio file, I use this to split both channels of an audio file at one go, require a modified sox that will not overwrite file1's output. Eg. my modified sox output [milliseconds].wav instead of 001.wav)
|
74
|
+
* gc (no default, set to "true" to auto close! input file)
|
75
|
+
|
76
|
+
###Custom Command
|
77
|
+
|
78
|
+
Run any sox command with this method.
|
79
|
+
```ruby
|
80
|
+
file = AudioHero::Sox.new(file).command({global: "-V3", input_option: "-t mp3", output_option: "-c 1", effect: "remix 0 1", gc: "true"})
|
81
|
+
# Command generated: `sox -V3 -t mp3 input.mp3 -c 1 output.wav remix 0 1`
|
82
|
+
```
|
83
|
+
Options(hash):
|
84
|
+
* global (sox global options, inserted right after `sox`)
|
85
|
+
* input_options (sox input options, inserted before input file)
|
86
|
+
* output_options (sox output options, inserted before output file)
|
87
|
+
* effect (sox effect, inserted after output file)
|
88
|
+
* gc (no default, set to "true" to auto close! input file)
|
26
89
|
|
27
90
|
## Development
|
28
91
|
|
@@ -32,7 +95,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
32
95
|
|
33
96
|
## Contributing
|
34
97
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
98
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/litenup/audio_hero. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
|
36
99
|
|
37
100
|
|
38
101
|
## License
|
data/lib/audio_hero/version.rb
CHANGED
data/lib/audio_hero.rb
CHANGED
@@ -45,6 +45,7 @@ module AudioHero
|
|
45
45
|
rescue => e
|
46
46
|
raise AudioHeroError, "There was an error converting #{@basename} to #{output_format}"
|
47
47
|
end
|
48
|
+
src.close! if options[:gc] == "true"
|
48
49
|
dst
|
49
50
|
end
|
50
51
|
|
@@ -71,6 +72,7 @@ module AudioHero
|
|
71
72
|
rescue => e
|
72
73
|
raise AudioHeroError, "There was an error converting #{@basename} to #{output_format}"
|
73
74
|
end
|
75
|
+
src.close! if options[:gc] == "true"
|
74
76
|
dst
|
75
77
|
end
|
76
78
|
|
@@ -105,6 +107,7 @@ module AudioHero
|
|
105
107
|
rescue => e
|
106
108
|
raise AudioHeroError, "There was an error splitting #{@basename}"
|
107
109
|
end
|
110
|
+
src.close! && src2.close! if options[:gc] == "true"
|
108
111
|
Dir["#{dir}/**/*#{format}"]
|
109
112
|
end
|
110
113
|
|
@@ -133,7 +136,8 @@ module AudioHero
|
|
133
136
|
rescue => e
|
134
137
|
raise AudioHeroError, "There was an error excuting command: #{command}"
|
135
138
|
end
|
136
|
-
|
139
|
+
src.close! if options[:gc] == "true"
|
140
|
+
dst
|
137
141
|
end
|
138
142
|
|
139
143
|
end
|