MinaCoding2025_Free

Bluesprogattini

For MinaCoding2025 Prompt 30: Free, Bluesprogattini coded in OpenScad & SonicPi is an exploration of new species in the realm.

Poem

Bluesprogattini, are more than just creatures
With their geometrical features
Thinking of their futures
Their Cultures
As their movements have been translated
As new thoughts have been Created

Video

Code

OpenScad

union(){

//top    
translate([0,35,95]) color("orange",1.0) sphere(22);
translate([-35,35,95]) color([0.15, 0.25, 0.47]) sphere(42);
translate([0,55,95]) color("orange",1.0) sphere(22);
translate([0,15,95]) color("orange",1.0) sphere(22);
translate([0,35,55]) color([0.15, 0.25, 0.47]) sphere(22);
translate([-35,35,55]) color([0.15, 0.25, 0.47]) sphere(22);

//teal section
translate([0,55,75]) color("teal",1.0) sphere(22);   
translate([0,35,75]) color("white",1.0) sphere(22);
translate([0,15,75]) color("teal",1.0) sphere(22);

 //eyes
 translate([20,45,75]) color("black",1.0) sphere(10);   
 translate([20,25,75]) color("black",1.0) sphere(10); 

translate([27,25,75]) color("gold",1.0) sphere(5);
translate([27,45,75]) color("gold",1.0) sphere(5);      

//cylinder
translate([5,25,-35]) color([0.25,0.75,0.93]) cylinder(h = 125, r = 9);
translate([5,35,-35]) color([0.25,0.75,0.93]) cylinder(h = 125, r = 9);
translate([5,45,-35]) color([0.25,0.75,0.93]) cylinder(h = 125, r = 9);

//cylinder

translate([-25,105,75]) rotate([90,0,0]) color("white",1.0) cylinder(h = 145, r = 14);

}

SonicPi

live_loop :bassflow do
  with_fx [:reverb,:echo].tick, mix: [0.6,0.4,0.2,0.1].tick do
    use_random_seed Time.now.to_i / 2
    use_bpm 120
    if one_in(2)
      sample [:elec_blip,:elec_blup].tick , rate: [0.5,1,-0.87,0.25].tick, amp: dice(3)+ 1
      sleep 0.5
    else
      use_bpm [120,60,30].choose
      sample :drum_bass_soft, amp: 2.5
      sleep [0.25,0.5,1].tick
    end
  end
end


live_loop :heavydrum do
  with_fx :ixi_techno, mix: [0.75,0.5,0.625].choose do
    use_random_seed Time.now.to_i / 4
    if one_in(2)
      use_bpm [120,60,30,15].choose
      sample :drum_cymbal_closed
      sleep 0.5
    else
      use_bpm [120,60,30,15].choose
      sample :drum_heavy_kick
      sleep 0.25
    end
  end
end


live_loop :heavydrum do
  with_fx :ixi_techno, mix: ((use_random_seed Time.now.to_i / 10) % 10 + 1)/11 , phase: dice(3) do
    use_random_seed Time.now.to_i / 3
    if one_in(2)
      use_bpm [240,120,60].choose
      sample :drum_cymbal_closed
      sleep [0.5,0.75,1].tick
    else
      use_bpm [240,120,60].choose
      sample :drum_heavy_kick
      sleep [0.25,0.5].choose
    end
  end
end

live_loop :drumming do
  use_bpm [240,120,60].choose
  use_random_seed Time.now.to_i / 2
  sample :drum_cymbal_pedal
  sample :drum_splash_hard
  sleep [4,8,2].choose
end


live_loop :moredrums do
  use_bpm [240,120,60].choose
  with_fx [:flanger,:ping_pong].tick, mix: ((use_random_seed Time.now.to_i * 2) % 10 + 1)/11  do
    with_fx :echo, mix: rrand(0.1,0.7), amp: dice(4) do
      sample [:tabla_ghe2,:tabla_ghe3,:tabla_ghe4].tick, beat_stretch: [0.5,1,0.75].tick
      sleep [1,2].choose
    end
  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

Kofi / Illestpreacha
Kofi / Illestpreacha