A snippet for fun "perc_bell_zen"

Hi there! if you need a musical support to help you to meditate, here is one: a simple variation on the famous Sam’s @samaaron perc_bell example in the doc. If you have an idea how to perform (or develop) it, tell it to me, it will be with pleasure! :grin:

set_volume! 2

use_bpm_mul 0.8
with_fx :reverb, mix: 0.7 do
  live_loop :perc_bell_zen do
    sample :perc_bell, rate: rdist(-5, 5), pan: 1 if rand< 0.3
    sample :tabla_tun3, pan: -1 if rand< 0.5
    sleep rrand(0.5,2)
  end
end
1 Like

Hi
this is very chilled - when you mention Sam’s example do you mean Haunted Bells? I think in your version rdist(-5,5) only expects positive integer arguments - it’s not throwing an error, but you won’t get any negative values for rate (if that’s what you’re expecting), unless the 1st arg is larger than the 2nd, e.g. rdist(4, 1); rate values close to zero are verrrryyy slow :wink:

PD-Pi

1 Like

hello everyone and Brendan @brendanmac
Yes exactly! it is this famous example “Haunted Bells” I wanted to transform a little, just for fun! You are right for “rdist”, it’s not the good thing because I want some negative values even they are very slow… :wink: I like this idea of musically dilating time or being able to stretch it like a rubber band…
So I think it’s more interesting, more mysterious like this with “rrand”…If you see something else to do in this snippet, you are welcome!

use_bpm_mul 0.8
with_fx :reverb, mix: 0.7 do
  live_loop :perc_bell_zen do
    sample :perc_bell, rate: rrand(-5, 5), pan: 1 if rand< 0.3
    sample :tabla_tun3, pan: -1 if rand< 0.5
    sleep rrand(0.5,2)
  end
end
1 Like

I fiddled with this a bit. This version has more of a pulse, which I think helps with entrainment, and I used rrand instead of rdist to have some backwards samples.

set_volume! 2


use_bpm_mul 0.8
with_fx :reverb, mix: 0.7 do
  live_loop :perc_bell_zen do
    sample :perc_bell, rate: rrand(-0.5, 2), pan: [-1,0.5, 0, -0.5, 1].choose if rand< 0.4
    sample :tabla_tun3, pan: [0.5, 0.25, 0, -0.25, -0.5].choose if rand< 0.2
    sleep [0.5, 1, 1.5].choose
  end
end

1 Like

thank you Harry.! … We have the impression of being in a Webernian atmosphere where silence has an essential role in the musical flow. The result is a very strange and fascinating atmosphere at the same time… Sam Aaron’s original piece of code could almost become an exquisite corpse “cadavre exquis” for the Sonic Pi community :smiley:

. . . and I added a tritone, because, well, singing bowls. And I removed the reverse playback, because that sound is a little unnerving and tense.

set_volume! 2

use_bpm_mul 0.8
with_fx :reverb, mix: 0.7 do
  live_loop :perc_bell_zen do
    bell = rrand(0, 0.4)
    rate = rrand(0.2, 1.5)
    pan = [-1,0.5, 0, -0.5, 1].choose
    sample :perc_bell, rate: rate, pan: pan if bell
    sample :perc_bell, rate: rate * 0.703, pan: pan if bell
    sample :tabla_tun3, pan: [0.5, 0.25, 0, -0.25, -0.5].choose if rand< 0.2
    sleep [0.5, 1, 1.5].choose
  end
end

Pd-Pi

1 Like

Very interesting too :+1:
I discover this:sample :perc_bell, rate: rate * 0.703, pan: pan if bell
Could you just comment and explain the “pan if bell” and why the rate is multipied by this unique value 0.703? :upside_down_face:

Hi
‘bell’ is a variable name I gave to the rand(0, 0.4) function - it’s the same as writing if rand(0, 0.4), just clearer (for me); *0.703 plays the same sample, but 3 whole tones lower (approximately)

PD-Pi

1 Like