0:00/0:00
// God Only Knows — The Beach Boys
// 116 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 84 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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 B C D C D E ~ F G H I J K L M N O P Q R S H T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AJ AL AM AN AO AP AQ AR
AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BJ BN BO BM BJ BP BQ BA BR BS BT BU BV@2
>`.pickRestart({
A: "[c#4,e4,a4]@3 ~@3 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@3 ~@3", // A
B: "[b3,e4,g#4]@3 ~@3 [b3,e4,g#4]@3 ~@3 [b3,e4,g#4]@3 ~@3 [e4,g#4]@4 ~@2, ~@9 b3 ~@2", // E
C: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~", // A
D: "[b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~", // E
E: "[c#4,f#4,a4]@3 ~@3 [c#4,f#4,a4]@3 ~@3 [c#4,f#4,a4]@3 ~@3 [c#4,f#4,a4]@4 ~@2", // F#m
F: "[a2,a3,f#4]@5 ~ [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@4 a2@2, d4@3 ~@7 a2@7 ~@7", // D
G: "[g#3,d4,f#4]@4 ~@2 [g#3,d4,f#4]@4 ~@2 [g#3,d4,f#4]@3 ~@3 [g#3,d4,f#4]@4 b2@2, b2@6 b3 ~@3 b2@8 ~@6", // G#m7b5
H: "[a3,c#4,f#4]@3 ~@3 [a3,c#4,f#4]@4 ~@2 [a3,c#4,f#4]@4 ~@2 [a3,c#4,f#4]@4 f#2@2, f#2@6 ~@4 f#2@7 ~@7", // F#m
I: "[a3,b3,d#4,f#4]@4 ~@2 [a3,b3,d#4,f#4]@4 ~@2 [a3,b3,d#4,f#4]@3 ~@3 [a3,b3,d#4,f#4]@3 ~ a2@2, a2@3 ~@2 a2@4 ~@3", // B7
J: "[b2,b3]@5 ~ [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@4 b2@2, [g#3,e4]@3 ~@7 b2@7 ~@7", // B E C#m
K: "[f#3,a3,c4,e4]@3 ~@3 [f#3,a3,c4,e4]@4 ~@2 [f#3,a3,c4,e4]@3 ~@3 [f#3,c4,e4]@3 ~ c3@2, c3@3 ~@2 c3@4 a3@2 ~", // F#m7b5
L: "[b2,b3]@5 ~ [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@4 b2 ~, [g#3,e4]@3 ~@7 b2@9 ~@5", // B E C#m
M: "[g#3,a#3,c#4,e4]@3 ~@3 [g#3,a#3,c#4,e4]@4 ~@2 [g#3,a#3,c#4,e4]@3 ~@3 [g#3,c#4,e4]@4 a#2@2, a#2@5 ~@5 a#2@8 a#3@2 ~@4", // A#m7b5 C#m
N: "[a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 a2, a2@6 ~@4 a2@9 ~@5", // A
O: "[b3,e4]@2 ~ [b3,e4]@2 ~ [g#3,b3,e4]@2 ~ [g#3,b3,e4]@2 g#2, g#2@3 ~@2 g#2@4 ~@3", // E5 E
P: "[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4]@4 f#2@2, f#2@6 ~@4 f#2@8 e4@3 ~@3", // A
Q: "[g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@4 e2@2 [f#2,g#3,b3,e4]@3 ~ [c#4,e4]@4 ~@4, e2@3 ~@5 g2@4, ~@8 a3@3 ~", // E C#m
R: "[a3,d4,f#4]@3 ~@3 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@4 a2 ~, a2@5 ~@5 a2@9 ~@5", // D
S: "[g#3,d4,f#4]@2 ~ [g#3,d4,f#4]@2 ~ [g#3,d4,f#4]@2 ~ [g#3,d4,f#4]@2 b2, b2@6 ~@4 b2@9 ~@5", // G#m7b5
T: "[a3,b3,d#4,f#4]@3 ~@3 [a3,b3,d#4,f#4]@4 ~@2 [a3,b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4]@4 a2@2, a2@3 ~@2 a2@4 a3 ~@2", // B7 B
U: "[g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [g#3,e4]@4 b2@2, b2@3 ~@2 b2@4 b3 ~@2", // E C#m
V: "[f#3,a3,c4,e4]@3 ~@3 [f#3,a3,c4,e4]@4 ~@2 [f#3,a3,c4,e4]@4 ~@2 [a3,e4]@4 c3@2, c3@5 ~@5 c3@8 [f#3,c4]@3 ~@3", // F#m7b5 A5 F#dim
W: "[g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@4 b2@2, b2@3 ~@2 b2@4 ~@3", // E
X: "[g#3,a#3,c#4,e4]@3 ~@3 [g#3,a#3,c#4,e4]@4 ~@2 [g#3,a#3,c#4,e4]@4 ~@2 [g#3,a#3,c#4,e4]@4 a#2@2, a#2@6 ~@4 a#2@7 ~@7", // A#m7b5
Y: "[a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 a2, a2@3 ~@2 a2@4 ~@3", // A
Z: "[g#3,b3,e4]@2 ~ [g#3,b3,e4]@2 ~ [g#3,b3,e4]@2 ~ [g#3,b3,e4]@2 g#2, g#2@3 ~@2 g#2@4 ~@3", // E
AA: "[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 ~@2 [c#4,e4]@3 ~ f#2@2, f#2@6 ~@4 f#2@7 ~ a3@6", // A C#m
AB: "[e2,g#3,b3,e4]@6 [a4,c#5]@4 ~@5 [f#4,a4]@3 ~@3 [a4,c#5]@3", // E A F#m A
AC: "[g4,b4]@4 ~@5 [f4,a4]@3 [e4,g4]@2 ~ [d4,f4]@3 [c#4,e4]@3 [b3,d4]@3", // G F Em Dm C#m Bm
AD: "[a3,c#4]@2 ~@4 [a4,c#5]@3 ~@6 [f#4,a4]@3 ~@3 [a4,c#5]@3", // A F#m A
AE: "[g4,b4]@3 ~@6 [f4,a4]@3 [e4,g4]@2 ~ [d4,f4]@2 ~ [c#4,e4]@3 [b3,d4]@3", // G F Em Dm C#m Bm
AF: "[d4,g4,b4]@4 ~@2 [d4,g4,b4]@4 ~@2 [d4,g4,b4]@4 ~@2 [d4,g4,b4]@3 ~ d2 ~, d2@6 ~@4 d2@9 ~@5", // G
AG: "[c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@3 ~@3 [c#4,e4,a4]@4 e2 ~, e2@6 ~@4 e2@7 ~@7", // A
AH: "[b3,d4,f#4]@4 ~@2 [b3,d4,f#4]@4 f#2 ~ [b1,b3,d4,f#4]@5 ~ [d4,f#4]@4 b1 ~, f#2@2 ~@4 b3 ~", // Bm D
AI: "[b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@3 ~@3 [b3,e4,g#4]@4 d2 ~, d2@3 ~@2 d2@4 ~@3", // E
AJ: "[c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 e2 ~, e2@3 ~@2 e2@4 ~@3", // A
AK: "[b3,d4,a4]@4 ~@2 [b3,d4,a4]@4 ~@2 [b3,d4,f4,a4]@3 ~@3 [b3,d4,f4,a4]@4 f2 ~, f2@6 ~@4 f2@7 ~@7", // Bm7 Bm7b5
AL: "[c#4,d#4,f#4,a4]@4 ~@2 [c#4,d#4,f#4,a4]@4 ~@2 [c#4,d#4,f#4,a4]@3 ~@3 [c#4,d#4,f#4,a4]@4 d#2@2, d#2@3 ~@2 d#2@4 ~@3", // D#m7b5
AM: "[d4,f#4]@4 ~@2 [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@3 ~ d2 ~, d2@3 ~@2 d2@4 ~@3, a4 ~@11", // D
AN: "[c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 c#2 ~, c#2@6 ~@4 c#2@7 ~@7", // A
AO: "[b3,d4,f#4,a4]@3 ~@3 [b3,d4,f#4,a4]@4 ~@2 [b3,d4,f#4,a4]@3 ~@3 [b3,d4,f#4,a4]@4 b1 ~, b1@6 ~@4 b1@7 ~@7", // Bm7
AP: "[b3,d4,f#4,a4]@4 ~@2 [b3,d4,f#4,a4]@4 ~@2 [b3,d4,f#4,a4]@3 ~@3 [b3,d4,f#4,a4]@3 ~ a1 ~, a1@3 ~@2 a1@4 ~@3", // Bm7
AQ: "[b3,d4,f#4,g#4]@3 ~@3 [b3,d4,f#4,g#4]@4 ~@2 [b3,d4,f#4,g#4]@4 ~@2 [b3,d4,f#4,g#4]@4 b1 ~, b1@3 ~@2 b1@4 ~@3", // G#m7b5
AR: "[c#4,f#4,a4]@3 ~@3 [c#4,f#4,a4]@4 ~@2 [c#4,f#4,a4]@4 ~@2 [c#4,f#4,a4]@4 f#2@2, f#2@6 ~@4 f#2@7 ~@7", // F#m
AS: "[b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4]@3 ~ a2 ~, a2@3 ~@2 a2@4 ~@3", // B
AT: "[b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@3 ~@3 [b3,e4,g#4]@3 ~ b2 ~, b2@3 ~@2 b2@4 ~@3", // E
AU: "[c4,e4,a4]@3 ~@3 [c4,e4,f#4,a4]@4 ~@2 [c4,e4,f#4,a4]@3 ~@3 [c4,e4,f#4,a4]@3 ~ c3 ~, [c3,f#4]@5 ~@5 c3@7 ~@7", // Am F#m7b5 Cdim
AV: "[b3,e4,g#4]@2 ~ [b3,e4,g#4]@2 ~ [b3,e4,g#4]@2 ~ [e4,g#4]@2 b2, b2@3 ~@2 b2@4 b3 ~@2", // E
AW: "[a#2,c#4,g#4]@5 ~ [a#3,c#4,e4,g#4]@4 ~@2 [a#3,c#4,e4,g#4]@3 ~@3 [a#3,c#4,e4,g#4]@4 a#2 ~, [a#3,e4]@3 ~@7 a#2@7 ~@7", // A#m7 A#m7b5 A#dim
AX: "[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 a2@2, a2@3 ~@2 a2@4 ~@3", // A
AY: "[b3,e4]@4 ~@2 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [b3,e4]@3 ~ g#2 ~, g#2@3 ~@2 g#2@4 g#3@2 ~", // E5 E E5
AZ: "[a3,c#4]@4 ~@2 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 f#2@2, f#2@3 ~@2 f#2@4 ~@3, e4 ~@11", // A
BA: "[b3,e4]@3 ~@3 [b3,e4]@4 ~@2 [b3,e4]@3 ~@3 [b3,e4]@4 g#2@2, g#2@3 ~@2 g#2@4 ~@3", // E5
BB: "[a4,c#5,e5]@3 ~, a2 ~@3, [a3,c#4,e4] ~@7", BC: "[g#4,b4,e5]@19 ~@5", BD: "[f#4,a4,c#5,e5]@19 ~@5",
BE: "[g#4,b4,e5]@3 ~", BF: "~@6 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 a2 ~, ~@5 a2@4 ~@3",
BG: "[b3,e4]@3 ~@3 [b3,e4]@4 ~@2 [b3,e4]@3 ~@3 [b3,e4]@4 g#2 ~, g#2@6 ~@4 g#2@9 ~@5", // E5
BH: "[a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 f#2@2, f#2@6 ~@4 f#2@9 ~@5", // A
BI: "[b3,e4]@3 ~@3 [b3,e4]@4 ~@2 [b3,e4]@4 ~@2 [b3,e4]@4 g#2 ~, g#2@6 ~@4 g#2@9 ~@5", // E5
BJ: "[a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 a2@2, a2@6 ~@4 a2@9 ~@5", // A
BK: "[b3,e4]@4 ~@2 [b3,e4]@4 ~@2 [b3,e4]@4 ~@2 [b3,e4]@4 g#2 ~, g#2@6 ~@4 g#2@9 ~@5", // E5
BL: "[a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4]@4 ~@2 [a3,c#4,e4]@4 f#2@2, f#2@3 ~@2 f#2@4 ~@3, ~@6 e4 ~@5", // A
BM: "[b3,e4]@3 ~@3 [b3,e4]@4 ~@2 [b3,e4]@3 ~@3 [b3,e4]@4 g#2@2, g#2@6 ~@4 g#2@9 ~@5", // E5
BN: "g#2@6 [b3,e4]@4 ~@2 [b3,e4]@4 ~@2 [b3,e4]@4 g#2 ~, b3@2 ~@3 g#2@4 ~@3, e4 ~@11", // E5
BO: "[a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 f#2@2, f#2@6 ~@4 f#2@9 ~@5", // A
BP: "[b3,e4]@3 ~@3 [b3,e4]@4 ~@2 [b3,e4]@4 ~@2 b3@4 g#2 ~, g#2@6 ~@4 g#2@8 e4@3 ~@3", // E5
BQ: "[a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 f#2@2, f#2@3 ~@2 f#2@4 ~@3", // A
BR: "[a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 a2 ~, a2@6 ~@4 a2@9 ~@5", // A
BS: "[b3,e4]@3 ~@3 [b3,e4]@4 ~@2 [b3,e4]@3 ~@3 [b3,e4]@4 g#2 ~, g#2@3 ~@2 g#2@4 ~@3", // E5
BT: "[a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 f#2 ~, f#2@3 ~@2 f#2@4 ~@3", // A
BU: "[b3,e4]@3 ~@3 [b3,e4]@4 ~@2 [b3,e4]@3 ~@3 b3@4 g#2@2, g#2@6 ~@4 g#2@8 e4@3 ~@3", BV: "[[a2,a3,c#4,e4]@11 ~]/2",
})).s("gm_piano").gain(0.44)
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
~@3 A B C D E F G H I G J K L M N O P F G H M Q J R S T U V W X Y X Z AA AB AC AA AD AE AF AG AH AI AJ AK AL AJ AI AM
AI AN AO AP AQ U AR U AS U AO C AS U B AT AQ C B U AU U B U AQ AV T AW AX AV AY@2
>`.pickRestart({
A: "~@8 d2 e2@2 f#1", B: "a1@7 ~@3 a1@9 ~@3 a1@2", C: "g#1@7 ~@3 g#1@9 ~@3 g#1 ~", D: "f#1@7 ~@3 f#1@8 ~@4 f#1@2",
E: "e1@7 ~@3 e1@2 f#1@4 g1@8", F: "a1@6 ~@4 a1@6 ~@6 a1 ~", G: "b1@5 ~@5 b1@6 ~@6 b1@2", H: "f#1@3 ~@2 f#1@3 ~@3 f#1",
I: "a1@6 ~@4 a1@5 ~@7 a1@2", J: "c2@6 ~@4 c2@7 ~@5 c2@2", K: "b1@6 ~@4 b1@7 ~@5 b1@2", L: "a#1@3 ~@2 a#1@4 ~@2 a#1",
M: "a1@7 ~@3 a1@8 ~@4 a1@2", N: "g#1@7 ~@3 g#1@7 ~@5 g#1@2", O: "f#1@3 ~@2 f#1@4 ~@2 f#1",
P: "e1@3 ~@2 e1 f#1@2 g1@4", Q: "b1@3 ~@2 b1@4 ~@2 b1", R: "b1@6 ~@4 b1@9 ~@3 b1 ~", S: "a#1@7 ~@3 a#1@8 ~@4 a#1@2",
T: "a1@3 ~@2 a1@4 ~@2 a1", U: "g#1@7 ~@3 g#1@9 ~@3 g#1@2", V: "f#1@6 ~@4 f#1@7 ~@5 f#1 ~",
W: "e1@6 e2@4 ~@5 f#2@4 ~@2 e2@3", X: "g2@4 ~@5 c2@3 d2@3 f2@3 g2@3 a2@3", Y: "e2@4 ~@2 e2@4 ~@5 f#2@4 ~@2 e2@3",
Z: "d2@6 ~@4 d2@9 ~@3 d2@2", AA: "e2@8 ~@2 e2@9 ~@3 e2@2", AB: "f#2@9 ~ b1@9 ~@3 b1 ~", AC: "d2@4 ~ d2@5 ~ d2",
AD: "f2@4 ~ f2@5 ~ f2", AE: "e2@7 ~@3 e2@10 ~@2 e2@2", AF: "d#2@4 ~ d#2@5 ~ d#2", AG: "d2@7 ~@3 d2@10 ~@2 d2@2",
AH: "c#2@7 ~@3 c#2@9 ~@3 c#2@2", AI: "b1@7 ~@3 b1@9 ~@3 b1@2", AJ: "a1@8 ~@2 a1@9 ~@3 a1@2",
AK: "b1@7 ~@3 b1@8 ~@4 b1@2", AL: "f#1@4 ~ f#1@5 ~ f#1", AM: "c2@7 ~@3 c2@8 ~@4 c2@2",
AN: "a#1@6 ~@4 a#1@9 ~@3 a#1@2", AO: "a1@7 ~@3 a1@9 ~@3 a1 ~", AP: "g#1@7 ~@3 g#1@10 ~@2 g#1@2",
AQ: "f#1@7 ~@3 f#1@9 ~@3 f#1@2", AR: "a1@3 ~@2 a1@5 ~ a1", AS: "f#1@6 ~@4 f#1@9 ~@3 f#1@2",
AT: "g#1@6 ~@4 g#1@9 ~@3 g#1@2", AU: "f#1@6 ~@4 f#1@8 ~@4 f#1 ~", AV: "g#1@3 ~@2 g#1@4 ~@2 g#1",
AW: "g#1@7 ~@3 g#1@8 ~@4 g#1 ~", AX: "f#1@6 ~@4 f#1@9 ~@3 f#1 ~", AY: "[a1@21 ~ [a1,a2]@26]/2",
})).s("gm_acoustic_bass").gain(0.38)
// chords · tuba
const tuba = note("<~@35 A B C D E F G H ~@41>".pickRestart({
A: "~@3 d4", B: "e4@3 a4", C: "~@3 b3@2 c#4 d4@2 e4 [b3,d4]@3, f#4@3 ~",
D: "~@6 e3@4 f#3@2 g#3@3 ~ [a3,f4]@2 [b3,e4]@4 [g#3,d4]@2, d4@5 ~@3", // Dm E5 G#dim
E: "a3@5 g#3 ~@3 d4@2 c#4, c#4@7 ~@5, ~@4 a3@3 ~",
F: "g#3@4 a3@2 ~@4 c#4@2 d4@4 [a3,f4]@2 e4@3 ~ d4@2, b3@3 b3@5 ~ [g#3,g#4]@3", // Dm G#
G: "a3@5 g#3 ~@2 d4 c#4@2 [g#3,b3], [c#4,e4]@2 ~, ~@4 a3@3 ~", H: "c#4@10 f#4 [g4,g#4] a4@12, f#3",
})).s("gm_tuba").gain(0.28)
// other · tuba
const tuba_2 = note("<~@60 A B@2 C A D@2 ~ E@3 ~ A F@2 G H@4 A I@3>".pickRestart({
A: "~@6 c#5@2 b4 c#5@2 b4", B: "[~@4 e5@3 ~ b4@4 a4@5 ~ g#4@4 e4@8 f#4@18]/2", C: "e4@23 ~",
D: "[~@4 e5@3 ~ b4@4 a4@5 ~ g#4@4 e4@8 f#4@16 ~@2]/2",
E: "[~@12 c#5@4 b4@2 c#5@4 b4@4 ~@2 e5@2 ~@2 b4@3 ~ a4@5 ~ g#4@4 ~@8 f#4@10 ~@8, ~@46 e4@15 ~@11]/3",
F: "[~@4 e5@2 ~@2 b4@4 a4@5 ~ g#4@3 ~ e4@14 f#4@12]/2", G: "~@6 b4@3 f#4 g#4@8 f#4@4 e4@2",
H: "[~@12 c#5@4 b4@2 c#5@4 b4@4 ~@2 e5@3 ~ b4@4 a4@6 g#4@3 ~ e4@14 f#4@24 e4@6 f#4@4 g#4@2]/4",
I: "[~@2 e5 ~ b4@2 a4@3 g#4@2 e4@25]/3",
})).s("gm_tuba").gain(0.28).pan(0.8)
// chords · acoustic guitar steel · "STEEL GTR" · A E E5 A E E5 A E …
const acoustic_guitar_steel = note(`<
[[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 ~@2]
[[g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [b3,e4]@4 ~@2, ~@9 g#3 ~@2]
[[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@2 ~@4 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2]
[[g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [b3,e4]@4 ~@2, ~@9 g#3 ~@2]
[[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@3 ~@3]
[[g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@2 ~@4]
[[f#3,a3,c#4]@4 ~@2 [f#3,a3,c#4]@4 ~@2 [f#3,a3,c#4]@3 ~@3 [f#3,a3,c#4]@2 ~@4]
~@77
>`).s("gm_acoustic_guitar_steel").gain(0.33).pan(0.7)
// other · flute
const flute = note("<~@7 A ~@23 B C D E F G H I J I K J ~@8 L@2 M@2 N O P@2 ~@25>".pickRestart({
A: "[a3,c#4]@3 [b3,d#4] [c4,e4]@2", B: "~@6 c#6@3 ~@6 a5@2 ~@4 c#6@3", C: "b5@3 ~@6 a5@2 ~ g5@2 ~ f5@2 ~ e5@3 d5@3",
D: "c#5@2 ~@4 c#6@3 ~@6 a5@2 ~@4 c#6@3", E: "b5@3 ~@6 a5@2 ~ g5@3 f5@3 e5@3 d5@2 ~",
F: "[b4,b5]@2 ~@4 [b4,b5]@3 ~@3 [b4,b5]@3 ~@3 [b4,b5]@2 ~@4", // B
G: "[c#5,c#6]@3 ~@3 [c#5,c#6]@3 ~@3 [c#5,c#6]@3 ~@3 [c#5,c#6]@2 ~@4", // C#
H: "[b4,b5]@2 ~@4 [b4,b5]@2 ~@4 [a4,a5]@3 ~@3 [a4,a5]@3 ~@3", I: "[g#4,g#5] ~ [g#4,g#5] ~ [g#4,g#5] ~ [g#4,g#5] ~",
J: "[a4,a5] ~ [a4,a5] ~ [a4,a5] ~ [a4,a5] ~", K: "[a4,a5]@3 ~@3 [a4,a5]@2 ~@4 [a4,a5]@2 ~@4 [a4,a5]@2 ~@4",
L: "[~@13 f#6@2 e6@2 ~ a5@2 ~ e5@2 ~ b4@19 ~@5, ~@12 a6@2 ~@3 c6@2 ~ f#5@2 ~ c5@2 ~@23]/2",
M: "[~@13 e6@2 c#6@2 ~ g#5 ~@2 c#5@2 ~ a5@24, ~@12 g#6@2 ~@3 a#5@2 ~ e5@2 ~ a#4@2 ~@23, ~@24 a4@19 ~@5]/2",
N: "[e4,e5]@17 ~ a#4 [b4,b5]@5, ~@17 [a4,a5,a#5]@2 ~@5", O: "[a4,a5]", P: "[[g#4,g#5]@12 [e4,e5]@35 ~]/2",
})).s("gm_flute").gain(0.27).pan(0.3)
// other · french horn · "FR.HORN"
const french_horn = note("<A B@2 C D E F ~@77>".pickRestart({
A: "~@3 c#4@8 d#4", B: "[e4@16 a4 a#4 b4@5 a4@24 ~]/2", C: "e4@23 ~", D: "~@6 c#4@5 d#4", E: "e4@16 [a4,a#4] ~ b4@6",
F: "a4@11 ~",
})).s("gm_french_horn").gain(0.38)
// chords · sitar
const sitar = note("<A@2 B C D E F ~@77>".pickRestart({
A: "[[a3,c#4]@24 b3@23 ~, e3@43 ~@5, ~@24 g#3@19 ~@5]/2", B: "[a3,c#4], e3@19 ~@5", C: "[e3,g#3]@5 ~, b3",
D: "[e3,a3]@19 ~@5, c#4", E: "[e3,g#3,b3]@5 ~", F: "[e3,a3,c#4]@23 ~",
})).s("gm_sitar").gain(0.22).pan(0.2)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
A@2 B C D E F ~@13 G H I@6 J@3 K ~@3 L M N@4 O@2 P@7 Q@8 R@7 S@8 T@8 U@3
>`.pickRestart({
A: "[[a3,c#4]@24 b3@23 ~, e3@43 ~@5, ~@24 g#3@19 ~@5]/2", B: "[a3,c#4], e3@19 ~@5", C: "[e3,g#3]@5 ~, b3",
D: "[e3,a3]@19 ~@5, c#4", E: "[e3,g#3,b3]@5 ~", F: "[e3,a3,c#4]@23 ~", G: "[a3,d4,f#4]", H: "[b3,e4,g#4]",
I: "[c#4@24 d#4@24 b4@24 [a3,c5]@24 b4@24 [a#3,c#4]@19 ~@5, a4@48 g#4@21 ~@3 f#4@19 ~@5 g#4@48, f#4@43 ~@5 e4@91 ~@5, ~@24 b3@41 ~@7 c4@17 ~@7 b3@18 ~@6 c#5@24]/6", // Am A#m
J: "[[a3,c#4]@5 ~ b3@6 [a3,c#4,a4]@6, e4@67 ~@5, e5@49 ~@23, ~@12 g#3@8 ~@4 f#3@9 ~@3]/3", K: "[g#3,b3,e4] ~@5",
L: "[d4,g4,b4]", M: "[e4,a4,c#5]", N: "[f#4 g#4 c#5 [d4,f4,b4], [b4,d5]@12 a4@11 ~, ~ e4@2 ~]/4",
O: "[e4 d#4, c#5, a4@11 ~, ~@6 f#4@5 ~]/2",
P: "[[d4,f#4] e4 ~ a4 g#4 c#4 [b3,d#4], a4@67 ~@53 a4@48, ~@8 c#4@7 ~ f#4@40, ~@48 [b3,d4]@73 ~@47]/7", // D B Bm
Q: "[g#4@6 [c4,f#4,a4]@6 b3@6 [c#4,e4]@5 ~ a3@6 [g#3,b3]@6 [f#3,a3]@6 ~@3 b4@3, e4@68 ~@4 a#3@18 ~@6 e4@87 ~@9, ~@48 g#4@48 c#4@49 ~@23 [g#3,b3]@24]/8", // F#dim C#m G#m F#m G#m
R: "[[a3,c#4] [g#3,b3] [f#3,a3] ~ [a3,c#4] [g#3,b3] [f#3,a3], e4@83 ~ e4@84, ~@3 b3 ~@3, ~@72 g#3@17 ~@79]/7", // A G#m F#m A G#m F#m
S: "[~ [a3,c#4] [g#3,b3] [f#3,a3] ~ [a3,c#4] [g#3,b3] [f#3,a3], [g#3,b3] ~@3 [g#3,b3] ~@3, ~@4 e4@31 ~ e4@28]/8", // A G#m F#m A G#m F#m G#m
T: "[~ [a3,c#4] [g#3,b3] [f#3,a3] ~ [a3,c#4] [g#3,b3] [f#3,a3], [g#3,b3] ~@3 [g#3,b3] ~@3, ~@3 e4@23 ~ e4@21]/8", // A G#m F#m A G#m F#m G#m
U: "[~ [a3,c#4]@2, b3, g#3 ~@2, ~@12 e4@59 ~]/3", // A
})).s("gm_string_ensemble_1").gain(0.22)
// other · tuba
const tuba_3 = note("<~@63 A B@2 ~ C D@2 ~ E F G@2 ~ H I J ~@5>".pickRestart({
A: "~@12 c#5@3 ~ b4@2 c#5@4 b4@2", B: "[~@4 e5@2 ~@2 b4@4 a4@5 ~ g#4@4 e4@14 f#4@11 ~]/2", C: "~@6 c#5@2 b4 c#5@2 b4",
D: "[~@4 e5@3 ~ b4@3 ~ a4@5 ~ g#4@4 e4@14 f#4@11 ~]/2", E: "~@16 g#4 ~ b4@2 ~ e5!2 ~",
F: "g#5@2 b5@2 g#5@4 f#5 ~ e5 ~ f#5@4 g#5 ~@7, ~@4 f#5 ~@19", G: "[~@12 g#5@2 c#6@2 b5@25 ~@7]/2",
H: "~@10 b5@2 e6@4 e6@4 c#6@2 b5 ~", I: "e6@4 e6@4 c#6 ~ b5 ~ f#6@2 g#6@2 e6@8", J: "f#6@4 b5@15 ~@5",
})).s("gm_tuba").gain(0.24).pan(0.2)
// drums · kick
const kick = s("bd").struct("<~@31 [x!2]!4 x ~@22 x!2 [x!2]!22 x ~>").gain(0.44)
// drums · snare
const snare = s("sd").struct("<~@32 A ~ A ~@25 B C B C D E F@2 D C B G B G B D@2 H D G D C ~@2>".pickRestart({
A: "~@3 x!2 ~ x ~@17", B: "~ x ~@2", C: "~@3 x ~@4 x!4", D: "~ x ~ x", E: "~@3 x ~@6 x!2", F: "~@3 x",
G: "~@3 x ~@5 x!3", H: "~@3 x ~@4 x ~ x!2",
})).gain(0.44)
// … 49 more lines
More by The Beach Boys
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.