Get a range of notes

note_range  low_note (note), high_note (note)

Produces a ring of all the notes between a low note and a high note. By default this is chromatic (all the notes) but can be filtered with a pitches: argument. This opens the door to arpeggiator style sequences and other useful patterns. If you try to specify only pitches which aren’t in the range it will raise an error - you have been warned!

Introduced in v2.6

Examples

# Example 1

(note_range :c4, :c5)



# => (ring 60,61,62,63,64,65,66,67,68,69,70,71,72)



# Example 2

(note_range :c4, :c5, pitches: (chord :c, :major))



# => (ring 60,64,67,72)



# Example 3

(note_range :c4, :c6, pitches: (chord :c, :major))



# => (ring 60,64,67,72,76,79,84)



# Example 4

(note_range :c4, :c5, pitches: (scale :c, :major))



# => (ring 60,62,64,65,67,69,71,72)



# Example 5

(note_range :c4, :c5, pitches: [:c4, :g2])



# => (ring 60,67,72)



# Example 6

live_loop :arpeggiator do
 
  play (note_range :c4, :c5, pitches: (chord :c, :major)).tick
  sleep 0.125
end



 
# try changing the chord