def index(self, token): # scale length: SL = len(self.notes) # parse root, infix, suffix = trisectToken(token) root = self.normalizedNote(root) # print "trisection["+token+"]:", root, infix, suffix # get index of bare note k = self.ring.index(root) if k < 0: return -1000 # add octave shifts if len(infix) > 0: octave = int(infix) - 1 else: octave = 0 octave += count('^', suffix) octave -= count('_', suffix) k = k + SL*octave # add semitione shifts s = count('+', suffix) s -= count('-', suffix) k += s return k
def index(self, token): # scale length: SL = len(self.notes) # parse root, infix, suffix = trisectToken(token) root = self.normalizedNote(root) # print "trisection["+token+"]:", root, infix, suffix # get index of bare note k = self.ring.index(root) if k < 0: return -1000 # add octave shifts if len(infix) > 0: octave = int(infix) - 1 else: octave = 0 octave += count('^', suffix) octave -= count('_', suffix) k = k + SL * octave # add semitione shifts s = count('+', suffix) s -= count('-', suffix) k += s return k
def freq(self, token, nSemitoneShifts, octaveNumber): # Return frequency of note defined by token # base calculation root, suffix = splitToken(token) a = alphaPrefix(root) a = self.normalizedNote(a) f = self.noteFreq[a] # apply octave number for i in range(0, octaveNumber): f = 2*f # apply transpose register factor = pow(self.semitoneFactor, nSemitoneShifts); # print "factor:", factor f = f*factor # process upward octave shifts n = 0 np = numPrefix(token[len(a):]) if len(np) > 0: n = int(np[0:1])-1 else: n = 0 n += count('^', suffix) for i in range(0, n): f = 2.0*f # process downward octave shifts n = count('_', suffix) if n > 0: for i in range(0,n): f = f/2.0 # process semitone shifts n = count('+', suffix) - count('-', suffix) if n > 0: for i in range(0,n): f = f*self.semitoneFactor if n < 0: for i in range(0,-n): f = f/self.semitoneFactor return f, root, suffix
def freq(self, token, nSemitoneShifts, octaveNumber): # Return frequency of note defined by token # base calculation root, suffix = splitToken(token) a = alphaPrefix(root) a = self.normalizedNote(a) f = self.noteFreq[a] # apply octave number for i in range(0, octaveNumber): f = 2 * f # apply transpose register factor = pow(self.semitoneFactor, nSemitoneShifts) # print "factor:", factor f = f * factor # process upward octave shifts n = 0 np = numPrefix(token[len(a):]) if len(np) > 0: n = int(np[0:1]) - 1 else: n = 0 n += count('^', suffix) for i in range(0, n): f = 2.0 * f # process downward octave shifts n = count('_', suffix) if n > 0: for i in range(0, n): f = f / 2.0 # process semitone shifts n = count('+', suffix) - count('-', suffix) if n > 0: for i in range(0, n): f = f * self.semitoneFactor if n < 0: for i in range(0, -n): f = f / self.semitoneFactor return f, root, suffix