Tidalcycles - 乱数
Tidal では、整数、少数をランダムに出力することが可能です。
この手法を使用して、パターンの一部をランダムに削除することも可能です。
rand
Rand 関数を使用して、0 - 1 の間で乱数を発生させます。
エフェクトのコントロールに適しています。
d1 $ sound "arpy*4" # pan (rand)
また、出力される範囲を指定することができます。
以下の例では 0.25 - 0.75 の範囲を設定します。
d1 $ sound "arpy*4" # pan (range 0.25 0.75 $ rand)
irand
irand 関数に最大値を与えることで、その最大値までの間で整数値を出力します。ランダムにサンプルを選択するのが最も一般的です。( run に似ています。)
d1 $ s "arpy*8" # n (irand 30)
上のコードは、 “ arpy ” フォルダーから、30番までのサンプルをランダムに取ります。
?
Tidal には、パターンからノートを削除する方法がいくつかあります。? を使用することで、そのノートが再生される確率を 50% に設定します。
d1 $ sound "bd? sd? sd? sd?"
[ ? ] は、グループにも適用できます。
d1 $ sound "bd*16?"
d1 $ sound "bd sn? cp hh?"
d1 $ sound "[bd sn cp hh]?"
? は degrade 関数のショートカットです。
従って下の二つは、等しくなります。
d1 $ sound "bd*16?"
d1 $ degrade $ sound "bd*16"
degradeBy
degrade に似た degradeBy 関数があります。
こちらは、ノートが再生されない確率を詳細に設定することができます。
d1 $ degradeBy 0.25 $ sound "bd*16"
SometimesBy
[ SometimesBy ] は、同等の効果を関数に適用することができます。
d1 $ sometimesBy 0.75 (# crush 4) $ sound "bd arpy sn ~"
上のコードでは、75%の確率でビットクラッシュ(# crush)が適用されます。
SometimesBy には、以下のエイリアスが設けられています。
sometimes = sometimesBy 0.5
often = sometimesBy 0.75
rarely = sometimesBy 0.25
almostNever = sometimesBy 0.1
almostAlways = sometimesBy 0.9
Introducing Randomness
https://tidalcycles.org/index.php/Tutorial