# NaPoWriMo+GenMo2025_Haiga3

# **DotsFlippage**

For the 12th Poem of **NaPoWriMo/ NaPoGenMo 2025**, ***DotsFlippage*** is layered by ***TixyLand & SonicPi*** code. The output is inspired by the *Haiga*, which are illustrations accompanied by *Haiku* poems.

## Poem

```ocaml
Dots Flopping Flipping
Bursting with Hope, But the Truth
Is in the Blinking
```

## Video

%[https://youtu.be/wqreq5WB0Yc] 

## Code

### TixyLand

```javascript
pow((y/i+t)|(x/y)*i,sin(x))&hypot((sin(t)/i,cos(y/x)*t))

```

### SonicPi

```ruby
#remixed another beat , adding more elements through the rotations arrays and adding more synths and sounds
use_bpm 20
n = ring(:b3,:c4,:c5,:c6)

#my arrays of effects, synths, samples
Effects_Swap1 = [:ixitechno, :reverb, :panslicer]
FlavourRotation = [:Pretty_bell,:prophet,:piano,:dpulse]
PercRotation = [:bd_pure, :perc_snap, :bd_haus]
bdRotation = [:bd_haus, :bd_fat, :bd_gas, :bd_808]
DrumHardRotation = [:drum_heavy_kick,:drum_snare_hard,:drum_tom_hi_hard]

#counters
w = 0
x = 0

#liveloop commences
live_loop :bassflow do
  with_fx :flanger, mix: rrand_i(0.1,0.9) do
    with_fx :gverb, mix: [0.1,0.2,0.3,0.2,0.1].tick do
      use_random_seed (Time.now.to_i) / 3
      use_bpm 120 / (dice(4)+1)
      if one_in(2)
        sample :drum_bass_hard
        sleep 0.5
      else
        sample :drum_bass_soft
        sleep [0.25,1].choose
      end
    end
  end
end


live_loop :IslandFlavour do
  
  use_random_seed Time.now.to_i
  
  with_fx Effects_Swap1[rand(3)] do
    
    use_bpm 120 / (dice(4)+1)
    use_synth FlavourRotation[rand(4)]
    x += 1
    if (w % 4 == 0)
      play n.tick, on: spread(5,12).look, release: (1.0/24), pan: rrand(-0.8,0.8)
      sleep [(1.0/24),0.5,0.75].choose
    else
      play n.tick, on: spread(11,24).look, release: (1.0/24), pan: rrand(-0.8,0.8)
      sleep [(1.0/24),0.75].choose
    end
    # end
  end
end


live_loop :PercFlavour do
  
  use_random_seed Math.cbrt(Time.now.to_i)
  
  x += 1
  if (x % 4 == 0)
    sample PercRotation[rand(3)] if spread(5,12).tick
    sleep [(1.0/24),0.35].choose
  else
    sample PercRotation[rand(3)] if spread(5,8).tick
    sleep [(1.0/24),0.75,0.35].choose
  end
end




live_loop :flow do
  with_fx :ping_pong do
    sample bdRotation[rand(4)]if spread(7,24).tick
      sleep [(1.0/24),0.5,1].choose
    end
  end
  
  
  
  live_loop :startingline do
    sample bdRotation[rand(2)], rate: 1
    sleep 0.5
    4.times do
      sample DrumHardRotation[rand(4)]
      sample [:drum_bass_hard,:elec_blip,:glitch_robot2,:guit_em9].choose, rate: dice(6) * -1
      sample [:drum_bass_soft,:elec_chime,:glitch_robot,:perc_snap2,:perc_till].choose, rate: dice(6) * -1
      sleep [(1.0/24),0.75,1.25].choose
    end
  end
  
  
  
  
```
