Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ...
- tracks_array = { "PART DRUMS" : 999,
- "PART GUITAR" : 999,
- "PART BASS" : 999,
- "PART VOCALS" : 999,
- "PART KEYS" : 999,
- "PART REAL_KEYS_X": 999,
- "PART REAL_KEYS_H": 999,
- "PART REAL_KEYS_M": 999,
- "PART REAL_KEYS_E": 999,
- "PART KEYS_ANIM_LH": 999,
- "PART KEYS_ANIM_RH": 999,
- "HARM1": 999,
- "HARM2": 999,
- "HARM3": 999,
- "EVENTS": 999,
- "BEAT": 999,
- "PART DRUMS 2X": 999,
- "VENUE": 999,
- "PART RHYTHM": 999,
- "PART REAL_GUITAR": 999,
- "PART REAL_GUITAR_22": 999,
- "PART REAL_BASS": 999,
- "PART REAL_BASS_22": 999
- }
- array_instruments = {
- "Drums" : "PART DRUMS",
- "2x Drums" : "PART DRUMS 2X",
- "Rhythm" : "PART RHYTHM",
- "Guitar" : "PART GUITAR",
- "Bass" : "PART BASS",
- "Keys" : "PART KEYS",
- "Pro Keys" : "PART REAL_KEYS",
- "Vocals" : "PART VOCALS",
- "Harmony 1" : "HARM1",
- "Harmony 2" : "HARM2",
- "Harmony 3" : "HARM3",
- "Pro Guitar" : "PART REAL_GUITAR",
- "Pro Guitar 22" : "PART REAL_GUITAR_22",
- "Pro Bass" : "PART REAL_BASS",
- "Pro Bass 22" : "PART REAL_BASS_22"
- }
- array_dropdownid = { "PART DRUMS" : 0,
- "PART GUITAR" : 1,
- "PART BASS" : 2,
- "PART KEYS" : 3,
- "PART REAL_KEYS_X": 4,
- "PART REAL_KEYS_H": 4,
- "PART REAL _KEYS_H": 4,
- "PART REAL_KEYS_M": 4,
- "PART REAL_KEYS_E": 4,
- "PART DRUMS 2X": 5,
- "PART RHYTHM": 6,
- "PART VOCALS": 7,
- "PART REAL_GUITAR": 8,
- "PART REAL_GUITAR_22": 8,
- "PART REAL_BASS": 9,
- "PART REAL_BASS_22": 9
- }
- ...
- def prep_tracks():
- global maxlen
- global tracks_array
- num_mi = RPR_CountMediaItems(0)
- for i in range(0, num_mi):
- mi = RPR_GetMediaItem(0,i)
- trackID = RPR_GetMediaItem_Track(mi)
- trackname = RPR_GetSetMediaTrackInfo_String(trackID, "P_NAME", "", 0)[3]
- chunk = ""
- instrument = ""
- (boolvar, mi, chunk, maxlen) = RPR_GetSetItemState(mi, chunk, maxlen)
- #CYCLING THROUGH ALL TRACKS TO FIND THOSE RELEVANT
- #This check needs to go off everytime a command is issued because if the user changes position of the tracks the IDs change
- if "PART BASS" == trackname:
- tracks_array["PART BASS"] = i
- elif "PART DRUMS 2X" == trackname or "PART DRUMS 2x" == trackname or "PART DRUMS_2x" == trackname or "PART DRUMS_2X" == trackname:
- tracks_array["PART DRUMS 2X"] = i
- elif "PART DRUMS" == trackname:
- tracks_array["PART DRUMS"] = i
- elif "PART GUITAR" == trackname:
- tracks_array["PART GUITAR"] = i
- elif "PART VOCALS" == trackname:
- tracks_array["PART VOCALS"] = i
- elif "PART KEYS" == trackname:
- tracks_array["PART KEYS"] = i
- elif "KEYS_X" in trackname:
- tracks_array["PART REAL_KEYS_X"] = i
- elif "KEYS_H" in trackname:
- tracks_array["PART REAL_KEYS_H"] = i
- elif "KEYS_M" in trackname:
- tracks_array["PART REAL_KEYS_M"] = i
- elif "KEYS_E" in trackname:
- tracks_array["PART REAL_KEYS_E"] = i
- elif "PART KEYS_ANIM_RH" == trackname:
- tracks_array["PART KEYS_ANIM_RH"] = i
- elif "PART KEYS_ANIM_LH" == trackname:
- tracks_array["PART KEYS_ANIM_LH"] = i
- elif "HARM1" == trackname:
- tracks_array["HARM1"] = i
- elif "HARM2" == trackname:
- tracks_array["HARM2"] = i
- elif "HARM3" == trackname:
- tracks_array["HARM3"] = i
- elif "EVENTS" == trackname:
- tracks_array["EVENTS"] = i
- elif "BEAT" == trackname:
- tracks_array["BEAT"] = i
- elif "VENUE" == trackname:
- tracks_array["VENUE"] = i
- elif "PART REAL_GUITAR" == trackname:
- tracks_array["PART REAL_GUITAR"] = i
- elif "PART REAL_GUITAR_22" == trackname:
- tracks_array["PART REAL_GUITAR_22"] = i
- elif "PART REAL_BASS" == trackname:
- tracks_array["PART REAL_BASS"] = i
- elif "PART REAL_BASS_22" == trackname:
- tracks_array["PART REAL_BASS_22"] = i
- else:
- instrument = "???"
- #PM("\ntracks_array:\n")
- #PM(tracks_array)
- ...
- def pg_root_notes(instrument, estringlow, astring, dstring, gstring, bstring, estringhigh):
- #instrument (PART REAL_GUITAR, PART REAL_GUITAR_22, PART REAL_BASS, PART REAL_BASS_22)
- #all strings : tuning
- global maxlen
- instrument_track = tracks_array[instrument]
- notes_dict = notesname_array[notesname_instruments_array[instrument]]
- array_instrument_data = process_instrument(instrument_track)
- array_instrument_notes = array_instrument_data[1]
- end_part = array_instrument_data[2]
- start_part = array_instrument_data[3]
- array_notesevents = create_notes_array(array_instrument_notes)
- array_notes = array_notesevents[0]
- array_events = array_notesevents[1]
- notes_found = 0
- result = 0
- string1 = 0 + estringlow
- string2 = 0 + astring
- string3 = 0 + dstring
- string4 = 0 + gstring
- string5 = 0 + bstring
- string6 = 0 + estringhigh
- for x in range(0, len(array_notes)):
- note = array_notes[x]
- if notes_dict[note[2]][1] == "root_notes":
- notes_found = 1
- result = RPR_MB( "Root notes found. Do you want to delete them and proceed?", "Root notes found", 1 )
- break
- if result == 1 or notes_found == 0:
- array_temp = list(array_notes)
- array_notes = []
- for x in range(0, len(array_temp)):
- note = array_temp[x]
- if notes_dict[note[2]][1] != "root_notes":
- array_notes.append(note)
- else:
- return
- for x in range(0, len(array_notes)):
- note = array_notes[x]
- if notes_dict[note[2]][1] == "notes_x":
- #It's an expert note, let's add it as a root note
- pitch = note[2]
- velocity = int(str(note[3]), 16)
- new_note = list(note)
- openstring = 0
- if(pitch == 96): #Which string? Which note?
- openstring = 16 + string1
- elif(pitch == 97):
- openstring = 9 + string2
- elif(pitch == 98):
- openstring = 14 + string3
- elif(pitch == 99):
- openstring = 7 + string4
- elif(pitch == 100):
- openstring = 11 + string5
- elif(pitch == 101):
- openstring = 16 + string6
- root = openstring + velocity - 100
- roothigh = 15
- rootlow = 4
- while (root > roothigh):
- root = root - 12
- if(root < rootlow):
- break
- while (root < rootlow):
- root = root + 12
- if(root > roothigh):
- break
- new_note[2] = root
- array_notes.append(new_note)
- write_midi(instrument_track, [array_notes, array_events], end_part, start_part)
Advertisement
Add Comment
Please, Sign In to add comment