diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 36b1a8655..91ec1e209 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -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}\""