* improvements for bpm + silence detection
This commit is contained in:
parent
865e8201e0
commit
04234eef27
|
|
@ -105,7 +105,7 @@ module JamRuby
|
|||
|
||||
if JamTrackImporter.marks_approved.has_key?(jam_track.slug)
|
||||
@@log.info("Found track in mark approved list. skipping")
|
||||
finish('success', 'mark created')
|
||||
finish('success', 'mark@jamkazam.com created')
|
||||
return
|
||||
end
|
||||
|
||||
|
|
@ -148,18 +148,29 @@ module JamRuby
|
|||
|
||||
|
||||
if click_track
|
||||
start_time = determine_start_time(click_track_file, tmp_dir, click_track[:original_filename])
|
||||
start_time = determine_start_time(click_track_file, tmp_dir, click_track[:original_filename], false)
|
||||
else
|
||||
start_time = determine_start_time(master_track_file, tmp_dir, master_track[:url])
|
||||
start_time = determine_start_time(master_track_file, tmp_dir, master_track[:url], false)
|
||||
end
|
||||
|
||||
trimmed_for_beat_analysis = File.join(tmp_dir, 'trimmed_for_beat.wav')
|
||||
# trim out the 1st 5 second after non-silence
|
||||
trim_cmd = "sox #{Shellwords.escape(click_track_file)} #{Shellwords.escape(trimmed_for_beat_analysis)} trim #{start_time} #{start_time + 5}"
|
||||
cmd = "bash -c #{Shellwords.escape(trim_cmd)}"
|
||||
@@log.debug("executing cmd #{cmd}")
|
||||
output=`#{cmd}`
|
||||
result_code = $?.to_i
|
||||
|
||||
if result_code != 0
|
||||
finish("trim-fail", "failed to run trim click track: #{output}")
|
||||
return
|
||||
end
|
||||
|
||||
# bpm comes from git clone http://www.pogo.org.uk/~mark/bpm-tools.git
|
||||
|
||||
sox="sox #{Shellwords.escape(click_track_file)} -t raw -r 44100 -e float -c 1 - | bpm"
|
||||
sox="sox #{Shellwords.escape(trimmed_for_beat_analysis)} -t raw -r 44100 -e float -c 1 - | bpm -m 25 -x 250"
|
||||
cmd = "bash -c #{Shellwords.escape(sox)}"
|
||||
@@log.debug("executing cmd #{cmd}")
|
||||
output=`#{cmd}`
|
||||
|
||||
result_code = $?.to_i
|
||||
|
||||
if result_code == 0
|
||||
|
|
@ -192,8 +203,8 @@ module JamRuby
|
|||
end
|
||||
|
||||
|
||||
def determine_start_time(audio_file, tmp_dir, original_filename)
|
||||
burp_gaps = ['0.3', '0.2', '0.1', '0.05']
|
||||
def determine_start_time(audio_file, tmp_dir, original_filename, protect_short = true)
|
||||
burp_gaps = ['0.3', '0.2', '0.1', '0.05', '0.025']
|
||||
|
||||
out_wav = File.join(tmp_dir, 'stripped.wav')
|
||||
total_time_command = "soxi -D \"#{audio_file}\""
|
||||
|
|
|
|||
Loading…
Reference in New Issue