MinaCoding2023_Green

MinaCoding2023_Green

Greenish Gleem

GreenFulGreen

Today's MinaCoding Prompt is Green. GreenfulGreen will be coded audiovisually thru LiveCodeLab, Hydra and SonicPi.

  • The visuals are layered by animations coded in LiveCodeLab and Hydra in the background.

  • The sounds are coded in SonicPi using a concept of shadow maths and colour shuffling, where in this case the sounds are made through the values of different greens. As well as their shadow/shuffle counterparts to add variance to the soundscape. So when watching, you are experiencing both green as a colour and a sound.

Video

Poem

Greenful Greens
Grinning as they move across the screen
Gracing pixel by pixel
Grazing axel by axel
As the screen is now a Greenful Green

Code

LiveCodeLab

noStroke
ambientLight

scale 0.25

if time % 30 > 15
    simpleGradient teal, darkgreen,lightgreen
else
    background black
rotate Math.sqrt(time) + 0.2,Math.hypot(time,sin(time)) + 0.2, Math.cbrt(time) + 0.2

400 times with i
    fill forestgreen
    rotate time * 2 + sin(i)
        move cos(time), Math.sqrt(cos(time)) + 1, sin(Math.cbrt(time % 40)) + 1
            box 1, 0.4, 0.07

200 times with i
    fill color(10,200,75)
    rotate time * 2 + sin(i)
        move 1,1,1
            ball 2, 2, 0.07

100 times with i
    fill color(73,225,10)
    rotate time * 2 + sin(i)
        move sin(time % 20),cos(time),Math.tanh(time)
            box 3, 0.4, 0.07 * wave(0.03)

Hydra

osc(4,1,1).color(0,[1,0.75,0.5,0.25],[0.5,0.75,0.35,0.15,1]).kaleid(4)
.scrollX([0.5,-0.5]).scrollY([0.4,0.3,-0.2,-0.1,0.1])
.scale(()=> (time % 22+ 1)/12).rotate(()=> time % 20 + 1).out()

speed = 0.33

SonicPi

#Color +Shadows
#RGB Values + XYZ

#Shadeofred [R,G,B, X, Y, Z]



# Teal : 0, 128, 128,11.614, 16.996, 23.089
# ForestGreen : 34, 139, 34, 10.18, 18.92, 4.629
# PaleGreen : 152, 251,152,53.111, 77.934, 41.948

#shadow length equation is Length = height / tan(angle)


#Creating Arrays
Teal = [0, 128, 128,11.614, 16.996, 23.089]
ForestGreen = [34, 139, 34, 10.18, 18.92, 4.629]
PaleGreen = [152, 251,152,53.111, 77.934, 41.948]



with_fx :ixi_techno do
  live_loop :greens do
    i = 0


    with_fx :whammy, mix: rrand(0.1,0.3) do
      use_synth :pretty_bell
      play (Teal[i] + ForestGreen[i])/5 ,release: 3
      play Teal[i] ,release: 3
    end


    with_fx :ping_pong, mix: rrand(0.3,0.75) do
      use_synth :chiplead
      play (PaleGreen[i] + ForestGreen[i])/5 ,release: 3, decay: dice(4)
    end

    sleep [0.5,1,2].choose
    if i < 7
      i+= 1
    end
  end
end

live_loop :greenshuffle do

  TealShuffle = Teal.shuffle()
  ForestGreenShuffle = ForestGreen.shuffle()
  PaleGreenShuffle = PaleGreen.shuffle()

  i = 0


  with_fx [:ixi_techno,:whammy,:flanger].choose , mix: rrand(0.2,0.3) do
    use_synth [:pretty_bell,:piano].choose
    play (TealShuffle[i] + ForestGreenShuffle[i])/4 ,release: 3
    play Math.lgamma(TealShuffle[i]/5 + 2),release: 3
  end

  with_fx :gverb, amp: dice(2), mix: rrand(0.2,0.6) do
    with_fx :ping_pong, mix: rrand(0.3,0.75) do
      use_synth [:piano,:chiplead].choose
      play (PaleGreenShuffle[i] + ForestGreenShuffle[i])/5 ,release: 3, decay: dice(4)
    end
  end


  sleep [0.5,1,2,Math.cbrt(TealShuffle[i] + 2)].choose

  if i < 7
    i+= 1
  end
end


#shadow length component
with_fx :ixi_techno do
  live_loop :greensshadow do
    i = 0

    with_fx :ping_pong, mix: rrand(0.2,0.9) do
      with_fx :pitch_shift, mix: rrand(0.2,0.3) do
        use_synth :piano
        play (Teal[i]/Math.cbrt(70)).abs + (ForestGreen[i]/Math.hypot(70,10)).abs/30  + 15,release: 3, sustain: 8
        sleep [0.25,0.5,1,2,4].choose
      end
    end

    if i < 7
      i+= 1
    end
  end
end