0:00/0:00
// Si e spento il sole — Celentano
// 112 bpm, 4/4, key D# 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 78 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.
// bass · acoustic bass
const bass = note(`<
~ A@4 B@3 C@8 D@8 E F G H I J K L M N O P Q R S T U V N W O P Q R S T U V X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL@2
AM AN AG AO AP AO AP AQ@2 ~
>`.pickRestart({
A: "[~@4 eb1@47 b1@23 ~@22, ~ eb2@50 ~@45]/4", B: "[~@3 f1@42 bb1@25 ~@2]/3",
C: "[~@23 eb2@8 ~ gb2@3 bb2@6 bb1@6 eb2@8 ~ gb2@3 bb2@6 eb2@6 ab1@9 b1@3 eb2@5 ~ eb1@6 ab1@8 ~ b1@3 eb2@6 ab1@5 ~ ab1@8 ~ b1@3 eb2@6 ab1@6 b1@9 eb2@2 ~ gb2@6 eb2@3 gb2@3 bb1@9 d2@3 f2@6 d2@3 f2@3 bb1]/8",
D: "[~@23 eb2@8 ~ gb2@3 bb2@6 bb1@6 eb2@8 ~ gb2@3 bb2@6 eb2@6 ab1@9 b1@3 eb2@5 ~ eb1@6 ab1@8 ~ b1@3 eb2@6 ab1@5 ~ ab1@8 ~ b1@3 eb2@6 ab1@6 b1@9 eb2@2 ~ gb2@6 eb2@3 gb2@3 bb1@9 d2@3 f2@6 d2@3 f2@3 bb2]/8",
E: "~@5 f2@5 ~ bb1@3 ~@2 bb1@4 ~ bb1 ~@2", F: "b1@3 eb2 gb2@2 b1 eb2", G: "ab1@3 b1 db2@2 f2@2",
H: "gb1@9 bb1@3 db2@6 bb1@3 db2@2 ~", I: "gb1@8 ~ bb1@3 db2@6 bb1@6", J: "ab2@8 ~ ab2@3 gb2@7 ~@2 gb2@3",
K: "f2 eb2 db2 b1", L: "bb1@7 ~@2 bb1@3 b1@7 ~@2 b1@3", M: "bb1@6 f2@5 ~ bb1@6 b2@5 ~", N: "bb2@3 ab2@3 gb2@3 f2@2 ~",
O: "eb2 ~@7", P: "eb2@8 ~ gb2@3 bb2@6 bb1@6", Q: "eb2@8 ~ gb2@3 bb2@6 eb2@6", R: "ab1@9 b1@3 eb2@5 ~ eb1@6",
S: "ab1@8 ~ b1@3 eb2@6 ab1@5 ~", T: "ab1@8 ~ b1@3 eb2@6 ab1@6", U: "b1@9 eb2@2 ~ gb2@6 eb2@3 gb2@3",
V: "bb1@3 d2 f2@2 d2 f2", W: "eb2@3 gb2 db3@2 bb2 db3", X: "bb2@6 f2@5 ~ bb1@3 ~@2 bb1@4 bb1 ~@2",
Y: "~ b1@9 eb2@3 gb2@6 b1@3 eb2@2", Z: "~ ab1@9 b1@3 db2@6 f2@5", AA: "~ gb1@9 bb1@3 db2@6 bb1@3 db2@2",
AB: "~ gb1@8 ~ bb1@3 db2@6 bb1@5", AC: "~ ab2@8 ~ ab2@3 gb2@7 ~@2 gb2@2", AD: "~ f2@6 eb2@6 db2@6 b1@5",
AE: "~ bb1@7 ~@2 bb1@3 b1@7 ~@2 b1@2", AF: "~ bb1@6 f2@5 ~ bb1@6 b2@5", AG: "~ bb2@6 ab2@6 gb2@6 f2@4 ~",
AH: "~ eb2@3 ~@20", AI: "~ eb2@8 ~ gb2@3 bb2@6 bb1@5", AJ: "~ eb2@8 ~ gb2@3 bb2@6 eb2@5",
AK: "~ ab1@9 b1@3 eb2@5 ~ eb1@5", AL: "~ ab1@8 ~ b1@3 eb2@6 ab1@5", AM: "~ b1@9 eb2@2 ~ gb2@6 eb2@3 gb2@2",
AN: "~ bb1@9 d2@3 f2@6 d2@3 f2@2", AO: "~ eb2@9 gb2@3 bb2@6 gb2@3 bb2@2", AP: "~ b1@9 eb2@3 gb2@6 eb2@3 gb2@2",
AQ: "[~ bb1@3 ~@19 bb1@3 ~@18 bb1@2 eb2@2]/2",
})).s("gm_acoustic_bass").gain(0.55)
// other · electric guitar jazz
const electric_guitar_jazz = note(`<
~@8 A@2 B@2 C@2 D@2 E@2 B@2 C@2 F@2 ~ G H I J K L M N ~ O P Q R S T U V W X ~@9 Y Z AA AB AC AD AE AF ~ AG AH@2 AI@2
AJ@2 AK AL AM AN AO AN AP ~@2
>`.pickRestart({
A: "[~@2 bb3@3 eb4@3 gb4@3 ab4@3 bb4@3 ab4@2 ~ gb4@2 ~ bb4@4 ~ bb4@4 gb4@3 eb4@13]/2",
B: "[~@2 bb3@2 ~ eb4@2 ~ gb4@3 ab4@2 ~ bb4@3 ab4@2 ~ gb4@3 bb4@3 ~@2 bb4@4 gb4@3 ab4@13]/2",
C: "[~@2 ab4@2 ~ bb4@3 b4@3 bb4@3 ab4@3 bb4@3 b4@3 eb5@4 ~ eb5@4 db5@3 b4@13]/2",
D: "[~@2 b4@3 db5@3 eb5@2 ~ db5@3 b4@3 db5@3 b4@3 bb4@10 ~@15]/2",
E: "[~@2 bb3@3 eb4@3 gb4@3 ab4@3 bb4@3 ab4@2 ~ gb4 ~@2 bb4@4 ~ bb4@4 gb4@3 eb4@13]/2",
F: "[~@2 b4@3 db5@3 eb5@2 ~ db5@3 b4@3 db5@3 b4@3 bb4@16 ~@9]/2", G: "eb5@6 b4@3 db5@3 eb5@6 b4@2 ~ db5@3",
H: "eb5@4 ~@2 eb5@9 f5@4 ~@2 eb5@3", I: "db5@4 ~@2 bb4@3 b4@3 db5@4 ~ bb4@4 b4@3", J: "db5@5 ~ db5@15 ~@3",
K: "b4@4 ~ ab4@4 bb4@3 b4@4 ~ ab4@4 bb4@3", L: "b4@5 ~ b4@11 ~ db5@3 b4@2 ~", M: "bb4@8 ~ bb4@3 b4@5 ~ db5@2 ~ b4@3",
N: "bb4@5 ~@7", O: "~@3 bb3@3 eb4@3 gb4@3 ab4@3 bb4@3 ab4@2 ~ gb4 ~@2", P: "bb4@4 ~ bb4@4 gb4@3 eb4@12",
Q: "~@3 bb3@2 ~ eb4@2 ~ gb4@3 ab4@2 ~ bb4@3 ab4@2 ~ gb4@3", R: "bb4@3 ~@2 bb4@4 gb4@3 ab4@12",
S: "~@3 ab4@2 ~ bb4@3 b4@3 bb4@3 ab4@3 bb4@3 b4@3", T: "eb5@4 ~ eb5@4 db5@3 b4@12",
U: "~@3 b4@3 db5@3 eb5@2 ~ db5@3 b4@3 db5@3 b4@3", V: "bb4@2 ~", W: "~@6 bb4@6 c5@5 ~ d5@5 ~", X: "eb5 ~",
Y: "~ eb5@6 b4@3 db5@3 eb5@6 b4@2 ~ db5@2", Z: "~ eb5@4 ~@2 eb5@9 f5@4 ~@2 eb5@2",
AA: "~ db5@4 ~@2 bb4@3 b4@3 db5@4 bb4@4 ~ b4@2", AB: "~ db5@5 ~ db5@15 ~@2",
AC: "~ b4@4 ab4@4 ~ bb4@3 b4@4 ab4@4 ~ bb4@2", AD: "~ b4@5 ~ b4@11 ~ db5@3 b4@2",
AE: "~ bb4@8 ~ bb4@3 b4@5 ~ db5@2 ~ b4@2", AF: "~ bb4@10 ~@13", AG: "~@4 bb3@3 eb4@3 gb4@3 ab4@3 bb4@3 ab4@2 ~ gb4 ~",
AH: "[~ bb4@4 bb4@4 ~ gb4@3 eb4@13 ~@2 bb3@2 ~ eb4@2 ~ gb4@3 ab4@2 ~ bb4@3 ab4@2 ~ gb4@2]/2",
AI: "[~ bb4@3 ~ bb4@4 ~ gb4@3 ab4@13 ~@2 ab4@2 ~ bb4@3 b4@3 bb4@3 ab4@3 bb4@3 b4@2]/2",
AJ: "[~ eb5@4 eb5@4 ~ db5@3 b4@13 ~@2 b4@3 db5@3 eb5@2 ~ db5@3 b4@3 db5@3 b4@2]/2", AK: "~ bb4@16 ~@7",
AL: "~@7 bb4@6 c5@5 ~ d5@5", AM: "~ eb5@19 ~@4", AN: "~@4 b4@3 db5@2 ~ eb5 db5@4 ~ b4@3 db5@3 b4@2",
AO: "~ bb4@17 ~@6", AP: "~ bb4@2 ~@21",
})).s("gm_electric_guitar_jazz").gain(0.51)
// chords · piano
const piano = note(`<
~ A@4 B@3 C D E F@2 G H I C D E F@2 G J K L M N O@2 P Q R S ~@2 T@2 U@3 V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK@2
AL AM AN AO ~@2 AP@2 AQ@3 AR AS@2 AT AU AT AU AV@2 ~
>`.pickRestart({
A: "[~@2 [bb3,eb4,gb4] ~ bb3@6 ~@2 eb3 bb3 eb3 ~ [eb3,eb4] bb3 eb3 ~ [eb3,bb3] ~ bb3 eb3 bb3 eb3 bb3 eb3 eb4 [eb3,bb3] eb4 [eb3,bb3] eb4 bb3 [eb3,eb4] bb3 eb3 [bb3,eb4] ~ eb4 [eb3,bb3,gb4] eb4 bb3 [eb3,eb4,gb4] bb3 [eb3,eb4,gb4] ~ eb3 eb2 ~ eb2 [b1,b2,gb3,eb4]@3 ~@2 b1 ~ b1 gb3 ~@2 [b1,b2] gb3 ~ [b1,gb3] b2 b1 gb3 ~ gb3 b2 ~@2 gb3 ~@21, ~@3 [eb2,eb3]@6 ~ eb2@2 eb2@2 ~ [eb2,bb3]@2 eb2@2 eb2@2 eb2@2 eb2@2 ~ eb2@2 eb2@2 eb2@2 eb2@2 eb2@2 ~ eb2@2 eb2@2 eb2@2 eb2@2 eb2@2 ~@2 eb3@2 ~@3 gb3@2 eb4@13 ~ eb4@2 ~ b1@2 ~@21, ~@4 [eb4,gb4]@10 ~ gb4@19 ~ gb4@5 ~@7 gb4@4 ~@4 b2@2 [b2,gb3]@2 b2@2 gb3@2 ~ b2@2 ~@2 b2@2 ~@2 [gb3,eb4]@2 ~@22, ~@11 bb3@2 ~@5 eb4@3 ~ eb4@3 ~@13 eb3@2 ~@6 bb3@2 [bb3,eb4]@3 b3@16 ~ b3@6 ~@22, ~@60 b1@2 ~@7 b1@2 b1@2 b2@6 ~@17]/4", // Ebm Eb Eb5 Eb Eb5 Ebm B B5 …
B: "[~@3 f2 ~@4 f2 ~@19 f4!2 ~ f4 ~ f4 ~ f4!3 ~@5 f2@2 [bb2,ab3,bb3]@8 ~@5 f4 ~ f4 ~ f4!2 ~ f4!2 ~ f4 ~ bb2@2, ~@3 eb4@40 ~@2 [d4,f4]@11 ~@3 d4@12 ~, ~@3 f4@7 f3@2 f3@2 b3@2 f2@2 f3@2 f3@2 [b3,ab4]@2 f2@2 [f3,ab4]@2 f3@2 b3@2 ~ [b3,ab4]@2 ~@3 b3@2 ~ [b3,f4]@4 ~@8 bb3@2 ~ [bb3,d4]@2 bb3@2 ~ bb3@2 bb3@2 ~@3 bb3@2 f4 ~, ~@3 ab4@3 b3@2 ab4@2 ~ f4@16 ~@4 f3@2 ~ f3@2 [f3,ab4]@2 ~ [f3,f4]@2 ~ f3@3 ~@9 ab3@2 ~@3 ab3@2 ~@3 ab3@2 [ab3,bb3]@2 ~ ab3@2 ~, ~@3 b3 f3 f2@2 f3@2 b3@2 [f2,b3,ab4]@2 f2@2 [f3,ab4]@2 b3@2 [f2,b3,ab4]@2 f2@2 f3@2 b3@2 [f2,b3]@2 [f2,ab4]@2 ~ f2@2 ~ [f2,b3]@2 f2@2 ~ [f2,ab4]@2 ~@13 bb2@2 [bb2,ab3]@2 ~ bb2@2 [bb2,ab3]@2 ~ bb2@2 bb2@2 ~@3]/3", // Bb7 Dm E Fm E Bdim Bb Fm …
C: "~@23 [gb5,bb5,eb6]", // Ebm
D: "~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6]", // Ebm
E: "~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [ab5,b5,eb6]", // Ebm Abm
F: "~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6]", // Abm
G: "~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [gb5,b5,eb6]", // Abm B
H: "~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,eb6]@2 ~ [gb5,eb6]@2 ~ [gb5,b5,eb6] ~@2 [f5,ab5,d6], ~@14 b5 ~@2 b5 ~@6", // B Ebm B Ddim
I: "~@2 [f5,ab5,d6] ~@2 [f5,ab5,d6] ~@2 [f5,ab5,d6] ~@2 [f5,ab5,d6] ~@2 [f5,ab5,d6] ~@2 [f5,ab5,d6] ~@2 [f5,ab5,d6] ~@2 [f5,ab5,d6]", // Ddim
J: "~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,eb6]@2 ~ [gb5,eb6]@2 ~ [gb5,b5,eb6] ~@2 [d5,f5,bb5], ~@14 b5 ~@2 b5 ~@6", // B Ebm B Bb
K: "~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5]", // Bb
L: "~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@4 [d5,f5,bb5] ~@4 [d5,f5,bb5] ~@2", // Bb
M: "[b3,eb4]@6 gb3@2 ~ [gb3,eb4]@6 b2@3 [gb3,b3,eb4]@3 b2@3, b1@7 ~, gb3 ~@5", // B Ebm B
N: "[b3,eb4]@6 gb3@2 ~ [gb3,b3,eb4]@3 ~@9 db2@3, ab2@10 ~@2 db2@6 [db4,f4]@5 ~, gb3@3 ~@12 ab3@7 ~@2", // B Db
O: "[~@3 bb3@3 db4@2 ~ bb3@5 ~ bb3@3 bb3@2 ~ bb3@3 gb4@6 ~@3 [db4,gb4]@6 ~@3 [db4,gb4]@3 ~@3, gb2@20 ~@4 gb2@21 ~@3, ~@9 gb4@8 ~ db4@12 ~@3 bb3@4 ~@2 bb3@6 ~@3, ~@18 gb4@5 ~ bb3@3 ~@3 gb3@16 ~@2]/2", // Gb5
P: "[eb4,ab4]@8 ~ b3@2 ~ [eb4,ab4]@9 b3@2 ~, ab2@12 gb2@11 ~, b3@5 ~@7 b3@5 ~@7", // Ab5
Q: "f2@5 ~ eb2@5 ~ [db2,b3,eb4,ab4]@5 ~ [b1,b3,f4,ab4]@4 ~@2, [b3,eb4,ab4]@11 ~@13", // Abm Fdim Abm
R: "[bb3,d4]@9 bb2@3 [b2,b3,eb4]@11 ~, bb2 ~@3", S: "bb2@7 ~@2 bb2@9 [b2,b3,eb4]@5 ~, [bb3,d4]@17 ~@7",
T: "[gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2", // Ebm
U: "[ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2", // Abm
V: "[gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,eb6]@2 ~ [gb5,eb6]@2 ~ [gb5,b5,eb6] ~@2, ~@15 b5 ~@2 b5 ~@5", // B Ebm B
W: "[d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2", // Bb
X: "[d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,ab5,bb5] ~@2 [d5,f5,ab5,bb5] ~@2 [d5,f5,ab5,bb5] ~@2 [d5,f5,ab5,bb5] ~@2 [d5,f5,ab5,bb5] ~@2 [d5,f5,ab5,bb5] ~@2", // Bb Bb7
Y: "[bb4,eb5,gb5] ~@2 [bb4,eb5,gb5] ~@2 [bb4,eb5,gb5] ~@2 [bb4,eb5,gb5] ~@2 [b4,eb5,gb5] ~@2 [b4,eb5,gb5] ~@2 [b4,eb5,gb5] ~@2 [b4,eb5,gb5] ~@2", // Ebm B
Z: "[eb2,bb3,eb4,gb4] ~@7", // Ebm
AA: "[gb3,bb3,eb4] ~@5 [gb3,bb3,eb4] ~@5 [eb2,gb3,bb3,eb4] ~@5 [eb2,gb3,bb3] ~@2 [eb2,gb3,bb3,eb4]@3", // Ebm
AB: "~@6 [gb3,bb3,eb4] ~@5 [gb3,bb3,eb4] ~@5 [gb3,bb3,eb4] ~@5", // Ebm
AC: "[ab2,ab3,b3,eb4] ~@5 [ab2,ab3,b3,eb4] ~@5 [ab2,ab3,b3,eb4] ~@5 [ab3,b3] ~@2 [ab2,ab3,b3,eb4]@3", // Abm
AD: "~@6 [ab2,ab3,b3,eb4] ~@5 [ab2,ab3,b3,eb4] ~@5 [ab2,ab3,b3,eb4] ~@5", // Abm
AE: "[ab2,ab3,b3,eb4]@6 ~@3 [ab3,b3,eb4] ~@8 [ab2,ab3,eb4]@2 ~@4, ~@18 b3 ~@5", // Abm Ab5
AF: "[b2,gb3,b3,eb4]@7 ~@2 [b2,gb3,b3,eb4] ~@5 [gb3,b3,eb4]@5 ~@4, ~@15 b2@8 ~", // B
AG: "[bb2,ab3,bb3,d4,f4] ~@5 [bb2,ab3,bb3,d4,f4] ~@5 [bb2,ab3,bb3,d4,f4] ~@5 [bb2,ab3,bb3,d4,f4]@3 ~@3", // Bb7
AH: "[f3,d4]@4 ~@2 [f3,bb3,d4]@3 ~@3 [f3,bb3,d4] ~@4 [f3,bb3,d4]@3 ~ [f3,bb3,d4] ~@2", // Dm Bb
AI: "~ [b3,eb4]@6 gb3@2 ~ [gb3,eb4]@6 b2@3 [gb3,b3,eb4]@3 b2@2, ~ b1@21 ~@2, ~ gb3@4 ~@19", // B Ebm B
AJ: "~ [b3,eb4]@6 gb3@2 ~ [gb3,b3,eb4]@3 ~@9 db2@2, ~ ab2@10 ~@2 db2@6 [db4,f4]@5, ~ gb3@3 ~@12 ab3@7 ~", // B Db
AK: "[~@4 bb3@3 db4@2 ~ bb3@5 ~ bb3@3 bb3 ~@2 bb3@3 gb4@6 ~@3 [db4,gb4]@6 ~@3 [db4,gb4]@3 ~@2, ~ gb2@20 ~@4 gb2@21 ~@2, ~@10 gb4@8 ~ db4@12 ~@3 bb3@4 ~@2 bb3@6 ~@2, ~@19 gb4@5 ~ bb3@3 ~@3 gb3@16 ~]/2", // Gb5
AL: "~ [eb4,ab4]@8 ~ b3@2 ~ [eb4,ab4]@9 b3@2, ~ ab2@12 gb2@11, ~ b3@5 ~@7 b3@5 ~@6", // Ab5
AM: "~ f2@5 ~ eb2@5 ~ [db2,b3,eb4,ab4]@5 ~ [b1,b3,f4,ab4]@4 ~, ~ [b3,eb4,ab4]@11 ~@12", // Abm Fdim Abm
AN: "~ [bb3,d4]@9 bb2@3 [b2,b3,eb4]@11, ~ bb2@6 ~@17", AO: "~ bb2@7 ~@2 bb2@9 [b2,b3,eb4]@5, ~ [bb3,d4]@17 ~@6",
AP: "~ [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~@2 [gb5,bb5,eb6] ~", // Ebm
AQ: "~ [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~@2 [ab5,b5,eb6] ~", // Abm
AR: "~ [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,b5,eb6] ~@2 [gb5,eb6]@2 ~ [gb5,eb6]@2 ~ [gb5,b5,eb6] ~, ~@16 b5 ~@2 b5 ~@4", // B Ebm B
AS: "~ [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~@2 [d5,f5,bb5] ~", // Bb
AT: "~ [gb3,bb3,eb4] ~@5 [gb3,bb3,eb4] ~@5 [gb3,bb3,eb4]@4 ~@2 [gb3,bb3,eb4] ~@2 eb2@2, ~ eb2@2 ~@7 eb2@9 ~@5", // Ebm
AU: "~ [b1,gb3,a3,b3,eb4]@2 ~@4 [gb3,a3,b3,eb4] ~@5 [gb3,b3] ~@5 [gb3,b3,eb4]@3 b1@2, ~@10 b1@7 ~@7, ~@13 eb4@2 ~@9", // B7 B5 B
AV: "[~ [bb2,ab3,bb3,d4,f4]@2 ~@20 [bb2,bb3]@2 ~@19 bb2 ~ [eb2,eb3,bb3,eb4,gb4]@2]/2", // Bb7 Bb Ebm
})).s("gm_piano").gain(0.41).pan(0.6)
// other · alto sax
const alto_sax = note("<~@23 A@2 ~@7 B C D ~@8 E F ~@6 G H ~@7 I J K ~@9 L ~ L ~@3>".pickRestart({
A: "[~@11 bb3@3 c4@3 d4@3 f4@3 bb4@11 ~@14]/2", B: "~@15 bb3@3 b3 ~ db4 b3@3",
C: "bb3@2 ~ bb3@3 ab3@2 ~ ab3@3 gb3@2 ~ gb3@3 f3@2 ~ f3@3", D: "eb3 ~@11",
E: "~@3 bb4 ~@2 bb4 ~@2 bb4@3 c5 db5@5 bb4@3 ab4@3", F: "bb4 ~@11", G: "~@4 bb3 c4 d4 f4", H: "bb4@11 ~@13",
I: "~@16 bb3@3 b3 db4 ~ b3@2", J: "~ bb3@2 ~ bb3@3 ab3@2 ~ ab3@3 gb3@2 ~ gb3@3 f3@2 ~ f3@2", K: "~ eb3@2 ~@21",
L: "~@7 db5@2 ~ db5@2 ~ db5@8 ~@3",
})).s("gm_alto_sax").gain(0.56)
// other · brass section
const brass_section = note("<~@17 A ~ B ~@15 C D E F ~@6 C D E F ~@14 G H I J ~@11>".pickRestart({
A: "~@16 gb4 [ab4,bb4] ~@4 gb4 [ab4,bb4]", B: "~@16 b4 [db5,eb5] ~@3 b4 db5 eb5", C: "~@16 gb4 ab4 bb4 ~@3 gb4 ab4",
D: "bb4 ~@23", E: "~@16 b4 db5 eb5 ~@3 b4 db5", F: "eb5 ~@23", G: "~@17 gb4 [ab4,bb4] ~@4 gb4", H: "ab4 bb4 ~@22",
I: "~@17 b4 db5 eb5 ~@3 b4", J: "[db5,eb5] ~@23",
})).s("gm_brass_section").gain(0.46).pan(0.4)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~@8 A@8 B@5 C@4 D@2 E@2 F@2 G H I J K@2 L@2 M N O P Q R S T U V W X Y Z AA@2 AB@2 AC@2 AD AE AF AG AH@2 AI@2 AJ AK AL
AM AN AO AN AO ~@3
>`.pickRestart({
A: "[~@29 [bb3,eb4]@2 ~ [gb3,bb3,eb4]@2 ~@7 bb3@3 ~@3 bb3@3 ~@3 [bb3,eb4] ~@2 [gb3,bb3,eb4]@3 ~@3 eb3@3 [gb3,bb3,eb4]@3 eb3@2 eb2 ~@6 [b3,eb4]@2 ~@7 ab3@2 ~ ab3 ~@11 ab3@2 ~ [b3,eb4]@6 ab3@3 ~@3 ab3@3 [ab2,b3]@3 ~@3 b3 ~@2 [b3,eb4,ab4]@6 ab2@3 [b3,eb4,ab4]@3 ab2@3 [b2,eb4,gb4]@5 ~@4 [b3,eb4,gb4]@6 b2@3 [b3,eb4,gb4]@2 ~ b2@3 [f3,d4,ab4]@5 ~ bb3@2 ~ [d4,ab4]@5 ~ bb3 ~@2 [d4,ab4]@3 ~@3 [bb2,f3,bb3,d4,ab4], ~@23 eb2@9 ~@3 eb2@10 ~@2 eb2@9 ~@3 eb2@7 ~@5 ab2@10 ~@2 ab2@10 ~@2 ab2@11 ~@19 ab2@6 ~@18 b2@6 ~@12 [bb2,bb3]@3 ~@3 [bb2,f3]@14 ~@5, ~@28 eb3@6 ~@4 eb3@8 ~@6 eb3@6 ~@22 ab3@5 ~@7 ab3@6 ~@6 ab3 ~@38 b3@3 ~@2 b3@2 ~@26 bb3@2 ~@7 bb3 ~@6, ~@28 gb3@2 ~@11 eb4@9 ~@69 ab4@5 ~@68, ~@41 gb3 ~@2 gb3@5 ~@3 gb3@2 ~@22 ab3@2 ~@2 [b3,eb4]@8 ~ [b3,eb4]@12 ~@12 [b3,eb4]@6 ~@5 eb4@2 ~@66]/8", // Eb5 Ebm Eb5 Ebm B Abm B Ddim …
B: "[~@29 [bb3,eb4] ~@2 [gb3,bb3,eb4]@2 ~@7 bb3@3 ~@3 bb3@3 ~@3 [bb3,eb4] ~@2 [gb3,bb3,eb4]@3 ~@3 eb3@3 [gb3,bb3,eb4]@3 eb3@2 eb2 ~@6 [b3,eb4]@2 ~@7 ab3@2 ~ ab3 ~@11 ab3@2 ~ [b3,eb4]@6 ab3@3 b3@3 ab3@3 [ab2,b3,ab4], ~@23 eb2@9 ~@3 eb2@10 ~@2 eb2@9 ~@3 eb2@7 ~@5 ab2@10 ~@2 ab2@10 ~@2 ab2@11 ~@14, ~@28 eb3@6 ~@4 eb3@8 ~@6 eb3@6 ~@22 ab3@5 ~@7 ab3@6 ~@6 ab3 ~@15, ~@28 gb3@2 ~@11 eb4@9 ~@63 eb4@5 ~@2, ~@41 gb3 ~@2 gb3@5 ~@3 gb3@2 ~@22 ab3@2 ~@2 [b3,eb4]@8 ~ [b3,eb4]@12 ~@19]/5", // Eb5 Ebm Eb5 Ebm B Abm B
C: "[~@5 b3 ~@2 [b3,eb4,ab4]@6 ab2@3 [b3,eb4,ab4]@3 ab2@3 [b2,eb4,gb4]@5 ~@4 [b3,eb4,gb4]@6 b2@3 [b3,eb4,gb4]@2 ~ b2@3 [f3,d4,ab4]@5 ~ bb3@2 ~ [d4,ab4]@5 ~ bb3 ~@2 [bb3,d4,ab4]@3 ~@3 [f3,d4]@6 bb2 ~@5 [bb2,f3,ab3,d4] ~@4 [bb2,f3,ab3,d4]@4 ~ bb2 [f3,ab3,d4] ~, ~@4 eb4@2 ~@17 b3@3 ~@2 b3@2 ~@26 bb3@2 ~@38, ~@5 ab2@6 ~@18 b2@6 ~@12 [bb2,bb3]@3 ~@3 [bb2,f3]@14 ~@29]/4", // Abm B Ddim Bb7 Dm Bb7 Ddim Bb …
D: "[[b2,gb3,eb4]@6 [gb3,b3]@2 ~ [b2,gb3,b3,eb4]@6 b2 ~@5 b2@3 ~@4 gb3@2 b3@2 ~ [gb3,b3,eb4]@3 ~@3 ab3@2 ~ [ab3,b3,f4]@6, ~@9 [b3,eb4]@5 ~@10, ~@9 gb3@4 ~@5 db3@4 ~@2, ~@24 ab2@11 ~@13]/2", // B B5 B Fdim B
E: "[~@4 [bb3,db4]@3 ~@2 [db4,gb4]@6 bb3@2 ~ bb3@2 ~@8 bb3@2 db4@2 ~ [bb3,db4,gb4]@6 ~@3 [bb3,db4,gb4]@3 gb3@2 ~, gb2@21 bb3@6 gb3@10 ~@11, ~@9 bb3@4 ~@5 [db4,gb4]@12 ~@18, ~@24 gb2@12 ~@3 gb2@7 ~@2]/2", // Bbm Gb5 Gb Gb5
F: "[~@9 b3@3 ~@9 b3@3 ~@3 b3@3 ~@9 b3@2 ~ [b2,b3,f4]@5 ~, ab2@11 ~ gb2@11 ~ f2@5 ~@19, ~@3 ab4@11 ~@4 ab4@13 ~@17, ~@3 b3@3 ~@9 b3@5 ~@10 eb3@6 db3@5 ~@7, ~@4 eb4@11 ~@3 eb4@9 ~@6 b3@5 ~@10]/2", // Bdim
G: "[bb2,f3]@4 ~@2 bb3@3 d4@2 ~ [b3,eb4]@5 ~ f4@3 eb4 ~@2, [bb3,d4]@6 ~@12 b3@5 ~, ~@2 [bb2,f3]@3 ~ [b2,gb3]@5 ~", // Bb5 B Bb Bb5 B5
H: "[bb3,d4]@4 ~@5 d4@3 [bb3,d4]@2 ~ [bb3,d4] ~@2 [b2,gb3,b3,eb4]@3 ~@3, [bb2,f3]@3 ~ [bb2,f3]@12 ~@8, ~@6 bb3@5 ~@13", // Bb B Bb5
I: "[bb2,bb3,d4,f4] ~@5 [ab2,bb3,d4,f4] ~@5 [gb2,gb3,bb3,db4,eb4]@2 ~@4 [ab3,bb3,d4,f4]@2 ~@4", // Bb Bb7 Ebm7 Bb7
J: "[eb2,bb3,eb4,gb4] ~@11", // Ebm
K: "[~@4 gb3@2 [bb3,eb4] ~@2 [gb3,bb3,eb4]@2 ~@7 bb3@3 ~@3 bb3@3 ~ gb3@2 [bb3,eb4] ~@2 [gb3,bb3,eb4]@3 ~@3 eb3@3 [gb3,bb3,eb4]@3 ~ eb2 ~, eb2@9 ~@3 eb2@10 ~@2 eb2@9 ~@3 eb2@7 ~@5, ~@4 eb3@6 ~@5 eb3@8 ~@5 eb3@6 ~@11 eb3@2 ~, ~@6 eb4@3 ~@7, ~@18 gb3 ~@2 gb3@5 ~@22]/2", // Eb5 Ebm Eb5 Ebm
L: "[~@4 ab3@2 [b3,eb4]@2 ~@7 ab3@2 ~ ab3 ~@11 ab3@2 ~ [b3,eb4]@6 ab3@3 ~@3 ab3@3, ab2@9 [b3,eb4]@8 ~ [b3,eb4]@12 ~@12 [b3,eb4]@6, ~@9 ab3@5 ~@7 ab3@6 ~@6 ab3 ~@14, ~@12 ab2@10 ~@2 ab2@11 ~@13]/2", // B
M: "[ab2,b3]@3 ~ eb4@2 b3 ~@2 [b3,eb4,ab4]@6 ab2@3 [b3,eb4,ab4]@3 ab2@3, ab4@2 ~ ab2@3 ~@6", // Abm
N: "[b2,eb4,gb4]@4 b3@2 ~@3 [b3,eb4,gb4]@6 b2@3 [b3,eb4,gb4]@2 ~ b2@3, b3 ~ b2@2 ~@4", // B
O: "[f3,d4,ab4]@5 ~ bb3@2 ~ [d4,ab4]@5 ~ bb3 ~@2 [d4,ab4]@3 ~@3, [bb2,bb3]@3 ~@3 [bb2,f3]@14 ~@4, ~@9 bb3@2 ~@7 bb3 ~@5", // Ddim Bb Bb5
P: "[bb2,f3,bb3,d4,ab4] ~@11", Q: "~@3 bb3@5 ~ bb3@2 ~@4 [b3,eb4]@7 ~@2, eb2@3 ~@5, ~@3 eb4@8 ~@13",
R: "[bb3,eb4] ~@7", S: "[gb3,bb3,eb4] ~@5 [gb3,bb3,eb4] ~@5 [gb3,bb3,eb4] ~@5 gb3 ~@2 [gb3,bb3,eb4]@3",
T: "~@6 [gb3,bb3,eb4] ~@5 [gb3,bb3,eb4] ~@5 [gb3,bb3,eb4] ~@5", // Ebm
U: "[ab3,b3,eb4]@3 ~@3 [ab3,b3,eb4] ~@5 [ab3,b3,eb4] ~@5 [ab3,b3] ~@2 [ab3,b3,eb4]@3", // Abm
V: "~@6 [ab3,b3,eb4] ~@5 [ab3,b3,eb4] ~@5 [ab3,b3,eb4] ~@5", // Abm
W: "[ab3,b3,eb4]@6 ~@3 [ab3,b3,eb4]@4 ~@5 [ab3,b3,eb4]@2 ~@4", // Abm
X: "[gb3,b3,eb4]@6 ~@3 [gb3,b3,eb4] ~@5 [gb3,b3,eb4]@4 ~@2 [gb3,b3,eb4] ~@2", // B
Y: "[f3,ab3,d4] ~@5 [f3,ab3,d4] ~@5 [f3,ab3,d4] ~@5 [f3,ab3,d4]@4 ~@2", // Ddim
Z: "[f3,d4]@6 bb2 ~@5 [bb2,f3,ab3,d4] ~@4 [ab3,d4]@4 bb2 [f3,ab3,d4] ~, ~@4 [bb2,f3] ~", // Dm Bb7 Abdim Ddim Bb5
AA: "[~ [b2,eb4]@6 [gb3,b3]@2 ~ [b2,gb3,b3,eb4]@6 b2 ~@5 b2@3 ~@4 gb3@2 b3@2 ~ [gb3,b3,eb4]@3 ~@3 ab3@2 ~ [ab3,b3,f4]@5, ~ gb3@3 ~@15 [b3,eb4]@10 ~@19, ~@19 gb3@8 ~@10 db3@8 ~@3, ~@25 ab2@11 ~@12]/2", // B B5 B Fdim B
AB: "[~@5 [bb3,db4]@3 ~@2 [db4,gb4]@6 bb3@2 ~ bb3@2 ~@8 bb3@2 db4@2 ~ [bb3,db4,gb4]@6 ~@3 [bb3,db4,gb4]@3 gb3@2, ~ gb2@21 bb3@6 gb3@10 ~@10, ~@10 bb3@4 ~@5 [db4,gb4]@12 ~@17, ~@25 gb2@12 ~@3 gb2@7 ~]/2", // Bbm Gb5 Gb Gb5
AC: "[~@10 b3@3 ~@9 b3@3 ~@3 b3@3 ~@9 b3@2 ~ [b2,b3,f4]@5, ~ ab2@11 ~ gb2@11 ~ f2@5 ~@18, ~@4 ab4@11 ~@4 ab4@13 ~@16, ~@4 b3@3 ~@9 b3@5 ~@10 eb3@6 db3@6 ~@5, ~@5 eb4@11 ~@3 eb4@9 ~@6 b3@5 ~@9]/2", // Bdim
AD: "~ [bb2,f3]@4 ~@2 bb3@3 d4@2 ~ [b3,eb4]@5 ~ f4@3 eb4 ~, ~ [bb3,d4]@6 ~@12 b3@5, ~@5 [bb2,f3]@6 ~@2 [b2,gb3]@10 ~", // Bb5 B Bb Bb5 B5
AE: "~ [bb3,d4]@4 ~@5 d4@3 [bb3,d4]@2 ~ [bb3,d4] ~@2 [b2,gb3,b3,eb4]@3 ~@2, ~ [bb2,f3]@3 ~ [bb2,f3]@12 ~@7, ~@7 bb3@5 ~@12", // Bb B Bb5
AF: "~ [bb2,bb3,d4,f4] ~@5 [ab2,bb3,d4,f4] ~@5 [gb2,gb3,bb3,db4,eb4]@2 ~@4 [ab3,bb3,d4,f4]@2 ~@3", // Bb Bb7 Ebm7 Bb7
AG: "~ [eb2,bb3,eb4,gb4]@2 ~@21", // Ebm
AH: "[~@5 gb3@2 [bb3,eb4] ~@2 [gb3,bb3,eb4]@2 ~@7 bb3@3 ~@3 bb3@3 ~ gb3@2 [bb3,eb4] ~@2 [gb3,bb3,eb4]@3 ~@3 eb3@3 [gb3,bb3,eb4]@3 ~ eb2, ~ eb2@9 ~@3 eb2@10 ~@2 eb2@9 ~@3 eb2@7 ~@4, ~@5 eb3@6 ~@5 eb3@8 ~@5 eb3@6 ~@11 eb3@2, ~@19 eb4@9 ~@20, ~@19 gb3 ~@2 gb3@5 ~@21]/2", // Eb5 Ebm Eb5 Ebm
AI: "[~@5 ab3@2 [b3,eb4]@2 ~@7 ab3@2 ~ ab3 ~@11 ab3@2 ~ [b3,eb4]@6 ab3@3 ~@3 ab3@2, ~ ab2@9 [b3,eb4]@8 ~ [b3,eb4]@12 ~@12 [b3,eb4]@5, ~@10 ab3@5 ~@7 ab3@6 ~@6 ab3 ~@13, ~@13 ab2@10 ~@2 ab2@11 ~@12]/2", // B
AJ: "~ [ab2,b3]@3 ~ eb4@2 b3 ~@2 [b3,eb4,ab4]@6 ab2@3 [b3,eb4,ab4]@3 ab2@2, ~ ab4@4 ~@2 ab2@6 ~@11", // Abm
AK: "~ [b2,eb4,gb4]@4 b3@2 ~@3 [b3,eb4,gb4]@6 b2@3 [b3,eb4,gb4]@2 ~ b2@2, ~ b3@3 ~@3 b2@6 ~@11", // B
AL: "~ [f3,d4,ab4]@5 ~ bb3@2 ~ [d4,ab4]@5 ~ bb3 ~@2 [d4,ab4]@3 ~@2, ~ [bb2,bb3]@3 ~@3 [bb2,f3]@14 ~@3, ~@10 bb3@2 ~@7 bb3 ~@4", // Ddim Bb Bb5
AM: "~ [bb2,f3,bb3,d4,ab4]@2 ~@21", AN: "~ [gb3,bb3,eb4]@6 ~@3 [gb3,bb3,eb4] ~@2 gb3 ~@2 gb3 ~@2 [gb3,bb3,eb4]@3 ~@2",
AO: "~ [gb3,b3,eb4]@6 ~@3 [gb3,b3,eb4] ~@5 gb3@4 ~@2 gb3@2, ~@2 [b3,eb4]", // B
})).s("gm_acoustic_guitar_steel").gain(0.26).pan(0.4)
// chords · piano
const piano_2 = note(`<
~@3 A@2 B@2 ~@17 C D@2 E@2 F@2 G H I J ~@7 K L@2 ~@7 M N@2 O@5 P Q R ~@7 S T U T U ~@3
>`.pickRestart({
A: "[~@3 [b3,eb4,b4,eb5]@23 ~@22]/2", B: "[~ [b3,eb4,ab4]@14 ~]/2", C: "~@13 [d4,f4,ab4]@10 ~",
D: "[[eb4,gb4]@3 [db4,f4]]/2", E: "[db4,gb4]/2", F: "[~ b4, eb4 ~, ~ ab4@3]/2", G: "[bb3,d4,f4] [b3,eb4,gb4]",
H: "[d4,f4]@17 ~ b4@6", I: "bb4 ab4 gb4 f4", J: "eb4 ~@11", K: "[bb3,f4]", L: "[bb3@4 b3@4 bb3 ~@7, eb4@9 ~@7]/2",
M: "~@7 [d4,f4,ab4]@5", N: "[~ [eb4,gb4]@36 [db4,f4]@11]/2",
O: "[~ [db4,gb4]@48 ~@24 b4@24 [bb3,d4,f4]@12 [b3,eb4,gb4]@11, ~@49 eb4@24 ~@47, ~@61 ab4@36 ~@23]/5", // Gb5 Bb B
P: "~ [d4,f4]@17 ~ b4@5", Q: "~ bb4@6 ab4@6 gb4@6 f4@5", R: "~ eb4@2 ~@21", S: "~ [bb3,f4]@23", T: "~ [gb4,bb4]@23",
U: "~ [gb4,b4]@23", // B5
})).s("gm_piano").gain(0.05)
// drums · kick
const kick = s("bd").struct(`<
~ A ~ A ~ B ~@2 C D@7 C D@7 ~ E@8 ~ F G@7 E@2 F H@7 ~ I@8 ~ J K@7 L M@4 C ~@2
>`.pickRestart({
A: "~ x ~@4", B: "~ x ~@6", C: "~@23 x", D: "~@8 x ~@2 x ~@11 x", E: "x ~@4 x ~@2", F: "x", G: "x ~@2 x!2 ~@3",
H: "x ~ x ~@3 x!2", I: "~ x ~@14 x ~@7", J: "~ x ~@22", K: "~ x ~@8 x ~@2 x ~@10", L: "~ x ~@8 x ~@13",
M: "~ x ~@5 x ~@11 x ~@2 x ~",
})).gain(0.6)
// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@45 [~ x]!7 ~@19 [~@13 x ~@10]!4 ~@3>").gain(0.38)
// … 51 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.