KeyC majorTempo165 bpm
0:00/0:00
// 24.000 baci — Celentano
// 165 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 109 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(165/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, A@4 for four bars: edit a riff to change every repeat.
// chords · synth strings 1
const synth_strings_1 = note(`<
~ A@4 B@6 C@2 D E F@2 D G A@2 C@2 A@2 H@2 ~@2 I@2 A@2 C@2 J@2 B@6 C@2 D E F@2 D G A@2 C@2 A@2 H@2 ~@2 I@2 A@2 C@2 D K
L@6 M@2 N O P@2 N K Q@2 M@2 Q@2 R@2 ~@2 S@2 Q@2 M@2 N@2 M@2 N@2 M@2 T@2
>`.pickRestart({
A: "[g3,c4,e4]/2", B: "[g3,c4,e4]/6", C: "[g3,b3,f4]/2", D: "[g3,c4,e4]", E: "[g3,a#3,e4]", F: "[f3,a3,f4]/2",
G: "[g3,b3,f4]", H: "[[g3,b3,f4]@7 ~]/2", I: "[a3,c4,f4]/2", J: "[[g3,c4,e4]@15 ~]/2", K: "[g#3,c4,f#4]",
L: "[g#3,c#4,f4]/6", M: "[g#3,c4,f#4]/2", N: "[g#3,c#4,f4]", O: "[g#3,b3,f4]", P: "[f#3,a#3,f#4]/2",
Q: "[g#3,c#4,f4]/2", R: "[[g#3,c4,f#4]@7 ~]/2", S: "[a#3,c#4,f#4]/2", T: "[[g#3,c#4,f4]@3 ~]/2",
})).s("gm_synth_strings_1").gain(0.17)
// bass · electric bass finger
const bass = note(`<
A@2 B C D C B C E C B F G H I J K L M C N F G O P F Q ~ R S K C@2 F G T O C B C E C B F G C I U K V M O W F G C@2 X Q
~ Y U K C@2 F G O Z AA AB AC AD AC AD AE AF AC AG AH AI AJ AK AL AM AN AF AC AO AE AP ~ AQ AH AI AL AR AS AT AL AC AU
AV AC@2 AW AF AX@2
>`.pickRestart({
A: "[~@15 c2@5 a1@4 g1@5 ~@2 g1]/2", B: "c2@5 ~@2 c2 e2@4 g2@4", C: "c2@5 ~@2 c2 g1@5 ~@2 g1", D: "c2 g1 c2 e2",
E: "c2@6 ~ c2 a1@4 g1@4", F: "d2@5 ~@2 d2 g1@5 ~@2 g1", G: "d2 g1 a1 b1", H: "c2@4 a1@4 g1@4 e1 a1 ~ e2",
I: "c2 a#1 a1 g1", J: "f1@4 d1@4 c1@6 ~ c1", K: "f1@5 ~@2 a1 c2@4 a1@4", L: "c2 g1 e2 c2", M: "d2 g1 a1 d2",
N: "c2@5 ~@2 c2 e2@4 g1@4", O: "c2 a1 g1 e1", P: "c2 a1 g1 c2", Q: "d2@4 g1@4 a1@4 b1@3 c2", R: "~@3 c1",
S: "f1@4 a1@4 c1@5 ~@2 c1", T: "c2@4 a1@4 g1@5 ~@2 g1", U: "f1@5 ~@2 f1 c1@5 ~@2 c1", V: "c2 g2 g1 c2",
W: "c1@4 c1 e1 ~ g1 c2 g2 ~ e2 g1 a1 ~ c#2", X: "d1@5 ~@2 d1 g1@5 ~@2 g1", Y: "~@2 c1 e1",
Z: "g#1@5 ~@2 g#1 d#1@4 g#1@4", AA: "c#2 g#1 f2 c#2", AB: "g#1 f1 c#2 g#2", AC: "c#2@5 ~@2 c#2 g#1@5 ~@2 g#1",
AD: "c#2@5 ~@2 c#2 a#1@4 g#1@4", AE: "d#2@5 ~@2 d#2 g#1@5 ~@2 g#1", AF: "d#2 g#1 a#1 c2", AG: "c#2 b1 a#1 g#1",
AH: "f#1@5 ~@2 f#1 c#1@5 ~@2 c#1", AI: "f#1@5 ~@2 a#1 c#2@4 a#1@4", AJ: "c#2 g#2 g#1 c#2", AK: "d#2 g#1 a#1 d#2",
AL: "c#2 a#1 g#1 f1", AM: "c#2 a#1 f2 g#1", AN: "d#2@4 c2@4 g#1@5 ~@2 g#1", AO: "c#2@4 a#1@4 g#1@5 ~@2 g#1",
AP: "d#2@4 g#1@4 a#1@4 c2@3 c#2", AQ: "~@3 c#1", AR: "c#1@4 c#2 f2 ~ a#1 g#1@5 ~@2 g#1", AS: "d#2 c2 g#1 f#1",
AT: "d#2@4 g#1@4 a#1@4 c2@2 ~ c2", AU: "d#2@5 ~@2 d#2 g#1@4 f#1@4", AV: "d#1 g#1 a#1 c2", AW: "d#1 f#1 g#1 c2",
AX: "[c#1@3 g#1 a#1@3 c#2@4 g#1 a#1@3 c#1@7 ~ c#1@4 ~@5]/2",
})).s("gm_electric_bass_finger").gain(0.51)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
A@8 B@3 C@2 D@2 E@2 F G H@2 C@2 H@2 I@2 ~@2 J@6 K@8 C@2 D@2 E@2 F G H@2 C@2 H@2 I@2 ~@2 E@2 H@2 C@2 F L M@6 N@2 O@2
P@2 Q@2 R@2 N@2 R@2 S@2 ~@2 P@2 R@2 N@2 R@2 N@2 R@2 N@2 T@2
>`.pickRestart({
A: "[~@15 [g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 [g3,c4,e4]@4, ~@15 c3@17 c3@16 c3@16 c3@16 c3@16 c3@16 c3@16, ~@28 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@13]/8", // C
B: "[~@4 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 [g3,c4,e4]@4, c3 c3 c3, ~@12 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@13]/3", // C
C: "[~@4 [b3,f4]@2 ~ [b3,f4]@5 ~@8 [b3,f4]@2 ~ [b3,f4]@5 [g3,b3,f4]@4, g2 g2, ~@3 g3@3 g3@5 ~ [g3,b3,f4]@7 g3@3 g3@5 ~@5]/2", // Bdim G7
D: "[~@4 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,a#3,e4]@3 [g3,a#3,e4]@5 [g3,a#3,e4]@4, c3 c3, ~@12 [g3,c4,e4]@7 ~@13]/2", // C Edim C
E: "[~@4 [a3,c4,f4]@3 [a3,c4,f4]@5 ~@8 [a3,c4,f4]@3 [a3,c4,f4]@5 [a3,c4,f4]@4, f2 f2, ~@12 [a3,c4,f4]@7 ~@13]/2", // F
F: "~@4 [g3,c4,e4]@3 [g3,c4,e4]@5 [g3,c4,e4]@4, c3", // C
G: "~@4 [b3,f4]@2 ~ [b3,f4]@5 [g3,b3,f4]@4, g2, ~@3 g3@3 g3@5 ~@5", // Bdim G7
H: "[~@4 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 [g3,c4,e4]@4, c3 c3, ~@12 [g3,c4,e4]@7 ~@13]/2", // C
I: "[~@4 [b3,f4]@2 ~ [b3,f4]@5 ~@8 [b3,f4]@2 ~ [b3,f4]@5 [g3,b3,f4]@3 [c3,g3,c4,e4], g2@16 g2@15 ~, ~@3 g3@3 g3@5 ~ [g3,b3,f4]@7 g3@3 g3@5 ~@5]/2", // Bdim G7 C G7
J: "[f2@4 [a3,c4,f4]@3 [a3,c4,f4]@5 ~@8 [a3,c4,f4]@3 [a3,c4,f4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [b3,f4]@2 ~ [b3,f4]@5 ~@8 [b3,f4]@2 ~ [b3,f4]@5 [g3,b3,f4]@4, ~ f2@3 f2@4 c3@4 c3@4 g2@4 g2@4, ~@12 [a3,c4,f4]@7 ~@9 [a3,c4,f4]@7 ~@9 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 g3@3 g3@5 ~ [g3,b3,f4]@7 g3@3 g3@5 ~@5]/6", // F C Bdim G7 F C G7
K: "[~@4 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 ~@8 [g3,c4,e4]@3 [g3,c4,e4]@5 [g3,c4,e4]@4, c3 c3 c3 c3 c3 c3 c3 c3, ~@12 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@9 [g3,c4,e4]@7 ~@13]/8", // C
L: "~@4 [g#3,c4,f#4]@3 [g#3,c4,f#4]@5 [g#3,c4,f#4]@4, g#2", // G#7
M: "[~@4 [g#3,c#4,f4]@3 [g#3,c#4,f4]@5 ~@8 [g#3,c#4,f4]@3 [g#3,c#4,f4]@5 ~@8 [g#3,c#4,f4]@3 [g#3,c#4,f4]@5 ~@8 [g#3,c#4,f4]@3 [g#3,c#4,f4]@5 ~@8 [g#3,c#4,f4]@3 [g#3,c#4,f4]@5 ~@8 [g#3,c#4,f4]@3 [g#3,c#4,f4]@5 [g#3,c#4,f4]@4, c#3 c#3 c#3 c#3 c#3 c#3, ~@12 [g#3,c#4,f4]@7 ~@9 [g#3,c#4,f4]@7 ~@9 [g#3,c#4,f4]@7 ~@9 [g#3,c#4,f4]@7 ~@9 [g#3,c#4,f4]@7 ~@13]/6", // C#
N: "[~@4 [c4,f#4]@2 ~ [c4,f#4]@5 ~@8 [c4,f#4]@2 ~ [c4,f#4]@5 [g#3,c4,f#4]@4, g#2 g#2, ~@3 g#3@3 g#3@5 ~ [g#3,c4,f#4]@7 g#3@3 g#3@5 ~@5]/2", // Cdim G#7
O: "[~@4 [g#3,c#4,f4]@3 [g#3,c#4,f4]@5 ~@8 [g#3,b3,f4]@3 [g#3,b3,f4]@5 [g#3,b3,f4]@4, c#3 c#3, ~@12 [g#3,c#4,f4]@7 ~@13]/2", // C# Fdim C#
P: "[~@4 [a#3,c#4,f#4]@3 [a#3,c#4,f#4]@5 ~@8 [a#3,c#4,f#4]@3 [a#3,c#4,f#4]@5 [a#3,c#4,f#4]@4, f#2 f#2, ~@12 [a#3,c#4,f#4]@7 ~@13]/2", // F#
Q: "[~@4 [g#3,c#4,f4]@3 [g#3,c#4,f4]@5 ~@8 [c4,f#4]@2 ~ [c4,f#4]@5 [g#3,c4,f#4]@4, c#3 g#2, ~@12 [g#3,c#4,f4]@7 g#3@3 g#3@5 ~@5]/2", // C# Cdim G#7 C#
R: "[~@4 [g#3,c#4,f4]@3 [g#3,c#4,f4]@5 ~@8 [g#3,c#4,f4]@3 [g#3,c#4,f4]@5 [g#3,c#4,f4]@4, c#3 c#3, ~@12 [g#3,c#4,f4]@7 ~@13]/2", // C#
S: "[~@4 [c4,f#4]@2 ~ [c4,f#4]@5 ~@8 [c4,f#4]@2 ~ [c4,f#4]@5 [g#3,c4,f#4]@3 [c#3,g#3,c#4,f4], g#2@8 g#2@7 ~, ~@3 g#3@3 g#3@5 ~ [g#3,c4,f#4]@7 g#3@3 g#3@5 ~@5]/2", // Cdim G#7 C# G#7
T: "[~@4 [g#3,c#4,f4]@3 [g#3,c#4,f4]@5 [g#3,c#4,f4]@3 ~ c#3@4 c#3@3 ~ c#3@3 ~@5, c#3@15 [g#3,c#4,f4]@8 [g#3,f4,g#4,c#5]@4 ~@5]/2", // C#
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.4)
// other · marimba
const marimba = note(`<
~ A B C D E F C D E F G H I J K L M N C D O P Q R S T ~@2 U@2 V W S@2 C D E F C D E F G H I J K X M N C D P@2 Y@2 Z AA
~@2 AB AC W V S@2 AD AE AF AG AH AI AF AG AJ AK AL AM AN AO AP AQ AH AI AR@2 AS@2 AT AU ~@2 AV AW AX@2 AT@2 AH@2 AT@2
AH@2 AT@2 AY AZ
>`.pickRestart({
A: "~@3 g3 c4@2 ~@2 [c4,f4]@2 ~ [c4,e4] ~@3 g3, ~@4 e4 ~@11", B: "[c4,e4]@2 ~ g3 [c4,f4]@2 ~ [c4,e4] ~@8",
C: "~@3 g3 c4@2 ~ g3 [c4,f4]@2 ~ [c4,e4] ~@3 g3, ~@4 e4 ~@11", D: "c4@2 ~ g3 [c4,f4]@2 ~ [c4,e4]@2 ~@7, e4 ~@15",
E: "~@3 g3 [c4,e4] ~@6 [c4,e4] ~@3 g3", F: "[c4,e4] ~@6 [c4,e4] ~@8",
G: "g3@2 ~ [b3,f4] ~@3 g3 f4@2 ~@5 g3, ~@8 b3 ~@7", H: "[b3,f4] ~@3 g3@3 [b3,f4]@3 ~@6",
I: "e4 [c4,e4] c4 [c4,e4] e4 [c4,e4] c4 [c4,e4] e4 [c4,e4] c4 [c4,e4] ~ c4@3, ~@6 e4 ~", // C
J: "g4 [a#3,g4] a#3 [a#3,g4] g4 [a#3,g4] a#3 [a#3,g4] g4 [a#3,g4] a#3 [a#3,g4] ~ a#3@3, ~@12 g4@3 ~", // D#
K: "~@3 [a3,d4,f4] ~@4 [a3,c4,f4] ~@7", L: "[a3,c4,f4] ~@6 [a3,c4,f4]@3 ~ [a3,c4] ~@4",
M: "g3@2 ~ [c4,e4] ~@3 g3 [c4,e4]@2 ~@6", N: "g3@3 [b3,f4] ~@3 g3 [b3,f4] ~@7",
O: "b4 [g4,b4] g4 [g4,b4] b4 [g4,b4] g4 [g4,b4] ~ g4@3 ~@4, ~@4 b4 ~@3", // G
P: "b4 [g4,b4] g4 [g4,b4] b4 [g4,b4] g4 [g4,b4] ~ g4@3 ~@4, ~@8 b4@3 ~@5", // G
Q: "c5 [g4,c5] g4 [g4,c5] c5 [g4,c5] g4 [g4,c5] ~ g4@3 ~@4, ~@4 c5 ~@3", // C5
R: "c5 [g4,c5] g4 [g4,c5] c5 [g4,c5] g4 [g4,c5] c5 g4@2 ~@5", // C5
S: "d5 [g4,d5] g4 [g4,d5] d5 [g4,d5] g4 [g4,d5] ~ g4@2 ~@5, ~@4 d5 ~@3", // G5
T: "d5 [g4,d5] g4 [g4,d5] d5 [g4,d5] g4 [g4,d5] ~ g4@3 ~@3 [e4,c5], ~@4 d5 ~@3", // G5 C
U: "c5 [f4,c5] f4 [f4,c5] c5 [f4,c5] f4 [f4,c5] c5 f4@2 ~@5", // F5
V: "c5 [e4,c5] e4 [e4,c5] c5 [e4,c5] e4 [e4,c5] ~ e4@2 ~@5, ~@4 c5 ~@3", // C
W: "c5 [e4,c5] e4 [e4,c5] c5 [e4,c5] e4 [e4,c5] ~ e4@3 ~@4, ~@8 c5@3 ~@5", X: "[a3,c4,f4] ~@6 [a3,c4,f4]@3 ~@6",
Y: "c5 [g4,c5] g4 [g4,c5] c5 [g4,c5] g4 [g4,c5] ~ g4@3 ~@4, ~@8 c5@3 ~@5", // C5
Z: "d5 [g4,d5] g4 [g4,d5] d5 [g4,d5] g4 [g4,d5] ~ g4@3 ~@4, ~@4 d5 ~@3", // G5
AA: "d5 [g4,d5] g4 [g4,d5] d5 [g4,d5] g4 [g4,d5] ~ g4@2 ~@4 [e4,c5], ~@4 d5 ~@3", // G5 C
AB: "c5 [f4,c5] f4 [f4,c5] c5 [f4,c5] f4 [f4,c5] ~ f4@2 ~@5, ~@8 c5@3 ~@5", // F5
AC: "c5 [f4,c5] f4 [f4,c5] c5 [f4,c5] f4 [f4,c5] ~ f4@2 ~@5, ~@4 c5 ~@3", // F5
AD: "~@3 g3 c4@2 ~ g3 [c4,f4]@2 ~ [c4,e4] ~@3 g#3, ~@4 e4 ~@11", // F5 C
AE: "c4@2 ~ g#3 [c4,f#4]@2 ~ [c4,f#4]@2 ~@7, f#4 ~@15", AF: "~@3 g#3 [c#4,f4] ~@6 [c#4,f4] ~@3 g#3",
AG: "[c#4,f4] ~@6 [c#4,f4] ~@8", AH: "~@3 g#3 c#4@2 ~ g#3 [c#4,f#4]@2 ~ [c#4,f4] ~@3 g#3, ~@4 f4 ~@11",
AI: "c#4@2 ~ g#3 [c#4,f#4]@2 ~ [c#4,f4]@2 ~@7, f4 ~@15", AJ: "g#3@2 ~ [c4,f#4] ~@3 g#3 f#4@2 ~@5 g#3, ~@8 c4 ~@7",
AK: "[c4,f#4] ~@3 g#3@3 [c4,f#4]@3 ~@6", // Cdim
AL: "f4 [c#4,f4] c#4 [c#4,f4] f4 [c#4,f4] c#4 [c#4,f4] f4 [c#4,f4] c#4 [c#4,f4] ~ c#4@3, ~@3 f4", // C#
AM: "g#4 [b3,g#4] b3 [b3,g#4] g#4 [b3,g#4] b3 [b3,g#4] g#4 [b3,g#4] b3 [b3,g#4] ~ b3@3, ~@3 g#4", // E
AN: "~@3 [a#3,d#4,f#4] ~@4 [a#3,c#4,f#4] ~@7", AO: "[a#3,c#4,f#4] ~@6 [a#3,c#4,f#4]@3 ~@6",
AP: "g#3@2 ~ [c#4,f4] ~@3 g#3 [c#4,f4]@2 ~@6", AQ: "g#3@2 ~ [c4,f#4] ~@3 g#3 [c4,f#4] ~@7",
AR: "c5 [g#4,c5] g#4 [g#4,c5] c5 [g#4,c5] g#4 [g#4,c5] ~ g#4@2 ~@5, ~@4 c5 ~@3", // G#
AS: "c#5 [g#4,c#5] g#4 [g#4,c#5] c#5 [g#4,c#5] g#4 [g#4,c#5] ~ g#4@2 ~@5, ~@4 c#5 ~@3", // C#5
AT: "d#5 [g#4,d#5] g#4 [g#4,d#5] d#5 [g#4,d#5] g#4 [g#4,d#5] ~ g#4@2 ~@5, ~@4 d#5 ~@3", // G#5
AU: "d#5 [g#4,d#5] g#4 [g#4,d#5] d#5 [g#4,d#5] g#4 [g#4,d#5] ~ g#4@3 ~@3 [f4,c#5], ~@4 d#5 ~@3", // G#5 C#
AV: "c#5 [f#4,c#5] f#4 [f#4,c#5] c#5 [f#4,c#5] f#4 [f#4,c#5] c#5 f#4 ~@6", // F#5
AW: "c#5 [f#4,c#5] f#4 [f#4,c#5] c#5 [f#4,c#5] f#4 [f#4,c#5] ~ f#4 ~@6, ~@4 c#5 ~@3", // F#5
AX: "c#5 [f4,c#5] f4 [f4,c#5] c#5 [f4,c#5] f4 [f4,c#5] ~ f4@2 ~@5, ~@4 c#5 ~@3", // C#
AY: "g#3@3 g#3 a#3@3 c#4@4 g#3 a#3@3 c#4", AZ: "~@7 c#4@5 ~@4",
})).s("gm_marimba").gain(0.23).pan(0.3)
// chords · pizzicato strings
const pizzicato_strings = note(`<
~ A B C B D E C B D E F G H I J K L M C B N@2 O P N Q ~@2 R@2 S@2 T@2 C B D E C B D E U G ~@2 J K V W C B N@2 O P N Q
~@2 R@2 S@2 T@2 C X Y Z AA AB Y Z AC AD ~@2 AE AF AG AH AA AI ~@5 AJ ~@2 AK@2 AL@2 AM@2 AA AN AO AM AA@2 AM AP AQ AR
>`.pickRestart({
A: "~@3 c3 [c4,e4] ~@3 [c4,f4] ~@2 [c4,e4] ~@3 c3", B: "[c4,e4] ~@2 c3 [c4,f4] ~@2 [c4,e4] ~@8",
C: "~@3 c3 [c4,e4] ~@2 c3 [c4,f4] ~@2 [c4,e4] ~@3 c3", D: "~@3 c3 [c4,e4] ~@6 [c4,e4] ~@3 c3",
E: "[c4,e4] ~@6 [c4,e4] ~@8", F: "g2 ~@2 [b3,f4] ~@3 g2 [b3,f4] ~@6 g2", G: "[b3,f4] ~@3 g2 ~@2 [b3,f4] ~@8",
H: "[c4,e4] ~@10 [c4,e4] ~@4", I: "~@3 [a#3,e4] ~@3 [a#3,e4] ~@4 [a#3,e4] ~@3",
J: "~@3 [a3,d4,f4] ~@4 [a3,c4,f4] ~@7", K: "[a3,c4,f4] ~@6 [a3,c4,f4] ~@3 [a3,c4] ~@4",
L: "~@3 [c4,e4] ~@4 [c4,e4] ~@3 [c4,e4] ~@3", M: "~@3 [b3,f4] ~@4 [b3,f4] ~@3 [g3,d4] ~@3",
N: "~@4 g3@2 ~@2 b3 ~@3 d4 ~@3", O: "~@4 c4@2 ~@2 e4 ~@3 g4 ~@3", P: "~@3 g4 c4@2 ~@2 e4 ~@3 g4 ~@3",
Q: "~@3 g4 g3@2 ~@2 b3 ~@3 d4 ~@2 [e4,c5]", R: "~@12 [c4,f4] ~@3", S: "~@12 [c4,e4] ~@3",
T: "~@4 [b3,f4] ~@7 [b3,f4] ~@3", U: "~@3 [b3,f4] ~@3 g2 [b3,f4] ~@6 g2", V: "c3 ~@2 [c4,e4] ~@3 c3 [c4,e4] ~@7",
W: "g2 ~@2 [b3,f4] ~@3 g2 [b3,f4] ~@7", X: "[c4,f#4] ~@2 c3 [c4,f#4] ~@2 [c4,f#4] ~@8",
Y: "~@3 c#3 [c#4,f4] ~@6 [c#4,f4] ~@3 c#3", Z: "[c#4,f4] ~@6 [c#4,f4] ~@8",
AA: "~@3 c#3 [c#4,f4] ~@2 c#3 [c#4,f#4] ~@2 [c#4,f4] ~@3 c#3", AB: "[c#4,f4] ~@2 c#3 [c#4,f#4] ~@2 [c#4,f4] ~@7 c#3",
AC: "~@3 [c4,f#4] ~@3 g#2 [c4,f#4] ~@6 g#2", AD: "[c4,f#4] ~@3 g#2 ~@2 [c4,f#4] ~@8",
AE: "~@3 [a#3,d#4,f#4] ~@4 [a#3,c#4,f#4] ~@7", AF: "[a#3,c#4,f#4] ~@6 [a#3,c#4,f#4] ~@3 [a#3,c#4] ~@4",
AG: "c#3 ~@2 [c#4,f4] ~@3 c#3 [c#4,f4] ~@7", AH: "g#2 ~@2 [c4,f#4] ~@3 g#2 [c4,f#4] ~@7",
AI: "[c#4,f4] ~@2 c#3 [c#4,f#4] ~@2 [c#4,f4] ~@8", AJ: "~@15 [f4,c#5]", AK: "~@12 [c#4,f#4] ~@3",
AL: "~@12 [c#4,f4] ~@3", AM: "~@4 [c4,f#4] ~@7 [c4,f#4] ~@3",
AN: "~@3 c#3 [c#4,f4] ~@2 c#3 [c#4,f#4] ~@2 [c#4,f4] ~@4", AO: "~@4 [c4,f#4] ~@7 [c4,f#4] ~@2 [c4,f#4]",
AP: "~@4 [c4,f#4] ~@2 [c4,f#4] ~@4 [c4,f#4] ~@3", AQ: "c#3 ~@2 g#3 a#3 ~@2 c#4 ~@3 g#3 a#3 ~@2 c#4",
AR: "f3 g#3 ~ a#3 c#4 d#4 ~ f4 ~@8",
})).s("gm_pizzicato_strings").gain(0.37).pan(0.9)
// other · celesta
const celesta = note(`<
~@21 A@2 B C A D ~@2 E F G H I J K H ~@12 L M N ~ A@2 B C A D ~@2 E F G H I J ~@10 O P Q ~ R S T ~ U@2 V W U X ~@2 Y Z
AA AB AC AD ~@2 AC AD ~@2 AC AD AE AF
>`.pickRestart({
A: "~@4 g4@2 ~@2 b4 ~@3 d5 ~@3", B: "~@4 c5@2 ~@2 e5 ~@3 g5 ~@3", C: "~@3 g5 c5@2 ~@2 e5 ~@3 g5 ~@3",
D: "~@3 g5 g4@2 ~@2 b4 ~@3 d5 ~@2 [e5,c6]", E: "~@4 c5 ~@6 a4@2 ~@3", F: "g4 ~@6 f4 ~@8", G: "~@4 g4@2 ~@5 e4 ~@4",
H: "g4 ~@6 c5 ~@8", I: "~@4 d5 ~@6 b4 ~@4", J: "g4 ~@6 b4 ~@8", K: "~@4 e5 ~@6 c5 ~@4",
L: "~@4 [c5,c6] ~@6 [c5,c6] ~@4", M: "[b4,b5] ~@6 [b4,b5] ~@4 [b4,b5] ~@3", N: "[c5,c6] ~@6 [c5,c6] ~@4 [c5,c6] ~@3",
O: "[f5,f6] ~@11 [d#5,d#6] ~@3", P: "[c#5,c#6] ~@11 [f5,f6] ~@3", Q: "[f#5,f#6] ~@15",
R: "[f5,f6] ~@3 [d#5,d#6] ~@3 [c#5,c#6] ~@7", S: "[c5,c6]@5 ~@3", T: "[c#5,c#6] ~@7",
U: "~@4 g#4@2 ~@2 c5 ~@3 d#5 ~@3", V: "~@4 c#5@2 ~@2 f5 ~@3 g#5 ~@3", W: "~@3 g#5 c#5@2 ~@2 f5 ~@3 g#5 ~@3",
X: "~@3 g#5 g#4@2 ~@2 c5 ~@3 d#5 ~@2 [f5,c#6]", Y: "~@4 c#5 ~@6 a#4@2 ~@3", Z: "g#4 ~@6 f#4 ~@8",
AA: "~@4 g#4@2 ~@5 f4 ~@4", AB: "g#4 ~@6 c#5 ~@8", AC: "~@4 d#5 ~@6 c5 ~@4", AD: "g#4 ~@6 c5 ~@8",
AE: "~@3 f5 f#5 ~@2 g#5 ~@3 f5 f#5 ~@2 g#5", AF: "f5 d#5 ~ c#5 a#4 g#5 ~ c#6 ~@8",
})).s("gm_celesta").gain(0.44).pan(0.6)
// drums · kick
const kick = s("bd").struct("<A B C@24 D ~ E C@29 D ~ E C@7 F C@21 D ~ E C@14 F G>".pickRestart({
A: "~@15 x", B: "~ x!3", C: "x!4", D: "x ~@3 x ~@3 x ~@6 x", E: "~@3 x", F: "x ~@3 x ~@2 x ~@4 x ~@3",
G: "x ~@6 x ~@8",
})).gain(0.49)
// drums · snare
const snare = s("sd").struct(`<
A B@3 C B@15 D B@5 E ~ F B@7 C B@15 D B@5 E ~ G B@7 H B@15 I B@5 E ~ J B@14 H K
>`.pickRestart({
A: "~@3 x ~@3 x!2 ~@2 x ~@4", B: "~@4 x ~@2 x ~@4 x ~@3", C: "~@4 x ~@2 x ~@4 x!2 ~ x", D: "~@3 x ~@3 x ~@3 x ~@3 x",
E: "~@4 x ~@2 x ~@3 x!2 ~@3", F: "~@12 x ~@2 x", G: "~@12 x!2 ~ x", H: "~@3 x!2 ~@6 x!3 ~ x",
I: "~@3 x ~@3 x ~ x ~ x ~@3 x", J: "~@11 x!2 ~@2 x", K: "~@3 x!3 ~@10",
})).gain(0.38)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<A B@19 C B@5 ~@3 B@23 C B@5 ~@3 B@7 ~ B@15 D B@5 ~@3 B@14 ~@2>".pickRestart({
A: "~@9 x ~@6", B: "~@11 x ~@4", C: "~@8 x!2 ~@6", D: "~ x",
})).gain(0.22)
// drums · pedal hat
const pedal_hat = s("hh").struct("<A B@19 C B@6 ~@2 B@7 D B@15 C B@6 ~@2 B@7 ~ B@15 C B@5 D ~@2 B@14 ~@2>".pickRestart({
A: "~ x!3", B: "~ x ~ x", C: "~ x!2 ~", D: "~ x ~@2",
})).gain(0.38)
// drums · mid tom
const mid_tom = s("mt").struct("<A ~@19 A ~@31 A ~@15 B ~@15 A ~@22 B ~>".pickRestart({
A: "~@3 x", B: "~@7 x ~@8",
})).gain(0.44)
// drums · crash
const crash = s("cr").struct(`<
A ~@4 B ~@7 B ~@7 B ~@4 A ~ C B ~@7 B ~@7 B ~ B ~@5 B ~@4 A ~ C B ~@6 D B ~@7 B ~@3 B ~@3 B ~@4 A ~ C B ~@7 B ~@3 B ~
D E
>`.pickRestart({
A: "~@15 x", B: "x", C: "~@3 x", D: "~@7 x ~@8", E: "x ~@6 x ~@8",
})).gain(0.33)
// drums · ride
const ride = s("rd").struct(`<
// … 11 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.