From 03f5407727bf283084ce48257076029c97283003 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 12 Aug 2015 09:36:42 -0500 Subject: [PATCH] * deal with duplicate instrument/parts better than failing --- ruby/lib/jam_ruby/jam_track_importer.rb | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/ruby/lib/jam_ruby/jam_track_importer.rb b/ruby/lib/jam_ruby/jam_track_importer.rb index 8b34c99a6..9fcafab35 100644 --- a/ruby/lib/jam_ruby/jam_track_importer.rb +++ b/ruby/lib/jam_ruby/jam_track_importer.rb @@ -774,6 +774,36 @@ module JamRuby instrument_weight end + def deduplicate_parts(tracks) + unique_instruments = {} + + tracks.each do |track| + + found = unique_instruments[[track.instrument_id, track.part]] + if !found + found = [] + end + + found << track + end + + unique_instruments.each do |key, value| + if value.length > 1 + count = 0 + + value.each do |track| + if track.part.nil? + track.part = (count + 1).to_s + else + track.part = "#{track.part} #{count + 1}" + end + end + + count += 1 + end + end + end + def sort_tracks(tracks) sorted_tracks = tracks.sort do |a, b| @@ -914,6 +944,8 @@ module JamRuby @@log.info("sorting tracks") tracks = sort_tracks(tracks) + deduplicate_parts(tracks) + jam_track.jam_track_tracks = tracks jam_track.jam_track_files = addt_files