In this scale there is no octave note in the middle. Don’t know whether people would come up with new music based on such scales, but to enable it is a first step.
Huh, it been a while … but was thinking about this again and made a monkeypatch for it:
#scale_patch.rb
class SonicPi::Scale
def initialize(tonic, name, num_octaves=1)
if name.is_a?(Array)
intervals = name
name = :custom
else
name = name.to_sym
intervals = SCALE[name]
end
raise InvalidScaleError, "Unknown scale name: #{name.inspect}" unless intervals
intervals = intervals * num_octaves
current = SonicPi::Note.resolve_midi_note(tonic)
res = [current]
intervals.each do |i|
current += i
res << current
end
@name = name
@tonic = tonic
@num_octaves = num_octaves
@notes = res
super(res)
end
end
On that topic, I thought I would do it myself, but then I ran into a small dilemma, partly due to my limited experience with software but also simply because I’m not sure I have the right perspective for how sonic pi should be. What do you all think is the right way to go about this, if it should be done at all?