TidalCycles fitの応用とDJ風の盛り上げの作り方

ダンスミュージックで多用されるテクニックをtidalcyclesで実現できる方法を考えました。

これを使えばカオスになりがちなtidalcyclesでも、ある程度メリハリをつけることができると思います。

動画

コード

setcps(128/60/4)


let
 x = every 5 ((sometimesBy 0.2 (# crush "1")).sometimesBy 0.1 (# n 5))
 y = every 6 ((|*| speed "0.7 0.8 1.5 0.5"). (#lpf (rangex 500 10000 $ rand)).(#lpq 0.2))
 z = every 7 (stut' (irand 4) (choose[1/16,1/8]) (|> coarse (irand 16)). sometimesBy 0.3 (# n (irand 3)))
 dj = (# hpf (slow 8 $ rangex 200 3000 saw)). (# hpq 0.4)
 pat = "{0 4 2 3 [5,0,1] 4 2 3*5 [<3 5*5>,0] ~ 2 5 [0,1] ~ 2 <3 0 2 0>}%16"
 
d1
$ swingBy (1/12) 8
$ whenmod 32 24 dj
$ someCyclesBy 0.05 ((# room 0.8) . (# sz 0.8))
$ x 
$ y
$ z
$ s (fit 0 ["Kick:7","Snare:25","Hihat:6","808lt:1","can","Chord:5"] pat)
# cut (wchoose[(1,0.97),(0,0.03)]) # gain 1.2 # shape 0.8 # speed 0.8

d2
$ s "Cymbal/32" # room 0.9 # sz 0.9 # gain 1 # speed 0.5

d3
$ swingBy (1/16) 8
$ whenmod 32 28 (# gain (slow 4 $ range 0 1.3 saw))
$ s "sn:3*16" # gain 0 # shape 0.5

hush

上記コードはtidalcyclesのデフォルト音源にないサンプルを使用しているので、そのままコピペしても再生できませんのでご注意ください。

fitを使った4つ打ちドラム

fitとletを使って4つ打ちドラムを作りました。

以下のようにすると、4つ打ち、2拍目4拍目スネア、裏拍のハイハットのパターンが作れますね。

[ ] を使えばKickとSnareを同時に鳴らせます。

let pat = "{0 ~ 2 ~ [0,1] ~ 2 ~ 0 ~ 2 ~ [0,1] ~ 2 <~ 0>}%16"

$ s (fit 0 ["bd","sn:1","hh"] pat)

上記例の~の箇所は自由に設定できますので、fitで別の音をリストに加えて遊べますね。

動画では以下のようにしていました。

let pat = "{0 4 2 3 [5,0,1] 4 2 3*5 [<3 5*5>,0] ~ 2 5 [0,1] ~ 2 <3 0 2 0>}%16"

$ s (fit 0 ["Kick:7","Snare:25","Hihat:6","808lt:1","can","Chord:5"] pat)

DJ系のハイパスフィルター

DJが盛り上げでよく使うハイパスフィルターを再現しました。

let dj = (# hpf (slow 4 $ rangex 200 3000 saw)). (# hpq 0.4)
 
d1
$ whenmod 16 12 dj
$ s "[bd hh [bd,sn:1] hh]*2"

djという変数を定義します。

rangex 200 3000 saw で、200Hzから3000Hzまで、saw tooth waveの波形でcutoff周波数を上昇させます。

slow 4によって、4サイクルかけて周波数を上昇させます。

hpq 0.4でQ値をほどよく設定しています。

whenmod 16 12 dj で12サイクル目から16サイクル目という区切りの良いタイミングを指定しています。

盛り上げるスネア連打とシンバル

ハイパスフィルターとは別に、d2でクラッシュシンバル、d3で盛り上げるためのスネア連打を作りました。

d2
$ s "hh:1/16" # room 0.9 # sz 0.9

d3
$ whenmod 32 28 (# gain (slow 4 $ range 0 1.3 saw))
$ s "sn:3*16" # gain 0

d2のクラッシュシンバルは、1サイクルごとに再生されるとうるさいので、/16 にして、16サイクルごとに再生されるようにしています。

また余韻を増やしたかったので# room 0.9と# sz 0.9 でリバーブをかけました。

d3では、sn:3*16 で16分音符でスネアを常時連打するパターンを作り、# gain 0 として、普段は音量を0にしておきます。

そして$ whenmod 32 28 (# gain (slow 4 $ range 0 1.3 saw)) で、gainを徐々に上げていけるようにして盛り上げを作りました。

コメントを残す

CAPTCHA