0:00/0:00
// Per sempre — Celentano
// 160 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 9 string ensemble 2 (copy of ch 14 pad warm)
// note: Full arrangement: all 198 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(160/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 A B A B A C D E A C D F A C G H I J G H I J G H I K L H I J G H I J G H I J G H I K L H I M N H I J N H I J N H I
J N H I O G H I J G H I J G H I K L H I J N H I J N H I J N H I J N H I O P@2 Q@2 R S T@2 U@2 V@2 W@2 N H I J N H I J
N H I X G H I J G H I J G H I K L H I J N H I J N H I J N H I J N H I O N H I J N H I J N H I J N H I O N H I J N H I
J N H I J N H I O N H I J N H I J Y@4
>`.pickRestart({
A: "c2@4 ~@2 c2@2 c2@3 ~ c2@4", B: "c1@5 ~ c1 ~ c1@4 ~@4", C: "c1@5 ~ c1 ~ c1@4 c1@2 eb1@2",
D: "ab1@4 ~@2 ab1 ~ ab1@3 ~ ab1@3 ~", E: "g1@4 ~@2 g1 ~ g1@3 ~ g1@2 bb1@2", F: "g1@4 ~@2 g1 ~ g1@3 ~ g1@2 eb1@2",
G: "ab1@4 ~@2 ab1@5 ~ ab1@3 ~", H: "g1@4 ~@2 g1@5 ~ g1@4", I: "c1@4 ~@2 c1@5 ~ c1@4", J: "c1@5 ~ c1@5 ~ c1@2 eb1@2",
K: "c1@5 ~ c1@5 ~ c1@2 db1@2", L: "d1@4 ~@2 d1@5 ~ d1@3 ~", M: "c1@5 ~ c1@5 ~ c1@3 ~", N: "f1@4 ~@2 f1@5 ~ f1@3 ~",
O: "c1@2 g1 eb1 c1@2 ~ eb1", P: "eb1/2", Q: "[d2@31 ~]/2", R: "c2", S: "bb1@15 ~", T: "[ab1@6 eb2 ab1]/2",
U: "[g1@15 d2]/2", V: "[g2@30 g1 ~]/2", W: "[g1@29 ~ g1@2]/2", X: "c1@2 ab1@2 g1@2 f1@2 eb1@3 ~ d1@4", Y: "c1/4",
})).s("gm_electric_bass_finger").gain(0.43)
// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note("<~@96 A@2 B@2 C@2 D@2 E@7 ~@87>".pickRestart({
A: "[~@7 g3, g2@19 ~@13, ~@4 bb2@15 ~ bb2@12, ~@2 eb3@3 ~ eb3@2, ~@3 g3@3 ~@2]/2",
B: "[~@7 f3, ~@4 bb2@15 ~ bb2@12, ~@8 d3@11 ~@5 d3@8, ~@3 f3@3 ~@2]/2",
C: "[~@12 g3@7 ~@9 g3@4, ~@2 c3@7 ~ bb2@6, ~@4 eb3@5 ~@3 eb3@4]/2",
D: "[~@7 g3, ab2@7 ~ ab2@8, ~@4 c3@11 ~@5 c3@12, ~@2 eb3@3 ~ eb3@2, ~@3 g3@3 ~@2]/2",
E: "[~@23 g3 ~@4, g2 g2 g2 g2 g2 g2 ~, ~@4 b2@15 ~ b2@15 ~ b2@15 ~ b2@15 ~ b2@15 ~ b2@15 ~@13, ~@2 d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~@3, ~@3 g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~@6]/7",
})).s("gm_acoustic_guitar_nylon").gain(0.33)
// other · string ensemble 2
const string_ensemble_2 = note(`<
~@32 A B@3 A B@3 A B@3 C B@3 ~@62 D@8 ~@4 A B@3 A B@3 A B@3 C B@3 E F ~@2 E F ~@2 E F ~@2 E F ~@2 E F ~@2 E F ~@2 E F
~@2 E F ~@2 E F ~@2 E F ~@2 E F ~@2 E F ~@2 E F ~@2 E F ~@6
>`.pickRestart({
A: "ab3", B: "g3/3", C: "a3", D: "[eb4@61 ~@3]/4", E: "eb4", F: "d4",
})).s("gm_string_ensemble_2").gain(0.14).pan(0.7)
// chords · piano
const piano = note(`<
A@8 B@2 C@2 D@4 ~@3 E F ~@5 G H@2 I@4 ~@2 J@2 ~@5 K L@4 M ~@8 N O P Q R S@2 T@2 ~@2 U@2 ~ V@3 ~@7 W@2 ~@2 X@2 Y Z AA
AB AC AD AE AF@4 AG AH@2 AI@2 AJ@2 AK@2 AL AM AN@2 AO AP@2 AQ AR AS AT@2 AU@2 AV@3 ~ AW AX AY ~ AZ@3 ~ BA BB@2 ~ BC BD
BE BF BG BH BI BJ BK@2 BL@2 BM BN BO BP@2 BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD@4 CE CF CG CH CI CJ@2 ~ CK CL CM
CN CO CP CQ CR CS@3 CT ~@8
>`.pickRestart({
A: "[~@14 [g3,g5]@28 eb5@2 [f3,f5]@30 [g3,g5]@4 eb5@33 ~@7 d5@4 c5@4 g4@2, ~@42 eb3 ~@35 eb3@44 ~@6]/8", // G F G
B: "[~ ab3@2 ~@3 [ab3,c4]@8 ~@2 [g3,c4]@4 ~@2 [g3,b3]@8 [f4,ab4]@2, c4 ~@15, ~ f4@13 g4@16 ~@2]/2", // Ab C5 G Fm
C: "[eb4@6 [b3,d4]@8 ~@8 [d4,f4] ~ [eb4,g4] ~@3 [eb4,g4,c5] ~@3, g4@21 ~@11, ~@14 [c4,eb4]@7 ~@11, ~@9 g3@6 ~]/2", // Bm Dm Eb Cm
D: "[eb5@5 ~ d5@4 c5@3 ~@5 d5@3 c5@2 ~ [f3,b3,eb5]@5 ~@9 c5@22 ~@4, [ab3,c4]@7 eb5@2 ~@6 d5@4 ~@13, [g4,ab4]@13 ~ [g4,ab4]@9 ~ [f4,ab4]@6 ~@34, ~@16 [ab3,c4]@7 ~@9 [eb3,g3,c4,eb4,g4]@28 ~@4]/4", // Fm7b5 Ab Abmaj7 Fm Ab Cm
E: "~ d5 eb5 d5 f5 d5 eb5 c5", F: "g4@2 ~ f4@2 ~ f4@10", G: "~@10 eb4@2 f4@2 g4 ~",
H: "[g4 ab4@3 g4@2 f4@3 ~ eb4@3 ~ [gb3,c4,d4]@17 ~]/2", // D7
I: "[~@8 b3@6 ~@12 eb4@3 ~@3 c5@3 eb5@2 f5 g5@3 f5@3 eb5@2 b4@5 c5@11 ~@2, ~@7 eb3@24 ~, ~@18 g3@43 ~@3, ~@11 c4@20 ~, ~@30 g4@33 ~]/4",
J: "[~@4 d5@2 c5 f4@7 ~@2]/2", K: "~@6 [d4,f4]@9 ~",
L: "[~@2 eb4@2 ~ f4 g4@3 f4@2 eb4@3 ~@4 ab4@11 ~ [b3,d4,g4]@16 f4@4 eb4@4 b3@4 c4@3 ~ eb4@2, ~@7 [gb3,c4,d4]@8 ~@17]/4", // G D7
M: "g4 ~@7", N: "~@3 c6@2 ~ d6@2 eb6@2 ~ c6@2 ~ g5 ~", O: "f5 g5 ~ f5@7 ~@6",
P: "~@3 g5@2 ~ g5 ~ g5@2 gb5 ~ ab5@2 gb5@2, ~@3 gb5 ~@12", Q: "g5@2 eb5@2 c5@3 ~@9",
R: "~@3 c4@2 ~ d4@2 eb4@2 ~ f4@2 ~ g4@2",
S: "[ab4@2 ~ bb4@2 ~ b4@2 c5@2 ~ d5@2 ~ eb5@7 ~ [eb5,g5] ~ [d5,f5] ~@3 [c5,eb5] ~@3]/2", // Eb Dm Cm
T: "[[eb5,g5]@2 ~@2 c5@2 ~@2 g4@2 ~@2 eb4 ~ [ab3,c4,f4]@14 ~@4, ~@4 eb5 ~@27]/2", // Eb Fm
U: "[~@5 a3 eb4 d4 a3@4 ab3@2 g3@4 ab3@8 ~@6]/2",
V: "[~@10 b3@2 d4@2 g3@4 c4@2 eb4@2 ab3@4 c4@2 eb4 ~ b3@4 c4@10 ~@4]/3", W: "[~@4 f4@6 eb4@4 d4@17 ~, c5@31 ~]/2",
X: "[~@4 f4@6 eb4@4 d4@17 ~]/2", Y: "~@6 eb6 d6 c6 ~ ab5 g5 f5 ~ eb5 d5",
Z: "c5 ~ ab4 g4 f4@2 ~@4 c4 ~ c4@4, ~@3 g4@3 ~@2",
AA: "~ d4 ~@2 e4 eb4 ~ d4 c4@2 ab4 ~ d5 ~ f5 ab5, ~@3 f4@2 ~@6 c5@2 ~@3", AB: "bb5@2 ab5 bb5 g5@10 ~@2",
AC: "~@6 eb6 d6 b5@2 c6@2 d6@2 eb6@2, ~@8 c6 ~@7", AD: "c6@3 g5@2 ~ eb5@2 d5@2 ~ c5@3 d5@2",
AE: "c5@3 f5@3 g5@2 ab5@3 g5@2 ~ f5@2",
AF: "[ab5@3 ~ ab5@2 g5@2 ~ b5@3 ab5@2 ~@2 [c3,c4]@6 [d3,d4]@4 [eb3,eb4,eb5,g5]@4 [f3,f4]@4 [g3,g4]@4 [ab3,ab4]@4 [bb3,bb4]@3 ~ [bb3,bb4]@13 ~@5, ~@14 g5@11 ~@5 [d5,f5]@8 [c5,eb5]@9 ~@17]/4", // C D Eb F G Ab Bb Dm …
AG: "g4@3 bb4@3 d5@8 c5@2, ~@6 c5 ~@9", AH: "[~ g4@2 bb4@2 ~@2 bb4@11 ab4@2 ~ g4@3 bb4@5 ab4@2 ~]/2",
AI: "[ab4@4 ~ gb4 ab4 ~ g4@10 f4@3 eb4 ~ d4 f4@5 eb4 ~ d4, ~@2 g4 ~@13]/2", AJ: "[b3@6 c4 d4 ~ c4@15 ~@8]/2",
AK: "[~@3 f3@2 ~ d4@2 f4@2 b4@2 d5 ~ eb5@4 d5@4 f5@4 d5@4 ~@2, ~@5 b3@2 ~@25]/2",
AL: "~@2 f3@2 b3@2 d4@2 f4@2 b4@2 ~ d5@2 ~", AM: "eb5@3 d5@2 ~ c5@2 b4@3 ~ g4@4",
AN: "[~@6 f4@2 b4@3 d5@2 ~ [eb5,g5] ~@2 d5@2 ~ [c5,eb5]@2 ~@2 [b4,d5]@4 ~ f5@3, f3, ~ b3@15, ~ d4@7, ~@16 f5@2 ~@10 d5@3 ~]/2", // Eb Cm Bm
AO: "[c5,eb5]@4 g4 ~@9 g4 ~", // Cm
AP: "[[b4,eb5]@4 g4 ~@7 b4 ~ db5 d5@3 [c5,eb5]@4 [b4,d5] ~ [c5,eb5]@4 g4@3 ~, ~@14 f5@3 ~@15]/2", // B Cm Bm Cm
AQ: "f4@3 ~ eb4@2 [c3,g3]@2 ~@2 c4@3 eb4 g4 c5, ~@6 eb3 ~@9", AR: "e4@4 f4 ab4 c5 ~ g4@2 ab4@2 c5@2 eb5@2",
AS: "b4@2 ~ [d5,g5]@2 ~ [d5,ab5]@2 [f5,b5]@3 [g5,eb6] ~@2 [g5,eb6]@2", // G5 Ddim Fdim Cm
AT: "[~@2 [f5,d6]@3 ~ [eb3,g3,c4,eb5,c6]@4 [eb3,g3,c4,c5,g5]@4 [eb3,g3,c4,d5,f5]@4 [eb3,g3,c4,c5,eb5]@4 [eb3,g3,c4,eb5,g5]@4 c5 d5 eb5 d5 c5@2, [eb3,g3,c4]@5 ~@21 [eb3,g3,c4]@3 ~@3]/2", // Dm Cm
AU: "[f4@3 ~@3 [f3,g3,ab3,c4]@4 ~@2 b5 eb6@2 ~ db6 c6 ~@2 g5 f5 ~ eb5 d5 ~ c5 ~ g4 f4 ~ eb4, ~@12 [f3,g3,ab3,c4]@2 ~ d6@2 ~@2 ab5@2 ~@6 ab4@2 ~@3]/2", // Fm
AV: "[f4 ~ g4 eb4 ~@20 eb5@4 ~@2 [ab4,c5,eb5,c6]@13 ~@5, ~@2 c4@6 g4@7 ~@9, ~@2 eb4@3 ~@3, ~@20 c5@8 g5@15 ~@5]/3", // Ab
AW: "~@14 g4 ~", AX: "~ c5@2 ~ eb5@2 c5@2 ~ g4@2 ~ eb4@2 c4@2", AY: "~ g3@3 ~@12",
AZ: "[~@6 [b2,b3]@4 [c3,c4]@4 [d3,d4]@4 [eb3,eb4]@4 [c3,eb3,g3,a3,g4]@4 [c3,eb3,g3,b3,b4]@4 ~ c4@15 ~@2, ~@10 c5@5 ~]/3", // B C D Eb Am7b5 Cm
BA: "~@7 c6", BB: "[~ ab5@3 g5@2 ~ eb5@3 c5@3 ~@9 gb4@2 ~ f4@6 ~, ~@7 d5@5 ~@4]/2",
BC: "~@2 d4 c4 b3 ~ c4 ~ eb4@2 ~@2 g4@2 ~@2", BD: "c5 ~ g4 ~@5, ~@4 eb4 ~@11",
BE: "~@6 [eb5,c6]@2 [c5,ab5]@3 ~ [eb5,c6]@3 ~", BF: "~@5 [ab4,b4,f5,ab5]@2 ~, ~@3 [d4,d5,d6]@4 ~",
BG: "~@6 d6 ~ d6 eb6@3 c6 ~ eb6 ~", BH: "c6@5 ~@11", BI: "~ eb7 ~ d7 c7 ~ ab6 g6 f6@2 eb6 d6 c6 ~ ab5 g5",
BJ: "f5 ~ eb5 d5 ~ c5 ab4 g4 f4 ~ eb4 d4 c4 b3 ~ c4",
BK: "[~@4 c4@2 eb4@4 [eb4,g4]@4 [eb4,g4,c5]@4 [eb4,g4,c5]@4 c5@4 [c5,g5]@5 ~, d4@22 [g4,eb5]@9 ~, ~@3 c4@8 ~@5]/2", // Eb Cm C5 Cm
BL: "[~@3 c6@2 ~ d6@2 ~ eb6@2 c6 ~ f6 ~ g6@2 f6@12 ~@3]/2",
BM: "~@2 [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [g5,eb6] ~ [f5,d6] ~ [f5,d6] ~", BN: "[eb5,c6] ~@3 [c5,g5] ~@11",
BO: "~@8 [f3,ab3,c4]@3 [f3,ab3,c4]@2 ~ f3@2, ~@2 [f3,ab3,c4]@5 ~ eb4@8, ~@5 d4@11, ~@8 g4@5 [ab3,c4,g4,bb4]@3, ~@11 [f4,ab4]@5", // Fm Abmaj7 Fm
BP: "[[f3,b3,eb4]@3 [f3,b3,eb4,bb4,d5]@2 [f3,eb4,c5,eb5]@2 [eb3,g3,bb3,d4,bb4,d5,f5]@4 ~ [c3,eb3,g3,bb3]@2 [c3,eb3,g3,bb3,eb5,g5,eb6]@2, [ab4,c5]@10 b3 ~@13 bb5@8, ~@12 [g5,g6] ~@3]/2", // Fm7b5 Bb F7 Ebmaj7 Cm7 Ab G
BQ: "[c3,eb3,g3,bb3,c5,eb5,c6] ~ [c3,eb3,g3,g5]@2 [c3,eb3,g3,g5,bb5,g6]@4, ~ [bb3,eb5,eb6]@3", // Cm7 Cm Cm7 Eb5
BR: "~@2 [ab3,c4,f4] ~ g4 ~@2 [c4,ab4]", BS: "~@6 [g4,b4]@9 ~, ~@2 [g1,g2]@11 ~@3",
BT: "~@2 [c2,eb2,g2,c3,c4,eb4,g4,c5]@8 [eb3,c4,g4] [f3,f4] [eb3,eb4] ~ g5 ~, ~@5 g3 ~@2", // Cm F Eb
BU: "c6 ~ d6 ~ eb6 ~ c6@2 g5@2 d6@2 c6@2 f5@2", BV: "g5 ab5 ~ g5 f5 ~ g5@2 ab5@2 bb5 ~ b5@2 d6 ~, [f3,ab3,c4]@15 ~",
BW: "g6 ab6 d6 ~ f6 d6 eb6@2 d6 b5 ~ bb5 ab5 g5 ~ f5", BX: "~ f5 ~ g5 eb5 ~ c5@6 b3 c4 b3 c4, eb5 ~@7",
BY: "d4 eb4 d4 eb4 gb4 g4 gb4 g4 b4 c5 b4 c5 d5 eb5 d5 eb5", BZ: "ab5 bb5 ~ c6 ~@2 ab5@2 ~@2 [ab3,c4,d4] ~ f5@2 ~@2",
CA: "eb6 f6 g6 ~@2 ab5 ~@2 [ab3,d4,g4]@2 ~ f5@2 ~ eb6@2", CB: "f6@2 g6@2 eb6 ~ c6 g5 eb5 ~@2 f5 ~ g5 f5 g5",
CC: "f5@2 eb5@2 c5 ~ ab4 ~ g4@4 f4@2 eb4@2",
CD: "[~@2 [f3,b3,eb4]@4 [f3,b3,eb4]@4 [f3,b3,eb4,ab4]@4 [f3,b3,eb4,g4,bb4]@4 [f3,b3,eb4,ab4,b4]@3 ~@5 [b3,d4,b4,d5]@4 ~@16 [d4,d6] ~@12 [ab4,ab5,ab6]@3 [f4,f5,f6]@2, ~@2 f4@12 ~@8 [g3,g4,g5]@9 ~@3 [eb4,eb5]@10 [g4,g5]@6 [eb4,eb5,eb6]@3 f5 [f4,f6]@2 [g4,g5,g6]@6 ~@2, ~@3 g4@4 ~@8 [ab3,ab4,ab5]@7 ~ d5@8 ~, ~@17 [c4,c5]@3 [c4,c5,c6]@11 ~, ~@38 [bb3,bb4,bb5]@6 [eb4,eb5]@3 [d4,d6]@15 ~@2]/4", // Fm7b5 Eb Fm7b5 Bm D Ab F G …
CE: "~ [f3,ab3,c4,eb4]@4 ~@3", CF: "~@3 [g5,g6] ~ [g5,g6] ~ [eb5,eb6], [f3,b3,d4]@13 ~@3",
CG: "~@2 [c5,eb5,c6] ~@3 g4 eb4 c4@3 ~ g4 ~ c5 ~, [c3,eb3,g3,bb3]", // Cm Cm7
CH: "eb5 ~ [ab4,ab5] ~ [g4,g5] ~ [eb4,eb5] ~ [c4,c5]@3 ~ [g3,g4]@2 ~@2", CI: "f4 ~ g4 f4 e4 ~ f4 ~ g4 ~ ab4 ~@3 f4 ~",
CJ: "[ab4@2 bb4 ~ b4 ~ d5 ~@3 f5@3 eb5 gb5 g5@2 ~ eb5@2 c5@2 ~@10]/2", CK: "~@12 b3 c4 d4 f4",
CL: "g4 bb4 a4 ab4 g4 bb4 g4 ab4 bb4 c5 d5 eb5 f5 g5 ab5 bb5",
CM: "b5 ~ d6 eb6 c6 ~ g6 ~ d6 ~ f6 ~ d6 ~ eb6 ~, ~ c6@2 ~@13", CN: "g5 ~ c6 ~ eb6 ~ g6 ~ d7 eb7 g6 ~ f6 ~ ab6 ~",
CO: "~@2 g6@2 f6@2 bb5 ~@3 eb6@2 ~@2 d6@2, c6@5 ~@3 ab5@4 g5@4",
CP: "f5 c6 eb5 b5 ab5 f5 d5 b4, ~@2 [f3,b3,e4]@2 ~ [f3,b3,e4]@2 ~", // E
CQ: "ab4 b4 ab4 ~ g4 ab4 g4 ~ f4 ~ f4@2 eb4@4, ~@9 g4@2 ~@5", CR: "~@6 d4@3 eb4@3 f4@2 g4@2, ~@3 c4@12 ~",
CS: "[[f3,ab3,c4]@9 ~ [f3,ab3,c4]@3 ~@5 f5@4 ~@4 [f3,b3,d4,f5]@3 ~ eb5@4 ~@4 [c3,eb3,g3]@9 ~, ~@7 [f3,b3,d4]@6 ~@2 [c3,eb3,g3]@4 ~@5, ~@22 c5@8 ~@4 c5@13 ~]/3", // Fm Bdim Cm Bdim Cm
CT: "~@2 [eb5,ab5] ~ [d5,g5] ~ [c5,f5] ~ [bb4,eb5]@3 ~ [g4,c5]@4", // Ab5 G5 F5 Eb5 C5
})).s("gm_piano").gain(0.51).pan(0.6)
// chords · pad warm
const pad_warm = note(`<
~@16 A@12 B@2 C@2 A@12 B@2 C@2 D E@3 D E@3 D E@3 D E@3 A@12 B@2 C@2 D E@3 D E@3 D E@3 D E@3 F@3 G@5 H@6 D E@3 D E@3 D
E@3 A@12 B@2 C@2 D E@3 D E@3 D E@3 D E@3 D E@3 D E@3 D E@3 D E@3 D E@3 D E@3 D E@3 D E@3 D E@3 D I@7
>`.pickRestart({
A: "[[eb3,ab3,c4] [f3,b3] [eb3,g3,c4]@2, eb4]/4", B: "[[d3,gb3,a3] [f3,b3], d4]/2", C: "[eb3,g3,c4]/2",
D: "[f3,ab3,c4]", E: "[[b3,d4] [eb3,c4]@2, g3]/3", F: "[[eb3,g3,eb4]@31 [d3,f4]@17, bb3]/3",
G: "[~@15 c3@16 ~ bb2@16 ab2@32, ~@3 [g3,c4,eb4]@13]/5", H: "[g2,b3,d4]/6", I: "[[b3,d4] [eb3,c4]@6, g3]/7",
})).s("gm_pad_warm").gain(0.13)
// chords · epiano2
const epiano2 = note(`<
A ~ B C A ~ A ~ D E F C D E F C D E F C D E F C D E F ~ G H F ~ I E F ~ I E F C D E F ~ G J K@2 L M N O L M N O L M N
O L M N P I E F ~ I E F C D E F ~ G J K@2 Q@2 N O R@2 N O S@2 N O L M N P T@2 U@2 V W X@2 Y@3 ~@3 Z M N O L M N O L M
N O I E F ~ I E F C D E F ~ G J K@2 AA@2 N O AB@2 N O AB@2 N O L M N O AC@2 N O AB@2 N O AB@2 N O AB@2 N O AC@2 N O
AB@2 N O AB@2 N O AB@2 N O AC@2 N O AB@2 N O AD@4
>`.pickRestart({
A: "[g3,c4]@4 ~@2 [g3,c4]@4 ~@2 [g3,c4]@3 ~", B: "[g3,c4]@2 ~ [g3,c4]@2 ~ [g3,c4]@2", C: "~@6 [bb3,eb4] ~",
D: "[ab3,c4]@2 ~ [ab3,c4]@2 ~@3", E: "[g3,c4]@4 ~@2 [g3,c4]@3 ~@7", F: "[g3,c4]@3 ~@3 [g3,c4]@3 ~@3 [g3,c4]@3 ~",
G: "[a3,d4]@3 ~@3 [a3,d4]@3 ~@7", H: "[g3,d4]@4 ~@2 [g3,b3]@3 ~@7", I: "[ab3,c4]@4 ~@2 [ab3,c4]@3 ~@3 [ab3,c4]@2 ~@2",
J: "[g3,d4]@4 ~@2 [g3,d4]@3 ~@7", K: "[g3,c4]@3 ~@3 [g3,c4]@3 ~@7", L: "~@6 [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4",
M: "~@6 [g3,b3,d4]@3 ~@3 [g3,b3,d4]@2 ~@2", N: "[g3,c4,eb4]@3 ~@3 [g3,c4,eb4]@4 ~@2 [g3,c4,eb4]@3 ~",
O: "~@6 [g3,c4,eb4]@3 ~@3 [g3,c4,eb4]@3 ~", P: "~@4 [eb3,g3,c4]@3 ~@5 [g3,c4,eb4]@3 ~",
Q: "[~@6 [f3,ab3,c4]@3 ~@5 d4@8 [g3,b3,d4]@3 ~@3 [g3,b3,d4]@2 ~@2, c5@13 ~@3, ~@2 f4@3 eb4@2 ~@9, ~@3 [f3,ab3,c4] ~@4]/2", // Fm G Fm
R: "[~@6 [f3,ab3,c4]@3 ~@5 d4@8 [g3,b3,d4]@3 ~@3 [g3,b3,d4]@2 ~@2, ~@4 f4@27 ~, ~@5 eb4@2 ~@9, ~@3 [f3,ab3,c4] ~@4]/2", // Fm G Fm
S: "[~@6 [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@3 d4@7 [g3,b3,d4]@3 ~@3 [g3,b3,d4]@2 ~@2, ~@2 f4@13 ~, ~@5 eb4@2 ~@9]/2", // Fm G
T: "[eb3,bb3,eb4,g4]/2", U: "[d3,bb3,f4,bb4]/2", V: "[c3,c4,eb4,g4]", W: "[bb2,c4,eb4,g4]", X: "[ab2,ab3,c4,eb4]/2",
Y: "[[g2,g3,b3,d4]@7 ~]/3", Z: "[f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@4",
AA: "[[f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@3 ~@5 d4@7 ~ [g3,b3,d4]@3 ~@3 [g3,b3,d4]@2 ~@2, c5@15 ~, ~@2 f4@3 eb4@2 ~@9, ~@3 [f3,ab3,c4] ~@4]/2", // Fm G Fm
AB: "[~@6 [f3,ab3,c4]@3 ~@5 d4@8 [g3,b3,d4]@3 ~@3 [g3,b3,d4]@2 ~@2, c5@9 ~@7, ~@2 f4@3 eb4@2 ~@9, ~@3 [f3,ab3,c4] ~@4]/2", // Fm G Fm
AC: "[[f3,ab3,c4]@3 ~@3 [f3,ab3,c4]@3 ~@5 d4@8 [g3,b3,d4]@3 ~@3 [g3,b3,d4]@2 ~@2, c5@9 ~@7, ~@2 f4@3 eb4@2 ~@9, ~@3 [f3,ab3,c4] ~@4]/2", // Fm G Fm
AD: "[eb3,g3,c4]/4", // Cm
})).s("gm_epiano2").gain(0.31).pan(0.6)
// other · distortion guitar
const distortion_guitar = note(`<
~@80 A@2 ~@2 B@2 ~@2 C@2 ~@48 A@2 ~@2 D@2 ~@2 D@2 ~@2 D@2 ~@2 A@2 ~@2 D@2 ~@2 D@2 ~@2 D@2 ~@2 A@2 ~@2 D@2 ~@2 D@2 ~@2
D@2 ~@2 A@2 ~@2 D@2 ~@6
>`.pickRestart({
A: "[~@2 f4@3 eb4@2 d4@9, c5 ~]/2", B: "[~@10 eb4@4 d4@17 ~, ~ f4@3 ~@4]/2",
C: "[~@10 eb4@4 ~ d4@15 ~@2, ~@4 f4@13 ~@15]/2", D: "[~@2 f4@3 eb4@2 d4@9]/2",
})).s("gm_distortion_guitar").gain(0.24).pan(0.2)
// drums · kick
const kick = s("bd").struct(`<
A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C@14 A B A B A B A B A B A B A B A B A B A B
A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
B A B A B D ~@3
>`.pickRestart({
A: "x ~@2 x!2 ~ x ~", B: "x ~@2 x!2 ~ x!2", C: "x!2", D: "x",
})).gain(0.72)
// drums · rim
const rim = s("rim").struct(`<
~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@15 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
~ A ~ A ~@4
>`.pickRestart({
A: "~@2 x ~@2 x ~@2",
})).gain(0.56)
// drums · rim · soft notes
const rim_soft = s("rim").struct("<~@96 [x ~ x!3 ~ x!2]!14 ~@88>").gain(0.32)
// drums · snare
const snare = s("sd").struct("<~@32 A@15 B A@14 C A@16 ~ A@15 D ~@14 A@7 C A@19 ~ A@15 D A@40 ~@4>".pickRestart({
A: "~ x", B: "~@4 x!2 ~@2", C: "~@4 x ~@2 x", D: "x!2",
})).gain(0.56)
// drums · low tom
const low_tom = s("lt").struct("<~@63 A ~@15 B ~@15 A ~@41 B ~@15 A ~@31 C ~@7 C ~@4>".pickRestart({
A: "~@2 x!2 ~@4", B: "~ x", C: "~@3 x",
})).gain(0.56)
// drums · pedal hat
const pedal_hat = s("hh").struct("<[x!4]!96 ~@14 [x!4]!84 x ~@3>").gain(0.8)
// drums · mid tom
const mid_tom = s("mt").struct(`<
A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
// … 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.