The prompt for Genuary 2023 Day 25 is
Yayoi Kusama
Inspired by Yayoi Kusama's Work, Today's submission is made by thinking of circles and what type of circular life they might live
The visuals are coded by using Hydra twice and in between LivecodingYoutube
For the audio, I used the radius and area of a circle equation within the SonicPi code to compose the soundscape
Poem
CIrcles from many viewpoints
Where they intersect at multiple joints
For there are many screens and angles
Where they loop and tangle
As they slither and dangle
As they grow and huddle
As they roam and double
Hydra Code #1
shape(200, 0.5, 1.5)
.scale(() => (time % 15 + 2) / 17, [0.5,1,2].smooth())
.color([0.25,0.5,1,2].smooth(0.75), 0.3, 0)
.repeat(1.552, 2)
.luma([0.11,0.25].smooth())
.modulateScale(osc(3, 0.5)
.scale(() => (time % 15 + 2) / 13), [-0.6,0.6])
.modulateRotate(osc(3, 0.5).kaleid(90).color(0,0,1).luma(), -0.6)
.modulatePixelate(shape(200, 0.5, 1.5).color(()=> (time % 11)/10,1,2)
.kaleid(90)
.luma(0.47).repeat(3,3))
.add(o0, 0.5)
.scale(() => (time % 15 + 2) / 13)
.add(o0,0.25)
.out();
speed = 0.25
LiveCodingYoutube
create(3,3,"KCXfWcvbBXI")
play(all)
speed([0,4,5],0.5)
speed([1,6,7],0.75)
speed(2,1.25)
speed([3,8],1.5)
HydraCode #2
s0.initScreen()
src(s0).scale(()=> (time % 40+1)/4).modulateScale(shape(200,0,5),-0.6).out()
SonicPi Code
#circle is A = π * r^2.
# :: access constants in class, therefore in this case , it access PI in the Math class
def circle(radius)
area = Math::PI * (radius ** 2)
area
end
#shuffles the Radii into an array of numbers ranging from 15 to 40
Radii = (15...40).to_a.shuffle()
Radii2 = (15...40).to_a.shuffle()
def synths (looping,sound,effects)
i = 0
puts Radii[0]
puts Radii2[0]
live_loop looping do
#reshuffles Radii2 per loop
Radii2.shuffle()
puts Radii2[0]
#With the numbers used in the list , divison by 50 is good for note
use_synth sound
puts circle(Radii[i]) / 50
#using the area to control the scales and chords
with_fx effects do
play chord(circle(Radii[i]) / 50, :minor)
play chord(circle(Radii2[i]) / 50, :major)
end
if i >= Radii.length - 1
i = 0
end
i += 1
sleep [0.5,1,1.5,2].choose
end
end
#using an additional loop , to loop the above compositions
j = 0
live_loop :ochestra do
#original synths
synths(:hollowing,:hollow,:ping_pong)
synths(:pianoing,:piano,:echo)
synths(:chipbassing,:chipbass,:ping_pong)
#these synths variations will occur every second sound
if j % 2 == 0
#additional synths
synths(:pianoing,:piano,:echo)
synths(:chipbassing2,:chipbass,:ixi_techno)
synths(:prettybelling,:pretty_bell,:ixi_techno)
end
j =+ 1
sleep [1,2,4].choose