上級編

ジャンル別プロのビート

ここからは、各ジャンルのプロが使う本格的なビートパターンを学びます。 音楽理論的な背景も含めて解説するので、応用力も身につきます。

1. ブーンバップ(Boom Bap)

90年代のニューヨークヒップホップを代表するスタイル。 「ブーン(キック)」と「バップ(スネア)」が名前の由来。 シンプルだけど、スウィングとサンプリング感が命。

ジャンル特性

  • BPM: 85〜95
  • スウィング: 軽め(0.1〜0.2)
  • 特徴: 重いキック、パンチのあるスネア、シンプルなハイハット
// ブーンバップ - クラシックスタイル
bpm 92
swing 0.15

pattern boombap {
  // 重心の低いキックパターン
  kick:  [x . . . . . x . | . . x . . . . .]

  // 2拍・4拍のスネア(バックビート)
  snare: [. . . . x . . . | . . . . x . . .]

  // 控えめな8分音符ハイハット
  hihat: [x . x . x . x . | x . x . x . x .]
}

play boombap * 4
試す

音楽理論: ブーンバップのキックは「1拍目・2拍目裏・3拍目」のパターンが多く、 これが「揺れる」グルーヴを生み出します。

2. トラップ(Trap)

アトランタ発祥の現代ヒップホップ最重要ジャンル。 808キック、高速ハイハットロール、スパースなアレンジが特徴。

ジャンル特性

  • BPM: 130〜170(ハーフタイムで65〜85に感じる)
  • スウィング: なし〜微量(0〜0.1)
  • 特徴: 長い808キック、ハイハットロール、スパースなスネア
// トラップ - モダンスタイル
bpm 145

pattern trap_fx {
  kick:  [x . . . . . . x | . . x . . . x .]
         > distort(0.1) > lpf(200)
  snare: [. . . . . . . . | x . . . . . . .]
         > reverb(0.3, 0.5)
  hihat: [{x x} . x . {x x x} . {x x} . | x . {x x} . {x x x x} . x .]
         > hpf(6000) > pan(0.3)
}

play trap_fx * 4
試す

音楽理論: トラップは「ハーフタイム」を使います。 BPM 140でも、スネアが1小節に1回しか鳴らないため、体感テンポは70に感じます。

3. ハウス(House)

シカゴ発祥のダンスミュージック。 「4つ打ち」と呼ばれる毎拍キックが特徴で、フロアを踊らせる王道スタイル。

ジャンル特性

  • BPM: 120〜130
  • スウィング: なし〜軽め(0〜0.1)
  • 特徴: 4つ打ちキック、オフビートハイハット、クラップ/スネア
// ハウス - クラシック4つ打ち
bpm 124

pattern house {
  // 4つ打ち(Four on the Floor)
  kick:  [x . . . x . . . | x . . . x . . .]

  // 2拍・4拍のクラップ
  clap:  [. . . . x . . . | . . . . x . . .]

  // オフビート(裏拍)のハイハット
  hihat: [. . x . . . x . | . . x . . . x .]

  // オープンハイハットでアクセント
  oh:    [. . . . . . . x | . . . . . . . x]
}

play house * 4
試す

音楽理論: ハウスの「オフビートハイハット」は、 キックの間を埋めて推進力を生みます。これがダンスミュージックの「ドライブ感」の源です。

4. テクノ(Techno)

デトロイト発祥のエレクトロニックミュージック。 ハウスよりダークでミニマル、反復によるトランス感が特徴。

ジャンル特性

  • BPM: 125〜140
  • スウィング: なし
  • 特徴: ハードなキック、ミニマルな構成、金属的なパーカッション
// テクノ - ミニマルスタイル
bpm 130

pattern techno {
  // ハードな4つ打ち
  kick:  [X . . . X . . . | X . . . X . . .]
         > distort(0.15) > compressor(20, 6)

  // 裏拍のクラップ/リム
  rim:   [. . x . . . x . | . . x . . . x .]
         > reverb(0.4, 0.6)

  // 16分音符のハイハット
  hihat: [x x x x x x x x | x x x x x x x x]
         > hpf(8000) > gain(0.6)
}

