|
|
"""
|
|
|
Global configuration for anticipatory infilling models.
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
CONTEXT_SIZE = 1024
|
|
|
EVENT_SIZE = 3
|
|
|
M = 341
|
|
|
DELTA = 5
|
|
|
|
|
|
assert CONTEXT_SIZE == 1+EVENT_SIZE*M
|
|
|
|
|
|
|
|
|
|
|
|
MAX_TIME_IN_SECONDS = 100
|
|
|
MAX_DURATION_IN_SECONDS = 10
|
|
|
TIME_RESOLUTION = 100
|
|
|
|
|
|
MAX_PITCH = 128
|
|
|
MAX_INSTR = 129
|
|
|
MAX_NOTE = MAX_PITCH*MAX_INSTR
|
|
|
|
|
|
MAX_INTERARRIVAL_IN_SECONDS = 10
|
|
|
|
|
|
|
|
|
|
|
|
PREPROC_WORKERS = 16
|
|
|
|
|
|
COMPOUND_SIZE = 5
|
|
|
MAX_TRACK_INSTR = 16
|
|
|
MAX_TRACK_TIME_IN_SECONDS = 3600
|
|
|
MIN_TRACK_TIME_IN_SECONDS = 10
|
|
|
MIN_TRACK_EVENTS = 100
|
|
|
|
|
|
|
|
|
|
|
|
LAKH_SPLITS = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']
|
|
|
LAKH_VALID = ['e']
|
|
|
LAKH_TEST = ['f']
|
|
|
|
|
|
|
|
|
|
|
|
MAX_TIME = TIME_RESOLUTION*MAX_TIME_IN_SECONDS
|
|
|
MAX_DUR = TIME_RESOLUTION*MAX_DURATION_IN_SECONDS
|
|
|
|
|
|
MAX_INTERARRIVAL = TIME_RESOLUTION*MAX_INTERARRIVAL_IN_SECONDS
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
print('Model constants:')
|
|
|
print(f' -> anticipation interval: {DELTA}s')
|
|
|
print('Vocabulary constants:')
|
|
|
print(f' -> maximum time of a sequence: {MAX_TIME_IN_SECONDS}s')
|
|
|
print(f' -> maximum duration of a note: {MAX_DURATION_IN_SECONDS}s')
|
|
|
print(f' -> time resolution: {TIME_RESOLUTION}bins/s ({1000//TIME_RESOLUTION}ms)')
|
|
|
print(f' -> maximum interarrival-time (MIDI-like encoding): {MAX_INTERARRIVAL_IN_SECONDS}s')
|
|
|
print('Preprocessing constants:')
|
|
|
print(f' -> maximum time of a track: {MAX_TRACK_TIME_IN_SECONDS}s')
|
|
|
print(f' -> minimum events in a track: {MIN_TRACK_EVENTS}s')
|
|
|
|