Module: DTAS::Source::Mp3gain
Overview
:nodoc:
Constant Summary
Constants included from Process
Instance Method Summary collapse
-
#__mp3gain_peak(str) ⇒ Object
we use dBFS = 1.0 as scale (not 32768).
-
#mp3gain_comments ⇒ Object
massage mp3gain(1) output.
Methods included from Process
#dtas_spawn, #env_expand, #qx, reaper
Methods included from XS
Instance Method Details
#__mp3gain_peak(str) ⇒ Object
we use dBFS = 1.0 as scale (not 32768)
8 9 10 |
# File 'lib/dtas/source/mp3gain.rb', line 8 def __mp3gain_peak(str) sprintf("%0.8g", str.to_f / 32768.0) end |
#mp3gain_comments ⇒ Object
massage mp3gain(1) output
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/dtas/source/mp3gain.rb', line 13 def mp3gain_comments tmp = {} case @infile when String @infile =~ /\.mp[g23]\z/in or return qx(%W(mp3gain -s c #@infile)).split(/\n/).each do |line| case line when /^Recommended "(Track|Album)" dB change:\s*(\S+)/ tmp["REPLAYGAIN_#{$1.upcase}_GAIN"] = $2 when /^Max PCM sample at current gain: (\S+)/ tmp["REPLAYGAIN_TRACK_PEAK"] = __mp3gain_peak($1) when /^Max Album PCM sample at current gain: (\S+)/ tmp["REPLAYGAIN_ALBUM_PEAK"] = __mp3gain_peak($1) end end tmp else raise TypeError, "unsupported type: #{@infile.inspect}" end rescue => e $DEBUG and warn("mp3gain(#{@infile.inspect}) failed: #{e.} (#{e.class})") end |