play techno * 4
試す

5. ドラムンベース(Drum and Bass)

イギリス発祥の高速ブレイクビーツ。 ジャングルから派生し、複雑なドラムパターンと重低音ベースが特徴。

ジャンル特性

  • BPM: 160〜180
  • スウィング: なし〜微量
  • 特徴: 高速、ブレイクビーツ、複雑なキック&スネア
// ドラムンベース - Two Step
bpm 174

pattern dnb {
  // 典型的なTwo Stepパターン
  kick:  [x . . . . . x . | . . . . x . . .]

  // ブレイクビーツ風スネア
  snare: [. . . . x . . . | . . x . . . x .]
         > reverb(0.2, 0.3)

  // 高速ハイハット
  hihat: [{x x} x {x x} x {x x} x {x x} x | {x x} x {x x} x {x x} x {x x} x]
         > hpf(5000)
}

play dnb * 4
試す

音楽理論: ドラムンベースの「Two Step」は、 1小節内でキックとスネアが2回ずつ、互い違いに鳴るパターン。これが高速でも「踊れる」秘訣です。

6. R&B / ネオソウル

J Dilla、D'Angeloに代表されるグルーヴィーなスタイル。 わざと「ズレた」タイミングと、繊細なダイナミクスが特徴。

ジャンル特性

  • BPM: 70〜95
  • スウィング: 強め(0.2〜0.4)
  • 特徴: レイドバック感、ゴーストノート多用、有機的なグルーヴ
// ネオソウル - J Dillaスタイル
bpm 88
swing 0.25

pattern neosoul {
  // ルーズなキックパターン
  kick:  [x . . x[0.6] . . x . | . x . . x[0.7] . . .]

  // ゴーストノート入りスネア
  snare: [. . x[0.3] . X . x[0.3] . | . x[0.3] . . X . x[0.4] .]

  // 繊細な強弱のハイハット
  hihat: [X . x[0.5] . x . x[0.5] . | x . x[0.5] . X . x[0.5] .]
}

play neosoul * 4
試す

音楽理論: ネオソウルの「レイドバック」感は、 強いスウィングと、わざと拍の後ろにずらした演奏で生まれます。 「完璧すぎない」ことが完璧なのです。

7. ローファイ・ヒップホップ

チルでノスタルジックな雰囲気が特徴。 ビットクラッシュやフィルターで「古い」質感を出します。

ジャンル特性

  • BPM: 70〜90
  • スウィング: 軽め〜中(0.1〜0.2)
  • 特徴: ビットクラッシュ、ローパスフィルター、リラックスしたグルーヴ
// ローファイ・ヒップホップ
bpm 85
swing 0.15

pattern lofi {
  kick:  [x . . . . . x . | . . x . . . . .]
         > bitcrush(6) > lpf(500)

  snare: [. . . . x . . . | . . . . x . . x[0.6]]
         > bitcrush(5) > reverb(0.4)

  hihat: [x . x . x . x . | x . x . x . x .]
         > hpf(3000) > bitcrush(8) > pan(0.4)

  // ビニールノイズ的なリムショット
  rim:   [. x[0.2] . . . x[0.2] . . | . x[0.2] . . . x[0.2] . .]
         > lpf(2000) > gain(0.5)
}

play lofi * 4
試す

変数で効率化

変数を使うと、繰り返し使うパターンや設定値を一箇所で管理できます。 大規模な楽曲制作やパターンの再利用に非常に便利です。

数値変数

let 変数名 = 値で変数を宣言します。 BPMやスウィングなどの数値を変数で管理できます。

// 数値変数でBPMとスウィングを管理
let myTempo = 95
let mySwing = 0.15

bpm $myTempo
swing $mySwing

