yoppa.org


前橋工科大学 – サウンドプログラミング2025

変なリズムを作ってみる – 変拍子、ポリリズム、ポリミーター、ユークリッドリズム

Toussaint, Godfried. “The Euclidean algorithm generates traditional musical rhythms.” 2005

変なリズムについて

リズムは音楽の基本要素の一つです。 リズムは時間の流れを構造化します。通常リズムは均等に分割された拍子で構成されます。例えば、4/4拍子や3/4拍子などです。しかし、音楽には「変なリズム」も存在します。これらのリズムは、通常の拍子から逸脱し、独特なグルーブや雰囲気を生み出します。今回は、変拍子、ポリリズム、ポリミーター、ユークリッドリズムなどの「変なリズム」について学び、実際に作成してみましょう。

「変なリズム」な曲プレイリスト

  • いろいろ実例を集めてみました
  • これらのリズムは何拍子?
  • Take Five, The Dave Brubeck Quartet
    • 変拍子 (5/4)
  • Money, Pink Floyd
    • 変拍子 (7/4)
  • Scatterbrain, Jeff Beck
    • 変拍子 (9/8)
  • The Fish, Yes
    • 変拍子 (7/8,)
  • Fire Back About Your New Baby’s Sex, Don Caballero
    • 変拍子 (7/8 → 3/4 → 4/4 → 7/8)
  • Never Meant, American Football
    • 変拍子 (12/4)
  • Morning Bell, Radiohead
    • 変拍子 (5/4)
  • STRUCTURE I, DATE COURSE PENTAGON ROYAL GARDEN
    • ポリリズム (8/5 + 4/4)
  • ポリリズム, Perfume
    • ポリミーター (4/4 + 5/4 + 3/4)
  • Discipline, King Crimson
    • 変拍子、ポリミーター (5/8 + 4/4, 17/16?)
  • The First Circle, Pat Metheny Group
    • 変拍子、ポリミーター (12/8 + 10/8)

復習: シーケンス

  • 「変なリズム」に入る前に、シーケンスについて復習します
  • Strudel / TidalCyclesでのシーケンスの作り方の違いについても意識ましょう!

シーケンス

  • シーケンス: 反復進行(はんぷくしんこう sequence)
  • 同じ音のまとまりを何度も繰り返すこと
  • Strudelでは様々な方法でシーケンスを組み立てられる

シーケンス基本

-- TidalCycles
d1 $ sound "bd hc sd ho"
// Strudel
$: s("bd hh sd oh")
  • シーケンスの基本
  • スペースで区切ることでシーケンス内で複数のサウンドを再生できる

シーケンス基本

主なドラムサウンド

  • bd: バスドラム「ドスッ」
  • sd: スネアドラム「スタッ」
  • hc (hh): ハイハット「チッ」
  • ho (oh): オープンハイハット「チー」
  • rim: リムショット「カコッ」
  • lt: ロータム「ドコ」
  • mt: ミッドタム「トコ」
  • ht: ハイタム「ポコ」
  • cr: クラッシュシンバル「ガシャーン」
  • cp: クラップ「パン」

沢山の音を鳴らす

-- TidalCycles
d1 $ sound "bd bd hc bd sd bd hc bd"
// Strudel
$: s("bd bd hh bd sd bd hh bd")
  • シーケンスが長い(たくさんの音がある)ほど速くなる
  • シーケンスの中身が1サイクルに押し込められるため

テンポを変更する

-- TidalCycles
d1 $ sound "bd bd hc bd sd bd hc bd" # cps(100/240)
// Strudel
$: s("bd bd hh bd rim bd hh bd").cpm(40)
  • 1つの方法は cpm() を使用する方法
  • cycle per minutes
  • 1分あたり何サイクルするか、という単位
  • その他にも方法があるがまた後述

休符

-- TidalCycles
d1 $ sound "bd ~ hc ~ cp"
// Strudel
$: s("bd ~ hh ~ cp")
  • ~は休符(音を出さないパート)をあらわす

サブシーケンス

-- TidalCycles
d1 $ sound "bd [hc hc] sd [hc ~ bd]"
// Strudel
$: s("bd [hh hh] sd [hh ~ bd]")
  • []で囲うとサブシーケンスが作成される
  • シーケンスの1要素の中をさらに分割するイメージ

かけ算 – スピードアップ

-- TidalCycles
d1 $ sound "bd hc*2 cp hc*3"
// Strudel
$: s("bd hh*2 cp hh*3")
  • 「* (かけ算)」記号はそのシーケンス内で分割してくりかえす
  • かけ算の数だけスピードアップ

シーケンスのスピードアップ

-- TidalCycles
d1 $ sound "bd [hc ~ cp]*2"
// Strudel
$: s("bd [hh ~ rim]*2")
  • サブシーケンスのかけ算も可能
  • []で囲まれたパートをスピードアップして繰り返す

超高速かけ算

-- TidalCycles
d1 $ sound "bd ~ hc*16 ~ cp ~ hc*8"
// Strudel
$: s("bd ~ hh*16 ~ rim ~ hh*8")
  • かけ算の数を大きくすると分割が細かくなる
  • どんどん速くしてくと、徐々に音程に聞こえてくる

サブ・サブシーケンス

-- TidalCycles
d1 $ sound "bd [cp [hc hc] cp] hc"
// strudel
$: s("bd [ rim [hh hh] rim] hh")
  • []を入れ子構造にすることで、サブシーケスのサブシーケンスをつくる

本日の内容: 変なリズムを作ってみよう!

変なリズムの作り方

  • パラレルに演奏
  • ポリリズム
  • ポリミーター
  • ユークリッドリズム

