Melodic Inversion

#1

Hey,

I am preparing a workshop for kids exploring ideas of classical music with Sonic Pi.
Making a sketch to demonstrate the inversion of a melody in Sonic Pi I stumbled upon a problem: the melody can be inverted by multiplying it with -1; with the exception of the zero.
As a workaround, this does the job:

set :Bpm, 40


set :Tonleiter, scale(:g3, :mixolydian, num_octaves: 1).drop_last

set :Melodie, (ring 1, 2, 3, 4)

set :Rhythmus, (ring 0.2, 0.6, 0.4, 0.3)

live_loop :spieler do
  use_bpm get[:Bpm]
  play get[:Tonleiter][-1 * get[:Melodie].tick] + 12, amp: 0.8, release: 0.2
  sleep 0.5*get[:Rhythmus].look
end

The melody is actually in a3 aeolian, but by declaring it mixolydian I can start with the one and omit the zero. This produces the correct notes BUT would be a BAD IDEA to teach because it causes confusion and not clarity.
There must be other ways to approach this in a straightforward way, am I right?

0 Likes