Merge branch 'develop' into feature/jam_track_ui_2
This commit is contained in:
commit
3f994e3993
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
DROP INDEX jam_track_tracks_position_uniqkey;
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue