0:00/0:00
// Het wijnfeest — Willeke Alberti
// 108 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 78, 4/4 at bar 78) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 78 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(108/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 · piano · "A.PIANO 1"
const piano = note("<A B C@2 D E F G@2 H I J K@4 ~@24 L@5 M@6 ~@27>".pickRestart({
A: "~@29 [a1,a2]@3", B: "~@6 [a3,c4,e4]@4 ~@6 [e1,e2]@4 ~@5 [a3,c4,e4]@4 ~@3",
C: "[~@3 [a1,a2]@4 ~@5 [a3,c4,e4]@4 ~@5 [e1,e2]@4 ~@6 [a3,c4,e4]@4 ~@5 [a1,a2]@4 ~@6 [a3,c4,e4]@4 ~@5 [e1,e2]@4 ~]/2", // A Am E Am A Am E
D: "~@4 [a3,c4,e4]@4 ~@6 [a1,a2]@4 ~@5 [a3,c4,e4]@4 ~@5", // Am A Am
E: "[e1,e2]@4 ~@6 [a3,c4,e4]@4 ~@5 [a1,a2]@4 ~@6 [a3,c4,e4]@3", F: "~@6 [e1,e2]@4 ~@6 [a3,c4,e4]@4 ~@5 [e1,e2]@4 ~@3",
G: "[~@2 [g#3,b3,d4]@4 ~@6 [b0,b1]@4 ~@5 [g#3,b3,d4]@4 ~@6 [e1,e2]@4 ~@5 [g#3,b3,d4]@4 ~@5 [b0,b1]@4 ~@6 [g#3,b3,d4]@4 ~]/2", // G#dim B G#dim E G#dim B G#dim
H: "~@4 [a1,a2]@4 ~@5 [a3,c4,e4]@4 ~@6 [e1,e2]@4 ~@5", I: "[a3,c4,e4]@4 ~@6 [a1,a2]@4 ~@5 [a3,c4,e4]@4 ~@5 [e1,e2]@4",
J: "~@6 [a3,c4,e4]@4 ~@5 [g1,g2]@4 ~@6 [g3,b3,d4]@4 ~@3", // Am G
K: "[~@2 [d1,d2]@4 ~@5 [g3,b3,d4]@4 ~@6 [f1,f2]@4 ~@5 [f3,a3,c4]@4 ~@5 [c1,c2]@4 ~@6 [f3,a3,c4]@4 ~@5 [e1,e2]@66 ~@4]/4", // D G F C F E
L: "[~@23 [e4,g4] ~@7 [e4,g4,c5] ~@7 [e4,g4,c5] ~@7 [g4,c5] ~@4 [c2,c3]@2 ~ [g4,b4] ~@7 [d4,g4,b4] ~@7 [d4,g4,b4] ~@7 [d4,g4,b4] ~@4 [b1,b2]@2 ~ [c4,e4,a4] ~@7 [c4,e4] ~@7 [e4,a4] ~@7 [c4,e4] ~@4 [a1,a2]@2 ~ [e4,g#4]@2 ~@6 [e4,g#4]@2 ~@6 [e4,g#4,b4] ~@7 [e4,g#4]@2 ~ g#2@2 g#1@3 [d4,e4,g4] ~@6 [d4,e4] [g4,a#4], ~@23 [c2,c3]@25 ~@7 [b1,b2]@25 ~@7 [a1,a2]@25 ~@7 [g#1,g#2]@25 ~@7 [g1,g2]@7 ~@2, ~@23 c5@2 ~@22 e4@2 ~@6 d4@2 ~@38 a4@2 ~@6 c4@2 ~@6 a4@2 ~@6 b4 ~@7 b4 ~@15 b4 ~@7 a#4@2 ~@7]/5", // Em C C5 C G B Am C …
M: "[~@6 [d4,e4] [g4,a#4] ~@3 g2@3 ~ [g4,a#4] ~@4 [g1,g2]@2 ~ [f4,a4] ~@7 [d4,f4,a4] ~@7 [d4,f4,a4] ~@7 [d4,f4,a4] ~@4 [f1,f2]@3 [e4,a4] ~@15 [d4,d5]@8 ~@10 e5@45 ~ [e3,g#3,e4]@7 ~@2 [f#2,f#3,a3]@9 ~ [b3,e4]@9 ~@29, ~@14 [d4,e4]@2 ~@6 [f1,f2]@25 ~@8 e2@30 ~ e4@48 ~@10 e4@7 ~@41, ~@23 d4@2 ~@30 e1@17 ~@8 [c4,c5]@6 b2@2 [e2,b4]@46 e2@9 ~@49, ~@55 c4@2 ~@6 e3@20 ~@2 d3@2 g#4@47 ~@58, ~@29 g#2 ~@21 [g#2,g#3]@3 ~@10]/6", // Dsus2 Gm G F Dm F A5 D …
})).s("gm_piano").gain(0.4)
// bass · tuba
const bass = note(`<
~@16 A B C D A B E F G H@5 I J K L M N O P Q R@2 ~@9 S@2 T U V W X@2 Y Z@3 AA AB AC AD@4 AE AF AG AH AI AJ AK AL@2
>`.pickRestart({
A: "g2@4 ~@4 d3@4 ~@4 g2@5 ~@3 d3@5 ~@3", B: "c3@4 ~@4 g2@4 ~@4 c3@5 ~@3 g2@5 ~@3",
C: "e2@4 ~@4 b2@4 ~@4 e2@5 ~@3 b2@5 ~@3", D: "a2@4 ~@4 e3@4 ~@4 a2@5 ~@3 g#2@7 ~",
E: "a2@4 ~@4 a2@4 ~@4 d2@5 ~@3 d#2@5 ~@3", F: "e2@3 ~ d2@3 ~", G: "c#2@12 ~@4 b1@3 ~@5 e2@7 ~",
H: "[a2@4 ~@4 e2@5 ~@3 a2@5 ~@3 e2@4 ~@3 a2@4 ~@4 e2@5 ~@3 a2@5 ~@3 e2@4 ~@4 a2@4 ~@4 e2@5 ~@3 a2@5 ~@2 e2@4 ~@4 c#3@4 ~@4 a2@5 ~@3 e2@5 ~@3 b2@4 ~@4 e2@4 ~@4 b2@5 ~@2 e2@5 ~@3 b2@4 ~@4 e2@3]/5",
I: "~@5 b2@5 ~@3 e2@5 ~@3 b2@4 ~@4 e2@3", J: "~@4 b2@5 ~@3 e2@5 ~@3 b2@4 ~@4 e2@4",
K: "~@4 f#2@3 ~@2 g#2@2 ~ a2@2 e2 ~@2 f#2 ~@2 e2 ~ f#2 ~@2 g#2 ~ a2@4 ~", L: "~@3 e2@5 ~@3 a2@5 ~@3 e2@4 ~@4 a2@4 ~",
M: "~@3 e2@5 ~@2 a2@5 ~@3 e2@4 ~@4 a2@4 ~@2", N: "~@2 e2@5 ~@3 a2@5 ~@3 e2@4 ~@4 c#3@4 ~@2",
O: "~ a2@5 ~@3 e2@5 ~@3 b2@4 ~@4 e2@4 ~@3", P: "~ b2@5 ~@3 e2@5 ~@3 b2@4 ~@3 e2@4 ~@4",
Q: "b2@5 ~@3 e2@5 ~@3 b2@4 ~@4 e2@4 ~@4", R: "[b2@5 ~@3 e2@5 ~@2 b2@4 ~@4 e2@4 ~@4 f#2@3 ~@2 g#2@2 ~ a2@16 ~@9]/2",
S: "[~@3 a2@5 ~@4 e2@5 ~@5 a2@6 ~@3 e2@5 ~@4 a2@5 ~@5 e2@5 ~@4 a2@5]/2", T: "~@4 e2@5 ~@4 a2@5 ~@5 e2@5 ~@4",
U: "a2@6 ~@3 e2@5 ~@4 c#3@5 ~@4 a2@5", V: "~@4 e2@5 ~@5 b2@5 ~@4 e2@5 ~@4", W: "b2@5 ~@4 e2@5 ~@4 b2@5 ~@4 e2@5",
X: "[~@4 b2@5 ~@3 e2@5 ~@4 b2@5 ~@4 e2@5 ~@4 b2@5 ~@4 e2@5 ~@4 b2@5 ~@2]/2",
Y: "~@2 e2@5 ~@3 f#2@4 ~@2 g#2@2 ~ a2@2 ~ e2 ~@2 f#2@2 ~ e2@2 f#2 ~",
Z: "[~ g#2@2 ~ a2@5 ~@4 e2@5 ~@3 a2@5 ~@4 e2@5 ~@3 a2@5 ~@4 e2@5 ~@3 a2@5 ~@3 e2@5 ~@4 a2@5 ~@3 e2@5 ~@3 a2@5 ~@3]/3",
AA: "e2@5 ~@3 c#3@5 ~@3 a2@5 ~@3 e2@5 ~@3", AB: "~ b2@5 ~@3 e2@4 ~@4 b2@5 ~@2 e2@5 ~@3",
AC: "b2@4 ~@4 e2@4 ~@4 b2@5 ~@3 e2@5 ~@3",
AD: "[b2@4 ~@4 e2@4 ~@3 b2@5 ~@3 e2@5 ~@3 b2@4 ~@4 e2@4 ~@4 f#2@3 ~@2 g#2@2 ~ a2@15 a2@4 ~@4 e2@5 ~@3 a2@5 ~@3 e2@4 ~@4 a2@4 ~@4 e2@5 ~@3 a2@5 ~@2 e2@3]/4",
AE: "~@5 a2@4 ~@4 e2@5 ~@3 a2@5 ~@3 e2@3", AF: "~@5 c#3@4 ~@4 a2@5 ~@2 e2@5 ~@3 b2@4",
AG: "~@4 e2@4 ~@4 b2@5 ~@3 e2@5 ~@3 b2@4", AH: "~@4 e2@4 ~@3 b2@5 ~@3 e2@5 ~@3 b2@4 ~",
AI: "~@3 e2@4 ~@4 b2@5 ~@3 e2@5 ~@2 b2@4 ~@2", AJ: "~@2 e2@4 ~@4 f#2@3 ~@2 g#2@2 ~ a2@4 ~@4 e2@5 ~",
AK: "~@2 a2@5 ~@3 e2@4 ~@3 a2@4 ~@4 e2@5 ~@2", AL: "[~ e2@5 ~@3 b1@4 ~@4 a1@31 a1@2 ~@14]/2",
})).s("gm_tuba").gain(0.35)
// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note("<~@5 A@4 B C@5 D E F G H I J K L M ~@53>".pickRestart({
A: "[~@19 e4@34 ~@4 [b3,d4]@28 ~@9 d4@27 ~@7, ~@16 e3@36 ~@3 e3@30 ~@6 e3@32 ~@5, ~@17 a3@36 ~@3 g#3@29 ~@7 g#3@28 ~@8, ~@18 c4@35 ~@40 b3@27 ~@8]/4", // Bm
B: "~@4 e4@23 ~@5, ~ e3@29 ~@2, ~@2 a3@25 ~@5, ~@3 c4@24 ~@5",
C: "[~@9 e4@30 ~@8 d4@29 ~@8 c4@31 ~@8 e3@4 g#3@4 ~ b3@4 ~@15 b4@9, ~@7 a3@31 ~@6 d3@33 ~@4 c3@34 ~@21 [b3,d4]@10 g#4@14, ~@8 c4@31 ~@6 g3@31 ~@6 f3@33 ~@12 e3@32 ~, ~@46 b3@31 ~@6 a3@32 ~@17 g#3@28, ~@141 e4@19]/5", // Bm
D: "[e3,e5]@7 ~", E: "~@3 d4, d3@7 ~ d3@8, ~@3 f3@13 ~@3 f3@13, ~@5 g3@11 ~@5 g3@11, ~@8 d4@11 ~@13",
F: "~ c4 ~ c4, c3@7 ~ c3@8, ~@5 g3@11 ~@3 e3@13, ~@21 g3@11",
G: "~@3 d4, e3@7 ~ e3@8, ~@5 b3@11 ~@2 g#3@14, ~@8 d4@11 ~@2 b3@11",
H: "~@13 a4@3 e4@6 a4@2 ~@2 a4@6, c3@15 ~@17, ~@3 e3@12 ~@17, ~@5 a3@5 ~ a3@7 ~@14, ~@8 c4@6 ~@10 e4@7 ~",
I: "~@11 a4@2 g4@3 d4@2 ~@3 g3@2 ~ g3@2 ~ f#3@2 f3@3, d3@15 ~@17, d4@5 g3@11 ~@16, ~@3 f3@13 ~@16, ~@8 d4@6 ~@5 d4@5 ~@8",
J: "~@11 e3@2 g3@3 ~@8 g3@8, e3@8 c4@10 ~ g3@4 ~@9, ~@5 d4@11 e3@16, ~@21 c4@11",
K: "~@8 a3@5 a3@3 [f#3,c4]@5 a3 ~@2 d#3@5 a3@3, e3@7 ~@9, ~@3 a3@4 ~@25, ~@5 e4@11 ~@8 d#4@8", // F#dim
L: "~@5 g#3@3 ~@5 e3@3 a3@4 ~ g#3@3 ~@5 e3@3, d3@15 ~ d3@15 ~, ~@8 b3@9 ~@7 b3@8, ~@11 g#3@6 ~@10 g#3@5",
M: "a3@5 a3@3 ~@5 e3@3 [b2,b3,e4]@2 ~@14, c#3@15 ~@17, ~ c#4 ~@2, ~@11 a3@5 ~@16", // E5
})).s("gm_acoustic_guitar_nylon").gain(0.32)
// chords · acoustic guitar nylon · "NYLON GTR" · soft notes
const acoustic_guitar_nylon_2 = note("<~@10 A@2 ~@5 B C ~@2 D ~ E F ~@53>".pickRestart({
A: "[~@6 e3@33 ~@25]/2", B: "~@3 e3@13 ~@16", C: "~@3 g#3@13 ~@16", D: "~@3 g3@9 ~@20", E: "~@3 e3@6 ~@10 e3@6 ~@7",
F: "~@3 e3@6 ~@23",
})).s("gm_acoustic_guitar_nylon").gain(0.24)
// chords · accordion
const accordion = note(`<
~@10 A@6 B C D E F G H I@2 J@7 K@2 L@2 M@2 N@3 ~@9 O@3 P Q@6 R@5 S@3 T@4 U V W@4
>`.pickRestart({
A: "[~@9 [c4,c5]@34 [b3,b4]@2 [a3,a4]@2 [b3,b4]@28 [g3,g4]@10 [a3,a4]@27 [f3,f4]@10 [e3,e4]@67 ~@3, ~@3 [a3,a4] [b3,b4] ~@91, ~@7 [a#3,a#4]@2 ~@183]/6", // C B A B G A F E …
B: "[g4,e5]@13 [f4,d5]@3 [g4,e5]@13 [f4,d5]@3", C: "[f4,d5]@8 [e4,c5]@8 [f4,d5]@8 [e4,c5]@7 ~",
D: "[e4,c5]@12 [d4,b4]@4 [f4,d5]@13 [e4,c5]@3", E: "[d4,b4]@8 [c4,a4]@8 [e4,c5]@13 ~@3",
F: "[g4,e5]@12 ~ d5@3 [g4,e5]@12 ~ d5@3, ~@12 f4@4 ~@12 f4@3 ~", G: "[f4,d5] [e4,c5] [f4,d5] [e4,c5]",
H: "[c5,a5]@2 [d5,b5] [d#5,a5]", I: "[g#5@16 a5@8 g#5 ~@3 [g#4,d5,f#5]@3 ~, e5@49 ~@15]/2",
J: "[[c#5,e5]@11 ~@2 [c5,d#5]@2 [c#5,e5]@12 ~@2 [c5,d#5]@2 [c#5,e5]@6 ~@2 [c#5,f#5]@7 ~ [c#5,f#5]@7 ~ [c#5,e5]@8 ~@12 g#5@3 ~@5 b5@3 a5@5 g#5@3 ~@5 g#5@3 ~@5 e5@3 [b4,d5]@15 ~ [b4,d5]@12 [a#4,c#5]@2 ~ [b4,d5]@12 ~ [a#4,c#5]@2 ~ [b4,d5]@7 ~ [c#5,e5]@7 ~ [c#5,e5]@7 ~ [b4,d5]@7 ~ [e5,g#5]@12 [d5,f#5]@3 [e5,g#5]@5 [f#5,a5]@3 [e5,g#5]@5 [d5,f#5]@3 [e5,g#5]@4, ~@63 [e5,a5]@15 a5@5 ~@141, ~@79 e5@15 [e5,a5]@8 [c#5,f#5]@8 ~@114]/7", // C#m Cm C#m Cm C#m F#5 C#m Bm …
K: "[~ [d5,f#5]@2 [c#5,e5]@6 [b4,d5]@2 [a4,c#5]@15 ~@2 [c#5,e5]@11 ~ [c5,d#5]@3 [c#5,e5]@12 ~ [c5,d#5]@3 [c#5,e5]@5]/2", // D C#m Bm A C#m Cm C#m Cm …
L: "[~@3 [c#5,f#5]@7 [c#5,f#5]@7 ~ [c#5,e5]@8 [c#5,e5]@14 ~@2 [c#5,e5]@7 ~ [c#5,e5]@7 ~ [c#5,e5]@6]/2", // F#5 C#m
M: "[~ [c#5,e5]@7 ~ [b4,d5]@15 ~ [b4,d5]@12 ~ [a#4,c#5]@2 ~ [b4,d5]@12 ~ [a#4,c#5]@2 [b4,d5]@7 ~]/2", // C#m Bm A#m Bm A#m Bm
N: "[[c#5,e5]@7 ~ [c#5,e5]@7 ~ [b4,d5]@7 ~ [e5,g#5]@5 [f#5,a5]@2 ~ g#5@5 [d5,f#5]@2 [e5,g#5]@5 ~ [f#5,a5]@2 [e5,g#5]@5 ~ [d5,f#5]@2 [d5,e5]@2 ~@3 [d5,e5]@3 [d5,f#5]@5 [b4,g#5]@3 [c#5,a5]@15 ~@10, ~@31 e5@6 ~@59]/3", // C#m Bm E F#m D E F#m E …
O: "[~@3 [e4,e5]@15 [d#4,d#5]@4 [e4,e5]@15 [d#4,d#5]@4 [e4,e5]@8 [f#4,f#5]@8 ~@2 [f#4,f#5]@9 ~ [e4,e5]@8 [a4,a5]@15 [g#4,g#5]@4]/3", // E D# E D# E F# E A …
P: "[a4,a5]@6 [b4,b5]@3 [a4,a5]@6 [g#4,g#5]@3 [a4,a5]@6 [g#4,g#5]@3 [f#4,f#5]@5", // A B A G# A G# F#
Q: "[~ [e4,e5]@3 [d4,d5]@16 ~@3 [d4,d5]@14 [c#4,c#5]@3 [d4,d5]@12 ~@4 [c#4,c#5]@3 [d4,d5]@8 [e4,e5]@8 ~ [e4,e5]@9 [d4,d5]@9 [g#4,g#5]@15 [f#4,f#5]@3 [g#4,g#5]@6 [a4,a5]@3 [g#4,g#5]@5 [f#4,f#5]@4 [g#4,g#5]@6 [f#4,f#5]@3 [e4,e5]@5 [d4,d5]@3 [c#4,c#5]@17 ~ [c#5,e5]@12 ~ [c5,d#5]@3 [c#5,e5]@11]/6", // E D C# D C# D E D …
R: "[~@3 [c5,d#5]@3 [c#5,e5]@7 ~@2 [c#5,f#5]@7 ~ [c#5,f#5]@7 ~ [c#5,e5]@8 ~@13 g#5@3 ~@6 b5@2 a5@6 g#5@3 ~@5 g#5@3 [c#5,f#5]@6 e5@2 [b4,d5]@16 ~ [b4,d5]@12 [a#4,c#5]@2 ~ [b4,d5]@12 ~ [a#4,c#5]@2 ~ [b4,d5]@7 ~ [c#5,e5]@7 ~ [c#5,e5]@7 ~, ~@39 a5@13 ~@3 a5@6 ~@99, ~@40 e5@16 e5@15 ~ [e5,a5]@8 ~@80]/5", // Cm C#m F#5 C#m F#5 Bm A#m Bm …
S: "[[b4,d5]@7 ~ [e5,g#5]@12 [d5,f#5]@3 [e5,g#5]@5 [f#5,a5]@3 [e5,g#5]@5 ~ [d5,f#5]@2 [e5,g#5]@5 [d5,f#5]@2 [c#5,e5]@6 [b4,d5]@2 [a4,c#5]@15 ~@2 [c#5,e5]@11 ~ [c5,d#5]@3 [c#5,e5]@10]/3", // Bm E D E F#m E D E …
T: "[~@3 [c5,d#5]@3 [c#5,e5]@6 ~@2 [c#5,f#5]@7 [c#5,f#5]@7 ~ [c#5,e5]@8 [c#5,e5]@14 ~@2 [c#5,e5]@7 ~ [c#5,e5]@7 ~ [c#5,e5]@7 [c#5,e5]@7 ~ [b4,d5]@15 ~ [b4,d5]@12 ~ [a#4,c#5]@2 ~ [b4,d5]@12]/4", // Cm C#m F#5 C#m Bm A#m Bm
U: "~ [a#4,c#5]@2 [b4,d5]@7 ~ [c#5,e5]@7 ~ [c#5,e5]@7 ~ [b4,d5]@5", // A#m Bm C#m Bm
V: "~@3 [e5,g#5]@5 [f#5,a5]@2 ~ g#5@5 [d5,f#5]@2 [e5,g#5]@5 ~ [f#5,a5]@2 [e5,g#5]@5 ~, ~@5 e5@3 ~@8", // E F#m D E F#m E
W: "[[d5,f#5]@2 [d5,e5]@2 ~@3 [d5,e5]@3 [d5,f#5]@5 [b4,g#5]@3 [c#5,a5]@94 ~@16]/4", // D Dsus2 D E F#m
})).s("gm_accordion").gain(0.32)
// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@24 A@7 B C@2 D@2 E@2 F G H@3 I@8 J@3 K@4 L M@3 N@8 O@2 P@6>".pickRestart({
A: "[~@31 [e5,e6]@12 ~@4 e5@12 ~ d#5@3 [e5,e6]@7 ~ f#5@7 [f#5,f#6]@8 ~ e5@7 ~ a5@12 [g#5,g#6]@3 [a5,a6]@5 [b5,b6]@3 [a5,a6]@5 [g#5,g#6]@2 ~ a5@5 [g#5,g#6]@3 [f#5,f#6]@4 ~@4 d5@15 [d5,d6]@12 ~@4 d5@13 [c#5,c#6]@2 ~ d5@7 [e5,e6]@7 ~ e5@8 [d5,d6]@7 ~ g#5@4, ~@43 d#6@3 e6@14 ~@10 f#6@7 ~@17 a6@13 ~@18 a6@6 ~@8 e5@4 ~@27 c#5@4 ~@50, ~@44 d#5@4 ~@11 d#6@3 ~@24 e6@8 ~@44 e6@3 d6@15 ~@13 c#6@3 d6@14 ~@2 d6@8 ~@7 e6@8 ~@8 g#6@5]/7", // E F# G# A B A G# F# …
B: "~ [a5,a6]@3 [g#5,g#6]@5 [f#5,f#6]@2 ~ g#5@4 ~ a5@2 ~ g#5@4 ~ f#5@2 ~ g#5@4, ~@11 g#6@5 a6@3 g#6@5 f#6@3 g#6@5", // A G# F#
C: "[~ f#5@2 [e5,e6]@5 ~@4 c#5@14 ~ e5@12 [d#5,d#6]@3 [e5,e6]@13 [d#5,d#6]@3 [e5,e6]@6, f#6@3 ~@5 d6@3 c#6@15 e6@13 ~@25, ~@9 d5@4 ~@51]/2", // E D# E D# E
D: "[~@2 [f#5,f#6]@7 ~ f#5@7 ~ e5@8 [a5,a6]@12 ~ g#5@2 [a5,a6]@5 [b5,b6]@3 [a5,a6]@5 ~ g#5@2 [a5,a6]@5 ~ g#5, ~@9 f#6@8 e6@8 ~@13 g#6@3 ~@13 g#6@3 ~@5 g#6@2]/2", // F# A B A
E: "[~@2 f#5@4 [e5,e6]@3 [d5,d6]@15 ~ d5@12 [c#5,c#6]@3 [d5,d6]@13 [c#5,c#6]@3 [d5,d6]@7 e6, ~ f#6@5 ~@18 d6@13 ~@27]/2", // E D C# D C# D
F: "e5@7 [e5,e6]@8 [d5,d6]@8 [g#5,g#6]@5 ~ a5@2 [g#5,g#6], ~@28 a6@3 ~", // E D G#
G: "~@5 f#5@2 [g#5,g#6]@5 [a5,a6]@2 ~ g#5@5 [f#5,f#6]@3 [e5,e6]@5 [e5,e6]@2 ~ f#5, ~@4 f#6@3 ~@7 g#6@6 ~@10 f#6@2", // G# A F# E
H: "[~@4 [g#5,g#6]@3 [a5,a6]@15 ~ c4@29 b3@33 a3@11]/3", // G# A
I: "[~@21 g#3@31 g3@32 f3@33 a3@33 b3@37 e4@55 d#4@3 e4@11]/8",
J: "[~@5 d#4@3 e4@9 f#4@9 ~ f#4@9 e4@9 a4@15 g#4@3 a4@6 b4@4 a4@6 g#4@3 a4@6 g#4@3 f#4@5]/3",
K: "[~ e4@3 d4@17 ~ d4@15 c#4@4 d4@14 c#4@3 d4@9 e4@7 ~@2 e4@9 d4@9 g#4@14 f#4@4 g#4@6 a4@3 g#4@5 f#4@2]/4",
L: "~@2 g#4@5 f#4@3 e4@6 d4@3 c#4@13",
M: "[~@4 e5@13 [d#5,d#6]@3 [e5,e6]@14 ~@4 e5@8 [f#5,f#6]@7 ~ [f#5,f#6]@8 ~ e5@8 [a5,a6]@13 [g#5,g#6]@3 [a5,a6]@5 ~ b5@2 a6, ~@3 e6@14 ~@17 d#6@3 e6@8 ~@17 e6@9 ~@21 b6@3 ~, ~@35 d#5@4 ~@57]/3", // D# E F# A G# A
N: "[a5@4 ~ g#5@2 ~ a5@5 [g#5,g#6]@3 [f#5,f#6]@5 [e5,e6]@3 [d5,d6]@15 ~ [d5,d6]@12 ~@4 d5@13 [c#5,c#6]@2 ~ d5@7 [e5,e6]@7 ~ [e5,e6]@8 [d5,d6]@8 [g#5,g#6]@5 ~ a5@2 [g#5,g#6]@5 [f#5,f#6]@3 [g#5,g#6]@4 ~ a5@2 ~ g#5@5 [f#5,f#6]@2 ~ g#5@4 ~ f#5@2 [e5,e6]@5 ~@4 c#5@14 ~ e5@12 [d#5,d#6]@3 [e5,e6]@13 [d#5,d#6]@3 ~ e5@7 [f#5,f#6]@7 ~ f#5@7 ~ e5@8 [a5,a6]@12 ~ g#5@2 ~ a5@4 ~ b5@2 ~ a5@3, ~@4 g#6@3 a6@6 ~@39 c#6@3 d6@14 ~@2 d6@8 ~@29 a6@3 ~@12 a6@3 g#6@6 ~@2 g#6@5 f#6@3 ~@5 d6@3 c#6@15 e6@13 ~@19 e6@8 ~@7 f#6@9 ~@20 g#6@3 a6@5 b6@3 a6@4, ~@53 c#5@4 ~@91 d5@4 ~@68 e6@8 ~@28]/8", // G# F# E D C# E D G# …
O: "[~@2 g#5@2 [a5,a6]@5 ~ g#5@2 ~ f#5@4 [e5,e6]@3 [d5,d6]@15 ~ d5@12 [c#5,c#6]@3 [d5,d6]@13, ~ g#6@3 ~@5 g#6@3 f#6@5 ~@18 d6@13 ~@16]/2", // A E D C# D
P: "[~ c#5@2 [d5,d6]@7 ~ e5@7 [e5,e6]@8 [d5,d6]@8 [g#5,g#6]@5 ~ a5@2 ~ g#5@4 ~ f#5@2 [g#5,g#6]@5 [a5,a6]@3 [g#5,g#6]@5 [f#5,f#6]@3 [e5,e6]@5 [e5,e6]@2 ~ f#5@5 [g#5,g#6]@3 [a5,a6]@97 ~@13, c#6@3 ~@7 e6@7 ~@22 a6@3 g#6@5 f#6@3 ~@23 f#6@6 ~@113]/6", // D E D G# A G# F# E …
})).s("gm_string_ensemble_2").gain(0.4)
// chords · trombone
const trombone = note(`<
~@19 A B C D E F G@7 H@2 I@2 J K L@3 ~@8 M@2 N O@2 P Q R@2 S@2 T@2 U@2 V@4 W@2 X Y Z AA AB@4
>`.pickRestart({
A: "~@3 g#3", B: "g3@9 ~@7 g3@5 ~@3 g3 ~ f#3 ~@2 f3@2 ~", C: "e3@9 ~@7 e3@9 ~@7",
D: "e3@5 ~@3 e3@5 ~@3 f#3@5 ~@3 d#3@5 ~@3", E: "e3@13 ~@3 d3@13 ~@3", F: "c#3@12 ~@4 b2 ~@7 e2@8",
G: "[[e3,c#4]@9 ~@4 c4@2 ~ e3@9 ~@4 c4@2 [e3,c#4]@6 ~@2 [e3,c#4]@5 ~@3 [e3,c#4]@5 ~@3 [e3,c#4]@5 ~@3 e3@8 c#4@5 ~@2 [e3,c#4]@5 ~@3 [e3,c#4] ~@5 [e3,c#4] ~ e3@5 c#4 ~@2 e3@5 c#4@2 ~ [d3,b3]@14 ~@2 [d3,b3]@9 ~@4 c#3@2 [d3,b3]@9 ~@4 [c#3,a#3]@2 ~ d3@6 ~@2 [e3,b3]@6 ~@2 e3@5 b3@2 e3@6 b3@2 ~ [e3,b3]@12 ~@3 [e3,b3]@12 ~@4 e3@4, ~@15 c#4@9 ~@39 c#4@6 ~@25 c#4@2 ~@6 c#4@2 ~@34 a#3@3 ~@15 b3@7 ~@10 b3 ~@6 g#3@2 ~@38 b3 ~@3]/7", // C#m G F# E5
H: "[~ b3 ~@2 f#3@2 ~@3 [g#3,d4]@2 [a3,c#4]@15 ~ [e3,c#4]@9 ~@4 c4@2 ~ [e3,c#4]@9 ~@4 c4@2 [e3,c#4]@6, ~@3 d4@2 ~@59]/2", // G#dim A C#m
I: "[~@3 c#4@5 ~@2 [e3,c#4]@5 ~@3 [e3,c#4]@5 ~@3 e3@8 c#4@5 ~@3 [e3,c#4]@5 ~@2 c#4 e3 ~@4 [e3,c#4] ~ e3@5 c#4 ~, ~@2 e3@5 ~@19 c#4@6 ~@25 c#4@2 ~@5]/2", // C#m
J: "~ e3@5 c#4@2 ~ [d3,b3]@14 ~@2 [d3,b3]@7, ~ c#4@2 ~@29", // G
K: "~@6 [c#3,a#3]@2 [d3,b3]@9 ~@5 c#3@2 [d3,b3]@7 ~, ~@21 a#3@3 ~@8", // F# G
L: "[[e3,b3]@6 ~@2 e3@5 b3@2 ~ e3@5 b3@2 ~ [e3,b3]@12 ~@3 [e3,b3]@12 ~@4 e3@5 b3 ~@2 [f#3,d4]@2 ~@3 [g#3,d4]@2 ~ [a3,c#4]@15 ~@10, ~@8 b3 ~@7 g#3@2 ~@37 b3 ~@40]/3", // E5 D G#dim A
M: "[~@7 e3@9 [f#3,a3]@9 [g#3,b3]@10 [e3,a3]@11 ~@4 g#3@2 ~@2 e3@10, ~@6 g#3@10 ~@37 a3@11]/2", // F#m G#m A5
N: "~@5 g#3@2 ~ [e3,a3]@8 ~@2 a3@6 ~@3 [f#3,a3]@5, ~@17 f#3@6 ~@9", // A5 F#m
O: "[~@4 [e3,a3]@6 ~@4 e3@12 ~@6 e3@6 ~@3 a3@2 ~@4 [e3,a3] ~@2 e3@6 a3@2 ~ e3@5, ~@13 a3@12 ~@6 a3@6 ~@4 e3 ~@8 a3@3 ~@6 a3@2 ~@3]/2", // A5
P: "~ a3@2 ~ [d3,g#3]@16 ~@3 d3@9, ~@11 g#3@5", // Ddim
Q: "~@6 c#3@2 [d3,g#3]@11 ~@5 c#3@2 [d3,g#3]@6, ~@5 g3@3 ~@15 g3@3 ~@6", // Ddim
R: "[~@3 [e3,g#3]@6 ~@3 e3@6 g#3@2 ~ e3@6 g#3@2 ~ [e3,g#3]@13 ~@5 e3@14 ~@2, ~@12 g#3@2 ~@7 g#3@2 ~@25 g#3@11 ~@5]/2", // E
S: "[~ e3@6 g#3@2 ~ [e3,g#3]@2 ~@4 [e3,g#3]@2 ~ [e3,a3]@16 ~@2 c#4@9 ~@5 c4@2 ~ e3@10, ~ g#3 ~@34 e3@9 ~@8 c#4@9 ~@2]/2", // E A5
T: "[~@3 c4@2 ~ [e3,c#4]@7 ~@2 c#4@5 ~@3 [e3,c#4]@5 ~@3 [e3,c#4]@6 ~@3 e3@8 c#4@5 ~@3 [e3,c#4]@6 ~@2, ~@14 e3@5 ~@20 c#4@6 ~@19]/2", // C#m
U: "[[e3,c#4] ~@4 [e3,c#4] ~@2 e3@5 c#4 ~@2 e3@5 c#4@2 ~ [d3,b3]@15 ~@2 [d3,b3]@9 ~@4 c#3@2 [d3,b3]@8, ~@8 c#4@2 ~@6 c#4@2 ~@35 a#3@3 ~@8]/2", // C#m G
V: "[~@5 [c#3,a#3]@2 ~ d3@6 ~@2 [e3,b3]@6 ~@2 e3@5 b3@2 ~ e3@5 b3@2 ~ [e3,b3]@12 ~@3 [e3,b3]@12 ~@4 e3@5 b3 ~@2 [f#3,d4]@2 ~@3 [g#3,d4]@2 [a3,c#4]@15 ~@2 c#4@8 ~@5 c4@2 [e3,c#4]@9 ~, ~@7 b3@7 ~@10 b3 ~@6 g#3@2 ~@38 b3 ~@30 e3@9 ~@17]/4", // F# E5 D G#dim A C#m
W: "[~@3 c4@2 [e3,c#4]@6 ~@3 [e3,c#4]@5 ~@3 [e3,c#4]@5 ~@2 [e3,c#4]@5 ~@3 e3@8 c#4@5 ~@3 [e3,c#4]@5 ~@3 [e3,c#4] ~@2, ~@37 c#4@6 ~@21]/2", // C#m
X: "~@2 [e3,c#4] ~@2 e3@5 c#4 ~ e3@5 c#4@2 ~ [d3,b3]@12, ~@2 c#4 ~@3 c#4 ~@9", // C#m G
Y: "~@4 [d3,b3]@9 ~@4 [c#3,a#3]@2 ~ d3@8 ~@4, ~@19 b3@9 ~@4", // G F#
Z: "~ c#3@2 [d3,b3]@7 ~ [e3,b3]@6 ~@2 e3@5 b3@2 ~ e3@5, a#3@3 ~@16 b3 ~@7 g#3@2 ~@3", // G E5
AA: "b3@2 ~ [e3,b3]@12 ~@3 [e3,b3]@12 ~@2", // E5
AB: "[~@2 e3@5 b3 ~@2 [f#3,d4]@2 ~@3 [g#3,d4]@2 ~ [a3,c#4]@94 [e3,a3]@2 ~@14, ~@2 b3 ~@125]/4", // D G#dim A A5
})).s("gm_trombone").gain(0.56).pan(0.8)
// chords · trumpet
const trumpet = note(`<
~@23 A B C@7 D@2 E@2 F@2 G H@2 ~@9 I@3 J@3 K@2 L M N@2 O@2 P@2 Q@2 R@2 S T U V W X Y@2
>`.pickRestart({
A: "~@3 [d4,g#4,b4,e5] ~ [d4,g#4,b4,e5] ~@2 [d4,g#4,b4,e5]@8 ~@3 [d4,g#4,b4,e5] ~ [d4,g#4,b4,e5] ~@2 [d4,g#4,b4,e5]@8", // E7
B: "~@3 [c#4,a4,c#5,e5] ~ [a4,c#5,e5] c#4 ~ [c#4,a4,c#5,e5] ~@2 [c#4,a4,c#5,e5] ~ [c#4,a4,c#5,e5] ~@2 [b3,g#4,b4,e5] ~@7 [b3,f#4,g#4,b4,d5]@7 ~", // A E G#m7b5
C: "[e4@8 ~@5 d#4@2 ~ e4@8 ~@5 d#4@2 e4@5 ~@3 f#4@5 ~@3 f#4@5 ~@3 e4@5 ~@3 e4@9 ~@6 e4@5 ~@3 e4 ~@5 e4 ~ e4@6 ~@2 f#4@5 ~@3 d4@14 ~ d4@10 ~@4 c#4 ~ d4@10 ~@3 c#4 ~@2 d4@6 ~@2 e4@5 ~@3 e4@4 ~@3 d4@6 ~@2 d4@9 ~@7 d4@9 ~@7 d4@4]/7",
D: "[~@4 e4@5 ~@3 c#4@15 e4@8 ~@5 d#4@2 ~ e4@8 ~@5 d#4@2 ~ e4@5]/2",
E: "[~@3 f#4@5 ~@2 f#4@5 ~@3 e4@5 ~@3 e4@9 ~@7 e4@5 ~@3 e4 ~@4 e4 ~ e4@6 ~]/2",
F: "[~ f#4@5 ~@3 d4@14 ~@2 d4@10 ~@3 c#4 ~ d4@10 ~@4 c#4 ~ d4@6 ~@2]/2", G: "e4@5 ~@3 e4@4 ~@4 d4@6 ~@2 d4@8",
H: "[~@8 d4@9 ~@6 d4@5 ~@3 e4@5 ~@3 c#4@15 ~@10]/2",
I: "[~@3 c#4@15 c4@4 c#4@15 c4@4 c#4@8 c#4@8 ~@2 c#4@9 ~ c#4@8 ~ c#4@16 ~@2]/3",
J: "[c#4@17 ~ c#4@8 ~ c#4@9 ~ b3@15 ~@3 b3@14 a#3@4 b3@15 a#3@3 b3@5]/3",
K: "[~@3 g#3@8 ~@2 c#4@8 ~ b3@7 ~ b3@15 ~@3 b3@15 ~]/2",
L: "~ b3@18 c#4@3 [e4,a4,c#5,e5] ~@2 [e4,a4,c#5,e5] ~@2 [e4,a4,c#5,e5] ~@2 [e4,a4,c#5,e5]", // A
M: "~ [c#5,e5] [e4,a4] ~ e4@9 ~@5 d#4@2 ~ e4@9 ~@2", // C#m A5
N: "[~@3 d#4@2 ~ e4@6 ~@3 f#4@5 ~@3 f#4@5 ~@3 e4@5 ~@4 e4@9 ~@7 e4@5 ~@3]/2",
O: "[e4 ~@5 e4 ~ e4@6 ~@2 f#4@5 ~@3 d4@14 ~@3 d4@10 ~@3 c#4 ~ d4@8]/2",
P: "[~@5 c#4 ~@2 d4@6 ~@2 e4@5 ~@3 e4@4 ~@3 d4@6 ~@3 d4@9 ~@6 d4@9]/2",
Q: "[~@7 d4@5 ~@3 e4@5 ~@3 c#4@15 e4@8 ~@5 d#4@2 ~ e4@8 ~@2]/2",
R: "[~@3 d#4@2 ~ e4@5 ~@3 f#4@5 ~@2 f#4@5 ~@3 e4@5 ~@3 e4@9 ~@7 e4@5 ~@3 e4 ~@2]/2",
S: "~@2 e4 ~@2 e4@6 ~ f#4@5 ~@3 d4@12", T: "~@4 d4@10 ~@3 c#4 ~ d4@10 ~@3",
U: "~ c#4 ~ d4@6 ~@2 e4@5 ~@3 e4@4 ~@4 d4@5", V: "~@3 d4@9 ~@7 d4@9 ~@4",
W: "~@2 d4@5 ~@3 e4@5 ~@3 [c#5,e5,a5] ~@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~@2 [c#5,e5,a5] ~ e5 [c#5,a5] ~ [c#5,e5,a5]", // A F#m A
X: "~@2 [c#5,e5,a5] ~ [e5,a5] c#5 ~ [c#5,e5,a5] ~@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~@2 [c#5,e5,a5] ~ e5 [c#5,a5] ~ [c#5,e5,a5] ~@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~@2 [c#5,e5,a5] ~ [e5,a5] c#5", // A A5 A F#m A A5
Y: "[~ [c#5,e5,a5] ~ e5 [c#5,a5] ~ [c#5,e5,a5] ~@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~@2 [c#5,e5,a5] ~@2 [c#5,a5]@32 [c#5,e5,a5] ~@14, ~ e5@2 ~]/2", // A F#m A F#m A
})).s("gm_trumpet").gain(0.48).pan(0.3)
// chords · clarinet
const clarinet = note(`<
~ A B C D E ~@2 F G H@6 I J K L I J L M@2 N O P Q R S T U V W X Y Z AA AB AC ~@18 AD AE AF AG AH AI AJ@3 AK AL AM AN
AO AP AQ AR AS@2
>`.pickRestart({
A: "~@4 d#4@3 e4@2 ~@23, ~@3 b3@4 c4 ~@24", B: "~@9 [b3,d#4]@3 e4@2 ~@18, ~@12 c4 ~@19",
C: "~@15 [b3,d#4]@3 e4@2 ~@12, ~@18 c4 ~@13", D: "~@20 [b3,d#4]@3 e4@2 ~@7, ~@23 c4 ~@8",
E: "~@26 [b3,d#4]@3 e4@2 ~, ~@29 c4 ~@2", F: "~@5 [a#3,c#4]@3 d4@2 ~@22, ~@8 b3 ~@23",
G: "~@5 [b3,d#4]@2 e4 ~@8, ~@14 c4 ~@17", H: "[~@10 [c4,e4]@37 [b3,d4]@37 ~ a3@38 [g#3,e4]@68 ~, ~@42 c4@19 ~@35]/6",
I: "[d4,g4]@29 [c#4,f4]@3", J: "e4@3 g4, c4", K: "[d4,g#4]", L: "[c4,a4]",
M: "[[d4,g#4]@31 ~ e4@16 b4@2 ~@6 [d4,f#4]@7 ~, ~@31 a4@17 ~@16]/2", // Ddim D
N: "[c#4,e4] ~@4 [c#4,e4] ~@2 [c#4,e4] ~@4 [c#4,e4] ~ [c#4,e4] ~@5 [c#4,e4] ~ [c#4,e4] ~@5 [c#4,e4] ~ [c#4,e4]", // C#m
O: "~@5 [c#4,e4] ~ e4@2 ~@4 [c#4,e4] ~ e4@2 ~@3 e4 c#4 ~ [c#4,e4] ~@4 [c#4,e4] ~@2 [c#4,e4], ~@7 c#4 ~@7 c#4 ~@16", // C#m
P: "~@4 [c#4,e4] ~@2 [c#4,e4] ~@4 [c#4,e4] ~ e4 c#4 ~@4 [c#4,e4] ~ [c#4,e4] ~@5 [c#4,e4] ~ [c#4,e4] ~", // C#m
Q: "~@4 [c#4,e4] ~ [c#4,e4] ~@4 [c#4,e4] ~@2 [d4,g#4] ~@4 [d4,g#4] ~@2 [d4,g#4] ~@4 [d4,g#4] ~@2 d4@2, ~@30 g#4 ~", // C#m Ddim
R: "~@3 [d4,g#4] ~@2 d4 ~@4 [d4,g#4] ~ [d4,g#4] ~@5 [d4,g#4] ~ [d4,g#4] ~@4 [d4,g#4] ~@2 [d4,g#4] ~@2, ~@5 g#4@2 ~@25", // Ddim
S: "~@2 [d4,g#4] ~@2 [d4,g#4] ~@4 [d4,g#4] ~@2 g#4@2 ~@3 [d4,g#4] ~@2 [d4,g#4] ~@4 [d4,g#4] ~ [d4,g#4] ~@3, ~@13 d4 ~@18", // Ddim
T: "~@2 [d4,g#4] ~ [d4,g#4] ~@4 g#4 d4 ~ g#4@2 ~@3 [d4,g#4] ~@2 g#4@2 ~@3 [d4,g#4] ~@2 [d4,g#4] ~@3, ~@12 d4 ~@7 d4 ~@11", // Ddim
U: "~ [d4,g#4] ~@2 [d4,g#4] ~@4 [d4,g#4] ~@2 a4@7 e4@8 e4@5, ~@12 c#4@13 ~@2 c#4 ~@4", // Ddim
V: "~ e4@2 [c#4,e4] ~@4 [c#4,e4] ~@2 [c#4,e4] ~@4 [c#4,e4] ~@2 [c#4,e4] ~@4 [c#4,e4] ~@2 [c#4,e4] ~@4, ~ c#4 ~@30", // C#m
W: "[c#4,e4] ~@2 c#4 ~@4 [c#4,e4] ~@2 c#4 ~@4 [c#4,e4] ~ [c#4,e4] ~@5 [c#4,e4] ~ [c#4,e4] ~@4 e4, ~ e4 ~@3 e4 ~@10", // C#m
X: "c#4 ~ [c#4,e4] ~@4 [c#4,e4] ~@2 [c#4,e4] ~@4 [c#4,e4] ~@2 [c#4,e4] ~@4 [c#4,e4] ~@2 [c#4,e4] ~@4 [c#4,e4]", // C#m
Y: "~@2 [c#4,e4] ~@4 [c#4,e4] ~ [d4,g#4] ~@5 [d4,g#4] ~ [d4,g#4] ~@4 [d4,g#4] ~@2 d4@2 ~@3 [d4,g#4] ~, ~@25 g#4 ~@6", // C#m Ddim
// … 140 more lines
More by Willeke Alberti
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.