曲とパターン
曲
| フィールド | 意味 |
|---|---|
bpm | 1 分あたりの拍数。パターンの 1 ステップは 16 分音符なので、4 ステップで 1 拍です。 |
swing | 0〜0.5。1 つおきのステップを、ステップのその割合だけ遅らせて、跳ねたノリにします。省略できます。 |
key | 調。音階の度数と、調に合った効果音に使います:"C major"、"A minor"、"D dorian"。省略できます。 |
transpose | 曲全体をこの半音数だけずらします。省略できます。 |
instruments | 名前付きの楽器(楽器を参照)。 |
sections | 名前付きのセクション。それぞれ楽器名とパターンを対応づけます。 |
order | 演奏する順に並べたセクション名。最後まで行くと最初に戻ってループします。 |
ts
const song = {
bpm: 120,
instruments: { lead: {}, bass: { wave: "triangle", octave: -1 } },
sections: {
verse: { lead: "C5 . E5 G5", bass: "C3 . . ." },
chorus: { lead: "F5 - - . A5 - - .", bass: "F2 . . . C3 . . ." },
},
order: ["verse", "verse", "chorus"],
};ステップ
パターンは、スペースで区切ったステップの並びです。
| ステップ | 意味 |
|---|---|
C4、Eb5、F#3 | 音符。音名の文字、省略できる # か b、オクターブ。A4 は 440 Hz です。 |
C4+E4+G4 | 和音。音符を + でつなぎます。 |
Am7@3、Cmaj7@4、G@3 | オクターブを指定した名前付きの和音。メジャー、m、7、maj7、m7、dim、aug、sus2、sus4、6、m6、add9、9 が使えます。 |
^1、^5、^3@5 | 曲の調の音階の度数(^1 が主音)。オクターブは 4 で、@ の後ろで指定することもできます。 |
x | ドラム用の打音。 |
X | アクセント付きの強い打音。 |
. | 休符。 |
- | 直前のステップをもう 1 ステップ伸ばします。 |
| | 無視されます。小節の区切りに使います。 |
text
C5 . E5 G5 | . E5 C5 . | D5 - - - | . . . .これは 4 ステップの小節 4 つにわたるメロディで、最後に D を 4 ステップ伸ばして終わります。
アクセント、ゴーストノート、確率
音符、和音、打音の末尾には、次の修飾記号を付けられます。
| 末尾 | 意味 |
|---|---|
! | アクセント:大きく鳴らします。C5! |
_ | ゴーストノート:小さく鳴らします。x_ |
? | 半分の確率で鳴ります。x? |
?30 | 30% の確率で鳴ります。x?30 |
確率にはシードがあります。同じ曲は毎回同じように鳴るので、テストやリプレイも安定します。
調と音階の度数
key を指定すると、メロディを音階の度数で書けます。そうすれば必ず調に収まり、key を変えるとメロディ全体が移ります。
ts
{ key: "A minor", sections: { a: { lead: "^1 . ^3 ^5 | ^8 - ^7 ." } } }使える調は major、minor、dorian、phrygian、lydian、mixolydian、pentatonic、minor pentatonic、blues で、主音は何でもかまいません("F# minor")。効果音も調を使います。詳しくはサウンドデザインを参照してください。
バリエーションとフィル
トラックにはパターンのリストも書けます。セクションが鳴るたびに、順番に 1 つずつ使われます。
ts
kick: [
"x . . . x . . . | x . . . x . . .",
"x . . . x . . . | x . . . x . x x", // 2 回に 1 回:フィル
],パターンは繰り返してセクションを埋めます
セクションの長さは、いちばん長いパターンで決まります。短いパターンは繰り返されるので、長いメロディの下でドラムループを 1 小節だけ書くこともできます。
ts
{
lead: "C5 . E5 G5 . E5 C5 . | D5 . F5 A5 . F5 D5 .", // 16 ステップ
kick: "x . . .", // 4 回繰り返す
hat: ". . x .", // 4 回繰り返す
}書き間違い
音符、打音、上の記号のどれでもないものがあると、曲を鳴らしたときにエラーが投げられます。エラーにはそのステップが示されます。
text
plonk: "Q9" isn't a note (try "C4", "Eb5" or "F#3")