WCCC_BeneathTheSurface
Kofi / Illestpreacha
3 min read
For this week's Creative Code challenge by @sableRaph:"Beneath The Surface", BeneathThePixels is coded in Locomotion, Hydra & SonicPi.
The visuals are representing a scene that has more to it than meets the eye while the sounds takes the first half of the poem and goes beneath it values to make the sounds in base30 to base36
Poem
Under & Beneath the Sea
What is in this Deep Void
Below to Join
or willing to Flee
Flee to the Pixels within the Screen
Flee even below
below where the sun never goes
Video
Code
Locomotion
point {x = range 0 17 (osc 0.15), z = range 0 6 (osc 0.35) , intensity = range 8 25 (osc 0.5), color = 0x00fff0};
directional {z = 6, intensity = range 0 10 (osc 0.5), color = 0xff0000};
r2 = step [3,4,5,6] (phase 4 0);
r = step [0.5,2,1,4] (phase 16 0);
for [0..10] (\n -> dancer {url = "Garden.glb", dur = n*0.5, x = (n)+(-20), y = -4 + osc(1) * sin(n), z = -10, rx = r2 * r2 * r2, ry = 0, rz = 0, size= r});
b n = dancer {url = "Garden.glb",dur = 3.5, rx = range n n*45,lz = n * 5, ry = n + range 10 260 (osc n * 0.215 / 10), x = n - (3) * 3,animation = [n,0.25, n + (-2),0.5,n*3,07.5,n*2.1], size = range -5 n/5};
for [0..15] b;
dancer{ url="StoneFigure.glb", x = range 5 -5 (osc 0.5), z = -2, ry=3.14, ly = range 5 -5 (osc 0.5), size= 0.5 };
dancer{ url = "StoneFigure.glb", animation = 4, 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 = "StoneFigure.glb", animation = 4, dur = 2, z = 0, x = -2, y = -3,rx = 360, x = osc 0.5,lx = range 10 -10 (osc 0.5) };
dancer{ url = "Garden.glb", animation = 4, dur = 2, z = 0, x = -2, y = -3,rx = 360, x = osc 0.5,lz = range 10 -10 (osc 0.5) };
dancer{ url="StoneFigure.glb", x = range -5 5 (osc 0.5), z = -2, ry=3.14, size= 0.5, lx = range 5 -5 (osc 0.5) };
dancer{ url="Garden.glb", x = -4, y = range -5 5 (osc 0.5), z = -2, ry=3.14, size= 0.5 }; -- up down
dancer{ url="Garden.glb", x = 4, animation = 6, y = range -5 5 (osc 0.5), z = -2, ry=3.14, size= 0.5 };
Hydra
s0.initScreen()
src(s0).modulateScale(s0).modulateScale(src(s0).scale(0.75)).out()
SonicPi
#l stands for line of poetry
l1 = ("under".to_i(32) - "&".to_i(32) + "beneath".to_i(32) - "the".to_i(32) + "sea".to_i(32) ) % 2024
l2 = ("what".to_i(32) - "is".to_i(32) + "in".to_i(32) - "this".to_i(32) + "deep".to_i(32) - "void".to_i(32) ) % 2024
l3 = ("below".to_i(36) - "to".to_i(32) - "join".to_i(32)) % 2024
l4 = ("or".to_i(36) + "willing".to_i(33) - "to".to_i(32) + "flee".to_i(27)) % 2024
live_loop :dance do
use_random_seed Time.now.to_i / 3
with_fx :ping_pong do
use_bpm l4/l3
sample [:glitch_perc1,:glitch_perc3,:glitch_bass_g].tick, amp: 1.5, rate: [l3/l4,l4/l3,l1/l4,l2/l3].tick + 0.1 if spread(l2,l1).look
sleep [0.5,1,2,4,8].choose
end
end
live_loop :dance1 do
use_random_seed Time.now.to_i / 2
with_fx :ping_pong do
sample [:bd_zome,:ambi_piano,:elec_bong].choose, amp: 1.5, rate: [l3/l4,l4/l3,l1/l4,l2/l3].choose + 0.1 if spread(l2,l1).look
sleep [0.25,0.5,1,2].choose
end
end
live_loop :dance2 do
use_random_seed Time.now.to_i
with_fx :ixi_techno do
sample [:guit_e_fifths,:elec_chime,:bd_boom].choose, pitch: 7, pitch_stretch: [1,2].tick, amp: 1.5, rate: [l3/l4,l4/l3,l1/l4,l2/l3].choose + 0.1 if spread(l2,l1).look
sleep [0.25,0.5,1,2,4].choose
end
end
0
Subscribe to my newsletter
Read articles from Kofi / Illestpreacha directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by