You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
758 B

from load_asset import load
scales = load('scales')
note_names = load('notes')
##def create(scale_type,root):
##
import convert
class scale:
def __init__(self,*notes):
self.notes = scale.number(notes)
self.raw_intv = self.ri()
self.root = self.notes[0]
#takes notes from notes to numbers
def number(notes):
print('ran')
return list(map(convert.above_c,notes))
#finds raw intervals
def ri(self):
notes = self.notes
return list(map(lambda x: x-notes[0],notes[1:]))
#returns new scale with given root
def tanspose(self,n):
if type(n) != int:
n = above_c(n)
return scale(*list(map(lambda x: x+n,self.raw_intv)))
#todo fingers method