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
GrassClanTalesforGenerationsTalesofExcursionsTalesofTreesTreesThatTransformNeverConfirmedTalesofScenesThat the ClanHad a Hand
Video
Code
Locomotion
--fall trust other triodancer{ url = "leafy.glb", animation = 1, dur = 2, z = 0, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range -1010 (osc 0.5) }; -- range allows for opposite directionsdancer{ url = "leafy.glb", animation = 1, dur = 2, z = 2, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range -1010 (osc 0.5) }; -- range allows for opposite directionsdancer{ url = "leafy.glb", animation = 1, dur = 2, z = 4, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range -1010 (osc 0.5) }; -- range allows for opposite directions--fall trust triodancer{ 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 falldancer{ 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 :arrangement1do
use_bpm 50
use_synth [:fm,:prophet,:pretty_bell].choose
with_fx :ixi_technodo
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.2do
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_technodo
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.1do
play chord(:f3, :major)
play_pattern_timed chord(:f4, :major), 0.25
sleep [0.25,0.5,1].tick
endend
live_loop :arrangement2do
use_bpm 50
use_synth [:fm,:prophet,:pretty_bell].choose
with_fx :ixi_technodo
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.2do
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_technodo
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.1do
play chord(:f3, :major)
play_pattern_timed chord(:f4, :major), 0.25
sleep [0.25,0.5,1].tick
endend
live_loop :arrangement3do
use_bpm 50
use_synth [:fm,:prophet,:pretty_bell].choose
with_fx :ixi_technodo
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.2do
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_technodo
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.1do
play chord(:f3, :major)
play_pattern_timed chord(:f4, :major), 0.25
sleep [0.25,0.5,1].tick
endend