見出し画像

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