the classes
Here are the three classes. I'm using python because it's so close to pseudocode.
class ScaleStep:
def __init__(self):
self.frequency = 0
class Scale:
def __init__(self, base_frequency):
self.step_one = ScaleStep()
self.step_one.frequency = int(base_frequency)
self.step_two = ScaleStep()
self.step_two.frequency = self.step_one.frequency * 9/8
self.step_three = ScaleStep()
self.step_three.frequency = self.step_one.frequency * 5/4
self.step_four = ScaleStep()
self.step_four.frequency = self.step_one.frequency * 4/3
self.step_five = ScaleStep()
self.step_five.frequency = self.step_one.frequency * 3/2
self.step_six = ScaleStep()
self.step_six.frequency = self.step_one.frequency * 5/3
self.step_seven = ScaleStep()
self.step_seven.frequency = self.step_one.frequency * 15/8
class ChordScale:
def __init__(self, base_frequency):
this_scale = Scale(base_frequency)
self.one_chord = (this_scale.step_one, this_scale.step_three, this_scale.step_five)
self.two_chord = (this_scale.step_two, this_scale.step_four, this_scale.step_six)
self.three_chord = (this_scale.step_three, this_scale.step_five, this_scale.step_seven )
self.four_chord = (this_scale.step_four, this_scale.step_six, this_scale.step_one )
self.five_chord = (this_scale.step_five, this_scale.step_seven, this_scale.step_two )
self.six_chord = (this_scale.step_six, this_scale.step_one, this_scale.step_three )