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?