0:00/0:00
// Long and Lasting Love (Once in a Lifetime) — Glenn Medeiros
// 112 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 128 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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"
const piano = note(`<
A B C D@2 E@2 F G H I@2 J@3 K L M N O C P Q R S T U V W T X Y Z@2 AA N AB AC AD@2 AE Q AF X AF AG AH AI AJ AK AL AM X
AE AN AO AG AH V AP AQ AR AG R AS T R AT AU P Q Y AS AV U AW AX T AY AZ BA@3 BB A L M N BC H I@2 B A BD@2 L M N G C T
AG R BE AV BF AT W AV AN R BG BH BI BJ BK@2 BL@3 ~@7
>`.pickRestart({
A: "~@6 d5@3 ~ [d5,g5]@6 ~@2 b4@2 d5@2 b4 ~, g4@16 g3@5 ~@3, ~@4 b4@13 ~ [g4,g5]@4 ~@2", // G5 G
B: "~@6 g5@3 ~ [g5,c6]@6 ~@2 e5@2 g5@2 e5 ~, c5@16 c4@5 ~@3, ~@4 e5@13 ~ [c5,c6]@4 ~@2", // C5 C
C: "[g4,b4,d5]@8 g3 [g4,b4,d5] ~@2", // G
D: "[c5@7 ~@2 g5 ~@2 [g4,b4,d5]@8 g3 [g4,b4,d5] ~@2, g4@3 ~@5, e5@4 e5 e5@3 ~@4, ~@7 c5@4 c5@3 ~@10]/2", // G
E: "[c5@7 ~@2 g5 ~@2 [f#4,b4,d5]@8 b3 [f#4,b4,d5] ~@2, g4@3 ~@5, e5@4 e5 e5@3 ~@4, ~@7 c5@4 c5@3 ~@10]/2", // Bm
F: "~@6 [a4,c5,e5]@5 ~ [a4,c5,e5]@3 ~@3 [a4,c5,e5]@2 ~@4", G: "[c5,d5,f#5,a5]@8 d4 [c5,d5,f#5,a5] ~@2",
H: "[g4,b4,d5,g5]@4 ~@2 [g4,b4,d5,g5]@3 ~@3 [c5,e5,g5,c6]@4 ~@2 [c5,e5,g5,c6]@3 ~@3", // G C
I: "[g4@16 ~@6 g4@10 ~@2 g3 ~ [g4,b4,d5]@4 g3@2 [g4,b4,d5]@3 ~@3, b4@5 b4@4 ~@3, d5@3 d5@3 ~@2, ~@8 g4@3 ~@13]/2", // G
J: "[c5@14 ~@4 g5@2 ~@4 g4@14 ~@16 g5@3 ~ [g5,c6]@6 ~@2 e5@2 g5@2 e5 ~, g4@3 ~ d5@3 d5@3 ~@2, e5@16 e5@4 e5@12 ~@16 c5@17 ~ [c5,c6]@4 ~@2, ~@14 c5@8 c5@6 ~@10 g4@8 g4@6 e5@13 ~@7, ~@24 b4@16 b4@4 b4@12 ~@8 c4@5 ~@3]/3", // C5 C
K: "~@4 g3 ~ [g4,b4,d5]@3 ~ [g4,b4,d5]@2 ~@4 g3 ~ g5@2 d5 ~ b4 ~", L: "[g4,c5,e5]@8 c4 [g4,c5,e5] ~@2",
M: "[f#4,b4,d5]@8 b3 [f#4,b4,d5] ~@2", // Bm
N: "~@6 e5@3 ~ [e5,a5]@6 ~@2 c5@2 e5@2 c5 ~, a4@16 a3@5 ~@3, ~@4 c5@13 ~ [a4,a5]@4 ~@2", // A5 A
O: "~@6 [c5,d5,f#5,a5]@5 ~ [c5,d5,f#5,a5]@3 ~@3 [c5,d5,f#5,a5]@2 ~@4", // D7
P: "~@6 [b4,d5,f5,g5]@3 ~ [b4,d5,f5,g5]@2 g4@2 ~@2 d5@2 g5@2 d5 ~ b4 ~, ~@7 b4@2 ~@3", // G7
Q: "~@6 [g4,b4,d5] ~@3 [c5,e5]@4 ~@4 [g4,c5,e5]@3 ~ [g4,c5,e5] ~, ~@6 [c5,e5]@4 g4 ~@13", // G C
R: "~@6 [f#4,b4,d5] ~@3 [g4,e5]@4 ~@4 [g4,b4,e5]@3 ~ [g4,b4,e5] ~, ~@6 [g4,e5]@4 b4 ~@13", // Bm C Em C
S: "~@6 [g4,c5,e5] ~@3 [a4,f5]@4 ~@4 [a4,c5,f5]@3 ~ [a4,c5,f5] ~, ~@6 [a4,f5]@4 c5 ~@13", // C Dm F Dm
T: "[b4,d5,f5,g5]@5 ~ [b4,d5,f5,g5]@4 ~@2 [b4,d5,f5,g5]@4 ~@2 [b4,d5,f5,g5]@2 ~@4", // G7
U: "~@6 [g4,b4,e5]@3 ~ [g4,b4,e5] ~@7 [g4,b4,e5]@3 ~ [g4,b4,e5] ~", // Em
V: "~@6 [a4,c5,e5]@3 ~ [a4,c5,e5] ~@7 [a4,c5,e5]@3 ~ [a4,c5,e5] ~", // Am
W: "~@6 [a4,c5,e5] ~@3 [d5,f5]@4 ~@4 [a4,d5,f5]@3 ~ [a4,d5,f5] ~, ~@6 [d5,f5]@4 a4 ~@13", // Am Dm
X: "[g4,c5,e5]@5 ~ [g4,c5,e5]@4 ~@2 [g4,c5,e5]@4 ~@2 [g4,c5,e5]@2 ~@4", // C
Y: "[g4,b4,e5]@5 ~ [g4,b4,e5]@4 ~@2 [g4,b4,e5]@4 ~@2 [g4,b4,e5]@2 ~@4", // Em
Z: "[f5@14 ~@2 a5@2 c6@2 a5@2 ~@8 d5@3 ~ [d5,f5]@6 ~@2 b4@2 d5@2 b4 ~, [a4,c5]@18 ~@6 g4@16 g3@5 ~@3, ~@14 f5@8 f5@6 b4@13 ~ [g4,f5]@4 ~@2]/2", // Dm Am G7
AA: "[g4,b4,e5]@8 e4 [g4,b4,e5] ~@2", AB: "[a4,d5,f5]@8 d4 [a4,d5,f5] ~@2",
AC: "[b4,d5,f5,g5]@8 g3 [b4,d5,f5,g5] ~@2", // G7
AD: "[c5@16 ~@6 c5@10 ~@2 c4 ~ [c5,e5,g5]@4 c4@2 [c5,e5,g5]@3 ~@3, g4@11 ~@13, e5@5 e5@4 ~@3, ~@8 c5@3 ~@13, ~@9 g5@2 ~@13]/2", // C
AE: "~@6 [f#4,a4,d5] ~@3 [g4,b4]@4 ~@4 [g4,b4,d5]@3 ~ [g4,b4,d5] ~, ~@6 [g4,b4]@4 d5 ~@13", // D G
AF: "~@6 [g4,b4,d5]@3 ~ [g4,b4,d5] ~@7 [g4,b4,d5]@3 ~ [g4,b4,d5] ~", // G
AG: "~@6 [g4,c5,e5]@3 ~ [g4,c5,e5]@2 c5@2 ~@2 g5@2 c6@2 g5 ~ e5 ~, ~@7 e5@2 ~@3", // C
AH: "~@6 [f#4,a4,c#5] ~@3 [b4,d5]@4 ~@4 [f#4,b4,d5]@3 ~ [f#4,b4,d5] ~, ~@6 [b4,d5]@4 f#4 ~@13", // F#m Bm
AI: "~@6 [a4,c5,e5]@3 ~ [a4,c5,e5]@2 a4@2 ~@2 e5@2 a5@2 e5 ~ c5 ~, ~@7 c5@2 ~@3", // Am
AJ: "~@6 [c5,d5,f#5,a5]@3 ~ [c5,d5,f#5,a5] ~@7 [c5,d5,f#5,a5]@3 ~ [c5,d5,f#5,a5] ~", // D7
AK: "~@6 [g4,b4,d5]@3 ~ [g4,b4,d5] ~@7 [g4,c5,e5]@3 ~ [g4,c5,e5] ~", // G C
AL: "~@4 g3@2 [g4,b4,d5]@3 ~ [g4,b4,d5] ~@5 g3 ~ [g4,b4,d5]@3 ~ [g4,b4,d5] ~", // G
AM: "~@4 g3@2 [g4,b4,d5]@3 ~ [g4,b4,d5] ~@5 g3 ~ [g4,b4,d5]@2 ~@4", // G
AN: "~@6 [g4,c5,e5]@3 ~ [g4,c5,e5] ~@7 [g4,c5,e5]@3 ~ [g4,c5,e5] ~", // C
AO: "~@6 [g4,b4,d5]@3 ~ [g4,b4,d5]@2 g4@2 ~@2 d5@2 g5@2 d5 ~ b4 ~, ~@7 b4@2 ~@3", // G
AP: "~@6 [c5,e5,a5] ~@3 [d5,f#5]@4 ~@4 [c5,d5,f#5,a5]@3 ~ [c5,d5,f#5,a5] ~, ~@6 [d5,f#5]@4 [c5,a5] ~@13", // Am D D7 D F
AQ: "[g4,b4,d5]@5 ~ [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@2 ~@4", // G
AR: "~@6 [a4,d5,f5] ~@3 [b4,g5]@4 ~@4 [b4,d5,f5,g5]@3 ~ [b4,d5,f5,g5] ~, ~@6 [b4,g5]@4 [d5,f5] ~@13", // Dm Em G7 Em Dm
AS: "[a4,c5,f5]@5 ~ [a4,c5,f5]@4 ~@2 [a4,c5,f5]@4 ~@2 [a4,c5,f5]@2 ~@4", // F
AT: "[a4,c5,e5]@5 ~ [a4,c5,e5]@4 ~@2 [a4,c5,e5]@4 ~@2 [a4,c5,e5]@2 ~@4", // Am
AU: "~@6 [a4,d5,f5]@3 ~ [a4,d5,f5] ~@7 [a4,d5,f5]@3 ~ [a4,d5,f5] ~", // Dm
AV: "~@6 [b4,d5,f5,g5]@3 ~ [b4,d5,f5,g5] ~@7 [b4,d5,f5,g5]@3 ~ [b4,d5,f5,g5] ~", // G7
AW: "~@6 [g4,b4,e5] ~@3 [a4,c5]@4 ~@4 [a4,c5,e5]@3 ~ [a4,c5,e5] ~, ~@6 [a4,c5]@4 e5 ~@13", // Em Am
AX: "[a4,d5,f5]@5 ~ [a4,d5,f5]@4 ~@2 [a4,d5,f5]@4 ~@2 [a4,d5,f5]@2 ~@4", // Dm
AY: "~@4 c4@2 [g4,c5,e5]@3 ~ [g4,c5,e5] ~@5 c4 ~ [g4,c5,e5]@3 ~ [g4,c5,e5] ~", // C
AZ: "~@4 c4@2 [g4,c5,e5]@3 ~ [g4,c5,e5] ~@5 c4 ~ [g4,c5,e5]@2 ~@4", // C
BA: "[g4@7 ~@4 g4 c5@7 ~@2 g5 ~@2 [g4,b4,d5]@8 g3 [g4,b4,d5] ~@2, d5!2 ~@2, b4@8 b4@2 b4@6 ~@3 c5@4 c5@3 ~@10, ~@7 g4@4 ~ g4@9 ~@15, ~@6 e5@4 e5 e5@3 ~@4]/3", // G
BB: "~@4 c4 ~ [g4,c5,e5]@3 ~ [g4,c5,e5]@2 ~@4 c4 ~ c6@2 g5 ~ e5 ~", // C
BC: "~@6 a5@3 ~ [a5,c6]@6 ~@2 f#5@2 a5@2 f#5 ~, d5@16 d4@5 ~@3, ~@4 f#5@13 ~ [d5,c6]@4 ~@2", // Am D7
BD: "[c5@14 ~@4 g5@2 ~@10 d5@3 ~ [d5,g5]@6 ~@2 b4@2 d5@2 b4 ~, g4@18 ~@6 g4@17 ~ [g4,g5]@4 ~@2, e5@16 e5@4 e5@12 ~@8 g3@5 ~@3, ~@14 c5@8 c5@6 b4@13 ~@7]/2", // G5 G
BE: "~@6 [a4,c5,f5]@3 ~ [a4,c5,f5]@2 f5@2 ~@2 c6@2 f6@2 c6 ~ a5 ~, ~@7 a5@2 ~@3", // F
BF: "~@6 [g4,b4,e5]@3 ~ [g4,b4,e5]@2 e5@2 ~@2 b5@2 e6@2 b5 ~ g5 ~, ~@7 g5@2 ~@3", // Em
BG: "[a4,c5,f5]@8 f4 [a4,c5,f5] ~@2", // F
BH: "~@6 d5@3 ~ [d5,f5]@6 ~@2 b4@2 d5@2 b4 ~, g4@16 g3@5 ~@3, ~@4 b4@13 ~ [g4,f5]@4 ~@2", // Dm G7
BI: "~@6 b5@3 ~ [b5,e6]@6 ~@2 g5@2 b5@2 g5 ~, e5@16 e4@5 ~@3, ~@4 g5@13 ~ [e5,e6]@4 ~@2", // E5 E
BJ: "[a4,c5,e5]@8 a3 [a4,c5,e5] ~@2", // Am
BK: "[d5@14 ~@4 a5@2 ~@10 d5@3 ~ [d5,f5]@6 ~@2 b4@2 d5@2 b4 ~, a4@18 ~@6 g4@17 ~ [g4,f5]@4 ~@2, f5@16 f5@4 f5@12 ~@8 g3@5 ~@3, ~@14 d5@8 d5@6 b4@13 ~@7]/2", // Dm G7
BL: "[c5@14 ~@4 g5@2 ~@2 c5@2 ~@6 g5@3 ~@7 c4@29 ~@3, g4@9 ~@8 [g5,c6]@19, e5@4 e5 e5@2 e5@11, ~@7 c5@4 ~ c5@24]/3", // C5
})).s("gm_piano").gain(0.52)
// bass · acoustic bass · "BASS 1"
const bass = note(`<
A B C D E F G H I J K L D C D C M G N I O P Q R S T U V W P X Y Z AA AB AC AD E AE AF AG AH AI AJ AI AH AK AL AM AN AO
AP AJ AG AH AI AQ AR AS AM AT AU AV R AW AX AY AZ W BA AH BB AW BC BD AL BE P BF BG A B A D C F G BH BI BJ BK BL D A D
A F BM AC AD C AX AV BN BO BP R AL W AI X R BQ BR BS AC BT A D BU@2 ~@7
>`.pickRestart({
A: "g3 ~@3 g3 ~ g3@2 ~@2 g3 ~ g3@2 ~@2 g3 ~ g3@2 b2 ~ g2 ~",
B: "c3 ~@3 c3 ~ c3@2 ~@2 c3 ~ c3@2 ~@2 c3 ~ c3@2 e3 ~ f3 ~",
C: "g3 ~@3 g3 ~ g3@2 ~@2 g3 ~ g3@2 ~@2 g3 ~ g3@2 ~@2 g3 ~",
D: "c3 ~@3 c3 ~ c3@2 ~@2 c3 ~ c3@2 ~@2 c3 ~ c3@2 ~@2 c3 ~",
E: "g3 ~@3 g3 ~ g3@2 ~@2 g3 ~ g3@2 ~@2 g3 ~ g3@2 e3 ~ d3 ~",
F: "c3 ~@3 c3 ~ c3@2 ~@2 c3 ~ c3@2 ~@2 c3 ~ c3@2 a2 ~ c3 ~",
G: "b2 ~@3 b2 ~ b2@2 ~@2 b2 ~ b2@2 ~@2 b2 ~ b2@2 ~@2 b2 ~",
H: "a2 ~@3 a2 ~ a2@2 ~@2 a2 ~ a2@2 ~@2 a2 ~ a2@2 b2 ~ e3 ~",
I: "d3 ~@3 d3 ~ d3@2 ~@2 d3 ~ d3@2 ~@2 d3 ~ d3@2 e3 ~ f#3 ~", J: "g3@2 ~@2 g3 ~ g3@2 ~@2 g2 ~ c3 ~@3 c3 ~ c3@2 ~@4",
K: "g3@2 ~@2 g3 ~ g3@2 ~@2 g3 ~ g3@2 ~@2 g3 ~ g3@2 d3@2 e3@2",
L: "g3 ~@3 g3 ~ g3@2 ~@2 g3 ~ g3@2 ~@2 g3 ~ g3 ~ e3 ~ b2 ~",
M: "c3 ~@3 c3 ~ c3@2 ~@2 c3 ~ c3@2 ~@2 c3 ~ c3@2 a2 ~ a#2 ~",
N: "a2 ~@3 a2 ~ a2@2 ~@2 a2 ~ a2@2 ~@2 a2 ~ a2@2 e3 ~ c3 ~",
O: "g3 ~@3 g3 ~ g3@2 ~@2 g3 ~ g3@2 ~@2 g3 ~ g3@2 e3 ~ a3 ~", P: "g3@4 g3 ~@5 d3@2 g3@2 ~@2 g3@2 ~@2 b2 ~ g2 ~",
Q: "c3@3 ~ c3 ~@5 c3 ~ c3@2 ~@2 c3@2 d3@2 ~@2 d#3 ~", R: "e3@4 e3 ~@5 b2@2 e3@3 ~ e3 ~@5 e3 ~",
S: "f3@4 f3 ~@5 c3@2 f3@2 ~@2 f3@2 ~@2 f3 ~ f#3 ~", T: "g3@4 g3 ~@5 d3@2 g3@2 ~@2 g3@2 ~@2 g3 ~ d3 ~",
U: "e3@3 ~ e3 ~@5 e3 ~ e3@2 ~@2 e3@2 c3@2 ~@2 g2 ~", V: "a2@4 a2 ~@5 e2@2 a2@2 ~@2 a2@2 ~@2 e3 ~ c3 ~",
W: "d3@4 d3 ~@5 a2@2 d3@2 ~@2 d3@2 ~@2 e3 ~ f3 ~", X: "c3@4 c3 ~@5 g2@2 c3@2 ~@2 c3@2 ~@2 d3 ~ d#3 ~",
Y: "e3@3 ~ e3 ~@5 e3 ~ e3@2 ~@2 e3@2 d#3@2 ~@2 e3 ~", Z: "f3 ~@3 f3 ~ f3@2 ~@2 f3 ~ f3@2 ~@2 f3 ~ f3@2 ~@2 f3 ~",
AA: "g3 ~@3 g3 ~ g3@2 ~@2 g3 ~ g3@2 ~@2 g3 ~ g3@2 g3 ~ d3 ~",
AB: "e3 ~@3 e3 ~ e3@2 ~@2 e3 ~ e3@2 ~@2 e3 ~ e3@2 c3 ~ b2 ~",
AC: "a2 ~@3 a2 ~ a2@2 ~@2 a2 ~ a2@2 ~@2 a2 ~ a2@2 b2 ~ c3 ~",
AD: "d3 ~@3 d3 ~ d3@2 ~@2 d3 ~ d3@2 ~@2 d3 ~ d3@2 ~@2 d3 ~", AE: "c3 ~@3 c3 ~ c3 ~@3 c3 ~ c3 ~@3 c3 ~ c3 ~ g2@2 a2@2",
AF: "c3 ~@3 c3 ~ c3@2 ~@2 c3 ~ c3 ~@3 c3 ~ c3 ~@3 c3 ~", AG: "g3@3 ~ g3 ~@5 g3 ~ g3@2 ~@2 g3@2 e3@2 ~@2 d3 ~",
AH: "c3@4 c3 ~@5 g2@2 c3@3 ~ c3 ~@5 c3 ~", AI: "g3@4 g3 ~@5 d3@2 g3@2 ~@2 g3@2 ~@2 e3 ~ d3 ~",
AJ: "c3@4 c3 ~@5 g2@2 c3@2 ~@2 c3@2 ~@2 e3 ~ f3 ~", AK: "b2@3 ~ b2 ~@5 b2 ~ b2@2 ~@2 b2@2 b2@2 ~@2 a#2 ~",
AL: "a2@4 a2 ~@5 e2@2 a2@3 ~ a2 ~@5 a2 ~", AM: "d3@4 d3 ~@5 a2@2 d3@3 ~ d3 ~@5 d3 ~",
AN: "g3@3 ~ g3 ~@5 d3 ~ c3@3 ~ c3 ~@5 g2 ~", AO: "g3@3 ~ g3 ~@5 d3@2 g3@2 ~@2 g3 ~@5 d3@2",
AP: "g3@3 ~ g3 ~@5 d3@2 g3@4 a3@2 g3@3 ~ d3 ~", AQ: "c3@3 ~ c3 ~@5 c3 ~ c3@2 ~@2 c3@2 a2@2 ~@2 a#2 ~",
AR: "b2@4 b2 ~@5 f#2@2 b2@2 ~@2 b2@2 ~@2 b2 ~ d3 ~", AS: "a2@4 a2 ~@5 e2@2 a2@2 ~@2 a2@2 ~@2 b2 ~ c3 ~",
AT: "g3@3 ~ g3 ~@5 g3 ~ g3@2 ~@2 g3@2 e3@2 ~@2 a3 ~", AU: "g3@3 ~ g3 ~@5 g3 ~ g3@2 ~@2 g3@2 e3@2 ~@2 b2 ~",
AV: "c3@3 ~ c3 ~@5 c3 ~ c3@2 ~@2 c3@2 d3@2 ~@2 f3 ~", AW: "f3@4 f3 ~@5 c3@2 f3@3 ~ f3 ~@5 f3 ~",
AX: "g3@4 g3 ~@5 d3@2 g3@3 ~ g3 ~@5 g3 ~", AY: "e3@3 ~ e3 ~@5 e3 ~ e3@2 ~@2 e3@2 g2@2 ~@2 e2 ~",
AZ: "a2@3 ~ a2 ~@5 a2 ~ a2@2 ~@2 a2@2 b2@2 ~@2 e3 ~", BA: "g3@4 g3 ~@5 d3@2 g3@2 ~@2 g3@2 ~@2 e3 ~ b2 ~",
BB: "e3@4 e3 ~@5 b2@2 e3@2 ~@2 e3@2 ~@2 d#3 ~ f#3 ~", BC: "g3@3 ~ g3 ~@5 g3 ~ g3@2 ~@2 g3@2 g3@2 ~@2 f#3 ~",
BD: "e3@3 ~ e3 ~@5 e3 ~ e3@2 ~@2 e3@2 c3@2 ~@2 b2 ~", BE: "d3@3 ~ d3 ~@5 d3 ~ d3@2 ~@2 d3@2 e3@2 ~@2 a3 ~",
BF: "c3@3 ~ c3 ~@5 g2@2 c3@3 ~ c3 ~@5 g2@2", BG: "c3@3 ~ c3 ~@5 g2@2 c3@3 ~ g2 ~ c3@3 ~@3",
BH: "a2 ~@3 a2 ~ a2@2 ~@2 a2 ~ a2@2 ~@2 a2 ~ a2@2 ~@2 a2 ~",
BI: "d3 ~@3 d3 ~ d3@2 ~@2 d3 ~ d3@2 ~@2 d3 ~ d3@2 a3 ~ f#3 ~", BJ: "g3@2 ~@2 g3 ~ g3@2 ~@2 g3@2 c3 ~@3 c3 ~ c3@2 ~@4",
BK: "g3 ~@3 g3 ~ g3 ~@3 g3 ~ g3 ~@3 g3 ~ g3 ~@3 g3 ~", BL: "g3 ~@3 g3 ~ g3 ~@3 g3 ~ g3 ~@3 g3 ~ g3 ~@3 b2 ~",
BM: "b2 ~@3 b2 ~ b2@2 ~@2 b2 ~ b2@2 ~@2 b2 ~ b2@2 b2 ~ d3 ~", BN: "e3@3 ~ e3 ~@5 e3 ~ e3@2 ~@2 e3@2 d#3@2 ~@2 f#3 ~",
BO: "f3@4 f3 ~@5 c3@2 f3@2 ~@2 f3@2 ~@2 f3 ~ a3 ~", BP: "g3@4 g3 ~@5 d3@2 g3@2 ~@2 g3@2 ~@2 g3 ~ f#3 ~",
BQ: "f3 ~@3 f3 ~ f3@2 ~@2 f3 ~ f3@2 ~@2 f3 ~ f3@2 f3 ~ f#3 ~",
BR: "g3 ~@3 g3 ~ g3@2 ~@2 g3 ~ g3@2 ~@2 g3 ~ g3@2 g3 ~ f#3 ~",
BS: "e3 ~@3 e3 ~ e3@2 ~@2 e3 ~ e3@2 ~@2 e3 ~ e3@2 ~@2 e3 ~",
BT: "d3 ~@3 d3 ~ d3@2 ~@2 d3 ~ d3@2 ~@2 d3 ~ d3@2 e3 ~ a3 ~",
BU: "[c3 ~@3 c3 ~ c3@2 ~@2 c3 ~ c3@2 ~@2 c3 ~ c3@12 ~@18]/2",
})).s("gm_acoustic_bass").gain(0.56)
// chords · electric bass finger · "BASS 2"
const electric_bass_finger = note(`<
A B A B A B C D E F A@2 B A B A B C D E A G B H I G H D J G B H I G H D J G B@2 ~@88
>`.pickRestart({
A: "[g3,b3,d4]", B: "[g3,c4,e4]", C: "[f#3,b3,d4]", D: "[a3,c4,e4]", E: "[f#3,c4,d4]", F: "[g3,b3,d4] [g3,c4,e4]",
G: "[g3,b3,f4]", H: "[g3,b3,e4]", I: "[a3,c4,f4]", J: "[a3,d4,f4]",
})).s("gm_electric_bass_finger").gain(0.29)
// bass · acoustic bass · "BASS 3"
const bass_2 = note(`<
A B C B C D E F G H C@2 B C B C D E F G C@2 B I J C I F G C B I J C I F G C B K A B C B C D E F G H C@2 B C B C D E F
G C@2 B I J C I F G C B I J C I F G C B K A B C B C D E F G H C@2 B C B C D E F G C@2 B I J C I F G C B I J C I F G C
B L@2 ~@7
>`.pickRestart({
A: "g2@2 g2!2 g2@2 g2@2", B: "c2@3 c2 c2@2 c2@2", C: "g2@3 g2 g2@2 g2@2", D: "c3@3 c3 c3@2 c3@2",
E: "b2@3 b2 b2@2 b2@2", F: "a2@3 a2 a2@2 a2@2", G: "d2@3 d2 d2@2 d2@2", H: "g2@3 g2 c3@2 c3@2",
I: "e2@3 e2 e2@2 e2@2", J: "f2@3 f2 f2@2 f2@2", K: "c2", L: "[c2@7 ~]/2",
})).s("gm_acoustic_bass").gain(0.43)
// other · clavinet
const clavinet = note("<~@21 A B C D E F G H I B C D E F G J@2 K@2 ~@88>".pickRestart({
A: "~ g4 a4 b4", B: "c5", C: "d5@3 b4", D: "c5 a4@3", E: "~@2 g4 a4 a4@2 a4@2", F: "a4 g4 g4@2", G: "~ g4!3",
H: "g4@3 a4 f4@2 e4@2", I: "f4 e5 d5 b4", J: "[g4 e4 f4 c5@3 b4@2]/2", K: "c5/2",
})).s("gm_clavinet").gain(0.46)
// other · string ensemble 2 · "STRINGS"
const string_ensemble_2 = note(`<
~@40 A B A C D E F G H I@2 A J A K D L F G H M ~@19 A B A C D E F G H I@2 A J A K D L F G H M ~@27
>`.pickRestart({
A: "~ d4 g4 f#4 g4@2 b4@2", B: "c4 ~", C: "b4 c4@2 ~", D: "~ d4 g4 f#4 g4@2 f#5@2", E: "f#5@2 e5@2 e5@2 e5!2",
F: "e5@3 d5 d5@2 b4@2", G: "b4 a4@2 ~", H: "~ d4 b4 a4 g4@2 f#4@2", I: "g4/2", J: "c4@3 ~", K: "b4 c4@3",
L: "f#5@2 e5@2 e5@3 e5", M: "g4@3 ~",
})).s("gm_string_ensemble_2").gain(0.48)
// other · electric guitar jazz · "E.GUITAR"
const electric_guitar_jazz = note(`<
A B A C D E F G H I@2 A J A K D L F G H M N O P Q R S T U V O P Q R S T W@2 X@2 ~@61 N O P Q R S T U V O P Q R S T W@2
X@2 ~@8
>`.pickRestart({
A: "~ d4 g4 f#4 g4@2 b4@2", B: "c4 ~", C: "b4 c4@2 ~", D: "~ d4 g4 f#4 g4@2 f#5@2", E: "f#5@2 e5@2 e5@2 e5!2",
F: "e5@3 d5 d5@2 b4@2", G: "b4 a4@2 ~", H: "~ d4 b4 a4 g4@2 f#4@2", I: "g4/2", J: "c4@3 ~", K: "b4 c4@3",
L: "f#5@2 e5@2 e5@3 e5", M: "g4@3 ~", N: "~ g4 a4 b4", O: "c5", P: "d5@3 b4", Q: "c5 a4@3", R: "~@2 g4 a4 a4@2 a4@2",
S: "a4 g4 g4@2", T: "~ g4!3", U: "g4@3 a4 f4@2 e4@2", V: "f4 e5 d5 b4", W: "[g4 e4 f4 c5@3 b4@2]/2", X: "c5/2",
})).s("gm_electric_guitar_jazz").gain(0.4)
// chords · acoustic guitar nylon · "A.GUITAR"
const acoustic_guitar_nylon = note(`<
~@40 A B A B A B C D E F A@2 B A B A B C D E A G B H I G H D J G B H I G H D J G B@2 A B A B A B C D E F A@2 B A B A B
C D E A G B H I G H D J G B H I G H D J G B@2 ~@8
>`.pickRestart({
A: "[g3,b3,d4]", B: "[g3,c4,e4]", C: "[f#3,b3,d4]", D: "[a3,c4,e4]", E: "[f#3,c4,d4]", F: "[g3,b3,d4] [g3,c4,e4]",
G: "[g3,b3,f4]", H: "[g3,b3,e4]", I: "[a3,c4,f4]", J: "[a3,d4,f4]",
})).s("gm_acoustic_guitar_nylon").gain(0.3)
// other · epiano1 · "E.PIANO"
const epiano1 = note("<~@61 A B C D E F G H I B C D E F G J@2 K@2 ~@48>".pickRestart({
A: "~ g4 a4 b4", B: "c5", C: "d5@3 b4", D: "c5 a4@3", E: "~@2 g4 a4 a4@2 a4@2", F: "a4 g4 g4@2", G: "~ g4!3",
H: "g4@3 a4 f4@2 e4@2", I: "f4 e5 d5 b4", J: "[g4 e4 f4 c5@3 b4@2]/2", K: "c5/2",
})).s("gm_epiano1").gain(0.46)
// other · pad choir · "SYNTH PAD"
const pad_choir = note(`<
~@80 A B A C D E F G H I@2 A J A K D L F G H M N O P Q R S T U V O P Q R S T W@2 X@2 ~@8
>`.pickRestart({
A: "~ d4 g4 f#4 g4@2 b4@2", B: "c4 ~", C: "b4 c4@2 ~", D: "~ d4 g4 f#4 g4@2 f#5@2", E: "f#5@2 e5@2 e5@2 e5!2",
F: "e5@3 d5 d5@2 b4@2", G: "b4 a4@2 ~", H: "~ d4 b4 a4 g4@2 f#4@2", I: "g4/2", J: "c4@3 ~", K: "b4 c4@3",
L: "f#5@2 e5@2 e5@3 e5", M: "g4@3 ~", N: "~ g4 a4 b4", O: "c5", P: "d5@3 b4", Q: "c5 a4@3", R: "~@2 g4 a4 a4@2 a4@2",
// … 98 more lines
More by
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.