# MinaCoding2026_Sea

# 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

```ruby
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](https://soundcloud.com/llestreacha) · [SeaScapingRealm](https://soundcloud.com/llestreacha/seascapingrealm)

%[https://on.soundcloud.com/8i3cnTXzvQqwkGMje8] 

## SonicPi Remixed Code

```ruby
#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







```
