コード進行伴奏プレイヤー — 使い方

できること

コード進行を打ち込むだけで、歌の練習用の簡易伴奏をブラウザ上で再生できます。伴奏
パターン・テンポ・拍子を選ぶと、それに合わせた楽譜が自動生成され、再生に合わせて楽譜上を
カーソルが進みます。楽譜の音符クリックやスライダーで途中から再生できます。メロディや
具体的な伴奏の音は入力しません
(コードと最小限の設定だけ)。音色はピアノ固定です(楽器の
切り替えは今後の有料機能候補)。すべての処理はブラウザ内で完結し、入力内容が外部に送信・
保存されることはありません。音源ファイルもこのサイト内から配信され、外部ドメインへの
リクエストは行いません。

使い方

画面は「プレイヤー」「設定」「データ」「簡易記法」の4タブです。「データ」でコード進行、
「設定」でテンポ・拍子・パターン・音量を編集し、「プレイヤー」で楽譜と再生操作を確認します。

  1. コード進行伴奏プレイヤー を開きます。
  2. 「コード進行」欄にコードを入力します(例: D A/C# Bm7 Asus4)。空白区切りで1つ=1小節、
    | で小節を区切ると1小節に複数コードを入れられます。改行すると楽譜の行が変わります。
    小節の途中でコードを変えるときは | Am:2 D:2 | のように :拍数 を付けます。
  3. 「テンポ」「拍子」「伴奏パターン」を選びます。変更すると楽譜と伴奏が作り直されます。
  4. 楽譜の上の「再生」で伴奏が鳴り、楽譜上のカーソルが進みます。もう一度押すと一時停止、
    「停止」で先頭に戻ります。「音量」スライダーで再生音量を調整できます。
  5. 楽譜の音符をクリック、またはシークバーをドラッグすると、その位置から再生できます
    (初回の再生時だけ音源の読み込みに数秒かかります)。
  6. 設定は URL に反映されます。「リンクをコピー」で現在の URL をクリップボードにコピー、
    「共有」で端末の共有シートに URL とテキストを渡せます(「共有」は Web Share API 対応時のみ表示)。
    その URL を共有・ブックマークすると同じ設定で開けます。

仕様

コード進行の書き方

  • 区切り: 改行 = 楽譜の行送り。行内に | があれば | で小節を区切り、1小節に空白区切りで
    複数コードを置けます。| が無ければ空白区切りの各コード = 1小節。
  • 小節内の拍数指定: コードのうしろに :拍数 を付けると、その小節内でコードが占める拍数を
    指定できます(小数可。例: | C:3 G:1 | は C を3拍・G を1拍)。:拍数 を付けないコードは
    小節の残りを均等に分け合います(例: | C:2 G Am | は C が2拍、G と Am が1拍ずつ)。
    すべてのコードに :拍数 が付いていて合計が1小節に満たない/超える場合は、最後のコードで
    長さを調整します。
  • 小節数の上限: 64 小節。超えた分は無視されます。
  • 入力上限: 8,192文字まで、1小節8コードまで、全体で256コードまでです。超過した入力はエラーを表示して読み込みません。
  • ルート音: A〜G(大文字小文字どちらも可)。#/♯ で半音上げ、b/♭ で半音下げ、
    x でダブルシャープ。
  • オンコード(分数コード): C/G のように / の後ろにベース音を書けます。指定した
    ベース音が左手(低音)で鳴り、右手の和音はそのまま1オクターブ内の密集ボイシングになります
    (例: A/C# は左手 C#+右手 C#・E・A)。
  • メロディ・リズムの指定はできません。伴奏の形は「伴奏パターン」の選択で決まります。

伴奏パターン

伴奏パターンは「パターン1」「パターン2」の2種類です。右手はどちらも共通で、1拍ごとに
フルコード(コードの構成音を C4〜B4 の1オクターブに畳んだ密集ボイシング)を弾きます。
違うのは左手のリズムだけです。左手はいつでも「ベース音(コードのルート、オンコードの
ときは / の後ろで指定した音)+その1オクターブ下」を重ねたオクターブで鳴らします(音域は
おおよそ C2〜B3)。

パターン1(コード・小節の頭で弾く)

左手のオクターブを、コードが変わるたび/小節が変わるたびに弾き直し、そのコードの
あいだ保持します。ベース音(ルート)が前と同じでも、コードや小節が切り替わればそこで
弾き直します(伸ばして繋ぐことはしません)。いちばんシンプルな伴奏で、歌のガイドや
弾き語りの下敷きに向きます。

  • 例(4/4・C | C | F | G7): 左手は各小節の頭でオクターブを弾き、その小節いっぱい
    保持します。1小節目と2小節目はどちらも「ド」ですが、2小節目の頭で弾き直します。
    右手は各小節で四分音符のコードを4回。

パターン2(コードの変わり目で裏拍を入れる)

基本はパターン1と同じ(コード・小節の頭で弾き直して保持)ですが、**各コードの最後の
8分音符(裏拍)**で同じオクターブをもう一度弾き、次のコード(多くは次の小節)の頭へ
食い込ませます。「タ——ッタ、タ——ッタ」と前に押し出すノリになり、パターン1より推進力が
出ます。次のコードのベース音が前と同じでも(C | C | G7 | C のような並びでも)裏拍を
入れます。

  • 例(4/4・C | F | G7 | C): 各小節とも左手は頭のオクターブを3拍半保持し、4拍目の
    裏(「4と」)でもう一度弾いて、そのまま次の小節のベース音へ。進行のいちばん最後の
    コード
    だけは食い込ませる先が無いので裏拍を入れず、頭で弾いて保持するだけです。
  • 1つのコードが2拍未満しかない場合(| C:1 F:1 C:1 G:1 | など短い割り当て)は、裏拍を
    差し込む余地がないためそのコードはパターン1と同じ動きになります。

対応するコードの種類

ルート音のうしろに次の記号を付けられます(代表的な表記ゆれも解釈します)。

種類 書き方の例
メジャー C / CM / Cmaj
マイナー Cm / Cmin / C-
7th C7
メジャー7th Cmaj7 / CM7 / CΔ
マイナー7th Cm7 / Cmin7 / C-7
6th / m6 C6 / Cm6
sus2 / sus4 Csus2 / Csus4 / Csus
dim / dim7 / m7♭5 Cdim / Cdim7 / Cm7b5 / C° / Cø
aug Caug / C+
9th 系 C9 / Cmaj9 / Cm9 / Cadd9
11th / 13th C11 / C13
テンション変化 C7b9 / C7#9 / C7#5 / C7b5 / C7#11
パワーコード C5

解釈できないコードがあると、その小節だけ無視して残りは再生し、どのコードが不明かを画面に
表示します。

入力範囲

項目 範囲
テンポ (BPM) 30〜300(範囲外は丸め、数値でなければ既定 90)
拍子 4/4 / 3/4 / 6/8 から選択
伴奏パターン パターン1(コード・小節の頭で弾く)/ パターン2(コードの変わり目で裏拍を入れる)。詳細は「伴奏パターン」節
音量 0〜100(既定 50)。50 で等倍、100 で約2倍

簡易記法と共有URL

設定とコード進行をまとめて編集できます。空行より後がコード進行です。

tempo: 90
meter: 4/4
pattern: 1
volume: 50

C | F C | G7 C | G7 C |

現在の簡易記法は fflate で圧縮され、URLの #v1:… に保存されます。そのURLを開くと
同じ設定とコード進行が復元されます。旧クエリパラメータ形式は読み込みません。

プライバシー

  • 入力・設定はブラウザ内だけで処理され、サーバーへ送信されません。
  • 音源(サウンドフォント)は abstiro.com 内の /assets/soundfont/ から配信されます。
    再生時に外部ドメインへリクエストは行いません。
  • URL の更新は history.replaceState で行うためブラウザ履歴を汚しません。
  • 「リンクをコピー」「共有」はいずれもツールからサーバーへ送信しません。前者は
    クリップボードへ、後者は端末の共有シート(navigator.share)へ現在の URL を渡すだけです。

補足

  • 各コードは「左手のベース音のオクターブ(C2〜B3。ベース音とその1オクターブ下)+右手の和音
    (C4〜B4 の1オクターブ内に畳んだ密集ボイシング)」で鳴らします。ベース音はコードのルート、
    オンコードのときは指定したベース音です。テンションを含むコードでも右手の押さえる鍵盤は
    飛び飛びになりません。楽譜は右手をト音記号・左手をヘ音記号のピアノ大譜表で書き分けます。右手は
    「伴奏パターン」に関わらず1拍ずつフルコードを弾き、左手はコード・小節の頭で弾き直します。
    パターン2ではさらに各コードの末尾(進行の最後を除く)で裏拍を足します(→「伴奏パターン」節)。
  • 楽譜はメロディではなく、選んだ伴奏パターンをそのまま音符にしたものです。再生位置を示す
    シークバー代わりに使えます。
  • 音量は再生しながらでもリアルタイムに変わります(楽譜や伴奏は作り直されません)。