pattern main {
  kick:  [x . . . x . . .]
  snare: [. . . . x . . .]
  hihat: [x . x . x . x .]
}

play main * 4
試す

メリット: BPMを変更したいとき、変数の値を1箇所変えるだけでOK。 コード全体を検索して置換する必要がありません。

シーケンス変数

ビートパターンも変数に保存できます。同じパターンを複数のセクションで使い回せます。 変数を参照するには、変数名の前に$を付けます。

// シーケンス変数でパターンを再利用
let basicKick = [x . . . x . . .]
let basicSnare = [. . . . x . . .]
let fastHihat = [x . x . x . x .]
let slowHihat = [x . . . x . . .]

pattern verse {
  kick: $basicKick
  snare: $basicSnare
  hihat: $slowHihat
}

pattern hook {
  kick: $basicKick
  snare: $basicSnare
  hihat: $fastHihat  // ハイハットだけ変える
}

play verse * 4
play hook * 4
試す

変数宣言

let basicKick = [x . . . x . . .]

パターンを変数に保存

変数参照

kick: $basicKick

$をつけて参照

実践:変数を使った楽曲構成

変数を活用すると、楽曲全体の構成を効率的に管理できます。 共通パターンを変数にしておけば、各セクションで少しずつアレンジを変えられます。

// 変数を使った完全な楽曲構成
let myTempo = 128
let mySwing = 0.1

// 共通パターンを変数で定義
let kickBase = [x . . . x . . .]
let snareBase = [. . . . x . . .]
let hihatBase = [x . x . x . x .]
let hihatFast = [{x x} . x . {x x} . x .]

bpm $myTempo
swing $mySwing

// イントロ - シンプルに
pattern intro {
  kick: $kickBase
  hihat: $hihatBase > gain(0.5)
}

// メイン - フル構成
pattern main {
  kick: $kickBase > compressor(20, 4)
  snare: $snareBase > reverb(0.2)
  hihat: $hihatFast > hpf(6000)
}

// ブレイク - キックなし
pattern bridge {
  snare: $snareBase > reverb(0.4)
  hihat: $hihatBase > gain(0.6)
}

play intro * 4
play main * 8
play bridge * 4
play main * 8
試す

変数活用のベストプラクティス

  • BPMとスウィングは必ず変数で管理する
  • よく使うビートパターンは変数にしておく
  • 変数名はわかりやすく(kickBasehihatFastなど)
  • セクションごとにエフェクトを変えて変化をつける

パターン合成

kickstartでは、既存のパターンを継承したり、 結合したり、トラックを除外したりできます。 これにより、コードの再利用性が高まり、曲全体の構成を効率的に作れます。

パターン継承(extends)

extendsキーワードで、既存のパターンを継承できます。 親パターンのトラックを全て引き継ぎ、新しいトラックを追加したり、同名のトラックを上書きできます。

bpm 120

// ベースとなるドラムパターン
pattern base {
  kick:  [x . . . x . . .]
  snare: [. . . . x . . .]
}

// baseを継承して、ハイハットを追加
pattern verse extends base {
  hihat: [x . x . x . x .]
}

// baseを継承して、キックを上書き + ハイハット追加
pattern chorus extends base {
  kick:  [x . x . x . x .]  // より激しく
  hihat: [x x x x]*2
}

play verse * 4
play chorus * 4
試す

プロのTip: 継承を使うと、キックとスネアのパターンをbaseで一元管理できます。 後でキックパターンを変えたくなったら、baseだけ修正すればOK。

パターン結合(+)

+演算子で、複数のパターンを結合できます。 それぞれのトラックがマージされ、同名のトラックは後から指定した方で上書きされます。

bpm 128

// ドラムセット
pattern drums {
  kick:  [x . . . x . . .]
  snare: [. . . . x . . .]
}

// パーカッション
pattern perc {
  hihat: [x . x . x . x .]
  rim:   [. x . . . x . .]
}

