第2章 — コードとトライアド
コードとは、同時に鳴らされるピッチクラスの 集合 であり、集合と同じくその正体は構成要素(メンバーシップ)であって並び順ではありません。この章では、第1章の音程である3度を積んでコードを作り、内部の半音間隔で分類し、キーのスケール度数が一定のコードのパレットを生み出す様子を見ます。これらはまさにMidiSketchの進行エンジンが配置する対象です。
3度を積んでトライアドにする
ルートを取り、その3度上の音を加え、さらにその3度上を加えます。同時に鳴らされた3音が和声になります。
和音(コード)
コード は2つ以上の音を同時に鳴らし、1つの和声単位として聞くものです。メロディが時間に沿った音高の列であるのに対し、コードはある瞬間における音高の 集合 — 音楽の縦の次元です。
トライアド
トライアド は基本となる3音のコードで、ルートの上に3度と5度を積んだものです。最小の「完全な」コードであり、ポップス和声のデフォルト単位です。それ以外のほとんどは、トライアドに音を加えたり並べ替えたりしたものにすぎません。
ルート / 3度 / 5度
ルート はコードの名前の由来であり、構築の起点となる音(コードの度数 1)です。3度 はスケールで2ステップ上、5度 は4ステップ上に位置します(ルートから見た3度と5度)。ルート+3度+5度を積むのが、あらゆるトライアドのレシピです。
集合の言葉で言えば、Cメジャートライアドはピッチクラスとしての {0, 4, 7} です(ルートからの半音で測ったC、E、G)。同じ {0, 4, 7} の形をどのルートに作っても、そのルートのメジャートライアドになります。スケール度数と同じく、これも相対座標のパターンです。
性格:コードの色
2つのコードがルートを共有していても、正反対に感じられることがあります。その違いは積み重ねの中の正確な半音間隔です。
コードの性格(クオリティ)
コードの性格 はトライアドの色合い — メジャー・マイナー・ディミニッシュ — で、ルート・3度・5度の間の半音の隙間だけで決まります。メジャー(4+3)は明るく、マイナー(3+4)は悲しく、ディミニッシュ(3+3)は緊張します。同じルートでも隙間のパターンが違えば感情が違うのです。
コードシンボル
コードシンボル はコードのコンパクトな文字名です。C(Cメジャー)、Cm(Cマイナー)、Cdim(Cディミニッシュ)。文字がルート、接尾辞が性格を表します。ピッチクラス集合の人間可読なシリアライズです。
ポップスの感情のパレット全体は、内側の1〜2音を半音だけ動かすことで切り替わります。整数で言えば、メジャー {0,4,7}、マイナー {0,3,7}、ディミニッシュ {0,3,6}。ビット位置を反転させ、気分を反転させるのです。
ダイアトニックコード:キーのパレット
トライアドのレシピをスケールの すべての 度数に適用すると、キーは互いに調和する7つのコードの既製の集合を渡してくれます。
ローマ数字(度数)表記
ローマ数字表記 はコードを、そのルートのスケール度数で名付けます。I は度数 1 上のトライアド、V は度数 5 上のトライアドです。大文字はメジャー性格、小文字はマイナー、° はディミニッシュを表します。スケール度数と同じくキー非依存で、Cでの I はCコード、Gでの I はGコードです。
この7つ — I ii iii IV V vi vii° — がキーの ダイアトニック コードで、ほとんどのポップスが用いる語彙のすべてです。コード進行はこのパレットから順序を選んだもの(例:I–V–vi–IV)にすぎず、MidiSketchの chordProgressionId は22のパターンから選びます。表記が度数ベースなので、1つの進行は任意の key へ移調できます。
転回形とボイシング
コードは集合なので、どのコードかを変えずに音を自由に並べ替えられます。変わるのはその座り方だけです。
転回形 / ボイシング
転回形 はコードの音を並べ替えて別の構成音を最低音(バス)にします。C–E–G(基本形)、E–G–C(第1転回形)、G–C–E(第2転回形)はすべてCメジャーです。ボイシング は選ばれた具体的な縦の配置です。集合としての正体は不変で、バス音と間隔が響きの印象とコード同士の繋がりの滑らかさを変えます。
この不変性こそが、生成器がコードを滑らかに繋げられる理由です。前のコードに最も近い音を持つ転回形を選ぶ(ボイスリーディング)ことで、動きが最小になります。MidiSketchはボイシングを自動的に選ぶので、あなたは「どのコードか」を指定し、「どう積むか」は指定しません。
ブロックコードとアルペジオ
同じピッチクラス集合は、一度に鳴らすことも時間に広げることもでき、1つのハーモニーから2つの質感が生まれます。
アルペジオ
アルペジオ はコードを同時にではなく1音ずつ順番に鳴らすもの — コードを時間軸に沿って「ほどいた」ものです。ハーモニーは変わらず、リズムの質感だけが違います。同じ集合を、合計する代わりに反復するのです。
ブロックコードは集合の並列読み出し、アルペジオは直列読み出しです。MidiSketchのアルペジオトラックはブロックコードを分散パターンへ自動変換します。arpeggioEnabled で切り替え、arpeggioPattern(0〜7:Up、Down、UpDown、Random、Pinwheel、PedalRoot、Alberti、BrokenChord)で反復の順序を選びます。
よくある落とし穴 — アルペジオトラックはオプトイン
arpeggioEnabled は既定で false です。SynthDriven のようなアルペジオ志向のスタイルでもそうです。分散和音のトラックが出るはずなのに出ない場合は、arpeggioEnabled: true を明示してください。スタイルを選ぶだけでは有効になりません。
MidiSketchとの対応
| 概念 | 設定フィールド | 範囲・備考 |
|---|---|---|
| ダイアトニックコードのパレット → 進行 | chordProgressionId | 0〜21、キーのダイアトニックコードから順序付きの度数列を選ぶ |
| コードの拡張(7th、9th、sus、トライトーン代理) | chordExtSus、chordExt7th、chordExt9th、chordExtTritoneSub + 各確率 | フラグ+0.0〜1.0(デフォルト 0.2 / 0.15 / 0.25 / 0.5)— ハーモニー を参照 |
| 分散和音の質感 | arpeggioEnabled、arpeggioPattern | 真偽値、パターン 0〜7 |
これらのフィールドのエンジン側の詳細は、ハーモニーとコード進行、プリセットカタログ、JavaScript API を参照してください。
次は第3章 — コード進行に進みましょう。