Table of contents
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()