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?