Sonntag, Juli 12, 2026

Shaman Bell - a wake up call to … (the buffalos and the snakes)

# Welcome to Sonic Pi
# Shaman Bell - a wake up call to … (the buffalos and the snakes)
use_debug false
set :bpm, 60 # use_bpm 60
with_fx :reverb, room: 0.6, mix: 0.4 do
  live_loop :shaman_drum do
    use_bpm get(:bpm)
    sample :bd_tek, amp: rrand(0.9, 1.3), cutoff: rrand(60, 80)
    sleep 0.45 + rrand(-0.03, 0.03) # leichte Schwankung
  end
end
# Sphere
with_fx :slicer, phase: 16, mix: 0.15 do
  with_fx :wobble, phase: 8, mix: 0.3 do
    live_loop :sphere do
      use_synth :dark_ambience
      # weiche Lautstärkewelle
      amp_wave = (range 0.1, 0.3, step: 0.01).mirror.tick
      play :e2, sustain: 8, release: 4, amp: amp_wave, cutoff: rrand(60, 90)
      sleep [8].choose # orig: 8
    end
  end
end
# Bell
with_fx :reverb, room: 0.9, mix: 0.6 do
  with_fx :echo, phase: 0.375, mix: 0.25 do
    live_loop :bell do
      use_bpm 110
      amp_wave = (range 0.2, 0.4, step: 0.05).mirror.tick
      with_fx :slicer, phase: 0.5, mix: 0.3 do
        sample :perc_bell, rate: rrand(0.7875, 0.8125), amp: amp_wave
        sleep 0.5 + rrand(-0.05, 0.05)
      end
    end
    live_loop :shaker do
      use_bpm 110
      amp_wave = (range 0.1, 0.3, step: 0.05).mirror.tick
      with_fx :lpf do
        sample :perc_snap, rate: 1.2, amp: amp_wave
        sleep 0.25
      end
    end
  end
end
# BPM-Fade
live_loop :bpm_fade, sync: :shaman_drum do
  start = get(:bpm)
  ziel  = rrand(30, 90)
  steps = [16,32,64].choose # orig: 64
  dauer = [128].choose # orig: 128
  steps.times do |i|
    t = i.to_f / (steps - 1)
    curve = t ** 2 # quadratische Kurve
    bpm = start + (ziel - start) * curve
    set :bpm, bpm
    sleep dauer.to_f / steps
  end
  sleep rrand(0, 256)
end