// 2つを結合
pattern full = drums + perc

// インラインでトラックを追加することもできる
pattern full_with_clap = drums + perc + {
  clap: [. . x . . . x .]
}

play full * 4
試す

トラック除外(-)

-演算子で、特定のトラックを除外した新しいパターンを作れます。 曲の「ブレイク」や「ビルドアップ」を作るのに最適です。

bpm 128

pattern full {
  kick:  [x . . . x . . .]
  snare: [. . . . x . . .]
  hihat: [x x x x]*2
  clap:  [. . x . . . x .]
}

// ハイハットを抜いて、ブレイク感を出す
pattern break_section = full - { hihat }

// キック以外を全部抜く
pattern buildup = full - { snare, hihat, clap }

// 曲の構成
play full * 4
play break_section * 2   // ブレイク
play buildup * 2         // ビルドアップ
play full * 4            // ドロップ!
試す

実践:継承と合成を組み合わせる

継承(extends)と合成(+, -)を組み合わせることで、複雑な曲構成も効率的に管理できます。

bpm 126

// ベースリズム
pattern base {
  kick:  [x . . . x . . . | x . . . x . . .]
  snare: [. . . . x . . . | . . . . x . . .]
}

// バース用
pattern verse extends base {
  hihat: [x . x . x . x . | x . x . x . x .]
}

// コーラス用(より派手に)
pattern chorus extends base {
  kick:  [x . x . x . x . | x . x . x . x .]  // 上書き
  hihat: [{x x} . x . {x x} . x . | {x x} . x . {x x} . x .]
  clap:  [. . . . x . . . | . . . . x . x .]
}

// ブレイク(コーラスからキックを抜く)
pattern break_down = chorus - { kick }

// イントロはverseからスネアを抜く
pattern intro = verse - { snare }

// 曲構成
play intro * 2
play verse * 4
play chorus * 4
play break_down * 2
play chorus * 4
試す

パターン合成のメリット

  • DRY原則 - 同じコードを繰り返さない
  • 一元管理 - ベースを変えれば全てに反映
  • 読みやすさ - 各セクションの違いが明確
  • 柔軟性 - ブレイクやビルドアップも簡単に作成

ポリリズム(Polyrhythm)

ポリリズムは、異なる長さのリズムパターンを同時に重ねる技法です。 アフリカ音楽、ラテン音楽、ジャズ、プログレッシブロックなど、多くのジャンルで使われる高度なリズム表現です。

ポリリズムとは?

通常のビートでは、全てのトラックが同じ長さのサイクルで回ります。 ポリリズムでは、各トラックが異なる長さで独立してループし、 複雑で有機的なグルーヴを生み出します。

kickstartでのポリリズム

異なる長さのトラックを定義するだけで、自動的にポリリズムが生成されます。

  • 各トラックは独自のステップ数でループ
  • 全トラックの最小公倍数(LCM)でパターンが完結
  • 自然な「ズレ」が有機的なグルーヴを生む

1. 基本のポリリズム(3:4)

最も基本的なポリリズムは3対4です。 3拍子と4拍子のパターンが重なり合い、12ステップで一周します。

bpm 120

// 基本的なポリリズム: 3対4
pattern poly_3_4 {
  a: [x . .]      // 3ステップサイクル
  b: [x . . .]    // 4ステップサイクル
}
// LCM(3,4)=12ステップで1パターン

play poly_3_4 * 2
試す

3:4 ポリリズムのタイムライン

Step 0 1 2 3 4 5 6 7 8 9 10 11
a (3) x . . x . . x . . x . .
b (4) x . . . x . . . x . . .

Step 0でのみ両方が同時に鳴り、それ以外はズレている

2. ヘミオラ(3:2)

ヘミオラは、3拍子と2拍子を重ねるポリリズムです。 ジャズやラテン音楽で非常に多用され、独特の「揺れ」を生み出します。

bpm 90

