From 32d32b3393c73c1d9cda5d0920d9c5df351d3c9c Mon Sep 17 00:00:00 2001 From: Seth Call Date: Mon, 30 Nov 2015 08:03:38 -0600 Subject: [PATCH] * click track import working --- ruby/lib/jam_ruby/jam_track_importer.rb | 78 ++++++++++++++++++++----- 1 file changed, 63 insertions(+), 15 deletions(-) diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 5d0e43d46..429f00cc8 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -45,9 +45,8 @@ module JamRuby return end - click_track_file = File.join(tmp_dir, File.basename(click_track_file[:original_filename])) - JamTrackImporter.song_storage_manager.download(click_track_file[:original_filename], click_track_file) - + #wav_file = File.join(tmp_dir, File.basename(click_track_file[:original_filename])) + #JamTrackImporter.song_storage_manager.download(click_track_file[:original_filename], wav_file) JamTrack.transaction do click_track = jam_track.click_track @@ -55,17 +54,21 @@ module JamRuby if click_track.nil? click_track = JamTrackTrack.new #track.original_filename = wav_file - #track.original_audio_s3_path = wav_file - track.track_type = 'Click' - track.part = 'Click' - track.instrument_id = 'computer' - track.jam_track = jam_track - if !track.save - finish("jam_track_click", "unable to create: #{track.errors}") + click_track.original_audio_s3_path = click_track_file[:original_filename] + click_track.track_type = 'Click' + click_track.part = 'Click' + click_track.instrument_id = 'computer' + click_track.jam_track = jam_track + click_track.position = 10000 + if !click_track.save + @@log.error("unable to create jamtrack click track #{click_track.errors.inspect}") + finish("jam_track_click", "unable to create: #{click_track.errors.inspect}") + return false end end # with the click track in hand, flesh out the details + synchronize_audio_track(jam_track, tmp_dir, false, click_track) end end end @@ -1066,6 +1069,10 @@ module JamRuby if track.track_type == 'Master' instrument_weight = 1000 end + + if track.track_type == 'Click' + instrument_weight = 10000 + end end @@ -1308,11 +1315,8 @@ module JamRuby begin Dir.mktmpdir do |tmp_dir| - generate_mp3_aac_stem(jam_track, tmp_dir, skip_audio_upload) jam_track.jam_track_tracks.each do |track| - - synchronized_audio_track(jam_track, tmp_dir, skip_audio_upload, track) - + synchronize_audio_track(jam_track, tmp_dir, skip_audio_upload, track) end end rescue Exception => e @@ -1330,9 +1334,17 @@ module JamRuby ogg_44100_filename = File.basename(basename, ".wav") + "-44100.ogg" ogg_48000_filename = File.basename(basename, ".wav") + "-48000.ogg" + + # make a 44100 version, and a 48000 version + mp3_48000_filename = File.basename(basename, ".wav") + "-48000.mp3" + aac_48000_filename = File.basename(basename, ".wav") + "-48000.aac" + ogg_44100_s3_path = track.filename(ogg_44100_filename) ogg_48000_s3_path = track.filename(ogg_48000_filename) + mp3_48000_s3_path = track.filename(mp3_48000_filename) + aac_48000_s3_path = track.filename(aac_48000_filename) + track.skip_uploader = true if skip_audio_upload @@ -1344,6 +1356,14 @@ module JamRuby track["md5_48"] = 'md5' track["length_48"] = 1 + track["url_mp3_48"] = mp3_48000_filename + track["md5_mp3_48"] = 'md5' + track["length_mp3_48"] = 1 + + track["url_aac_48"] = aac_48000_filename + track["md5_aac_48"] = 'md5' + track["length_aac_48"] = 1 + # we can't fake the preview as easily because we don't know the MD5 of the current item #track["preview_md5"] = 'md5' #track["preview_mp3_md5"] = 'md5' @@ -1394,6 +1414,33 @@ module JamRuby track["md5_48"] = ::Digest::MD5.file(ogg_48000).hexdigest track["length_48"] = File.new(ogg_48000).size + # now create mp3 and aac files + mp3_48000 = File.join(tmp_dir, File.basename(basename, ".wav") + "-48000.mp3") + aac_48000 = File.join(tmp_dir, File.basename(basename, ".wav") + "-48000.aac") + + `ffmpeg -i "#{wav_file}" -ar 48000 -ab 192k "#{mp3_48000}"` + + `ffmpeg -i "#{wav_file}" -c:a libfdk_aac -b:a 192k "#{aac_48000}"` + + # upload the new ogg files to s3 + @@log.debug("uploading mp3 48000 to #{mp3_48000_s3_path}") + + jamkazam_s3_manager.upload(mp3_48000_s3_path, mp3_48000) + + @@log.debug("uploading aac 48000 to #{aac_48000_s3_path}") + + jamkazam_s3_manager.upload(aac_48000_s3_path, aac_48000) + + mp3_48000_digest = ::Digest::MD5.file(mp3_48000) + # and finally update the JamTrackTrack with the new info + track["url_mp3_48"] = mp3_48000_s3_path + track["md5_mp3_48"] = mp3_48000_digest.hexdigest + track["length_mp3_48"] = File.new(mp3_48000).size + + track["url_aac_48"] = aac_48000_s3_path + track["md5_aac_48"] = ::Digest::MD5.file(aac_48000).hexdigest + track["length_aac_48"] = File.new(aac_48000).size + synchronize_duration(jam_track, ogg_44100) jam_track.save! @@ -1404,7 +1451,7 @@ module JamRuby if !preview_succeeded return false end - elsif track.track_type == 'Track' + elsif track.track_type == 'Track' || track.track_type == 'Click' synchronize_track_preview(track, tmp_dir, ogg_44100) end @@ -2095,6 +2142,7 @@ module JamRuby importers = [] JamTrack.all.each do |jam_track| + #jam_track = JamTrack.find('126') importers << import_click_track(jam_track) end