SciArtSeptember2023_Tale

SciArtSeptember2023_Tale

Tales From A Group Unknown

GrassClanTales

For the 29th prompt of SciArtSeptember2023: Tale, “GrassClanTales” takes Hydra, Locomotion & SonicPi code to tell the story of the GlassClan and their time in Zenthian.

Poetry

Grass Clan
Tales for Generations
Tales of Excursions
Tales of Trees
Trees That Transform
Never Confirmed
Tales of Scenes
That the Clan Had a Hand

Video

Code

Locomotion

--fall trust other trio
dancer{ url = "leafy.glb", animation = 1, dur = 2, z = 0, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range -10 10 (osc 0.5) }; -- range allows for opposite directions
dancer{ url = "leafy.glb", animation = 1, dur = 2, z = 2, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range -10 10 (osc 0.5) }; -- range allows for opposite directions
dancer{ url = "leafy.glb", animation = 1, dur = 2, z = 4, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range -10 10 (osc 0.5) }; -- range allows for opposite directions


--fall trust trio
dancer{ url = "leafy.glb",size = 2, animation = 3, dur = osc 0.5, z = 0, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range 10 -10 (osc 0.5) };
dancer{ url = "leafy.glb",size = 2, animation = 5, dur = osc 2.5, z = 2, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range 10 -10 (osc 0.5) };
dancer{ url = "leafy.glb",size = 2, animation = 5, dur = osc 2.5, z = 4, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range 10 -10 (osc 0.5) };


--fighting the fall
dancer{ url = "leafy.glb", animation = 2, dur = 2, z = range 4 - 4 (osc 3), x = -2, y = range 10 -10 (osc 0.5),rx = 360, x = osc 0.5,lz = range 10 -10 (osc 0.5) };
dancer{ url = "leafy.glb", animation = 2, dur = 2, z = range 4 - 4 (osc 3), x = 2, y = range 4 -4 (osc 0.5),rx = 360, x = osc 0.5,lz = range 10 -10 (osc 0.5) };

SonicPi

live_loop :arrangement1 do
  use_bpm 50
  use_synth [:fm,:prophet,:pretty_bell].choose

  with_fx :ixi_techno do
    play chord([:c4,:f4].choose, :major,decay: 3)
    play_pattern_timed chord(:c5, :major), 0.25
    sleep [1,0.5, 0.25].choose
  end

  with_fx :krush, mix: 0.2 do
    play chord([:g3,:a3].tick, :major)
    play_pattern_timed chord([:g4,:f4].choose, :major), 0.25
    sleep [1,0.5, 0.25].choose
  end

  with_fx :ixi_techno do
    play chord([:a3,:g3].choose, :minor)
    play_pattern_timed chord(:a4, :minor), 0.25
    sleep [1,0.5,0.25].tick
  end

  with_fx :krush, mix: 0.1 do
    play chord(:f3, :major)
    play_pattern_timed chord(:f4, :major), 0.25
    sleep [0.25,0.5,1].tick
  end

end

live_loop :arrangement2 do
  use_bpm 50
  use_synth [:fm,:prophet,:pretty_bell].choose

  with_fx :ixi_techno do
    play chord([:c4,:f4].choose, :major,decay: 3)
    play_pattern_timed chord(:c5, :major), 0.25
    sleep [1,0.5, 0.25].choose
  end

  with_fx :krush, mix: 0.2 do
    play chord([:g3,:a3].tick, :major)
    play_pattern_timed chord([:g4,:f4].choose, :major), 0.25
    sleep [1,0.5, 0.25].choose
  end

  with_fx :ixi_techno do
    play chord([:a3,:g3].choose, :minor)
    play_pattern_timed chord(:a4, :minor), 0.25
    sleep [1,0.5,0.25].tick
  end

  with_fx :krush, mix: 0.1 do
    play chord(:f3, :major)
    play_pattern_timed chord(:f4, :major), 0.25
    sleep [0.25,0.5,1].tick
  end

end

live_loop :arrangement3 do
  use_bpm 50
  use_synth [:fm,:prophet,:pretty_bell].choose

  with_fx :ixi_techno do
    play chord([:c4,:f4].choose, :major,decay: 3)
    play_pattern_timed chord(:c5, :major), 0.25
    sleep [1,0.5, 0.25].choose
  end

  with_fx :krush, mix: 0.2 do
    play chord([:g3,:a3].tick, :major)
    play_pattern_timed chord([:g4,:f4].choose, :major), 0.25
    sleep [1,0.5, 0.25].choose
  end

  with_fx :ixi_techno do
    play chord([:a3,:g3].choose, :minor)
    play_pattern_timed chord(:a4, :minor), 0.25
    sleep [1,0.5,0.25].tick
  end

  with_fx :krush, mix: 0.1 do
    play chord(:f3, :major)
    play_pattern_timed chord(:f4, :major), 0.25
    sleep [0.25,0.5,1].tick
  end

end

Hydra

s0.initScreen()

src(s0).blend(src(s0).kaleid(2).scale([0.25,0.5,1,2,3])).
diff(src(s0).scale(2.5).brightness(0.6).rotate(()=> (time % 10 + 1)/12)).out()