// ヘミオラ(3:2)- ジャズ/ラテンの定番
pattern hemiola {
  // 2拍子のパターン
  kick:  [x .]              // 2ステップ

  // 3拍子のパターン
  clave: [x . .]            // 3ステップ
}
// LCM(2,3)=6ステップで完結

play hemiola * 4
試す

音楽理論: ヘミオラは「1.5」を意味するギリシャ語に由来し、 3:2の比率を表します。ジャズのスウィング感や、ボサノバのリズムの源です。

3. アフリカン・ポリリズム

西アフリカの伝統音楽は、複数の異なるリズムを重ねる「ポリリズムの宝庫」です。 12/8拍子と4/4拍子、6/8拍子が複雑に絡み合います。

bpm 100

// アフリカン・ポリリズム
pattern african {
  // ベルパターン(クラーベ風)
  bell:   [X . x . x . X . x . x .]  // 12ステップ

  // ジェンベ(6/8拍子風)
  djembe: [x . X . x .]              // 6ステップ

  // シェイカー(4拍子)
  shaker: [x . x . x . x .]          // 8ステップ
}
// LCM(12,6,8)=24ステップで完結

play african * 2
試す

音楽理論: アフリカ音楽では、ベル(鐘)パターンが 「タイムライン」として機能し、他の楽器がそれに対して異なるサイクルで演奏します。

4. プログレッシブ・ポリリズム(5:4)

5拍子と4拍子を組み合わせた、より複雑なポリリズム。 プログレッシブロックやエレクトロニカでよく使われます。

bpm 130

// プログレッシブ・ポリリズム (5:4)
pattern prog {
  // 5拍子のシンセ風パターン
  synth: [x . x . .]        // 5ステップ

  // 4拍子のドラムパターン
  kick:  [x . . .]          // 4ステップ
  snare: [. . x .]          // 4ステップ
}
// LCM(5,4)=20ステップで完結

play prog * 2
試す

5. アフロ・キューバン

キューバ音楽は、アフリカとスペインのリズムが融合した複雑なポリリズムの宝庫です。 「クラーベ」を軸に、複数のリズムが絡み合います。

bpm 110

// 複雑なポリリズム - アフロ・キューバン
pattern afro_cuban {
  // ソンクラーベ(2-3)
  clave:  [x . . x . . x . | . . x . x . . .]  // 16ステップ

  // トゥンバオ(ベースパターン)
  bass:   [. . x . . x . . | . x . . x . . .]  // 16ステップ

  // カスカラ(6/8風)
  rim:    [x . x . x .]                         // 6ステップ
}
// 16と6のLCM=48ステップで完結

play afro_cuban
試す

ポリリズムのコツ

  • まずは3:2(ヘミオラ)から始めよう
  • LCMが大きすぎると(例: 7:11 = 77)複雑になりすぎる
  • 全トラックの「1拍目」で音が揃う瞬間がアクセント
  • ひとつのトラックを「グラウンド」として安定させると聴きやすい
  • アフリカ音楽やラテン音楽を聴いて、ポリリズムの「感覚」を養おう

曲の構成(アレンジメント)

プロのトラックは、単なるループの繰り返しではありません。 起承転結のある構成で、リスナーを飽きさせません。

基本的な曲構成

イントロ

曲の導入。シンプルな要素から始める。

4〜8小節

バース (Verse)

メインのセクション。ボーカルやメロディが入る。

8〜16小節

コーラス / ドロップ

曲のハイライト。最もエネルギーが高い。

8〜16小節

ブリッジ

変化をつける中間セクション。

4〜8小節

ビルドアップ

ドロップに向けて盛り上げる。

4〜8小節

アウトロ

曲の終わり。フェードアウトやミニマル化。

4〜8小節

実践:フルトラックを作る

kickstartでは、複数のパターンを定義してplayで組み合わせます。

// フルトラックの構成例
bpm 128

