0:00/0:00
// We've Only Just Began — Carpenters
// 87 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 12, 4/4 at bar 12) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 89 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(87/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.
// chords · piano · "A.PIANO 1"
const piano = note("<A@5 B C D E F G@8 ~ H I@3 J K L@4 M@8 N@8 O P Q@8 R@8 S T U V W X@4 Y@7 Z@8 ~@2>".pickRestart({
A: "[~@7 [d5,e5,g5]@11 ~@9 g4@2 ~@2 [c5,e5,g5]@12 ~@7 g4@2 ~@2 [d5,e5,g5]@7 ~ [e5,g5]@4 ~@8 g4@2 ~@2 [c5,e5,g5]@11 ~@9 g4@2 ~@2 [d5,e5,g5]@12 ~@8 g4@2 ~@2 [c5,e5,g5]@12 ~@7 g4@2 ~@3 g5@47 [d4,e4,g4]@12 [d4,e4,g4]@12 [d4,e4,g4]@12 [d4,e4,g4]@7, ~@19 [d5,e5,g5]@12 ~@12 [c5,e5,g5]@12 ~@11 [d5,e5,g5]@12 ~@12 [c5,e5,g5]@12 ~@12 [d5,e5,g5]@12 ~@12 [c5,e5,g5]@11 [d5,e5]@47 ~ c3@43]/5", // Em7 C Em7 Em C Em7 C Em7 …
B: "c4@3 ~ [b3,e4,f#4]@12 [b3,e4,f#4]@11 ~ [b3,d#4,f#4]@12 [b3,d#4,f#4]@8, ~ b2@11", // Bsus4 B
C: "f#2@4 [a3,d4,f#4]@11 [a3,d4,f#4]@12 [a3,d4,f#4]@12 [a3,d4,f#4]@9, ~ b2@11", // D
D: "~ [b3,d4,g4]@4 [b3,g4]@4 [b3,g4]@4 [b3,d4,g4]@3, ~ e3@15, ~@5 d4@8 ~@3, ~@9 e4@7", // G Em G
E: "~@3 [d4,e4,e5]@7 ~ g4@4 [d4,e4,g4]@7 ~@5 [c4,e4,g4]@9 ~@2 [c4,e4,g4]@10, ~@3 g4@6 ~ g5@9 ~@3 [d5,e5,g5,d6]@26", // Dsus2 Em7 C Em7
F: "~ [d4,e4,e5]@4 g4@2 [d4,e4,g4]@4 [e5,e6]@2 [d4,e4,g4,d5,d6]@11, ~ g4@2 ~@2 g5@6 ~@13", // Dsus2 Em7 E Em7
G: "[~@45 a3@4 ~@24 d5@47 ~@9 f#3@3 ~@35 e7@45 ~@50 g7@45 ~@3 a1@74, ~@25 g2@32 d4@4 f#4@8 a4@51 ~@15 b3@3 e4@3 f#4@3 g4@3 b4@3 e5@2 f#5@4 g5@3 b5@3 e6@2 g6@49 ~@11 e3@6 b3@3 e4@5 b4@3 e5@3 g5@3 b5@3 e6@3 g6@3 b6@3 e7@48 ~@77, ~@33 d3@87 e2@95 c2@95 ~@74, ~@37 g3@83 ~@6 e3@89 ~@3 g2@91 ~@75, ~@49 b3@71 ~@12 g3@83 ~@6 d3@6 g3@9 g4@75 ~@73]/8",
H: "~@35 g#4@5 b4@6 g#4@2, ~@10 f#4@5 ~",
I: "[~@31 b4@5 e5@36, ~@3 f#4@16 b3@16 b4@11 ~@98, ~@8 g#4@16 ~ f#4@22 e4@27 ~@70, ~@14 b4@11 ~@5 g#4@17 ~@7 g#4@21 ~@69, ~@41 b3@32 ~@71]/3",
J: "~@43 a4@5, ~ a3, ~@24 [e4,c#5]@12 ~ [e4,c#5]@11, ~@5 a4@2 ~", // C#m
K: "~@21 a3@3 ~@20 a4@4, ~ [e4,c#5]@12 [e4,c#5]@11 ~ d3@23, ~@7 a4@12 a4@5 ~ [f#4,c#5]@12 ~ [f#4,c#5]@10, ~@8 a4@3 ~", // C#m F#5
L: "[~@20 a4@6 ~@43 a4@5 ~@45 a4@4 ~@48 a3@3 ~@12 [f#4,c#5]@6, ~@2 [f#4,c#5]@12 [f#4,c#5]@12 a3@48 ~ d3@48 ~@2 a3@46 ~@3 d3@18, ~@8 a4@12 ~@6 [e4,c#5]@12 ~ [e4,c#5]@12 [e4,c#5]@12 [e4,c#5]@12 ~ [f#4,c#5]@12 [f#4,c#5]@12 [f#4,c#5]@12 [f#4,c#5]@11 ~@2 [e4,c#5]@12 [e4,c#5]@12 ~ [e4,c#5]@12 [e4,c#5]@11 ~ [f#4,c#5]@12 ~@6, ~@32 a4@12 ~ a4@12 a4@12 ~@13 a4@12 a4@12 a4@12 ~@13 a4@12 a4@12 ~ a4@12 a4@5 ~@7 a4@12]/4", // F#5 C#m F#5 C#m F#5
M: "[a4@5 ~@20 [a3,a4]@6 ~@18 g#4@6 ~@19 [g#3,g#4]@6 ~@43 f#4@6 ~@43 b3@6 ~@43 f#4@6 ~ b3@5 ~@37 b3@6 ~ [d4,f#4,d5]@12 [f#4,d5]@12 ~@6 d4@6 ~@7 a3@6 g#4@12 g#4@12 ~ e4@12 [c#4,e4,g#4]@12 [c#4,e4,f#4]@9, ~@7 [f#4,c#5]@12 [d4,f#4,c#5]@12 [e4,b4]@12 [e4,b4]@12 ~ [e4,b4]@12 [c#4,e4,b4]@12 [g#4,a4,c#5]@12 [g#4,a4,c#5]@12 ~ [g#4,a4,c#5]@12 [g#4,a4,c#5]@12 ~@7 b3@12 b3@12 b3@12 ~@6 f#3@49 ~ b2@49 [e2,e3]@49 ~@58, ~@13 [a3,a4]@12 ~@6 c#3@49 ~@6 f#4@12 ~ f#4@12 f#4@12 ~@6 [d4,f#4]@12 [d4,f#4]@12 ~ [d4,f#4]@12 [d4,f#4]@12 [g#4,a4,c#5]@12 ~ [g#4,a4,c#5]@12 [g#4,c#5]@24 ~ a4@18 b3@6 [d4,d5]@6 b3@12 ~@31 [a3,f#4]@12 [f#3,d4]@12 ~@59, ~@37 g#4@12 ~@13 [g#3,g#4]@12 ~@6 f#3@49 ~ b2@48 ~@6 f#4@12 ~ f#4@18 [e4,a4,f#5]@12 ~@6 b3@7 [d4,d5]@12 a4@24 ~ a4@24 ~@83, ~@203 a4@6 c#4@18 ~ [d4,d5]@12 f#4@24 [d4,f#4,d5]@12 ~@50 [c#4,e4]@24 [c#4,g#4]@12 ~@22]/8", // A G# D C#m F#7 F#5 Dmaj7 E5 …
N: "[~@3 [c#4,e4,f#4]@12 ~ [c#4,e4,f#4]@12 [c#4,e4,f#4]@12 [e4,g#4]@12 ~@13 [e4,g#4]@12 [e4,g#4]@10 ~@21 f#5@6 ~@18 f#4@5 ~@38 [d4,f#4]@11 ~@20 f#5@6 ~@18 f#4@6 ~@43 a3@3 ~@4 [d4,f#4,a4]@12 [d4,f#4]@12 [d4,f#4]@12 [d4,f#4,a4]@12 ~ [c#4,e4,g#4]@12 [c#4,e4,g#4]@12 [c#4,e4,f#4]@12 ~ [c#4,e4,f#4]@11 ~, ~@40 b3@18 b3@29 ~@8 f#5@12 ~@7 [g#4,a4,c#5]@12 [g#4,a4,c#5]@11 ~@7 b3@12 ~ b3@12 b3@17 ~@8 f#5@12 ~@6 [g#4,a4,c#5]@12 [g#4,a4,c#5]@12 ~@7 a3@12 a3@12 a3@12 ~@80 a3@24 ~, ~@52 [e4,g#4]@12 ~@25 [g#5,a5,c#6]@12 [g#5,a5,c#6]@13 ~@6 f#4@12 ~@6 [d4,f#4]@12 ~ [d4,f#4]@12 [d4,f#4]@12 ~@12 [g#5,a5,c#6]@12 ~ [g#5,a5,c#6]@14 ~@4 f#4@12 ~@6 [d4,f#4]@12 ~ [b3,d4,f#4]@12 [b3,d4,f#4]@12 [b3,f#4]@9 ~@53 b3@24 ~@25, ~@274 d4@9 ~@15 a4@24 ~@62]/8", // F#7 E D C#m F#7 Amaj7 E Amaj7 …
O: "[c#4,e4,g#4]@12 ~@6 b3@5 ~ a3@6 a3@5 ~ [g#3,b3,e4]@12, b3@3 ~@5, ~@12 [c#4,e4,g#4]@11 ~ [c#4,e4,f#4]@11 ~@13", // C#m E C#m F#7
P: "[f#3,a#3,c#4]@10 ~@8 f#3@5 ~ [a#3,c#4,d#4]@6 f#3@2 ~@9 f#3@5 ~@2, ~@12 [a#3,c#4]@11 ~@12 [a#3,c#4,d#4]@11 ~@2", // F# D#7 A#m D#7
Q: "[[f#3,a#3,c#4]@10 ~ [a#3,c#4]@6 f#3@4 ~@8 f#3@4 ~@8 f#3@4 ~@2 [f#3,a#3,c#4]@10 ~@8 f#3@4 ~@7 f#3@3 ~@9 f#3@4 ~@2 [f#3,a#3,c#4]@10 ~@8 f#3@4 ~@2 [f#3,a#3,d#4]@10 ~@8 f#3@5 ~ [f3,a3,c4,d4]@12 ~@5 f3@6 ~ [g3,a#3,d4,f4]@11 ~ [g3,a#3,d4,f4]@10 ~ [f3,a3,c4,d4]@10 ~@8 f3@6 [g3,a#3,d4]@10 ~@8 g3@6 [f3,a3,c4,d4]@11 ~@6 f3@4 ~@3 [g3,a#3,d4]@11 [g3,a#3,d4]@11 ~ [a3,d4,f#4]@16 ~@2 [a3,d4,f#4,a4]@16 ~@2 [a3,d4,f#4]@10 ~@2 [g#3,b3,e4]@47 [e4,c#5]@5, ~@23 [a#3,d#4]@10 ~@2 [a#3,d#4]@10 ~@14 [a#3,c#4]@10 ~ [a#3,d#4]@10 ~@2 [a#3,d#4]@10 ~@14 [a#3,c#4]@10 ~@14 [a#3,d#4]@11 ~@13 [a3,c4,d4]@12 ~@35 [a3,c4,d4]@11 ~@13 [a#3,d4]@10 ~@13 [a3,c4,d4]@11 ~@125]/8", // F# A#m F# D#m Dm7 Gm7 Dm7 Gm …
R: "[~ a4@6 ~@29 a3@3 ~@33 c#4@4 ~@8 [f#5,a5]@6 ~@41 g#4@5 ~@19 f#5@6 ~@18 f#4@6 a3@6 ~@29 [a3,f#4]@11 ~@19 f#5@6 ~@12 [g#4,a4,c#5]@11 ~@42 d4@5 ~@4 d4@9 ~@6 d4@5 ~@19 b3@5 ~ [g#3,c#4,e4]@9, ~@7 [c#4,e4]@12 [c#4,e4]@12 [c#4,e4]@9 ~@8 c#4@12 c#4@12 ~@18 [c#4,e5,g#5]@47 ~@24 [g#4,a4,c#5]@12 [g#4,a4,c#5]@11 ~@7 d4@12 d4@11 d4@17 ~@7 f#5@12 ~@6 [g#4,a4,c#5]@12 ~@18 d4@12 d4@12 d4@11 ~@36 b3@12 ~@15, ~@13 a3@12 a3@11 ~@6 [a3,e4,f#4]@12 [a3,e4,f#4]@12 [a3,e4,f#4]@10 ~@2 [a3,e4,f#4]@12 [e4,b4]@11 ~ [e4,b4]@12 [e4,b4]@12 [e4,b4]@11 ~@6 f#5@12 ~@12 f#4@12 ~@6 f#4@12 [a3,f#4]@12 [a3,f#4]@11 ~@42 f#4@17 ~ [a3,f#4]@11 ~ [a3,f#4]@11 [a3,f#4]@12 [a3,f#4]@11 ~ [a3,f#4]@12 [a3,f#4]@11 ~ [g#3,e4]@12 [g#3,e4]@11 ~@10, ~@96 g#4@12 g#4@12 g#4@11 ~@6 [g#5,a5,c#6]@12 [g#5,a5,c#6]@14 ~@69 [g#5,a5,c#6]@12 [g#5,a5,c#6]@13 ~@127]/8", // F#m D Amaj7 C#m Amaj7 F#m7 E5 D …
S: "~@3 [g#3,c#4,e4]@11 [a3,c#4,f#4]@12 [a3,c#4,f#4]@10 ~@2 [g#3,c#4,e4]@10", // C#m F#m C#m
T: "~@2 [g#3,c#4,e4]@10 ~@2 [a3,c#4,f#4]@10 ~@2 [g#3,e4]@11 ~ [f#3,a#3,c#4]@10", // C#m F#m C#m F#
U: "~@7 f#3@5 ~ [a#3,c#4,d#4]@6 f#3@2 ~@10 f#3@5 ~ [f#3,a#3,c#4]@10 ~, ~ [a#3,c#4]@11 ~@13 [a#3,c#4,d#4]@11 ~@12", // D#7 F# A#m D#7
V: "~ [a#3,c#4]@6 f#3@4 ~@8 f#3@4 ~@7 f#3@4 ~@2 [f#3,a#3,c#4]@10 ~@2, ~@13 [a#3,c#4,d#4]@10 ~@2 [a#3,c#4,d#4]@10 ~@13", // A#m F# D#7
W: "~@6 f#3@4 ~@8 f#3@3 ~@9 f#3@4 ~@2 [f#3,a#3,c#4]@10 ~@2, [a#3,c#4]@5 ~ [a#3,c#4,d#4]@5 ~ [a#3,c#4,d#4]@5 ~@7", // F# A#m D#7
X: "[~@6 f#3@4 ~@2 [f#3,a#3,c#4,d#4]@10 ~@7 f#3@5 ~ [f3,a3,d4]@12 ~@6 f3@6 [g3,a#3,d4]@11 ~ [g3,a#3,d4]@10 ~@2 [f3,a3,d4]@10 ~@8 f3@6 [g3,a#3,d4]@10 ~@7 g3@6 [f3,a3,d4]@11 ~@7 f3@4 ~@2 [g3,a#3,d4]@12 [g3,a#3,d4]@11 ~ [a3,d4,f#4]@14, [a#3,c#4]@10 ~@13 [a#3,c#4,d#4]@11 ~@13 [a3,d4]@12 ~@36 [a3,d4]@11 ~@12 [a#3,d4]@10 ~@14 [a3,d4]@11 ~@39]/4", // D#m7 Dm Gm Dm Gm Dm Gm D …
Y: "[~@4 a3@16 ~@2 [a3,d4,f#4]@10 ~ [g#3,b3,e4]@47 ~@90 g#3@5 ~@42 a3@5 ~@37 [b3,e4]@10 ~@19 f#5@6 ~@18 f#4@5 ~@13 [d4,f#4]@6, ~@3 [d4,f#4,a4]@16 ~@14 [e1,e2]@95 [c#4,e4]@12 [c#4,e4]@12 [c#4,e4]@12 [c#4,e4]@11 [c#4,e4]@12 [c#4,e4]@12 [c#4,e4]@12 [c#4,e4]@11 ~ [b3,e4]@12 [b3,e4]@12 [b3,e4]@12 ~@11 [g#5,a5,c#6]@12 [g#5,a5,c#6]@12 ~@6 f#4@11 ~@7 [d4,f#4]@11 ~@7, ~@134 g#3@12 g#3@11 ~ g#3@12 ~@11 a3@12 a3@12 a3@12 ~@12 g#3@12 g#3@12 g#3@16 ~@7 f#5@12 ~@6 [g#4,a4,c#5]@12 [g#4,a4,c#5]@11 ~@7 a3@12]/7", // D E E5 D E C#m E5 Amaj7 …
Z: "[~@23 a3@4 ~@20 f#4@6 ~@12 [g#4,a4,c#5]@12 ~@41 a3@5 ~ [g#3,b3,d4,e4]@47 ~ c#4@12 ~@29 a4@6 ~@42 e4@4 ~@2 a3@6 ~@6 [c#4,e4]@11 ~@18 a3@4 ~@2 [c#4,e4,f#4]@12 ~@30 a4@5 ~@23, a3@12 a3@11 ~@13 f#4@11 ~@12 f#4@18 [d4,f#4]@12 [d4,f#4]@11 [d4,f#4]@12 [d4,f#4]@11 ~@49 e4@24 e4@22 ~@7 e4@12 e4@11 ~ e4@12 ~@29 e4@12 ~@24 f#4@18 a4@6 f#4@11 ~@23, ~@6 [d4,f#4]@12 [d4,f#4]@10 ~@2 [g#4,a4,c#5]@11 [g#4,a4,c#5]@12 [g#4,a4,c#5]@11 ~@19 a3@11 ~ a3@12 a3@11 ~@54 a3@17 a3@12 a3@17 ~ [a3,c#4,f#4]@12 [a3,f#4]@12 [a3,f#4]@12 [a3,f#4]@10 ~@8 a3@23 a3@12 ~@6 a3@47 ~@23, ~@184 c#4@23 c#4@11 ~@13 c#4@34 ~@2 [c#4,e4]@12 ~@12 c#4@11 [c#4,e4]@10 ~@14 [c#4,e4]@35 ~@23, ~@338 [c#5,f#5]@23 ~@23]/8", // Amaj7 E7 C#m F#7 D Amaj7 F#m D …
})).s("gm_piano").gain(0.27).pan(0.2)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
~@7 A@2 B@2 ~@24 C@4 D@6 E F@5 G H@8 I@3 J K L M N O@4 P@3 Q@2 R@2 S T U@2 V W X@2 ~@2
>`.pickRestart({
A: "[~@3 e3@7 ~ d4@12 b3@4 a3@7 ~ g3@4 e3@7 d3@4 ~ c2@23 ~ g2@21]/2", B: "[~@2 c2@19 ~ e2@4 g2@45 ~@25]/2",
C: "[~@19 e3@18 ~ a2@24 e2@3 f#2@3 ~ a2@12 e2@6 d2@24 a2@12 ~ d3@12 c#2@24 ~ f#2@3 g#2@3 c#3@12 g#2@6 f#2@7]/4",
D: "[~@15 f#2@3 c#2@3 ~@3 c#2@7 ~@2 c#2@3 f#2@6 b1@22 ~@3 b1@2 ~@4 b1@10 ~@2 b1@6 ~ f#2@18 ~@3 f#2@3 c#2@2 ~@4 f#2@12 ~ c#2@5 b1@20 ~@2 f#1@3 b1@2 ~@4 b1@8 ~ b1@3 ~ f#2@5 ~ e2@20 ~ b1@3 e2@3 ~@3 e2@8 ~@2 d2@3 e2@6 a2@6 ~@6 a2@12 d2@2 ~@4 d2@10 ~@3 d2@3 e2@3]/6",
E: "a2@6 ~@6 a2@7 ~@2 e2@3 d2@3 ~@3 d2@3 ~@3 e2@10 ~@2",
F: "[f#2@10 ~@2 f#2@8 ~ f#2@2 ~ b1@3 ~@3 b1@7 ~ f#2@2 ~ b2@5 ~ f#2@9 ~@3 f#2@7 ~@2 c#2@2 ~ b1 ~@2 b1@8 ~ b2@3 f#2@3 b1@4 ~@2 f#2@10 ~@2 f#2@7 ~ c#2@3 b1@3 ~@3 b1@8 ~ c#2@2 ~@2 d#2@3 ~@2 f#2@9 ~@3 f#2@7 ~@2 c#2@2 ~ b1@2 ~ c#2 ~@2 d#2@3 ~@3 f#2@5 ~ b1@6 a#1@9 ~@3 a#1@6 ~@2 a#1@3 ~ d#2@2 d#2@2 ~ d#2@3 a#1@2 ~ d#2@3 a#1@2 ~ c2@4 ~@2 a#1@3]/5",
G: "~@6 a#1@2 ~ a#1@5 ~ f2@2 ~ a#2@2 ~ d#2@7 ~@2 c2@2 ~ d#2@5 ~ c2@5 ~ a#1@3",
H: "[~@9 a#1@5 f2@2 ~ a#2@2 ~ d#2@2 ~ d#2@3 ~@3 a#1@2 ~ d#2@4 ~@2 a#1@4 ~@2 e2@14 ~@4 e2@15 ~@3 e2@9 ~@2 e3@47 ~ a1@18 ~@3 a1 ~@2 a1@2 ~@4 a1@15 ~@3 d2@19 ~ a1@2 ~ d2@2 ~@4 d2@9 a2@2 ~ d3@5 ~ c#2@16 ~@5 g#1@2 ~ c#2@2 ~@4 c#2@11 c#3@6 f#2@18 ~@3 d2@2 ~ c#2@2 ~@4 f#2@11 ~ f#1@5 ~ b1@17 ~@4 b1@2 ~ b1@2 ~@4 b1@11 ~ b1@5 f#2@8]/8",
I: "[~@13 d2@2 ~ c#2@4 ~@2 f#2@3 c#2@4 ~@2 a1@2 ~ f#1@3 ~@3 b1@15 ~@3 b1@11 ~ f#2@11 b2@5 ~ e2@20 ~@4 e2@5 ~ e2@4 ~@2 e2@5 ~ e2@4 ~@2 a1@9]/3",
J: "~@2 a1@10 ~@2 d2@3 ~@3 d2@3 ~@3 d2@7 ~@2 d2@2 ~ a2@6 e2@4",
K: "~@2 a1@5 ~ e2@2 ~ a2@3 d2@3 ~@3 d2@3 ~@3 e2@9 ~@3 f#2@9 ~",
L: "~@2 f#2@6 ~@2 c#2@2 ~ b1@5 ~ c#2@5 ~ d#2@5 ~ b1@5 ~ f#2@9 ~@2",
M: "~ f#2@2 ~ c#2@2 ~ f#1@3 b1@3 ~@3 f#1@3 b1@3 ~@3 f#1@2 ~ b1@7 ~@2 f#2@7 ~ c#2@2 ~",
N: "~ f#2@7 ~ c#2@2 ~ b1@5 ~@4 b1@2 ~ b1@4 ~@2 b1@2 ~ c#2@2 ~ f#2@7 ~@2 c#2@2 ~",
O: "[f#2@3 c#2@2 ~ f#1@2 ~ b1@4 ~@2 f#1@2 ~ b1@3 ~@2 b1@5 ~ b1@2 ~@4 a#1@3 ~@3 a#1@2 ~@4 a#1@4 ~@2 f2@3 e2@2 ~ d#2@2 ~ a#1@3 d#2@4 ~@2 a#1@6 d#2@6 a#1@3 ~@3 a#1@4 ~@2 a#1@4 ~@2 a#1@3 d#2@4 ~ a#1@3 a#2@4 ~@2 d#2@6 a#1@3 ~@3 a#1@6 ~@3 a#1@2 ~ a#1@6 ~@3 a#1@2 ~ d#2@6 ~@3 d#2@2 ~ d#2@6 a#1@3 ~@3 e2@13 ~]/4",
P: "[~@3 e2@14 ~@4 e2@9 ~@3 e3@93 ~@2 a1@16]/3",
Q: "[~@5 a1@2 ~ a1@2 ~@4 a1@8 ~@4 a1@5 d2@24 ~@3 a2@2 ~ d3@6 c#3@6 a2@5 ~ c#2@17]/2",
R: "[~@4 c#2@2 ~ c#2@3 ~@3 c#2@6 ~@2 c#2@3 g#2@3 g2@3 ~ f#2@23 c#3@9 a2@9 f#2@6 b1@18]/2",
S: "~@3 f#1@3 b1@2 ~@4 b1@10 ~ b1@5 ~ f#2@19", T: "~@2 c#2@2 ~ c#2@4 ~@2 f#2@3 c#2@4 ~@2 f#1@3 c#2@4 ~@2 b1@19",
U: "[~@2 f#1@2 b1@2 ~@4 b1@11 ~ f#2@6 e2@47 ~ a1@16 ~@4]/2", V: "a1 ~@2 a1@2 ~@4 a1@14 ~@4 d2@17 ~@4",
W: "d2 ~@2 d2@2 ~@4 d2@14 ~@4 a1@17 ~@4", X: "[a1 ~ a1 ~@5 a1@11 ~ a2@6 d2@39 ~@3 d2@6 c#2@8 ~@14]/2",
})).s("gm_fretless_bass").gain(0.33)
// chords · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@42 A@2 B C D E F G H I J K@7 L@3 M N O P Q R S@3 T@2 U@5 V@2 W@2 ~ X Y@4>".pickRestart({
A: "[~@21 a4@12 f#4@12 ~ e4@10 ~@2 e4@38]/2", B: "~@5 [e4,b4] ~@6 b4@2 a4@14 ~@20, ~@12 e4@17 ~@19",
C: "~@6 [b4,e5]@3 e4 ~@2 b4@3 a4@7 ~@2 [a3,c#4]@6 [c#4,f#4]@3 c#4@3 e4@5 e4@6 ~, ~@6 e5@3 ~@3 e4@6 [b3,g#4]@5 ~", // E5 A F#5 E
D: "~@6 [g#4,a#4] ~@5 [g#4,a#4]@3 f#4@6 ~@9 [d#4,f#4]@2 ~@4 [d#4,f#4]@2 c#4@6 ~@4", // G#sus2 D#m
E: "~@5 [g#4,a#4]@2 ~ f#4@2 ~ [g#4,a#4]@3 f#4@5 ~@10 [d#4,f#4] ~@5 [d#4,f#4]@3 c#4@6 ~@4", // G#sus2 D#m
F: "~@5 [g#4,a#4] ~@5 [g#4,a#4]@3 f#4@6 ~@9 [d#4,f#4]@2 ~ c#4@2 [d#4,f#4]@2 ~ c#4@7 ~@4", // G#sus2 D#m
G: "~@5 g#4@2 f#4 ~@2 [g#4,a#4]@2 ~ f#4@6 ~@9 [d#4,f#4] ~@5 [d#4,f#4]@2 ~ c#4@5 ~@6, ~@2 a#4 ~@21", // G#sus2 D#m
H: "~@4 [c4,a4] ~@5 [c4,a4]@3 f4@7 ~@8 [a#3,g4] ~@5 [a#3,g4]@10 ~@4", // F D#
I: "~@4 [c4,a4] ~@4 [c4,a4]@3 f4@6 ~@9 d5 ~@5 a4@2 ~ g4@7 ~@5, ~@33 d5@10 ~@5", // F
J: "~@3 [c4,a4] ~@4 [c4,a4]@8 ~ [d4,a#4]@7 ~@2 [a#3,g4]@15 ~@3 [a3,d4,f#4]@4", // F Gm D# D
K: "[~@14 [a3,d4,f#4]@15 ~@3 [a3,d4,f#4]@8 ~@4 [g#3,b3,e4]@46 ~ [c#4,a4]@45 ~@3 [c#4,f#4]@34 ~@7 [f#5,a5]@6 [e5,g#5]@41 ~@6 [g#5,c#6]@24 ~ g#4@23 [a3,d4,f#4]@47 ~ c#6@7, ~@138 a4@34 ~@85 c#5@24 ~@47 g#5@8]/7", // D E F#m F#5 F#m E C#5 D
L: "[~@16 [g#4,c#5]@24 f#4@21 ~@3 f#4@11 a4@12 e4@6 e3@6 ~@6 e3@10 ~@2 e3@6 ~@6 e3@7 ~@5 [e4,b4] ~@2, ~@40 [a3,d4]@35 ~@12 b4@49 ~@8, ~@99 e4@20 ~@4 e4@12 ~@9]/3", // C#5 E5 D5
M: "~@3 b4@2 a4@14 ~@25 [b4,e5]@3 e4, ~@3 e4@17 ~@28", // E5
N: "~@2 b4@3 a4@7 ~@2 [a3,c#4]@6 [c#4,f#4]@3 c#4@3 e4@5 e4@6 ~@7 [g#4,a#4] ~@3, ~ e5@3 ~@3 e4@6 [b3,g#4]@5 ~@6", // A F#5 G#sus2 E
O: "~ [g#4,a#4]@3 f#4@6 ~@10 [d#4,f#4]@2 ~@3 [d#4,f#4]@2 ~ c#4@6 ~@9 [g#4,a#4]@2 ~ f#4@2", // G#sus2 D#m G#sus2
P: "~ [g#4,a#4]@3 f#4@5 ~@9 [d#4,f#4] ~@5 [d#4,f#4]@3 ~ c#4@6 ~@9 [g#4,a#4] ~@4", // G#sus2 D#m G#sus2
Q: "~ g#4@2 f#4@6 ~@9 [d#4,f#4]@2 ~ c#4@2 ~ [d#4,f#4]@2 ~ c#4@7 ~@8 [g#4,a#4]@2 ~ f#4 ~@2, a#4 ~@15", // D#m G#sus2
R: "[g#4,a#4]@2 ~ f#4@6 ~@9 [d#4,f#4] ~@4 [d#4,f#4]@2 ~ c#4@5 ~@11 [c4,a4] ~@5", // G#sus2 D#m F
S: "[[c4,a4]@3 f4@7 ~@8 [a#3,g4] ~@4 [a#3,g4]@10 ~@8 [c4,a4] ~@5 a4@3 f4@6 ~@8 d5 ~@9 g4@7 ~@7 [c4,a4] ~@5 [c4,a4]@8 ~ [d4,a#4]@7 ~@2 [a#3,g4]@15 ~@3 [a3,d4,f#4]@13 ~, ~@23 c4 ~@11 a4 ~@36, ~@71 d5@10 ~@63]/3", // F D# F Gm D# D
T: "[~@4 d4@15 ~@3 [a3,d4,f#4]@8 ~@3 [g#3,b3,e4]@46 ~@17, ~ [a3,f#4]@5 ~@26]/2", // D E D
U: "[~@26 b4@6 c#5@47 ~ f#4@40 ~ [f#5,a5]@6 [e5,g#5]@44 ~@10 f#5@36 ~@23, ~@7 b4@6 ~@107, ~@20 e5@12 ~@143 [g#5,c#6]@43 ~@22]/5", // F#m E C#5
V: "[~@23 a5@5 ~ g#5@6 f#5@5 ~@7 f#5@29 ~@20, ~@29 c#6@47 ~@20, ~@41 [g#5,a5]@35 ~@20]/2", // Amaj7
W: "[~@23 f#4@5 e4@44 ~@24]/2", X: "~@13 b4@3, ~@9 g#5@7, ~@11 e5@5",
Y: "[~@2 b6@6 g#6@6 e6@5 ~ [e5,b5]@5 ~ [c#5,a5]@45 ~@4 g#5@93 ~@24, b5 g#6 ~@94, ~ e6@2 ~@71 [c#5,f5]@92 ~@26]/4", // E5 F#m C#
})).s("gm_epiano1").gain(0.25).pan(0.9)
// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note("<~@46 A@2 B@2 C@2 D@4 E@4 F@5 ~@5 G@5 ~ H@3 I J@2 ~@7>".pickRestart({
A: "[~@5 f#4@6 c#4@6 a#3@3 c#4@9 d#4@6 f#3@3 b3@9 a#3@6 g#3@3 a#3@21 ~@19]/2",
B: "[~@4 f#4@7 c#4@6 a#3@3 c#4@9 d#4@3 ~ f#3@8 b3@3 a#3@52]/2",
C: "[~@4 f4@6 f4@5 d4@3 ~ f4@8 g4@6 a#3@6 d#4@7 d4@4 c4@4 ~ d4@39 ~@2]/2",
D: "[~@3 a3@6 a3@6 a3@2 a#3@9 a#3@3 g3@9 g3@3 a3@47 ~ f#3@3 f#3@3 g#3@53 ~@44]/4",
E: "[~@36 [f#3,d4]@6 [g#3,b3,c#4]@36 b3@11 a3@24 [b3,c#4,e4,g#4]@9 [a3,c#4,e4,f#4]@9 [f#3,a3,c#4,e4]@6 [f#3,a3,c#4,f#4]@18 [e3,g#3,b3,e4]@3 [d3,f#3,a3,d4]@33 ~, ~@42 e4@71 ~@79, ~@78 c#4@35 ~@79]/4", // D C#7 C#m7 F#m7 F#m E D
F: "[~@13 [b3,e4]@3 [b3,e4]@6 [c#4,f#4]@3 [c#4,f#4]@6 [a3,d4]@3 [g#3,c#4]@6 [a3,c#4]@18 [a3,b3]@6 [a3,b3]@41 e3@5 f#3@6 ~ a3@6 a3@5 e4@3 c#4@86 ~ b3@12 a#3@6 ~@4]/5", // E5 F#5 D5 C#5 A Asus2
G: "[~@40 a3@6 a3@6 a3@3 a#3@9 a#3@3 g3@9 g3@3 a3@47 f#3@3 f#3@3 g#3@42 [f#3,a3]@3 [f#3,a3]@3 [g#3,b3]@50 ~@10]/5", // F#m G#m
H: "[~@25 [f#3,a3,d4]@6 [g#3,b3,c#4]@36 b3@12 a3@23 [b3,c#4,e4,g#4]@9 [a3,c#4,e4,f#4]@9 [f#3,a3,c#4,e4]@6 [f#3,a3,c#4]@18, ~@31 e4@71 ~@42, ~@67 c#4@35 ~@42]/3", // D C#7 C#m7 F#m7 F#m
I: "[e3,g#3,b3] [d3,f#3,a3]@13 ~@2", // E D
J: "[~@2 [b3,e4]@3 [b3,e4]@6 [c#4,f#4]@3 [c#4,f#4]@6 [a3,d4]@3 [g#3,c#4]@6 [a3,c#4]@18 [a3,b3]@6 a3@23 g#3@17 ~@3, ~@53 b3@41 ~@2]/2", // E5 F#5 D5 C#5 A Asus2
})).s("gm_acoustic_guitar_nylon").gain(0.18).pan(0.4)
// chords · rock organ · "ORGAN 3"
const rock_organ = note("<~@35 A@3 ~@5 B@3 C ~@2 D@3 ~@16 E@3 ~@18>".pickRestart({
A: "[~@7 e5@6 f#5@9 a5@9 f#5@3 ~ [c#5,e5,g#5,b5]@52 [c#5,e5,f#5,a5]@50 ~@7]/3", // C#m7 F#m7
B: "[~@16 [e4,e5]@6 [f#4,f#5]@6 [a4,a5]@5 ~ [a4,a5]@6 ~ e5@3 [c#5,c#6]@88 [b4,b5]@12, ~@40 e6@3 ~@101]/3", // E F# A C# B
C: "[a#4,a#5]@17 ~@31", // A#
D: "[~@34 [a#4,c#5,d#5,f#5]@11 [a4,c5,d5,f5]@24 [g4,a#4,d5,f5]@24 [a4,c5,d5,f5]@23 ~ c5@9 a#4@8 ~ a4@6 ~@3, ~@116 g4@23 ~@5, ~@117 [d5,f5]@23 ~@4]/3", // D#m7 Dm7 Gm7 Dm7 Dm
E: "[~@24 [a#4,c#5,d#5,f#5]@11 [a4,c5,d5,f5]@24 [g4,a#4,d5,f5]@24 [a4,c5,d5,f5]@23 c5@9 a#4@8 ~ a4@6 ~@14, ~@106 [g4,d5,f5]@23 ~@15]/3", // D#m7 Dm7 Gm7 Dm7 G7
})).s("gm_rock_organ").gain(0.25).pan(0.4)
// chords · trumpet
const trumpet = note("<~@44 A B C D@2 E F G H@2 ~@9 I J K L@2 M@3 N O ~@16>".pickRestart({
A: "~@11 [e5,a5]@4 ~@33", B: "~@3 [e5,a5] ~@8", C: "~@3 [c#5,f#5] ~@8", D: "~@11 [c#5,f#5]@4 ~@33",
E: "~@5 [c#5,f#5]@2 ~@17", F: "~@10 [d5,f5]@5 ~@33", G: "~@9 [d5,f5]@4 ~@35",
H: "[~@9 [d5,f5]@2 ~@7 d5@8 a#4@2 ~@4 g4@5 ~@7 [f#4,a4]@47 ~@5]/2", I: "~@3 [e5,a5]@4 ~@41", J: "~ [e5,a5]@2 ~@21",
K: "~ [c#5,f#5]@2 ~@21", L: "~ [c#5,f#5]@4 ~@43", M: "[[c#5,f#5]@4 ~@43 [d5,f5]@5 ~@43 [d5,f5]@4 ~@43 [d5,f5]@2]/3",
N: "~@7 d5@9 a#4@2 ~@4 g4@5 ~@7 [f#4,a4]@14", O: "~@2 [f#4,a4]@15 ~@7",
})).s("gm_trumpet").gain(0.44).pan(0.7)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@8 A@3 ~@2 B@6 C@6 ~@10 D E@8 F G ~@8 H@8 I@3 ~@9 J@6 K@3 ~ L@5>".pickRestart({
A: "[~@3 [d4,e4,g4,d5]@10 ~ [d4,e4,g4,d5]@11 ~@2 e4@11 [c4,e4,g4,c5]@8 g4@4 [d4,e4,g4,d5]@10 ~@2 e4@11 ~ [c4,d4,e4,g4]@47 ~@23, ~@26 [c4,g4,c5]@11 ~@24 [d4,g4,d5]@11 ~@72]/3", // Em7 C Em7 C C5 G5
B: "[~@29 [a4,d5,f#5]@6 ~ [g4,b4,e5]@5 [a4,d5,f#5]@6 ~ g5@5 ~ f#5@5 [g4,b4,e5]@6 [f#4,a4,d5]@6 [g4,b4,e5]@53 [a4,d5,f#5]@6 [g4,b4,e5]@6 ~ f#5@5 ~ g5@5 ~ f#5@5 [g4,b4,e5]@6 [f#4,a4,d5]@6 ~@48 a2@66 ~@8, ~@47 [b4,e5]@6 [a4,d5]@7 ~@76 [a4,d5]@6 [b4,e5]@6 [a4,d5]@7 ~@11 [g4,c5,e5]@107 ~@15]/6", // D Em D Em D Em D Em …
C: "[~@30 [e2,b3,g#4]@101 ~@157, ~@5 [e4,e5]@39 ~@4]/6", D: "~@19 [c#4,e4,g#4]@5",
E: "[~@39 [c#4,f#4,a4]@49 [b3,e4,g#4]@49 [f#4,a4,c#5]@49 [d4,f#4,a4]@49 c#5@43 b4@6 [d4,f#4,a4]@49 ~ d4@49 [g#3,c#4,e4], ~@235 [f#4,a4]@49 ~@49 [a3,f#4]@49 ~@2]/8", // F#m E F#m D C#m F#m D
F: "~ f#4, ~@23 a3@24 ~", G: "[g#3,e4]@25 [a3,f#4]@10 [g#3,b3,e4]@12 ~, c#4@3 ~",
H: "[~@43 [c#4,e4,a4]@47 [c#4,f#4,a4]@47 ~ [b3,e4,g#4]@47 [g#4,a4,c#5]@47 ~ [d4,f#4,a4]@47 c#5@42 b4@5 ~ [b3,f#4,a4]@47 [a3,d4,f#4]@9, ~@280 [f#4,a4]@47 d4@47 ~@10]/8", // A F#m E Amaj7 D B7 D F#m
I: "[~@15 [g#3,e4]@24 [g#3,e4]@24 [a3,f#4]@23 [g#3,e4]@24 [a3,f#4]@12 [g#3,b3,e4]@12 ~@10, ~@39 c#4@47 c#4@35 ~@23]/3", // C#m D C#m D E
J: "[~@32 [c#4,e4,a4]@47 [c#4,f#4,a4]@47 ~ [b3,e4,g#4]@47 ~ g#4@47 [d4,f#4,a4]@47 [f#4,a4,c#5]@19, ~@174 [a4,c#5]@47 ~@67]/6", // A F#m E D F#m A
K: "[~@23 b4@6 [b3,d4,f#4,a4]@47 [g#3,d4,e4]@47 ~@21]/3", // Bm7 E7
L: "[~@3 [a4,c#5,f#5]@6 [f#4,a4,c#5]@6 [c#4,f#4,a4]@6 [f#4,a4,c#5]@6 [e4,g#4,b4]@6 [b3,e4,g#4]@5 ~ [g#3,b3]@23 [e4,g#4,b4]@12 [c#4,f#4,a4]@47 [c#4,f4,g#4]@95 ~@24, ~@19 e4@12 ~@89]/5", // F#m E G#m E F#m C#
})).s("gm_string_ensemble_1").gain(0.22).pan(0.7)
// chords · french horn · "FR.HORN"
const french_horn = note("<~@84 A@5>".pickRestart({
A: "[~@27 a3@47 d3@35 [f#3,a3]@12 [f3,g#3]@95 ~@24]/5", // F#m Fm
})).s("gm_french_horn").gain(0.25).pan(0.4)
// other · vibraphone
const vibraphone = note("<~@2 [~@6 d5@10 ~@2 d5@7 ~ g4@3 ~ c5@10 ~@2 c5@6] [~@2 g4@2 ~@2 d5@41 ~] ~@85>")
.s("gm_vibraphone").gain(0.16).pan(0.6)
// chords · orchestral harp · "HARP"
const orchestral_harp = note("<~@7 A@2 ~@2 B C@2 ~@2 D E ~@71>".pickRestart({
A: "[~@39 d5@2 ~@7 g6@4 ~@44, ~@35 [e3,g3]@3 [g4,b4]@3 ~@2 [g4,b4]@4 [d6,e6]@2 ~@47, ~@36 b3@3 ~@2 e3@3 [d5,e5]@2 b5@2 ~@48, ~@37 [d4,e4]@3 ~@2 [g3,b3,d4,e4]@3 g5@3 ~@48]/2", // Em G Dsus2 Em7
B: "~@25 a6@3 g6@2 ~ f#6@2 ~ d6 ~@2 a5@3 g5@3 f#5@2 ~ d5@2",
C: "[a5@4 g5@3 f#5@3 d5 ~@2 a4@3 g4@3 f#4@2 ~ d4@2 ~ b3@28 ~@43]/2",
D: "~@22 a2@2 ~ c3@2 ~ [c3,e3]@2 ~ g3 ~@2 e3@2 ~ c4@2 ~ a3@2 ~ a4@2 ~ c4@2, ~@34 a3 ~@5 e4 ~@5 c5 ~", // C
E: "~ e4 ~@2 e3@3 c5@2 ~ c3@2 ~ a5 ~@2 e3@2 ~ e6 ~@2 a6@2 ~@24, ~@4 a4 ~@5 e5 ~@5 c6 ~@31",
})).s("gm_orchestral_harp").gain(0.17).pan(0.6)
// other · clarinet
const clarinet = note("<~@23 A B@5 ~@9 C@4 ~@40 D@3 E@4>".pickRestart({
A: "~@7 e4", B: "[~ f#4@5 a4@5 ~@2 a4@6 e5@6 c#5@48 ~@20 e4@6 f#4@6 a4@5 ~ a4@6 e5@7 c#5@83 ~@33]/5",
C: "[~@29 e4@6 b4@6 a4@73 c#5@19 b4@3 ~ a4@3 g#4@46 ~@6]/4", D: "[~@46 e4@6 f#4@6 a4@5 a4@6 e5@6 c#5@47 ~@18 e4@4]/3",
E: "[~@2 f#4@6 a4@5 ~ a4@6 e5@6 c#5@139 ~@27]/4",
})).s("gm_clarinet").gain(0.25)
// drums · kick
const kick = s("bd").struct(`<
~@8 A B C ~@24 D E F G H I J K L M N O P Q R S T U V W X H Y G Z F AA AB AC D AD AE AF AG AH AI AJ ~@2 AK AL AM@2 AN
AO AP AQ AR AS AT AU AV ~@2
>`.pickRestart({
A: "~@3 x ~@19 x ~@3 x ~@18 x ~", B: "~ x ~@9 x ~ x ~@10", C: "~@21 x ~@4 x ~@21", D: "~@19 x ~@4",
E: "~@14 x ~@6 x ~@17 x ~@8", F: "~@8 x ~@2 x ~@8 x ~@3", G: "~@17 x ~@5 x ~@17 x ~@6", H: "~@3 x!2 ~@2 x",
I: "~@19 x ~@5 x ~@18 x ~@3", J: "~@20 x ~@5 x ~@18 x ~@2", K: "~@21 x ~@5 x ~@18 x ~", L: "~@47 x",
M: "~@24 x ~@4 x ~@12 x ~@5", N: "x!2 ~@6", O: "x ~@5 x ~@23 x ~@16 x", P: "~@5 x ~@20 x ~@5 x ~@5 x ~@8 x",
Q: "~@5 x ~@22 x ~@17 x ~", R: "~@8 x ~@14 x", S: "~@4 x ~@19 x ~@2 x ~@17 x ~@2", T: "~ x ~@8 x ~@4 x",
U: "~@13 x ~@5 x ~@2 x ~", V: "~@7 x ~@8 x ~@5 x ~", W: "~@43 x ~@4", X: "~@19 x ~@5 x ~@17 x ~@4",
Y: "~@18 x ~@5 x ~@16 x ~@6", Z: "~@17 x ~@5 x ~@16 x ~@7", AA: "~@16 x ~@4 x ~@17 x ~@8", AB: "~@13 x ~@2",
AC: "~@15 x ~@4 x ~@11 x ~@5 x ~@5 x ~@3", AD: "~@19 x ~@17 x ~@5 x ~@4", AE: "~@19 x ~@8 x ~@17 x ~",
AF: "~@6 x ~@5 x ~@2 x", AG: "~@35 x ~@5 x ~@6", AH: "~@17 x ~@8 x ~@11 x ~@5 x ~@3",
AI: "~@13 x ~@3 x ~@8 x ~@7 x ~@8 x ~@4", AJ: "~@8 x ~@5 x ~@2 x ~@6", AK: "~@2 x", AL: "~@4 x ~@8 x ~@2 x ~@7",
AM: "~@7 x ~@17 x ~@5 x ~@16", AN: "~@5 x ~@2", AO: "~@6 x ~@16 x ~@5 x ~@18", AP: "~@5 x ~@17 x ~@5 x ~@18",
AQ: "~ x ~@10", AR: "~@7 x ~@4", AS: "~ x ~ x ~@6 x ~@10 x ~@5 x ~@20", AT: "x ~@2 x ~@5 x ~@11 x ~@5 x ~@19 x",
AU: "~@2 x ~@5 x ~@11 x ~@5 x ~@20 x", AV: "~ x ~@2 x ~@5 x ~@2 x ~@10",
})).gain(0.27)
// drums · rim
const rim = s("rim").struct("<~@36 A B C D E F G ~@12 E D@2 C@2 H@2 ~@12 I J K@2 L M@2 N ~@7>".pickRestart({
A: "~@2 x ~@24 x ~@20", B: "~@3 x ~@24 x ~@19", C: "~@5 x ~@23 x ~@18", D: "~ x ~@3 x ~@2", E: "~@7 x ~@23 x ~@16",
F: "~ x ~@2 x ~", G: "~@9 x ~@24 x ~@13", H: "~ x ~@5 x ~@4", I: "~@11 x", J: "~@5 x ~@5 x", K: "~@19 x ~@23 x ~@4",
L: "~@7 x", M: "~@17 x ~@23 x ~@6", N: "~ x ~",
})).gain(0.27)
// drums · snare
const snare = s("sd").struct("<~@43 A B C D E F G H I J ~@9 K L M N O P Q R S T ~@17>".pickRestart({
A: "~@16 x ~@5 x ~@12 x ~@2 x ~@9", B: "~@11 x ~@24 x ~@11", C: "~@4 x ~@2 x!2 ~@2 x ~ x ~@2",
D: "~@4 x ~@2 x ~ x ~@2 x ~@3", E: "~@11 x ~@8 x ~@14 x ~@12", F: "~@11 x ~@8 x ~@4 x ~@8 x ~@8 x ~@4",
G: "~@4 x ~@5 x ~@8 x ~@5 x ~@8 x ~@8 x ~@4", H: "~@10 x ~@7 x ~@14 x ~@14", I: "~@3 x ~@2 x ~ x ~@2 x ~@2 x ~",
J: "~@8 x ~@8 x ~@5 x ~@8 x ~@15", K: "~ x ~ x ~@12", L: "~@3 x ~@8 x ~@4 x ~@8 x ~@9 x ~@11",
M: "~@2 x ~@8 x ~@2 x ~@5 x ~@5 x ~ x!2 ~@18", N: "~@2 x ~@7 x ~@5 x ~@8 x ~@8 x ~@13",
// … 95 more lines
More by Carpenters
Not in the database
That song isn't here.
Nothing in the database matches this link. It may have been renamed, or the address was mistyped. The closest songs to :
Real transcriptions · Editable patterns · Instrumental
Type a song.
Get Strudel code.
Chords, structure, melody, bass and drums compiled from open transcriptions into Strudel live-coding patterns. Play it here, scrub through the bars, then open it in strudel.cc and start hacking.
Smells Like Teen SpiritNirvana
The JokerSteve Miller Band · 1973
Love Me DoThe Beatles · 1964
I Don't MindJames Brown · 1961
- Real transcriptionsMcGill chord charts, Lakh MIDI and quality-filtered PDMX scores. The library includes alternate transcriptions of some songs.
- One bar, one cycleEvery layer follows the same bar timeline, keeping the code, playback and song structure aligned.
- Instrumental by designDetected vocal parts are removed. Guitar riffs, harmonica and other instrumental leads stay.