0:00/0:00
// Angel — Celentano
// 84 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 107 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84/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 · electric bass finger
const bass = note(`<
A B C D E B F D G H I J K L M N O P Q R S J T U V W X Y Z AA AB Y Z AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS
AT AU AV AW AX B C D AY X Y Z AZ BA Y BB BC AD BD BE BF BG BH BI BJ BK BL BM BN BO AQ BP BQ BR BS BT BU BV BW BX BY BZ
CA CB BY CC CD CE BY CF AQ CG CH CI CJ@3
>`.pickRestart({
A: "~@3 b1", B: "b1@5 ~ b1 ~ a1@8", C: "g1@3 ~ d2@2 g2@4 c2@6", D: "e1@4 ~@2 e1 ~ e1@7 ~",
E: "c#1@6 ~ f#1@2 c#1 g#1@6", F: "g1@3 ~ d2@2 g2@6 c2@4", G: "c#1@6 ~ f#1@2 c#1 f#1 ~ e2@4", H: "b1@9 ~ e2@6",
I: "g1@13 ~ g1 ~", J: "e1", K: "f#1@13 ~ a1@2", L: "b1@7 ~", M: "g1@7 ~", N: "e1@12 ~@2 e1 ~", O: "f#1@13 ~ f#2@2",
P: "b1@2 ~ b1@3 ~ e2", Q: "f#2@4 ~@2 f#2@5 ~ e2@2 f#2@2", R: "b1@3 b2@2 f#2@2 ~", S: "e2@3 e1@2 e1 b1 a1",
T: "b1@2 ~ a1@4 f#1", U: "g1@11 ~ d1@2 g1@2", V: "f#1@10 f#1@3 f#1 c#2@2", W: "f#2@8 ~@2 e2 ~ f#2 ~ f#1 ~",
X: "b1@4 ~@2 b1 ~ b1@4 ~@4", Y: "g1@4 ~@2 g1 ~ g1@4 ~@4", Z: "e1@4 ~@2 e1 ~ e1@4 ~@4",
AA: "f#1@4 ~@2 f#1 ~ f#1@4 ~ f#1 a1@2", AB: "b1@4 ~@2 b1 ~ b1@2 ~ b1 d2@2 a1@2",
AC: "f#1@4 ~@2 f#1 ~ f#1@2 c#2@2 f#2@2 c#2@2", AD: "b1@4 ~@2 b1 ~ b1@4 ~@2 f2@2",
AE: "f#2@4 ~@2 f#2 e2 f#2 e2 f#1@2 ~@2 f#1@2", AF: "b1@2 ~ b1 b2@2 e2@2", AG: "e2@4 ~@2 e2 ~ e2@2 a1@4 e1 ~",
AH: "d1@4 ~@2 d1 ~ e1@8", AI: "b1@4 ~@2 b1 ~ b1@2 a2@6", AJ: "g1@4 ~@2 g1 ~ g1@6 ~@2",
AK: "f#1@6 ~ f#1@2 c#1 f#1@4 c#2@2", AL: "f#2@3 f#2!2 ~ f#2!2 ~@2 f#1@2 f#1@2 f#1 a#1",
AM: "b1@4 ~@2 f#1 a1@3 b1@2 ~@4", AN: "g1@7 g1 ~ d1 g1@6", AO: "e1@2 e1 ~@2 b0 e1 d1@3 e1@2 ~@2 e1 ~",
AP: "f#1@7 f#1@3 f#1@2 c#2@3 f#1", AQ: "b1@4 ~ f#1 b1 a1@3 b1@3 ~ f#1 ~", AR: "g1@4 g1@3 g1@3 g1@4 d1 ~",
AS: "e1@2 e1 ~@4 d1@3 e1@2 ~@2 e1 ~", AT: "f#1@2 f#2@4 c#2 f#1@3 c#2@3 f#2@3", AU: "g2", AV: "g2@3 d3 f#2@2 d2 f#2",
AW: "d2@6 b0 e1@2 b0 e1@5 ~", AX: "f#1@2 c#2@2 f#2@6 e2 ~ f#2@2 f#1 ~", AY: "c#1@4 ~ c#1!2 f#1@2 c#1 g#1@6",
AZ: "f#1@4 ~@2 f#1 ~ f#1@2 ~ f#1 c#2@4", BA: "b1@4 ~@2 b1 ~ b1@4 ~@2 f#1@2", BB: "e1@4 ~@2 e1 ~ e1@6 ~@2",
BC: "f#1@4 ~@2 g#1@2 c#2@2 f#2 c#2 f#2 c#2 g#1@2", BD: "f#2@4 ~@2 f#2 ~ f#2@2 c#2@2 f#1@4",
BE: "b1@4 ~@2 b1 ~ b1@4 f#1@4", BF: "e1@4 ~@2 e1@2 e2@4 c2@3 ~", BG: "d2@4 ~@2 d2 ~ d2@7 ~",
BH: "b1@4 ~@2 b1 ~ b0@4 a1@3 ~", BI: "g1@4 ~@2 g1 ~ a1@4 d2@2 g2@2", BJ: "f#2@4 ~ e3 c#3 f#2@2 c#2 f#2@4 e2 c#2",
BK: "f#1@3 d#2 f#2@2 ~@4 f#1@2 ~ f#1 a#1 ~", BL: "b1@4 ~@2 b1 a1@3 a1@6", BM: "g1@5 ~ d1 g1@2 d1 g1@6",
BN: "e1@2 e1 ~@2 e1!2 d1@3 e1@2 ~@2 e1 ~", BO: "f#1@2 f#2 ~ f#2@2 ~ f#1@2 ~ c#2@3 f#2@3",
BP: "g1@6 ~ g1 ~ d1 g1@3 ~ g1 ~", BQ: "e1@4 ~ b0 e1 d1@3 e1@2 ~@2 e1 ~",
BR: "f#1@2 f#1@2 ~@2 f#1 c#1@3 f#1@2 ~@2 f#1 ~", BS: "g1@6 ~ b1@3 d2@3 a2@3", BT: "g2@3 c3@5 f#2@8",
BU: "e2@6 ~ e2@2 b1 e1@3 ~ e1 ~", BV: "f#1@2 d#2@2 f#2@2 ~ f#2 c#2 f#2 ~ f#2 c#2@2 f#1@2",
BW: "b1@4 ~ f#1 b1 a1@3 a1@4 f#1 ~", BX: "g1@4 ~@3 g1 ~ d1 g1@3 ~ d1 ~", BY: "e1@4 ~ b0 e1 d1@3 e1@2 ~ b0 e1 ~",
BZ: "f#1@4 ~ c#2@2 f#2@2 c#2 e2 c#2 f#2 c#2@3", CA: "b1@4 ~ f#1 b1 a1@3 b1@3 ~ f#1@2",
CB: "g1@4 ~@3 g2@3 ~ g2 d2 b1 a1 g1", CC: "f#1 ~ f#1 a#1@2 f#1 ~ c#1 f#1 ~ c#1 ~@2 c1@3",
CD: "b0@4 ~ f#1 b1 a1@3 b1@3 d1 f#1 ~", CE: "g1@6 ~ g1 ~ d1 g1@3 b0 d1 ~",
CF: "f#1@4 ~ c#1 f#1!2 c#2@2 c#2@2 f#2@2 f#1 ~", CG: "g1@6 ~ g1 ~ d1 g1@2 ~ d2 ~ b1",
CH: "e2@4 ~ b0 e1 d1@3 e1@2 ~ b0 e1 ~", CI: "f#1@5 ~ c#2@3 ~ e2@6", CJ: "[b0@23 ~]/3",
})).s("gm_electric_bass_finger").gain(0.44)
// chords · pad warm
const pad_warm = note(`<
~ A@8 B@3 C@4 D@3 E@7 B@3 C@4 D@3 E@7 F@7 G@3 H I J@4 B@3 C@4 K@2 L@8 F@7 G@3 H I M@7 N@8 O@4
>`.pickRestart({
A: "[[d4,f#4]@4 g4@3 a#3 d4@4 g4@3 [a#3,f#4], b3@7 f#4@5 e4@4, ~@4 e4@4 b3@7 ~]/8", B: "[f#3@2 g3, [b3,d4]]/3",
C: "[[a3,e4] ~@2 g3, f#3@3 ~, ~ [b3,d4]@3]/4", D: "[[a3,e4] [b3,d4] [a3,e4], f#3]/3",
E: "[d#4 e4 ~@3 a3 a#3, b3@5 ~@2, ~ g3@2 f#3@4, ~@2 d4@3 e4@2]/7",
F: "[a3 ~ g3 [a#3,c#4] a3 ~ [g3,e4], [d4,f#4]@2 e4@2 d4@3, ~ b3@2 f#4@3 ~, ~@5 b3@2]/7", // A#m C D
G: "[[a#3,c#4]@2 [b3,d4]@3 [a3,c#4,e4], f#4@5 ~]/3", H: "[g3,b3,d4]", I: "[a3,c#4,e4]",
J: "[[d4,f#4]@4 g4@3 [a#3,f#4], b3@7 ~, ~ e4]/4", K: "[[a3,e4] [b3,d4], f#3]/2",
L: "[e4 d#4 e4 ~@3 a3 a#3, a3 g3 f#3@2, ~ b3@5 ~@2, ~@3 d4@3 e4@2]/8",
M: "[[d4,f#4]@2 g4 a#3 d4@2 [e4,g4], b3@3 f#4@3 ~, ~@2 e4@2 b3@3]/7", // D Em
N: "[a#3 d4@2 g4 a#3 d4@2 [e4,g4], f#4@3 e4@2 b3@3, ~ b3@3 f#4@3 ~]/8", O: "[a#3@8 [b2,b3,d4]@23 ~, f#4@31 ~]/4",
})).s("gm_pad_warm").gain(0.27)
// other · overdriven guitar
const overdriven_guitar = note(`<
~ A@2 B@4 C@3 ~@14 D@3 ~ E F@2 ~@10 G H@2 ~@11 A@2 I@3 ~@6 J@2 ~@2 K@2 ~@3 L ~@11 M N O P Q R S T@2 A@2 B@4 U@3 V@2
>`.pickRestart({
A: "[~@4 g4@2 a4 a4@2 g4@2 d5@5]/2", B: "[~@8 g4@4 a4 ~ a4@4 g4 ~@3 c#5@8 f#4@8 ~@2 g4@4 a4@2 a4@4 g4@2 ~@2 d5@10]/4",
C: "[~@4 g4@2 a4 a4@2 g4 ~ c#5@4 b4@8 ~]/3", D: "[~@2 f#4@2 a4@2 c#5@4 e5 ~@3 f#5@6 e5 d5 f#5@26]/3",
E: "~@8 d4@3 ~ e4@4", F: "[~@2 c#4@2 f#4@2 a4 ~ c#5@4 b4@20]/2", G: "~@2 d4!2 a4@2 f#4 e4 f#4@6 a3 ~",
H: "[~ f#4 a#4 c#5 e5 c#5 f#5@18 ~@8]/2", I: "[~@8 g4@4 a4@2 a4@4 g4@2 ~@2 c#5@8 f#4@5 ~@13]/3", J: "[f#5@3 e5@5]/2",
K: "[f#4@10 e4@21 ~]/2", L: "f#3", M: "f#4@5 ~ e4@2", N: "d4 e4 d4@2 b3@6 ~ f#3 b3 d4 f#4@2",
O: "b4 f#4 b4 ~ b4@4 d5@4 ~@2 b4 ~", P: "e5@6 d5 b4@6 f#4 b4 d5", Q: "c#5@7 f#4@5 ~ f#4 b4 d5",
R: "f#5@4 f#5@2 f#5 f5 e5@2 d5@2 f#5@3 ~", S: "~@2 a5@6 f#5 d5 e5 c#5@2 b4 ~ a4",
T: "[g4@2 b4 ~ b4@4 d5 ~@5 f#5 a5@3 f#5 a5 f#5 e5 f#5@9 ~]/2",
U: "[~@8 g4@4 a4@2 a4@4 g4@2 ~@2 e5@15 d5 d5@4 f#4@2 b4 ~ e4@2]/3", V: "[a4@2 f#4@3 a3@4 d4@2 b3@4 f#3@7 ~@10]/2",
})).s("gm_overdriven_guitar").gain(0.31)
// other · string ensemble 1
const string_ensemble_1 = note(`<
~@27 A ~@3 B ~@2 C D E F@2 G H I J K L M N K L M O P Q P R ~@15 S T U ~ V W X Y Z AA AB Y Z AC AD AE AD AF AG@3 AH
AG@3 AH AG@3 AH AG@3 AH AI@3
>`.pickRestart({
A: "d4 ~", B: "f#4 ~", C: "~@6 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~@5", D: "~@6 [e4,a4] ~ [e4,a4] ~ [e4,a4] ~@5",
E: "~@6 [d#4,a4] ~ [d#4,a4] ~ [d#4,a4] ~@5", F: "~@6 [e4,b4] ~ [e4,b4] ~ [e4,b4] ~@5",
G: "~@6 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~@3 [d4,f#4] ~", H: "[d4,a4] ~@3 [d4,a4] ~ [d4,a4] ~@9",
I: "~@6 [c#4,a4] ~ [c#4,a4] ~ [c#4,a4] ~@3 [c#4,a4] ~", J: "[c#4,a#4] ~@3 [c#4,a#4] ~ [c#4,a#4] ~@9",
K: "~ f#4 b4 f#5", L: "~ f#4 b4 d5", M: "~ d4 g4 b4", N: "~@10 f#4 c#5 f#5@3 ~", O: "f#4@4 ~ f#4 c#5 d5",
P: "b4 ~ g4 a4 g4 a4 b4 c#5 b4 c#5 d5 e5 d5 e5 f#5 g5", Q: "f#5 g5 a5 b5 a5 b5 c#6 d6 [c#6,e6]@4 ~@4",
R: "f#5 g5 a5 b5 a5 b5 c#6 d6 [c#5,c#6]!2 ~@2 [f#4,f#5]!2 ~@2", S: "b4@2 e5 f#5@2 g5@3", T: "b4@3 g4@2 ~@3",
U: "f#4@2 d5 e5@2 f#5@3", V: "[e4,a4] ~@3 [e4,a4] ~ [e4,a4] ~@3 a4 b4 c#5 ~@3",
W: "c#5 d5 e5 ~@3 e5 f#5 a#5 ~ a#5 b5 c#6 d6 ~ f#5", X: "~ [f#4,f#5] [b4,b5] [f#5,f#6], f#6@3 ~",
Y: "~ [f#4,f#5] [b4,b5] [d5,d6]", Z: "~ [d4,d5] [g4,g5] [b4,b5]",
AA: "[f#4,f#5]@8 ~@2 [f#4,f#5] [c#5,c#6] [f#5,f#6]@3 ~", AB: "~ [f#4,f#5] [b4,b5] [f#5,f#6]",
AC: "[f#4,f#5]@4 ~ [f#4,f#5] [c#5,c#6] [d5,d6]", // F# C# D
AD: "[b3,b4] ~ [g3,g4] [a3,a4] [g3,g4] [a3,a4] [b3,b4] [c#4,c#5] [b3,b4] [c#4,c#5] [d4,d5] [e4,e5] [d4,d5] [e4,e5] [f#4,f#5] [g4,g5]", // B G A G A B C# B …
AE: "[f#4,f#5] [g4,g5] [a4,a5] [b4,b5] [a4,a5] [b4,b5] [c#5,c#6] [d5,d6] [e5,c#6,e6]@4 ~@4", // F# G A B A B C# D …
AF: "[f#4,f#5] [g4,g5] [a4,a5] [b4,b5] [a4,a5] [b4,b5] [c#5,c#6] [d5,d6] [c#5,c#6]!2 ~@2 [f#4,f#5]!2 ~@2", // F# G A B A B C# D …
AG: "d4@13 ~@3", AH: "e4@13 ~@3", AI: "[d4@23 ~]/3",
})).s("gm_string_ensemble_1").gain(0.4).pan(0.3)
// other · string ensemble 1
const string_ensemble_1_2 = note(`<
~@27 A ~@3 A ~@2 B C B D E F G H I J K L M N O P Q R S R T ~ U@2 V W ~@7 X@2 Y Z ~ AA AB AC AD N O P AE N O P Q R S R
AF AG@3 AH AG@3 AH AG@3 AH AG@3 AH AI@3
>`.pickRestart({
A: "d3 ~", B: "~@6 [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~@5", C: "~@6 [c#3,f#3] ~ [c#3,f#3] ~ [c#3,f#3] ~@5",
D: "~@6 [e3,g3] ~ [e3,g3] ~ [e3,g3] ~@5", E: "~@6 [d3,g3] ~ [d3,g3] ~ [d3,g3] ~@5",
F: "~@6 [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~@3 [b2,f#3] ~", G: "[g2,d3] ~@3 [g2,d3] ~ [g2,d3] ~@9",
H: "~@6 [f#2,f#3] ~ [f#2,f#3] ~ [f#2,f#3] ~@3 [f#2,f#3] ~", I: "[f#2,f#3] ~@3 [f#2,f#3] ~ [f#2,f#3] ~@9",
J: "~ f#4 b4 f#5, f#3", K: "~ f#4 b4 d5, d3", L: "~ d4 g4 b4, e3", M: "~@10 f#4 c#5 f#5@3 ~, f#3", N: "~ f#4 b4 f#5",
O: "~ f#4 b4 d5", P: "~ d4 g4 b4", Q: "f#4@4 ~ f#4 c#5 d5", R: "b4 ~ g4 a4 g4 a4 b4 c#5 b4 c#5 d5 e5 d5 e5 f#5 g5",
S: "f#5 g5 a5 b5 a5 b5 c#6 d6 [c#6,e6]@4 ~@4", T: "f#5 g5 a5 b5 a5 b5 c#6 d6 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2",
U: "[~@6 e4@5 ~@5]/2", V: "e4 f#4", W: "d4@3 ~", X: "[~ f#4@3]/2", Y: "d#4@3 e4@2 f#4@3", Z: "e4",
AA: "d4@2 b3 f#3@2 b3@3", AB: "d4", AC: "~@10 a4 b4 c#5 ~@3, e4",
AD: "c#5 d5 e5 ~@3 e5 f#5 a#5 ~ a#5 b5 c#6 d6 ~ f#5", AE: "f#4@8 ~@2 f#4 c#5 f#5@3 ~",
AF: "f#5 g5 a5 b5 a5 b5 c#6 d6 [f#3,f#4]!2 ~@2 [f#3,f#4]!2 ~@2", AG: "b3@13 ~@3", AH: "a#3@13 ~@3", AI: "[b3@23 ~]/3",
})).s("gm_string_ensemble_1").gain(0.4).pan(0.7)
// other · string ensemble 2
const string_ensemble_2 = note("<~@5 A@2 B@2 ~@34 C D E C@2 D E C F@2 E G ~ H I J K ~@47>".pickRestart({
A: "[~@4 d5 e5 f#5 f#5@2 e5@2 b5@5]/2", B: "[~@8 d5@2 e5@2 f#5 ~ f#5@4 e5 ~@3 f#5@10]/2", C: "f#3", D: "d3", E: "e3",
F: "[d4 b3@2 f#3]/2", G: "f#3@6 ~@2 f#3!2 ~@2 f#3!2 ~@2", H: "~@3 b3", I: "g3@3 ~", J: "b3 a#3", K: "b3@3 ~",
})).s("gm_string_ensemble_2").gain(0.4)
// chords · epiano1
const epiano1 = note(`<
~ A@2 B C A@2 B D E F G@2 H F I J E J K L M N@2 O P E F Q R E F Q R E J K L M N@2 O P F@2 S T F@2 S T U@2 V W A@2 B C
X@2 Y J E Z Q R E J K L M N@2 O P F@2 S T F@2 S T AA@2 V W F@2 S T F@2 S T F@2 S T F@2 S T AB@3
>`.pickRestart({
A: "[~@16 a4@15 ~, [b3,d4,f#4]@31 ~]/2", B: "[d4,e4,g4,a4]@15 ~",
C: "[b3,c#4,e4,a4]@6 g4@4 f#4@5 ~, ~@6 [a#3,c#4,e4]@9 ~", D: "[b3,c#4,e4,g4]@6 [a#3,c#4,e4,f#4]@9 ~",
E: "[f#3,b3,d4]@15 ~", F: "[d4,f#4,a4]@15 ~", G: "[[b3,d4,f#4]@3 [b3,d4]@5 ~@8, ~@6 e4@25 ~]/2",
H: "[f#3,b3,d4]@13 ~ [d4,f#4,b4]@2, ~@14 a#4 ~", I: "[b3,d4,g4]@15 ~", J: "[a3,c#4,e4]@15 ~",
K: "~@6 f#4@9 ~, [a3,b3,d#4]@15 ~", L: "~@3 d4@2 e4@3, [b3,g4]@15 ~", M: "b3@4 ~@2 g4@9 ~, ~@4 b3@11 ~",
N: "[~@6 [d4,f#4]@9 ~ [d4,a4]@16, f#3@15 ~@17, ~@4 b3@11 b3@16 ~]/2", O: "[c#4,a4]@15 ~", P: "[c#4,f#4,a#4]@15 ~",
Q: "[b3,d4,e4]@15 ~", R: "[c#4,e4,f#4]@15 ~", S: "[d4,e4,g4]@15 ~", T: "[e4,f#4,a#4]@15 ~",
U: "[[b3,d4,f#4,g4]@23 ~ [c#4,e4,f#4,a4]@7 ~]/2", V: "[b3,d4,e4,a4]@15 ~", W: "[c#4,e4,f#4,a4]@15 ~",
X: "[[f#3,b3,d4]@9 ~ [f#3,a3,b3,d4]@4 [f#3,g3,b3,d4]@17 ~]/2", Y: "[g3,b3,d4]@15 ~", Z: "[b3,d4,f#4]@15 ~",
AA: "[[b3,f#4,g4,a4]@23 ~ [c#4,e4,f#4,a4]@7 ~]/2", AB: "[[d4,f#4,a4]@15 ~]/3",
})).s("gm_epiano1").gain(0.21)
// chords · electric guitar muted
const electric_guitar_muted = note("<~@9 A B C@8 D@2 E@4 F@8 ~@10 G@3 H@4 I@8 ~@2 J@7 ~@9 K@8 L@4 ~@19>".pickRestart({
A: "~@2 e3 ~ f#3 ~@3 f#3 ~ e3 f#3 ~@4, ~@3 b2@6 b2@7", B: "~@8 f#3 ~ e3 f#3 ~@4, ~@9 b2@7",
C: "[~@6 d3 ~ e3 ~ d3 e3 ~@12 f#3 ~ e3 f#3 ~@6 e3 f#3!2 ~@3 f#3 ~ e3 f#3 ~@12 f#3 ~ e3 f#3 ~@10 d3 ~ e3 ~ d3 e3 ~@12 f#3 ~ e3 f#3 ~@10 e3 ~ f#3 ~ e3 f#3 ~@10 e3 ~ f#3 ~ e3 f#3 ~@4, ~@7 g2@2 g2@62 g2@2 g2@55, ~@25 b2@16 b2@16 b2@32 b2@14 b2@2 b2@14 b2@2 b2@7]/8",
D: "[~@6 e3 ~ f#3 ~ e3 f#3 ~@10 d3 ~ e3 ~ d3 e3 ~@4, ~@7 b2@2 b2@23, ~@23 g2@2 g2@7]/2",
E: "[~@6 d3 ~ d3 ~ d3!2 ~@10 e3 ~ f#3 ~ e3 f#3 ~@10 e3 ~ f#3 ~ e3 f#3 ~@10 e3 ~ f#3 ~ e3 f#3 ~@4, ~@7 g2@2 g2@55, ~@23 b2@2 b2@14 b2@2 b2@14 b2@2 b2@7]/4",
F: "[~@6 e3 ~ f#3 ~ e3 f#3 ~@116, ~@7 b2@2 b2@119]/8",
G: "[~@6 b3 ~ a3 b3 ~ b3 ~@10 b3 ~ a3 b3 ~ b3 ~@10 b3 ~ a3 b3 ~ b3 ~@4, ~@7 f#3@16 f#3@16 f#3@9]/3",
H: "[~@2 f#3 ~ e3 f#3 ~@2 e3 f#3 ~ f#3 ~@10 b3 ~ a3 b3 ~ b3 ~@6 b3 ~ a3 b3 ~@2 a3 b3 ~ b3 ~@10 b3 ~ a3 b3 ~ b3 ~@4, ~@3 c#3@4 c#3@57, ~@23 f#3@12 f#3@4 f#3@16 f#3@9]/4",
I: "[~@2 f#3 ~ e3 f#3 ~ f#3 ~ f#3 ~ f#3!2 ~@3 b3 f#3 ~ b3 f#3 ~ a3 ~ b3 f#3 ~ b3 f#3 ~ a3 ~ b3 f#3 ~ b3 f#3!11 ~ b3 f#3 ~ b3 f#3 ~ a3 ~ b3 f#3 ~ b3 ~@12 f#3 f#3@3 f#3 f#3@51, ~@3 c#3@125, ~@18 f#3@2 ~ f#3@2 f#3@2 ~ f#3@2 ~ f#3@2 f#3@2 ~ f#3@2 ~@11 f#3@2 ~ f#3@2 ~ f#3@2 f#3@2 ~ f#3@14 ~@56]/8",
J: "[~@6 e3 ~ f#3 ~ e3 f#3 ~@10 d3 ~ e3 ~ d3 e3 ~@12 e3 f#3 e3 f#3 ~@12 f#3 ~ e3 f#3 ~@10 e3 ~ f#3 ~ e3 f#3 ~@10 d3 ~ e3 g2 d3 e3 ~@12 f#3 b2 e3 f#3 ~@4, ~@9 b2@48 b2@14 b2@2 b2@32 ~@7, ~@25 g2@62 g2@2 ~@23]/7",
K: "[~@6 b3 ~ a3 b3 ~ b3 ~@10 b3 ~ a3 b3 ~ b3 ~@10 b3 ~ a3 b3 ~ b3 ~@6 f#3 ~ e3 f#3 ~@2 e3 f#3 ~ f#3 ~@10 b3 ~ a3 b3 ~ b3 ~@6 b3 ~ a3 b3 ~@2 a3 b3 ~ b3 ~@10 b3 ~ a3 b3 ~ b3 ~@6 f#3 ~ e3 f#3 ~ c#3 e3 f#3 ~ f#3 ~ f#3 ~@2, ~@7 f#3@16 f#3@16 f#3@11 ~ c#3@4 c#3@60 c#3@4 ~@9, ~@71 f#3@12 f#3@4 f#3@16 f#3@11 ~@14]/8",
L: "[b3 f#3 ~ b3 f#3!3 ~ b3 f#3 ~ b3 f#3!3 ~ b3 f#3 ~ b3 f#3 ~ d4 f#3!8 ~ b3 f#3 ~ b3 f#3 ~ a3 ~ b3 f#3 ~ b3 ~@12 f#3 f#3@3 f#3!2 ~@2, ~@2 f#3@2 ~@3 f#3@2 ~ f#3@2 ~@3 f#3@2 ~ f#3@2 ~ f#3@2 ~@8 f#3@2 ~ f#3@2 ~ f#3@2 f#3@2 ~ f#3@14 ~@8]/4",
})).s("gm_electric_guitar_muted").gain(0.31)
// chords · electric guitar clean
const electric_guitar_clean = note("<~@24 A@2 ~@81>".pickRestart({
A: "[~ [a#3,c#4,f#4], ~@15 [f#2,c#3,f#3]@17]/2", // F# F#5
})).s("gm_electric_guitar_clean").gain(0.48)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@25 A@8 B@8 C@8 D@3 E@2 ~@12 F@8 C@8 D@3 E@2 G@8 H@8 I@4>".pickRestart({
A: "[~@16 [b3,d4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [b3,d4,e4]@14 ~@2 [c#4,e4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [b3,d4,e4]@14 ~ a3, ~@15 f#3@14 ~@2 f#3@14 ~@2 g3@14 ~@2 a3@14 ~@2 f#3@14 ~@2 f#3@14 ~@2 g3@14 ~@3]/8", // Bm E7 F#7 Bm E7
B: "[[c#4,e4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [c#4,e4,f#4]@14 ~@2 [b3,d#4,f#4]@14 ~@2 [b3,e4,g4]@14 ~@2 [b3,d4,g4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~ a3, ~@15 f#3@14 ~@2 a3@14 ~@2 a3@14 ~@2 e3@14 ~@2 d3@14 ~@2 f#3@14 ~@2 f#3@14 ~@3]/8", // F#7 Bm F#7 B Em G Bm
C: "[[c#4,e4,f#4]@14 ~@2 [c#4,e4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [d4,e4,g4]@14 ~@2 [c#4,e4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [d4,f#4,a4]@14 ~ b3, ~@15 a#3@14 ~@2 f#3@14 ~@2 f#3@14 ~@2 b3@14 ~@2 a#3@14 ~@2 f#3@14 ~@2 b3@14 ~@3]/8", // F#7 Bm Em7 F#7 Bm D
D: "[[d4,e4,g4]@7 ~ [c#4,e4,f#4]@7 ~ [b3,d4,f#4]@7 ~, ~@15 a#3@14 ~@2 g3@14 ~@3]/3", // Em7 F#7 Bm
E: "[~@4 [e4,f#4,a4]@3 ~ [d4,e4,g4]@7 ~, ~@7 c#4@6 ~@2 b3@14 ~@3]/2", // F#m7 Em7
F: "[~@16 [b3,d4,f#4]@14 ~@2 [c#4,e4,f#4]@14 ~@2 [b3,d#4,f#4]@14 ~@2 [b3,e4,g4]@14 ~@2 [b3,d4,g4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~ a3, ~@15 f#3@14 ~@2 a3@14 ~@2 a3@14 ~@2 e3@14 ~@2 d3@14 ~@2 f#3@14 ~@2 f#3@14 ~@3]/8", // Bm F#7 B Em G Bm
G: "[~@16 [b3,d4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [d4,e4,g4]@14 ~@2 [c#4,e4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [d4,f#4,a4]@14 ~@2 [d4,e4,g4]@14 ~ a#3, ~@15 f#3@14 ~@2 f#3@14 ~@2 b3@14 ~@2 a#3@14 ~@2 f#3@14 ~@2 b3@14 ~@2 b3@14 ~@3]/8", // Bm Em7 F#7 Bm D Em7
H: "[[c#4,e4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [d4,e4,g4]@14 ~@2 [c#4,e4,f#4]@14 ~@2 [b3,d4,f#4]@14 ~@2 [d4,f#4,a4]@14 ~@2 [d4,e4,g4]@14 ~ a#3, ~@15 f#3@14 ~@2 f#3@14 ~@2 b3@14 ~@2 a#3@14 ~@2 f#3@14 ~@2 b3@14 ~@2 b3@14 ~@3]/8", // F#7 Bm Em7 F#7 Bm D Em7
I: "[[c#4,e4,f#4]@7 ~ [b3,d4,f#4]@23 ~, ~@15 f#3@46 ~@3]/4", // F#7 Bm
})).s("gm_acoustic_guitar_steel").gain(0.48).pan(0.7)
// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
A@2 B@7 C D E F C D E F C G H I J K D L M N@2 O P N@2 O P N P Q O@2 N@2 P R N@2 O S N@2 O S T U O V@2 W@3 C D E F C D
E X@2 P Q Y Z N@2 P R N@2 O S N@2 O S T U O AA N@2 O S N@2 O S N@2 O S N@2 O AB@4
>`.pickRestart({
A: "[~@8 [b3,d4,f#4]@3 [f#3,b3,d4,f#4]@5, ~@15 [f#2,b2,f#3]@7 ~@10]/2", // Bm B5
B: "[~@6 d4@9 ~ [b2,e3,g3]@6 [g3,b3,d4,e4]@9 ~ [e3,g3,b3,e4]@6 [f#3,a#3,c#4,e4]@9 ~ [b3,d4,f#4]@6 [f#3,b3,d4,f#4]@9 f#3 [d4,f#4]@15 ~ [b3,d4,e4]@6 [g3,b3,d4,e4]@9 ~ [e3,g3,b3,e4]@6 [f#3,a#3,c#4,e4]@10, g2@15 ~@32 [f#2,b2,f#3]@7 ~@9 [g2,d3]@16 ~@33, ~@2 f#3@13 ~@16 c#3@6 ~@42 [b2,e3,g3]@7 ~@9 c#3@6 ~@11, ~@4 b3@11 [b3,d4,e4]@7 ~@42 b3 ~@47]/7", // Em Em7 Em F#7 Bm D E7 Em7 …
C: "~@6 [d4,f#4]@9 ~, b2@15 ~, ~@2 f#3@13 ~, ~@4 b3@11 ~", D: "~@6 [d4,f#4]@9 ~, g2@15 ~, ~@2 f#3@13 ~, ~@4 b3@11 ~",
E: "~@6 d4@9 ~, e2@15 ~, ~@2 e3@13 ~, ~@4 g3@11 ~",
F: "~@8 f#4@7 ~, f#2@15 ~, ~@2 f#3@13 ~, ~@4 a3@11 ~, ~@6 c#4@9 ~",
G: "~@6 c#4@9 ~, f#2@15 ~, ~@2 f#3@13 ~, ~@4 a3@11 ~", H: "~@6 d#4@9 ~, b2@15 ~, ~@2 f#3@13 ~, ~@4 a3@11 ~",
I: "~@6 b3@9 ~, e2@15 ~, ~@2 e3@13 ~, ~@4 g3@11 ~", J: "~@6 d4@9 ~, d3@15 ~, ~@4 g3@11 ~",
K: "~@6 [b3,d4,f#4]@9 ~, b2@15 ~, ~@2 f#3@13 ~", L: "~@6 [c#4,e4]@9 ~, f#2@15 ~, ~@2 f#3@13 ~, ~@4 a3@11 ~",
M: "~@3 a#3, f#2@15 ~, ~@2 f#3@13 ~, ~ a#3 f#4@2, ~@6 c#4@9 ~",
N: "[f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4] ~ [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@3 ~", // Bm
O: "[g3,b3,d4,e4]@4 [g3,b3,d4,e4] ~ [g3,b3,d4,e4]@4 [g3,b3,d4,e4]@2 [g3,b3,d4,e4]@3 ~", // Em7
P: "[f#3,a3,c#4,e4]@4 [f#3,a3,c#4,e4] ~ [f#3,a3,c#4,e4]@4 [f#3,a3,c#4,e4]@2 [f#3,a3,c#4,e4]@4", // F#m7
Q: "[f#3,a3,b3,d#4]@4 [f#3,a3,b3,d#4] ~ [f#3,a3,b3,d#4]@4 [f#3,a3,b3,d#4]@2 [f#3,a3,b3,d#4]@3 ~", // B7
R: "[f#3,a#3,c#4,e4]@4 [f#3,a#3,c#4,e4] ~ [f#3,a#3,c#4,e4]@4 [f#3,a#3,c#4,e4]@2 [f#3,a#3,c#4,e4]@4", // F#7
S: "[f#3,a#3,c#4,e4]@4 [f#3,a#3,c#4,e4] ~ [f#3,a#3,c#4,e4]@4 [f#3,a#3,c#4,e4]@2 [f#3,a#3,c#4,e4]@3 ~", // F#7
T: "[g3,b3,d4,f#4]@4 [g3,b3,d4,f#4] ~ [g3,b3,d4,f#4]@4 [g3,b3,d4,f#4]@2 [g3,b3,d4,f#4]@3 ~", // Gmaj7
U: "[g3,b3,d4,f#4]@4 [g3,b3,d4,f#4]@2 [g3,b3,d4,f#4] ~ [f#3,a3,c#4,e4]@4 [f#3,a3,c#4,e4]@3 ~", // Gmaj7 F#m7
V: "[[f#3,a3,c#4,e4]@4 [f#3,a3,c#4,e4] ~ [f#3,a3,c#4,e4]@4 [f#3,a3,c#4,e4]@2 [f#3,a3,c#4,e4]@3 ~ [b3,d4,f#4]@6 [f#3,b3,d4,f#4]@10, ~@15 [f#2,b2,f#3]@7 ~@10]/2", // F#m7 Bm B5
W: "[~@6 d4@9 ~ [b2,e3,g3]@6 [g3,b3,d4,e4]@9 ~ [e3,g3,b3,e4]@6 [f#3,a#3,c#4,e4]@10, g2@5 ~@11, ~@2 f#3@13 ~@16 c#3@6 ~@11, ~@4 b3@11 [b3,d4,e4]@7 ~@26]/3", // Em Em7 Em F#7 E7
X: "[~@8 f#4@7 f#2 [b3,d4,f#4]@4 [f#3,b3,d4,f#4] ~ [f#3,b3,d4,f#4]@4 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@3 ~, f#2@15 [b2,f#3]@5 ~@12, ~@2 f#3@13 ~@17, ~@4 a3@11 ~@17, ~@6 c#4@9 ~@17]/2", // Bm B5
// … 108 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.