// イントロ - シンプルに始める
pattern intro {
  kick:  [x . . . x . . . | x . . . x . . .]
  hihat: [. . x . . . x . | . . x . . . x .]
}

// ビルドアップ - 盛り上げる
pattern buildup {
  kick:  [x . x . x . x . | x x x x x x x x]
  snare: [. . . . . . . . | x . x . x x x x]
  hihat: [x x x x x x x x | {x x} {x x} {x x} {x x} {x x} {x x} {x x} {x x}]
}

// メインドロップ - 最高潮
pattern drop {
  kick:  [X . . . X . . . | X . . . X . . .]
         > compressor(18, 6)
  clap:  [. . . . X . . . | . . . . X . . .]
         > reverb(0.3)
  hihat: [{x x} . x . {x x} . x . | {x x} . x . {x x x} . x .]
         > hpf(6000)
}

// ブレイク - 一息つく
pattern break_section {
  kick:  [x . . . . . . . | x . . . . . . .]
  snare: [. . . . x . . . | . . . . . . . .]
  hihat: [x . x . x . x . | x . x . . . . .]
         > reverb(0.5)
}

// アウトロ - フェードアウト
pattern outro {
  kick:  [x . . . . . . . | . . . . . . . .]
  hihat: [x . . . x . . . | . . . . . . . .]
         > reverb(0.6) > gain(0.6)
}

// 曲の構成を組み立てる
play intro * 4       // 4小節
play buildup * 2     // 2小節
play drop * 8        // 8小節
play break_section * 4   // 4小節
play drop * 8        // 8小節
play outro * 4       // 4小節
試す

パターンの引き算テクニック

プロは「足し算」より「引き算」でセクションを作り分けます。 同じ要素を減らしたり戻したりすることで、自然な展開が生まれます。

引き算の例

  • ・バース: キック + スネア + ハイハット
  • ・ブリッジ: キックを抜く
  • ・ビルドアップ: スネアロールを追加
  • ・ドロップ: 全要素復活 + 強調

効果的なテクニック

  • ・キックを抜くと浮遊感
  • ・スネアを抜くと緊張感
  • ・ハイハットを抜くと開放感
  • ・全部抜いて静寂→ドロップで爆発

アレンジメントの黄金ルール

  • 8小節ごとに何かを変える
  • 16小節ごとに大きな変化を入れる
  • 静と動のコントラストを意識する
  • 「引き算」で展開を作る

条件分岐とループ

kickstartでは、repeateveryを使って、 動的な曲構成を記述できます。さらにrandom()を使えば、 毎回違うバリエーションを生成することも可能です。

repeat と every

repeatで繰り返し、 everyで周期的にパターンを挿入できます。

bpm 128

pattern main {
  kick:  [x . . . x . . .]
  hihat: [x . x . x . x .]
}
pattern fill {
  snare: [x x x x]
}

// 8回繰り返し、4回ごとにフィルを挿入
repeat 8 {
  play main
  every 4 {
    play fill
  }
}
試す

every の動作

every 4は0, 4, 8...回目に実行されます。 つまり「4回に1回」ではなく「4の倍数のとき」に実行されます。

ランダムなバリエーション

random()ifを組み合わせると、 毎回違うパターンを生成できます。ライブ感のあるトラックに最適です。

bpm 128

pattern verse {
  kick:  [x . . . x . . .]
  snare: [. . . . x . . .]
}
pattern fill_a {
  snare: [x x x x]
}
pattern fill_b {
  tom: [x . x . x . x x]
}

// ランダムにフィルを選択
repeat 8 {
  play verse
  every 2 {
    if random() > 0.5 {
      play fill_a
    } else {
      play fill_b
    }
  }
}
試す

動的な曲構成

条件分岐とループを組み合わせて、複雑な曲構成を簡潔に記述できます。

bpm 124

