* click track import working

This commit is contained in:
Seth Call 2015-11-30 08:03:38 -06:00
parent d6d3ef4299
commit 32d32b3393
1 changed files with 63 additions and 15 deletions

View File

@ -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