0:00/0:00
// Margherita — Riccardo Cocciante
// 56 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: Full arrangement: all 65 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(56/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.
// chords · string ensemble 2 · "STRINGS"
const string_ensemble_2 = note(`<
~@7 A ~@6 B C D E F G H I J K L@3 M@3 N@2 O P Q@2 R@2 S T U ~@4 I J K L@3 V W@3 X Y Z@3 AA@2 ~@3
>`.pickRestart({
A: "~@16 d4@15 ~", B: "~@17 [b3,d4]@15", C: "~ [c4,eb4]@16 d4@15", D: "g4@17 c4@14 ~", E: "~ g4",
F: "~@9 f4@8 ~@8 ab3@6 ~, [b3,d4]@17 [c4,eb4]@15", G: "bb3@15 ~@2 [g3,b3]@15, d4", H: "~ c4@31",
I: "~ [eb4,g4,c5]@15 ~ [f4,ab4,c5]@15, ~@17 gb4 ~@14", J: "~ f4@15 ~ [g4,bb4,eb5]@15, [bb4,d5]@17 ~@15",
K: "~ [g4,b4,d5]@16 [ab4,c5,eb5]@15", // G Ab
L: "[~ [f4,bb4,d5]@15 [g4,eb5]@16 ~ [f4,ab4,f5]@15 ~ c5 ~@15 [g4,eb5]@16 ~@8 g5@6 ~, ~@16 c5@32 bb4@31 ~@17, ~@48 [f4,d5]@16 ~@17 [g4,b4,d5]@15]/3", // Bb Cm Fm Cm Dm G
M: "[~ [ab4,c5,eb5]@16 [bb4,f5]@15 ~@25 g5@6 ~@17 ab4@16, ~@17 d5@48 ~@31, ~@2 g4@3 ~, ~@32 b4@31 ~ [c5,eb5]@32]/3", // Ab Bb5 Cm
N: "[~ [f4,d5]@15 eb5@16 ~ b4@15 ~ [ab4,c5]@15, ~ bb4@31 d5@16 ~@16, ~@16 g4@31 ~@17]/2", // Dm Ab
O: "~ [bb4,d5,f5]@15 [eb5,g5]@16, ~@16 bb4 ~@15", P: "~ ab4, [c5,eb5]@31 ~",
Q: "[[bb4,d5]@16 ~@25 f5@8 [ab4,c5]@15, ~@17 g4@31 ~@16, ~@17 [bb4,eb5]@15 ~ [b4,d5]@16 ~@15, ~@25 g5@15 ~@24]/2", // Bb Ab Eb5 Bm
R: "[~ [f4,bb4]@15 ~ eb5@20 ~@11 [bb4,d5]@16, ~ d5@47 ~@16, ~@16 g4@47 ~, ~@16 c5@31 ~@17]/2", // Bb5 Bb
S: "~@25 f5@7, ~ g4@31, ~ [bb4,eb5]@15 ~ [b4,d5]@15, ~@9 g5@15 ~@8", T: "~ [ab4,c5]@16 [f4,bb4,d5]@15",
U: "[g4,b4] ~@31", V: "~ [ab4,c5,eb5]@16 [bb4,f5]@15, ~@17 d5 ~@14",
W: "[g4@12 ~@45 g4@8 ~@15 d4@14 ~@2, b4@9 ~@8 c4@63 ~@16, ~@65 ab4@31]/3", X: "eb4 d4, g4",
Y: "~@25 b3@7, ~@17 [d4,f4]@15", Z: "[~@17 g4@8 ~@15 d4@14 ~@2 eb4@16 ~ d4@17 ~@6, ~@25 ab4@31 g4@32 ~@8]/3",
AA: "[~@17 b3@8 [c2,c4]@24 ~@15, ~@9 [d4,f4]@16 ~@39]/2", // C Dm
})).s("gm_string_ensemble_2").gain(0.28)
// chords · string ensemble 2 · "STRINGS" · soft notes
const string_ensemble_2_soft = note(`<
A B C D@4 E F@2 G H@4 I J@2 ~@2 K ~@4 L ~@5 M ~@3 M ~@3 N ~ A B C O ~@4 L ~@2 P@2 Q R S T@5 ~@3
>`.pickRestart({
A: "~@9 eb4@23", B: "~ d4@16 eb4@15", C: "~@2 d4@15 eb4@15",
D: "[~@17 b3@28 ~@4 [c4,eb4]@32 d4@16 eb4@15 ~ [b3,d4]@15, ~ d4@47 ~@33 bb3@32 ~@15]/4", E: "~ [c4,eb4]@16 f4@15",
F: "[[eb4,g4]@17 ~ c4@15 d4@15 [eb4,g4]@16, ~@17 f4@32 ~@15, ~@17 ab4@14 ~@33]/2", G: "[b3,d4]@16 ~ eb4@15, ~ c4",
H: "[~ d4@16 [g3,b3]@31 ~ c4@31 [d4,f4]@15 ~ [g3,eb4]@17 ~@15, bb3 ~@2 eb4@2 bb3@2 ~]/4", I: "~@17 f4@15",
J: "[eb4@16 ~ ab4@15 d4@16 eb4@16, ~@17 f4@32 ~@15, ~@16 bb3@15 ~]/2", K: "~ eb4@31", L: "~ eb5 ~@30",
M: "~@17 eb5@15", N: "~ eb5@16 ~@15", O: "~ d4@4 ~@27", P: "[~@49 g3@8 ~@7, ~@17 eb4@46 ~]/2", Q: "~ f4@31",
R: "bb3@16 b3@15 ~", S: "~ [c4,eb4]@16 bb3@7 ~@8",
T: "[~@9 g3@8 ~@8 f4@31 bb3@16 b3@15 ~@2 [c4,eb4]@16 bb3@7 ~@10 bb4@23 ~@15, ~@121 eb4@28 ~@11, ~@121 f4@24 ~@15]/5", // Cm
})).s("gm_string_ensemble_2").gain(0.08)
// chords · piano · "A.PIANO"
const piano = note(`<
A B C D@2 E F G H I J K@2 L M N O P Q R S@2 T U V W X Y Z@2 AA@4 AB AC AD@3 AE@3 B C AF AG T U V W AH Y AI@2 AJ AK
AL@8 ~
>`.pickRestart({
A: "~@13 eb4@4 ~@12 f4@3, ~ c3@16 [f2,ab4]@15, ~@5 g3@12 ~@4 c3@11, ~@9 c4@8 ~@8 [ab3,g4]@7", // Fm Abmaj7
B: "~@13 bb4@4 ~@12 bb3@3, ~ bb2@16 eb4@8 eb4@7, ~ [bb3,d4]@8 [d4,f4]@8 bb3@12 ~@3, ~@5 f3@12 [eb3,g4]@15, ~@21 f4@11", // Bb Dm Eb
C: "~@5 g3@4 ~@4 d4@4 ~@8 c4@7, ~ b3@8 [d3,b3,g4]@8 ab2@15, ~@17 eb4@12 ~@3, ~@17 c4@8 ~@7, ~@21 ab3@11", // G
D: "[~ bb3 ~@11 d4@4 ~@28 d4@4 ~@12 eb4@3, ~ bb2@16 g2@32 c3@15, ~ d4@12 ~@16 d4@12 b3@8 eb4@12 ~@3, ~@5 f3@12 ~@4 g3@12 g4@16 ~@8 c4@7, ~@9 bb3@8 b3@8 b3@12 g3@13 ~@3 g3@11]/2",
E: "~@13 f4@4 ~@12 d4@3, ~ [f2,ab4]@16 bb2@15, ~@5 c4@12 bb3@8 bb3@7, ~@9 [ab3,g4]@8 ~@4 f3@11", // Fm Abmaj7
F: "~@13 eb4@4 g3@4 g3@4 ~@4 d4@3, ~ eb2@16 g2@15, ~ eb4@12 ~@4 d4@12 ~@3, ~@5 g3@12 ~@15, ~@9 [bb3,g4]@8 ~@8 b3@7", // Eb
G: "~@5 ab3@4 ~@4 eb4@4 ~@12 d4@3, ~ eb4@12 ~@4 d4@12 ~@3, ~ c4@8 [ab3,c4]@8 bb2@15, ~@17 bb3@8 bb3@7, ~@21 f3@11", // Ab
H: "~@13 eb4@4 ~@12 f4@3, ~ eb4@12 ~@12 g4@7, ~ c4@8 c4@8 ~@4 c4@11, ~@5 g3@12 [f2,ab4]@15", // Fm
I: "~@13 bb4@4 ~@12 g4@3, ~ d4@16 eb4@8 eb4@7, ~ bb3@8 bb3@8 ~@4 bb3@11, ~@5 f3@12 eb2@15",
J: "~@13 g3@4 ~@12 eb4@3, ~ [g2,g4]@16 ab2@15, ~ [b3,d4]@8 [b3,d4,f4]@8 eb4@12 ~@3, ~@5 g3@8 ~@4 c4@8 c4@7, ~@21 ab3@11", // G Bm Bdim
K: "[~@13 d4@4 ~@28 d4@4 ~@12 eb4@3, ~ d4@12 ~@8 g3@12 g4@16 eb4@12 ~@3, ~@5 f3@11 ~ g2@32 c3@15, ~@9 bb3@7 ~ b3@8 b3@12 g3@13 ~@3 g3@11, ~@29 d4@12 b3@8 ~@8 c4@7]/2",
L: "~@13 f4@4 ~@12 d4@3, ~ [f2,ab4]@16 bb2@15, ~@5 ab3@12 bb3@8 bb3@7, ~@9 g4@8 d4@12 ~@3, ~@21 f3@11", // Fm
M: "~@13 eb4@4 ~@8 b3@4 b3@3, ~ eb4@12 ~@8 g3@11, ~ bb3@8 [bb3,g4]@8 b3@8 [b2,d4]@7, ~@5 g3@12 [g2,g4]@15", // Eb Bm G
N: "~@5 ab3@4 ~@4 eb4@4 ~@12 d4@3, ~ c4@8 c4@8 d4@12 ~@3, ~@21 f3@11, ~@25 bb3@7",
O: "~@9 c4@4 eb4@4 ~@12 f4@3, ~ eb4@12 ~@12 [f3,c4,g4]@7, ~ c4@8 ~@12 ab3@11, ~@5 g3@12 [f2,ab4]@15", // Fsus2 Fm
P: "~@13 d4@4 ~@12 eb4@3, ~ bb2@16 eb2@15, ~ d4@12 ~@4 eb4@12 ~@3, ~ bb3@8 bb3@8 bb3@8 [bb3,g4]@7, ~@5 f3@12 ~@4 g3@11", // Eb
Q: "~ g3@4 ~@8 [b2,d4]@4 ~@12 eb4@3, ~ g2@16 c4@8 c4@7, ~ d4@12 ~@4 ab2@12 ~@3, ~ b3@8 [b3,g4]@9 ~@14, ~@5 g3@13 ~@3 ab3@11", // Bm Em
R: "~@13 d4@3 ~@13 d4@3, ~ bb2@15 ~ g2@15, ~ d4@12 ~@4 d4@12 ~@3, ~ bb3@8 bb3@7 ~ b3@8 b3@7, ~@5 f3@11 ~@5 g3@11",
S: "[~@45 eb4@4 ~@4 ab3@4 ~@4 f4@3, ~ c3@28 g3@4 c4@4 g3@12 ~@8 [ab3,c4,g4]@7, ~ eb4@12 eb4@4 g4@14 c3@18 ~@15, ~ c4@8 c4@12 eb4@12 eb4@8 c4@8 c4@8 ~@7, ~@5 g3@20 c4@8 [c2,g4]@16 [f2,ab4]@15]/2", // Abmaj7 C5 Fm
T: "~@13 d4@4 ~@12 g4@3, ~ bb2@16 ~@15, ~ d4@12 ~@8 g3@11, ~ bb3@8 bb3@8 bb3@8 bb3@7, ~@5 f3@12 [eb3,eb4]@15", // Eb
U: "~@13 d4@4 ~@4 ab3@4 ~@4 ab4@3, ~ g2@16 ab2@15, ~ d4@12 ~@4 [c4,eb4]@8 ~@7, ~ b3@8 [b2,b3]@8 ~@15, ~@5 g3@12 ~@8 [ab3,c4,eb4]@7", // Cm B Ab
V: "~@13 [bb2,d4]@4 ~@12 eb4@3, ~ [bb2,d4]@12 ~@4 [c3,c4]@8 [c3,c4]@7, ~ bb3@8 bb3@8 eb4@12 ~@3, ~@5 f3@12 ~@4 g3@11", // Bb C
W: "~@13 f4@4 ~@12 d4@3, ~ [f2,ab4]@16 bb2@15, ~ f4@12 ~@8 f3@11, ~ f3@8 [f3,g4]@8 bb3@8 bb3@7, ~@5 c4@12 d4@12 ~@3", // Fm Fsus2
X: "~@13 eb4@4 ~@4 g3@4 ~@4 d4@3, ~ [eb3,g4]@16 ~@8 [b2,b3,g4]@7, ~ eb4@12 ~@19, ~ bb3@8 [eb2,bb3]@8 [g2,b3,d4]@7 ~@8, ~@5 g3@12 ~@15", // Eb Em Eb5 G
Y: "~@13 eb4@3 ~@13 f3@2 bb2, ~ ab2@16 [bb2,bb3]@15, ~ eb4@12 ~@4 d4@10 d4@5, ~ c4@8 c4@7 ~@9 f4@7, ~@5 ab3@11 ~@5 f3@8 ~@3", // Bb
Z: "[~ g3@4 ~@8 d4@4 g3@4 ~@24 [c3,eb4]@4 ~@4 ab3@4 [ab3,c4]@4 [ab3,c4,f4]@3, ~ g2@32 [c3,c4,eb4]@4 g3@4 c4@8 ~@8 [f3,g4]@7, ~ d4@8 b3@8 d4@8 g4@4 d4@20 ~@15, ~ b3@8 g4@12 g3@12 g4@16 ~@15, ~@5 g3@12 b3@8 b3@24 [f2,ab4]@15]/2", // Cm Ab Fm Cm Fsus2 Fm
AA: "[~ f3@4 f3@4 f3@4 ~@2 bb2@2 [eb3,g3]@4 ~@10 eb3@2 ~@4 g3@4 ~@4 d4@4 ~@4 ab3@4 ~@6 eb3@2 f3@4 ~@10 bb2@2 g3@4 ~@4 eb4@2 ~@6 [g3,c4]@4 ~@10 c5@2 ~@12 [c3,f4]@3, ~ bb2@12 f3@4 [bb3,eb4]@10 bb3@6 ~@16 c4@8 [ab3,c4,ab4]@8 ~@4 f3@12 ~@4 g3@10 bb4@10 [c3,d4]@2 eb4@2 g4@5 ~@14, ~ [bb3,d4]@8 [bb3,d4]@8 g4@16 ~@40 [c4,f4]@8 ~@6 bb3@26 ~@4 c4@4 [ab3,c4,d4,g4]@7, ~@21 g3@4 g3@8 [g2,b3,d4]@8 [b2,b3,g4]@8 ab2@16 [bb2,bb3]@12 bb3@4 [bb3,eb4]@8 ~@4 g4@10 c4@10 [ab4,f5]@15, ~@23 eb3@6 eb4@4 ~@16 eb4@12 eb4@4 [d4,f4]@10 d4@6 ~@10 eb4@6 [c3,eb4]@4 g3@12 ~@6 c3@6 ~@3]/4", // Eb C5 F5 Eb5 Ab Csus2 Bb F5 …
AB: "~@5 f3@4 ~@4 bb4@4 bb3 ~@3 g3@4 [g3,bb3]@4 [eb3,bb3,eb4]@3, ~ bb2@16 [eb2,g4]@15, ~ [bb3,d4]@8 [d3,f3,bb3,d4]@8 [eb3,eb4]@12 ~@3", // Gm Eb5 Eb Bb Eb
AC: "~ g3@4 g3@4 ~@4 [g3,d4]@4 ~@8 c4@4 [c4,eb4]@3, ~ [g2,b3,d4]@8 [b2,b3,g4]@8 eb4@12 ~@3, ~@17 [ab2,c4]@8 ab2@7, ~@21 ab3@11", // G5 Cm G Em Ab
AD: "[~ bb3@4 ~@10 bb2@2 g3@4 g3@4 ~@6 g3@2 ~@12 [c3,f4]@4 ~@4 f3@4 ~@4 bb4@4 bb3 ~@3 g3@4 [g3,bb3]@4 [eb3,bb3,eb4]@4 g3@4 g3@4 ~@4 [g3,d4]@3, ~ bb2@12 bb3@4 ~@8 [g3,c4,eb4]@8 ~@8 [ab3,c4,d4,g4]@8 [bb3,d4]@8 [d3,f3,bb3,d4]@9 ~@23 [b2,b3,g4]@7, ~ d4@8 [c4,f4]@8 c4@8 ~@12 c4@4 ~@24 [eb2,g4]@16 ~@15, ~@5 f3@12 c3@12 c3@10 c3@6 ~@4 bb2@17 ~@15 [g2,b3,d4]@8 ~@7, ~@7 bb3@4 d4@6 ~@16 [ab4,f5]@16 ~@16 [eb3,eb4]@12 ~@19]/3", // F5 Gm Eb5 G5 Cm Abmaj7 Bb Em …
AE: "[~@9 c4@4 [c4,eb4]@4 bb3@4 ~@10 bb2@2 g3@4 ~@8 d4@4 g3@4 ~@24 eb4@4 ~@12 f4@3, ~ eb4@12 ~@4 d4@8 [c4,f4]@8 b3@8 g4@12 g3@12 c3@4 g3@4 c4@8 ~@8 [ab3,g4]@7, ~ [ab2,c4]@8 ab2@8 bb2@12 bb3@4 ~@4 g3@12 b3@8 [b3,g4]@24 ~@4 c3@11, ~@5 ab3@12 ~@4 f3@12 g2@48 [f2,ab4]@15, ~@23 bb3@4 d4@6 d4@8 b3@8 d4@12 d4@20 ~@15]/3", // Cm F5 Abmaj7 Ab Em Fm
AF: "~ bb3 ~@27 eb4@3, ~ [bb2,d4]@16 eb4@4 g3@4 c4@7, ~@5 f3@27, ~@9 [g2,b3]@23, ~@13 g3@4 c3@15", // Bb G
AG: "~@13 eb4@4 ~@4 ab3@4 ~@4 f4@3, ~ [c2,g4]@16 [f2,ab4]@15, ~ eb4@12 ~@19, ~ c4@8 c4@8 c4@8 ~@7, ~@5 g3@12 ~@8 [ab3,c4,g4]@7", // C5 Fm Abmaj7
AH: "~@13 eb4@4 ~@4 g3@4 ~@4 d4@3, ~ [eb3,g4]@16 ~@8 [b2,b3,g4]@7, ~ eb4@12 ~@19, ~ bb3@8 [eb2,bb3]@8 [g2,b3,d4]@8 ~@7, ~@5 g3@12 ~@15", // Eb Em Eb5 G
AI: "[~ g3@4 ~@12 g3@4 ~@8 eb4@4 ~@12 [c3,eb4]@4 ~@12 eb4@3, ~ g2@32 [c4,eb4]@4 g3@4 c4@8 ~@4 g3@11, ~ d4@8 g4@8 [c4,eb4]@4 g3@4 [c4,g4]@8 g4@16 ~@15, ~ b3@8 b3@40 c3@15, ~@5 g3@8 d4@36 ~@8 c4@7]/2", // Cm C5
AJ: "~@13 f4@4 ~@12 bb4@3, ~ [f2,ab4]@16 ~@4 f3@11, ~@5 c3@12 bb2@15, ~@9 [ab3,g4]@8 [bb3,d4]@8 [d4,f4]@7", // Fm Abmaj7 Bb Dm
AK: "~@13 bb3@4 ~@4 g3@4 ~@4 d4@3, ~ [eb3,g4]@16 ~@8 [d3,b3,g4]@7, ~ bb3@12 ~@4 b3@8 ~@7, ~ eb4@8 eb4@8 ~@15, ~@5 f4@12 ~@15", // Eb G
AL: "[~@9 c4@8 bb3 ~@35 eb4@4 ~@12 f4@4 ~@12 bb4@4 ~@12 bb3@4 ~@4 g3@4 ~@4 d4@4 ~@8 c4@8 bb3 ~@11 g3@4 [c3,g3,eb4]@103, ~ ab2@16 [bb2,d4]@28 g3@44 bb3@12 ~@4 b3@8 ~@8 c4@8 ~@16 [g2,b3]@64 ~@47, ~ eb4@12 ~@16 g3@12 c3@8 c4@8 ~@8 [ab3,g4]@8 [bb3,d4]@8 [d4,f4]@8 eb4@8 eb4@8 ~@16 eb4@12 ~@123, ~ c4@8 ~@16 [g2,b3]@32 [f2,ab4]@16 ~@4 f3@12 [eb3,g4]@16 ~@8 [d3,b3,g4]@8 ab2@16 [bb2,d4]@64 ~@55, ~@5 ab3@12 ~@4 f3@36 ~@4 c3@12 bb2@16 ~@4 f4@12 ~@20 ab3@12 ~@4 f3@64 ~@51]/8", // Cm Bb G Abmaj7 Bb Dm G Fm …
})).s("gm_piano").gain(0.48)
// chords · piano · "A.PIANO" · soft notes
const piano_soft = note(`<
~ A B ~@2 C D E F G H I ~ J K L M N O ~@2 P ~@7 Q ~@3 R@2 ~@2 S T ~@3 A B ~ P ~@7 U V W X ~ Y Z AA ~@4
>`.pickRestart({
A: "~@9 bb3@8 ~@15", B: "~@11 g3@6 ~@12 eb4@3, ~ g2@16 ~@15", C: "~@5 c3@12 d4@12 ~@3", D: "~ eb3@16 ~@8 [d3,g3]@7",
E: "~ ab2@16 ~@15", F: "~ c3@16 ~@8 ab3@7", G: "~ bb2@16 eb3@15, ~@17 g4@12 ~@3, ~@17 bb3 ~@14", H: "~@9 b2@8 ~@15",
I: "~ bb2@15 ~@16, ~ bb3@8 ~@23", J: "~@9 f3@8 ~@15", K: "~ eb3@16 ~@15",
L: "~@9 ab3@8 bb2@15, ~ ab2@16 ~@15, ~ eb4@12 ~@4 bb3 ~@14", M: "~ c3@14 c4@2 ~@15", N: "~@17 eb3@15",
O: "~@9 d3@8 eb4@12 ab2@3", P: "~@25 f3@7", Q: "~@15 db4@2 c4@8 eb4@7", R: "[~@17 f2@14 bb2@2 ~@28 g3@3]/2",
S: "~ f2@14 bb2@2 ~@15", T: "~@13 g3@4 ~@15", U: "~@15 db4@2 ~@15", V: "~@25 bb3@7", W: "~@27 g3@5, ~@17 g2@15",
X: "~@13 eb4@4 ~@15", Y: "~@17 bb3@8 ~@7", Z: "~@19 g3@6 ~@7, ~@9 g2@16 ~@7", AA: "~@5 eb4@4 ~@23",
})).s("gm_piano").gain(0.28)
// chords · epiano1 · "EPNO/BRASS"
const epiano1 = note("<A B C D@2 E F G H I J K@3 L M N O P Q@2 ~@20 A B C R@3 ~@6 S@3 T@7 ~@2>".pickRestart({
A: "~ [g4,c5,eb5]@16 [ab4,c5,eb5]@15", B: "~ [f4,bb4,d5]@16 [g4,bb4,eb5]@15",
C: "~@9 g5@8 [ab4,c5]@15, ~ [g4,b4,d5]@16 ~@15", D: "[~ [f4,bb4,d5]@15 ~ [g4,b4,d5]@32 [g4,c5,eb5]@15]/2",
E: "~ c5@16 [f4,bb4,d5]@15", F: "~ [g4,eb5]@15 ~@9 g4@7, ~@17 [b4,d5]@15", G: "~ [ab4,c5]@16 [bb4,d5]@15",
H: "~@9 g5@8 [ab4,c5,eb5]@15, ~ [g4,c5,eb5]@16 ~@15", I: "~ [f4,bb4,d5]@16 ~@4 g4@11, ~@17 eb5@15, ~@17 bb4@8 ~@7",
J: "~@9 g4@8 [ab4,c5,eb5]@15, ~ [b4,d5]@16 ~@15", // Ab Bm
K: "[~ [bb4,d5]@16 b4@16 b4@16 [g4,eb5]@16 ab4@8 [ab4,c5]@8 [bb4,d5]@15, ~@17 g4@24 ~@8 c5@24 f4@23, ~@65 [eb5,ab5]@16 ~@15]/3", // Bb Cm Ab Bb Ab5
L: "~@13 g4@4 ~@8 d5@7, ~ [bb4,eb5]@16 ~@15, ~ g4@12 ~@4 [f4,b4]@15, ~@9 g5@8 ~@15", // Eb5 Fdim
M: "~ [ab4,c5,eb5]@15 ~@13 bb4@3, ~@17 [bb4,d5]@10 d5@5, ~@21 f4@11, ~@25 [c5,f5]@7", // Ab Bb F5
N: "~ [g4,c5,eb5]@8 ~@4 g5@4 [ab4,c5]@15, ~@9 eb5@4 eb5@19, ~@11 [d5,f5]@6 ~@15", // Cm Ab Dm
O: "~ [f4,bb4,d5]@16 g4@4 ~@8 eb5@3, ~@17 eb5@12 ~@3, ~@21 g4@11, ~@25 g5@7", // Bb
P: "~@9 [b4,g5]@8 [ab4,c5]@15, ~ [g4,d5]@15 ~@16", // Em Ab G5
Q: "[~ d5@12 d5@4 ~@12 g5@4 [c5,eb5]@25 ~@6, ~ bb4@16 g4@42 ~@5, ~@17 b4@16 ~@31]/2", // Cm
R: "[~ d5@8 g4@8 [g4,c5,eb5]@64 ~@15, ~ [f4,bb4]@64 ~@31, ~@9 [b4,d5]@64 ~@23]/3", // Cm Bb5 Bm
S: "[~@17 [c5,eb5]@16 ~@16 [f4,bb4,d5]@16 [g4,bb4,eb5]@16 ~@8 g5@7, ~@17 g4@48 ~@16 [g4,b4,d5]@15, ~@33 [ab4,c5,eb5]@32 ~@31]/3", // Cm Bb Eb G Ab
T: "[~ [ab4,c5]@16 d5@8 g4@16 [c5,eb5]@16 ~@16 [f4,bb4,d5]@16 [g4,bb4,eb5]@16 ~@8 g5@8 [ab4,c5]@16 d5@8 [g4,b4,d5]@64 ~@15, ~@17 [f4,bb4]@40 [ab4,c5,eb5]@32 ~@135, ~@25 b4@64 ~@135, ~@25 d5@48 ~@151, ~@41 g4@48 ~@16 [g4,b4,d5]@16 ~@16 [f4,bb4]@64 ~@23]/7", // Ab Cm Bb Eb Ab G Bb5 Ab …
})).s("gm_epiano1").gain(0.3)
// chords · epiano1 · "EPNO/BRASS" · soft notes
const epiano1_soft = note("<~@2 A ~@2 B C D ~ E F G H ~@3 I J A G ~@23 A ~@12 K ~@2 L@2 ~@4>".pickRestart({
A: "~@17 eb5@15", B: "~ [ab4,ab5]@16 ~@15", C: "~ bb4@15 ~@16", D: "~@25 f4@7", E: "~@25 bb4@7", F: "~@9 g5@8 ~@15",
G: "~ f4@16 ~@15", H: "~@9 [g4,d5]@8 ~@15, ~ g5@16 ~@15", I: "~@9 [g4,c5]@8 ~@15", J: "~@17 bb4@15",
K: "~ eb5@16 ~@15", L: "[~@25 eb5@16 ~@23]/2",
})).s("gm_epiano1").gain(0.15)
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
A B C D E F G H I J K ~ E F L M N O P Q R@2 S T U V W X@2 Y Z AA@3 AB AC@2 AD AE AF@2 A B AG AH AI S T AJ AK@2 AL@2 AM
AN AO AP AQ@7 ~
>`.pickRestart({
A: "~ c3@16 f3@15", B: "~ bb2@16 eb3@15", C: "~@17 ab2@15", D: "~@17 g2@15", E: "~@17 c3@15", F: "~ f2@16 bb2@15",
G: "~ eb3@16 g3@15", H: "~ ab3@16 ~@15", I: "~ c4@16 f3@15", J: "~@17 eb3@15", K: "~ g3@16 ab3@15",
L: "~ eb3@16 g2@8 g3@7", M: "~ ab2@16 bb2@15", N: "~ c3@11 ~ c3@4 f2@7 ~ f3@7", O: "~ bb2@8 bb3@8 eb3@11 ~ eb3@3",
P: "~ g2@8 g3@8 ab2@11 ~ ab2@3", Q: "~ bb2@16 g2@15", R: "[~ c3@28 g3 ~ g3@2 c3@8 c4@2 g3@2 c3@4 f3@11 ~ f3@3]/2",
S: "~ bb2@12 ~@4 eb3@11 ~ eb3@3", T: "~ g2@8 g3@8 ab2@8 ab3@2 eb3@2 ab2@3",
U: "~ bb2@7 ~ bb3@4 bb2@4 c3@8 c4@2 g3@2 c3@3", V: "~ f2@8 f3@5 ~ f2@2 bb2@11 ~ bb2@3",
W: "~ eb3@16 g2@8 g3@2 d3@2 g2@3", X: "[~ ab2@11 ~ ab2@4 bb2@11 ~@3 bb2@2 g2@14 d3@2 g3@5 ~ g2@2 g3@2 d3@2 g2@3]/2",
Y: "~ c3@8 c4@6 c3@2 f3@12 f2@3", Z: "~ bb2@8 bb3@8 eb3@9 ~ eb3@5",
AA: "[~@9 g3@4 ~@4 ab2@8 ab3@2 eb3@2 ab2@4 bb2@8 bb3@2 ~@2 bb2@4 eb3@6 bb3@2 eb4@2 bb3@4 eb3@2 c3@6 g3@2 c4@2 c3@4 g3@2 f3@12 f2@3, ~ g2@15 ~@80]/3",
AB: "~ bb2@8 bb3@4 bb2@4 eb3@11 ~ eb3@3", AC: "[~ g2@8 g3@4 g2@3 ~ ab2@11 ~ ab2@4 bb2@8 bb3@5 ~ bb2@2 c3@14 g3]/2",
AD: "~ f3@12 f2@4 bb2@8 bb3@4 bb2@3", AE: "~ eb3@11 ~ eb3@4 g2@8 g3@4 g2@3",
AF: "[~ ab2@11 ~ ab2@4 bb2@8 bb3@5 ~ bb2@3 g2@13 d3@2 g3@5 ~ g2@2 g3@2 d3@2 g2@3]/2", AG: "~ g2@16 ab2@15",
AH: "~@9 g2@8 c3@15", AI: "~ c3@8 c4@2 g3@2 c3@4 f3@10 ~@2 f3@3", AJ: "~ bb2@8 bb3@4 bb2@4 c3@8 c4@2 g3@2 c3@3",
AK: "[~ f2@8 f3@5 ~ f2@2 bb2@11 ~ bb2@4 eb3@16 g2@8 g3@2 d3@2 g2@3]/2",
AL: "[~ ab2@11 ~ ab2@4 ~ bb2@11 ~@2 bb2@2 g2@14 d3@2 c3@13 ~@2]/2", AM: "~ c4@14 ~@2 c3@15", AN: "~ f3@16 bb2@15",
AO: "~ eb3@16 g2@15", AP: "~ ab2@16 ~ bb2@7 g2@7",
AQ: "[~@9 c3@16 f3@16 bb2@16 eb3@16 g2@16 ab2@16 ~ bb2@7 g2@8 c3@95 ~@8]/7",
})).s("gm_acoustic_bass").gain(0.44)
// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note("<~@2 A B C ~@2 D ~ E ~ F@2 ~@6 G ~@2 H ~@4 I ~@2 J ~ K ~@11 L ~ M ~@4 I ~@13>".pickRestart({
A: "~ g2@16 ~@15", B: "~ bb2@16 ~@15", C: "~ g3@16 ~@15", D: "~@17 bb3@15", E: "~ bb3@16 ~@15",
F: "[~ bb3@16 ~@16 g2@17 ~@14, ~@17 g3@32 ~@15]/2", G: "~@29 g3@3", H: "~@15 bb2@2 ~@15", I: "~@29 bb2 ~@2",
J: "~@15 bb2 ~@16", K: "~@11 f3@2 ~@19", L: "~ bb2@8 ~@23", M: "~@15 bb2@3 ~@14",
})).s("gm_acoustic_bass").gain(0.25)
// drums · kick
const kick = s("bd").struct(`<
~@21 A B C D C E A F G H I J I K L M N O P F A B C D A B C D C E A F Q B@2 R S T@2 U ~@4
>`.pickRestart({
A: "~ x ~@13 x ~ x ~@14", B: "~ x ~@15 x ~@14", C: "~ x ~@15 x ~@13 x", D: "~ x ~@13 x ~@7 x ~@3 x ~@4",
E: "~ x ~@13 x ~@5 x ~ x ~@8", F: "~ x ~@13 x ~@16", G: "~ x ~@13 x ~ x ~@3 x ~@9 x", H: "~ x ~@13 x ~@7 x ~@7 x",
I: "~ x ~@15 x ~@3 x ~@9 x", J: "~ x ~@13 x ~ x ~@3 x ~@3 x ~@6", K: "~ x ~@3 x ~@11 x ~@13 x",
L: "~@5 x ~ x ~@5 x ~ x ~ x ~@14", M: "~ x ~@3 x ~@7 x ~@3 x ~@11 x ~@2", N: "~ x ~@3 x ~@9 x ~ x ~@3 x ~@10",
O: "~ x ~@13 x ~@5 x ~ x ~@5 x ~ x", P: "~ x ~@15 x ~@3 x ~@7 x ~@2", Q: "~@17 x ~@13 x", R: "~ x ~@13 x ~@2 x ~@13",
S: "~@9 x ~@13 x ~ x ~@6", T: "~@9 x ~@15 x ~@6", U: "~@7 x ~ x ~@22",
})).gain(0.35)
// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
~@22 A ~ B C D E@2 ~ F C ~ C@2 G H E I J E ~ A ~ B ~ A ~ B C D E ~@2 E C ~@2 K L ~@5
>`.pickRestart({
A: "~@15 x ~@15 x", B: "~@19 x ~ x ~@9 x", C: "~@15 x ~@16", D: "~@19 x ~@11 x", E: "~@31 x", F: "~@19 x ~ x ~@10",
G: "~@3 x ~@17 x ~@9 x", H: "~@21 x ~@10", I: "~@19 x ~@12", J: "~@5 x ~@9 x ~@16", K: "~@23 x ~@8", L: "~@7 x ~@24",
})).gain(0.14)
// drums · snare
const snare = s("sd").struct("<~@21 A@7 B A C A B A@7 B A@11 B D A@2 B E F@2 G ~@4>".pickRestart({
A: "~@9 x ~@15 x ~@6", B: "~@9 x ~@22", C: "~@9 x ~@15 x ~@5 x", D: "~@25 x ~@6", E: "~@17 x ~@14",
F: "~ x ~@15 x ~@14", G: "~ x ~@30",
})).gain(0.69)
// drums · low tom
const low_tom = s("lt").struct("<~@28 [~@29 x ~@2] ~@3 [~@29 x ~@2] ~@7 [~@29 x ~@2] ~@24>").gain(0.55)
// drums · hihat
const hihat = s("hh").struct("<~@21 A@9 B A@25 C D A@2 E ~@4>".pickRestart({
A: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", B: "~ x ~@3 x ~@3 x ~@3 x ~@4 x ~@2 x ~@3 x ~@3 x ~@2",
C: "~ x ~@3 x ~@3 x ~@3 x ~@4 x ~@6 x ~@6", D: "~@9 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
E: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@10",
})).gain(0.28)
// drums · mid tom
const mid_tom = s("mt").struct("<~@20 A ~@7 B ~@3 C ~@7 B ~@24>".pickRestart({
A: "~@23 x ~ x ~ x ~ x ~@2", B: "~@23 x ~@3 x ~ x ~@2", C: "~@27 x ~@4",
})).gain(0.55)
// … 28 more lines
More by Riccardo Cocciante
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.