パラレルに演奏

-- TidalCycles
d1 $ sound "hc hc hc, cp cp"
// Strudel
$: s("hh hh hh, cp cp")
  • コンマ(,)で区切って2つのシーケンスを記述する
  • パラレルに2つのシーケンスが演奏される

パラレルに演奏2

-- TidalCycles
d1 $ sound "hc ~ hc ~ hc, cp cp, ~ hc, bd"
// Strudel
$: s("hh ~ hh ~ hh, cp*5, ~ ht, bd")
  • パラレルに演奏するシーケンスは、いくつでも増やせる
  • どんどんコンマ(,)で区切っていくだけ

パラレルに演奏3

-- TidalCycles
d1 $ sound "hc ~ hc ~ hc, bd [cr, cp*4]"
// Strudel
$: s("hh ~ hh ~ hh, bd [cr, cp*4]")
  • サブシーケンスの中で、さらにパラレルに演奏することも可能

ポリリズム (Polyrhythm) とポリミーター (Polymeter)

  • ポリリズム (Polyrhythm) とポリミーター (Polymeter) と違い
    • ポリリズム: 1拍目が揃っていてその他の拍がずれていく
    • ポリミーター: 全ての拍が揃っていて、1拍目がずれていく

ポリリズム Polyrhythm

-- TidalCycles
d1 $ sound "bd sd, hc hc hc"
// Strudel
$: s("bd sd, hh hh hh")
  • 拍子の異なるリズムをパラレルに演奏してみる
  • 独特な捩れたリズムが生成される → ポリリズム (polyrhythm)
  • いろいろな拍子の組み合わせを試してみる!
-- TidalCycles
d1 $ sound "bd cr, hc*4, ~ cp cp ~ cp*2, ~ sd sd"
// Strudel
$: s("bd cr, hh*4, ~ cp cp ~ cp*2, ~ sd sd")
  • いろいろなポリリズムのパターンを演奏してみよう!

ポリミーター Polymeter

-- TidalCycles
d1 $ sound "{bd sd, cp hc ho}"
// Strudel
$: s("{bd sd, rim hh oh}")
  • こんどは、パラレルに記述したパターンの両端を{}で囲んでみる
  • どう変化するか?
  • 拍子は共通で、1拍目がずれていく → ポリミーター polymeter
  • こちらもいろいろ試してみる!

ユークリッドリズム (Euclidean Rhythm)

ユークリッドリズム Euclidean Rhythmとは?

  • ユークリッドの互除法 (Euclidean Argorhythm) を元に生成されるリズムパターン
  • 世界中の様々な民族音楽のリズムパターンに見られる
  • 例: キューバン・トレスィージョ (Cuban Tresillo), ブラジルのサンバ (Samba), 西アフリカのアガデス (Agadez) など

ユークリッドリズムのつくり方

  • (3,8)の場合
    • [11100000]
    • [10] [10] [10] [00]
    • [100][100][10]
    • [10010010]
  • (5,8)の場合
    • [11111000]
    • [10][10][10][11]
    • [101] [101] [10]
    • [10110110]

ユークリッドリズム Euclidean Rhythm

-- TidalCycles
d1 $ sound "bd(3, 8), hc(9, 16)"
// Strudel
$: s("bd(3, 8), hh(9, 16)")
  • ユークリッドリズムの例
  • 複雑なリズムパターンがいろいろ作成可能
  • 試してみよう!

ユークリッドリズム Euclidean Rhythm

-- TidalCycles
d1 $ sound "bd(3, 7), hc(9, 14, 5), cp(5, 7, 2)"
// Strudel
$: s("bd(3, 7), hh(9, 14, 5), cp(5, 7, 2)")
  • 分母を奇数にすると、変拍子(奇数拍子)のリズムが生成できる!
  • 世界の様々な民族音楽のリズム構造を模倣可能

エフェクト

-- TidalCycles
d1 
  $ sound "bd sd [~ bd] hc"
  # delay 0.8
  # delaytime (5/8)
  # lock 1
// Strudel
$: s("bd sd [~ bd] hh")
   .bank("tr909")
   .delay(0.8).delaytime(5/8)
  • TidalCycles / Strudelには様々なエフェクトが容易されている
  • ディレイ、リバーブ、フランジャーなど
  • 試しにリズムにディレイをかけてみる
  • ディレイタイムを工夫すると、グルーブが生まれてくる!

エフェクト

-- TidalCycles
d1 
  $ sound "bd cp [~ bd] hc*2, bd:2(3,8), hc*8, cp(7,8)"
  # delay 0.8 # delaytime (9/8) # delayfeedback 0.5
  # lock 1
  # lpf (range 400 8000 $ slow 16 $ sine)
  # resonance 0.2
  # room 0.5 # size 0.5
// Strudel
$: s("bd cp [~ bd] hh*2, bd:2(3,8), hh*8, cp(7,8)")
   .bank("tr909")
   .delay(0.8).delaytime(9/8).delayfeedback(0.5)
   .lpf(sine.segment(128).range(400,8000).slow(16)).resonance(10)
   .room(0.5).size(1.5)
   .punchcard().color("pink")
  • さらに様々なエフェクトを加えてみる!
  • ディレイ+ リバーブ+ローパスフィルター

実習: 変なリズムを作ってみる!

本日の実習!

  • Strudelを使用して「変な」リズムを作ってみよう!
  • 変拍子、奇数拍子、ポリリズム、ポリミーターなど
  • 普通ではなく、かつめちゃくちゃでもない微妙な加減を工夫してみましょう!