0:00/0:00
// Notti d'estate — Dirotta su Cuba
// 125 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 136 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(125/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@2 B@2 C@2 B@2 D E F G@2 H I J F G@2 K L J F G@2 M N E F O@2 P Q R@2 S T U@2 V@2 W@2 X Y Z@2 AA AB AC@2 AD@2 C@2 B@2
D E F G@2 H I E F G@2 M N E F O@2 P Q AE@2 S T U@2 AF@2 AG@2 X Y AH@3 E AI G@2 H I E F G@2 H AJ AK AL AM AN AO@3 AP AQ
AR P Q AS@2 S T U@2 AF@2 AG@2 AT@4 AU@2 AV@5
>`.pickRestart({
A: "[~@8 g1@2 g#1@2 a1@2 d2@4 c2@2 d2@3 d2 ~ c2 d2@4 c2@2]/2",
B: "[d2@4 d2@4 g1@2 a1@4 d2@4 c2@2 d2@3 d2 ~ c2 d2@4 c2@2]/2",
C: "[d2@4 d2@3 d2 g1@2 g#1@2 a1@2 d2@4 c2@2 d2@3 d2 ~ c2 d2@4 c2@2]/2", D: "d2@4 d2@3 d2 g1@2 g#1@2 a1@2 d1@2",
E: "d1@2 ~@5 d1!2 ~@5 c1 ~", F: "d1@2 ~@5 d1 g1@2 g#1@2 a1@2 d1@2",
G: "[d1@2 ~@5 d1!2 ~@3 f1@2 g1@9 f1 ~ g1 g1@2 d2@2 g1@2]/2", H: "a1@6 ~ a1!2 ~@5 g1 ~",
I: "a1@2 ~@5 a1 d2@2 d#2@2 e2@2 d1@2", J: "d1@2 ~@4 d1!3 ~@5 c1 ~", K: "a1@2 ~@5 a1!2 ~@5 g1 ~",
L: "a1 ~@2 e2 d2 c2 e1 d1", M: "c2@7 c2!2 ~@5 b1 ~", N: "c2@2 ~@5 a1 d2@2 d#2@2 e2@2 d1@2",
O: "[d1@2 ~@5 d1 d2@2 a1@2 f1@2 g1@18]/2", P: "a1@4 a1@3 a1 ~ a1 a1@4 e1@2", Q: "f#1@4 f#1@3 f#1 ~ f#1 f#1@4 c#2@2",
R: "[d2@4 d1@3 d1 ~ d1 d1@4 e1@4 e2@2 e1@3 e1 ~@2 e1@2 e2@2 e1@2]/2", S: "a1@4 a1@3 a1 ~ a1 a1@4 g#1@2",
T: "f#1@4 f#1@3 f#1 ~ f#1 f#1@4 f1@2", U: "[e1@4 e2@3 d#2 e2@2 c#2@2 d2@2 d#2@4 c#3 d3 d#3@5 ~ a#2@2 g2@2 d#2@2]/2",
V: "[d2@4 d2@3 d3 d2@2 b1@2 c2@2 c#2@6 c#3@2 c#1@4 c#3@2 g2@2 f2@2]/2",
W: "[f#2@4 f#1@3 f2 f#2@2 c#2@2 c2@2 b1@4 b0 d#1 f#1@2 b1@6 f#1@2 f1@2]/2", X: "e1@2 e2 e1!2 e2@2 e1",
Y: "e1 e2 e1@2 e1!2 e2 e1", Z: "[d2@2 d2@2 d2@2 c#2@2 ~@2 b1@2 ~@2 a1@15 ~ g1 ~]/2", AA: "a1 ~@2 a1 ~@10 e1 ~",
AB: "g1 a1 ~ a1 ~@10 e1 g1", AC: "[~ a1 ~ a1 ~@3 e1 g1@2 a1@4 d2@4 c2@2 d2@3 d2 ~ c2 d2@4 c2@2]/2",
AD: "[d2@4 d2@4 g1@2 a1@2 ~@2 d2@4 c2@2 d2@3 d2 ~ c2 d2@4 c2@2]/2",
AE: "[d2@4 d1@3 d2 ~ d1 d1@4 e1@4 e2@2 e1@3 e1 ~@2 e1@2 e2@2 e1@2]/2",
AF: "[d2@4 d2@3 c#2 d2@2 b1@2 c2@2 c#2@4 c#2@2 c#1@6 c#3@2 g2@2 f2@2]/2",
AG: "[f#2@4 f#1@3 f2 f#2@2 c#2@2 c2@2 b1@4 b0 d#1 f#1@2 b1@6 b1@2 f#1 f1]/2",
AH: "[d2@2 d2@2 d2@2 c#2@2 ~@2 b1@2 ~@2 a1@31 ~@3]/3", AI: "d1@2 ~@5 d1 g1@4 a1@2 d1@2", AJ: "a1@2 ~@5 a1 a1@4 a1@4",
AK: "d1 d1@2 d2", AL: "c#2@3 c#2", AM: "b1@3 g#2", AN: "a2@2 a1 a1@5",
AO: "[g#1@6 c#2@8 f#1@4 f#2@4 e2@4 f#1 f1 e1@2 d1@8 d1@2 d2@6 d1@2]/3", AP: "~ d1 d2@3 d1 d2 d1",
AQ: "g1@3 g1 g2@3 g1", AR: "~ g1 g2@3 g1 g2 g1",
AS: "[d2@4 d1@3 d2 ~ d1 d1@4 e1@4 e2@2 e1@3 e1 ~@2 e1!2 e2@2 e1@2]/2",
AT: "[e1@4 e2@2 e1@2 e2@2 e1@4 e1@4 e1 ~ d2 d#2 e2@4 a1@2 b1@2 d2@6 d1@3 d2 d2@2 f2@2 f#2@2 g2@4 g1!2 g1@5 g2 g1@2 g2@2 g1@2]/4",
AU: "[b1@4 b2@3 b1 b2@2 f#1@2 f1@2 e1@6 e2@2 e1@4 e1@2 e2@4]/2",
AV: "[d2@2 d2@2 d2@2 c#2@2 ~@2 b1@2 ~@2 a1@53 ~@13]/5",
})).s("gm_electric_bass_finger").gain(0.47)
// other · string ensemble 1
const string_ensemble_1 = note(`<
A ~ B ~ A ~ B ~ C ~@10 D E F@2 G@3 H@2 I J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q R S@5 ~ B ~ A ~ B ~ C ~@10 T U@2 I J@2 K@2 L@2
M@2 N@2 O@2 P@2 Q R V@3 ~@12 W X Y Z AA@4 AB@2 K@2 L@2 M@2 N@2 O@2 P@2 AC@4 Q R AD@5
>`.pickRestart({
A: "~@8 [d5,d6]@2 [d5,d6] ~@3 [e5,e6]@2", B: "~@8 [d5,d6]@2 [g5,g6] ~@3 [e5,e6]@2",
C: "~@8 [d4,d5]@2 [d4,d5] ~@3 [c4,c5]@2", D: "b3@3 c#4@3 e4@2", E: "g#4 a4 b4 c5", F: "[e5@5 a4 d5 g5]/2",
G: "[e5@5 d5 c5 g4@7 d4@5 e4@3 g4@2]/3", H: "[b4@4 ~@4 [d5,d6]@2 [c5,c6] ~@3 [e5,e6]@3 ~@15, ~@2 b4 a4@5]/2",
I: "~ a4 d5 g5",
J: "[e5@10 a4@2 f4@2 g4@4 ~@2 [g2,g3] [a2,a3] [c3,c4] [d3,d4] [c3,c4] [d3,d4] [g3,g4] [c4,c5] [d4,d5] [g4,g5] [c5,c6] [d5,d6]]/2", // G A C D C D G C …
K: "[[e5,e6]@3 [a4,a5]]/2", L: "[[c5,c6]@7 [d5,d6]@7 [e4,e5]@2]/2", M: "[e5,e6]/2",
N: "[[d5,d6]@14 [d#5,d#6]@10 [f#5,f#6] [d#5,d#6] [b4,b5] [g4,g5] [b4,b5] [g4,g5] [d#4,d#5] [b3,b4]]/2", // D D# F# D# B G B G …
O: "[[e4,e5]@7 [f#4,f#5]@4 ~ [f#4,f#5]@3 ~]/2", P: "[[e4,e5]@14 [f#4,f#5]@11 ~@7]/2", Q: "[a4,a5]@3 [g#4,g#5]",
R: "[f4,f5]@2 [d4,d5]@2 [a3,a4]@3 ~ [f#4,f#5]@2 [d4,d5]@2 [a3,a4]@3 ~", // F D A F# D A
S: "[[c4,g4,e5]@4 ~@2 [b3,f#4,d#5]@2 ~@2 [a3,e4,c#5]@2 ~@2 [g3,d4,b4]@54 ~@4 [d5,d6]@2 [d5,d6] ~@3 [e5,e6]@2]/5", // C B A G D E
T: "~ d4 e4 g4", U: "[b4@4 c5@4 [d5,d6]@2 [c5,c6] ~@3 [e5,e6]@3 ~@15, ~@2 b4 a4@5]/2",
V: "[[c4,g4,e5]@2 ~ [b3,f#4,d#5] ~ [a3,e4,c#5] ~ [g3,d4,b4]@16 ~]/3", W: "a4", X: "b4@3 e4", Y: "c#5@2 a4 e4",
Z: "b3@3 c#4@5", AA: "[d4@3 e4@2 a4@2 c#4@2 c#5@2 b4@2 e5@2 a4@17]/4",
AB: "[a5@18 ~@2 [g2,g3] [a2,a3] [c3,c4] [d3,d4] [c3,c4] [d3,d4] [g3,g4] [c4,c5] [d4,d5] [g4,g5] [c5,c6] [d5,d6]]/2", // G A C D C D G C …
AC: "[[a4,a5]@14 ~ [c5,c6]@6 [b4,b5]@2 [d5,d6]@2 [c5,c6]@5 ~@2]/4", // A C B D C
AD: "[[d3,c4,g4,e5]@4 ~@2 [c#3,b3,f#4,d#5]@2 ~@2 [b2,a3,e4,c#5]@2 ~@2 [a2,g3,d4,b4]@53 ~@13]/5", // C B A G
})).s("gm_string_ensemble_1").gain(0.22)
// other · pad halo
const pad_halo = note("<~ A@2 B@2 A@2 C@2 ~@41 A@2 B@2 A@2 C@2 ~@78>".pickRestart({
A: "[~@2 a4 ~ c5 ~ a4 ~ c5 ~ a4 ~ c5 ~ d5 e5@2 ~ e5 ~@13]/2",
B: "[~@2 e5 f5 e5 c5 a4 ~ e5 f5 e5 c5 a4 ~ c5 a4@3 g4 ~@13]/2",
C: "[~@2 e5 f5 e5 c5 a4 ~ e5 f5 e5 c5 a4 ~ a5 e5@3 d5 ~@13]/2",
})).s("gm_pad_halo").gain(0.28)
// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
~@9 A B A C D E F B F C G H I B I C D E F B J@2 ~@16 K L M ~@8 I B I C D N I B I C D E I B J@2 ~@15 O P Q R S@2 T U@2
V W X Y Z AA AB AC@2 AD@8 ~@17 AE AF AG ~
>`.pickRestart({
A: "~@3 g3 [a3,c4] ~ [g3,b3] ~ [a3,c4]!2 ~@5 g3", B: "[a3,c4] ~ [g3,b3] ~ [a3,c4] ~@7 [c4,e4]!2 [c4,e4]@2",
C: "[a3,c4] ~ [g3,b3] ~ [a3,c4] ~@5 [c4,e4]!2 [c4,e4]@2 ~@2", D: "~@4 [c4,e4] ~ [b3,d4] ~ [c4,e4]!2 ~@6",
E: "[c4,e4] ~ [b3,d4] ~ [c4,e4] ~@7 [e4,a4]!3 ~", F: "~@4 [a3,c4] ~ [g3,b3] ~ [a3,c4]!2 ~@6",
G: "~@4 [a3,c#4] ~ [g#3,b3] ~ [a3,c#4]!2 ~@6", H: "[a3,c#4] ~ [g#3,b3] ~ [a3,c#4] ~@7 [c4,e4]!3 ~",
I: "~@4 [a3,c4] ~ [g3,b3] ~ [a3,c4] ~@7", J: "[~@4 [a3,c4] ~ [g3,b3] ~ [a3,d4] ~@5 [a3,c4]@16 ~@2]/2",
K: "~@7 [d4,a4]@4 c4 a3@3 e3", L: "c4 ~ c4 ~ a3 e3 g3 e3 a3@3 d3@2 c3 a2 g2", M: "c3 a2 a3@8 ~@6",
N: "[c4,e4] ~ [b3,d4] ~ [c4,e4] ~@7 [c4,e4]!3 ~", O: "~@4 c#4 f#3 g3 d4 d#4 g3 b3 e4 d#4 g3 d4 g3",
P: "c#4 f#3 c4 f3 b3 d4 c4 [c4,d4] b3 a3 g#3 b3 a3 b3 c4 d4", Q: "e4 ~ e4 d4 ~ d4 c4@3 ~ a3@2 ~@4",
R: "c4 ~ c4@2 a3 e3 g3 ~ a3 e3 c3@2 d3 c3 a2 g2",
S: "[c3@3 d3 ~@11 d5@3 ~ [c5,c#5] b4 a4 g4 f4 e4 d4 c#4 c4 b3 a3 c4 a3]/2", // C#maj7
T: "b3 d4 c4 [c4,d4] b3 a3 g#3 b3 a3 e3@3 e3@3 ~", // Csus2
U: "[g3 ~ a3 ~@5 [a3,a4]@2 [c4,c5]@2 [d4,d5]@2 [c4,c5] [e4,e5]@3 e4@8 e5 ~ d5 c5 a4 ~, ~@18 e5 ~@13]/2", // A C D C E
V: "c5@3 a4 ~@7 [c4,c5]@2 [c4,c5]@2 [d4,d5]", W: "[e4,e5]@3 e4@4 g5@4 f#5 e5@3 d5, ~@3 e5 ~@8 f5 ~@3",
X: "c5!2 b4 g#4 g4 e4 d4 c4 g3 ~ d5 ~ e5 c5 a4 g4", Y: "c#5@4 a4 e4 ~ d4 c#4@2 a4@2 ~ f#4 ~ e4",
Z: "b3@2 a3 f#3 a3@2 b3 a3@3 e3 f#3 e3@2 c#3 ~", AA: "a2 ~", AB: "~@8 a3@3 [b3,b4]@2 c#4@3, ~@8 a4 ~@4 c#5 ~@2",
AC: "[e4@26 a3@3 b4@3, e5@15 ~@11 a4 ~@2 b3 ~@2]/2", AD: "[c#4, c#5@15 ~@113]/8",
AE: "~@4 c5 a4 g4 e4 a4 g4 e4 ~ [c4,d4] a3 c4 d4", AF: "e4 c4 a3 g3 [d#3,e3] d3 c3 a2 c3 [d3,e3] d3 c3 d3 c3 a2 g2",
AG: "a2@3 ~ a3@12",
})).s("gm_electric_guitar_jazz").gain(0.32).pan(0.2)
// chords · lead 1 square
const lead_1_square = note("<A@8 B ~@5 C@5 ~ C@5 ~ C@5 ~@18 A@8 B ~@5 C@5 ~ C@5 ~@16 C@5 ~ C@5 ~@35>".pickRestart({
A: "[~@8 [b3,d4]@2 [g3,b3,d4] ~@3 [a3,c4,e4]@24 ~@2 [b3,d4]@2 [g3,b3,d4] ~@3 [a3,c4,e4]@24 ~@2 [b3,d4]@2 [g3,b3,d4] ~@3 [a3,c4,e4]@24 ~@2 [b3,d4]@2 [g3,b3,d4] ~@3 [a3,c4,e4]@18, ~@8 g3 ~@31 g3 ~@31 g3 ~@31 g3 ~@23]/8", // Bm G Am Bm G Am Bm G …
B: "~@8 [b3,d4]@2 [g3,b3,d4] ~@3 [f3,a3,c4]@2, ~@8 g3 ~@7", C: "[~@4 [b3,d4] ~@2 [a3,c4,e4]@28 ~@5, ~@8 g3 ~@71]/5",
})).s("gm_lead_1_square").gain(0.27)
// chords · piano
const piano = note(`<
A@8 B ~ C D@2 E@6 F@6 G@6 H I J@2 K L M@2 N@2 O P Q R S@2 T U V@8 B ~ C D@2 W@6 G@6 H I J@2 K L M@2 N@2 O P Q R X@2 ~
Y@4 Z@6 AA@2 ~@9 AB H I J@2 K L M@2 N@2 O P AC@4 AD AE AF@5
>`.pickRestart({
A: "[~@8 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@18, ~@8 d3 ~@31 d3 ~@31 d3 ~@31 d3 ~@23]/8", // G F G F G F G F
B: "~@8 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@2, ~@8 d3 ~@7", // G F
C: "~@7 d2 g2@2 g#2@2 a2@2 [d2,f3,a3,c4]@2, ~@4 [g3,b3,d4]@3 ~", // Dm7 G
D: "[~@6 f2 ~@3 [f3,a3,c4]@3 g2 [f3,a3,c4] g2, ~@7 g2@5 ~@4]/2", // F
E: "[[g3,b3,d4]@5 ~ [g3,c4,e4]@6 ~@4 a1@6 ~ a2 d3@2 d#3@2 e3@2 [d2,f3,a3,c4]@24 ~ d2 g2@2 g#2@2 a2@2 [d2,f3,a3,c4]@13 ~ f2@2 ~@6 [f3,a3,c4]@6 g2@2 [f3,a3,c4]@2 g2@2, a2@11 ~ a2@4 ~@62 g2@10 ~@8, ~@14 [g3,b3,d4]@8 ~@2 [g3,b3,d4]@5 ~@27 [g3,b3,d4]@6 ~@34]/6", // G C Dm7 F G
F: "[[e3,g#3,b3]@5 ~ [e3,a3,c#4]@6 ~@4 a1@6 e3@2 d3@2 c3@2 e2@2 [d2,f3,a3,c4]@24 ~ d2 [g2,g3,b3,d4]@2 g#2@2 [g3,c4,e4] ~ [d2,f3,a3,c4]@13 ~ f2@2 ~@6 [f3,a3,c4]@6 g2@2 [f3,a3,c4]@2 g2@2, a2@11 ~ a2@4 ~@44 a2@2 ~@16 g2@10 ~@8, ~@7 [e3,g#3,b3]@4 ~ [g3,b3,d4]@3 ~@33]/6", // E A Dm7 G C Dm7 F E …
G: "[[g3,b3,d4]@5 ~ [g3,c4,e4]@6 ~@4 c2@6 ~ g2 d3@2 d#3@2 e3@2 [d2,f3,a3,c4]@24 ~ d2 g2@2 g#2@2 a2@2 [d2,f3,a3,c4]@8 ~ d2 d3@2 a2@2 f2@2 [g2,f3,a3,c4]@6 g1@2 [g2,f3,a3,c4]@4 g1@2 [g2,f3,a3,c4]@3 ~, c3@11 ~ c3@4 ~@80, ~@14 [g3,b3,d4]@8 ~@2 [g3,b3,d4]@5 ~@27 [g3,b3,d4]@5 ~@35]/6", // G C Dm7 F G
H: "[a3,c#4,e4]@6 [a3,c#4,e4]@4 a1@2 [a2,a3,c#4,e4]@3 ~, a2@5 ~@3", // A
I: "[a3,c#4,e4]@6 [a3,c#4,e4]@4 f#1@2 [f#2,a3,c#4,e4]@3 ~, f#2@5 ~@3", // A F#m7
J: "[[d2,c4,e4,g4]@4 [c4,e4,g4]@5 ~ [d2,c4,e4,g4]@4 [e2,d4,f#4,a4]@4 e3@2 e2@2 ~@4 e3 e2 e3@2 [e2,d4]@2, ~@4 d3@3 ~@11 d4@4 e3@4 [f#4,a4]@4 ~@2, ~@5 [f#4,a4] d4 ~]/2", // C D E7 F#m
K: "[c#4,e4,b4]@6 [c#4,e4,a4]@4 a1@2 [a2,c#4,e4,a4]@3 ~, a2@5 ~@3", // C#m7 A
L: "[c#4,e4,b4]@6 [c#4,e4,a4]@4 f#1@2 [f#2,c#4,e4,a4]@3 ~, f#2@5 ~@3", // C#m7 A F#m7
M: "[e2@4 e2@2 e3@4 [e2,b3,d4,f#4]@2 ~@2 [d#2,a3,c#4,d#4,f#4]@11 ~ [d#2,a3,c#4,d#4,g4]@5 ~, [b3,d4,f#4] ~@3]/2", // Bm D#m7b5 D#7 Bm
N: "[[d2,a3,c#4,e4,f#4]@9 ~ [d2,a3,c#4,e4]@3 ~ [c#2,b3,d#4,f#4]@11 ~ [c#2,b3,d#4,f#4]@5 ~]/2", // Dmaj7 A B
O: "[f#2,c#4,e4,g#4]@9 ~ [f#2,c#4,e4,g#4]@3 ~ [b1,a3,c#4,d#4,f#4]@2", P: "~@2 [b1,c#4,d#4,f#4,a4]@13 ~",
Q: "[e2,b3,d4,e4,a4]@4 ~@2 [b3,d4,e4,a4] ~ [b3,d4,e4,a4]@2 [b3,d4,e4,g#4]@2 ~@2 [a3,b3,d4,e4]@2, ~ e3 e2 e3", // Esus4 Bm7 E7 Asus4
R: "~ [d4,e4,a4,b4] ~ [b3,d4,e4,a4] ~ [b3,d4,e4,g#4] e3@2, e2 e3 e2 ~", // Dsus2 Bm7 E7
S: "[[g4,c5,e5]@4 ~@2 [f#4,b4,d#5]@2 ~@2 [e4,a4,c#5]@2 ~@2 [d4,g4,b4]@13 ~@3 [g2,g3] ~]/2", // C B A G
T: "[a2,a3] ~@2 [a2,a3] ~@10 [e2,e3] ~", U: "[g2,g3] [a2,a3] ~ [a2,a3] ~@10 [e2,e3] [g2,g3]",
V: "[~ [a2,a3] ~ [a2,a3] ~@4 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@24 ~@2 [g3,b3]@2 [d3,g3,b3] ~@3 [f3,a3,c4]@18, ~@8 d3 ~@31 d3 ~@31 d3 ~@31 d3 ~@23]/8", // A G F G F G F G …
W: "[[g3,b3,d4]@5 ~ [g3,c4,e4]@6 ~@4 a1@6 ~ a2 d3@2 d#3@2 e3@2 [d2,f3,a3,c4]@24 ~ d2 [g2,g3,b3,d4]@2 g#2@2 [g3,c4,e4] ~ [d2,f3,a3,c4]@13 ~ f2@2 ~@6 [f3,a3,c4]@6 g2@2 [f3,a3,c4]@2 g2@2, a2@11 ~ a2@4 ~@44 a2@2 ~@16 g2@10 ~@8, ~@14 [g3,b3,d4]@8 ~@2 [g3,b3,d4]@5 ~@67]/6", // G C Dm7 G C Dm7 F G
X: "[[c4,g4,c5]@4 ~@2 [b3,f#4,b4]@2 ~@2 [a3,e4,a4]@2 ~@2 [g3,d4,g4]@13 ~@5]/2", // C5 B5 A5 G5
Y: "[[d2,a3,c4,e4]@22 ~@2 [g2,g3,b3,d4]@4 ~@2 [d2,f3,a3,c4]@6 ~@8 f2@2 ~@6 [f3,a3,c4]@7 ~ [g2,f3,a3,c4]@4, ~@46 g2@13 ~@5]/4", // Am G Dm7 F
Z: "[[g3,b3,d4]@5 ~ [g3,c4,e4]@6 ~@4 a1@6 ~ a2 d3@2 d#3@2 e3@2 [d2,f3,a3,c4]@24 ~ d2 g2@2 g#2@2 a2@2 [d2,f3,a3,c4]@13 ~ f2@2 ~@6 [f3,a3,c4]@6 ~@2 [f3,a3,c4]@4, a2@11 ~ a2@4 ~@62 g2@10 ~@2 g2@6, ~@14 [g3,b3,d4]@8 ~@2 [g3,b3,d4]@5 ~@27 [g3,b3,d4]@6 ~@34]/6", // G C Dm7 F G
AA: "[[a2,e3,g#3,c#4]@12 [a2,e3,g#3,c#4]@19 ~]/2", AB: "~@12 [f6,g6,a6] [a5,b5,c6,d6,e6] [b4,c5,d5,e5,f5,g5] [g4,a4]",
AC: "[e2@4 e3@4 ~@2 [b3,d4,e4,f#4] ~@5 e2@4 e3@4 ~@2 [b3,d4,e4,f#4] ~@3 d2@4 ~@2 d3@4 ~@2 [c4,d4,f4,a4] ~@3 g2@4 ~@2 g3@4 g2@4 g3@4, [b3,d4,e4,f#4]@8 e2@4 e3@4 ~@8 e2@4 ~@2 [c4,d4,f4,a4]@11 ~@3 d3@4 ~@16, ~@14 [b3,d4,e4,f#4]@11 ~@3 e3@4 ~@8 d2@4 ~@2 [c4,d4,f4,a4]@11 ~@7]/4", // Bm Dm7 Bm Dm7 Bm Dm7
AD: "b1@4 b2@4 ~@2 [a3,b3,d4,f#4] ~ b2@4, [a3,b3,d4,f#4]@2 b1 ~", // Bm7
AE: "~@4 e3@4 ~@2 [a3,b3,d4,f#4] ~ e3@4, [a3,b3,d4,f#4]@5 ~@3, e2@3 ~ e2@2 ~@2", // Bm7
AF: "[[g4,c5,e5]@4 ~@2 [f#4,b4,d#5]@2 ~@2 [e4,a4,c#5]@2 ~@2 [d4,g4,b4]@53 ~@13]/5", // C B A G
})).s("gm_piano").gain(0.24).pan(0.6)
// chords · piano
const piano_2 = note("<~@39 A@2 B@4 C@2 ~@35 A@2 B@4 C@2 ~@31 A@2 D@4 ~ E@3 ~@5>".pickRestart({
A: "[[c#4,e4,a4]@7 [d#4,f#4,b4]@8 ~]/2", B: "[[e4,a4,c#5]@7 [d#4,f#4,b4]@5 ~ [e4,a4] [d#4,g#4] [d4,e4,a4]@17]/4",
C: "[[g4,c5,e5]@6 [f#4,b4,d#5]@4 [e4,a4,c#5]@4 [d4,g4,b4]@13 ~@5]/2", // C B A G
D: "[[e4,a4,c#5]@14 [d#4,f#4,b4]@10 ~@2 [e4,a4]@2 [d#4,g#4]@2 [d4,e4,a4]@27 ~@7]/4", // A B A5 G#5 Dsus2
E: "[~@5 [e4,a4] [d#4,g#4] [d4,e4,a4]@17]/3", // A5 G#5 Dsus2
})).s("gm_piano").gain(0.05)
// chords · epiano1
const epiano1 = note("<~@90 A@5 B@6 C@2 D E F G H@4 I@2 ~@23>".pickRestart({
A: "[~@8 [g3,b3,d4]@6 [a3,c4,e4]@7 ~ [c4,e4,a4] ~@7 [c4,e4,a4]@9 ~ [b3,d4,g4]@5 ~ [c4,e4,a4]@5 ~ [c4,e4,a4] ~@5 [c4,e4,a4] ~@3 [c4,e4,a4]@13 ~ [c4,e4,a4]@4]/5", // G Am G Am
B: "[[b3,d4]@6 [c4,e4]@8 [g3,b3,d4]@9 ~ [g3,b3,d4]@4 [g3,c4,e4]@2 [f3,a3,c4]@6 [c4,e4,a4] ~@5 [c4,e4,a4] ~@3 [c4,e4,a4]@9 ~ [b3,d4,g4]@6 [c4,e4,a4]@6 [c4,e4,a4] ~@5 [c4,e4,a4] ~@3 [c4,e4,a4]@17 ~, g3@7 ~@41]/6", // Bm C G C F Am G Am
C: "[~@14 e5@17 ~, [c#4,e4,g#4]@31 ~, ~@12 c#5@19 ~]/2", D: "[a3,c#4,f#4]", E: "e4@11 ~ e4@4, [g#3,b3]",
F: "~@3 e4, [a3,d4,f#4], ~@3 a4@5", G: "b3@3 c#4@5, [e4,g#4]",
H: "[[g#3,b3,d4]@6 [g#3,b3,e4]@8 [a3,c#4,e4]@8 [g#3,b3,e4]@8 ~@24 a5@9 ~, ~@15 [a3,c#4,f#4]@17, ~@46 e5@17 ~, ~@50 c#6@13 ~]/4", // G#dim E A E F#m
I: "[~@6 [a4,c5]@25 ~, [a3,c4,f4]@31 ~]/2", // Am F
})).s("gm_epiano1").gain(0.21).pan(0.1)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@31 A B@2 C@5 D@8 ~@27 A B@2 C@5 D@8 ~ E F@6 G@8 ~@7 A B@2 C@5 H@8 I J@6
>`.pickRestart({
A: "[c#4,e4,g#4]@4 [c#4,e4,g#4] ~ [c#4,e4,g#4]!2 ~ [c#4,e4,g#4] [c#4,e4,g#4]@2 [c#4,e4,g#4] ~ [c#4,e4]@2", // C#m
B: "[[c#4,e4,g#4]@4 [c#4,e4,g#4] ~ [c#4,e4,g#4]!2 ~ [c#4,e4,g#4] [c#4,e4,g#4]@2 [c#4,e4,g#4] ~ e4@2 [c4,e4,g4]@3 [c4,e4,g4]!2 ~ [c4,e4]@2 [c4,e4]@2 [c4,e4,g4]@2 ~@2 [d4,f#4,a4]@2, ~@7 c#4@9]/2", // C#m C D
C: "[~@4 [d4,f#4,a4]!4 ~ [d4,f#4,a4]!2 [d4,f#4] [d4,f#4,a4]!2 [d4,f#4] ~ [c#4,e4,g#4]@4 [c#4,e4,g#4] ~ [c#4,e4,g#4]!2 ~ [c#4,e4,g#4] [c#4,e4,g#4]@2 [c#4,e4,g#4] ~ [c#4,e4]@2 [c#4,e4,g#4]@4 [c#4,e4,g#4] ~ [c#4,e4,g#4]!2 ~ [c#4,e4,g#4] [c#4,e4,g#4]@2 [c#4,e4,g#4] ~@3 [b3,d4,f#4]!4 ~ [b3,d4,f#4] [b3,d4] [b3,d4,f#4] ~ [b3,d4] [b3,d4,f#4] ~@3 [c#4,d#4,f#4]@2 ~@2 [c#4,d#4,f#4]!3 [f#4,a4,c#5] ~ [f#4,a4,c#5] ~@2 [d#4,f#4,a4]@2 ~@4, ~@15 [d4,f#4]@33 ~@32, ~@23 e4@17, ~@23 c#4@8 ~@9]/5", // D C#m Bm D#m7 F#m D#dim D
D: "[[f#4,a4,c#5]@4 [f#4,a4,c#5] ~ [f#4,a4,c#5]!2 ~ [f#4,a4,c#5] [f#4,a4,c#5]@2 f#4@2 [d#4,f#4,b4]@6 ~@3 [b3,d#4,f#4] ~@2 [b3,d#4,f#4]@4 ~@2 [c#4,e4,g#4]!2 ~@2 [e4,g#4,c#5]@3 [e4,g#4,c#5] ~@2 [e4,g#4,c#5] ~@3 [d#4,f#4,b4]@5 ~ [f#4,a4,c#5]!4 ~ [f#4,a4,c#5] [f#4,a4,c#5]@2 [f#4,a4,c#5] ~ [f#4,a4]@2 [f#4,a4,c#5]@4 [f#4,a4,c#5] [f#4,a4]!3 [f#4,a4,c#5] ~ [f#4,a4,c#5]@2 ~@2 [f#4,a4]@2 [f#4,a4,c#5]!2 [f#4,a4]!2 [f#4,a4,c#5] ~ [f#4,a4]!2 [f#4,a4,c#5] [f#4,a4]!3 [f#4,a4,c#5] ~@3 [e4,g4,c5]@4 ~@2 [d#4,f#4,b4] ~@3 [c#4,e4,a4] ~@3 [b3,d4,g4]@17 ~, ~@6 a4@20 ~@21 a4@6 ~@11, ~@15 b3@40 ~@9, ~@15 d#4@8 ~@24 f#4@4 ~@13]/8", // F#m B C#m B F#m C B A …
E: "[c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] ~ [c4,e4,a4] [c4,e4]", // Am C Am C Am C Am C
F: "[[c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] ~ [b3,d4,g4] [b3,d4] [b3,d4,g4] [b3,d4]!3 ~ [c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] ~ [c4,e4,a4] c4 [c4,f4,a4]@4 [c4,f4,a4] [c4,f4]!2 [c4,f4,a4] [c4,f4] [c4,f4,a4] [c4,f4]!2 [c4,f4,a4] [c4,f4] [c4,f4,a4] c4 [c4,e4,g4]@4 [c4,e4,g4] [c4,e4]!2 [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4] [c4,e4,g4]@4 [c4,e4,g4] [c4,e4]!2 [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] ~ [c4,e4,a4] [c4,e4] [c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] ~ [c4,e4,a4] [c4,e4], ~@8 [c4,e4]@7 [b3,d4]@81, ~@31 e4@16 f4@49]/6", // Am C Am G Bm G Bm Am …
G: "[[c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] ~ [b3,d4,g4] [b3,d4] [b3,d4,g4] [b3,d4]!3 ~ [c4,e4,a4]@4 [c4,e4,a4] ~ [c4,e4] [c4,e4,a4] [c4,e4] [c4,e4,a4] [c4,e4]!2 [c4,e4,a4] ~ [c4,e4,a4] c4 [c4,f4,a4]@4 [c4,f4,a4] [c4,f4]!2 [c4,f4,a4] [c4,f4] [c4,f4,a4] [c4,f4]!2 [c4,f4,a4] [c4,f4] [c4,f4,a4] ~ [e4,g#4,c#5]@4 [e4,g#4,c#5] [e4,g#4]!2 [e4,g#4,c#5] [e4,g#4] [e4,g#4,c#5] [e4,g#4]!2 [e4,g#4,c#5] [e4,g#4] [e4,g#4,c#5] [e4,g#4] [e4,g#4,c#5]@3 [e4,g#4,c#5]!2 [e4,g#4] [e4,g#4,c#5]!2 [e4,g#4]!4 [e4,g#4,c#5]@3 ~@49, ~@8 [c4,e4]@7 [b3,d4]@113, ~@31 e4@16 [c4,f4]@81]/8", // Am C Am G Bm G Bm Am …
H: "[[f#4,a4,c#5]@4 [f#4,a4,c#5] ~ [f#4,a4,c#5]!2 ~ [f#4,a4,c#5] [f#4,a4,c#5]@2 f#4@2 [d#4,f#4,b4]@6 ~@3 [b3,d#4,f#4] ~@2 [b3,d#4,f#4]@4 ~@2 [c#4,e4,g#4]!2 ~@2 [e4,g#4,c#5]@3 [e4,g#4,c#5] ~@2 [e4,g#4,c#5] ~@3 [d#4,f#4,b4]@5 ~ [f#4,a4,c#5]!4 ~ [f#4,a4,c#5] [f#4,a4,c#5]@2 [f#4,a4,c#5] ~ [f#4,a4]@2 [f#4,a4,c#5]@4 [f#4,a4,c#5]@3 [f#4,a4] [f#4,a4,c#5] ~ [f#4,a4,b4]@2 ~@2 [f#4,a4,b4]@6 [f#4,a4,b4] [f#4,a4]!2 [f#4,a4,b4] [f#4,a4]!2 [f#4,a4,b4]@2 ~@2 [d4,f#4,a4]@6 [d4,f4,a4]@3 [d4,f4] [d4,f4,a4] ~ [d4,f4,a4]@2 ~@2 [d4,f4,a4]@6 [d4,f4,a4] [d4,f4]!2 [d4,f4,a4] [d4,f4]!2 [d4,f4,a4]@2 ~@2 [d4,f4,a4]@2, ~@3 a4@10 ~@19, ~@15 b3@49, ~@15 d#4@8 ~@41]/8", // F#m B C#m B F#m B7 F#m B7 …
I: "[f#4,a4,c#5]@4 [f#4,a4,c#5] [f#4,a4]!3 [f#4,a4,c#5] ~ [f#4,a4,c#5]@2 ~@2 [f#4,a4]@2", // F#m
J: "[[f#4,a4,c#5]!2 [f#4,a4]!2 [f#4,a4,c#5] ~ [f#4,a4]!2 [f#4,a4,c#5] [f#4,a4]!3 [f#4,a4,c#5] ~@3 [e4,g4,c5]@4 ~@2 [d#4,f#4,b4] ~@3 [c#4,e4,a4] ~@3 [b3,d4,g4]@53 ~@13, ~@7 a4@6 ~@35, ~@7 f#4@4 ~@37]/6", // F#m C B A G
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.8)
// drums · kick
const kick = s("bd").struct(`<
A B C B C B D B@2 E F E F E G E F E F E H E F E F E F E F@2 I B@14 J K L M N E F E G E G O E@2 F E F E F E F E F E G
E@2 F P B@14 Q ~ R E F E F E G E G E G E@2 B@9 S B@13 C T B@3 Q ~@4
>`.pickRestart({
A: "~@6 x!2 ~@4 x ~@3", B: "x!4", C: "x ~ x ~ x ~ x!2", D: "x ~ x ~ x!2 ~ x", E: "x!2", F: "x ~@3 x ~@2 x",
G: "x ~@3 x!3 ~", H: "x ~@7 x ~ x!2 ~@4", I: "~@7 x", J: "x!2 ~ x ~ x ~ x", K: "~@5 x ~ x", L: "x ~@2 x ~@10 x ~",
M: "x ~@2 x ~@10 x!2", N: "~ x ~ x ~@2 x!2 ~@4 x ~@3", O: "x!3 ~ x ~@3", P: "~@2 x ~@4 x", Q: "x ~@2 x ~ x ~ x",
R: "~@4 x ~@2 x ~@6 x ~", S: "x ~ x ~@2 x ~ x ~@2 x ~@3 x ~", T: "~ x!2 ~ x ~ x ~",
})).gain(0.8)
// drums · snare
const snare = s("sd").struct(`<
A B@7 C B@5 D B@11 D B@2 E F B@3 D B@3 C B@3 D B C B ~@3 A B@7 G B@5 C B@5 D B@2 E H B@3 D B@3 C B@3 D B C B ~ I B@5 D
B@5 C ~@6 J@3 K B@3 D B@3 L B@3 D B@3 M B C B ~@4
>`.pickRestart({
A: "~@4 x!2 ~ x", B: "~ x ~ x", C: "~@4 x ~@7 x!2 ~@2", D: "~@4 x ~@7 x ~@2 x", E: "~@2 x ~@2 x!2 ~",
F: "~@2 x ~@8 x!3 ~@2", G: "~@4 x ~@5 x!4 ~@2", H: "~@2 x ~@7 x!5 ~", I: "~@2 x ~@5 x ~@6 x", J: "~ x",
K: "~@8 x ~@3 x!2 ~@2", L: "~@4 x!2 ~ x!2 ~@3 x!2 ~@2", M: "~@4 x ~@2 x ~@4 x!2 ~@2",
})).gain(0.64)
// drums · hihat
const hihat = s("hh").struct(`<
~ A B A B C B D E F B A B G A F B H B A E F B A B H A F B@2 I J K@3 J K@3 J K@3 J K L F M A N A B A@5 B F A O B H P F
B A Q H A F B@2 I J K@3 J K@3 J K@3 J K R F S J K@5 J K@3 J K F T A U V W X Y Z I J K@3 J K@2 L J K@3 J K J K J K R
// … 82 more lines
More by Dirotta su Cuba
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.