0:00/0:00
// E voi ballate — Celentano
// 116 bpm, 4/4, key F 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: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 86 bars on a 32-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
const piano = note(`<
A@7 ~@11 B C D E F G@2 H I J K L M N O P Q R S T@2 U V W X Y Z AA@2 AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR
AS AT AU AV AW AX AY AZ BA BB AO@2 BC AI BD AD AE AF BE ~@3
>`.pickRestart({
A: "[~@38 [c5,f5,ab5,c6]@15 ~@34 [c5,e5]@9 [g4,c5,e5]@9 [g4,c5,e5,g5]@18 [db3,f3,db4,f4]@18 [e3,c4,c5,e5,g5,c6]@18 [f1,f2,c5,f5,ab5,c6]@63 ~@2, ~@12 f1@41 ~@17 [f4,ab4,db5,f5]@53 ~@101, ~@22 [f2,ab3,c4,f4,ab4]@31 [db2,f3,ab3,db4]@64 ~@107, ~@87 [c3,g3,bb3,e4,bb4]@36 ~@101]/7", // Fm C Db C Fm Db Fm Db …
B: "~@11 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5], ~@19 ab4@2 ~@11", // Fm F5 Fm
C: "~@3 [ab4,f5] ~@3 [ab4,c5,f5] ~@4 [db5,f5,g5,bb5] ~@3 [f5,g5,bb5] ~@3 [f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3, ~@3 c5@2 ~@11 db5@2 ~@2 db5@2 ~@10", // Db Fm Gm7b5 Gm7 Gm7b5
D: "[db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@4 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@2", // Gm7b5
E: "~ [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@4 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~", // Gm7b5 Fm
F: "~@2 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@4 [c5,f5,ab5]", // Fm
G: "[~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [db5,f5]@2 ~@2 [db5,g5] ~@3 [db5,f5]@2 ~@2 [db5,f5]@2 ~@2 [db5,f5]@2 ~@3 [db5,f5]@2 ~@2 [db5,f5]@2 ~@2 [db5,f5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3, ~@15 g5 ~@3 f5@2 ~@2 g5 ~@3 g5 ~@3 g5 ~@4 g5 ~@3 g5 ~@23]/2", // Fm Db Dbdim Db Gm7b5 C
H: "[c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@4 [c5,e5,g5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@2", // C Fm
I: "~ [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~", // Fm Db
J: "~@2 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3 [e5,g5] ~@3 [e5,g5] ~@4 e5@2 ~@2 [e5,g5], ~@27 g5 ~@4", // Db Em
K: "~@3 [e5,g5] ~@3 [e5,g5] ~@3 [e5,g5] ~@3 [e5,g5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4", // Em Fm
L: "[c5,f5]@2 ~@2 [bb4,d5] ~@3 [bb4,d5,f5] ~@3 [bb4,f5] ~@3 [bb4,d5] ~@3 [c5,f5] ~@3 f5@2 ~@2 [c5,f5] ~@3, ab4 ~@3 f5@2 ~@6 d5@2 ~@2 f5@2 ~@6 c5 ~@7", // F5 Bb Bb5 Bb F5
M: "f5@2 ~@3 [d5,f5] ~@3 [d5,f5] ~@3 [d5,f5] ~@3 [d5,f5] ~@3 [db5,f5,g5] ~@3 [db5,f5,g5] ~@3 [db5,f5,g5] ~@2, c5 ~@31", // Dm Gm7b5
N: "~ [db5,f5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@4 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [db5,f5] ~@3 [db5,f5,g5] ~@3 [db5,f5,g5] ~, ~@11 g5 ~@4", // Gm7b5 C Db Gm7b5
O: "~@2 [db5,f5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@4 [c5,e5,g5] ~@3 [ab4,c5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5], ~@23 f5@2 ~@7", // Gm7b5 C Ab Fm
P: "~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3, ~@19 f5@2 ~@11", // Fm Ab Fm
Q: "[ab4,c5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5] ~@3 [ab4,c5,f5] ~@3 [db5,f5,g5] ~@3 [db5,g5] ~@3, f5 ~@7 f5 ~@5 f5 ~", // Ab Fm Ab Fm Gm7b5 Dbdim
R: "~ [db5,f5,g5] ~@3 [db5,f5]@2 ~@2 [bb4,eb5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~@3 [c5,eb5] ~@3 [c5,eb5,ab5] ~@2, ~@5 g5 ~@3 g5 ~@15 ab5@2 ~@5", // Gm7b5 Db Eb5 Eb Cm Ab
S: "~ [c5,eb5,ab5] ~@3 [c5,eb5] ~@4 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5,ab5] ~@3 [e5,g5] ~@3 [c5,e5,g5] ~, ~@5 ab5@2 ~@3 ab5@2 ~@2 ab5@2 ~@2 ab5@2 ~@6 c5@2 ~@4", // Ab Cm Ab Em C
T: "[~@2 [c5,g5]@2 ~@2 [c5,e5,g5] ~@3 [c5,e5,g5] ~@4 [c5,e5,g5] ~@3 [c5,e5] ~@3 [c5,e5,g5] ~@3 [f5,g5,bb5] ~@3 [f5,g5] ~@3 [f5,g5] ~@3 [f5,g5] ~@3 [f5,bb5]@2 ~@2 [f5,g5] ~@4 [f5,g5] ~@3 [f5,g5,bb5] ~@3 [c5,e5,g5] ~@3, ~@2 e5 ~@16 g5@2 ~@10 bb5@2 ~@2 bb5@2 ~@2 bb5@2 ~@2 g5 ~@3 bb5@2 ~@3 bb5@2 ~@10]/2", // C5 C Gm7 Fsus2 Bb5 Fsus2 Gm7 C
U: "[c5,e5,g5] ~@3 [c5,e5] ~@3 [c5,e5,g5] ~@3 [c5,e5] ~@3 [c5,e5,g5] ~@3 [c5,e5] ~@3 [c5,e5] ~@4 [c5,g5]@2 ~, ~@4 g5@2 ~@6 g5@2 ~@6 g5@2 ~@2 g5@2 ~@3 e5 ~@2", // C C5
V: "~@29 [ab4,c5,f5] ~@2", // Fm
W: "~ [ab4,c5,f5] ~@3 [c5,f5] ~@4 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,f5] ~@3 [ab4,c5,f5] ~@3 [db5,f5,g5,bb5] ~, ~@5 ab4@2 ~@15 c5@2 ~@8", // Fm F5 Fm Db Fm Gm7b5
X: "~@2 [f5,g5,bb5] ~@3 [f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~, ~ db5 ~ db5 ~@12", // Gm7 Gm7b5
Y: "~@2 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [c5,f5,ab5] ~", // Gm7b5 Fm
Z: "~@2 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@4 [c5,f5,ab5] ~@3 [c5,f5,ab5]", // Fm
AA: "[~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [db5,f5]@2 ~@2 [db5,g5] ~@3 [db5,f5]@2 ~@2 [db5,f5]@2 ~@2 [db5,f5]@2 ~@2 [db5,f5]@2 ~@2 [db5,f5]@2 ~@2 [db5,f5,g5] ~@3 [c5,e5,g5], ~@31 g5 ~@3 f5@2 ~@2 g5 ~@3 g5 ~@3 g5 ~@3 g5 ~@3 g5 ~@8]/2", // Fm Db Dbdim Db Gm7b5 C
AB: "~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [ab4,c5,f5]", // C Fm
AC: "~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@4 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3", // Fm
AD: "[ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3 [ab4,db5,f5] ~@3", // Db
AE: "[e5,g5] ~@3 [e5,g5] ~@3 e5@2 ~@2 [e5,g5] ~@3 [e5,g5] ~@3 [e5,g5] ~@3 [e5,g5] ~@3 [e5,g5] ~@3, ~@8 g5 ~@23", // Em
AF: "[ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [c5,f5]@2 ~@2 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@3 [bb4,f5] ~@3 [bb4,d5] ~@3, ~@12 ab4 ~@11 d5@2 ~@2 f5@2 ~@2", // Fm F5 Bb Bb5 Bb
AG: "[g4,c5] ~@3 [g4,c5] ~@3 [g4,c5] ~@3 [g4,c5] ~@3 [g4,c5,e5] ~@3 [g4,c5] ~@3 [g4,c5] ~@3 [g4,c5,e5] ~@3, e5 ~ e5 ~ e5 ~ e5 ~@3 e5 ~ e5 ~@3", // C5 C C5 C
AH: "[c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5] ~@3 [c5,f5,a5] ~@3, ~@12 a5 ~@3", // F F5 F
AI: "[c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3", // C
AJ: "[c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5] ~@3, ~@14 a5 ~", // F F5
AK: "[db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3", // Dbdim
AL: "[d5,f5,bb5] ~@3 [d5,f5,bb5] ~@3 [d5,f5,bb5] ~@3 [d5,f5,bb5] ~@3 [d5,f5,bb5] ~@3 [d5,f5,bb5] ~@3 [d5,f5,bb5] ~@3 [d5,f5,bb5] ~@3", // Bb
AM: "[c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5] ~@3 [c5,f5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5] ~@3 [c5,e5] ~@3, ~@4 a5 ~ a5 ~@5 g5 ~ g5 ~", // F F5 C
AN: "[c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,f5,a5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5] ~@3 [c5,e5] ~@3, ~@12 g5 ~ g5 ~", // F C
AO: "[c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3", // Fm
AP: "[db5,f5,g5] ~@3 [db5,f5,g5] ~@3 [db5,f5,g5] ~@3 [db5,f5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3", // Gm7b5 C
AQ: "[db5,f5] ~@3 [db5,f5,g5] ~@3 [db5,f5,g5] ~@3 [db5,f5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3, g5 ~@15", // Db Gm7b5 C
AR: "[ab4,c5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5] ~@3, f5 ~@13 f5 ~", // Ab Fm Ab
AS: "[ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5] ~@3 [ab4,c5,f5] ~@3, ~@4 f5 ~@7 f5 ~@3", // Fm Ab Fm Ab Fm
AT: "[db5,f5,g5] ~@3 [db5,g5] ~@3 [db5,f5,g5] ~@3 [db5,f5]@2 ~@2 [eb5,g5] ~@3 [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~@3, ~@4 f5@2 ~@6 g5 ~@3 bb4@2 ~@14", // Gm7b5 Dbdim Gm7b5 Db Eb
AU: "[c5,eb5] ~@3 [c5,eb5,ab5] ~@3 [c5,eb5,ab5] ~@3 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5,ab5] ~@3, ab5 ~@5 ab5 ~ ab5 ~ ab5 ~ ab5 ~@3", // Cm Ab Cm Ab
AV: "[e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,g5]@2 ~@2 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5] ~@3 [c5,e5,g5] ~@3, c5@2 ~@6 e5 ~@15 g5@2 ~@6", // Em C C5 C
AW: "[f5,g5,bb5] ~@3 [f5,g5] ~@3 [f5,g5] ~@3 [f5,g5] ~@3 [f5,bb5]@2 ~@2 [f5,g5] ~@3 [f5,g5] ~@3 [f5,g5,bb5] ~@3, ~@4 bb5@2 ~@2 bb5@2 ~@2 bb5@2 ~@2 g5 ~@3 bb5@2 ~@2 bb5@2 ~@6", // Gm7 Fsus2 Bb5 Fsus2 Gm7
AX: "[c5,e5,g5] ~@3 [c5,e5,g5] ~@3 [c5,e5] ~@3 [c5,e5,g5] ~@3 [c5,e5] ~@3 [c5,e5,g5] ~@3 [c5,e5] ~@3 [c5,e5] ~@3, ~@4 g5 ~@3 g5 ~@3 g5 ~ g5 ~", // C
AY: "[c5,g5] ~@15, e5 ~@31", // C5
AZ: "[ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,f5] ~@3 [ab4,c5,f5] ~@3, ~@12 c5 ~@3", // Fm Db Fm
BA: "[db5,f5,g5,bb5] ~@3 [f5,g5,bb5] ~@3 [f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3, ~@2 db5 ~ db5 ~@11", // Gm7b5 Gm7 Gm7b5
BB: "[db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3 [db5,f5,g5,bb5] ~@3", // Gm7b5
BC: "[db5,f5]@2 ~@2 [db5,g5] ~@3 [db5,f5]@2 ~@2 [f5,g5] ~@3 [db5,f5]@2 ~@2 [db5,f5]@2 ~@2 [db5,f5]@2 ~@2 [db5,f5,g5] ~@3, g5 ~@3 f5@2 ~@2 g5 ~@3 db5@2 ~@2 g5 ~@3 g5 ~@3 g5 ~@7", // Db Dbdim Db Fsus2 Db Gm7b5
BD: "[ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3 [ab4,c5,f5] ~@3", // Fm
BE: "[c5,f5] ~@3 f5@2 ~@2 f5@2 ~@2 f5@2 ~@3 f5@2 ~@3 f5@2 ~@3 f5@2 ~@2 [d5,f5], ~@4 c5 ~@3 c5 ~@3 c5 ~@4 d5 ~@4 d5 ~@4 d5 ~@4", // F5 Dm
})).s("gm_piano").gain(0.36)
// bass · acoustic bass
const bass = note(`<
~@18 A@4 B@3 C D E@2 F G H I J K L@5 M N@8 O P Q R S T U V W X Y Z AA AB AC@2 AD AE AF AG AH AI AJ AK@2 AL@2 AM AN AO
O P Q AP@4
>`.pickRestart({
A: "[~@11 f2@10 ~@2 f2@3 ~ c2@15 ~@2 bb1@10 ~@2 bb1@3 ~ f2@16 bb1@10 ~@3 bb1@3 ~ f2@15 ~ f2@10 ~@3 f2@3 ~ c2@2]/4",
B: "[~@2 c2@3 ~ c2@3 ~ c2@3 ~ f2@11 ~ f2@3 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ bb1@10 ~@2 bb1@3 ~ f2@3 ~@2 f2@3 ~ f2@3 ~ f2@3 ~ c2@11 ~ e2@3 ~]/3",
C: "g2@8 bb2@7 ~@2 f2@11 ~ f2@3", D: "~ c3@2 ~@2 c3@3 ~ c3@3 ~ c3@2 ~@3 db2@10 ~@2 db2@2",
E: "[~@2 ab2@8 bb2@4 ab2@3 ~ c2@12 ~ e2@3 ~ g2@7 ~ bb2@7 ~ f2@11 ~@2]/2",
F: "f2@3 ~ bb2@3 ~ bb2@3 ~ c3@3 ~ bb2@3 ~ f2@11 ~", G: "f2@3 ~@2 bb2@3 ~ bb2@3 ~ c3@3 ~ bb2@3 ~ bb1@11",
H: "~ bb1@3 ~ c2@4 g2@4 ~ ab2@4 g2@4 bb1@10", I: "~@2 bb1@3 ~ c2@4 g2@4 ab2@4 ~ g2@2 ~@2 f2@9",
J: "~@3 f2@3 ~ c3@3 ~ c3@3 ~ c3@3 ~ c3@3 ~ f2@9", K: "~@4 f2@3 ~ c3@3 ~ c3@3 ~ c3@3 ~ c3@3 ~ bb1@8",
L: "[~@5 bb1@4 eb2@3 ~ bb2@3 ~ c3@3 ~ bb2@4 ab2@11 ~ ab2@3 ~@2 eb2@7 ~ f2@3 ~ eb2@3 ~ c2@11 ~ c2@3 ~ g2@3 ~@2 g2@3 ~ ab2@3 ~ g2@3 ~ bb1@11 ~ bb1@3 ~ bb1@7 ~@2 bb1@7 ~ c2@11 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~@2 c2@3]/5",
M: "~@29 f2@3",
N: "[~@10 f2@3 ~ c2@15 ~ bb1@10 ~@2 bb1@3 ~ f2@16 bb1@10 ~@2 bb1@3 ~ f2@15 ~ f2@10 ~@2 f2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~@2 c2@3 ~ f2@10 ~@2 f2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ bb1@10 ~@2 bb1@3 ~ f2@3 ~ f2@3 ~ f2@3 ~ f2@3 ~ c2@11 ~ e2@3 ~ g2@7 ~ bb2@7 ~ f2@11 ~ f2@3 ~@2 c3@2 ~@2 c3@3 ~ c3@3 ~ c3@2 ~@2]/8",
O: "db2@10 ~@2 db2@3 ~ ab2@7 ~ bb2@3 ~ ab2@3 ~", P: "c2@11 ~ e2@3 ~ g2@7 ~ bb2@7 ~",
Q: "f2@10 ~@2 f2@3 ~ bb2@3 ~ bb2@3 ~ c3@3 ~ bb2@3 ~", R: "c2@10 ~@2 c2@3 ~ e2@7 ~ e2@7 ~",
S: "f2@11 ~ f2@3 ~ c3@3 ~ c3@3 ~ c3@3 ~ c3@3 ~", T: "c2@10 ~@2 c2@3 ~ g2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~",
U: "f2@10 ~@2 f2@3 ~ c2@3 ~ c2@3 ~ c2@2 ~@2 c2@3 ~", V: "a1@10 ~@2 a1@3 ~ e2@7 ~ e2@7 ~",
W: "bb1@11 ~ bb1@3 ~ f2@3 ~ f2@3 ~ g2@3 ~ f2@3 ~", X: "f2@10 ~@2 f2@3 ~ c3@3 ~ c3@3 ~ c3@2 ~@2 c3@3 ~",
Y: "f2@11 ~ f2@3 ~ c3@2 ~@2 c3@3 ~ c3@3 ~ c3@3 ~", Z: "f2@10 ~@2 f2@2 ~@2 c3@3 ~ c3@3 ~ c3@3 ~ c3@3 ~",
AA: "bb1@10 ~@2 bb1@3 ~ c2@4 g2@4 ab2@3 ~ g2@3 ~", AB: "bb1@11 ~ bb1@3 ~ c2@4 g2@4 ab2@4 g2@2 ~@2",
AC: "f2@10 ~@2 f2@3 ~ c3@3 ~ c3@3 ~ c3@3 ~ c3@3 ~", AD: "bb1@10 ~@2 bb1@4 eb2@3 ~ bb2@3 ~ c3@3 ~ bb2@4",
AE: "ab2@10 ~@2 ab2@3 ~ eb2@7 ~ f2@3 ~ eb2@3 ~", AF: "c2@10 ~@2 c2@3 ~ g2@3 ~ g2@3 ~ ab2@3 ~ g2@3 ~",
AG: "bb1@11 ~ bb1@3 ~ bb1@7 ~ bb1@6 ~@2", AH: "c2@10 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~", AI: "c2@3 ~@29",
AJ: "f2@10 ~@2 f2@3 ~ c2@15 ~", AK: "bb1@10 ~@2 bb1@3 ~ f2@15 ~", AL: "f2@10 ~@2 f2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~",
AM: "bb1@10 ~@2 bb1@3 ~ f2@3 ~ f2@3 ~ f2@2 ~@2 f2@3 ~", AN: "c2@10 ~@2 e2@3 ~ g2@7 ~ bb2@7 ~",
AO: "f2@10 ~@2 f2@3 ~ c3@2 ~@2 c3@3 ~ c3@3 ~ c3@2 ~@2",
AP: "[f2@11 ~ f2@3 ~@2 bb2@4 ~ bb2@4 ~ c3@3 ~ bb2@4 ~ f2@63 ~@29]/4",
})).s("gm_acoustic_bass").gain(0.48)
// other · electric guitar jazz
const electric_guitar_jazz = note(`<
~@5 A B C@2 D E@2 F G H I J@2 K@2 L@2 M N@2 O@3 P ~ Q R@2 S@6 ~ T@2 U@2 V@3 W@2 X Y@2 ~@8 Z AA@2 AB@2 AC AD AE AF@2 AG
AH AI AJ AK AL AM AN@2 X Y@2 ~@4
>`.pickRestart({
A: "~@11 c4@4 ~ c4@3 ~@2 c4@3 ~@2 c4@3 ~ bb3@2", B: "~@3 c4@6 ~ c4@21 ~",
C: "[~@12 bb3@5 ~@2 bb3@4 ~@2 bb3@4 ~@2 bb3@3 ~ ab3@3 ~@2 bb3@6 ~ bb3@16 ~]/2", D: "~@20 ab3@4 ~@2 ab3@5 ~",
E: "[ab3@5 ~@2 ab3@3 ~@2 g3@3 ~ ab3@6 ~@2 ab3@5 ~ g3@4 ~ ab3@16 ~@2 ab3@5 ~@2 ab3@4]/2", F: "~@4 g3@11 ~@17",
G: "~@6 bb3@7 ~ ab3@5 ~ g3@5 ~@2 ab3@5", H: "~ f3@5 ~@2", I: "~@12 bb3@7 ~ ab3@5 ~@2 g3@5",
J: "[~@2 ab3@8 ~ f3@28 ~@15 c4@3 ~ c4@3 ~ c4@2]/2", K: "[~@3 c4@2 ~@2 bb3@3 ~ c4@5 ~ c4@27 ~@12 bb3@4 bb3@3 ~]/2",
L: "[bb3@3 ~ bb3@3 ~ ab3@4 bb3@30 ~@16 ab3@3 ~ ab3@2]/2", M: "~@2 ab3@3 ~ ab3@3 ~ g3@3 ~ ab3@5 ~ ab3@12",
N: "[~@3 g3@3 ~ bb3@3 ~ ab3@3 ~ ab3@5 ~ g3@25 ~@10 bb3@7 ~]/2",
O: "[ab3@7 ~ g3@6 ~ ab3@7 ~@2 f3@13 bb3@3 ~@2 ab3@3 ~ g3@3 ~ ab3@6 ~ f3@22 ~@12 bb3@5]/3",
P: "~@3 ab3@3 ~@2 g3@6 ~ ab3@9 ~ f3@7", Q: "~@17 f3@3 ~ g3@11",
R: "[~ g3@3 ~ c4@3 ~ bb3@3 ~@2 g3@2 ~ f3@3 g3@7 ~ g3@21 ~ c4@3 ~@2 c4@9]/2",
S: "[~@3 c4@3 ~ f4@3 ~ eb4@4 ~ c4@2 ~ bb3@2 ~ c4@29 ~ c4@3 ~@2 db4@4 ~ db4@12 ~@3 db4@4 eb4@4 ~ eb4@2 ~@2 c4@4 ~ c4@21 ~@2 c4@3 ~ e4@27 ~@2 e4@4 f4@3 ~ f4@2 ~@2 db4@3 ~ db4@3 ~ f4@3 ~ f4@3 ~ db4@3 ~ db4@3 ~ c4@5]/6",
T: "[~@9 c4@3 ~ c4@3 ~ c4@3 ~ c4@2 ~@2 bb3@3 ~ c4@5 ~ c4@26 ~@3]/2",
U: "[~@10 bb3@4 bb3@3 ~ bb3@3 ~ bb3@3 ~ ab3@3 ~ bb3@30 ~@4]/2",
V: "[~@10 ab3@3 ~@2 ab3@3 ~ ab3@5 ~ ab3@2 ~ g3@2 ~ ab3@3 g3@2 ~ ab3@13 ~ g3@3 ~ bb3@3 ~ ab3@3 ~ ab3@5 ~ g3@25 ~@2]/3",
W: "[~@7 bb3@7 ~ ab3@7 ~ g3@6 ~ ab3@7 ~ f3@13 ~ bb3@3 ~ ab3@3 ~ g3@3 ~]/2", X: "ab3@6 ~ f3@22 ~@3",
Y: "[~@8 bb3@7 ~ ab3@3 ~@2 g3@6 ~ ab3@9 ~ f3@8 ~@18]/2", Z: "~@28 f3@3 ~",
AA: "[g3@10 ~@2 g3@3 ~ c4@3 ~ bb3@3 ~ g3@2 ~ f3@3 g3@7 ~ g3@21 ~ c4@3 ~]/2",
AB: "[c4@10 ~@2 c4@3 ~ f4@3 ~ eb4@3 ~ c4@2 ~ bb3@2 ~ c4@28 ~@2 c4@3 ~]/2",
AC: "~ db4@4 ~ db4@12 ~@2 db4@3 ~ eb4@4 ~ eb4@2 ~", AD: "c4@4 ~@2 c4@20 ~@2 c4@3 ~", AE: "e4@27 ~ e4@4",
AF: "[f4@3 ~ f4@3 ~ db4@3 ~ db4@2 ~@2 f4@3 ~ f4@2 ~ db4@3 ~ db4@3 ~ c4@31 ~@2]/2",
AG: "~@12 c4@3 ~ c4@3 ~ c4@3 ~ c4@2 ~@2 bb3@3 ~", AH: "c4@5 ~ c4@26",
AI: "~@12 bb3@4 bb3@3 ~ bb3@3 ~ bb3@3 ~ ab3@3 ~", AJ: "bb3@29 ~@3", AK: "~@12 ab3@3 ~ ab3@3 ~@2 ab3@5 ~ ab3@2 g3@2 ~",
AL: "ab3@3 g3@2 ~ ab3@13 ~ g3@3 ~ bb3@3 ~ ab3@3 ~", AM: "ab3@5 ~ g3@25 ~",
AN: "[~@8 bb3@7 ~ ab3@7 ~ g3@6 ~ ab3@7 ~ f3@13 bb3@3 ~ ab3@3 ~ g3@3 ~]/2",
})).s("gm_electric_guitar_jazz").gain(0.62)
// chords · piano
const piano_2 = note("<~@17 A@6 B@2 ~@15 C@8 ~@3 D E F G F H I J@4 ~@8 K L@2 M@2 N@3 ~@5 O@3>".pickRestart({
A: "[~@22 [ab3,c4]@16 ~ [g3,bb3]@4 [ab3,c4]@45 [g3,bb3]@16 [f3,ab3]@4 [g3,bb3]@45 ~ [f3,ab3]@16 g3@4 [f3,ab3]@18]/6", // Ab Gm Ab Gm Fm Gm Fm
B: "[~@3 g3@4 [g3,bb3]@4 [f3,ab3]@4 [f3,ab3]@6 g3@33 ~@10]/2", // Gm Fm
C: "[~@9 [ab3,c4]@16 [g3,bb3]@4 [ab3,c4]@44 ~ [g3,bb3]@16 [f3,ab3]@4 [g3,bb3]@44 [ab3,c4]@18 ~ [g3,bb3]@2 [ab3,c4]@2 [g3,bb3]@2 [ab3,c4]@16 [f3,ab3]@4 [g3,bb3]@4 [f3,ab3]@10 g3@42 ~@17]/8", // Ab Gm Ab Gm Fm Gm Ab Gm …
D: "~@3 f4, ~ [bb3,d4]", E: "[c4,e4]", F: "[f4,a4,c5,f5]", G: "[e4,g4,c5,e5]", H: "[e4,g4,db5,e5]",
I: "[f4,bb4,d5,f5]", J: "[[a4,f5]@4 [g4,e5]@4 [a4,f5]@4 [g4,e5]@4 [ab4,f5]@11 ~@5, c5@3 ~]/4",
K: "~@3 [ab3,c4]@4 [g3,bb3]", L: "[[ab3,c4]@11 [g3,bb3]@4 [f3,ab3]]/2", M: "[[g3,bb3]@22 [ab3,c4]@9 [g3,bb3]]/2",
N: "[[ab3,c4] [g3,bb3] [ab3,c4]@8 [f3,ab3]@2 [g3,bb3]@2 [f3,ab3]@5 g3@29]/3", O: "[~@4 [f3,a4,c5,f5]@63 ~@29]/3",
})).s("gm_piano").gain(0.05)
// chords · accordion
const accordion = note(`<
~@18 A@3 B@5 ~@4 C D E F G H I J K L ~ M@2 N@2 O@3 ~@13 P Q R S T U V W X ~ Y Z AA AB ~ AC AD ~@8
>`.pickRestart({
A: "[~@23 f5@8 c5@4 bb4@4 ab4@4 ~ bb4@45 f5@7]/3", B: "[~ bb4@4 ab4@4 g4@4 ab4@66 [bb3,db4]@33 [g3,c4]@31 ~@17]/5",
C: "~@21 [g3,bb3,db4] ~@7 [g3,bb3,db4] ~@2", // Gdim
D: "~@5 [g3,c4] ~@8 [g3,c4] ~@3 [g3,bb3,db4,f4]@3 ~ [g3,bb3,db4] ~@7 [g3,bb3,db4] ~", // C5 Gm7b5 Gdim
E: "~@6 [g3,c4] ~@7 [g3,b3,c4] ~@4 [g3,c4,f4] ~@3 [ab3,c4] ~@7 [ab3,c4]", // C5 Cmaj7 Csus4 Ab
F: "~@7 [ab3,c4] ~@7 [ab3,c4] ~@3 [ab3,c4,f4]@3 ~ [ab3,c4] ~@8", // Ab Fm Ab
G: "[ab3,c4] ~@7 [ab3,c4] ~@7 [ab3,c4] ~@7 [bb3,db4] ~@7", // Ab Bbm
H: "~ db4@2 ~@6 [bb3,eb4] ~@7 [bb3,eb4] ~@3 [bb3,eb4]@3 ~ c4@2 ~@5, ~ bb3 ~@23 ab3 ~@6", // Eb5
I: "~ c4@2 ~@7 [ab3,c4] ~@7 [ab3,c4] ~@3 [ab3,c4]@3 ~ [c4,e4] ~@5, ~ ab3 ~@30", // Ab C
J: "~@2 e4@2 ~@6 [c4,e4] ~@8 [c4,e4] ~@3 [c4,e4]@2 ~@2 [db4,f4]@2 ~@3, ~@2 c4 ~@29", // C Db
K: "~@3 [db4,f4] ~@7 [db4,f4] ~@8 [db4,f4] ~@3 [db4,f4]@3 ~ [c4,e4] ~@3", // Db C
L: "~@4 [c4,e4] ~@7 [c4,e4] ~@7 [c4,e4] ~@11", M: "[~@10 f5@8 c5@4 bb4@4 ab4@4 bb4@15 ~@19]/2",
N: "[~@10 f5@8 bb4@4 ab4@4 g4@4 ab4@15 ~@19]/2", O: "[~@31 [bb3,db4]@32 [g3,c4]@31 ~@2]/3",
P: "[g3,bb3,db4] ~@7 [g3,bb3,db4] ~@7 [g3,c4] ~@7 [g3,c4] ~@3 [g3,bb3,db4,f4]@3 ~", // Gdim C5 Gm7b5
Q: "[g3,bb3,db4] ~@7 [g3,bb3,db4] ~@7 [g3,c4] ~@7 [g3,b3,c4] ~@3 [g3,c4,f4] ~@3", // Gdim C5 Cmaj7 Csus4
R: "[ab3,c4] ~@7 [ab3,c4] ~@7 [ab3,c4] ~@7 [ab3,c4] ~@3 [ab3,c4,f4]@3 ~", // Ab Fm
S: "[ab3,c4] ~@7 [ab3,c4] ~@7 [ab3,c4] ~@7 [ab3,c4] ~@7", // Ab
T: "[bb3,db4] ~@7 db4@2 ~@6 [bb3,eb4] ~@7 [bb3,eb4] ~@3 [bb3,eb4]@3 ~, ~@8 bb3 ~@23", // Bbm Eb5
U: "c4@2 ~@6 c4@2 ~@6 [ab3,c4] ~@7 [ab3,c4] ~@3 [ab3,c4]@3 ~, ab3 ~@7 ab3 ~@23", // Ab
V: "[c4,e4] ~@7 e4@2 ~@6 [c4,e4] ~@7 [c4,e4] ~@3 [c4,e4]@2 ~@2, ~@8 c4 ~@23", // C
W: "[db4,f4]@2 ~@6 [db4,f4] ~@7 [db4,f4] ~@7 [db4,f4] ~@3 [db4,f4]@3 ~", // Db
X: "[c4,e4] ~@7 [c4,e4] ~@7 [c4,e4] ~@7 [c4,e4] ~@7", Y: "~@3 f5@2 c5 bb4 ab4", Z: "bb4@15 ~@17",
AA: "~@3 f5@2 bb4 ab4 g4", AB: "ab4@15 ~@17", AC: "[bb3,db4]", AD: "[g3,c4]@31 ~",
})).s("gm_accordion").gain(0.46)
// other · violin
const violin = note("<A@3 B@3 C@3 D@4 ~@73>".pickRestart({
A: "[~@23 ab4@17 bb4@7 c5@6 f5@17 ~ g5@5 ab5@7 bb5@2 ~ g5@5 ~ f5@4, ~@85 ab5@2 ~@9]/3",
B: "[e5@3 d5@2 ~ e5@12 bb5@8 ~ ab5@18 g5@17 ~ f5@32 ~]/3", C: "[~@27 [f3,ab3]@55 ~@14]/3",
D: "[~@5 ab3@55 ab3@42 ~@26, ~@5 ab4@43 ~@80]/4",
})).s("gm_violin").gain(0.38)
// other · violin · soft notes
const violin_soft = note("<~@6 A@5 ~@75>".pickRestart({
A: "[~@27 f5@55 ~@13 [g3,db4,g4]@6 c4@43 ~@16]/5", // Gdim
})).s("gm_violin").gain(0.22)
// drums · kick
const kick = s("bd").struct(`<
~@18 A B C D E F G H I J K L M N O P Q R S T U V W X@3 Y Z@3 AA AB@7 AC AB@13 AD AB@11 AE AF ~ AF
>`.pickRestart({
A: "~@11 x ~@11 x ~@3 x ~@4", B: "~@3 x ~@2 x!2", C: "~@12 x ~@12 x ~@3 x ~@2", D: "~@13 x ~@12 x ~@3 x ~",
E: "~@14 x ~@11 x ~@4 x", F: "~@15 x ~@11 x ~@3 x", G: "~@4 x ~@2 x", H: "x ~@16 x ~@11 x ~@2",
I: "~ x ~@16 x ~@11 x ~", J: "~@2 x ~@15 x ~@12 x", K: "~@3 x ~@15 x ~@12", L: "x!2 ~@3 x ~@2",
M: "x ~@4 x ~@15 x ~@10", N: "~ x ~@3 x ~@16 x ~@9", O: "~@2 x ~@3 x ~@16 x ~@8", P: "~@3 x ~@3 x ~@15 x ~@8",
Q: "~ x!2 ~@3 x ~", R: "~@5 x ~@3 x ~@15 x ~@6", S: "~@5 x ~@4 x ~@15 x ~@5", T: "~@6 x ~@3 x ~@16 x ~@4",
U: "~@7 x ~@3 x ~@16 x ~@3", V: "~@8 x ~@3 x ~@16 x ~@2", W: "~@29 x ~@2", X: "~@5 x ~ x ~@7 x",
Y: "~@10 x ~@3 x ~@16 x", Z: "~@11 x ~@3 x ~@15 x", AA: "~@11 x ~@4 x ~@15", AB: "x ~@2 x!2 ~@3",
// … 42 more lines
More by Celentano
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.