MinaCoding2026_Sea
Seaside Sounds

SeaScapingRealm
For MinaCoding2026 Day 29: Random & Day 5: Sea, SeaScapingRealm coded in SonicPi explores/embraces the soundscapes that can occur seaside through a remix coded composition.
Poem
Seaside Terms
SeaSide Flight
fluidity, complexity
multiplicity
Coming wave after wave
From night to Day
Where the water reaches sight
As early birds get the worms
Audio
IllestPreacha · SeaScapingRealm
https://on.soundcloud.com/8i3cnTXzvQqwkGMje8
SonicPi Remixed Code
#Remixing a former code base
def neighboring(naming,looping,looping2,timer, timer2)
#random 36 list array with a seed, to make sure it is always random
use_random_seed Time.now.to_i / timer
cells = 36.times.map { Random.rand(0...2)}
#allows for cell automata rules to include every variable
cells1 = cells.push(cells[0],cells[1])
puts cells1
naming = []
#length of array and push every neighbor of 3 into the array
for i in -2..cells1.length-3 do
naming.push([cells1[i],cells1[i+1],cells1[i+2]])
end
#cellular automata rules
splash = [[0,0,0],[0,1,0],[1,1,1],[0,1,0]]
splash2 = [[1,0,0],[0,1,1]]
splash3 = [[1,0,1],[1,1,0]]
x = x
x1 = x1
x2 = x2
x3 = x3
x4 = x4
x5 = x5
live_loop looping do
use_random_seed Time.now.to_i / timer2
for i in 0..naming.length do
if splash.include? naming[i]
with_fx :ping_pong, mix: 0.65 do
with_fx :ixi_techno, mix: [0.1,0.3,0.5,0.25,0.15].tick do
use_bpm [60,120,30,240].choose
sample [x,x4,x5,x1].choose,pitch: dice(5), beat_stretch: [2,3,4].choose
end
end
sleep [0.5,1].choose
else if splash2.include? naming[i]
use_bpm [60,120,30,240,480].choose
sample [x,x1,x2,x3].choose, rate: [-1,0.5,0.25,2].choose
sleep [0.5,1,2,4].choose
else
with_fx :flanger do
use_bpm [15,30,45,60,120,30,240,480].choose
sample [x,x1,x2,x3,x4,x5].choose,sustain: dice(3) + 1, rate: [-3, -1,0.5,0.25,-1.75,2,3].choose
end
sleep [1,2,4].choose
end
end
end
live_loop looping2 do
use_random_seed Time.now.to_i / timer2 + 1
sample [x,x1,x2,x3,x4,x5].choose,sustain: dice(3) + 1, beat_stretch: 2
sleep [0.5,1,2].choose
end
sleep [0.25,0.5,1].choose
end
end
# initalizing variables to pass through by adding more loops to give variance
live_loop :seascape1 do
use_random_seed Time.now.to_i/5
neighboring(@neighbors1,:pass1,:loop1,2,4)
sleep [1,2].choose
neighboring(@neighbors2,:pass2,:loop2,3,5)
neighboring(@neighbors3,:pass3,:loop3,13,25)
sleep [1,2,4].choose
neighboring(@neighbors4,:pass4,:loop4,11,64)
sleep [0.5,1,2].choose
end
live_loop :seascape2 do
use_random_seed Time.now.to_i/4
neighboring(@neighbors5,:pass5,:loop5,4,7)
neighboring(@neighbors6,:pass6,:loop6,9,12)
sleep [2,4,6].choose
neighboring(@neighbors7,:pass7,:loop7,1,164)
neighboring(@neighbors8,:pass8,:loop8,3.5,125)
sleep [1,2,4].choose
end
#ambiance
live_loop :ambi do
with_fx :echo, mix: [0.1,0.8,0.3,0.5,0.25].tick do
with_fx :ixi_techno, mix: [0.2,0.7].choose do
use_random_seed Time.now.to_i/2
use_bpm [120,80,220].choose
sample [:perc_bell,:ambi_piano].choose, rate: (rrand 0.125,1.5)
sleep rrand(4,8)
end
end
end



