Genuary2023_YayoiKusama

Genuary2023_YayoiKusama

LifeOfCircles

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