Table of contents
SporingWithFungi
For this week's Creative Code Challenge by @sableraph : Fungi, We are exploring the world of Spores Through the Coding Environments: SonicPi, Hydra & OpenScad.
Spores Breakdown
The Sounds are overlaid via a mix of SonicPi compositions. This is to reflect the movement of spores as they can be sporadic and concentrated at the same time. Plus reusing a sound made for the “Left Behind” Prompt as Spores and Fungi can be left behind
A coded 3D model of a mushroom being moved is done through Openscad
Then it is visually affected by Hydra and different perspectives(such as 360 and flips). Also reflects the movement of Fungi and a bit of a petri dish feeling.
Poetry
Fungi & Spores
Mushrooms, Molds and Many More
Endless Supply
To Supplement their Core
As They Wish for More Fungi, Aboard
Aboard a Trip
Containing Flips, Dips & splits
As it is: Fungi & Spores
Video
Code
OpenScad
cylinder(45,4,3);
translate([0,0,45]) color("orange",0.6)
cylinder(13,24,5);
cylinder(45,4,3);
translate([0,20,45]) color("yellow",0.6);
Sonicpi
live_loop :tron do
use_random_seed dice(100) / dice(10) + 1
notes = (ring :b1, :b4, :b2, :e1, :e2,:e4, :b3, :e3)
notes2 = (ring :a1, :a2, :f1, :f2, :c3, :a3 )
with_synth [:piano,:dsaw,:dsaw].choose do
with_fx [:ping_pong,:echo].tick, mix: rrand(0.1,0.7) do
with_fx(:slicer, phase: [0.25,0.125].choose) do
with_fx(:reverb, room: 0.5, mix: 0.3) do
n1 = (chord notes.choose, :minor).choose
n2 = (chord notes2.choose, [:major7,:minor].choose).choose
p = play n1, amp: 2, release: rrand(8,12), note_slide: [4,5,6,7].tick, cutoff: 30, cutoff_slide: 4, detune: rrand(0, 0.56)
control p, note: n2, cutoff: rrand(80, 120)
end
end
sleep [0.5,1,2,4,8].choose
end
end
end
live_loop :drum_hum do
with_fx :gverb, mix: rrand(0.3,0.6) do
with_fx :ixi_techno, mix: rrand(0.2,0.6) do
sample :ambi_glass_hum, rate: 0.5, decay: 3.5 , amp: dice(4)
sample :perc_snap2, rate: 0.5, decay: 3.5 , amp: dice(4)
sleep [0.5,1,2].choose
end
end
end
live_loop :gas_blip do
with_fx :whammy, mix: rrand(0.4,0.7) do
with_fx :wobble, mix: rrand(0.2,0.6) do
sample :bd_gas, rate: 0.5, decay: 3.5, amp: dice(4)
sample :elec_blip2, rate: 0.5, decay: 3.5,sustain: 7, amp: dice(4)
sleep [0.5,2,4,8].choose
end
end
end
with_fx [:ixi_techno,:wobble,:vowel].choose do
live_loop :BassAttack do
use_bpm 240
sample :perc_snap2 if spread(2,3).reverse
sample :drum_bass_hard if spread(5,6).tick
sample :elec_blup if spread(4,7).tick
sample :elec_blip2 if spread(1,2).tick
sleep 4
end
end
with_fx [:distortion,:flanger].choose do
#shorter rest time
live_loop :BassAttackFast do
use_bpm 480
sample :tabla_ghe3 if spread(2,3).reverse
sample :elec_bell if spread(5,6).tick
sample :elec_bong, beat_stretch: 4 if spread(4,7).tick
sample :elec_chime, beat_stretch: 2 if spread(1,2).tick
sleep 2
end
end
with_fx :whammy do
#give that piano feeling
live_loop :piano do
use_bpm 120
use_synth [:prophet,:pretty_bell].choose
bellTime = (scale [:d3,:c3].tick, [:major,:minor].choose).reverse.tick
play bellTime if (spread 10,24).tick
sleep 1
end
end
Hydra
s0.initScreen()
src(s0).modulateScale(src(s0).kaleid(4).repeat(3,3),0.5).diff(s0).modulateRotate(src(s0).scroll(()=> (time % 20 + 1)/40,3),0.3).out(o0)
src(s0).blend(o0).scale(1.1).out(o1)
src(s0).scale(1.1).repeat(2,2).invert(2).out(o2)
src(s0).modulatePixelate(src(s0).blend(osc(1,3,1)).invert(2).luma(0.5).scale(2).repeat(3).color(0.5,1,0.2)).out(o3)
speed = 0.25
render()