TidalCycles lpfとresonanceとrangeとsineとrand day11

動画

コード

以下コードは、Native Instrumens社のAstral Flutterの音源を使用しているため、TidalCyclesのデフォルト音源では再生できません。

setcps(86/60/4)

d1 $ s "[bd:1(6,16),{ ~ sn:2}%4,hc*8]" # shape "0.5" # pan 1

d2 $ stut' (choose[4,16,8]) 0.065 (# room "0.4") $ every 2 (jux (0.125 <~))
$ slice (choose[8,20]) "0*3 1 2 [3 5 8*3] 2 4*8? 6*3"
$ n "<0 1 3*5> 1 2 [3 2 3 4]" # s "<Chord>" |* n "<8 7 8 5>"
# lpf (range 200 3000 $ rand) # resonance (choose[0.7,0.5,0.3])

d3 $ n "0 1 2 3*<1 1 1 16>" # s "alphabet"

d4 $ iter 4 $ stut' 2 0.125 (# speed "<1.5 1>") $ whenmod 8 6 (rev)
$ slice 8 "0 2*4 0 [1 2 3 3] 1 [0 0*4] 2 [7 8] " $ s "breaks125"
# shape "0.5" # pan 0

hush

lpfとresonance

lpf

# lpf x とすると、Low Pass Filter(LPF)をxHzのカットオフ周波数でかけられます。

例えば # lpf 500 とすると、カットオフ周波数が500HzのLPFになります。

逆に、# hpf 500とすると、カットオフ周波数が500HzのHigh Pass Filterになります。

resonance

また、# resonance y とすると、レゾナンスの強さをyで変更できます。

yの範囲は0~1.0です。

レゾナンスは「共鳴」という意味で、カットオフ周波数の帯域の音を強調することで、その帯域の音がボワンボワンと共鳴した感じになります。

たとえば、# lpf 500 # resonance 0.8 とすると、カットオフ周波数500Hz、レゾナンス0.8となり、500Hz付近の音が強調され、それ以上の高音帯域はカットされます。

レゾナンスの説明はこちらがわかりやすいです。

なお、# resonance単体で使っても意味がなく、必ず# lpfと併用してください。(# hpfとの併用できません。)

実は、# cutoff 100 と# lpf 100 は全く同じで、 # resonance 0.8 と # lpq 0.8 は全く同じです。

そのため、最短で書こうとすると、# lpf 500 # lpq 0.8 といった書き方が良さそうです。

lpfとresonanceの応用例

rangeとrand

d1 $ s "bass*16" # cut 1
# lpf "300 500 200 1000" # resonance 0.7

このように、lpfにパターンをつけつつresonanceを設定することで、動きのあるベースを作れます。

以下のようにすると、lpfのカットオフ周波数とresonanceがランダムに変わるので、acid bass風のベースを作ることもできます。

d1 $ note " [0!2 3 0 0!3 <5 10>]*2" # s "bass:3" # cut 1
# lpf (range 200 2000 rand) # lpq rand # shape 0.5

d2 $ s "bd*4"

また、上記の例から一工夫して、rangeの代わりにrangexを使うのも良さそうです。

rangexは、周波数を指定するときに役立ちます。

rangexは、指定した範囲を対数として扱うので、例えば# lpf (range 20 20000 rand)とするよりも、# lpf (rangex 20 20000 rand)としたほうが、あらゆる帯域でlpfがかかる可能性が高くなるので便利です。

以下のd1とd2の2つを試していただくと、その違いがわかると思います。

d1 $ s "bass:3*16" # cut 1
# lpf (range 20 20000 rand) # lpq 0.8

d2 $ s "bass:3*16" # cut 1
# lpf (rangex 20 20000 rand) # lpq 0.8

d1のrangeの方は、高域ばかりがランダムに選ばれやすいのですが、d2のrangexの方は、低周波数の方もランダムに選ばれやすくなっています。

rangeとsine

上記のrandの代わりにsineを使って、# lpf (rangex 200 2000 sine)とすると、lpfのカットオフ周波数が、200Hz〜2000Hzの間をsine波のように行ったり来たりします。

d1 $ sound "arpy*16" # cut 1
# lpf (rangex 200 2000 sine)
# lpq 0.8

ここでは、sine(正弦波)以外にも、cosine、saw、isaw、tri、square、が同じように使用できます。

各波形の詳細はこちらを参照してください。(wikipediaに飛びます)

特にsawは、以下のようにslow 4などと組み合わせると、よくDJなどが行うLow Pass Filterのカットオフ周波数を徐々に高くしていく、というテクニックを再現できます。

d1 $ sound "[arpy*16,808bd*4]"
# lpf (slow 4 $ rangex 200 10000 saw)
# lpq 0.5

randの使い方いろいろ

rand

randは、0から1.0までの範囲の値をランダムに取ります。

例えば、以下のように記述できます。

d1 $ s "hh*4" # pan rand

こうすると、panの値は0〜1.0までの値をランダムに変化するのがわかります。

また、randに+や*を使用して、値を調整することもできます。

以下の例は、randの値に10000をかけることで、0〜10000の値を取ることになります。

d1 $ s "bass:3*16" # cut 1
# lpf (rand*10000) # lpq 0.8

irand

irand x (xは整数)とすると、0からx-1の範囲の整数でランダムな値を取ります。

以下の例では、irand 4 のところは、0〜3の範囲でランダムな値になりますので、bassのsampleはbass:0,bass:1,bass:2,bass:3のどれかをになります。

d1 $ s "bass*16" # n (irand 4) # cut 1

ここまでの説明は、userbaseのこのページを参考にしています。

コメントを残す

CAPTCHA