0:00/0:00
// In vacanza da una vita — Grandi
// 126 bpm, 2/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 258 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(126/2)
// 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.
// bass · fretless bass
const bass = note(`<
~@32 A@3 B@2 C D E@5 F@2 G H@3 I@2 J K@3 L M@7 N@2 O P@4 Q@3 O R S@3 T@7 U V W@2 X Y Z@2 X Y AA@6 ~@2 U AB AC AD AE@3
AF@3 AG AH AI@3 AJ@3 AK AL AM AN AO@2 AP@3 AQ AR@2 AS AT@2 AU@3 AV@6 AW@2 AX AY@3 AZ BA@3 BB BC BD@2 AZ BE@3 AZ BF@3
BG BH BI@2 BJ BK BL@2 BJ BK BM@4 AY@3 AZ BA@3 BB BC BD@2 AZ BE@3 AZ BF@3 BN BO@2 BP BN BC BQ@2 BN BO@2 BP BN BC BQ@2
BN BO@2 BP BN BC BQ@2 BN BO@2 BP BN BC BQ@2 BN BO@2 BP BN BC BQ@2 BN BO@2 BP BN BC BQ@2 BN BO@2 BP BN BC BQ@2 BR
>`.pickRestart({
A: "[~@13 d1@35]/3", B: "[~ g1@10 ~@4 g1@9 ~@8]/2", C: "~ d1@4 g1@7 ~@2 d1@2", D: "~@3 g1@11 ~@2",
E: "[g1@6 ~@3 b1@10 ~@4 b1@15 ~@3 f#1@3 ~ b1@8 ~ f#1@3 ~@2 b1@11 ~@2 b1@8]/5", F: "[~ e1@10 ~@4 e1@9 ~@8]/2",
G: "~ b1@4 e1@7 ~@2 b1@2", H: "[~@3 e1@7 ~@2 d1@8 ~@5 c1@10 ~@4 c1@9]/3", I: "[~@4 d1@8 ~ g1@10 ~@4 g1@5]/2",
J: "~@2 g1 ~ d1@4", K: "[~ c1@10 ~@4 c1@7 ~@2 c1@2 ~@2 d1@8 ~ g1@10 ~]/3", L: "~@3 g1@7 ~@2 d1@2 ~@2",
M: "[d1@4 ~ d1@4 f1@36 f1@48 ~@2 f1@2 ~@2 f1@3 ~@2 f1@2 ~@2 f1@3 ~]/7",
N: "[~ f1@3 ~ f1@4 c2@2 ~@3 c2@4 g1@4 g1@10]/2", O: "~@7 d2@9",
P: "[~@3 e2@11 ~ d2@12 c2@2 ~@2 c2@4 g1@3 ~ g1@12 ~@4 d2@9]/4",
Q: "[~@3 e2@7 ~ e2@3 ~ d2@12 c2@3 ~ c2@4 g1@3 ~ g1@7 ~@2]/3", R: "~@3 e2@5 ~@3 d2@5",
S: "[~@3 c2@7 ~ c2@2 ~@2 c2@3 ~ g1@3 ~ g1@12 ~@4 d2@3 ~ d2@5]/3",
T: "[~@3 e2@7 ~ e2@3 ~ d2@12 c2@3 ~ c2@4 g1@3 ~ g1@12 ~@4 d2@3 ~ d2@4 b1@3 ~ e1@7 ~ e1@3 ~ d2@12 c2@3 ~ c2@4 g1@3 ~ g1@8 ~]/7",
U: "~@7 g1@9", V: "~@7 f1@8 ~", W: "[~@3 c2@8 e1@4 f1@4 f#1@4 g1@9]/2", X: "~@7 g2@9", Y: "~@7 f1@3 ~ f1@5",
Z: "[~@3 c2@19 ~ g1@9]/2", AA: "[~@3 c2@20 f2@64 ~@9]/6", AB: "~@4 g1@9 ~@3", AC: "~@3 d1@2 g1@3",
AD: "~@3 d1@3 ~ g1@9", AE: "[~@5 g1@6 ~@2 b1@10 ~@4 b1@15 ~@2 f#1@3 ~]/3",
AF: "[~ b1@8 ~ f#1@3 ~ b1@11 ~@2 b1@8 ~ e1@9 ~@3]/3", AG: "~ e1@9 ~@6", AH: "~@3 b1@4 e1@7 ~@2",
AI: "[b1@3 ~@2 e1@7 ~@2 d1@8 ~@5 g1@9 ~@4 g1@8]/3", AJ: "[~@10 d1@4 ~ g1@7 ~@2 d1@3 ~ g1@11 ~@3 g1@6]/3",
AK: "~@3 b1@10 ~@3", AL: "b1@15 ~", AM: "~@2 f#1@3 ~@2 b1@8 ~", AN: "f#1@3 ~ b1@11 ~",
AO: "[~@2 b1@8 ~ e1@10 ~@3 e1@8]/2", AP: "[~@10 b1@4 ~ e1@7 ~@2 b1@3 ~ e1@7 ~@2 d1@8 ~@3]/3", AQ: "~@3 c1@10 ~@3",
AR: "[c1@9 ~@5 d1@8 ~ g1@9]/2", AS: "~@4 g1@7 ~@2 g1@2 ~", AT: "[~@2 d1@8 ~ c1@10 ~@3 c1@7 ~]/2",
AU: "[~ c1@2 ~@3 d1@8 ~ g1@10 ~@3 g1@7 ~@2 d1@2 ~@3 d1@4 d1@2]/3", AV: "[~@3 f1@36 f1@48 ~ f1@2 ~@3 f1@3]/6",
AW: "[~ f1@2 ~@3 f1@3 ~ f1@3 ~@2 f1@4 c2@2 ~@2 c2@4 g1@4 ~]/2", AX: "g1@5 ~@3",
AY: "[d2@10 ~@2 e2@11 ~ d2@12 c2@2 ~@2 c2@4 g1@3 ~]/3", AZ: "g1@3 ~",
BA: "[d2@11 ~ e2@7 ~ e2@3 ~ d2@12 c2@3 ~ c2@4 g1@3 ~]/3", BB: "g1@7 ~@9", BC: "d2@9 ~@3 e2@4",
BD: "[~@4 d2@5 ~@3 c2@7 ~ c2@2 ~@2 c2@3 ~ g1@3 ~]/2",
BE: "[d2@3 ~ d2@6 ~@2 e2@7 ~ e2@3 ~ d2@12 c2@3 ~ c2@4 g1@3 ~]/3",
BF: "[d2@3 ~ d2@4 b1@3 ~ e1@7 ~ e1@3 ~ d2@12 c2@3 ~ c2@4 g1@3 ~]/3", BG: "g1 ~", BH: "g1@11 ~@5",
BI: "[f1@2 ~ c2@2 e1 f1 f#1]/2", BJ: "g1@9 ~@7", BK: "g2@9 ~@7", BL: "[f1@3 ~ f1@6 ~@2 c2@19 ~]/2",
BM: "[f1@3 ~ f1@6 ~@2 c2@20 g1@20 d2@4 g1@3 ~ g1@3 ~]/4", BN: "g1@5 ~ g1 ~", BO: "[d1@12 e1@11 ~ g1@3 ~ e1@3 ~]/2",
BP: "c2@2 ~@2 c2@2 ~@2 c2@4 d2@3 ~", BQ: "[~@4 d2@5 ~@3 c2@7 ~ c2@2 ~@2 c2@3 ~ g1@4]/2", BR: "g1",
})).s("gm_fretless_bass").gain(0.49)
// chords · overdriven guitar
const overdriven_guitar = note(`<
~@64 A@2 B C@3 B D@3 B E F@2 B G@3 B H@3 I J K@2 I L M@2 N O@3 ~@49 P Q R@2 S T U@2 V T W X@2 T Y@2 Z T AA@2 AB AC@2
AD@2 AE AC AF@2 AE AG AH@2 AI ~ AJ@2 S T U@2 V T W X@2 T Y@2 Z T AA@2 AB AK AL AM AN AO AP AQ@2 AK AL AM AN AO AP AQ@2
AK AL AM AN AO AP AQ@2 AK AL AM AN AO AP AQ@2 AK AL AM AN AO AP AQ@2 ~@5 AR AS@2 AK AL AM AN AO AP AT@2 AU
>`.pickRestart({
A: "[~@9 [g3,e4]@3 ~@2 [g3,e4]@4 [g3,d4]@4 [b3,d4]@6 ~@4]/2", B: "~@7 [d4,f#4]@9",
C: "[~@3 [e4,g4]@11 ~ [d4,f#4]@4 [e4,g4]@2 ~@2 [e4,a4]@3 ~ [d4,g4]@3 ~ [c4,e4]@4 [b3,d4]@4 [b3,d4]@5 ~@4]/3", // Em D Em A5 G5 C Bm
D: "[~@3 [e4,g4]@11 ~ [d4,f#4]@4 [e4,g4]@3 ~ [e4,a4]@4 [e4,g4]@4 [c4,e4]@4 [b3,d4]@3 ~ [b3,d4]@5 ~@4]/3", // Em D Em A5 Em C Bm
E: "~@3 [e4,g4]@4 ~@4 [d4,f#4]@5", F: "[~@3 [c4,e4]@7 ~ [c4,e4]@2 ~@2 [c4,e4]@4 [b3,d4]@3 ~ [b3,d4]@5 ~@4]/2",
G: "[~@3 [e4,g4]@9 ~@3 [d4,f#4]@4 [e4,g4]@3 ~ [e4,a4]@4 [e4,g4]@3 ~ [c4,e4]@4 [b3,d4]@3 ~ [b3,d4]@5 ~@4]/3", // Em D Em A5 Em C Bm
H: "[~@3 [e4,g4]@10 ~@2 [d4,f#4]@4 [e4,g4]@3 ~ [f#4,a4]@4 [e4,g4]@3 ~ [e4,g4]@4 [f#4,a4]@3 ~ [g3,b4]@8 ~]/3", // Em D Em F#m Em F#m G
I: "~@7 [g3,b4]@8 ~", J: "~@7 [f3,a4]@9", K: "[~@3 [e3,g4]@12 [d3,g4]@8 [g3,b4]@7 ~@2]/2", L: "~@7 a4@9, ~@3 f3@5",
M: "[~@3 [e3,g4]@11 ~ d3@8 [g3,b4]@7 ~@2, ~@7 g4@4 ~@5]/2", N: "~@7 [g3,b4]@9",
O: "[~@7 f3@11 ~ e3@11 ~ [d3,g4]@7 ~@10, ~@6 a4@12 g4@11 ~@19]/3", P: "~@3 [g3,e4]@3 ~ [g3,e4]@4 [g3,d4]@4 ~",
Q: "[b3,d4]@3 ~@5", R: "[[d4,f#4]@11 ~ [e4,g4]@11 ~ [d4,f#4]@4 [e4,g4]@2 ~@2]/2",
S: "[e4,a4]@3 ~ [d4,g4]@3 ~ [c4,e4]@4 [b3,d4]@4", T: "[b3,d4]@5 ~@11",
U: "[[d4,f#4]@10 ~@2 [e4,g4]@11 ~ [d4,f#4]@4 [e4,g4]@3 ~]/2", V: "[e4,a4]@4 [e4,g4]@4 [c4,e4]@4 [b3,d4]@3 ~",
W: "[d4,f#4]@5 ~ [e4,g4]@2", X: "[~@4 [d4,f#4]@5 ~@3 [c4,e4]@7 ~ [c4,e4]@2 ~@2 [c4,e4]@4 [b3,d4]@3 ~]/2",
Y: "[[d4,f#4]@10 ~@2 [e4,g4]@9 ~@3 [d4,f#4]@4 [e4,g4]@3 ~]/2", Z: "[e4,a4]@4 [e4,g4]@3 ~ [c4,e4]@4 [b3,d4]@3 ~",
AA: "[[d4,f#4]@10 ~@2 [e4,g4]@10 ~@2 [d4,f#4]@4 [e4,g4]@3 ~]/2", AB: "[f#4,a4]@4 [e4,g4]@3 ~ [e4,g4]@4 [f#4,a4]@3 ~",
AC: "[g3,b4] ~", AD: "[[f3,a4]@5 ~ [e3,g4]@6 [d3,g4]@4]/2", AE: "[g3,b4]@7 ~@9",
AF: "[[f3,a4]@11 ~ [e3,g4]@12 [d3,g4]@8]/2", AG: "[g3,b4]@9 ~@7", AH: "[[f3,a4]@12 [e3,g4]@11 ~ [d3,g4]@5 ~@3]/2",
AI: "[g3,b4]", AJ: "[~@12 [e4,g4]@11 ~ [d4,f#4]@4 [e4,g4]@2 ~@2]/2", AK: "g3@2 g4 d4, d3@15 ~", AL: "a3@2 d5 e4, d3",
AM: "b3@2 b4 e4, e3", AN: "c4@2 c5 g4, e3@15 ~", AO: "[d3,g3]@2 g4 d4", AP: "[d3,a3]@2 a4 [e4,g4]",
AQ: "[~@4 [d4,f#4]@5 ~@3 [c4,e4]@7 ~ [c4,e4]@2 ~@2 [c4,e4]@4 d4@4]/2", // D C
AR: "[a3,d4]@4 [d4,a4]@4 [a4,d5]@3 ~ [e4,e5]@4", AS: "[~@2 [d4,d5]@3 ~ [c4,c5]@8 ~@2]/2",
AT: "[~@4 [d4,f#4]@5 ~@3 [c4,e4]@7 ~ [c4,c5]@2 ~@2 [c4,c5]@4 b4@4]/2", AU: "[d3,b4]@7 ~",
})).s("gm_overdriven_guitar").gain(0.39).pan(0.7)
// other · piano
const piano = note(`<
~@3 A ~ B ~ C ~ D@2 ~@3 E ~ F ~ G@2 ~ H ~ I ~ J ~ K@2 ~ L ~ M@2 ~@2 G@2 ~ H ~ I ~ J ~ K@2 N@2 ~ O ~ P ~ Q@2 ~ R ~@48 S
~ T ~ U@2 V@2 W@2 ~ X ~ Y ~ Z ~ AA@2 ~ AB ~ AC ~ AD ~ AE@2 ~ X ~ AF ~ AG AH ~@107 AI@2 ~@6 AJ AK
>`.pickRestart({
A: "[g1,g2]@5 ~@3", B: "~@2 [g1,g2]@5 ~", C: "~ [g1,g2]", D: "[~@3 [g1,g2]@2 ~@3]/2", E: "~@2 [e1,e2]@5 ~",
F: "~@4 [d1,d2]@3 ~ [d1,d2]@8", G: "[~@6 [g1,g2]@5 ~@5]/2", H: "[g1,g2] ~", I: "~@4 [b1,b2]@11 ~", J: "~ [b1,b2]",
K: "[~@12 [e1,e2]@11 ~@9]/2", L: "[d1,d2]@9 ~@7", M: "[~@4 [c1,c2]@9 [d1,d2]@9 ~@10]/2", N: "[~@12 [d1,d2]@11 ~@9]/2",
O: "~@4 [d1,d2]@9 ~@3", P: "~ [d1,d2]", Q: "[~@12 [d1,d2]@9 ~@11]/2", R: "[g1,g2]@9 [f1,f2]@7", S: "~ [g1,g2]@10 ~@5",
T: "~@5 [g1,g2]@8 ~@3", U: "[~@8 [b1,b2]@11 ~@13]/2", V: "[~@11 [b1,b2]@9 ~@12]/2", W: "[~@15 [e1,e2]@11 ~@6]/2",
X: "~@2 [d1,d2]@9 ~@5", Y: "~@3 [g1,g2]@5", Z: "~@5 [g1,g2]@3", AA: "[~@14 [b1,b2]@11 ~@7]/2",
AB: "~@2 b1@9 ~@5, ~ b2@8 ~@7", AC: "~@3 e2@5, ~@5 e1@11", AD: "~@5 [d1,d2]@11", AE: "[~@13 [d1,d2]@9 ~@10]/2",
AF: "~@5 [d1,d2]@9 ~@2", AG: "~@9 [g1,g2]@7", AH: "~@2 [f1,f2]@9 ~@5",
AI: "[~@4 g5@4 e5@2 d5@2 b4@2 ~ a4@2 b4@4 ~@11, ~@2 f#5 ~@13]/2", AJ: "~@4 [c5,c6]@2 ~@2 [c5,c6]@3 ~ [b4,b5]@3 ~",
AK: "[b4,b5]@7 ~@9", // B
})).s("gm_piano").gain(0.45).pan(0.6)
// other · electric guitar muted
const electric_guitar_muted = note(`<
~ A B C D E F@2 G@2 H I J K L M@2 N@2 H O P Q R S@2 T@2 U V W X Y@5 H O P Q R S@2 T@2 U Z W X AA AB@2 AC@2 AD AE AF@2
~@6 AG AH AI@4 AJ@3 AH AK AL@3 AM@7 AN AO AP@2 AQ AR AS@2 AQ AR AT@2 ~@6 AU@2 AV O AW AX@2 AY Q AZ BA@2 BB BC@2 G@2 H
BD BE BF BG BH@2 T@2 BI BJ BK BL E BM@2 BN@2 BO BP@2 ~@6 BQ BR@3 BS BT@3 BU BV BW@2 BS BX@3 BS BY@3 BZ CA CB@2 CC CD
CE@2 CC CD CE@2 CD ~ CF@3 BS BT@3 BU BV BW@2 BS BX@3 BS BY@3 ~@5 CG BW@2 ~@5 CG BW@2 ~@5 CG BW@2 ~@5 CG BW@2 ~@5 CG
BW@2 ~@5 CG BW@2 ~@5 CG BW@2 ~
>`.pickRestart({
A: "~@5 g2@3 ~@2 g2@2 ~@2 g2@2", B: "~@3 g2@2 ~@2 g2@3 ~@2 g2@2 ~@2", C: "g2@2 ~@3 g2@2 ~@2 g2@2 ~@3 g2@2",
D: "~@2 g2@3 ~@2 g2@2 ~@2 g2@2 ~@3", E: "g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2 ~",
F: "[~@2 g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2 ~@3 g2@2 ~]/2",
G: "[~ g2@2 ~@3 g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2 ~@2]/2", H: "~ g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2",
I: "~@3 g2@3 ~ d2@3 ~@2 d2@2 ~@2", J: "d2@2 ~@3 d2@3 ~ e2@3 ~@2 e2@2", K: "~@2 e2@2 ~@3 e2@2 ~@2 e2@2 ~@3",
L: "e2@2 ~@2 e2@2 ~@3 e2@2 ~@2 e2@3", M: "[~@2 e2@2 ~@2 e2@2 ~@3 e2@3 ~ e2@3 ~@2 d2@3 ~ d2@2 ~@3 d2@3]/2",
N: "[~ g2@3 ~@2 g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2 ~@2]/2", O: "~@3 g2@2 ~@2 g2@2 ~@3 g2@2 ~@2",
P: "g2@2 ~@3 g2@2 ~@2 b2@3 ~@2 b2@2", Q: "~@2 b2@2 ~@3 b2@2 ~@2 b2@2 ~@3", R: "b2@2 ~@2 b2@2 ~@3 b2@2 ~@2 b2@3",
S: "[~@2 b2@2 ~@2 b2@2 ~@3 b2@2 ~@2 b2@2 ~@3 b2@2 ~@2 b2@2 ~@3 b2@3]/2",
T: "[~ e2@2 ~@3 e2@2 ~@2 e2@2 ~@3 e2@2 ~@2 e2@2 ~@3 e2@2 ~@2 e2@2 ~@2]/2", U: "~ e2@2 ~@2 e2@2 ~@3 e2@2 ~@2 e2@2",
V: "~@3 e2@2 ~@2 e2@3 ~@2 e2@3 ~", W: "d2@2 ~@3 d2@2 ~@2 c2@3 ~@2 c2@2", X: "~@2 c2@3 ~@2 c2@2 ~@2 c2@3 ~@2",
Y: "[c2@2 ~@2 c2@2 ~@3 c2@2 ~@2 d2@36 g2@3 ~@2 g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2 ~@2]/5",
Z: "~@3 e2@2 ~@2 e2@3 ~@2 d2@3 ~", AA: "c2@2 ~@2 d2@2 ~@3 d2@2 ~@2 g2@3",
AB: "[~@2 g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 d2@2 ~@3 d2@2 ~]/2",
AC: "[~ c2@3 ~@2 c2@2 ~@2 c2@3 ~@2 c2@2 ~@2 c2@3 ~@2 c2@2 ~@2 d2@2 ~@2]/2", AD: "~ d2@2 ~@2 g2@3 ~@2 g2@2 ~@2 g2@2",
AE: "~@3 g2@2 ~@2 g2@2 ~@3 d2@2 ~@2", AF: "[d2@2 ~@3 d2@2 ~@2 f2@22 ~]/2", AG: "~@3 g2@5", AH: "~@7 d3@9",
AI: "[~@3 e3@11 ~ d3@12 c3@2 ~@2 c3@4 g2@3 ~ g2@12 ~@4 d3@9]/4",
AJ: "[~@3 e3@7 ~ e3@3 ~ d3@12 c3@3 ~ c3@4 g2@3 ~ g2@7 ~@2]/3", AK: "~@3 e3@5 ~@3 d3@5",
AL: "[~@3 c3@7 ~ c3@2 ~@2 c3@3 ~ g2@3 ~ g2@12 ~@4 d3@3 ~ d3@5]/3",
AM: "[~@3 e3@7 ~ e3@3 ~ d3@12 c3@3 ~ c3@4 g2@3 ~ g2@12 ~@4 d3@3 ~ d3@4 b2@3 ~ e2@7 ~ e2@3 ~ d3@12 c3@3 ~ c3@4 g2@3 ~ g2@8 ~]/7",
AN: "~@7 g2@9", AO: "~@7 f2@8 ~", AP: "[~@3 c3@8 e2@4 f2@4 f#2@4 g2@9]/2", AQ: "~@7 g3@9", AR: "~@7 f2@3 ~ f2@5",
AS: "[~@3 c3@19 ~ g2@9]/2", AT: "[~@3 c3@19 ~@10]/2", AU: "[~@7 g2@3 ~ g2@2 ~@2 g2@2 ~@3 g2@2 ~@2 g2@2 ~@3 g2@2 ~]/2",
AV: "~ g2@2 ~@3 g2@2 ~@2 g2@2 ~@2 g2@2", AW: "g2@2 ~@3 g2@2 ~@2 g2@2 ~@2 b2@3",
AX: "[~@2 b2@2 ~@2 b2@2 ~@3 b2@2 ~@2 b2@2 ~@2 b2@2 ~@3 b2@2 ~@2 b2@2 ~@2]/2", AY: "~ b2@2 ~@2 b2@2 ~@3 b2@2 ~@2 b2@2",
AZ: "b2@3 ~ e2@2 ~@3 e2@2 ~@2 e2@2 ~", BA: "[~ e2@2 ~@3 e2@2 ~@2 e2@2 ~@3 e2@2 ~@2 e2@2 ~@2 e2@2 ~@3 e2@2 ~@2]/2",
BB: "e2@2 ~@3 e2@2 ~@2 e2@3 ~@2 e2@2", BC: "[~@2 d2@2 ~@2 d2@2 ~@3 g2@3 ~ g2@2 ~@3 g2@2 ~@2 g2@2 ~@3 g2@2 ~]/2",
BD: "~@3 b2@3 ~ b2@2 ~@3 b2@2 ~@2", BE: "b2@2 ~@3 b2@2 ~@2 b2@2 ~@3 b2@2", BF: "~@2 b2@2 ~@3 b2@3 ~ b2@2 ~@3",
BG: "b2@2 ~@2 b2@2 ~@3 b2@2 ~@2 b2@2 ~", BH: "[~@2 b2@2 ~@2 b2@3 ~@2 e2@2 ~@2 e2@2 ~@3 e2@2 ~@2 e2@2 ~@3 e2@2 ~]/2",
BI: "~ e2@3 ~ d2@3 ~@2 d2@2 ~@2 d2@2", BJ: "~@3 c2@3 ~ c2@2 ~@3 c2@3 ~", BK: "c2@2 ~@3 c2@3 ~ c2@2 ~@3 d2@2",
BL: "~@2 d2@2 ~@3 g2@3 ~ g2@2 ~@3", BM: "[~@2 d2@2 ~@2 d2@2 ~@3 c2@3 ~ c2@2 ~@3 c2@3 ~ c2@2 ~@3 c2@3]/2",
BN: "[~ c2@2 ~@3 d2@2 ~@2 d2@2 ~@3 g2@3 ~ g2@2 ~@3 g2@2 ~@2 g2@2 ~@2]/2", BO: "~ g2@2 ~@2 d2@2 ~@3 d2@2 ~@2 d2@2",
BP: "[~@3 f2@22 ~@7]/2", BQ: "g2@5 ~@3", BR: "[d3@10 ~@2 e3@11 ~ d3@12 c3@2 ~@2 c3@4 g2@3 ~]/3", BS: "g2@3 ~",
BT: "[d3@11 ~ e3@7 ~ e3@3 ~ d3@12 c3@3 ~ c3@4 g2@3 ~]/3", BU: "g2@7 ~@9", BV: "d3@9 ~@3 e3@4",
BW: "[~@4 d3@5 ~@3 c3@7 ~ c3@2 ~@2 c3@3 ~ g2@3 ~]/2",
BX: "[d3@3 ~ d3@6 ~@2 e3@7 ~ e3@3 ~ d3@12 c3@3 ~ c3@4 g2@3 ~]/3",
BY: "[d3@3 ~ d3@4 b2@3 ~ e2@7 ~ e2@3 ~ d3@12 c3@3 ~ c3@4 g2@3 ~]/3", BZ: "g2 ~", CA: "g2@11 ~@5",
CB: "[f2@2 ~ c3@2 e2 f2 f#2]/2", CC: "g2@9 ~@7", CD: "g3@9 ~@7", CE: "[f2@3 ~ f2@6 ~@2 c3@19 ~]/2",
CF: "[~@12 e3@11 ~ d3@12 c3@2 ~@2 c3@4 g2@3 ~]/3", CG: "~@3 e3",
})).s("gm_electric_guitar_muted").gain(0.37).pan(0.7)
// chords · rock organ
const rock_organ = note(`<
~@32 A@3 ~@4 B@5 C@3 D E@2 F@7 G@8 H I J@2 K I L ~ K I M N K I J@2 K I L ~ O@7 P@4 Q@7 ~@15 R S ~@2 T@8 U V@2 W@7 X@8
Y Z@2 ~ AA AB@2 ~ Y AC AD@2 AE Z@2 ~ AA AB@2 ~ AF@2 AG@2 AF@2 AH@2 AF@2 AI@2 AJ ~ Z@2 ~ AA AB@2 ~ Y AC AD@2 AE Z@2 ~
AA AB@2 ~ AK AL@2 AM AN AO AP@2 AK AL@2 AM AN AO AP@2 AK AL@2 AM AN AO AP@2 AK AL@2 AM AN AO AP@2 AK AL@2 AM AN AO
AP@2 AQ ~@4 AR AP@2 AK AL@2 AM AN AO AP@2 AS
>`.pickRestart({
A: "[~@13 [d5,f#5,a5,d6]@35]/3", B: "[~@9 [f#5,b5,d6]@71]/5", C: "[~ [g5,b5,e6]@47]/3", D: "~@3 [f#5,a5,d6]",
E: "[~@9 [e5,g5,c6]@23]/2", F: "[~@13 [d5,b5]@36 [e5,c6]@36 [d5,b5]@27, ~@13 g5@99]/7", G: "[~@9 [c5,f5,a5]@119]/8",
H: "~@3 [b4,d5,g5]@5", I: "~@7 [a4,d5,f#5]@9", J: "[~@3 [b4,e5]@14 ~@15, ~@3 g5@22 ~@7]/2", K: "~@7 [b4,d5,g5]@9",
L: "~@3 [b4,e5,g5]@13", M: "~@3 [b4,e5,g5]@6 ~@2 [d5,f#5]@5", N: "~@3 c5@13, ~@3 e5@6 ~@7",
O: "[~@15 [g4,d5,g5,b5]@8 ~@8 [g4,d5,g5,b5]@8 ~@8 [f5,a5]@4 [e5,g5]@12 d5@8 ~@8 [g4,d5,g5,b5]@8 ~@8 [g4,d5,g5,b5]@8 ~@8 [f5,a5], ~@47 c5@16 ~@49, ~@47 c4@11 ~@54]/7", // G F Em G F
P: "[~@3 [e5,g5]@17 ~@11 [g4,d5,g5,b5]@8 ~@8 [g4,d5,g5,b5]@8 ~@8 [c4,c5]]/4", // Em G C
Q: "[~@23 [f4,a4]@80 ~@9, ~@3 c5@96 ~@13]/7", R: "~@4 b5@3 ~ g5@8, ~@3 a#5@2 ~@11", S: "[d5,e5] c5 [a4,b4] g4 ~@12",
T: "[~@3 b5@71 ~ b5@53, ~@2 [f#5,d6]@71 ~ [g5,e6]@54]/8", U: "~@5 [f#5,a5,d6]@11", V: "[~@3 c6@29, ~ [e5,g5]@15]/2",
W: "[~@7 [d5,b5]@35 [e5,c6]@36 ~ [d5,b5]@33, ~ g5@15]/7", X: "[~@3 c5@124 ~, ~ [f5,a5]@62 ~]/8",
Y: "[b4,d5,g5]@11 ~@5", Z: "[[a4,d5,f#5]@5 ~ [b4,e5]@7 ~@3, ~@3 g5@5]/2", AA: "[b4,d5,g5]@9 ~@7",
AB: "[[a4,d5,f#5]@11 ~ [b4,e5,g5]@14 ~@6]/2", AC: "[a4,d5,f#5]@5 ~ [b4,e5,g5]@2",
AD: "[~@2 [d5,f#5]@3 ~ c5@7 ~@3, ~@6 e5@3 ~@7]/2", AE: "[b4,d5,g5]@5 ~@3", AF: "~ [g4,d5,g5,b5]",
AG: "[~@2 [f5,a5] [e5,g5]@3 d5@2, ~ c5@2 ~, ~@8 c4@11 ~@13]/2", AH: "[~@8 [f5,a5]@4 [e5,g5]@17 ~@3]/2",
AI: "[~@2 [c4,c5] c5@2 ~@3]/2", AJ: "[g4,b4,d5] ~", AK: "[d5,b5], g5@13 ~@3", AL: "[[d5,f#5,a5]@3 [g5,b5]@5]/2",
AM: "[e5,g5,c6]", AN: "[d5,g5,b5]", AO: "[a4,d5,f#5,a5]@3 [b4,e5,g5]", AP: "[~@2 [d5,f#5]@3 ~ [c5,e5]@8 d5@2]/2",
AQ: "[d5,b5] ~, g5@5 ~@11", AR: "~@3 [b4,e5,g5]", AS: "[d5,g5,b5] ~",
})).s("gm_rock_organ").gain(0.38).pan(0.4)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~ A B C D E@2 ~ F@2 A G H I J@2 ~ F@2 A B K L M@2 ~ N@2 O P Q R S@3 F@2 A B K L M@2 ~ N@2 O P Q R E@2 ~ T@2 A B U@2
~@6 V W@8 X@4 Y@4 Z@8 AA@8 ~@6 AB AC AD AE AF@2 ~ AG@2 AH AI AJ AK AL AM AN@3 AO AP AQ AR AS AT AU@3 AV AW AB AX AY AZ
AN@3 BA@2 ~@6 BB BC BD BE BF BC BD BE BF BC BG BH BF BC BD BH BF BC BD BE BI@2 BJ BK BI@2 BL BM BI@2 BN BM BO ~ BC BD
BE BF BC BD BE BF BC BG BH BF BC BD BH BF BC BD BE BP BQ@2 BR BS BC BG BH BP BQ@2 BR BS BC BG BH BP BQ@2 BR BS BC BG
BH BP BQ@2 BR BS BC BG BH BP BQ@2 BR BS BC BG BH BP BQ@2 BR BS BC BG BH BP BQ@2 BR BS BC BG BH BT
>`.pickRestart({
A: "~@3 [d4,g4]@2 ~@3, ~@5 [d3,g3,b3]@5 ~@6", B: "~@3 [d3,g3,b3,d4,g4]@5 ~@8",
C: "~@5 [d4,g4]@2 ~, ~@9 [d3,g3,b3]@5 ~@2", D: "~@7 [d3,g3,b3,d4,g4]@5 ~@4",
E: "[~@14 [d4,g4]@4 ~@9 [d3,g3,b3,d4,g4]@5, ~@13 [d3,g3,b3]@5 ~@14]/2", // G5 G
F: "[~@2 [d4,g4]@4 ~@9 [d3,g3,b3,d4,g4]@5 ~@12, ~ [d3,g3,b3]@5 ~@26]/2", // G5 G
G: "~@8 [d4,f#4]@5 ~@3, ~@7 [d3,f#3,a3]@5 ~@4", H: "~@5 [e4,g4]@2 ~, ~@9 [b2,g3,b3]@5 ~@2",
I: "~@7 [b2,g3,b3,e4,g4]@5 ~@4", J: "[~@14 [e4,g4]@4 ~@9 [b2,g3,b3,e4,g4]@5, ~@13 [b2,g3,b3]@5 ~@14]/2",
K: "~@5 [d4,f#4]@2 ~, ~@9 [b2,f#3,b3]@5 ~@2", L: "~@7 [b2,f#3,b3,d4,f#4]@5 ~@4",
M: "[~@14 [d4,f#4]@4 ~@9 [b2,f#3,b3,d4,f#4]@5, ~@13 [b2,f#3,b3]@5 ~@14]/2", // D Bm B5
N: "[~@2 [e4,g4]@4 ~@9 [b2,g3,b3,e4,g4]@5 ~@12, ~ [b2,g3,b3]@5 ~@26]/2", O: "~@3 [e4,g4]@2 ~@3, ~@5 [b2,g3,b3]@5 ~@6",
P: "~@3 [b2,g3,b3,e4,g4]@5 ~@8", Q: "~@5 [e4,g4]@2 ~, ~@9 [c3,g3,c4]@5 ~@2", R: "~@7 [c3,g3,d4,e4,g4]@5 ~@4",
S: "[~@14 [d4,f#4,a4]@31 ~@3, ~@13 [d3,a3]@32 ~@3]/3", // D D5
T: "[~@2 [e4,g4]@4 ~@9 [c3,g3,d4,e4,g4]@5 ~@12, ~ [c3,g3,c4]@5 ~@26]/2", U: "[~@5 [c4,f4]@11, ~@9 [c3,f3,a3]@23]/2",
V: "~@7 g4@2 ~@2 [b3,d4]@5, ~@3 [b3,d4] ~ g4@3", // Bm
W: "[~@7 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4]@2 ~@2 [b3,e4,g4]@2 ~@2 [b3,e4,g4] ~@3 [b3,e4,g4] ~@3 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4]@2 ~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4]@5]/4", // D Em D C G
X: "[~@7 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4]@2 ~@2 [b3,e4,g4]@2 ~@2 [b3,e4,g4] ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4]@2 ~@2 [g3,c4,e4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4]@2 ~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4]@5]/4", // D Em D C G
Y: "[~@7 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4]@2 ~@2 [b3,e4,g4]@2 ~@2 [b3,e4,g4] ~@3 [b3,e4,g4] ~@3 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4]@2 ~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4]@5]/4", // D Em D C G
Z: "[~@7 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4]@2 ~@2 [b3,e4,g4]@2 ~@2 [b3,e4,g4] ~@3 [b3,e4,g4] ~@3 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4]@2 ~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4]@2 ~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4]@2 ~@2 [b3,d4,g4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4]@2 ~@2 [c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [c4,e4,g4] ~@3 [a3,d4,a4]@2 ~@2 [a3,d4,a4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4]]/8", // D Em D C G F C D5 …
AA: "[~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4]@2 ~@2 [b3,d4,g4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 f4@2 ~@2 g4 ~@3 g4 ~@3 g4 ~@3 a4@2 ~@2 a4 ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4]@2 ~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4]@2 ~@2 [b3,d4,g4] ~@3 f4 ~@3 f4 ~@3 f4@2 ~@2 g4 ~@3 g4 ~@3 g4 ~@3 a4@2 ~@2 a4 ~@12]/8", // G F G
AB: "~@7 [d3,g3,b3,d4,g4]@4 ~@5", AC: "~@4 [d3,g3,b3,d4,g4]@5 ~@7", AD: "~@11 g4@4 ~, ~@5 [d3,g3,b3,d4]@2 ~",
AE: "~@8 [b3,d4,g4]@5 ~@3, ~@7 [d3,g3]@5 ~@4", // G G5
AF: "[~@14 [b3,d4,f#4]@4 ~@9 [b2,f#3,b3,d4,f#4]@5, ~@13 [b2,f#3]@4 ~@15]/2", // Bm B5
AG: "[~ [b2,f#3,b3,d4,f#4]@4 ~@10 f#4@5 ~@12, ~@14 [b2,f#3,b3,d4]@5 ~@13]/2", // Bm
AH: "~@5 [e4,g4]@4 ~@7, ~ [b2,g3,b3] ~@2", AI: "~@2 [b3,e4,g4]@5 ~@9, ~ [b2,g3]@5 ~@10",
AJ: "~@2 [g3,b3,e4,g4] ~, ~@7 b2@4 ~@5", AK: "~@5 [b2,g3,b3,e4,g4]@5 ~@6", AL: "~@11 [d3,g3,b3,d4,g4]@4 ~",
// … 104 more lines
More by Grandi
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.