0:00/0:00
// Blijf bij mij — Paul de Leeuw
// 84 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 85 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84/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.
// other · flute
const flute = note("<~@2 A B C D ~@21 E F B G H ~@4 I ~ J@3 K@4 ~@20 L M ~@5 N@2 ~@2 N@2 ~@2 N@2 ~ O@2>".pickRestart({
A: "~@14 g#5 a#5", B: "c6@2 e5!2 g5@2 c6@2 e6@2 d6@2 d6@2 c6@2", C: "d6@7 d6", D: "e6",
E: "e5@8 ~@4 e5@2 ~ d5@2 ~ c5@6 d5@6 g5@16 ~@2", F: "f5@5 ~ e5@5 ~ d5@4 ~@2 c5@2 ~ d5@20 ~ g#5@3 a#5@3",
G: "d6@6 d5@2 ~ e5 ~@2 f5@5 ~ f5 ~@2 g5 ~@2 a5@5 ~ a5 ~@2 b5 ~@2 c6@5 ~ d6@5 ~", H: "e6@23 ~@25",
I: "~ c6@2 d6 e6 c6@2 g5",
J: "[~@42 e6@16 ~@21 c6 ~ c6 ~ c6@3 ~ d6@3 ~ e6@3 ~ c6@7 ~ d6@3 ~@2 a5@22 c6 ~ c6@7 ~@5]/3",
K: "[~@38 g5@41 ~ a5@2 ~ b5@2 ~ c6@17 ~ d6@5 ~ e6@11 ~ g6@11 ~ a5@23 ~ g5@8 ~ c5@2 ~ c5@11 ~@11]/4",
L: "~@44 g#5 ~@2 g#5", M: "~@2 c#6 ~@5 d#6@2 ~@4 f#6@11 ~ g#6@10 ~@12",
N: "[~ c#6@3 d#6@3 f6@6 g#6@6 a#6@12 g#6@12 ~@5]/2", O: "[~@38 c#6@35 ~@23]/2",
})).s("gm_flute").gain(0.2)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
~ A B C D E F G H I J A K L M A N L O A K L O A N L O A B C P A N L Q A N L R S T U@8 V@8 W@8 X@8 Y Z@8 AA AB@2
>`.pickRestart({
A: "c2@17 ~ c2@5 ~ b1@17 ~ b1@5 ~", B: "a1@17 ~ a1@5 ~ g#1@17 ~ g#1@5 ~", C: "g1@17 ~ g1@5 ~ f#1@17 ~ f#1@5 ~",
D: "g1@17 ~ d2@5 ~ g2@11 ~ g1@11 ~", E: "c2@17 ~ g1@2 ~ a1@2 ~ c2@11 ~ g2@11 ~", F: "c2@17 ~ c2@5 ~ c2@23 ~",
G: "c2@17 ~ c2@5 ~ c2@17 ~ c2@5 ~", H: "b1@17 ~ b1@5 ~ b1@17 ~ b1@5 ~", I: "d2@17 ~ d2@5 ~ d2@17 ~ d2@5 ~",
J: "g2@17 ~ g2@5 ~ g1@17 ~ g1@5 ~", K: "a2@17 ~ a2@5 ~ g2@17 ~ g2@5 ~", L: "f2@17 ~ f2@5 ~ e2@17 ~ e2@5 ~",
M: "d2@17 ~ a2@5 ~ g2@11 ~ g1@11 ~", N: "a1@17 ~ a1@5 ~ g1@17 ~ g1@5 ~", O: "d2@17 ~ g2@5 ~ f2@11 ~ g1@11 ~",
P: "g1@17 ~ d2@2 ~ e2@2 ~ a2@2 ~ e2@2 ~ g2@17 ~", Q: "d2@17 ~ d2@5 ~ g1@8 ~ d2@2 ~ g2@5 ~ d2@5 ~",
R: "d2@17 ~ d2@5 ~ g2@9 g1@8 c2@5 ~@2", S: "~@2 g1@6 ~@2 c2@6 ~@2 g1@6 ~@2 a2@5 ~@4 e2@6 ~@2 a2@5",
T: "~@3 e2@6 ~@2 d2@5 ~@4 a1@6 ~@2 d2@6 ~@2 d2 ~@3 f2 ~@4 g2@3",
U: "[~@6 d2@6 ~@3 g2@7 ~@4 g1@8 ~@4 c2@17 ~ c2@5 ~ b1@17 ~ b1@5 ~ a1@17 ~ a1@5 ~ g1@17 ~ g1@5 ~ f1@17 ~ f1@5 ~ e1@17 ~ e1@5 ~ d1@17 ~ a1@5 ~ g1@11 ~ g1@11 ~ c2@17 ~ c2@5 ~ b1@17 ~ b1@5 ~ a1@17 ~ a1@5 ~ g1@17 ~ g1@5 ~ f1@17 ~ f1@5 ~ e1@17 ~ e1@5 ~ f1@10]/8",
V: "[~@2 a1@5 ~ d2@5 ~ g1@11 ~ g2@11 ~ c2@17 ~ c2@5 ~ b1@17 ~ b1@5 ~ a2@17 ~ a2@5 ~ g2@17 ~ g2@5 ~ f2@17 ~ f2@5 ~ e2@17 ~ e2@5 ~ d2@17 ~ a2@2 ~ a#2@2 ~ g2@11 ~ g1@11 ~ c2@17 ~ c2@5 ~ b1@17 ~ b1@5 ~ a1@17 ~ a1@5 ~ g2@17 ~ g2@5 ~ f2@17 ~ f2@5 ~ e2@17 ~ e2@5 ~ d2@10]/8",
W: "[~@8 a2@5 ~ g2@11 ~ g1@5 ~ a1@2 ~ b1@2 ~ c2@17 ~ c2@5 ~ b1@17 ~ b1@5 ~ a1@17 ~ a1@5 ~ g1@17 ~ g1@5 ~ f1@17 ~ f1@5 ~ e1@17 ~ e1@5 ~ d1@17 ~ f1@2 ~ f#1@2 ~ g1@5 ~ g1@5 ~ g1@5 ~ a1@2 ~ b1@2 ~ c2@17 ~ c2@5 ~ b1@17 ~ b1@5 ~ a1@17 ~ a1@5 ~ g1@17 ~ g1@5 ~ f1@17 ~ f1@5 ~ e1@17 ~ e1@5 ~ d1@10]/8",
X: "[~@8 f1@2 ~ f#1@2 ~ g1@17 ~ g1@2 ~ g1@2 ~ g#1@17 ~ g#1@5 ~ g#1@11 ~ g#1@11 ~ c#2@17 ~ g#1@2 ~ c#2@2 ~ c2@17 ~ c2@5 ~ a#1@17 ~ a#1@5 ~ g#1@17 ~ g#1@5 ~ f#1@17 ~ f#1@5 ~ f1@17 ~ f1@5 ~ d#2@17 ~ d#2@5 ~ g#1@11 ~ g#1@11 ~ c#2@17 ~ c#2@5 ~ c2@11 ~ g#1@11 ~ a#1@17 ~ a#1@5 ~ g#1@17 ~ g#1@5 ~ f#1@10]/8",
Y: "~@8 f#1@5 ~ f1@17 ~ f1@5 ~ d#2@8 ~ d#2",
Z: "[~@8 d#2@5 ~ g#1@11 ~ g#1@11 ~ c#2@17 ~ c#2@5 ~ c2@11 ~ g#1@11 ~ a#1@17 ~ a#1@5 ~ g#1@17 ~ g#1@5 ~ f#1@17 ~ c#2@2 ~ f#2@2 ~ f2@14 ~ a#1@2 ~ c#2@2 ~ d2@2 ~ d#2@17 ~ d#2@5 ~ g#1@8 ~ f2@2 ~ d#2@2 ~ c2@2 ~ a#1@2 ~ g#1@2 ~ c#2@17 ~ c#2@5 ~ c2@17 ~ c2@5 ~ a#1@17 ~ a#1@5 ~ g#1@17 ~ g#1@5 ~ f#1@17 ~ f#1@5 ~ f1@17 ~ f1@5 ~ d#2@10]/8",
AA: "~@8 d#2@5 ~ d#2@11 ~ f1@5 ~ f#1@5 ~ g#1@5 ~@5", AB: "[~@2 g#1@11 ~ g#1@11 ~ g#1@11 ~ c#2@47 ~@11]/2",
})).s("gm_fretless_bass").gain(0.36)
// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
~@7 A B C B D E@2 F ~@4 F E@2 G F E@2 G F E@2 F@2 E@2 G F E@2 H@3 I ~@7 J K L@2 M K L@2 M K L@2 K@2 L@2 M N O P@2 Q O
P@2 Q O P@2 O@2 P@2 R S ~
>`.pickRestart({
A: "~@6 c4@5 ~@4 c4@2 ~@7 c4@5 ~@4 c4@2 ~@4 c4@2 ~ a3@2 ~ g3@2 ~",
B: "~@6 d4@5 ~@4 d4@2 ~@7 d4@5 ~@4 d4@2 ~@10 d4@2 ~", C: "~@6 c4@5 ~@4 c4@2 ~@7 c4@5 ~@4 c4@2 ~@7 c4@2 ~ d4@2 ~",
D: "~@6 e4@5 ~@4 e4@2 ~@7 d4@5 ~@4 d4@2 ~@10 d4@2 ~", E: "~@6 c4@5 ~@4 c4@2 ~@7 c4@5 ~@4 c4@2 ~@7 c4@5 ~",
F: "~@6 c4@5 ~@4 c4@2 ~@7 d4@5 ~@4 d4@2 ~@7 d4@5 ~", G: "~@6 c4@5 ~@4 c4@2 ~@7 c4@5 ~@4 c4@2 ~@7 d4@5 ~",
H: "[~@6 c4@5 ~@4 c4@2 ~@7 c4@4 ~@3 c4@2 ~@4 d4@4 ~@5 [g4,c5,e5]@4 ~@4 [g4,c5,e5]@4 ~@4 [g4,c5,e5]@4 ~@4 [g4,c5,e5]@4 ~@5 [a4,c5,e5]@4 ~@4 [a4,c5,e5]@4 ~@4 [a4,c5,e5]@4 ~@4 [a4,c5,e5]@4 ~@5 [f4,a4,d5]@4 ~@4 [f4,a4,d5]@4 ~@4 [f4,a4,d5]@4 ~@4 [f4,a4,d5]@4 ~@4]/3", // C Am Dm
I: "~ [g4,c5,d5]@4 ~@6 [g4,c5,d5]@4 ~@6 [b4,d5]@5 ~@6 [g4,b4,d5]@5 ~@11, ~@20 g4@5 ~@23", J: "~@11 c4",
K: "~@5 c4@2 ~@7 d4@5 ~@4 d4@2 ~@7 d4@5 ~@7 c4@4", L: "~@5 c4@2 ~@7 c4@5 ~@4 c4@2 ~@7 c4@5 ~@7 c4@4",
M: "~@5 c4@2 ~@7 c4@5 ~@4 c4@2 ~@7 d4@5 ~@7 c4@4", N: "~@5 c#4@2 ~@7 c#4@5 ~@4 d#4@2 ~@7 d#4@5 ~@7 c#4@4",
O: "~@5 c#4@2 ~@7 d#4@5 ~@4 d#4@2 ~@7 d#4@5 ~@7 c#4@4", P: "~@5 c#4@2 ~@7 c#4@5 ~@4 c#4@2 ~@7 c#4@5 ~@7 c#4@4",
Q: "~@5 c#4@2 ~@7 c#4@5 ~@4 c#4@2 ~@7 d#4@5 ~@7 c#4@4", R: "~@5 c#4@2 ~@7 c#4@5 ~@4 c#4@2 ~@7 d#4@5 ~@11",
S: "~@2 f#4@5 ~@7 f#4@5 ~@7 f#4@5 ~@7 f4@5 ~@5",
})).s("gm_electric_guitar_muted").gain(0.14).pan(0.4)
// other · distortion guitar · "DISTORTION"
const distortion_guitar = note("<A B C D E ~@22 B F D E ~@54>".pickRestart({
A: "~@3 c4", B: "c4@23 ~ b3@23 ~", C: "a3@23 ~ g#3@24", D: "g3@23 ~ f#3@23 ~", E: "g3@47 ~", F: "a3@23 ~ g#3@23 ~",
})).s("gm_distortion_guitar").gain(0.14)
// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@6 A ~@76 B@2>".pickRestart({
A: "~@24 d4@3 e4@2 ~ g4@5 ~ d4@2 ~ c4@3 a3@2 ~ g3@3",
B: "[~@37 c2 ~@16 d#5 c#5 c5 [g#4,a#4] f#4 f4 d#4 [c4,c#4] a#3 g#3 f#3 f3 d#3 [c3,c#3] a#2 g#2 [f2,f#2] ~@2 c#2 ~@22, ~@37 [c#2,d#2]@2 f#2@2 a#2@2 [c#3,d#3]@2 f#3@2 c4@2 f4@2 [g#4,a#4]@2 c#5@2 ~@41, ~@19 f2 g#2 c3 f3 [g#3,a#3] [c#4,d#4] f#4 c5 ~@21]/2", // G#sus2 C#maj7 F#maj7 C#sus2 G#sus2 C#sus2
})).s("gm_electric_guitar_clean").gain(0.08).pan(0.6)
// other · timpani · Dsus2
const timpani = note(`<
~@84
[e3 d3 [d3,e3] e3 d3 e3 [d3,e3]!2 d3 e3 d3 [d3,e3] e3 d3 [d3,e3] e3 d3 [d3,e3] e3 [d3,e3] ~ [d3,e3] d3 [d3,e3] e3 [d3,e3] ~ [d3,e3]!2 ~ [d3,e3] d3 [d3,e3] e3 [d3,e3] d3 e3 d3 ~@10]
>`).s("gm_timpani").gain(0.2)
// other · timpani · soft notes · Dsus2
const timpani_soft = note("<~@83 [~@38 e3 [d3,e3] ~ [d3,e3] e3 d3 e3 [d3,e3] ~ [d3,e3]] ~>").s("gm_timpani").gain(0.1)
// other · oboe
const oboe = note("<~@19 [e5@2 d5 g5] [c5@6 e5 g5] [a5@2 g5 c5] [c5@22 ~@2 c5@11 ~ d5@12] ~@62>")
.s("gm_oboe").gain(0.3).pan(0.6)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<A@3 B@8 C@8 D@8 E@8 F@5 G@8 H@16 I@8 J@8 K@5>".pickRestart({
A: "[~@47 [g3,c4,e4]@23 ~ [g3,b3,d4]@23 ~ [f3,a3,c4]@23 ~ [f3,g#3,c4]@23 ~ [g3,c4,e4]]/3", // C G F Fm C
B: "[~@23 [f#3,a3,d4]@23 ~ [f3,a3,c4]@47 ~ [g3,c4,e4]@95 ~ [g3,c4,e4]@47 ~ [g3,b3,d4]@47 ~ [f3,a3,c4,d4]@47 ~ [f3,a3,c4]@23 ~ [g3,b3,d4]@23 ~ [g3,c4,e4]]/8", // D F C G Dm7 F G C
C: "[~@23 [g3,b3,d4]@23 ~ [a3,c4,e4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4,d4]@23 ~ [g3,b3,d4,f4]@23 ~ [g3,c4,e4]@23 ~ [g3,b3,d4]@23 ~ [a3,c4,e4]@23 ~ [g3,b3,c4,e4]@23 ~ [f3,a3,c4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4,d4]@23 ~ [f3,a3,c4]@11 ~ [g3,b3,d4]@11 ~ [g3,c4,e4]]/8", // G Am C F C Dm7 G7 C …
D: "[~@23 [g3,b3,d4]@23 ~ [a3,c4,e4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4,d4]@23 ~ [f3,a3,c4]@23 ~ [g3,c4,e4]@23 ~ [g3,b3,d4]@23 ~ [a3,c4,e4]@23 ~ [g3,b3,c4,e4]@23 ~ [f3,a3,c4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4,d4]@23 ~ [f3,a3,c4]@11 ~ [g3,b3,d4]@11 ~ [g3,c4,e4]]/8", // G Am C F C Dm7 F C …
E: "[~@23 [g3,b3,d4]@23 ~ [f3,a3,c4]@23 ~ [f3,g#3,c4]@23 ~ [g3,c4,e4]@23 ~ [f#3,a3,d4]@23 ~ [f3,a3,c4]@47 ~ [g3,c4,e4]@23 ~ [g3,b3,d4]@23 ~ [a3,c4,e4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4,d4]@23 ~ [f3,a3,c4]@11 ~ [g3,b3,d4]@11 ~ [g3,c4,e4]]/8", // G F Fm C D F C G …
F: "[~@23 [g3,b3,d4]@23 ~ [a3,c4,e4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4,d4]@23 ~ [f3,a3,c4]@9 ~ [g3,b3,d4]@8 [g3,c4,e4]@32 ~ [a3,c4,e4]@22]/5", // G Am C F C Dm7 F G …
G: "[~@11 [f3,a3,c4,d4]@32 ~ [g3,b3,d4]@40 ~ [g3,c4,e4]@23 ~ [g3,b3,d4]@23 ~ [a3,c4,e4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4,d4]@23 ~ [f3,a3,c4]@11 ~ [g3,b3,d4]@11 ~ [g3,c4,e4]@23 ~ [g3,b3,d4]@23 ~ [a3,c4,e4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4]@11]/8", // Dm7 G C G Am C F C …
H: "[~@13 [g3,c4,e4]@23 ~ [f3,a3,c4,d4]@23 ~ [f3,a3,c4]@11 ~ [g3,b3,d4]@11 ~ [g3,c4,e4]@23 ~ [g3,b3,d4]@23 ~ [a3,c4,e4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4,d4]@23 ~ [f3,a3,c4]@11 ~ [g3,b3,d4]@11 ~ [g3,c4,e4]@23 ~ [g3,b3,d4]@23 ~ [a3,c4,e4]@23 ~ [g3,c4,e4]@23 ~ [f3,a3,c4]@11]/8", // C Dm7 F G C G Am C …
I: "[~@13 [g3,c4,e4]@23 ~ [f3,a3,c4,d4]@23 ~ [f3,a3,c4]@11 ~ [g3,b3,d4]@11 ~ [g#3,c4,d#4]@23 ~ [f#3,a#3,c#4]@11 ~ [g#3,c4,d#4]@11 ~ [g#3,c#4,f4]@23 ~ [g#3,c4,d#4]@23 ~ [a#3,c#4,f4]@23 ~ [g#3,c#4,f4]@23 ~ [f#3,a#3,c#4]@23 ~ [g#3,c#4,f4]@23 ~ [f#3,a#3,c#4,d#4]@23 ~ [f#3,a#3,c#4]@11 ~ [g#3,c4,d#4]@11 ~ [g#3,c#4,f4]@23 ~ [g#3,c4,d#4]@23 ~ [a#3,c#4,f4]@11]/8", // C Dm7 F G G# F# G# C# …
J: "[~@13 [g#3,c#4,f4]@23 ~ [f#3,a#3,c#4]@23 ~ [g#3,c#4,f4]@23 ~ [f#3,a#3,c#4,d#4]@23 ~ [f#3,a#3,c#4]@11 ~ [g#3,c4,d#4]@11 ~ [g#3,c#4,f4]@23 ~ [g#3,c4,d#4]@23 ~ [a#3,c#4,f4]@23 ~ [g#3,c#4,f4]@23 ~ [f#3,a#3,c#4]@23 ~ [g#3,c#4,f4]@23 ~ [f#3,a#3,c#4,d#4]@23 ~ [f#3,a#3,c#4]@11 ~ [g#3,c4,d#4]@11 ~ [g#3,c#4,f4]@23 ~ [g#3,c4,d#4]@23 ~ [a#3,c#4,f4]@11]/8", // C# F# C# D#m7 F# G# C# G# …
K: "[~@13 [g#3,c#4,f4]@23 ~ [f#3,a#3,c#4]@23 ~ [g#3,c#4,f4]@23 ~ [f#3,a#3,c#4,d#4]@47 ~ [f#3,a#3,c#4]@47 ~ [f3,g#3,c#4]@47 ~@12]/5", // C# F# C# D#m7 F# C#
})).s("gm_string_ensemble_1").gain(0.18)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
~ A B C D E F ~@2 G H I ~@3 J K L M ~@4 J K L M A B C N O ~ P Q ~@2 P R ~@3 S@7 T U@7 ~ V@7 ~ W X Y@3 X Y@3 X Y@3 X
Z@3 AA@2
>`.pickRestart({
A: "e6@23 ~ g6@23 ~", B: "~@6 f5@2 ~ g5@2 ~ a5@11 ~ c6@23 ~",
C: "e6@5 ~ g5@5 ~ c6@5 ~ e6@5 ~ e6@5 ~ d6@5 ~ d6@5 ~ c6@5 ~",
D: "d6@5 ~ d6@2 ~ e6@2 ~ f6@5 ~ f6@2 ~ g6@2 ~ a6@5 ~ a6@2 ~ b6@2 ~ c7@5 ~ d7@4 ~@2",
E: "e7@35 ~ c7@2 ~ g6@2 ~ e6@2 ~ d6@2 ~", F: "c6@47 ~", G: "c5@47 ~", H: "c5@11 ~ a4@11 ~ b4@11 ~ d5@11 ~",
I: "e5@35 ~@13", J: "e6@5 ~ g6@5 ~ g6@29 ~ a6@2 ~ b6@2 ~", K: "c7@11 ~ c6@5 ~ d6@5 ~ e6@11 ~ g6@11 ~",
L: "a6@17 ~ c7@5 ~ g6@17 ~ c7@5 ~", M: "f6@35 ~ g6@11 ~",
N: "d6@5 ~ d6 ~@2 e6 ~@2 f6@4 ~@2 f6 ~@2 g6 ~@2 a6@4 ~@2 a6 ~@2 b6 ~@2 c7@4 ~@2 d7@5 ~", O: "e7@23 ~@25",
P: "a4@23 ~ g4@11 ~ c5@11 ~", Q: "c5@23 ~ d5@23 ~", R: "c5@23 ~ d5@17 ~@7",
S: "[~ c6@11 ~ d6@11 ~ g6@11 ~ a6@23 ~ c7@23 ~ a6@23 ~ g6@11 ~ c6@11 ~ c6@23 ~ f5@2 ~ g5@2 ~ a5@2 ~ b5@2 ~ c6@2 ~ d6@2 ~ e6@2 ~ f6@2 ~ g6@41 ~ a5@2 ~ b5@2 ~ c6@17 ~ d6@5 ~ e6@11 ~ g6@11 ~ a6@23 ~ g6@7 ~@2 c6 ~@2 c6@11 ~ a5@11]/7",
T: "~ c6@11 ~ f6@11 ~ g6@11 ~@12",
U: "[~@19 g5@5 ~ b5@5 ~ d6@5 ~ e6@35 ~ g6@11 ~ a6@23 ~ g6@23 ~ f6@35 ~ g6@11 ~ e6@23 ~ g6@71 ~ a6@23 ~ c7@23 ~@12]/7",
V: "[~@19 g5@5 ~ b5@5 ~ d6@5 ~ e6@35 ~ g6@11 ~ a6@23 ~ g6@23 ~ f6@35 ~ g6@11 ~ e6@23 ~ g6@23 ~ e6@23 ~ g6@23 ~ a6@23 ~ c7@23 ~@12]/7",
W: "~@37 f6@5 ~ g#6@5", X: "~ g#6@29 ~ a#6@2 ~ c7@2 ~ c#7@11",
Y: "[~ c#6@5 ~ d#6@5 ~ f6@11 ~ g#6@11 ~ a#6@17 ~ c#7@5 ~ g#6@17 ~ c#7@5 ~ f#6@35 ~ g#6@11 ~ f6@5 ~ g#6@5]/3",
Z: "[~ c#6@5 ~ d#6@5 ~ f6@11 ~ g#6@11 ~ a#6@17 ~ c#7@5 ~ g#6@23 ~ [d#5,f#5,a#5,c#6]@47 ~@12]/3", // D#m7
AA: "[~ [f#5,a#5,c#6]@12 [f#5,a#5,c#6]@11 ~ [f#5,a#5,c#6]@11 ~ [c#3,f5,g#5,c#6]@44 ~@15]/2", // F# C#
})).s("gm_string_ensemble_1").gain(0.26)
// other · alto sax
const alto_sax = note(`<
~ A B C D E ~@4 F ~@4 G H I J ~@4 G H I J K B C D L ~@2 J M ~@2 N O@2 P@2 Q R S@2 T U V@2 ~@4 W@4 ~@2 X@5 Y@2 ~@2 Z ~
AA@2 ~@2 AB AC AD@5 AE@2
>`.pickRestart({
A: "e4@8 ~@4 e4@2 ~ d4@2 ~ c4@6 d4@6 g4@17 ~", B: "f4@5 ~ e4@5 ~ d4@3 ~@3 c4@3 d4@20 ~ c4@3 d4@2 ~",
C: "e4@6 g3 ~@2 g3@2 ~ c4@5 ~ e4@5 ~ a4@23 ~", D: "f4@7 e4", E: "e4",
F: "~@6 f4 ~@2 f4 ~@2 f4 ~@5 f4@2 ~@4 g4@20 ~@4", G: "~@6 g4 ~@2 g4 ~@2 g4 ~@5 g4@2 ~@4 g4@20 ~@4",
H: "~@6 a4 ~@2 a4 ~@2 a4 ~@5 a4@2 ~@4 g4@20 ~@4", I: "~@6 f4@11 ~ f4@5 ~ e4@23 ~",
J: "~@6 f4 ~@2 f4 ~@2 f4 ~@5 f4@2 ~@4 f4@11 ~ g4@11 ~", K: "e4@9 ~@3 e4@2 ~ d4@2 ~ c4@6 d4@6 g4@17 ~",
L: "e4@23 ~@25", M: "e4@19 ~@29", N: "~@6 f4 ~@2 f4 ~@2 f4 ~@5 f4@2 ~@4 f4@8 ~ g4@8 ~@7",
O: "[~@47 a3@4 c4@4 e4@4 ~ a4@16 ~@20]/2", P: "[~@20 g3 ~@2 b3 ~@2 d4@5 ~ g4@5 ~ e4@23 ~@31 a4 ~@2 a4]/2",
Q: "~@2 a4 ~@5 a4 ~@5 g4@23 ~@7 f4 ~@2 g4", R: "~@2 a4 ~@5 c5@2 ~@4 g4@7 ~@2 c5 ~@2 c5@12 ~@10",
S: "[~@14 f4@11 ~ g4@11 ~ g4@24 ~@30 g4 ~@2 g4]/2", T: "~@2 g4 ~@5 g4@2 ~@4 g4@23 ~@7 f4 ~@2 f4",
U: "~@2 f4 ~@5 f4@2 ~@4 g4@7 ~@2 c5 ~@2 c5@12 ~@10", V: "[~@14 f4@11 ~ g4@11 ~ e4@24 ~@34]/2",
W: "[~@19 a3@12 g3@12 f3@12 c4@6 d4@6 e4@12 ~@17]/4",
X: "[~@38 e4@24 d4@24 c4@24 c4@24 c4@24 c4@24 c4@24 c4@12 d4@12 ~@6 g#3 ~@2 g#3]/5",
Y: "[~@2 c#4 ~@5 d#4@2 ~@4 f#4@11 ~ g#4@11 ~ g#4@24 ~@34]/2", Z: "~@7 c4@6 d#4@6 ~@5",
AA: "[~ c#4@3 d#4@3 f4@6 g#4@6 f#4@12 f4@12 ~@5]/2", AB: "~@2 f4@5 ~ g#4@5 ~ c#5@23 ~@7 f#4 ~@2 f#4",
AC: "~@2 g#4 ~@5 c#5 ~@5 g#4@7 ~@2 c#5 ~@2 c#5@12 ~@10",
AD: "[~@14 f#4@12 g#4@12 g#4@24 g#4@18 a#4 ~@2 c5@2 ~ c#5@18 d#4@5 ~ f4@12 g#4@11 ~ a#4@16 ~@2 a#4@5 ~ g#4@22 ~@2 f#4@47 ~@11]/5",
AE: "[~@2 [f#4,a#4]@12 [f#4,a#4]@11 ~ [f#4,a#4]@11 ~ [f4,g#4]@41 ~@17]/2", // F# Fm
})).s("gm_alto_sax").gain(0.26)
// other · trombone
const trombone = note(`<
~ A B C D E ~@4 F ~@4 G H I J ~@4 G H I J K B C D L ~@2 J M ~@2 N O P Q@2 R S T@2 U V W@2 ~@4 X@4 ~@2 Y@5 Z@2 ~@2 AA ~
AB@2 ~@2 AC AD AE@5 AF@2
>`.pickRestart({
A: "c4@23 ~ b3@24", B: "a3 g#3", C: "g3@6 g4@2 ~ g4@2 ~ g4@4 ~@2 g4@5 ~ a4@22 ~@2", D: "a4@40 ~@2 a4@5 ~", E: "c5",
F: "~@6 c4 ~@2 c4 ~@2 c4 ~@5 c4 ~@5 d4@23 ~", G: "~@6 e4 ~@2 e4 ~@2 e4 ~@5 e4 ~@5 d4@23 ~",
H: "~@6 e4 ~@2 e4 ~@2 e4 ~@5 e4 ~@5 e4@23 ~", I: "~@6 c4@11 ~ c4@4 ~@2 c4@24",
J: "~@6 c4 ~@2 c4 ~@2 c4 ~@5 c4 ~@5 c4@11 ~ d4@12", K: "c4 b3", L: "c4@23 ~@25", M: "c4@19 ~@29",
N: "~@6 c4 ~@2 c4 ~@2 c4 ~@5 c4 ~@5 c4@9 d4@8 c4@3 ~@4",
O: "~@2 g3@3 ~@5 c4@3 ~@5 g3@3 ~@5 a3@3 ~@6 e4@3 ~@5 a3@3 ~@2",
P: "~@3 e4@3 ~@5 d4@3 ~@6 a3@3 ~@5 d4@3 ~@5 d4 ~@3 f4 ~@3 g4@3 ~",
Q: "[~@6 d4@3 ~@6 g3@2 ~@3 g3@2 ~ b3 ~@2 d4 ~@4 g4@2 ~@5 c4@23 ~@30 e4 ~@2 e4 ~]/2",
R: "~ e4 ~@5 e4 ~@6 c4@23 ~@6 f4 ~@2 f4 ~", S: "~ f4 ~@5 f4 ~@6 e4@7 ~ e4 ~@2 e4@11 ~@12",
T: "[~@14 c4@11 ~ d4@11 ~ e4@24 ~@29 c4 ~@2 c4 ~]/2", U: "~ c4 ~@5 c4 ~@6 c4@23 ~@6 c4 ~@2 c4 ~",
V: "~ c4 ~@5 c4 ~@6 g3@7 ~ c4 ~@2 c4@11 ~@12", W: "[~@14 c4@11 ~ d4@11 ~ e4@23 ~@35]/2",
X: "[~@38 f4@24 e4@24 d4@23 a4@11 ~@2 b4@12 c5@24 ~@34]/4",
Y: "[~@38 c5@23 ~ b4@23 ~ a4@23 ~ g4@24 a4@24 g4@24 a4@23 a4@12 ~ b4@12 ~@5 g#4 ~@2 g#4 ~]/5",
Z: "[~ c#5 ~@5 d#5 ~@5 a#4@11 ~@2 c5@12 c#5@24 ~@34]/2", AA: "~@13 a#4@12 ~ c5@12 ~@10",
AB: "[~ c#4@6 ~ d#4@6 f4@12 g#4@12 c#5@48 ~@10]/2", AC: "~@13 c#5@4 ~@2 c#5@5 ~ c#5@11 ~@7 f#4 ~@2 f#4 ~",
AD: "~ a#4 ~@5 c#5 ~@5 g#4@7 ~@2 c#5 ~@2 c#5@11 ~@12",
AE: "[~@13 c#5@12 ~ d#5@12 f5@23 g#4@18 a#4 ~@2 c5@2 ~ c#5@18 ~ d#4@5 f4@12 g#4@12 ~ c#5@17 c#5@6 ~ c#5@24 a#4@48 ~@10]/5",
AF: "[~ [a#4,c#5]@10 ~@3 c#5@10 ~ [a#4,c#5]@10 ~@3 f#5@41 ~@17, ~@13 a#4@10 ~@14 c#5@41 ~@18]/2", // A#m
})).s("gm_trombone").gain(0.15)
// drums · kick
const kick = s("bd").struct(`<
~ A@4 B@22 A@4 B@7 C D E F G@4 H@2 G@6 H@2 G@4 H@2 G@4 H G@4 H@2 G@4 H@2 G@3 H I ~
>`.pickRestart({
A: "x ~@5 x ~ x ~@6 x", B: "x ~@2 x!2 ~@3", C: "x ~@2 x!2 ~@2 x", D: "~@2 x ~@7 x ~@7 x ~@8 x ~@7 x ~@7 x ~@4",
E: "~@3 x ~@8 x ~@7 x ~@7 x ~@7 x ~@8 x ~@2", F: "~@6 x ~@8 x ~@10 x ~@11 x ~@9", G: "~@8 x ~@5 x ~@20 x ~@2 x ~@9",
H: "~@4 x ~@2 x ~@11 x ~@4", I: "~ x ~@5 x ~@5 x ~@5 x ~@4",
})).gain(0.27)
// drums · rim
const rim = s("rim").struct("<~@7 [~ x ~ x]!20 ~@58>").gain(0.31)
// drums · snare
const snare = s("sd").struct("<~ A@6 ~@20 A@11 B C D E F@40 G H ~>".pickRestart({
A: "~ x ~ x", B: "~@12 x ~@16 x ~ x ~ x ~@3 x ~@8 x ~", C: "~@6 x ~@7 x ~@7 x ~ x ~@6 x ~@7 x ~@7 x",
D: "~ x ~ x ~@3 x ~@8 x ~@7 x ~@7 x ~ x ~@5 x ~@7", E: "~ x ~@9 x ~@8 x ~@2 x ~@2 x ~@5 x ~@15", F: "~ x ~@11 x ~@10",
G: "~ x ~@11 x ~@5 x ~@4", H: "~ x ~@5 x ~@5 x ~@10",
})).gain(0.35)
// drums · low tom
const low_tom = s("lt").struct(`<
~@4 A ~ B ~@3 C ~@3 D ~@3 B ~@3 B ~@3 C ~@3 A ~@3 B ~@10 E ~ F ~@5 E ~ F ~@10 E ~@3 E ~ F ~@9 G ~@2
>`.pickRestart({
A: "~@3 x", B: "~@7 x", C: "~@13 x ~@2", D: "~@15 x", E: "~@13 x ~@10", F: "~@2 x", G: "~@10 x ~@2 x ~@10",
})).gain(0.31)
// drums · hihat
// … 41 more lines
More by Paul de Leeuw
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.