scissor 0.1.1 → 0.1.2

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 (3) hide show
  1. data/Rakefile +1 -1
  2. data/lib/scissor/writer.rb +16 -17
  3. metadata +2 -2
data/Rakefile CHANGED
@@ -18,7 +18,7 @@ DESCRIPTION = "utility to chop sound files"
18
18
  RUBYFORGE_PROJECT = "scissor"
19
19
  HOMEPATH = "http://github.com/youpy/scissor"
20
20
  BIN_FILES = %w( )
21
- VERS = "0.1.1"
21
+ VERS = "0.1.2"
22
22
 
23
23
  REV = File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil
24
24
  CLEAN.include ['**/.*.sw?', '*.gem', '.config']
@@ -37,14 +37,10 @@ module Scissor
37
37
  cmd = %w/ecasound/
38
38
  end
39
39
 
40
- if fragment_filename.extname.downcase == '.wav'
41
- fragment_outfile = fragment_filename
42
- else
43
- fragment_outfile = tmpdir + (Digest::MD5.hexdigest(fragment_filename.to_s) + '.wav')
44
- end
40
+ fragment_outfile = tmpdir + (Digest::MD5.hexdigest(fragment_filename.to_s) + '.wav')
45
41
 
46
42
  unless fragment_outfile.exist?
47
- run_command("ffmpeg -i \"#{fragment_filename}\" \"#{fragment_outfile}\"")
43
+ run_command("ffmpeg -i \"#{fragment_filename}\" -ar 44100 \"#{fragment_outfile}\"")
48
44
  end
49
45
 
50
46
  cmd << "-a:#{index} -o:#{outfile} -y:#{position}"
@@ -52,8 +48,8 @@ module Scissor
52
48
  if fragment.stretched? && fragment.pitch.to_f != 100.0
53
49
  rubberband_out = tmpdir + (Digest::MD5.hexdigest(fragment_filename.to_s) + "rubberband_#{index}.wav")
54
50
  rubberband_temp = tmpdir + "_rubberband.wav"
55
-
56
- run_command("ecasound " +
51
+
52
+ run_command("ecasound " +
57
53
  "-i:" +
58
54
  (fragment.reversed? ? 'reverse,' : '') +
59
55
  "select,#{fragment.start},#{fragment.original_duration},\"#{fragment_outfile}\" -o:#{rubberband_temp} "
@@ -62,7 +58,7 @@ module Scissor
62
58
 
63
59
  cmd << "-i:\"#{rubberband_out}\""
64
60
  else
65
- cmd <<
61
+ cmd <<
66
62
  "-i:" +
67
63
  (fragment.reversed? ? 'reverse,' : '') +
68
64
  "select,#{fragment.start},#{fragment.original_duration},\"#{fragment_outfile}\" " +
@@ -119,11 +115,7 @@ module Scissor
119
115
 
120
116
  mix_files(tmpfiles, final_tmpfile = tmpdir + 'tmp.wav')
121
117
 
122
- if filename.extname == '.wav'
123
- File.rename(final_tmpfile, full_filename)
124
- else
125
- run_command("ffmpeg -ab #{options[:bitrate]} -i \"#{final_tmpfile}\" \"#{full_filename}\"")
126
- end
118
+ run_command("ffmpeg -ab #{options[:bitrate]} -i \"#{final_tmpfile}\" -ar 44100 \"#{full_filename}\"")
127
119
  end
128
120
  end
129
121
 
@@ -137,10 +129,17 @@ module Scissor
137
129
  logger.debug("run_command: #{cmd}")
138
130
 
139
131
  result, error = '', ''
140
- status = Open4.spawn cmd, 'stdout' => result, 'stderr' => error
141
- logger.debug(error)
142
132
 
143
- if status.exitstatus != 0
133
+ begin
134
+ status = Open4.spawn cmd, 'stdout' => result, 'stderr' => error
135
+ rescue Open4::SpawnError => e
136
+ raise CommandFailed.new(e.cmd)
137
+ ensure
138
+ logger.debug(result)
139
+ logger.debug(error)
140
+ end
141
+
142
+ if status && status.exitstatus != 0
144
143
  raise CommandFailed.new(cmd)
145
144
  end
146
145
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 1
9
- version: 0.1.1
8
+ - 2
9
+ version: 0.1.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - youpy