pattern intro {
  kick:  [x . . . x . . .]
}
pattern verse {
  kick:  [x . . . x . . .]
  snare: [. . . . x . . .]
  hihat: [x . x . x . x .]
}
pattern chorus {
  kick:  [X . . . X . . .]
  clap:  [. . . . X . . .]
  hihat: [{x x} . x . {x x} . x .]
}
pattern fill {
  snare: [x x x x x x x x]
}

// 動的な曲構成
play intro * 4

repeat 2 {
  play verse * 4
  play fill
  play chorus * 4
}

play intro * 2
試す

条件分岐の活用例

  • フィルのバリエーションをランダムに
  • 繰り返しごとに少しずつ変化を加える
  • 確率的にブレイクを入れる
  • セクションの繰り返しを動的に管理

モジュールで整理

プロジェクトが大きくなると、1つのファイルにすべてを書くのは大変です。 kickstartのモジュール機能を使えば、 コードを複数のファイルに分割して整理できます。

モジュールの基本

モジュールを使うと、以下のメリットがあります:

再利用性

よく使うキットやパターンを別ファイルに分離して、複数のプロジェクトで再利用できます。

整理整頓

キット、パターン、メインファイルを分離することで、コードが読みやすくなります。

チーム開発

複数人で作業する場合、ファイルを分けることで衝突を避けられます。

ライブラリ化

自分だけのパターンライブラリを作って、プロジェクト間で共有できます。

キットファイルを作る

まずは、ドラムキットを別ファイルに分離してみましょう。 exportキーワードで公開します。

// kits/808.kick - 808キット定義

export kit "808" {
  kick: "samples/808/kick.wav"
  snare: "samples/808/snare.wav"
  hihat: "samples/808/hihat.wav"
  openhat: "samples/808/openhat.wav"
  clap: "samples/808/clap.wav"
  rimshot: "samples/808/rimshot.wav"
}

パターンファイルを作る

再利用可能なパターンも別ファイルに分離できます。 exportなしのパターンは、 そのファイル内でのみ使用できるプライベートパターンになります。

// patterns/house.kick - ハウス系パターン

export pattern fourOnTheFloor {
  kick: [x . . . x . . . | x . . . x . . .]
}

export pattern offbeatHihat {
  hihat: [. . x . . . x . | . . x . . . x .]
}

// 内部用(エクスポートしない)
pattern _variation {
  kick: [x . x . x . . .]
}

