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
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
|