So, here is a sample, just walking the outside points as you can see in the picture. It sounds pretty interesting after fooling around with some constants:
#Penrose Tilings test 1 - Aurolis
#Playing the outer points of a circular penrose tiling, using
#polar coordinates => length=frequency, angle = rest
base_note=:C3.to_i
#Or uglify, it's in the ear of the beholder =)
beautify=1.0
bpms=70.0
use_bpm bpms
angie_factor=(bpms/60.0) * 30.0
outer_rad=(ring 68, 78, 65, 72, 72, 76, 73, 72, 66, 79, 68, 79, 66, 72,
73, 76, 73, 73, 66, 79, 69, 79, 67, 73, 74, 77,
74, 73, 67, 80, 69, 79, 67, 73, 73, 76,73,72,
66,79,68, 79, 66, 72, 73, 76, 73, 72, 65, 78)
outer_ang=(ring 5.5, 1.1, 9.5, 10.3, 9.8, 9.7, 10.3, 1.1, 5.6, 5.4,1.2,
9.2,10.2,9.6,9.8, 10.1,9.2,1.1,5.6,5.4,1.2,9.2,10.1,9.7,
9.7,9.9,9.2,1.2,5.4,5.5,1.1,9.1,10.4,9.5,9.6,10.2,
9.3,1.3,5.3,5.7,0.99,9.4,10.2,9.8,9.6,10.3,9.5,1.1,5.5)
define :to_note do |n1,n2|
return (([n2,n1].max - [n2,n1].min) * beautify) + base_note
end
n1=outer_rad.tick
n2=outer_rad.tick
with_fx :reverb, room: 1 do
with_fx :lpf do |fx1|
loop do
s=synth :chipbass, note: to_note(n1,n2), release: 0.2
control fx1, cutoff: (range 90,110,rrand(1,10)).mirror.tick(:fxt)
sleep [0.1,outer_ang.tick(:angie)/angie_factor].max
n2=outer_rad.look
n1=outer_rad.tick
end
end
end