0:00/0:00
// Telefonami tra vent'anni — Dalla
// 137 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 169 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 25.
setcpm(137/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.
// bass · fretless bass
const bass = note(`<
~@25 A B@2 C D E F@2 C G H I J I K L@2 M N@2 O P Q R Q R S T U P Q V Q W X Y Z Y Z Y AA@2 ~@2 AB AC@2 AD AE@2 AF@2 AD
AG AH I J AI AJ AK@2 AL@2 AM AN AO AP AQ AR@2 AS AT@2 I J I K L@2 M N@2 AU@4 AV@3 AW AX@4 AV@3 AW AY@4 AZ@3 AW BA@5
BB@3 BC@4 BD@4 BC@4 BE@8 BF@8 BG ~
>`.pickRestart({
A: "~@2 d2", B: "[g1@3 g1]/2", C: "c2@3 d2", D: "g1", E: "[g1,g2]@2 c2 d2", F: "[g1@6 d2 g1]/2", G: "g1@6 g2@5 c2",
H: "d2 g1 a1 b1", I: "c2 b1", J: "a1@3 b1", K: "a1@2 ~ g1", L: "[~ g2@3, g1]/2", M: "g1@2 g1!2", N: "g1@11 g1",
O: "~@5 d2@3 c#2@3 ~, g1 ~", P: "c2@2 ~ c2", Q: "e2@2 ~ e2", R: "a1@2 ~ a1", S: "d2@6 ~@2 c2 d2@2 a1",
T: "g1@9 ~@2 g1", U: "g1@2 d2 g1", V: "a2@2 ~ a2", W: "a1@2 e2 a2", X: "d2", Y: "g1 ~@5 g1 ~@5 g1 ~@5 g1 ~@5",
Z: "g1 ~@5 g1 ~@3 g1@2 g2@3 ~ d2@8", AA: "[g1 g2@9 ~@6]/2", AB: "~@5 d2@3", AC: "g1/2", AD: "c2@4 f1 ~ f#1 ~",
AE: "[g1@33 ~ g1@2 c2@6 d2@6]/2", AF: "[g1@3 d2]/2", AG: "g1 d2", AH: "g2@3 ~ d2@2 g1@6 a1@6 b1@6", AI: "c2@4 b1@3 ~",
AJ: "a1@9 ~@2 f1", AK: "[g1@6 c2 d2]/2", AL: "[g1@6 ~ d2]/2", AM: "g1 g2", AN: "d2@5 ~@3", AO: "c2@5 ~ d2 ~",
AP: "g1@9 ~ g2@14", AQ: "d2@4 c2 ~ f#1 ~", AR: "[g1@12 d2@2 g1 ~]/2", AS: "c2@3 ~ d2@2 g1 ~", AT: "[g1@5 g1 a1 b1]/2",
AU: "[g1@9 c2@4 ~@2 c2@2 e2@4 ~@2 e2@2 a1@6 ~]/4", AV: "[~ e2@6 e2@2 a1@4 ~@2 a1@2 d2@6 ~]/3", AW: "~ a1@2 g1@18 ~@3",
AX: "[~ g1@2 g1@12 d2@6 g1@6 c2@12 ~@6 c2@6 e2@12 ~@6 e2@6 a1@18 ~@3]/4",
AY: "[~ g1@2 g1@12 ~@4 g1@2 g1@6 c2@12 ~@6 c2@6 e2@12 ~@6 e2@6 a1@18 ~@3]/4",
AZ: "[~ e2@6 e2@2 a1@4 a1@2 e2@2 d2@6 ~]/3", BA: "~ g1@2 g1@18 ~@3",
BB: "[~ g2@2 c2@12 ~@6 c2@6 e2@12 ~@6 e2@6 a2@12 ~@9]/3",
BC: "[~ a2@2 e2@12 ~@6 c2@6 a1@18 e2@6 d2@12 a1@12 g2@18 ~@3]/4",
BD: "[~ g2@2 g2@12 g1@12 c2@12 ~@6 c2@6 e2@12 ~@6 e2@6 a2@12 ~@9]/4",
BE: "[~ g2@2 g2@12 g1@12 c2@9 ~ c2@2 c3@4 c3@2 g2@6 e2@9 ~ e2@2 e2@6 e2@6 a2@9 ~ a2@2 a2@6 g2@6 e2@18 c2@6 a1@18 e2@6 d2@12 a1@12 g2@18 ~@3]/8",
BF: "[~ g2@2 g2@18 g1@6 c2@9 ~ c2@2 c3@4 c3@2 g2@6 e2@9 ~ e2@2 e2@6 e2@6 a2@9 ~ a2@2 a2@6 g2@6 e2@18 c2@6 a1@18 e2@6 d2@12 a1@12 g2@18 ~@3]/8",
BG: "~ g2@2 g2@18 ~@3",
})).s("gm_fretless_bass").gain(0.45)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@17 A ~ B C ~@17 D ~@21 E@5 ~@8 F ~@23 G ~ B ~@7 H ~@22 I@5 ~@34>".pickRestart({
A: "~@4 a2 ~@3", B: "~@3 b2", C: "~ b2", D: "~@9 [b3,d4] ~@2",
E: "[g3,b3,d4,f4] ~ [g3,b3,d4,f4] ~ [g3,b3,d4,f4] ~ [g3,b3,d4,f4] ~", F: "~@9 b3 ~@2", G: "~@4 a3 ~@3",
H: "~@13 g2@7 ~@4", I: "~ f4 ~ f4 ~ f4 ~ f4",
})).s("gm_acoustic_guitar_steel").gain(0.14)
// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
A B C B D B C B C@2 E F B C@2 G C@2 H I E J C B C B F C E C A C@2 E D C H J E J C K C L C M N@2 O P O Q C@2 R S T S O
Q ~@5 U C@4 U F E V@2 A C E U W H J E J C B F C@2 U G C B C D E C@2 H J H X C@3 A C Y Z@2 AA@2 AB@2 AC AD AE AF AA@2
AG@2 AH AD AI@2 AA@2 AJ@2 AH AD AK AL@3 AM AN AO@2 AP@2 AQ AR AS@2 AT@2 AP@2 AQ AD AS@2 AU@2 AV@2 AW AX AS@2 AY@2 AZ@2
BA BB ~
>`.pickRestart({
A: "[b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@4 [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2", // G
B: "[b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [c4,d4,g4]@3 ~ [c4,d4,g4]@2 [c4,d4,g4]@3 ~ [c4,d4,g4]@2", // G Csus2
C: "[b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2", // G
D: "[b3,d4,g4]@4 [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2", // G
E: "[c4,e4,g4]@3 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 ~ [c4,e4,g4]@2", // C
F: "[b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@4 [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2", // G
G: "[c4,e4,g4]@3 ~ [c4,e4,g4]@2 [c4,e4,g4]@4 [c4,e4,g4]@2 [c4,e4,g4]@3 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 ~ [c4,e4,g4]@2", // C
H: "[c4,e4,g4]@3 ~ [c4,e4,g4]@2 [c4,e4,g4]@3 ~ [c4,e4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2", // C G
I: "[a3,c4,e4]@4 [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2", // Am
J: "[a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2", // Am
K: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@4 [a3,c4,f4]@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@2", // F
L: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@2", // F
M: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@4 [a3,c4,f4]@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@2", // F
N: "[[g3,c4,e4]@6 [g3,c4,e4]@6 [g3,c4,e4]@6 [g3,e4]@6 [g3,b3,e4]@3 ~ [g3,b3,e4]@2 [g3,b3,e4]@3 ~ [g3,b3,e4]@2 [g3,b3,e4]@3 ~ [g3,b3,e4]@2 [g3,b3,e4]@3 ~ [g3,b3,e4]@2, ~@3 c4@3 ~@2]/2", // C Em
O: "[a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2 [c4,e4]@3 ~ [g3,c4,e4]@2, ~@3 a3", // Am C
P: "[g3,b3,e4]@4 [g3,b3,e4]@2 [g3,b3,e4]@3 ~ [g3,b3,e4]@2 [g3,b3,e4]@3 ~ [g3,b3,e4]@2 [g3,b3,e4]@3 ~ [g3,b3,e4]@2", // Em
Q: "[a3,d4,f#4]@3 ~ [a3,d4,f#4]@2 [a3,d4,f#4]@3 ~ [a3,d4,f#4]@2 [a3,d4,f#4]@3 ~ [a3,d4,f#4]@2 [a3,d4,f#4]@3 ~ [a3,d4,f#4]@2", // D
R: "[g3,c4,e4]@3 ~ [g3,c4,e4]@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@2", // C
S: "[g3,b3,e4]@3 ~ [g3,b3,e4]@2 [g3,b3,e4]@3 ~ [g3,b3,e4]@2 [g3,b3,e4]@3 ~ [g3,b3,e4]@2 [g3,b3,e4]@3 ~ [g3,b3,e4]@2", // Em
T: "[a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@4 [a3,c4,e4]@2 [c4,e4]@3 ~ [g3,c4,e4]@2, ~@3 a3", // Am C
U: "[d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2", // G5 G
V: "[[d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [c4,d4,g4]@3 ~ [c4,d4,g4]@2 [c4,d4,g4]@3 ~ [d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2, ~@11 c4@7 ~@6]/2", // G5 G Csus2 G5 G
W: "[d4,g4]@4 [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2", // G5 G
X: "[a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2 [a3,c4,e4]@4 [a3,c4,e4]@2 [a3,c4,e4]@3 ~ [a3,c4,e4]@2", // Am
Y: "[b3,d4,g4]@4 [b3,d4,g4]@3 [b3,d4,g4]@4 [b3,d4,g4]@2 ~ [d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@4, ~@13 b3@4 ~@7", // G G5 G
Z: "[[b3,d4,g4]@3 [g3,c4,e4]@6 [g3,c4,e4]@6 [g3,c4,e4]@6 [g3,e4]@6 [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3, ~@7 c4@6 ~@3]/2", // G C Em
AA: "[[g3,b3,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [c4,e4]@3 [g3,c4,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3, ~@7 a3@2 ~@7]/2", // Em Am C Em
AB: "[[g3,b3,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [c4,e4]@3 [g3,c4,e4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3, ~@7 a3@2 ~@7]/2", // Em Am C D
AC: "[a3,d4,f#4]@3 [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3", // D G
AD: "[b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3", // G
AE: "[b3,d4,g4]@3 [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [g3,c4,e4]@3", // G C
AF: "[g3,c4,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3", // C Em
AG: "[[g3,b3,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [c4,e4]@3 [g3,c4,e4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3, ~@7 a3@2 ~@7]/2", // Em Am C D
AH: "[a3,d4,f#4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3", // D G
AI: "[[b3,d4,g4]@2 ~ [g3,c4,e4]@6 [g3,c4,e4]@6 [g3,c4,e4]@6 [g3,e4]@6 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3, ~@7 c4@6 ~@3]/2", // G C Em
AJ: "[[g3,b3,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [c4,e4]@3 [g3,c4,e4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3, ~@7 a3@2 ~@7]/2", // Em Am C D
AK: "[b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@3", // G
AL: "[b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@3", // G
AM: "[b3,d4,g4]@2 ~ [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [g3,c4,e4]@3", // G C
AN: "[g3,c4,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3", // C Em
AO: "[[g3,b3,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [c4,e4]@3 [g3,c4,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3, ~@7 a3@2 ~@7]/2", // Em Am C Em
AP: "[[g3,b3,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [c4,e4]@3 [g3,c4,e4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3, ~@7 a3@2 ~@7]/2", // Em Am C D
AQ: "[a3,d4,f#4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@3", // D G
AR: "[b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3", // G
AS: "[[b3,d4,g4]@2 ~ [g3,c4,e4]@6 [g3,c4,e4]@6 [g3,c4,e4]@6 [g3,e4]@6 [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3, ~@7 c4@6 ~@3]/2", // G C Em
AT: "[[g3,b3,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [c4,e4]@3 [g3,c4,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3, ~@7 a3@2 ~@7]/2", // Em Am C Em
AU: "[[g3,b3,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [c4,e4]@3 [g3,c4,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3, ~@7 a3@2 ~@7]/2", // Em Am C Em
AV: "[[g3,b3,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [c4,e4]@3 [g3,c4,e4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3, ~@7 a3@2 ~@7]/2", // Em Am C D
AW: "[a3,d4,f#4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3", // D G
AX: "[b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3", // G
AY: "[[g3,b3,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [c4,e4]@3 [g3,c4,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@2 ~ [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3, ~@7 a3@2 ~@7]/2", // Em Am C Em
AZ: "[[g3,b3,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@3 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 [a3,c4,e4]@3 [c4,e4]@3 [g3,c4,e4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3, ~@7 a3@2 ~@7]/2", // Em Am C D
BA: "[a3,d4,f#4]@3 [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3", // D G
BB: "[b3,d4,g4]!2 ~@6", // G
})).s("gm_acoustic_guitar_steel").gain(0.15)
// chords · epiano1
const epiano1 = note(`<
~@17 A B C D ~ E F G ~ H@2 I H@4 I H@2 J K J L M ~@35 N ~@3 O@2 P@2 Q R S@2 T U V Q W Q X Y Q Z O@2 P@2 AA@2 AB AC AB
AD@2 ~@60
>`.pickRestart({
A: "~@14 b4@2 c5@3 ~ c#5 d5@2 ~", B: "[g4,c5] [b4,d5]", C: "[c5,e5]@4 ~ [g4,b4,d5] ~@2", D: "d#5 ~@5 g5@18, [c5,e5]",
E: "~@9 d4 e4 g4", F: "d4", G: "[g3,b3,d4]", H: "[g3,b3,d4]/2", I: "[g3,c4,e4]", J: "~ [e4,g4] ~ [d4,g4], c4 b3",
K: "[a3,c4,e4]@3 [b3,d4,g4]", L: "[a3,c4,e4]", M: "[g3,b3,d4] [b3,d4,g4]", N: "~@4 b5@3 d6@9 ~@8",
O: "[e5@6 g5@6 d5@6 g5@5 c5@18 d5@6 ~]/2", P: "[e5@6 g5@6 d5@6 g5@5 c5@18 ~@7]/2", Q: "[g4,b4,d5]",
R: "~@9 [g4,c5,d5] ~@2", S: "[[g4,b4,d5]@39 [g4,b4,d5] ~ b4 g4 ~@5, ~@41 g5@2 ~@5]/2", T: "~ g4@3, [b4,d5]",
U: "~@15 b4@2 ~ g4@4 ~@2", V: "[g4,c5,e5]@7 ~", W: "~@17 [g4,b4,d5] [g4,c5] ~@5, ~@9 d5 ~@2",
X: "~@11 d5@7 ~@6, ~@3 g4@3 ~@2, ~@5 b4@4 ~@3", Y: "[g4,c5,e5]", Z: "~@2 [g4,b4,d5] ~ [g4,a4,d5] ~ [g4,b4,d5] ~",
AA: "[~@6 g3 ~ [f3,a3,c4]@8, ~@5 a3@3 f4@7 ~, ~@7 [g3,b3,d4]@2 ~@7]/2", AB: "[g3,b3,d4], g4@7 ~",
AC: "[f3,a3,c4], f4@7 ~", AD: "[g4@20 f4@7 ~@21, [g3,b3,d4]@9 ~@7]/2",
})).s("gm_epiano1").gain(0.24)
// chords · synth strings 2
const synth_strings_2 = note(`<
~@40 A B C B C D E F G F G H I@2 E F G F G H J@7 ~@41 K@6 L@8 M@8 N@8 O@8 P@16 Q@7
>`.pickRestart({
A: "~ [b3,d4,g4]", B: "[a3,c4,f4]", C: "[b3,d4,g4]", D: "~ e4, [a3,c4,f4]", E: "[e4,g4,c5]", F: "[e4,g4,b4]",
G: "[e4,a4,c5]", H: "[d4,f#4,a4]", I: "[d4,f4,g4,b4]/2", J: "[d4,f4,g4,b4,g5]/7",
K: "[~ [e4,g4,c5]@8 [e4,g4,b4]@8 [e4,a4,c5]@8 [e4,g4,b4]@8 [e4,a4,c5]@8 [d4,f#4,a4]@7]/6", // C Em Am Em Am D
L: "[~ [d4,f4,g4,b4]@16 [e4,g4,c5]@8 [e4,g4,b4]@8 [e4,a4,c5]@8 [e4,g4,b4]@8 [e4,a4,c5]@8 [d4,f#4,a4]@7]/8", // G7 C Em Am Em Am D
M: "[~ [d4,g4,b4]@16 [e4,g4,c5]@8 [e4,g4,b4]@8 [e4,a4,c5]@8 [e4,g4,b4]@8 [e4,a4,c5]@8 [d4,f#4,a4]@7]/8", // G C Em Am Em Am D
N: "[~ [d4,f4,g4,b4,g5]@48 [e4,g4,c5]@8 [e4,g4,b4]@7]/8", // G7 C Em
O: "[~ [e4,a4,c5]@8 [e4,g4,b4]@8 [e4,a4,c5]@8 [d4,f#4,a4]@8 [d4,g4,b4]@16 [e4,g4,c5]@8 [e4,g4,b4]@7]/8", // Am Em Am D G C Em
P: "[~ [e4,a4,c5]@8 [e4,g4,b4]@8 [e4,a4,c5]@8 [d4,f#4,a4]@8 [d4,f4,g4,b4]@16 [e4,g4,c5]@8 [e4,g4,b4]@7]/8", // Am Em Am D G7 C Em
Q: "[~ [e4,a4,c5]@8 [e4,g4,b4]@8 [e4,a4,c5]@8 [d4,f#4,a4]@8 [d4,f4,g4,b4]@16 ~@7]/7", // Am Em Am D G7
})).s("gm_synth_strings_2").gain(0.14)
// other · string ensemble 1
const string_ensemble_1 = note("<~@65 A@8 ~@96>".pickRestart({
A: "g6/8",
})).s("gm_string_ensemble_1").gain(0.19)
// other · clarinet
const clarinet = note(`<
~@59 A B C D E B C F C F C F C G H ~ F I J ~@30 K L@6 M@2 L@6 M@2 N@6 O@2 P Q R@2 L@6 M@2 L@6 M@2 L@6 M@2 S@6 T@2
>`.pickRestart({
A: "~@23 g5", B: "a5@21 ~ a5@2, ~@21 g5@2 ~", C: "g5", D: "f5@21 ~ f5@2, ~@21 e5@2 ~",
E: "~@2 d5@2 d5 e5@3, e5@3 ~@5", F: "a5", G: "a5 ~", H: "g5 ~", I: "g5@3 ~", J: "[d5,f5] ~ [d5,f5]@2", K: "~@7 c5",
L: "[d5 e5@2 g5@2 g5@2 a5@2 b5@2 g5@2 e5@2 g5@2 a5@2 a5@2 a5@2 g5@2 b5@2 g5@2 e5@2 g5@2 g5@2 f#5@2 f#5@4 d5@7]/6",
M: "[e5 f5@4 g5@4 e5@6 c5]/2",
N: "[d5 e5@2 g5@2 g5@2 a5@2 b5@2 g5@2 e5@2 g5@2 a5@2 a5@2 a5@2 g5@2 b5@2 g5@2 e5@2 g5@2 g5@2 f#5@2 f#5@4 a5@7]/6",
O: "[g5@2 a5 g5@24 f5@21]/2", P: "~ f5@2 e5@6 d5@3 e5@12, e5 ~@11", Q: "~ a5@7",
R: "[g5@2 ~ g5@24 ~@18 c5@3, ~ a5 ~@22]/2",
S: "[d5 e5@2 g5@2 g5@2 a5@2 b5@2 ~@2 e5@2 g5@2 a5@2 a5@2 a5@2 g5@2 b5@2 g5@2 e5@2 g5@2 g5@2 f#5@2 f#5@4 d5@7]/6",
T: "[e5 f5@4 g5@4 ~@7]/2",
})).s("gm_clarinet").gain(0.32)
// chords · percussive organ
const percussive_organ = note("<~@60 A@7 ~@63 B@7 ~@32>".pickRestart({
A: "[d5,f5,a5,b5]/7", B: "[~ [d5,f5,a5,b5]@48 ~@7]/7",
})).s("gm_percussive_organ").gain(0.14)
// other · alto sax
const alto_sax = note("<~@142 A@2 B C D E F G H@3 C D E F G H@3 C D E F G I@3>".pickRestart({
A: "[c5 c6@15]/2", B: "c5 c#5 d5 e5@2 ~@2 e5 ~ d5@2 ~@4 c5@2 ~@4 d5@2 ~",
C: "~ e5@4 ~@2 e5 ~ d5@2 ~@2 c5@2 d5@3 ~ e5@2 ~@3", D: "~ e5@5 ~ e5@2 d5@2 ~@4 c5@3 ~@3 d5@2 ~",
E: "~ e5@4 ~@2 e5@2 d5@2 ~@2 c5@2 d5@3 ~ e5 ~@4", F: "~ e5@2 ~@4 e5@2 d5@2 ~@4 c5@2 ~@4 e5@3",
G: "~ d5@7 e5@2 ~@5 c5@2 ~@4 e5@3", H: "[~ d5@20 c6@30 e5@2 ~@2 e5 ~ d5 ~@5 c5@2 ~@4 d5@2 ~]/3",
I: "[~ d5@20 c6@30 ~@21]/3",
})).s("gm_alto_sax").gain(0.68)
// other · synth strings 1
const synth_strings_1 = note(`<
~@46 A B C D C E F G H B C D C E I@6 ~@42 J K@6 L@2 K@6 L@2 M@6 ~@5 N K@6 L@2 K@6 L@2 K@6 L@2 K@6 O ~
>`.pickRestart({
A: "~@6 c5 d5", B: "e5 g5!2 a5", C: "b5 g5 e5 g5", D: "a5!3 g5", E: "g5 f#5 f#5@2", F: "d5@7 e5", G: "f5 g5",
H: "e5@6 c5 d5", I: "a5/6", J: "~@7 c5",
K: "[d5 e5@2 g5@4 a5@2 b5@2 g5@2 e5@2 g5@2 a5@6 g5@2 b5@2 g5@2 e5@2 g5@4 f#5@2 f#5@4 d5@7]/6",
L: "[e5 f5@4 g5@4 e5@6 c5]/2",
M: "[d5 e5@2 g5@4 a5@2 b5@2 g5@2 e5@2 g5@2 a5@6 g5@2 b5@2 g5@2 e5@2 g5@4 f#5@2 f#5@4 ~@7]/6", N: "~ e5@6 c5",
O: "e5 ~@7",
})).s("gm_synth_strings_1").gain(0.32)
// drums · kick
const kick = s("bd").struct(`<
~@25 A ~ B@3 C B@2 D@2 C B@3 D@2 E D@3 F D G H D@2 E D E D@5 B I J I J I B ~@15 D B D B K L D B L@2 B K B D E B E B@4
D L D@3 B M N O P@2 Q P@9 Q P@6 R@5 S P@7 Q P@7 T R@7 U R@7 V ~
>`.pickRestart({
A: "~@5 x ~@2 x ~@3", B: "x", C: "x ~@4 x ~@2", D: "x ~@10 x", E: "x ~@7 x ~@2 x", F: "x ~@4 x ~@6", G: "x ~@8 x ~ x",
H: "x ~@2 x ~@7 x", I: "x ~@4 x!2 ~@4 x", J: "x ~@4 x!2 ~ x ~@2 x", K: "x ~ x", L: "x ~@2 x", M: "~ x ~@6",
N: "~ x ~ x ~@17 x ~@2", O: "~ x ~ x ~@5 x ~@14", P: "~ x ~ x ~@20", Q: "~ x ~ x ~@15 x ~@4",
R: "~ x ~ x ~@9 x ~ x ~@8", S: "~ x ~ x ~@9 x ~@10", T: "~ x ~ x ~@3 x ~@16", U: "~ x ~ x ~@8 x ~@11", V: "~ x ~@22",
})).gain(0.4)
// drums · snare
const snare = s("sd").struct(`<
~@25 A@20 B A@14 C@5 D ~@14 A@27 E F@7 G F@7 H F@5 I H@5 J F@7 H F@7 K H@7 L H@7 ~@2
>`.pickRestart({
// … 51 more lines
More by Dalla
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.