Euclidean Rhythms
https://gyazo.com/377ce9906b77d07fea84bb8a54880247
元論文
要約
n-stepのなかでpulseを均等にk回鳴らすといい感じのリズムになるよ
16stepだけじゃなくてもっとへんてこな数字(5とか11とか)でもおもしろいよ
オフセットかけるのもおすすめだよ
16stepでの見た目
code:plain
1: x...............
2: x.......x.......
3: x....x....x.....
4: x...x...x...x...
5: x..x..x..x..x...
6: x..x.x..x..x.x..
7: x..x.x.x..x.x.x.
8: x.x.x.x.x.x.x.x.
9: x.xx.x.x.xx.x.x.
10: x.xx.x.xx.xx.x.x
11: x.xx.xx.xx.xx.xx
12: x.xxx.xxx.xxx.xx
13: x.xxxx.xxxx.xxxx
14: x.xxxxxxx.xxxxxx
15: xxxxxxxxxxxxxxx.
16: xxxxxxxxxxxxxxxx
code:hs
d1 $ sound "bd(5, 16)"
TidalCycles同様に使える
code:js
s("bd(5, 16)")
GLSL
floorを使う
code:javascript
function euclideanRhythms(pulses, steps, i) {
var t = i % (steps / pulses)
return floor(t) == 0
}
ちょっと元論文とリズム違うけどだいたい一緒だよ
時間を取得
code:javascript
function euclideanRhythmsInteg(pulses, steps, time) {
var t = floor(time) % (steps / pulses)
return floor(t) + fract(time)
}
これでシェーダでも使えるね
実装