Merge branch 'develop' into feature/jam_track_ui_2

This commit is contained in:
Steven Miers 2015-03-26 11:59:49 -05:00
commit 3f994e3993
7 changed files with 49 additions and 8 deletions

View File

@ -24,6 +24,7 @@ ActiveAdmin.register JamRuby::JamTrack, :as => 'JamTracks' do
column :original_artist
column :name
column :flags do |jam_track| jam_track.duplicate_positions? ? 'DUP POSITIONS' : '' end
column :status
column :master_track do |jam_track| jam_track.master_track.nil? ? 'None' : (link_to "Download", jam_track.master_track.url_by_sample_rate(44)) end
column :licensor

View File

@ -68,7 +68,7 @@ class JamRuby::JamTrackTrack
s3_manager.download(self.url_by_sample_rate(44), input)
command = "sox \"#{input}\" \"#{output}\" trim #{start} #{stop}"
command = "sox \"#{input}\" \"#{output}\" trim #{sprintf("%.3f", start)} =#{sprintf("%.3f", stop)}"
@@log.debug("trimming using: " + command)

View File

@ -268,4 +268,5 @@ jam_track_right_admin_purchase.sql
jam_track_playable_plays.sql
shopping_cart_anonymous.sql
user_reuse_card_and_reedem.sql
jam_track_id_to_varchar.sql
jam_track_id_to_varchar.sql
drop_position_unique_jam_track.sql

View File

@ -0,0 +1 @@
DROP INDEX jam_track_tracks_position_uniqkey;

View File

@ -44,7 +44,7 @@ module JamRuby
belongs_to :genre, class_name: "JamRuby::Genre"
belongs_to :licensor , class_name: 'JamRuby::JamTrackLicensor', foreign_key: 'licensor_id'
has_many :jam_track_tracks, :class_name => "JamRuby::JamTrackTrack", order: 'position ASC'
has_many :jam_track_tracks, :class_name => "JamRuby::JamTrackTrack", order: 'position ASC, part ASC, instrument_id ASC'
has_many :jam_track_tap_ins, :class_name => "JamRuby::JamTrackTapIn", order: 'offset_time ASC'
has_many :jam_track_rights, :class_name => "JamRuby::JamTrackRight" #, inverse_of: 'jam_track', :foreign_key => "jam_track_id" # '
@ -63,6 +63,27 @@ module JamRuby
accepts_nested_attributes_for :jam_track_tracks, allow_destroy: true
accepts_nested_attributes_for :jam_track_tap_ins, allow_destroy: true
def duplicate_positions?
counter = {}
jam_track_tracks.each do |track|
count = counter[track.position]
if count.nil?
count = 0
end
puts "count #{count}"
counter[track.position] = count + 1
end
duplicate = false
counter.each do|position, count|
if count > 1
duplicate = true
break
end
end
duplicate
end
class << self
# @return array[artist_name(string)]
def all_artists

View File

@ -23,7 +23,6 @@ module JamRuby
validates :part, length: {maximum: 25}
validates :track_type, inclusion: {in: TRACK_TYPE }
validates :preview_start_time, numericality: {only_integer: true}, length: {in: 1..1000}, :allow_nil => true
validates_uniqueness_of :position, scope: :jam_track_id
validates_uniqueness_of :part, scope: [:jam_track_id, :instrument_id]
# validates :jam_track, presence: true

View File

@ -481,6 +481,12 @@
function checkMetronomeTransition() {
// trust backend over server
if(sessionModel.jamTracks() !== null) {
// ignore all metronome events when jamtracks are open, because backend opens metronome mixer to play jamtrack tap-ins
logger.debug("ignore checkMetronomeTransition because JamTrack is open")
return;
}
var metronomeMasterMixers = getMetronomeMasterMixers();
if (metronomeMixer == null && metronomeMasterMixers.length > 0) {
@ -1035,7 +1041,7 @@
if(jamTrackMixers.length > 0) {
renderJamTracks(jamTrackMixers);
}
if(metronomeTrackMixers.length > 0) {
if(metronomeTrackMixers.length > 0 && sessionModel.jamTracks() === null) {
renderMetronomeTracks(metronomeTrackMixers);
}
if(adhocTrackMixers.length > 0) {
@ -2812,13 +2818,25 @@
}
function onChangePlayPosition(e, data){
logger.debug("calling jamClient.SessionTrackSeekMs(" + data.positionMs + ")");
var seek = data.positionMs;
if(data.playbackMonitorMode == context.JK.PLAYBACK_MONITOR_MODE.JAMTRACK) {
context.jamClient.SessionJamTrackSeekMs(data.positionMs);
// if positionMs == 0, then seek it back to whatever the earliest play start is to catch all the prelude
if(seek == 0) {
var duration = context.jamClient.SessionGetJamTracksPlayDurationMs();
seek = duration.start;
}
}
logger.debug("calling jamClient.SessionTrackSeekMs(" + seek + ")");
if(data.playbackMonitorMode == context.JK.PLAYBACK_MONITOR_MODE.JAMTRACK) {
context.jamClient.SessionJamTrackSeekMs(seek);
}
else {
context.jamClient.SessionTrackSeekMs(data.positionMs);
context.jamClient.SessionTrackSeekMs(seek);
}
}