Tip: 内部用のヘルパーパターンには _プレフィックスをつける慣習があります。 (例: _helper, _variation

メインファイルでインポート

作成したモジュールをメインファイルでインポートして使います。

// main.kick - メインファイル

// キットとパターンをインポート
import "kits/808.kick"
import "patterns/house.kick" as house

bpm 126

// インポートしたパターンを参照
pattern main {
  kick: [x . . . x . . . | x . . . x . . .]
  clap: [. . . . x . . . | . . . . x . . .]
  hihat: [. . x . . . x . | . . x . . . x .]
}

play main * 8

インポート構文のバリエーション

構文 用途
import "path" エクスポートされた全要素をマージ
import "path" as name 名前空間を指定してインポート
from "path" import { a, b } 必要なものだけ選択的にインポート

名前付きインポート

大きなモジュールから必要なものだけを取り出したい場合は、名前付きインポートを使います。

// 名前付きインポートで必要なものだけ読み込む
from "patterns/common.kick" import { fourOnTheFloor, breakbeat }

bpm 128

pattern myTrack {
  kick: [x . . . x . . .]
  snare: [. . . . x . . .]
}

play myTrack * 4

推奨ディレクトリ構成

大規模プロジェクトでは、以下のようなディレクトリ構成がおすすめです:

my-project/
├── main.kick           # メインファイル(曲の構成)
├── kits/
│   ├── 808.kick        # TR-808 キット
│   ├── 909.kick        # TR-909 キット
│   └── acoustic.kick   # アコースティックキット
├── patterns/
│   ├── house.kick      # ハウス系パターン
│   ├── hiphop.kick     # ヒップホップ系パターン
│   └── common.kick     # 共通パターン
└── samples/
    ├── 808/            # 808サンプル
    └── 909/            # 909サンプル

モジュール設計のTips

  • キット定義と実際のサンプルファイルは近い場所に置く
  • ジャンル別にパターンファイルを分ける
  • 循環参照を避ける(A→B→Aのようなインポートは禁止)
  • exportしないプライベートパターンを活用してコードを整理
  • プロジェクト共通のユーティリティはcommon.kickにまとめる

ミキシングTips

同じパターンでも、ミキシング次第でプロっぽくもアマチュアっぽくもなります。 ここでは、kickstartのエフェクトを使ったミキシングのコツを紹介します。

1. 周波数の棲み分け

各楽器が「自分の居場所」を持つことが重要です。周波数帯域が被ると、音が濁ります。

楽器 主な周波数帯 推奨エフェクト
キック 50〜150Hz(低音) lpf(200)で高音カット
スネア 200〜500Hz(中低音) hpf(100)で超低音カット
ハイハット 5000Hz〜(高音) hpf(5000)で低音カット
クラップ 1000〜4000Hz(中高音) bpf(2000)で帯域制限

2. パンニングで広がりを出す

全ての音をセンターに置くと、狭く感じます。 左右に音を配置して、ステレオ空間を活用しましょう。

pattern stereo_mix {
  // キックとスネアはセンター(デフォルト)
  kick:  [x . . . x . . .]
  snare: [. . . . x . . .]

  // ハイハットはやや右
  hihat: [x . x . x . x .] > pan(0.4)

  // リムショットはやや左
  rim:   [. x . . . x . .] > pan(-0.3)

  // オープンハイハットは右
  oh:    [. . . . . . . x] > pan(0.6)
}

プロのTip: キックとスネアは必ずセンター(pan = 0)に。 これが曲の「軸」になります。それ以外の音を左右に振り分けましょう。

3. リバーブで奥行きを出す

リバーブは「奥行き」を作ります。リバーブが強い音ほど「遠く」に聴こえます。

前面

リバーブなし〜軽め

キック、スネア

中間

軽めのリバーブ

クラップ、リム

背景

強めのリバーブ

パーカッション、FX

4. コンプレッサーでパンチを出す

コンプレッサーは音の強弱を圧縮して、パンチのある音にします。 特にキックとスネアに効果的です。

pattern punchy {
  // パンチのあるキック
  kick:  [x . . . x . . .]
         > compressor(20, 4, 0.003, 0.1)

  // タイトなスネア
  snare: [. . . . x . . .]
         > compressor(18, 6, 0.001, 0.15)

  hihat: [x . x . x . x .]
}

5. エフェクトチェーンの順番

エフェクトは順番が重要です。一般的には以下の順番がおすすめ:

フィルター → ディストーション → コンプレッサー → 空間系 → パン/ゲイン

pattern effect_chain_example {
  kick: [x . . . x . . .]
        > lpf(150)           // 1. 高音をカット
        > distort(0.1)       // 2. 軽く歪ませる
        > compressor(20, 4)  // 3. パンチを出す
        // キックにリバーブは通常不要
        // パンはセンターなので省略

  snare: [. . . . x . . .]
         > hpf(100)          // 1. 超低音をカット
         > compressor(18, 5) // 2. タイトに
         > reverb(0.3, 0.4)  // 3. 空間を作る

  hihat: [x . x . x . x .]
         > hpf(6000)         // 1. シャープに
         > chorus(1, 2, 0.3) // 2. 軽く厚みを
         > pan(0.4)          // 3. 右に配置
         > gain(0.7)         // 4. 音量調整
}

ミキシングのチェックリスト

  • 各楽器の周波数帯域が被っていないか
  • キックとスネアがセンターにあるか
  • ハイハットなどが左右に広がっているか
  • リバーブで奥行きが出ているか
  • 全体の音量バランスが取れているか