setcps(75/60/4)
d1
$ jux (0.01 ~>) $ s "birds/4"
# end "0.75"
# room "0.8" # sz "0.8"
# delay "0.8" # delayfb "0.6" # delaytime "0.6"
d2
$ every 4 (# n "5") $ s "sitar:1/2"
# end "0.8" # cut "1" # speed "0.6"
# room "0.8" # sz "0.8"
# delay "0.9" # delaytime "0.25" # delayfb "0.7"
# coarse "4"
d4
$ swingBy (0.2) 8 $ gain "1.2 0!6 0.8 1 0!6 0.8" # s "808bd"
|+ gain "0.6"
d5 $ s "[~ sn:3]*2"
d3 $ sound "808oh!3 <808oh 808oh:2*2>"
# gain "[1 0.9]*2"
hush
ポイント:swingBy
swingByで、シャッフル、または跳ねたビートを作ることができます。
swingBy (x) n x:跳ねる量 n:1サイクルを分割する量
swingBy(1/6) 4 だと、1サイクルを4分割して、分割したサイクルの後半部分にある音を、分割した長さの1/6だけ遅らせて再生する、という仕組みです。
8分音符でシャッフルさせたい場合は、swingBy (1/6) 4 にして、
16分音符でシャッフルさせたい場合は、swingBy (1/6) 8 にすれば良さそうですね。
setcps(120/60/4)
d1 $ s "bd sn bd sn"
d2 $ swingBy (1/6) 4 $ s"808oh*8"
setcps(120/60/4)
d1 $ s "bd sn bd sn"
d2 $ swingBy (1/6) 8 $ s"808oh*16"
4つ打ちに16ビートのhihatを少し跳ねさせてもいい感じになりますね。
setcps(128/60/4)
d1 $ s "bd*4"
d3 $ s "[~ sn:3]*2"
d2 $ swingBy (1/10) 8 $ s"808oh*16"
# gain "[0.7 0.6 1 0.7]*4"
ポイント: ! と * の違い
“!”を使うと、パターンを複製できます。
以下2つは同じです。
d1 $ s "bd!3 sd"
d1 $ s "bd bd bd sd"
” ! ” と、” * “の違いを明確に理解したほうが良さそうです。
“*”は、パターンを繰り返すことができます。
以下2つは同じです。
d1 $ s "bd*3 sd"
d1 $ s "[bd bd bd] sd"
今回の例では、”0″をたくさん入力するのを省略するために用いました。
以下2つは同じです。
$ gain “1.2 0!6 0.8 1 0!6 0.8” # s “808bd”
$ gain “1.2 0 0 0 0 0 0 0.8 1 0 0 0 0 0 0 0.8” # s “808bd”
ポイント:delay, delayfb, delaytime
delay関連のエフェクトは以下があります。
- delay:初期遅延のレベル。1だと、元の音と同じ音量になる。
- delayfb:ディレイのフィードバック音のレベル。delayfeedbackの略。
- delaytime:ディレイの長さ。
- lock:ディレイをテンポに同期させたい場合は、# lock 1 にする。
delayだけだと1回のディレイだけで物足りなさを感じますが、delayfbとdelaytimeを加えてやることで空間の広がりのあるディレイにすることができます。
https://tidalcycles.org/index.php/delaytime
ポイント:|+ パターンの接続
|+ や |* といった記号を見ることがあります。
どうやら、主に” # “の代わりに使うようです。
詳細はこちらに説明があります。
https://tidalcycles.org/index.php/Combining_pattern_structure
今回の使い方を説明します。
$ gain “1.2 0!6 0.8 1 0!6 0.8” # s “808bd”
左側のgainですでに1.2や0や0.8といった数値を決めてしまっていたのですが、ここから808bd全体の音量を上げるには、一つ一つの数字を上げるしかありませんでした。
しかし、|+を使えば、左側のgain値に、別の値(ここでは0.6)を足すことができます。
$ gain “1.2 0!6 0.8 1 0!6 0.8” # s “808bd” |+ gain “0.6”
その結果、上と下のコードは同じになります。
$ gain “1.8 0.6!6 1.4 1 0.6!6 1.4” # s “808bd”
ちなみに、今回の例だと、音を出さないためにgain “0”にしていた箇所にも、0.6を足してしまったので、gainが0.6になり、音が意図せず出てしまいました。
そのため、ここでは|+ gain “0.6”ではなく|* gain “1.2” のように、掛け算をしてあげたほうが意図した結果になっていたと思います。
今回はgainの調整に使いましたが、パターンの接続機能は、この例よりももっと面白いことができそうですね。