WCCC_BeneathTheSurface

WCCC_BeneathTheSurface

Playing with Pixels

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