Mercurial > hg > syncopation-dataset
diff Syncopation models/parameter_setter.py @ 19:9030967a05f8
Refactored parameter_setter, basic_functions. Halfway fixing parameter argument in LHL model.
author | csong <csong@eecs.qmul.ac.uk> |
---|---|
date | Fri, 03 Apr 2015 22:57:27 +0100 |
parents | c2843ef4de2c |
children | b959c2acb927 |
line wrap: on
line diff
--- a/Syncopation models/parameter_setter.py Fri Apr 03 18:38:10 2015 +0100 +++ b/Syncopation models/parameter_setter.py Fri Apr 03 22:57:27 2015 +0100 @@ -5,11 +5,9 @@ # Set the parameters: subdivision_seq, weight_seq, L_max, strong_beat_level -L_max = 5 - # {'key': time-signature} : # {'value': [subdivision_seq, theoretical beat-level represented by index in the subdivision_seq list]} -timesigBase = { +timeSignatureBase = { '2/2': [[1,2,2,2,2],1], '3/2': [[1,3,2,2,2],1], '4/2': [[1,2,2,2,2],1], @@ -25,66 +23,62 @@ '12/8':[[1,2,2,3,2],2], } - -def addTimesig(timesig, subdivision_seq, beat_level): - if isTSValid(timesig,subdivision_seq,beat_level): - if timesig in timesigBase: +def add_time_signature(timeSignature, subdivisionSequence, beatLevel): + if is_time_signature_valid(timeSignature,subdivisionSequence,beatLevel): + if timeSignature in timesigBase: print 'This time-signature is existed already.' else: - timesigBase[timesig] = [subdivision_seq, beat_level] - writeTimesig() + timeSignatureBase[timeSignature] = [subdivisionSequence, beatLevel] + write_time_signature() -def updateTimesig(timesig, subdivision_seq, beat_level): - if isTSValid(timesig,subdivision_seq,beat_level): - if timesig in timesigBase: - print 'Original settings for', timesig, ':',timesigBase[timesig] - timesigBase[timesig] = [subdivision_seq, beat_level] - print 'Changed into:',timesigBase[timesig] - writeTimesig() +def update_time_signature(timeSignature, subdivisionSequence, beatLevel): + if is_time_signature_valid(timeSignature,subdivisionSequence,beatLevel): + if timeSignature in timeSignatureBase: + print 'Original settings for ', timeSignature, ':',timeSignatureBase[timeSignature] + timeSignatureBase[timeSignature] = [subdivisionSequence, beatLevel] + print 'Changed into:',timeSignatureBase[timeSignature] + write_time_signature() -def isTSValid(timesig, subdivision_seq, beat_level): +def is_time_signature_valid(timeSignature, subdivisionSequence, beatLevel): isValid = False - if ('/' not in timesig) or (not timesig.split('/')[0].isdigit()) or (not timesig.split('/')[1].isdigit()): + if ('/' not in timeSignature) or (not timeSignature.split('/')[0].isdigit()) or (not timeSignature.split('/')[1].isdigit()): print 'Error: invalid time-signature. Please indicate in the form of fraction, e.g. 4/4, 6/8 or 3/4.' - elif subdivision_seq != [s for s in subdivision_seq if isinstance(s,int)]: + elif subdivisionSequence != [s for s in subdivisionSequence if isinstance(s,int)]: print 'Error: invalid subdivision sequence. Please indicate in the form of list of numbers, e.g [1,2,2,2,2].' - elif beat_level >= len(subdivision_seq): + elif beatLevel >= len(subdivisionSequence): print 'Error: beat-level exceeds the range of subdivision sequence list.' else: isValid = True return isValid -def writeTimesig(): +def write_time_signature(): import cPickle as pickle - timesigFile = open('TimeSignature.pkl', 'wb') - pickle.dump(timesigBase, timesigFile) - timesigFile.close() + timeSigFile = open('TimeSignature.pkl', 'wb') + pickle.dump(timeSignatureBase, timeSigFile) + timeSigFile.close() -def readTimesig(): +def read_time_signature(): import cPickle as pickle - timesigFile = open('TimeSignature.pkl','rb') - data = pickle.load(timesigFile) + timeSigFile = open('TimeSignature.pkl','rb') + data = pickle.load(timeSigFile) return data - timesigFile.close() + timeSigFile.close() -def viewTimesigBase(): - data = readTimesig() - for timesig, settings in data.items(): - print timesig, settings +def print_time_signature_base(): + data = read_time_signature() + for timeSignature, settings in data.items(): + print timeSignature, settings -def set_L_max(number): - L_max = number +# def get_subdivision_seq(timeSignature): +# if timeSignature in readTimesig(): +# return timesigBase[timesig][0] +# else: +# print 'Error: the subdivision sequence for this time-signature is not defined.' +# return None -def get_subdivision_seq(timesig): - if timesig in readTimesig(): - return timesigBase[timesig][0] - else: - print 'Error: the subdivision sequence for this time-signature is not defined.' - return None - -def get_beat_level(timesig): - if timesig in readTimesig(): - return timesigBase[timesig][1] - else: - print 'Error: the subdivision sequence for this time-signature is not defined.' - return None +# def get_beat_level(timesig): +# if timesig in readTimesig(): +# return timesigBase[timesig][1] +# else: +# print 'Error: the subdivision sequence for this time-signature is not defined.' +# return None