非公式チュートリアル13 リズム1
ここではリズムに関するテクニックを解説する。最終的にはブライアン・ファーニホウのリズムテクニックを模倣することを目指すが、まずは一歩一歩解説していきたい。
非公式Tutorial 08 multi-seq voice polyにおいて、クラスvoiceとpolyの解説を書いたが、以前の執筆から3年以上の時間が経っているので、改めて解説する。
また、私以外のどなたかが翻訳して載せてくださっている、リファレンスマニュアルの以下の項目も合わせてご参照のほど。
また、私以外のどなたかが翻訳して載せてくださっている、リファレンスマニュアルの以下の項目も合わせてご参照のほど。
- [Trees]
- pulsemaker 小節分割でリズム構築
- maketreegroups リズムパターンを組み合わせてリズム構築
- tree2ratio 音価休価のリストを取得
- mktree 音価休価リストからリズムツリーを構築
- reducetree 連続する休符やタイを結合する
- tietree 休符をタイに変える
- remove-rests 休符を音符に変える
- invert-rhythm 音符を休符に、休符を音符に逆転させる
- reversetree リズムを逆行させる
- rotatetree リズム要素を循環的に回す
- filtertree 指定した位置の音符を休符に置換する
- subst-rhythm 指定された位置のリズム要素を任意の要素で置換していく
- group-pulses 音価休価比の要素を集める
- n-pulses 音符の数を数える
- get-signatures 拍子のリストを取得
- get-pulse-places 音符の位置のリストを取得
- get-rest-places 休符の位置のリストを取得
- [Trees]
IRCAMの公式チュートリアルの24と25も参照されることをお勧めする。
まずはvoiceクラスおよびリズムに関する各ファンクションで扱われるリズムツリー構造について見てみよう。(
非公式Tutorial 08 multi-seq voice polyの後半も参照)
非公式Tutorial 08 multi-seq voice polyの後半も参照)
(? (((4 4) (1 1 1 1))))
と書くと、4/4拍子で4分音符が4つ並ぶ。これは4/4の小節を 1 1 1 1 の合計4からなるリストで分割していることを意味する。
(? (((4 4) (1 1 2))))
と書くと、4/4拍子で4分音符が4つ、2分音符が1つ並ぶ。これは4/4の小節を 1:1:2 で分割していることを意味する。(1が4分音符、2が2分音符を意味するわけではない)
(? (((4 4) (1 1 2))))
と書くと、4/3拍子で3拍4連符の4分音符が4つ、2分音符が1つ並ぶ。これは4/4の小節を 1:1:2 で分割していることを意味する。3拍4連符の4分音符とはつまり付点8分音符であり、16分音符3拍分で書いた方がわかりやすいのだが、voiceのリズムツリーではこのように表示される。付点8分音符で表示するにはmktreeおよびtree2ratioという別のファンクションがある。(後述)
(? (((4 4) (1 1 1 (1(1 1))))))
今度はリストを複層化する場合について見てみよう。この例では、先ほどの例の 1 1 1 1 のうち、最後の1が(1(1 1))というリストで置き換えられている。これは(1 1)という合計2からなるリストと、その上の階層にある1という値を持つ括弧からなり、1という値を(1 1)で分割するという意味を持つ。結果として、4/4拍子のうち4分音符3つが並んだ後、4拍目は2分割されて8分音符2つが並ぶ。
(? (((4 4) (1 1 1 (1(1 1 1))))))
この例では、後ろの複層リストの部分が(1(1 1))という合計3からなるリストで値1を分割している。従って結果は、4/4拍子のうち4分音符3つが並んだ後、4拍目は3分割されて3連符の8分音符3つが並ぶ。
(? (((4 4) (1 1 1 (1(1 1 (1 (1 1 1))))))))
さらに複数の階層を持つ例を見てみよう。ここでは先ほどと同じく、4/4拍子のうち4分音符3つが並んだ後、4拍目は3分割されて3連符の8分音符が並ぶが、その3拍目がさらに3連符の16分音符3つで分割されている。
(? (((4 4) (1 -1 1 (1(1.0 1 (1 (-1 1 1.0))))))))
休符とタイについて説明しておこう。休符は-(マイナス、負の値)を指定する。タイは.0をつけて実数を指定すれば、その直前の音符からタイがかかる。この例では、2拍目の4分音符と最初の3連16分音符は休符となり、最初の3連8分音符と、最後の3連16分音符はタイで繋がっている。(最後の3連16分音符の部分はスクリーンショットでは見辛いが、タイがかかっている)
今度はファンクションpulsemakerについて見てみよう。
input 0には分子のリスト、input 1には分母のリスト、input 2にはリズムツリーに使われる分割構造が指定される。
上の例は、pulsemakerのデフォルトの値を用いたものである。4/8拍子が2小節指定され、4拍分を(1 1 1 1)で4等分する。結果として8分音符4拍が2小節続く。
次の例は、公式チュートリアル25番の冒頭にあるもので、より複雑なリズム構造を指定したものである。これをいちいちリズムツリーで書いていくと括弧が多くなって大変だが、このように書くことである程度単純化することができる。
公式チュートリアル25番は、pulsemakerとまったく同じ挙動のサブパッチを作る過程を解説している。合わせて読むことをお勧めする。