0:00/0:00
// Gli uccelli — Battiato
// 117 bpm, 4/4, key E minor. 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 135 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(117/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 · acoustic bass
const bass = note("<A B C D A B C D A B C D A B C D E D F G H I F G H I ~@109>".pickRestart({
A: "e2", B: "c2", C: "g2", D: "d2", E: "a2", F: "g2@7 ~ g2@7 ~", G: "d2@7 ~ d2@7 ~", H: "e2@7 ~ e2@7 ~",
I: "c2@7 ~ c2@7 ~",
})).s("gm_acoustic_bass").gain(0.2)
// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~@28 A B C D A B C D ~@60 E F G H I F G H J ~@30>".pickRestart({
A: "e4 f#4 e4 f#4 e4 f#4 e4 f#4", B: "g4 a4 g4 a4 g4 a4 g4 a4", C: "b4 g4 b4 g4 b4 g4 b4 g4",
D: "a4 b4 a4 b4 a4 b4 a4 b4", E: "~@7 e4", F: "f#4 e4 f#4 e4 f#4 e4 f#4 g4", G: "a4 g4 a4 g4 a4 g4 a4 b4",
H: "g4 b4 g4 b4 g4 b4 g4 a4", I: "b4 a4 b4 a4 b4 a4 b4 e4", J: "b4 a4 b4 a4 b4 a4 b4 ~",
})).s("gm_acoustic_guitar_steel").gain(0.3).pan(0.6)
// other · pad metallic
const pad_metallic = note("<~@8 A B C D A B C D E D ~@117>".pickRestart({
A: "e4 d4 e4 f#4", B: "g4 f#4 g4 a4", C: "b4@3 g4", D: "a4", E: "a4@5 b4@5 ~ a4@5 g4@5 e4@5 ~ g4@5",
})).s("gm_pad_metallic").gain(0.4)
// other · whistle
const whistle = note("<~@55 A B C D E F G ~@27 H@2 I J@4 ~@14 K@2 L@2 M N@2 O P@2 Q@3 R S@3 T U ~@6>".pickRestart({
A: "~@14 d5 e5", B: "d5@16 e5@5 f#5@5 ~ g5@5", C: "a5@16 b5@5 f#5@5 ~ e5@5", D: "d5@3 e5 f#5@2 g5@2",
E: "g5@5 f#5@5 ~ e5@5 g5@5 f#5@5 ~ e5@5", F: "a4@14 b4 c#5", G: "b4",
H: "[~@32 e5@2 d5@15 ~ e5@5 f#5@5 g5@4, ~@31 d5@2 ~@31]/2", I: "~ a5@15 ~ b5@5 f#5@5 e5@5",
J: "[d5@12 e5@4 f#5@7 g5@7 ~ g5@5 f#5@5 ~ e5@5 g5@5 f#5@5 e5@5 a4@31 b4@31 ~@4]/4",
K: "[~@17 c5@2 ~ e5@2 f5@2 g5@2 ~ b5@2 c5@2 d5@2 ~ f5@2 e6 f#6 g6@2 ~@6 b5 b6 d7 e7 b6@4 ~ e6 g6 a6 g6 ~@3 d6 f#6, ~@19 d5@2 ~@5 a5@2 ~@5 e5@2 ~@10 g5@2 ~@17]/2",
L: "[g6 d7 ~ e7 ~ d7 ~ d7 ~@2 d6 f#6 d7 a6 ~@3 d7 f#7 g7 a7 [f#7,g7] d7@2 ~ c#7 d7 a6 g6 a6 g6 f#6@2 ~ e6 g6 b6@2 ~@3 e6 g6 b6 d7 b6@2 ~@3 e6 g6 a6 [g6,a6] g6 a6@3 ~ g6@3 ~@2]/2", // Gmaj7 Gsus2
M: "c6 e6 g6@2 ~@2 c6 e6 g6 c7@2 ~@2 c6 e6 [g6,c7] g6 e6 c6@2 ~@4 g6 a6 g6@2 a6 a6@2 b6", // C5
N: "[~ b6@2 d7 d7@2 b6 ~@2 a6 ~ a6@2 g6 ~ d6@3 g6@2 a6@2 f#6@2 f#6 a6 d7@2 ~ [f#6,a6] d7 a7@2 ~@6 f#6 d6 f#6 g6@3 ~ f#6@3 ~@2 g5@2 b5@2 ~ g6@2 ~ a6@2 g6@2 g6, ~@8 b6@2 ~@32 a6 ~@12 e6@2 ~@7]/2", // F#m
O: "[g6,a6] a6 [g6,a6]!3 g6 [g6,a6]!3 a6 [c6,e6] g6 b6 a6@2 ~@3 c6 e6 g6 c7 e7 c8@9, ~@23 g7 ~@8", // Gsus2 C
P: "[~@2 b7@2 a7 a7@2 g7 ~ g7@2 ~ b5@2 d6@2 ~ a6@2 g6@2 a6@2 ~ b4@2 d5@2 g5@2 ~ d6@2 e6@2 d6@2 ~@6 f#5@2 a5@2 d6@2 ~ d6@2 ~ e6@2 f#6@2 g6@2 ~ a6@2 g6@2, ~@11 g5@2 ~@3 g6@2 ~@12 b5@2 ~@10 d5@2 ~@5 c#6@2 ~@13]/2",
Q: "[~ b5 e6 g6 b6@7 ~ [b5,e6] g6 b5@3 ~ [a5,b5] a5@3 ~ g5 a5 g5@3 ~@3 d5@2 e5@2 f5@2 ~ a5@2 b5@2 c5@2 ~ e5@2 f5@2 e6 f#6 g6@2 ~@4 g5@2 b5 b6 d7 e7 b6@4 ~ e6 g6 [g6,a6] ~@4 d6 f#6 g6 d7 ~ e7 ~ d7!2 ~@3 d6 f#6 d7 a6 ~@3 d7 f#7, ~@30 c5@2 ~@5 g5@2 ~@5 d5@2 ~@50]/3", // E5 Asus2 Gsus2
R: "[g7,a7] g7 f#7 d7@2 ~ c#7 d7 a6 g6 a6 g6 f#6@2 ~ e6 g6 b6@2 ~@3 e6 g6 b6 d7 b6@2 ~@3 e6", // Gsus2
S: "[g6 [g6,a6] a6 g6 a6@3 g6@3 ~@3 c6 g6@2 ~@3 c6 [e6,g6] c7@2 ~@3 c6 [e6,g6] c7 g6 e6 c6@2 ~@3 g6 ~ a6 ~ a6 ~ a6@2 b6 ~@2 d7 ~ d7@2 b6 ~@2 a6 ~ a6@2 g6 d6@3 ~ g6@2 ~ f#6@2 ~ f#6 a6 d7@2 f#6 a6 d7 a7@2 ~@6 f#6 [d6,f#6] a6 g6@3 ~ f#6@3 ~@2, ~@14 e6 ~@24 g6@2 ~@5 b6@2 ~@5 b6@2 ~@10 a6@2 ~@29]/3", // Gsus2 Em D
T: "g5@2 ~ e6@2 g6@2 a6@2 ~ g6@2 g6 [g6,a6]!3 a6 [g6,a6]!2 g6 [g6,a6]!2 [c6,a6] e6 g6 b6 a6@2 ~@3 c6, ~ b5 ~@14", // Gsus2 F
U: "e6 g6 c7 [e7,g7] c8@10 ~@2 a7 ~ a7@2 g7 ~ g7@10, ~@15 b7@2 ~@15", // Em
})).s("gm_whistle").gain(0.4)
// chords · string ensemble 2
const string_ensemble_2 = note(`<
A B C D A B C D A B C D A B C D E F G H I J G H I K@3 ~@19 L@2 M N L@2 M ~ O F P Q R S T@2 ~@18 U@2 V@7 W X Y@5 ~@10
Z@6 AA@7 AB@6 AC@8 ~
>`.pickRestart({
A: "[e3,b3]", B: "[c3,c4]", C: "[g3,b3,d4]", D: "[d3,f#3,a3]", E: "[e3,a3,c4,e4]", F: "[d3,a3,d4,f#4]", G: "[g2,b3]",
H: "[d2,f#3]", I: "[e2,b3]", J: "[c2,e4]", K: "[c2 e2@2, e4]/3", L: "[c4 e4 f4 g4@2 a4 g4 f4]/2", M: "e4 d4 c4@2",
N: "f4@5 e4@5 ~ d4@5 f4@5 e4@5 ~ d4@5", O: "a1", P: "[c#3,e3,c#4,a4]", Q: "[f#3,b3,d4,f#4]", R: "[g3,b3,d4,g4]",
S: "[d3,a3,d4,f#4]@31 ~", T: "[[g#3,b3,e4]@63 ~]/2", U: "[~@12 c4@8 e4@7 f4@8 g4@15 ~ a4@7 g4@6]/2",
V: "[~@2 f4@8 e4@8 d4@7 c4@15 ~ f4@5 e4@5 d4@5 f4@5 e4@5 ~ d4@5 c4@7 e4@8 f4@8 g4@15 a4@8 g4@8 f4@8 e4@7 d4@8 c4@15 f4@5 ~ e4@5 d4@5 f4@5 e4@5 d4@5 a1@29]/7",
W: "~ [d3,a3,d4,f#4]@15", X: "~ [c#3,e3,c#4,a4]@31",
Y: "[[f#3,b3,d4,f#4]@31 [g3,b3,d4,g4]@31 [d3,a3,d4,f#4]@30 ~ [g#3,b3,e4]@62 ~@5]/5", // Bm G D E
Z: "[~@28 d5@7 ~@7 d5@7 ~@7 a4@7 ~@7 a4@7 ~@6 b4@7 ~@7 b4@7 ~@7 e4@7 ~@7 f#4@7 g4@3 a4@3 ~ d5@7 ~@7 d5@7 ~@7 a4@7 ~@7 a4@7 ~@4, ~@28 [g2,b3]@28 [d2,a3]@27 [e2,b3]@28 [c2,c4]@28 [g2,b3]@28 [d2,a3]@25]/6", // G D5 E5 C G D5
AA: "[~@2 b4@7 ~@7 b4@7 ~@7 e4@7 ~@7 f#4@7 g4@3 a4@3 ~ d5@7 ~@7 d5@7 ~@7 a4@7 ~@6 a4@7 ~@7 b4@7 ~@7 b4@7 ~@7 e4@7 ~@7 f#4@7 g4@3 a4@3 ~ d5@7 ~@7 d5@7 ~@7 a4@7 ~@6 a4@7 ~@7, ~@2 [e2,b3]@28 [c2,c4]@28 [g2,b3]@28 [d2,a3]@27 [e2,b3]@28 [c2,c4]@28 [g2,b3]@28 [d2,a3]@27]/7", // E5 C G D5 E5 C G D5
AB: "[b4@7 ~@7 b4@7 ~@7 e4@7 ~@7 f#4@7 g4@3 a4@3 ~ d5@7 ~@7 d5@7 ~@6 a4@7 ~@7 a4@7 ~@7 b4@7 ~@7 b4@7 ~@7 e4@7 ~@7 f#4@7 g4@3 a4@3 ~ d5@7 ~@7 d5@7 ~@4, [e2,b3]@28 [c2,c4]@28 [g2,b3]@27 [d2,a3]@28 [e2,b3]@28 [c2,c4]@28 [g2,b3]@25]/6", // E5 C G D5 E5 C G
AC: "[~@2 a4@7 ~@7 a4@7 ~@7 b4@7 ~@7 b4@7 ~@7 e4@7 ~@7 f#4@7 g4@3 a4@3 ~ d5@7 ~@6 d5@7 ~@7 a4@7 ~@7 a4@7 ~@7 b4@7 ~@7 b4@7 ~@7 c5@15 b4@7 a4@8 [g2,d3,b3,g4]@57, ~@2 [d2,a3]@28 [e2,b3]@28 [c2,c4]@28 [g2,b3]@27 [d2,a3]@28 [e2,b3]@28 [c2,c4]@30 ~@57]/8", // G D5 E5 C G D5 E5 C
})).s("gm_string_ensemble_2").gain(0.37)
// other · string ensemble 1
const string_ensemble_1 = note(`<
A B C D A B C D A B C D A B C D ~@2 E F G H E F I J K@2 ~@23 L M N ~@53 O@3 P@2 Q R@2 S T@2 U V W@3 X@2 Y Z@2 AA AB@2
AC@2 ~@2
>`.pickRestart({
A: "e5@2 e4 ~ e5@2 e4 ~", B: "c5@2 e4 ~ c5@2 e4 ~", C: "b4@2 d4 ~ b4@2 d4 ~", D: "f#4@2 d4 ~ f#4@2 d4 ~",
E: "[g3,g4]@16 [a3,a4]@5 [b3,b4]@5 ~ [c4,c5]@5", F: "[d4,d5]@16 [e4,e5]@5 [b3,b4]@5 ~ [a3,a4]@5",
G: "[g3,g4]@3 [a3,a4] [b3,b4]@2 [c4,c5]@2", H: "[c4,c5]@5 [b3,b4]@5 ~ [a3,a4]@5 [c4,c5]@5 [b3,b4]@5 ~ [a3,a4]@5",
I: "[g3,g4]@3 [a3,f#4,a4] [b3,b4]@2 [c4,c5]@2, ~@16 e4@15 ~", // G D B C
J: "[e4,c5]@5 [d4,b4]@5 ~ [c4,a4]@5 [e4,c5]@5 [d4,b4]@5 ~ [c4,a4]@5", K: "[b3,g#4]/2", L: "c5@31 ~", M: "d5@3 e5",
N: "a4 c5@3", O: "[~@28 g5@7 b4@3 ~@4 g5@7 b4@3 ~@4 f#5@7 a4@3 ~@4 f#5@7 a4@3 ~@3 e5@7 g4@3 ~@3]/3",
P: "[~ e5@7 g4@3 ~@4 c5@7 e4@3 ~@4 c5@7 e4@3 ~@4 g5@7 b4@3 ~@4 g5@7]/2", Q: "b4@3 ~@4 f#5@7 a4@3 ~@4 f#5@6 a4@3 ~@2",
R: "[~@2 e5@7 g4@3 ~@4 e5@7 g4@3 ~@4 c5@7 e4@3 ~@4 c5@7 e4@3 ~@4 g5@6]/2", S: "~ b4@3 ~@4 g5@7 b4@3 ~@4 f#5@7 a4@3",
T: "[~@3 f#5@7 a4@3 ~@4 e5@7 g4@3 ~@4 e5@7 g4@3 ~@4 c5@7 e4@3 ~@4 c5@5]/2", U: "~@2 e4@3 ~@4 g5@7 b4@3 ~@4 g5@7 b4@2",
V: "~@5 f#5@6 a4@3 ~@4 f#5@7 a4@3 ~@4",
W: "[e5@7 g4@3 ~@4 e5@7 g4@3 ~@4 c5@7 e4@3 ~@4 c5@7 e4@3 ~@4 g5@7 b4@3 ~@4 g5@7 b4@3 ~@3 f#5@7 a4@3 ~@3]/3",
X: "[~ f#5@7 a4@3 ~@4 e5@7 g4@3 ~@4 e5@7 g4@3 ~@4 c5@7 e4@3 ~@4 c5@7]/2", Y: "e4@3 ~@4 g5@7 b4@3 ~@4 g5@6 b4@3 ~@2",
Z: "[~@2 f#5@7 a4@3 ~@4 f#5@7 a4@3 ~@4 e5@7 g4@3 ~@4 e5@7 g4@3 ~@4 c5@6]/2", AA: "~ e4@3 ~@4 c5@7 e4@3 ~@4 g5@7 b4@3",
AB: "[~@3 g5@7 b4@3 ~@4 f#5@7 a4@3 ~@4 f#5@7 a4@3 ~@4 e5@7 g4@3 ~@4 e5@5]/2",
AC: "[~@2 g4@3 ~@4 c5@7 e4@4 ~@4 c5@7 e4@4 ~@29]/2",
})).s("gm_string_ensemble_1").gain(0.42)
// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<[g4 ~ g4 ~]!2 ~@2 [g4 ~ g4 ~]!2 ~@2 [g4 ~ g4 ~]!2 ~@2 [g4 ~ g4 ~]!2 ~@121>")
.s("gm_string_ensemble_1").gain(0.24)
// chords · piano
const piano = note("<~@4 A B C D A B C D A B C D E F G@8 ~@109>".pickRestart({
A: "e4 f#4 e4 f#4 e4 f#4 e4 f#4", B: "g4 a4 g4 a4 g4 a4 g4 a4", C: "b4 g4 b4 g4 b4 g4 b4 g4",
D: "a4 b4 a4 b4 a4 b4 a4 b4", E: "[a3,c4,e4]@31 ~", F: "[a3,d4,f#4]",
G: "[~@253 g3@2 e3, g2@5 b4@4 ~@2 b4@4 d3@2 d3@6 d5@2 d5@4 b3@4 ~@2 a3@4 a4@2 a4@4 a3@4 ~@2 a3@4 a4@2 a4@4 a3@4 ~@2 b3@4 b4@2 b4@4 b3@4 ~@2 b3@4 b4@2 b4@4 b3@4 ~@2 g3@4 g4@2 g4@4 g3@4 ~@2 g3@4 g4@2 g4@4 g3@4 ~@2 b3@4 d5@2 d5@4 ~@7 g4@3 d5@2 d5@4 ~@7 d4@3 a4@2 a4@4 a3@4 ~@2 a3@4 a4@2 a4@4 a3@4 ~@2 b3@4 b4@2 b4@4 b3@4 ~@2 b3@4 b4@2 b4@4 b3@4 ~@2 g3@4 g4@2 g4@4 g3@4 ~@2 g3@4 g4@2 g4@4 ~@3, ~ d3@6 d5@2 d5@4 b3@4 ~@2 b3@5 ~@4 g4@4 d3@5 f#4@4 ~@2 f#4@4 f#3@2 f#3@7 ~@4 d4@4 e3@5 g4@4 ~@2 g4@4 g3@2 g3@7 ~@4 e4@4 c3@5 e4@4 ~@2 e4@4 e3@2 e3@7 ~@4 c4@4 g2@5 b4@4 ~@2 b4@4 d3@2 d3@7 ~@5 b3@4 ~@2 a3@5 d5@4 ~@8 d4@4 d5@4 ~@8 e4@4 e5@4 ~@8 e4@4 e5@4 ~@8 c4@4 c5@4 ~@8 c4@4 c5@4 ~@4, ~@3 b3@5 ~@4 g4@4 g2@5 b4@4 ~@2 b4@4 g3@2 f#3@7 ~@4 d4@4 d3@5 f#4@4 ~@2 f#4@4 f#3@2 g3@7 ~@4 e4@4 e3@5 g4@4 ~@2 g4@4 g3@2 e3@7 ~@4 c4@4 c3@5 e4@4 ~@2 e4@4 e3@2 d3@7 ~@5 b3@4 ~@2 b3@5 g5@4 g4@4 d3@5 f#4@4 ~@2 f#4@4 f#3@2 f#3@7 ~@4 d4@4 e3@5 g4@4 ~@2 g4@4 g3@2 g3@7 ~@4 e4@4 c3@5 e4@4 ~@2 e4@4 e3@2 e3@7 ~@4 c4@4, ~@4 g4@4 g5@4 ~@8 g4@4 g5@4 ~@8 d4@4 d5@4 ~@8 d4@4 d5@4 ~@8 e4@4 e5@4 ~@8 e4@4 e5@4 ~@8 c4@4 c5@4 ~@8 c4@4 c5@4 ~@8 g4@4 g5@4 g4@4 g2@5 b4@4 ~@2 b4@4 g3@2 f#3@7 ~@4 d4@4 d3@5 f#4@4 ~@2 f#4@4 f#3@2 g3@7 ~@4 e4@4 e3@5 g4@4 ~@2 g4@4 g3@2 e3@7 ~@4 c4@4 c3@5 e4@4 ~@2 e4@4 ~]/8",
})).s("gm_piano").gain(0.4)
// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
~@28 A B C D A B C D E F ~ G H I J G H I J K L M N K L M N O P Q R S P T ~@33 U V W X Y Z W X Y AA AB@2 ~@28
>`.pickRestart({
A: "[e2,b2,e3,g3]@5 ~@3 e4@3 ~ [e3,g3,b3,e4]@3 ~ [e2,b2,e3,g3]@7 ~ [e3,g3,b3,e4]@3 ~ [e3,g3,b3,e4]@3 ~, ~@3 e3@2 ~@11, ~@7 [g3,b3]@4 ~@21", // Em G
B: "[c3,e3,g3]@5 ~@3 e4@3 ~ [e3,g3,c4,e4]@3 ~ [c3,e3,g3]@7 ~ [e3,g3,c4,e4]@3 ~ [e3,g3,c4,e4]@3 ~, ~@3 e3@2 ~@11, ~@7 [g3,c4]@4 ~@21", // C C5
C: "[g2,d3,g3,b3]@5 ~@3 g4@3 ~ [g3,b3,d4,g4]@3 ~ [g2,d3,g3,b3]@7 ~ [g3,b3,d4,g4]@3 ~ [g3,b3,d4,g4]@3 ~, ~@3 g3@2 ~@11, ~@7 [b3,d4]@4 ~@21", // G Bm
D: "[d3,a3]@5 ~@3 f#4@3 ~ [d3,a3,d4,f#4]@3 ~ [d3,a3]@7 ~ [d3,a3,d4,f#4]@3 ~ [d3,a3,d4,f#4]@3 ~, ~@3 [d3,a3]@2 ~@11, ~@7 d4@4 ~@21", // D5 D D5 D D5
E: "[a2,e3,a3,c4]@5 ~@3 e4@3 ~ [e3,a3,c4,e4]@3 ~ [a2,e3,a3,c4]@7 ~ [e3,a3,c4,e4]@3 ~ [e3,a3,c4,e4]@3 ~, ~@3 e3@2 ~@11, ~@7 [a3,c4]@4 ~@21", // Am
F: "~ e4@31, [a2,e3,a3,c#4]", // A
G: "[e3,g#3,b3,e4]@5 ~ [e3,g#3,b3,e4] ~ [e3,g#3,b3,e4]@2 ~@2 [e3,g#3,b3,e4]@3 ~ [e3,g#3,b3,e4]@3 ~ [e3,g#3,b3,e4]@3 ~ [e3,g#3,b3,e4]@3 ~ [e3,g#3,b3,e4]@3 ~", // E
H: "[f#3,a3,c#4,f#4]@5 ~ [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4]@2 ~@2 [f#3,a3,c#4,f#4]@3 ~ [f#3,a3,c#4,f#4]@3 ~ [f#3,a3,c#4,f#4]@3 ~ [f#3,a3,c#4,f#4]@3 ~ [f#3,a3,c#4,f#4]@3 ~", // F#m
I: "[f#3,b3,d#4,f#4]@5 ~ [f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,f#4]@2 ~@2 [f#3,b3,d#4,f#4]@3 ~ [f#3,b3,d#4,f#4]@3 ~ [f#3,b3,d#4,f#4]@3 ~ [f#3,b3,d#4,f#4]@3 ~ [f#3,b3,d#4,f#4]@3 ~", // B
J: "[f#3,a3,d#4,f#4]@5 ~ [f#3,a3,d#4,f#4] ~ [f#3,a3,d#4,f#4]@2 ~@2 [f#3,a3,d#4,f#4]@3 ~ [f#3,a3,d#4,f#4]@3 ~ [f#3,a3,d#4,f#4]@3 ~ [f#3,a3,d#4,f#4]@3 ~ [f#3,a3,d#4,f#4]@3 ~", // D#dim
K: "[e3,g3,c4,e4]@5 ~ [e3,g3,c4,e4] ~ [e3,g3,c4,e4]@2 ~@2 [e3,g3,c4,e4]@3 ~ [e3,g3,c4,e4]@3 ~ [e3,g3,c4,e4]@3 ~ [e3,g3,c4,e4]@3 ~ [e3,g3,c4,e4]@3 ~", // C
L: "[d3,g3,b3,g4]@5 ~ [d3,g3,b3,g4] ~ [d3,g3,b3,g4]@2 ~@2 [d3,g3,b3,g4]@3 ~ [d3,g3,b3,g4]@3 ~ [d3,g3,b3,g4]@3 ~ [d3,g3,b3,g4]@3 ~ [d3,g3,b3,g4]@3 ~", // G
M: "[e3,a3,c4,e4]@5 ~ [e3,a3,c4,e4] ~ [e3,a3,c4,e4]@2 ~@2 [e3,a3,c4,e4]@3 ~ [e3,a3,c4,e4]@3 ~ [e3,a3,c4,e4]@3 ~ [e3,a3,c4,e4]@3 ~ [e3,a3,c4,e4]@3 ~", // Am
N: "[f3,a3,c4,f4]@5 ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4]@2 ~@2 [f3,a3,c4,f4]@3 ~ [f3,a3,c4,f4]@3 ~ [f3,a3,c4,f4]@3 ~ [f3,a3,c4,f4]@3 ~ [f3,a3,c4,f4]@3 ~", // F
O: "[e3,a3,c#4,e4]@5 ~ [e3,a3,c#4,e4] ~ [e3,a3,c#4,e4]@2 ~@2 [e3,a3,c#4,e4]@3 ~ [e3,a3,c#4,e4]@3 ~ [e3,a3,c#4,e4]@3 ~ [e3,a3,c#4,e4]@3 ~ [e3,a3,c#4,e4]@3 ~", // A
P: "[f#3,a3,d4,f#4]@5 ~ [f#3,a3,d4,f#4] ~ [f#3,a3,d4,f#4]@2 ~@2 [f#3,a3,d4,f#4]@3 ~ [f#3,a3,d4,f#4]@3 ~ [f#3,a3,d4,f#4]@3 ~ [f#3,a3,d4,f#4]@3 ~ [f#3,a3,d4,f#4]@3 ~", // D
Q: "[e3,a3,c#4,a4]@5 ~ [e3,a3,c#4,a4] ~ [e3,a3,c#4,a4]@2 ~@2 [e3,a3,c#4,a4]@3 ~ [e3,a3,c#4,a4]@3 ~ [e3,a3,c#4,a4]@3 ~ [e3,a3,c#4,a4]@3 ~ [e3,a3,c#4,a4]@3 ~", // A
R: "[f#3,b3,d4,f#4]@5 ~ [f#3,b3,d4,f#4] ~ [f#3,b3,d4,f#4]@2 ~@2 [f#3,b3,d4,f#4]@3 ~ [f#3,b3,d4,f#4]@3 ~ [f#3,b3,d4,f#4]@3 ~ [f#3,b3,d4,f#4]@3 ~ [f#3,b3,d4,f#4]@3 ~", // Bm
S: "[g3,b3,d4,g4]@5 ~ [g3,b3,d4,g4] ~ [g3,b3,d4,g4]@2 ~@2 [g3,b3,d4,g4]@3 ~ [g3,b3,d4,g4]@3 ~ [g3,b3,d4,g4]@3 ~ [g3,b3,d4,g4]@3 ~ [g3,b3,d4,g4]@3 ~", // G
T: "[g#3,b3,e4,g#4]", U: "~@7 [e2,b2,e3,g#3]",
V: "~@4 e4@3 ~ [e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g#3]@7 ~ [e3,g#3,b3,e4]@3 ~ [e3,g#3,b3,e4]@3 ~ [e2,b2,e3,g3]@4, ~ e3@2 ~@13, ~@3 [g#3,b3]@4 ~@25", // E Em G#m
W: "~@4 e4@3 ~ [e3,g3,b3,e4]@3 ~ [e2,b2,e3,g3]@7 ~ [e3,g3,b3,e4]@3 ~ [e3,g3,b3,e4]@3 ~ [c3,e3,g3]@4, ~ e3@2 ~@13, ~@3 [g3,b3]@4 ~@25", // Em C G
X: "~@4 e4@3 ~ [e3,g3,c4,e4]@3 ~ [c3,e3,g3]@7 ~ [e3,g3,c4,e4]@3 ~ [e3,g3,c4,e4]@3 ~ [g2,d3,g3,b3]@4, ~ e3@2 ~@13, ~@3 [g3,c4]@4 ~@25", // C G C5
Y: "~@4 g4@3 ~ [g3,b3,d4,g4]@3 ~ [g2,d3,g3,b3]@7 ~ [g3,b3,d4,g4]@3 ~ [g3,b3,d4,g4]@3 ~ [d3,a3]@4, ~ g3@2 ~@13, ~@3 [b3,d4]@4 ~@25", // G D5 Bm
Z: "~@4 f#4@3 ~ [d3,a3,d4,f#4]@3 ~ [d3,a3]@7 ~ [d3,a3,d4,f#4]@3 ~ [d3,a3,d4,f#4]@3 ~ [e2,b2,e3,g3]@4, ~ d3@2 ~@13, ~@3 [a3,d4]@4 ~@25", // D D5 D Em D5
AA: "~@4 f#4@3 ~ [d3,a3,d4,f#4]@3 ~ [d3,a3]@7 ~ [d3,a3,d4,f#4]@3 ~ [d3,a3,d4,f#4]@3 ~ [a2,e3,a3,c4]@4, ~ d3@2 ~@13, ~@3 [a3,d4]@4 ~@25", // D D5 D Am D5
AB: "[~@4 e4@3 ~ [e3,a3,c4,e4]@3 ~ [a2,e3,a3,c4]@7 ~ [e3,a3,c4,e4]@3 ~ [e3,a3,c4,e4]@3 ~@2 [c#4,e4]@32 ~@3, ~ e3@2 ~@11 [a2,e3,a3]@16 ~@2, ~@3 [a3,c4]@4 ~@57]/2", // Am C#m A5 Am
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.3)
// other · electric guitar muted
const electric_guitar_muted = note("<~@63 A@3 B C D E F@2 G ~@62>".pickRestart({
A: "[e3@4 ~@4 b3@4 g3@4 ~@3 b3@4 ~@4 b3@4 c4@4 ~@4 g3@4 c3@4 ~@3 g3@4 ~@4 g3@4 g2@4 ~@4 g3@3 d3@4 ~@4 g3@4 ~@4 c3@4 d3@3]/3",
B: "~@5 a3@3 d3@4 ~@4 a3@4 ~@4 a3@4 e3@4", C: "~@4 b3@3 g3@4 ~@4 b3@4 ~@4 b3@4 c4@4 ~",
D: "~ g3@2 c3@2 ~@2 g3@2 ~@2 g3@2 g2@2 ~", E: "~ g3@4 d3@4 ~@4 g3@4 ~@4 c3@4 d3@4 ~@3",
F: "[a3@4 d3@4 ~@4 a3@4 ~@4 a3@4 a2@4 ~@3 e3@3 ~ a2@4 ~@4 e3@4 a2@2 ~@2 e3@3 a2@4 ~@4 e3@2]/2",
G: "~ a2@2 ~@2 e3@2 a2 ~ e3@3 ~@4",
})).s("gm_electric_guitar_muted").gain(0.64)
// other · electric guitar muted · soft notes
const electric_guitar_muted_2 = note("<~@63 A B C D E F G H ~@64>".pickRestart({
A: "~@4 b3 ~ b3 ~@8 b3 ~ b3 ~@5 b3 ~ b3 ~@6", B: "~@3 g3 ~ g3 ~@8 g3 ~ g3 ~@5 g3 ~ g3 ~@7",
C: "~@2 g3 ~ g3 ~@8 g3 ~ g3 ~@5 g3 ~ g3 ~@8", D: "~ a3 ~ a3 ~@8 a3 ~ a3 ~@5 a3 ~ a3 ~@9",
E: "b3 ~ b3 ~@8 b3 ~ b3 ~@5 b3 ~ b3 ~@9 g3", F: "~ g3 ~@8 g3 ~ g3 ~@5 g3 ~ g3 ~@9 g3!2",
G: "~@9 g3 ~ g3 ~@5 g3 ~ g3 ~@8 a3 ~ a3 ~", H: "~@8 a3 ~ a3 ~@5 a3 ~ a3 ~@13",
})).s("gm_electric_guitar_muted").gain(0.32)
// other · lead 2 sawtooth
const lead_2_sawtooth = note("<~@81 A B C D E F G H I@2 J K@4 ~@14 L@2 M@2 N O@2 P Q@2 R@3 S T@3 U V ~@6>".pickRestart({
A: "~@12 c6 g5 e5 c5 a4 g4 e4 g4 a4 c5 e5 g5 [g5,c6] e5 c5 g4 e4 g4 a4 c5", // C5
B: "e5 g5 c6 g5 e5 c5 g4 e4 g4 c5 e5 b5 g5 d5 b4 g4 e4 d4 e4 g4 b4 [d5,g5] b5 g5 d5 b4 g4 e4 d4 e4 g4 b4", // G5
C: "d5 g5 b5 g5 d5 b4 g4 b4 d5 g5 a5 e5 c5 a4 f4 e4 c4 e4 [f4,a4] c5 e5 a5 e5 c5 a4 e4 c4 e4 f4 a4 c5 e5", // F
D: "a5 e5 c5 a4 e4 a4 c5 e5 a5 c6 a5 f5 c5 a4 g4 [f4,g4] a4 c5 f5 a5 c6 a5 f5 c5 a4 g4 f4 g4 a4 c5 f5 a5", // Fsus2
E: "c6 a5 f5 c5 a4 c5 f5 a5 c6 g5 e5 c5 a4 [e4,g4] g4 a4 c5 e5 g5 c6 g5 e5 c5 g4 e4 g4 a4 c5 e5 g5 c6 g5", // Em
F: "e5 c5 g4 e4 g4 c5 e5 b5 g5 d5 [g4,b4] e4 d4 e4 g4 b4 d5 g5 b5 g5 d5 b4 g4 e4 d4 e4 g4 b4 d5 g5 b5 g5", // G
G: "d5 b4 g4 b4 d5 g5 a5 [c5,e5] a4 f4 e4 c4 e4 f4 a4 c5 e5 a5 e5 c5 a4 e4 c4 e4 f4 a4 c5 e5 a5 e5 c5 a4", // C
H: "e4 a4 c5 e5 [a5,c6] a5 f5 c5 a4 g4 f4 g4 a4 c5 f5 a5 c6 a5 f5 c5 a4 g4 f4 g4 a4 c5 f5 a5 c6 a5 f5 c5", // Am
I: "[a4 c5 [f5,a5] ~@28 d5@19 e5@5 f#5@5 g5@4]/2", J: "~ a5@15 ~ b5@5 f#5@5 e5@5",
K: "[d5@12 e5@4 f#5@7 g5@7 ~ g5@5 f#5@5 ~ e5@5 g5@5 f#5@5 e5@5 a4@31 b4@31 ~@4]/4",
L: "[~@17 c5@2 ~ e5@2 f5@2 g5@2 ~ b5@2 c5@2 d5@2 ~ f5@2 e6 f#6 g6@2 ~@6 b5 b6 d7 e7 b6@4 ~ e6 g6 a6 g6 ~@3 d6 f#6, ~@19 d5@2 ~@5 a5@2 ~@5 e5@2 ~@10 g5@2 ~@17]/2",
M: "[g6 d7 ~ e7 ~ d7 ~ d7 ~@2 d6 f#6 d7 a6 ~@3 d7 f#7 g7 a7 [f#7,g7] d7@2 ~ c#7 d7 a6 g6 a6 g6 f#6@2 ~ e6 g6 b6@2 ~@3 e6 g6 b6 d7 b6@2 ~@3 e6 g6 a6 [g6,a6] g6 a6@3 ~ g6@3 ~@2]/2", // Gmaj7 Gsus2
N: "c6 e6 g6@2 ~@2 c6 e6 g6 c7@2 ~@2 c6 e6 [g6,c7] g6 e6 c6@2 ~@4 g6 a6 g6@2 a6 a6@2 b6", // C5
O: "[~ b6@2 d7 d7@2 b6 ~@2 a6 ~ a6@2 g6 ~ d6@3 g6@2 a6@2 f#6@2 f#6 a6 d7@2 ~ [f#6,a6] d7 a7@2 ~@6 f#6 d6 f#6 g6@3 ~ f#6@3 ~@2 g5@2 b5@2 ~ g6@2 ~ a6@2 g6@2 g6, ~@8 b6@2 ~@32 a6 ~@12 e6@2 ~@7]/2", // F#m
P: "[g6,a6] a6 [g6,a6]!3 g6 [g6,a6]!3 a6 [c6,e6] g6 b6 a6@2 ~@3 c6 e6 g6 c7 e7 c8@9, ~@23 g7 ~@8", // Gsus2 C
Q: "[~@2 b7@2 a7 a7@2 g7 ~ g7@2 ~ b5@2 d6@2 ~ a6@2 g6@2 a6@2 ~ b4@2 d5@2 g5@2 ~ d6@2 e6@2 d6@2 ~@6 f#5@2 a5@2 d6@2 ~ d6@2 ~ e6@2 f#6@2 g6@2 ~ a6@2 g6@2, ~@11 g5@2 ~@3 g6@2 ~@12 b5@2 ~@10 d5@2 ~@5 c#6@2 ~@13]/2",
R: "[~ b5 e6 g6 b6@7 ~ [b5,e6] g6 b5@3 ~ [a5,b5] a5@3 ~ g5 a5 g5@3 ~@3 d5@2 e5@2 f5@2 ~ a5@2 b5@2 c5@2 ~ e5@2 f5@2 e6 f#6 g6@2 ~@4 g5@2 b5 b6 d7 e7 b6@4 ~ e6 g6 [g6,a6] ~@4 d6 f#6 g6 d7 ~ e7 ~ d7!2 ~@3 d6 f#6 d7 a6 ~@3 d7 f#7, ~@30 c5@2 ~@5 g5@2 ~@5 d5@2 ~@50]/3", // E5 Asus2 Gsus2
S: "[g7,a7] g7 f#7 d7@2 ~ c#7 d7 a6 g6 a6 g6 f#6@2 ~ e6 g6 b6@2 ~@3 e6 g6 b6 d7 b6@2 ~@3 e6", // Gsus2
T: "[g6 [g6,a6] a6 g6 a6@3 g6@3 ~@3 c6 g6@2 ~@3 c6 [e6,g6] c7@2 ~@3 c6 [e6,g6] c7 g6 e6 c6@2 ~@3 g6 ~ a6 ~ a6 ~ a6@2 b6 ~@2 d7 ~ d7@2 b6 ~@2 a6 ~ a6@2 g6 d6@3 ~ g6@2 ~ f#6@2 ~ f#6 a6 d7@2 f#6 a6 d7 a7@2 ~@6 f#6 [d6,f#6] a6 g6@3 ~ f#6@3 ~@2, ~@14 e6 ~@24 g6@2 ~@5 b6@2 ~@5 b6@2 ~@10 a6@2 ~@29]/3", // Gsus2 Em D
U: "g5@2 ~ e6@2 g6@2 a6@2 ~ g6@2 g6 [g6,a6]!3 a6 [g6,a6]!2 g6 [g6,a6]!2 [c6,a6] e6 g6 b6 a6@2 ~@3 c6, ~ b5 ~@14", // Gsus2 F
V: "e6 g6 c7 [e7,g7] c8@10 ~@2 a7 ~ a7@2 g7 ~ g7@10, ~@15 b7@2 ~@15", // Em
})).s("gm_lead_2_sawtooth").gain(0.19).pan(0.7)
// chords · rock organ
const rock_organ = note(`<
~@28 A B C D A B C D E F@2 G H I@2 G H I@2 J K L@2 J K L@2 M ~@7 N@7 O@8 P@8 Q@4 ~@6 R@8 S@8 T U@7 V@6 W@8 ~
>`.pickRestart({
A: "[b4,e5,g5]@31 ~", B: "[c5,e5,g5]@31 ~", C: "[d5,g5,b5]@31 ~", D: "[d5,f#5,a5]@31 ~", E: "[e5,a5,c6]@31 ~",
F: "[[e5,a5,c#6]@63 ~]/2", G: "[b4,e5,g#5]@31 ~", H: "[c#5,f#5,a5]@31 ~", I: "[b5@31 ~ a5@31 ~, [d#5,f#5]]/2",
J: "[g4,c5,e5]@31 ~", K: "[g4,b4,d5]@31 ~", L: "[[a4,e5]@31 ~ [a4,f5]@31 ~, c5]/2", M: "[a4,c#5,e5]@31 ~",
N: "[b5@31 c6@31 b5@31 [f#5,a5]@31 b5@31 c6@31 b5@31 [f#5,a5]@7, g5@93 ~@31 g5@93 ~@7, e5@31 d5@31 e5@31 d5@19]/7", // F#m
O: "[~@24 c6@30 c#6@62 [e5,g#5,b5]@31 [f#5,a5,c#6]@31 b5@31 a5@31 [e5,g#5,b5]@16, ~@24 [e5,a5]@93 ~@61 [d#5,f#5]@62 ~@16]/8", // E F#m E A5 D#m
P: "[~@15 [f#5,a5,c#6]@31 b5@31 a5@31 [g4,c5,e5]@30 ~ [g4,b4,d5]@30 ~ [a4,e5]@30 ~ [a4,f5]@30 ~ [g4,c5,e5]@24, ~@23 [d#5,f#5]@31 ~@31 c5@31 ~@12]/8", // F#m C G A5 Dm C D#m
Q: "[~@7 [g4,b4,d5]@30 ~ [a4,e5]@30 [a4,f5]@30 ~@30, ~@19 c5@31 ~@14]/4", // G A5 Dm
R: "[~@28 [b4,e5,g5]@31 ~ [c5,e5,g5]@31 ~ [d5,g5,b5]@31 ~ [d5,f#5,a5]@31 ~ [b4,e5,g5]@31 ~ [c5,e5,g5]@31 ~ [d5,g5,b5]@31 ~ [d5,f#5,a5]@4]/8", // Em C G D Em C G D
S: "[~@28 [e5,a5,c6]@31 ~ [e5,a5,c#6]@63 ~ [b4,d5,g5]@27 ~ [a4,d5,f#5]@27 [b4,e5,g5]@27 ~ [c5,e5,g5]@27 ~ [b4,d5,g5]@21]/8", // Am A G D Em C G
T: "~@7 [a4,d5,f#5]@25", // D
U: "[~@2 [b4,e5,g5]@27 ~ [c5,e5,g5]@27 ~ [b4,d5,g5]@27 ~ [a4,d5,f#5]@27 [b4,e5,g5]@27 ~ [c5,e5,g5]@27 ~ [b4,d5,g5]@27 ~ [a4,d5,f#5]@27]/7", // Em C G D Em C G D
V: "[[b4,e5,g5]@27 ~ [c5,e5,g5]@27 ~ [b4,d5,g5]@27 [a4,d5,f#5]@27 ~ [b4,e5,g5]@27 ~ [c5,e5,g5]@27 ~ [b4,d5,g5]@25]/6", // Em C G D Em C G
W: "[~@2 [a4,d5,f#5]@27 ~ [b4,e5,g5]@27 ~ [c5,e5,g5]@27 ~ [b4,d5,g5]@27 [a4,d5,f#5]@27 ~ [b4,e5,g5]@27 ~ [c5,e5,g5]@30 [b4,d5,g5]@57]/8", // D Em C G D Em C G
})).s("gm_rock_organ").gain(0.16).pan(0.3)
// bass · fretless bass
const bass_2 = note(`<
~@39 A@2 ~@2 A@2 ~@18 B@3 C D E F G@4 H@8 I J K L@2 M N O@2 P Q@2 R S@2 T@5 U@7 V W X Y Z AA AB AC@2 AD AE AF@2 AG AH
AI AJ AK AL AM AN@2 AO@4
>`.pickRestart({
A: "[e1@31 ~]/2",
B: "[e1@4 ~@4 e2@4 b1@4 ~@3 e2@4 ~@4 b1@4 c2@4 ~@4 g2@4 c2@4 ~@3 g2@4 ~@4 c2@4 g1@4 ~@4 g2@3 d2@4 ~@4 g2@4 ~@4 c2@4 d2@3]/3",
// … 133 more lines
More by Battiato
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.