try: from reaper_python import * except ImportError: pass try: from contextlib import contextmanager except ImportError: pass try: import sys except ImportError: pass try: import json except ImportError: pass debug = False class RC: REACHORD="ReaChord1" Moods = ('Formula...',) #create tuple with one entry InKey = ('C','D','E','F','G','A#','C#','D#','F#','G#','A','B') Scales = ('Major','Minor') ChordAttack = ('','None (default)','Fast','Slow') Highlight = ('Highlight...','None (default)','Melody','Chords') entriesStructures = ('Select structure...',) entriesChordTypes = ('',) MelodyType = ('Circle of fifths','Markov chain','Primes') ChordInversions = ('','All (default)','Root + 1st','Root + 2nd','1st only','2nd only','Root only') bassPick = ('','Whole','Quarter','Half') bassOct = ('','One octave','Two octaves') allowedChars = "VC" pStructureChars = 1 pStructureName = 0 Structures = [ ['Verse', 'V' ], ['Verse-Chorus', 'VC' ], ['Verse-Verse-Chorus','VVC' ], ['VV CC', 'VVCC' ], ['VC VC', 'VCVC' ], ['VV CV', 'VVCV' ], ['VV CC VV', 'VVCCVV' ], ['VV CV CV', 'VVCVCV' ], ['VC VC VV C', 'VCVCVVC' ], ['VC VC V CC', 'VCVCVCC' ] ] chordTypes = [ ['7th', '7'], ['9th', '9'], ['11th','11'], ['12th','12'], ['13th','13'] ] circleFifthsInnerTxt = [ # Am Bm Cm Dm Em Fm Gm ['F', 'C', 'G' ],['G', 'D','A'],['G#','D#','A#'],['A#','F','C' ],['C', 'G', 'D' ],['C#','G#','D#'],['D#','A#','F'] ] circleFifthsOuterTxt = [ # A B C D E F G ['Bm', 'F#m','C#m'],['C#m','G#m','D#m'],['Dm', 'Am', 'Em' ],['Em', 'Bm', 'F#m'],['F#m','C#m','G#m'],['Gm', 'Dm', 'Am' ],['Am', 'Em', 'Bm' ] ] # Melody ChainPitch = [60,61,62,63,64,65,66,67,68,69,70,71] # popular melody progressions. # C C# D D# E F F# G G# A A# B #--------------------------------- MarkovChain = [ [1,11,2,9,3,7,10,5,12,6,8,4], #0 C [3,4,1,5,2,6,7,8,9,10,11,12], #1 C# [1,9,3,8,2,5,11,4,12,7,10,6], #2 D [4,12,1,3,11,2,10,5,9,8,7,6], #3 D# [5,10,1,12,2,4,7,3,11,6,9,8], #4 E [7,12,4,8,1,3,11,2,10,5,9,6], #5 F [7,12,5,11,4,6,2,1,10,3,9,8], #6 F# [4,12,6,10,3,2,8,1,11,5,9,7], #7 G [12,11,10,9,8,2,7,1,6,3,5,4], #8 G# [5,12,6,11,7,4,9,1,10,2,8,3], #9 A [4,12,6,10,5,7,11,2,9,3,1,8], #10 A# [1,12,3,11,7,6,9,5,10,2,8,4] #11 B ] PrimeChain = [ [2,3,5,7,11,4,8,1,5,2,4,1], #0 C [2,3,5,7,11,4,8,1,5,2,4,1], #1 C# [2,3,5,7,11,4,8,1,5,2,4,1], #2 D [2,3,5,7,11,4,8,1,5,2,4,1], #3 D# [2,3,5,7,11,4,8,1,5,2,4,1], #4 E [2,3,5,7,11,4,8,1,5,2,4,1], #5 F [2,3,5,7,11,4,8,1,5,2,4,1], #6 F# [2,3,5,7,11,4,8,1,5,2,4,1], #7 G [2,3,5,7,11,4,8,1,5,2,4,1], #8 G# [2,3,5,7,11,4,8,1,5,2,4,1], #9 A [2,3,5,7,11,4,8,1,5,2,4,1], #10 A# [2,3,5,7,11,4,8,1,5,2,4,1] #11 B ] # This is how we map the drumkit. # The value is the midi pitch. # The index is the translation from the canvas indices. # If the canvas order of indices change, we need to reorder each item here, from top to bottom. # To change mapping, only edit the value, !not the indice order! generalMIDIMap = [ [41], # Floor Tom 2 [43], # Floor Tom 1 [55], # Splash cymbal [51], # Ride Cymbal [42], # Hi-Hat Closed [46], # Hi-Hat Open [38], # Snare Drum [36] # Kick Drum ] patternList = ('Select pattern or draw below...') # change when you add a new drum pattern below, because it needs a name... # !!! This is the default list. All the additional drumpatterns are loaded by the drum module from a JSON file: drumpatterns.json. DrumPatterns = [] pProgName = 4 #5th position progressions = [ [6, 4, 1, 5, 'Alternative' ], ### now we can add progressions to this too [4, 4, 1, 5, 'Catchy' ], [1, 1, 1, 1, 'Didgeridoo' ], [1, 6, 4, 5, 'Dreadful' ], [1, 6, 2, 5, 'Dreadful II' ], [1, 6, 2, 4, 'Endless' ], [1, 3, 4, 6, 'Energetic' ], [1, 5, 1, 4, 'Folk' ], [1, 6, 1, 4, 'Folk II' ], [6, 5, 4, 3, 'Flamenco' ], [6, 5, 6, 5, 'Flamenco II' ], [1, 4, 3, 6, 'Grunge' ], [2, 5, 1, 6, 'Jazz' ], [1, 4, 5, 4, 'Love' ], [1, 4, 1, 5, 'Memories' ], [1, 5, 6, 4, 'Pop' ], [1, 6, 3, 7, 'Pop II' ], [4, 1, 4, 5, 'Rebellious' ], [1, 4, 5, 5, 'Sad' ], [1, 5, 4, 4, 'Sad II' ], [1, 4, 5, 4, 'Sad III' ], [5, 4, 1, 1, 'Sweet' ], [1, 4, 1, 4, 'Simple' ], [1, 5, 5, 1, 'Simple II' ], [1, 4, 1, 4, 'Wild side' ], [1, 1, 4, 6, 'Wistful' ], [2, 1, 5, 7, 'Moody' ], [2, 3, 5, 7, 'Primes I '], [2, 4, 7, 1, 'Primes II '], [5, 2, 4, 1, 'Primes III '], [1, 2, 3, 5, 'Fibonacci I '], [3, 2, 5, 1, 'Fibonacci II'] ] KeyChartMajor = [ [0, 9,23,13, 2, 4,18,32], #0 A [0,11,13,15, 4, 6,20,34], #1 B [0, 0,14,16, 5, 7,21,35], #2 C [0, 2,16,18, 7, 9,23,25], #3 D [0, 4,18,20, 9,11,13,27], #4 E [0, 5,19,21,10, 0,16,28], #5 F [0, 7,21,23, 0, 2,16,30], #6 G [0,10,12,14, 3, 5,19,33], #7 A# Cm Dm D# F Gm Adim [0, 1,15,17, 6, 8,22,24], #8 C# D#m Fm F# G# A#m Cdim [0, 3,17,19, 8,10,12,26], #9 D# Fm Gm G# A# Cm Ddim [0, 6,20,22,11, 1,15,29], #10 F# G#m A#m B C# D#m Fdim [0, 8,22,12, 1, 3,17,31] #11 G# A#m Cm C# D# Fm Gdim ] circleFifthsInner = [ [[0, 5,19,21,10, 0,16,28],[0, 0,14,16, 5, 7,21,35],[0, 7,21,23, 0, 2,16,30]], # Am [[0, 7,21,23, 0, 2,16,30],[0, 2,16,18, 7, 9,23,25],[0, 9,23,13, 2, 4,18,32]], # Bm [[0, 8,22,12, 1, 3,17,31],[0, 3,17,19, 8,10,12,26],[0,10,12,14, 3, 5,19,33]], # Cm [[0,10,12,14, 3, 5,19,33],[0, 5,19,21,10, 0,16,28],[0, 0,14,16, 5, 7,21,35]], # Dm [[0, 0,14,16, 5, 7,21,35],[0, 7,21,23, 0, 2,16,30],[0, 2,16,18, 7, 9,23,25]], # Em [[0, 1,15,17, 6, 8,22,24],[0, 8,22,12, 1, 3,17,31],[0, 3,17,19, 8,10,12,26]], # Fm [[0, 3,17,19, 8,10,12,26],[0,10,12,14, 3, 5,19,33],[0, 5,19,21,10, 0,16,28]], # Gm [[0, 5,19,21,10, 0,16,28],[0, 0,14,16, 5, 7,21,35],[0, 7,21,23, 0, 2,16,30]], # Am [[0, 8,22,12, 1, 3,17,31],[0, 3,17,19, 8,10,12,26],[0,10,12,14, 3, 5,19,33]], # Cm [[0,10,12,14, 3, 5,19,33],[0, 5,19,21,10, 0,16,28],[0, 0,14,16, 5, 7,21,35]], # Dm [[0, 1,15,17, 6, 8,22,24],[0, 8,22,12, 1, 3,17,31],[0, 3,17,19, 8,10,12,26]], # Fm [[0, 3,17,19, 8,10,12,26],[0,10,12,14, 3, 5,19,33],[0, 5,19,21,10, 0,16,28]], # Gm ] KeyChartMinor = [ [0,21,35, 0,14,16, 5, 7 ], #0 Am [0,23,25, 2,16,18, 7, 9 ], #1 Bm [0,12,26, 3,17,19, 8,10 ], #2 Cm [0,14,28, 5,19,21,23,10,0], #3 Dm [0,16,30, 7,21,23, 0, 2 ], #4 Em [0,17,31, 8,22,12, 1, 3 ], #5 Fm [0,19,33,10,12,14, 3, 5 ], #6 Gm [0,22,24, 1,15,17, 6, 8 ], #7 A#m Cdim C# D#m Fm F# G# [0,13,27, 4,18,20, 9,11 ], #8 C#m D#dim E F#m G#m A B [0,15,29, 6,20,22,11, 1 ], #9 D#m Fdim F# G#m A#m B C# [0,18,32, 9,23,13, 2, 4 ], #10 F#m G#dim A Bm C#m D E [0,20,34,11,13,15, 4, 6 ] #11 G#m A#dim B C#m D#m E F# ] circleFifthsOuter = [ [[0,23,25, 2,16,18, 7, 9 ],[0,18,32, 9,23,13, 2, 4 ],[0,13,27, 4,18,20, 9,11]], # A [[0,13,27, 4,18,20, 9,11 ],[0,20,34,11,13,15, 4, 6 ],[0,15,29, 6,20,22,11, 1]], # B [[0,14,28, 5,19,21,23,10,0],[0,21,35, 0,14,16, 5, 7 ],[0,16,30, 7,21,23, 0, 2]], # C [[0,16,30, 7,21,23, 0, 2 ],[0,23,25, 2,16,18, 7, 9 ],[0,18,32, 9,23,13, 2, 4]], # D [[0,18,32, 9,23,13, 2, 4 ],[0,13,27, 4,18,20, 9,11 ],[0,20,34,11,13,15, 4, 6]], # E [[0,19,33,10,12,14, 3, 5 ],[0,14,28, 5,19,21,23,10,0],[0,21,35, 0,14,16, 5, 7]], # F [[0,21,35, 0,14,16, 5, 7 ],[0,16,30, 7,21,23, 0, 2 ],[0,23,25, 2,16,18, 7, 9]], # G [[0,23,25, 2,16,18, 7, 9 ],[0,18,32, 9,23,13, 2, 4 ],[0,13,27, 4,18,20, 9,11]], # A [[0,14,28, 5,19,21,23,10,0],[0,21,35, 0,14,16, 5, 7 ],[0,16,30, 7,21,23, 0, 2]], # C [[0,16,30, 7,21,23, 0, 2 ],[0,23,25, 2,16,18, 7, 9 ],[0,18,32, 9,23,13, 2, 4]], # D [[0,19,33,10,12,14, 3, 5 ],[0,14,28, 5,19,21,23,10,0],[0,21,35, 0,14,16, 5, 7]], # F [[0,21,35, 0,14,16, 5, 7 ],[0,16,30, 7,21,23, 0, 2 ],[0,23,25, 2,16,18, 7, 9]] # G ] pChordName = 3 #4th position for name (0,1,2,3) Chords = [ [60,64,67, 'C' ], #0 C [61,65,68, 'C#' ], #1 C# [62,66,69, 'D' ], #2 D [63,67,70, 'D#' ], #3 D# [64,68,71, 'E' ], #4 E [65,69,72, 'F' ], #5 F [66,70,73, 'F#' ], #6 F# [67,71,74, 'G' ], #7 G [68,72,75, 'G#' ], #8 G# [69,73,76, 'A' ], #9 A [70,74,77, 'A#' ], #10 A# [71,75,78, 'B' ], #11 B [60,63,67, 'Cm' ], #12 Cmin [61,64,68, 'C#m' ], #13 C#min [62,65,69, 'Dm' ], #14 Dmin [63,66,70, 'D#m' ], #15 D#min [64,67,71, 'Em' ], #16 Emin [65,68,72, 'Fm' ], #17 Fmin [66,69,73, 'F#m' ], #18 F#min [67,70,74, 'Gm' ], #19 Gmin [68,71,75, 'G#m' ], #20 G#min [69,72,76, 'Am' ], #21 Amin [70,73,77, 'A#m' ], #22 A#min [71,74,78, 'Bm' ], #23 Bmin [60,63,66, 'Cdim' ], #24 Cdim [61,64,67, 'C#dim'], #25 C#dim [62,65,68, 'Ddim' ], #26 Ddim [63,66,69, 'D#dim'], #27 D#dim [64,68,70, 'Edim' ], #28 Edim [65,68,71, 'Fdim' ], #29 Fdim [66,69,72, 'F#dim'], #30 F#dim [67,70,73, 'Gdim' ], #31 Gdim [68,71,74, 'G#dim'], #32 G#dim [69,72,75, 'Adim' ], #33 Adim [70,73,76, 'A#dim'], #34 A#dim [71,74,77, 'Bdim' ] #35 Bdim ] ChordDictMnamed = { "C" :[1,11,2,9,3,7,10,5,12,6,8,4], "C#" :[3,4,1,5,2,6,7,8,9,10,11,12], "D" :[1,9,3,8,2,5,11,4,12,7,10,6], "D#" :[4,12,1,3,11,2,10,5,9,8,7,6], "E" :[5,10,1,12,2,4,7,3,11,6,9,8], "F" :[7,12,4,8,1,3,11,2,10,5,9,6], "F#" :[7,12,5,11,4,6,2,1,10,3,9,8], "G" :[4,12,6,10,3,2,8,1,11,5,9,7], "G#" :[12,11,10,9,8,2,7,1,6,3,5,4], "A" :[5,12,6,11,7,4,9,1,10,2,8,3], "A#" :[4,12,6,10,5,7,11,2,9,3,1,8], "B" :[1,12,3,11,7,6,9,5,10,2,8,4], "Cm" :[1,11,2,9,3,7,10,5,12,6,8,4], "C#m" :[3,4,1,5,2,6,7,8,9,10,11,12], "Dm" :[1,9,3,8,2,5,11,4,12,7,10,6], "D#m" :[4,12,1,3,11,2,10,5,9,8,7,6], "Em" :[5,10,1,12,2,4,7,3,11,6,9,8], "Fm" :[7,12,4,8,1,3,11,2,10,5,9,6], "F#m" :[7,12,5,11,4,6,2,1,10,3,9,8], "Gm" :[4,12,6,10,3,2,8,1,11,5,9,7], "G#m" :[12,11,10,9,8,2,7,1,6,3,5,4], "Am" :[5,12,6,11,7,4,9,1,10,2,8,3], "A#m" :[4,12,6,10,5,7,11,2,9,3,1,8], "Bm" :[1,12,3,11,7,6,9,5,10,2,8,4], "Cdim" :[1,11,2,9,3,7,10,5,12,6,8,4], "C#dim" :[3,4,1,5,2,6,7,8,9,10,11,12], "Ddim" :[1,9,3,8,2,5,11,4,12,7,10,6], "D#dim" :[4,12,1,3,11,2,10,5,9,8,7,6], "Edim" :[5,10,1,12,2,4,7,3,11,6,9,8], "Fdim" :[7,12,4,8,1,3,11,2,10,5,9,6], "F#dim" :[7,12,5,11,4,6,2,1,10,3,9,8], "Gdim" :[4,12,6,10,3,2,8,1,11,5,9,7], "G#dim" :[12,11,10,9,8,2,7,1,6,3,5,4], "Adim" :[5,12,6,11,7,4,9,1,10,2,8,3], "A#dim" :[4,12,6,10,5,7,11,2,9,3,1,8], "Bdim" :[1,12,3,11,7,6,9,5,10,2,8,4] } ChordDict = { "C" :[60,64,67], "C#" :[61,65,68], "D" :[62,66,69], "D#" :[63,67,70], "E" :[64,68,71], "F" :[65,69,72], "F#" :[66,70,73], "G" :[67,71,74], "G#" :[68,72,75], "A" :[69,73,76], "A#" :[70,74,77], "B" :[71,75,78], "Cm" :[60,63,67], "C#m" :[61,64,68], "Dm" :[62,65,69], "D#m" :[63,66,70], "Em" :[64,67,71], "Fm" :[65,68,72], "F#m" :[66,69,73], "Gm" :[67,70,74], "G#m" :[68,71,75], "Am" :[69,72,76], "A#m" :[70,73,77], "Bm" :[71,74,78], "Cdim" :[60,63,66], "C#dim":[61,64,67], "Ddim" :[62,65,68], "D#dim":[63,66,69], "Edim" :[64,68,70], "Fdim" :[65,68,71], "F#dim":[66,69,72], "Gdim" :[67,70,73], "G#dim":[68,71,74], "Adim" :[69,72,75], "A#dim":[70,73,76], "Bdim" :[71,74,77] } ChordDictM = [ [60,64,67], [61,65,68], [62,66,69], [63,67,70], [64,68,71], [65,69,72], [66,70,73], [67,71,74], [68,72,75], [69,73,76], [70,74,77], [71,75,78], [60,63,67], [61,64,68], [62,65,69], [63,66,70], [64,67,71], [65,68,72], [66,69,73], [67,70,74], [68,71,75], [69,72,76], [70,73,77], [71,74,78], [60,63,66], [61,64,67], [62,65,68], [63,66,69], [64,68,70], [65,68,71], [66,69,72], [67,70,73], [68,71,74], [69,72,75], [70,73,76], [71,74,77] ] # note positions in MIDI editor notePosDict = { "C" : [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120], "C#": [1, 13, 25, 37, 49, 61, 73, 85, 97, 109, 121], "D" : [2, 14, 26, 38, 50, 62, 74, 86, 98, 110, 122], "D#": [3, 15, 27, 39, 51, 63, 75, 87, 99, 111, 123], "E" : [4, 16, 28, 40, 52, 64, 76, 88, 100, 112, 124], "F" : [5, 17, 29, 41, 53, 65, 77, 89, 101, 113, 125], "F#": [6, 18, 30, 42, 54, 66, 78, 90, 102, 114, 126], "G" : [7, 19, 31, 43, 55, 67, 79, 91, 103, 115, 127], "G#": [8, 20, 32, 44, 56, 68, 80, 92, 104, 116], "A" : [9, 21, 33, 45, 57, 69, 81, 93, 105, 117], "A#": [10, 22, 34, 46, 58, 70, 82, 94, 106, 118], "B" : [11, 23, 35, 47, 59, 71, 83, 95, 107, 119] } # Guitar Parts. strumPat = ('Even','DOWN Slow','DOWN Fast','UP Slow','UP Fast','Fingerpick 1','Fingerpick 2','Fingerpick 3','Fingerpick 4','Fingerpick 5','Fingerpick 6','Fingerpick 7','Fingerpick 8','Fingerpick 9','Fingerpick 10','Fingerpick 11','Fingerpick 12') humanizePat = ('None','Attack','Velocity') # Fingerpick patterns fingerPick = [ [2,2,5,4,3,2,5], [2,2,3,4,5,4,3], [2,2,2,4,2,4,5], [2,4,2,4,2,5,4], [2,2,4,5,4,3,5], [2,2,5,4,3,2,4], [2,2,5,2,4,2,4], [2,2,4,5,3,4,5], [2,2,5,4,3,5,4], [2,2,4,2,4,3,2], [2,2,4,5,4,5,4], [2,2,5,3,4,5,4] ] GuitarChordsA = [ ['Am',45,52,57,60,64], ['Amaj',45,52,57,61,64], ['A6',52,57,61,66], ['A7',45,52,55,61,64], ['A7b5',45,55,61,63], ['A7b9',45,52,58,61,67], ['A9',45,52,59,61,67], ['A11',49,52,59,62,67], ['A13',45,55,61,66,69], ['A69',45,49,54,59,64], ['Aadd9',45,52,57,59,64], ['Aaug',45,53,57,61,65], ['Ab6',53,60,63,68,72], ['Ab7#5',51,56,60,66], ['Ab7',51,56,60,66], ['Ab7b5',44,54,60,62], ['Ab7b9',44,48,54,57], ['Ab9',42,46,51,56,60], ['Ab11',44,51,54,61,63], ['Ab13',44,48,54,56,60], ['Ab69',44,48,53,58,63], ['Abadd9',46,51,56,60], ['Abaug',40,48,52,56,60], ['Abdim',50,56,59,65], ['Abdim7',47,50,56,59,65], ['Abm',44,51,56,59,63], ['Abm6',51,56,59,65], ['Abm7',54,59,63,68], ['Abm7b5',56,62,66,71], ['Abm9',42,46,51,56,59], ['Abm11',44,47,54,59,61], ['Abmaj',0,74], ['Abmaj7',51,56,60,67], ['Abmaj9',44,48,55,58,63], ['Absus2',46,51,56], ['Absus4',51,56,61], ['Adim',45,51,57,60], ['Adim7',51,57,60,66], ['Am6',45,52,57,60,66], ['Am7',45,52,57,60,67], ['Am7b5',51,57,60,67], ['Am9',45,55,60,64,71], ['Am11',45,48,55,60,62], ['Amaj7',45,52,56,61,64], ['Amaj9',45,52,59,61,68], ['Asus2',45,52,56,59,64], ['Asus4',45,52,57,62,64], ['A#',46,53,58,62,65], ['A#6',46,53,58,62,67], ['A#7#5',46,56,62,66], ['A7#5',45,52,55,61,64], ['A#7',53,58,62,68], ['A#7b5',46,56,62,64], ['A#7b9',58,62,68,71], ['A#9',41,46,50,56,60], ['A#11',58,62,68,70,75], ['A#13',46,50,56,62,67], ['A#69',46,50,55,60,65], ['A#add9',41,46,50,58,60], ['A#aug',42,46,50,58,62], ['A#dim',52,58,61,67], ['A#dim7',52,58,61,67], ['A#m',46,53,58,61,65], ['A#m6',46,53,55,61], ['A#m7',46,53,56,61,65], ['A#m7b5',46,56,61,64], ['A#m9',61,65,72], ['A#m11',46,49,56,61,63], ['A#maj',46,53,58,62,65], ['A#maj7',46,53,57,62], ['A#maj9',46,50,57,60,65], ['A#sus2',41,46,53,58,60], ['A#sus4',53,58,63,65] ] GuitarChordsB = [ ['Bm',47,54,59,62,66], ['Bmaj',47,54,59,63,66], ['B6',54,59,63,68], ['B7',47,51,57,59,66], ['B7b5',47,57,63,65], ['B7b9',47,51,57,60,66], ['B9',47,54,57,63,66], ['B11',47,54,59,63], ['B13',47,51,57,59,68], ['B69',47,51,56,61,66], ['Badd9',47,54,59,61,66], ['Baug',47,51,55,59], ['Bb6',53,58,62,67], ['Bb7#5',53,58,62,68], ['B7#5',47,51,57,59,66], ['Bb7',53,58,62,68], ['Bb7b5',46,56,62,64], ['Bb7b9',58,62,68,71], ['Bb9',46,53,56,62,65], ['Bb11',46,53,56,63,68], ['Bb13',46,50,56,62,67], ['Bb69',46,50,55,60,65], ['Bbadd9',41,46,50,58,60], ['Bbaug',42,46,50,58,62], ['Bbdim',52,58,61,67], ['Bbdim7',46,52,55,61,64], ['Bbm',41,46,53,58,61], ['Bbm6',46,53,55,61], ['Bbm7',46,53,56,61,65], ['Bbm7b5',46,56,61,64], ['Bbm9',61,65,72], ['Bbm11',46,49,56,61,63], ['Bbmaj',46,53,58,62,65], ['Bbmaj7',46,53,57,62], ['Bbmaj9',48,53,58,62,69], ['Bbsus2',53,58,60,65], ['Bbsus4',53,58,63,65], ['Bdim',47,53,59,62], ['Bdim7',50,56,59,65], ['Bm6',54,59,62,68], ['Bm7',47,54,57,62,66], ['Bm7b5',41,47,53,57,62], ['Bm9',47,50,57,61,66], ['Bm11',47,50,57,59,64], ['Bmaj7',47,54,58,63], ['Bmaj9',47,51,58,61,66], ['Bsus2',49,54,59,66], ['Bsus4',54,59,64,66] ] GuitarChordsC = [ ['Cm',48,55,60,63,67], ['Cmaj',48,52,55,60,64], ['C6',45,52,57,60,67], ['C7',48,52,58,60,64], ['C7b5',48,54,58,64], ['C7b9',48,52,58,61,64], ['C9',48,55,58,64,67], ['C11',48,55,58,65,67], ['C13',48,55,58,64,69], ['C69',48,52,57,62,67], ['Cadd9',48,52,55,62,64], ['Caug',52,56,60,68], ['Cdim',51,57,60,66], ['Cdim7',51,57,60,66], ['Cm6',51,57,60,67], ['Cm7',48,55,58,63,67], ['Cm7b5',48,54,58,63], ['Cm9',48,51,58,62,67], ['Cm11',48,55,58,65], ['Cmaj7',48,52,55,59,64], ['Cmaj9',48,50,55,59,64], ['Csus2',48,50,55,60], ['Csus4',53,55,60,67], ['C#',53,56,61,65], ['C#6',53,58,61,68], ['C#7#5',49,53,57,59], ['C7#5',48,52,58,60,64], ['C#7',53,59,61,68], ['C#7b5',43,53,59,61], ['C#7b9',49,53,59,62,68], ['C#9',49,56,61,63,68], ['C#11',49,53,59,61,66], ['C#13',49,56,59,65,70], ['C#69',49,53,58,63,68], ['C#add9',41,51,56,61,65], ['C#aug',49,53,57,61], ['C#dim',52,58,61,67], ['C#dim7',52,58,61,67], ['C#m',52,56,61,64], ['C#m6',49,52,58,61,68], ['C#m7',52,59,61,68], ['C#m7b5',47,52,55,61,64], ['C#m9',40,47,51,56,61], ['C#m11',49,52,59,63,66], ['C#maj',53,56,61,65], ['C#maj7',49,53,56,60,65], ['C#maj9',49,51,56,60,65], ['C#sus2',51,56,61], ['C#sus4',56,61,66,68] ] GuitarChordsD = [ ['Dm',50,57,62,65], ['Dmaj',50,57,62,66], ['D6',45,50,57,59,66], ['D7',50,57,60,66], ['D7b5',50,56,60,66], ['D7b9',50,54,60,63,69], ['D9',50,57,60,66,69], ['D11',50,54,60,61,66], ['D13',50,57,60,66,71], ['D69',50,54,59,64,69], ['Dadd9',50,57,62,64], ['Daug',50,58,62,66], ['Db6',46,53,56,61,65], ['Db7#5',53,59,61,68], ['Db7',53,59,61,68], ['Db7b5',43,53,59,61], ['Db7b9',49,53,59,62,68], ['Db9',41,47,51,56,61], ['Db11',49,53,59,61,66], ['Db13',49,56,59,65,70], ['Db69',49,53,58,63,68], ['Dbadd9',41,51,56,61,65], ['Dbaug',41,45,53,57,61], ['Dbdim',52,58,61,67], ['Dbdim7',46,52,55,61,64], ['Dbm',52,56,61,64], ['Dbm6',49,52,58,61,68], ['Dbm7',52,59,61,68], ['Dbm7b5',47,52,55,61,64], ['Dbm9',40,47,51,56,61], ['Dbm11',49,52,59,63,66], ['Dbmaj',53,56,61,65], ['Dbmaj7',49,53,56,60,65], ['Dbmaj9',49,51,56,60,65], ['Dbsus2',56,61,63,68], ['Dbsus4',56,61,66,68], ['Ddim',50,56,59,65], ['Ddim7',47,50,56,59,65], ['Dm6',47,50,57,59,65], ['Dm7',50,57,60,65], ['Dm7b5',50,56,60,65], ['Dm9',53,57,60,64], ['Dm11',50,53,60,62,67], ['Dmaj7',50,57,61,66], ['Dmaj9',50,52,57,61,66], ['Dsus2',40,45,50,57,62], ['Dsus4',50,57,62,67], ['D#',55,58,63,67], ['D#6',48,55,58,63,67], ['D#7#5',51,59,61,67], ['D7#5',50,57,60,66], ['D#7',51,58,61,67], ['D#7b5',51,57,61,68], ['D#7b9',51,55,61,64], ['D#9',43,46,51,55,61], ['D#11',51,55,61,63,68], ['D#13',51,55,61,67,72], ['D#69',51,55,60,65], ['D#add9',43,46,51,55,65], ['D#aug',43,47,51,55,59], ['D#dim',51,57,60,66], ['D#dim7',51,57,60,66], ['D#m',54,58,63,66], ['D#m6',51,58,60,66], ['D#m7',51,58,61,66], ['D#m7b5',51,57,61,66], ['D#m9',42,46,51,58,61], ['D#m11',51,54,61,65,68], ['D#maj',55,58,63,67], ['D#maj7',51,58,62,67], ['D#maj9',51,55,62,65], ['D#sus2',41,46,51,58,65], ['D#sus4',51,58,63,68] ] GuitarChordsE = [ ['Em',40,47,52,55,59], ['Emaj',40,47,52,56,59], ['E6',61,66,70,75], ['E7',40,47,52,56,62], ['E7b5',46,50,56,62,64], ['E7b9',40,47,50,56,59], ['E9',52,59,62,68,71], ['E11',41,46,51,56,61], ['E13',40,47,50,56,61], ['E69',47,52,56,61,66], ['Eadd9',40,54,56,59,64], ['Eaug',40,48,52,56], ['Eb6',48,55,58,63,67], ['Eb7#5',51,58,61,67], ['E7#5',40,47,52,56,62], ['Eb7',51,58,61,67], ['Eb7b5',51,57,61,67], ['Eb7b9',51,55,61,64], ['Eb9',46,51,58,63,65], ['Eb11',51,55,61,63,68], ['Eb13',51,55,61,67,72], ['Eb69',51,55,60,65], ['Ebadd9',43,46,51,55,65], ['Ebaug',43,47,51,55,59], ['Ebdim',42,45,51,57,66], ['Ebdim7',51,57,60,66], ['Ebm',54,58,63,66], ['Ebm6',51,58,60,66], ['Ebm7',51,58,61,66], ['Ebm7b5',51,57,61,66], ['Ebm9',42,46,51,58,61], ['Ebm11',51,54,61,65,68], ['Ebmaj',55,58,63,67], ['Ebmaj7',51,58,62,67], ['Ebmaj9',51,55,62,65], ['Ebsus2',41,46,51,58,65], ['Ebsus4',51,58,63,68], ['Edim',52,58,61,67], ['Edim7',46,52,55,61,64], ['Em6',40,47,52,55,61], ['Em7',40,47,52,55,62], ['Em7b5',52,58,62,67], ['Em9',40,47,54,55,59], ['Em11',40,47,50,57,59], ['Emaj7',40,47,51,56,59], ['Emaj9',40,47,51,56,59], ['Esus2',47,54,59,64], ['Esus4',40,47,52,57,59] ] GuitarChordsF = [ ['Fm',41,48,53,56,60], ['Fmaj',45,53,57,60,65], ['F7',41,48,51,57,60], ['F7b5',41,51,57,59], ['F7b9',53,57,63,66], ['F9',43,45,53,57,60], ['F11',41,48,51,58,60], ['F13',41,45,51,58,62], ['F69',41,45,50,55,60], ['Fadd9',43,53,57,60,65], ['Faug',53,61,65,69], ['Fdim',50,56,59,65], ['Fdim7',47,50,56,59,65], ['Fm6',50,56,60,65], ['Fm7',41,48,51,56,60], ['Fm7b5',53,59,63,68], ['Fm9',51,56,60,67], ['Fm11',53,58,63,68], ['Fmaj7',48,53,57,60,64], ['Fmaj9',40,45,53,55,60], ['Fsus2',48,53,55,60,65], ['Fsus4',53,58,60,65], ['F#',42,49,54,58,61], ['F#6',51,58,61,66], ['F#7#5',42,52,58,62], ['F#7',54,58,61,64], ['F#7b5',42,52,58,60], ['F#7b9',42,46,52,55,61], ['F#9',42,49,52,58,61], ['F#11',42,49,52,59,61], ['F#13',42,49,52,58,63], ['F#69',42,46,51,56,61], ['F#add9',42,46,56,61,66], ['F#aug',42,46,50,58,62], ['F#dim',51,57,60,66], ['F#dim7',51,57,60,66], ['F#m',42,49,54,57,61], ['F#m6',51,57,61,66], ['F#m7',52,57,61,66], ['F#m7b5',52,57,60,66], ['F#m9',43,45,53,56,61], ['F#m11',42,45,52,57,59], ['F#maj',42,49,54,58,61], ['F#maj7',54,58,61,65], ['F#maj9',42,53,58,68], ['F#sus2',42,56,61,66], ['F#sus4',54,59,61,66], ['F6',48,53,57,62], ['F7#5',41,48,51,57,60] ] GuitarChordsG = [ ['Gm',43,50,55,58,62], ['Gmaj',43,47,50,55,59], ['G7',43,47,50,55,59], ['G7b5',43,53,59,61], ['G7b9',43,47,50,56,59], ['G9',43,50,57,59,65], ['G11',43,50,57,60,65], ['G13',43,47,53,55,59], ['G69',43,50,57,59,64], ['Gadd9',43,50,59,62,69], ['Gaug',55,63,67,71], ['Gb6',51,58,61,66], ['Gb7#5',54,58,61,64], ['Gb7',54,58,61,64], ['Gb7b5',42,52,58,60], ['Gb7b9',42,46,52,55,61], ['Gb9',46,52,56,61,66], ['Gb11',42,46,52,56,59], ['Gb13',42,49,52,58,63], ['Gb69',42,46,51,56,61], ['Gbadd9',42,46,56,61,66], ['Gbaug',42,46,50,58,62], ['Gbdim',51,57,60,66], ['Gbdim7',51,57,60,66], ['Gbm',42,49,54,57,61], ['Gbm6',42,51,57,61,66], ['Gbm7',52,57,61,66], ['Gbm7b5',45,52,57,60,66], ['Gbm9',42,45,52,56,61], ['Gbm11',42,45,52,57,59], ['Gbmaj',42,49,54,58,61], ['Gbmaj7',54,58,61,65], ['Gbmaj9',42,53,58,68], ['Gbsus2',42,56,61,66], ['Gbsus4',54,59,61,66], ['Gdim',55,61,64,67], ['Gdim7',46,52,55,61,64], ['G6',43,50,55,59,64], ['Gm6',52,58,62,67], ['Gm7',43,50,53,58,62], ['Gm7b5',55,61,65,70], ['Gm9',43,50,53,58,62], ['Gm11',43,46,53,58,60], ['Gmaj7',55,59,62,66], ['Gmaj9',42,47,55,57,62], ['Gsus2',45,50,55,62,67], ['Gsus4',43,50,55,60,62], ['G#',44,51,56,60,63], ['G#6',51,56,60,65], ['G#7#5',44,54,60,64], ['G#7',51,56,60,66], ['G#7b5',44,54,60,62], ['G#7b9',44,48,54,57], ['G#9',42,46,51,56,60], ['G#11',44,48,51,56,61], ['G#13',44,48,54,56,60], ['G#69',44,48,53,58,63], ['G#add9',46,51,56,60], ['G#aug',40,48,52,56,60], ['G#dim',43,47,50,55,59], ['G#dim7',50,56,59,65], ['G#m',44,51,56,59,63], ['G#m6',51,56,59,65], ['G#m7',54,59,63,68], ['G#m7b5',56,62,66,71], ['G#m9',42,46,51,56,59], ['G#m11',44,47,54,59,61], ['G#maj',44,51,56,60,63], ['G#maj7',51,56,60,67], ['G#maj9',44,48,55,58,63], ['G#sus2',46,51,56], ['G#sus4',51,56,61,68], ['G7#5',43,47,50,55,59] ] def __init__(self): self.quartNoteLength = 960 #quarter note length in ticks try: p, bpm, bpi = RPR_GetProjectTimeSignature2(0, 0, 0) bps = bpm/60 except: bps = 2 bpi = 2 self.barLength = bps * bpi self.barsPerSection = 4 #TODO doesn't work unless 4 at the mo for val in RC.progressions: RC.Moods+=(val[RC.pProgName],) ### this section populates the tuple accessed by ### the combo box creation code with names from new combined lists for val in RC.Structures: RC.entriesStructures+=(val[RC.pStructureName],) for val in RC.chordTypes: RC.entriesChordTypes+=(val[RC.pStructureName],) def msg(self,m): global msg msg(m) def msg(m): if (debug): RPR_ShowConsoleMsg(str(m)+'\n')