0:00/0:00
// Never Knew Love Like This Before — Stephanie Mills
// 111 bpm, 4/4, key B major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 98 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(111/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.
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
~@7 A B C D E F G H@2 I J K L M N O@2 P Q K L M N O R S T U V W X U Y Z AA AB@2 B AC AD L M N AE AF AG AC AD L M AH
AE@2 AI AJ AD L M N AE AK S AL U V AM AN AO AP AM AN AO AQ AM AR AS AT AU AV AS AW AM AA U Y AX AV U AY ~@2
>`.pickRestart({
A: "~@16 e2@6 ~@2 f#2@7 ~", B: "b2@6 ~@2 b2@5 ~@3 b2@2 ~@2 b2@6 ~@2 b2@4", C: "e3@6 ~@2 e3@5 ~@3 e3@2 ~@2 e3@8 b2@4",
D: "a#2@5 ~@3 a#2@6 ~@2 a#2@2 ~@2 a#2@5 ~@3 a#2@4", E: "d#3@3 ~ d#3@2 ~@2 d#3 ~ d#3@3 ~ d#3@2",
F: "g#2@6 ~@2 g#2@6 ~@2 g#2@2 ~@2 g#2@5 ~@3 g#2@4", G: "c#3@6 ~@2 c#3@6 ~@2 c#3@3 ~ c#3@4 ~@4 c#3@4",
H: "f#2@6 ~@2 f#2@5 ~@3 f#2@2 ~@2 f#2@5 ~@3 f#2@4", I: "b2@4 ~@4 b2@5 ~@3 b2@2 ~@2 b2@5 ~@3 b2@4",
J: "e3@5 ~@3 e3@5 ~@3 e3@2 ~@2 e3@6 ~@2 g#3@2 b2@2", K: "a#2@6 ~@2 a#2@5 ~@3 a#2@2 ~@2 a#2@2 ~@2 a#2@2 ~@2 a#2@4",
L: "d#3@6 ~@2 d#3@5 ~@3 d#3 ~@3 d#3@7 ~ f#2@4", M: "g#2@6 ~@2 g#2@6 ~@2 g#2 ~@3 g#2@6 ~@2 g#2@4",
N: "c#3@6 ~@2 c#3@5 ~@3 c#3 ~@3 c#3@5 ~@3 c#3@4", O: "f#2@5 ~@3 f#2@5 ~@3 f#2@2 ~@2 f#2@5 ~@3 f#2@4",
P: "b2@5 ~@3 b2@5 ~@3 b2 ~@3 b2@2 ~@4 b2@6", Q: "e3@4 ~@4 e3@6 ~@2 e3 ~@3 e3@7 ~ g#2@4",
R: "f#2@5 ~@3 f#2@5 ~@3 f#2 ~@3 c#3@8 d#3@4", S: "e3@3 ~@5 e3@5 ~@3 e3@8 ~@4 c#3@2 d#3@2", T: "d#3 ~ d#3 g#2@4 ~",
U: "c#3@5 ~@3 c#3@5 ~@3 c#3@9 ~@3 f#3@2 e3@2", V: "d#3@2 ~@2 d#3@3 ~@5 d#3@5 ~@3 c#3@3 ~ d#3@6 ~@2",
W: "e3@5 ~@3 e3@5 ~@3 e3@9 ~@3 c#3 ~ d#3 ~", X: "d#3@5 ~@3 d#3@4 g#2@12 ~@8",
Y: "d#3@2 ~@2 d#3@3 ~@5 d#3@7 ~ c#3@4 d#3@5 ~@3", Z: "e3@4 ~@4 e3@4 ~@4 e3@8 ~@4 c#3@2 d#3 ~",
AA: "d#3 ~ d#3 ~ d#3@2 g#2@8 ~@2", AB: "[c#3@8 ~@4 c#3@13 ~@3 f#2@21 ~@15]/2",
AC: "e3@6 ~@2 e3@5 ~@3 e3 ~@3 e3@8 g#2@4", AD: "a#2@6 ~@2 a#2@6 ~@2 a#2 ~@3 a#2@6 ~@2 a#2@4",
AE: "f#2@6 ~@2 f#2@5 ~@3 f#2 ~@3 f#2@5 ~@3 f#2@4", AF: "f#2@6 ~@2 f#2@6 ~@2 f#2 ~@3 f#2@3 ~@5 f#2@4",
AG: "b2@5 ~@3 b2@5 ~@3 b2 ~@3 b2@6 ~@2 b2@4", AH: "c#3@5 ~@3 c#3@7 ~ c#3 ~@3 c#3@5 ~@3 c#3@4",
AI: "b2@4 ~@4 b2@5 ~@3 b2 ~@3 b2@4 ~@4 b2@4", AJ: "e3@4 ~@4 e3@3 ~@5 e3 ~@11 e2@4, ~@20 e3@11 ~",
AK: "f#2@4 ~@4 f#2@4 ~@4 f#2@2 ~@2 c#3@7 ~ d#3@4", AL: "d#3 ~@3 d#3 ~@3 d#3 ~@3 g#2@17 ~@3",
AM: "e3@5 ~@3 e3@5 ~@3 e3@8 ~@4 c#3@2 d#3@2", AN: "d#3 ~@3 d#3 ~@3 d#3@3 ~ g#2@15 ~@5",
AO: "c#3@2 ~@2 c#3@2 ~@2 c#3@3 ~@3 f#3 e3", AP: "d#3 ~@3 d#3 ~@3 d#3@8 ~@4 c#3@3 ~ d#3@6 ~@2",
AQ: "d#3 ~@3 d#3@2 ~@6 d#3@5 ~@3 c#3@3 ~ d#3@6 ~@2", AR: "d#3 ~@3 d#3 ~@3 d#3@4 g#2@14 ~@6",
AS: "c#3@5 ~@3 c#3@4 ~@4 c#3@12 f#3@2 e3@2", AT: "d#3 ~@3 d#3@2 ~@6 d#3@7 ~ c#3@2 ~@2 d#3@7 ~",
AU: "e3@3 ~@5 e3@4 ~@4 e3@8 ~@4 c#3@2 d#3@2", AV: "d#3 ~@3 d#3 ~@3 d#3@4 g#2@18 ~@2",
AW: "d#3@2 ~@2 d#3 ~@3 d#3 ~@3 d#3@5 ~@3 c#3@3 ~ d#3@6 ~@2", AX: "e3@4 ~@4 e3@5 ~@3 e3@11 ~ c#3@2 d#3@2",
AY: "d#3 ~@3 d#3@2 ~@6 d#3@7 ~ c#3@4 d#3@3 ~@5",
})).s("gm_acoustic_bass").gain(0.52)
// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
~@30 A B C D E F G H I J I H K@2 ~@22 A B C D E F G H I J G H I J G H I J G H I J G H I J ~@6
>`.pickRestart({
A: "[g#4,b4,e5] ~@3 [g#4,b4,e5] ~@3 [g#4,b4,e5] ~ [g#4,b4,e5] ~@2 [g#4,b4,e5] ~ [g#4,b4,e5] ~@16", // E
B: "[g#4,b4,e5] ~@3 [g#4,b4,e5] ~@3 [g#4,b4,e5]!2 ~@3 [g#4,b4,e5] ~ [g#4,e5] ~@8 [f#4,b4]@5 ~@3, ~@15 b4@2 ~@15", // E C#m B5
C: "[g#4,b4]@7 ~@25", D: "[a#4,c#5]@10 ~@2 [b4,d#5]@15 ~@5", E: "[b4,e5]@7 ~", F: "[c#5,f#5] ~", G: "[g#4,b4]@11 ~@5",
H: "[a#4,c#5]@11 ~ [b4,d#5]@17 ~@3", I: "[b4,e5]@25 ~@7", J: "[c#5,f#5]@13 ~@3",
K: "[[c#5,f#5,g#5]@11 ~ [c#5,f5,g#5]@15 ~ [b4,e5,g#5]@28 ~@8]/2", // C#sus4 C# E
})).s("gm_synth_brass_1").gain(0.41)
// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
~@7 A B C D E F G H I B J D K F J@2 L B J D K F J@2 L M ~ M N O ~ M P Q ~@3 B J D K F J@2 L B J D K F J@2 L B J D K F
J@2 L R ~ S T U ~ V T W ~ X T X ~ X Y X ~ X T X ~ X T X ~ X T ~@2
>`.pickRestart({
A: "~@16 [g#4,b4,f#5]@5 ~@3 [g#4,b4,e5]@6 ~@2", B: "~@4 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@15",
C: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@3 [e4,g#4,b4] ~@11", // E
D: "~@4 [c#4,f#4,a#4] ~@5 [c#4,f#4,a#4] ~@5 [c#4,f#4,a#4] ~@15", // F#
E: "~@4 [d#4,f#4,a#4] ~@5 [d#4,f#4,a#4] ~@5 [d#4,f#4,g#4,a#4] ~@15", // D#m
F: "~@4 [d#4,g#4,b4] ~@5 [d#4,g#4,b4] ~@5 [d#4,g#4,b4] ~@15", // G#m
G: "[e4,g#4]@3 ~@3 [e4,g#4] ~@5 [e4,g#4] ~@19, b3@5 ~@27", // E
H: "~@4 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~ [b3,e4,g#4] ~@13", // E
I: "~@4 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@9 [b3,e4,g#4] ~ [b3,e4,g#4] ~@9", // E
J: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@15", // E
K: "~@4 [d#4,f#4,a#4] ~@5 [d#4,f#4,a#4] ~@5 [d#4,f#4,a#4] ~@15", // D#m
L: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~ [e4,g#4,b4] ~@13", // E
M: "~@4 g#4 ~@3 f#4@2 ~@10 g#4 ~ f#4@2 ~@4 f#4 ~ f#4 ~", N: "~@12 f#4 ~ g#4 ~ f#4 ~@15",
O: "~@4 g#4 ~@3 f#4 ~@11 g#4 ~ g#4 ~@5 f#4 ~ g#4 ~", P: "~@16 f#4 ~ g#4@3 ~@11",
Q: "~@4 g#4 ~@3 f#4@2 ~@10 g#4 ~@3 g#4 ~@3 f#4 ~ g#4 ~", R: "~@4 g#4 ~@3 f#4@3 ~@9 g#4 ~@3 g#4@2 ~@2 f#4 ~ f#4 ~",
S: "~@4 g#4 ~@3 f#4@3 ~@5 g#4 ~@3 g#4 ~@3 g#4@2 ~@2 f#4 ~ f#4 ~", T: "~@14 d#4 ~ f#4 ~ g#4@4 ~@10",
U: "~@4 g#4 ~@3 f#4@3 ~@7 g#4 ~@5 g#4@3 ~ f#4 ~ f#4 ~", V: "~@4 g#4 ~@3 f#4@5 ~@7 g#4 ~@3 g#4@3 ~ f#4 ~ f#4 ~",
W: "~@4 g#4 ~@3 f#4@4 ~@6 g#4@3 ~@3 g#4@3 ~ f#4 ~ f#4 ~", X: "~@4 g#4 ~@3 f#4@6 ~@6 g#4 ~@3 g#4@3 ~ f#4 ~ f#4 ~",
Y: "~@14 d#4 ~ f#4 ~ g#4@5 ~@9",
})).s("gm_electric_guitar_muted").gain(0.38)
// chords · epiano2 · "E.PIANO 2"
const epiano2 = note("<A B C D@7 E@8 F@6 G@8 H@8 I@3 J@8 K@3 L@8 M@8 N@24 O@4>".pickRestart({
A: "[f#4,b4,d#5]@17 ~@11 f#5@4, b3, ~@17 [b4,d#5]@15, ~@11 e5@5", // B
B: "b4@3 [b4,e5,g#5] [b4,e5,g#5]@4, e4, [d#5,f#5] ~", C: "[f#4,a#4,c#5]@4 ~@3 e5, a#3, ~ [f#4,a#4,c#5], ~@11 d#5@5",
D: "[~@8 f#5@8 d#4@8 ~@8 g#4@3 g#4@16 ~@16 c#4@2 ~@16 c#5@16 [e4,g#4,b4]@17 [b4,e5,g#5]@15 [e5,g#5,b5]@16 ~@8 e5@8 [f#4,b4,d#5]@16 ~@11 f#5@5 b4@12 [b4,e5,g#5]@3 ~ [b4,e5,g#5]@11, [d#4,a#4,c#5,g#5]@16 [f#4,a#4,d#5]@19 f#4@24 f#4@12 ~@30 f#4@32 ~@16 [g#4,b4,f#5]@16 ~@16 [f#4,b4,d#5]@16 ~@27, ~@24 [d#4,c#5]@11 d#4@36 ~@153, ~@32 b4@35 [e4,b4]@34 ~@86 e5@10 [d#5,f#5]@15 ~@12, ~@51 g#4@18 [c#4,g#4]@32 ~@123]/7", // E B E D#sus4 D#m G#m7 B D#7 …
E: "[~@5 [f#4,a#4,c#5]@16 ~@12 e5@4 ~@8 f#5@8 ~@8 c#5@8 [d#4,f#4,g#4,b4]@32 b4@32 ~@28 e6@35 ~ [f#4,b4,d#5]@16 ~@12 f#5@4 [b4,d#5,f#5]@12 [b4,e5,g#5] ~@3 [b4,e5,g#5]@11, ~@21 [f#4,a#4,c#5]@16 [a#4,c#5,g#5]@16 [f#4,a#4,d#5]@16 ~@32 [c#4,e4,g#4]@52 b5@43 ~@60, ~@27 d#5@10 ~@96 b4@63 ~@17 [f#4,b4,d#5]@16 ~@27, ~@137 e5@59 ~@23 e5@10 ~@27, ~@73 g#5@25 ~@30]/8", // F# G#m7 B E F# A#m7 D#m C#m …
F: "[~@5 [f#4,a#4,c#5]@15 ~@9 d#5@7 ~@9 f#5@8 ~@8 c#5@8 [d#4,f#4,g#4,b4]@32 [c#4,e4,g#4,b4]@31 ~@33 b5@16 [e5,g#5,b5]@11, ~@21 [f#4,a#4,c#5]@15 ~ [a#4,c#5,g#5]@16 [f#4,a#4,d#5]@16 ~@64 [e4,g#4,b4]@48 ~@11, ~@154 e5@27 ~@11]/6", // F# G#m7 C#m7 E F# A#m7 D#m E
G: "[~@5 [f#4,b4,d#5]@16 ~@11 f#5@5 b4@12 [b4,e5,g#5]@3 ~ [b4,e5,g#5]@16 [f#4,a#4,c#5]@15 ~@12 e5@5 ~@8 f#5@8 ~@8 c#5@8 [d#4,f#4,g#4,b4]@32 [c#4,e4,g#4,b4]@31 ~ [g#4,b4]@20 [g#4,b4,e5]@12 [e5,g#5,b5]@27, ~@21 [f#4,b4,d#5]@16 ~@48 [f#4,a#4,c#5]@16 [a#4,c#5,g#5]@16 [f#4,a#4,d#5]@16 ~@64 e4@33 ~@26, ~@27 e5@10 [d#5,f#5]@15 ~@38 d#5@11 ~@155]/8", // B E F# G#m7 C#m7 G#m E B …
H: "[~@5 [d#4,g#4,b4]@32 [c#4,f#4,a#4]@12 [d#4,g#4,b4]@20 [e4,g#4,b4]@16 [b4,e5,g#5,b5]@16 [c#4,f#4,a#4]@32 [d#4,g#4,b4]@32 [c#4,f#4,a#4]@12 [d#4,g#4,b4]@20 [e4,g#4,b4]@16 [b4,e5,g#5,b5]@16 [c#4,f#4,a#4]@27]/8", // G#m F# G#m E F# G#m F# G#m …
I: "[~@5 [d#4,g#4,b4]@16 [d#5,g#5,b5]@15 ~ [c#4,f#4,a#4]@12 [d#4,g#4,b4]@20 [c#4,f#4,g#4]@12 [c#4,f4,g#4]@15]/3", // G#m F# G#m C#sus4 C#
J: "[~@37 [f#4,b4,d#5]@16 ~@12 f#5@4 b4@12 [b4,e5,g#5]@4 [b4,e5,g#5]@16 [f#4,a#4,c#5]@16 ~@8 d#5@8 ~@8 f#5@8 ~@8 c#5@8 [d#4,f#4,g#4,b4]@32 [c#4,e4,g#4,b4]@31 ~ [e4,g#4,b4]@16 [e5,g#5,b5]@11, ~ [b3,e4,g#4]@52 [f#4,b4,d#5]@16 ~@48 [f#4,a#4,c#5]@17 ~@15 [f#4,a#4,d#5]@16 ~@91, ~@59 e5@10 [d#5,f#5]@16 ~@48 [a#4,c#5,g#5]@17 ~@106]/8", // B E F# G#m7 C#m7 E B F# …
K: "[~@5 [b5,e6,g#6]@32 [f#4,b4,d#5]@16 ~@11 f#5@5 b4@12 [b4,e5,g#5]@3 ~ [b4,e5,g#5]@11, ~@53 [f#4,b4,d#5]@16 ~@27, ~@59 e5@10 [d#5,f#5]@15 ~@12]/3", // E B E B D#m
L: "[~@5 [f#4,a#4,c#5]@16 ~@8 d#5@8 ~@8 f#5@8 ~@8 c#5@8 [d#4,f#4,g#4,b4]@32 [c#4,e4,g#4,b4]@31 ~@49 g#6@16 [f#4,b4,d#5]@16 ~@11 f#5@5 b4@12 [b4,e5,g#5]@3 ~ [b4,e5,g#5]@11, ~@21 [f#4,a#4,c#5]@16 [a#4,c#5,g#5]@16 [f#4,a#4,d#5]@16 ~@64 [e4,g#4,b4]@63 ~@17 [f#4,b4,d#5]@16 ~@27, ~@153 e5@43 ~@23 e5@10 [d#5,f#5]@15 ~@12, ~@161 b5@35 ~@60]/8", // F# G#m7 C#m7 B E F# A#m7 D#m …
M: "[~@5 [f#4,a#4,c#5]@16 ~@8 d#5@8 ~@8 f#5@8 ~@8 c#5@8 [d#4,f#4,g#4,b4]@32 [c#4,e4,g#4,b4]@16 [b4,e5,g#5]@16 [g#4,b4]@24 [g#4,b4,e5]@8 ~@24 [c#4,f#4,a#4]@8 [d#4,g#4,b4]@32 [c#4,f#4,a#4]@12 [d#4,g#4,b4]@15, ~@21 [f#4,a#4,c#5]@16 [a#4,c#5,g#5]@16 [f#4,a#4,d#5]@16 ~@64 e4@32 [e5,g#5,b5]@32 ~@59]/8", // F# G#m7 C#m7 E G#m E F# G#m …
N: "[~@5 [e4,g#4,b4]@32 [c#4,f#4,a#4]@32 [d#4,g#4,b4]@32 [c#4,f#4,a#4]@12 [d#4,g#4,b4]@20 [e4,g#4,b4]@32 [c#4,f#4,a#4]@32 [d#4,g#4,b4]@32 [c#4,f#4,a#4]@12 [d#4,g#4,b4]@15]/8", // E F# G#m F# G#m E F# G#m …
O: "[~@5 [e4,g#4,b4]@32 [c#4,f#4,a#4]@64 ~@27]/4", // E F#
})).s("gm_epiano2").gain(0.47)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@8 A B@8 C@2 D@6 E@7 ~@12 F G@8 H I@7 J@7 ~@30>".pickRestart({
A: "~@31 [g#4,b4,e5]", // E
B: "[~@31 c#5@32 ~@64 [e5,g#5]@32 ~@32 e5@32 [f#4,d#5]@32 [g#4,e5], ~@31 f#4@96 ~@32 g#4@64 ~@33, ~@31 a#4@64 b4@161, ~@63 d#5@64 ~@129]/8", // E D#m C#m
C: "[~@31 [f#4,a#4,c#5]@33]/2", // F#
D: "[~@63 [e5,g#5]@32 ~@32 e5@32 [f#4,d#5]@32 [g#4,e5], d#5@64 ~@31 g#4@64 ~@33, ~@31 b4@161]/6", // E D#m C#m
E: "[~@31 c#5@32 ~@64 g#5@32 g#4@64 ~, ~@31 f#4@96 ~@97, ~@31 a#4@64 b4@127 ~@2, ~@63 d#5@64 e5@96 ~]/7",
F: "[f#4,b4,d#5]@31 [g#4,e5]", // B C#m
G: "[~@31 c#5@33 ~@63 [e5,g#5]@32 ~@32 e5@32 [f#4,d#5]@32 [g#4,e5], ~@31 f#4@97 ~@31 g#4@64 ~@33, ~@31 a#4@64 b4@161, ~ d#5 ~@2]/8", // E D#m C#m
H: "~@31 c#5",
I: "[~@95 [e5,g#5]@32 ~@32 e5@31 ~ [f#4,d#5]@32 [g#4,e5], f#4@97 ~@31 g#4@63 ~@33, a#4@9 b4@23, ~@31 d#5@64 ~@129]/7", // E D#m C#m
J: "[~@31 c#5@32 ~@64 g#5@32 ~ g#4@64, ~@31 f#4@96 ~@97, ~@31 a#4@64 b4@127 ~@2, ~@63 d#5@64 e5@96 ~]/7",
})).s("gm_string_ensemble_1").gain(0.2)
// other · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
~@14 A B ~@5 C@2 D E F@6 G@3 H@2 I@3 J K@2 L@2 ~@5 M@2 N ~@5 O@3 P@8 Q@4 R S@3 T@5 U@3 V@4 R W X@2 Y@2 Z AA ~@2
>`.pickRestart({
A: "[e5,e6]@23 ~@2 [c#5,c#6]@2 [b4,b5]@2 [c#5,c#6]@2 ~, ~@23 d#5@2 ~@7, ~@12 d#6 ~@3", // E C# B C#
B: "[d#5,d#6]@7 [b4,b5]@8 [g#4,g#5]@8 [e4,e5]@8 ~", // D# B G# E
C: "[~@31 [e5,e6]@25 [d#5,d#6]@2 [c#5,c#6]@2 [b4,b5]@2 [c#5,c#6]@2]/2", // E D# C# B C#
D: "[d#5,d#6]@8 [b4,b5]@7 [g#4,g#5]@8 ~ [e4,e5]@8", E: "[b3,b4]@12 [f#4,f#5]@4 [b4,b5]@5 [a#4,a#5]@6 ~ [g#4,g#5]@4",
F: "[[f#4,f#5]@16 [g#4,g#5]@47 [c#5,c#6]@21 [a#4,a#5]@4 [g#4,g#5]@4 [f#4,f#5]@3 [f#4,f#5]@4 ~ [b4,b5]@4 [g#4,g#5]@3 [f#4,f#5]@8 ~ [d#5,d#6]@3 [c#5,c#6]@4 [e4,e5]@9 f#4@8 g#4@3 b3@15 ~ [e4,e5]@2 [f#4,f#5]@2 [g#4,g#5]@2 ~@3 [f#4,f#5]@2 [g#4,g#5]@2 [a#4,a#5]@3 ~ [g#4,g#5]@2 ~ [b4,b5]@2 ~@4 [b4,b5]@2 [c#5,c#6]@2 ~@3, ~@89 [a#4,a#5] ~@2 [a#4,a#5] ~@3]/6", // F# G# C# A# G# F# B G# …
G: "[~ [c#5,c#6]@2 [d#5,d#6]@3 ~ [c#5,c#6]@2 [d#5,d#6]@2 [e5,e6]@2 ~@4 [e5,e6]@2 [f#5,f#6]@12 [d#5,d#6]@25 [b4,b5]@2 [c#5,c#6]@2 ~ [e5,e6]@2 [f#5,f#6]@32 ~, [b4,b5] ~@7 [d#5,d#6] ~@21 [d#5,d#6] ~@17]/3", // C# D# C# D# E F# D# B …
H: "[[g#5,g#6]@24 ~ [e5,e6]@2 [d#5,d#6] ~@2 [d#5,d#6] [c#5,c#6]@9 [a#5,a#6]@7 ~ [f#5,f#6]@15 ~, ~@24 [f#5,f#6]@2 ~@3 [e5,e6]@2 ~@33]/2", // G# E D# C# A# F# E
I: "[[f#5,f#6]@20 ~@4 [g#5,g#6]@2 [f#5,f#6]@2 ~ [d#5,d#6]@2 ~ c#5@16 [f#5,f#6]@8 [b4,b5]@7 [g#5,g#6]@25 [b4,b5]@8, ~@28 [e5,e6]@2 ~ c#6@16 ~@49]/3", // F# G# F# D# F# B G# B …
J: "[a#5,a#6]@31 ~", // A#
K: "[[b5,b6]@17 [a#5,a#6]@3 ~ [a#5,a#6]@2 [g#5,g#6]@2 [f#5,f#6]@2 [e5,e6]@2 [d#5,d#6]@2 [c#5,c#6]@31 ~@2, ~@10 [b5,b6] ~@21]/2", // B A# G# F# E D# C# B
L: "[[f#5,f#6]@11 [f5,f6]@11 ~@5 [e5,e6]@24 ~@6 [c#4,c#5]@2 ~@2 [e4,e5]@2 ~, ~@28 [b3,b4] ~ [d#4,d#5] ~]/2", // F# F E C# E B D#
M: "[~@16 e5@12 [d#5,d#6] [c#5,c#6] [b4,b5] [c#5,c#6], ~@31 e6@25 ~@8]/2", // D# C# B C#
N: "[d#5,d#6]@7 [b4,b5]@8 ~ [g#4,g#5]@7 ~ e4@8, ~@23 e5@8 ~", // D# B G#
O: "[~@16 [d#4,d#5]@15 [e4,e5]@24 ~@2 [c#4,c#5]@2 [b3,b4]@2 [c#4,c#5]@2 [d#4,d#5]@8 [b3,b4]@8 [g#3,g#4]@9 [e3,e4]@8, ~@28 [d#4,d#5] ~@19]/3", // D# E C# B C# D# B G# …
P: "[[d#3,d#4]@11 [f#3,f#4]@4 ~ [b3,b4]@4 [a#3,a#4]@7 [g#3,g#4]@4 [f#3,f#4]@16 [g#3,g#4]@48 [c#4,c#5]@21 [a#3,a#4]@4 [g#3,g#4]@4 [f#3,f#4]@3 [f#3,f#4]@4 ~ [b3,b4]@4 [g#3,g#4]@4 [f#3,f#4]@8 [d#4,d#5]@3 [c#4,c#5]@4 [e3,e4]@8 [f#3,f#4]@4 [g#3,g#4]@4 [b2,b3]@13 ~@7 [e3,e4]@2 [f#3,f#4]@3 [g#3,g#4]@2 ~@2 [f#3,f#4]@2 [g#3,g#4]@2 [a#3,a#4]@2 ~@3 [a#3,a#4]@2 [b3,b4]@2 ~@4 [b3,b4]@2 [c#4,c#5]@2 ~@2 [b3,b4]@2 [c#4,c#5]@2 ~ [d#4,d#5]@2 ~@3 [d#4,d#5]@2 ~ [e4,e5]@2 ~@2 [d#4,d#5]@2 ~ [f#4,f#5]@12 ~, ~@104 [g#3,g#4] ~@3 [a#3,a#4] ~@7 [c#4,c#5] ~@4 [e4,e5] ~@6]/8", // D# F# B A# G# F# G# C# …
Q: "[[d#4,d#5]@10 ~@5 [e3,e4]@2 [f#3,f#4]@2 [g#3,g#4]@2 [a#3,a#4]@2 [b3,b4]@2 [c#4,c#5]@2 [d#4,d#5]@2 [e4,e5]@2 [f#4,f#5]@28 ~@4 [g#4,g#5]@25 ~ [e4,e5]@2 ~ [e4,e5]@2 [d#4,d#5] [c#4,c#5]@8 [a#4,a#5]@8 [f#4,f#5]@13 ~@4, ~@88 [f#4,f#5]@2 ~ [d#4,d#5]@2 ~@35]/4", // D# E F# G# A# B C# D# …
R: "[f#4,f#5]@18 ~@7 [f#4,f#5]@2 [e4,e5]@2 [d#4,d#5]@2 ~, ~@12 [g#4,g#5] ~@3", // F# E D# G#
S: "[[c#4,c#5]@15 [f#4,f#5]@8 [b3,b4]@8 [g#4,g#5]@25 [b3,b4]@7 [a#4,a#5]@31 ~@2]/3", // C# F# B G# B A#
T: "[~@11 [e3,e4]@2 [d#3,d#4]@2 [e3,e4]@2 ~ [f#3,f#4]@2 ~ [a#3,a#4]@2 [b3,b4]@2 [c#4,c#5]@2 [d#4,d#5]@2 [e4,e5]@2 [f#4,f#5]@32 [g#4,g#5]@25 ~ [e4,e5] [d#4,d#5]@2 ~ [d#4,d#5]@2 [c#4,c#5]@9 [a#4,a#5]@7 [f#4,f#5]@14 ~@2 [f#4,f#5]@22 ~@3 [g#4,g#5]@2 [f#4,f#5]@2 [e4,e5]@2 [d#4,d#5]@2, ~@10 [g#3,g#4] ~@33 [f#4,f#5] ~ [e4,e5] ~@33]/5", // E D# E F# A# B C# D# …
U: "[[c#4,c#5]@16 [f#4,f#5]@8 [b3,b4]@7 [g#4,g#5]@24 ~ [b3,b4]@7 [a#4,a#5]@31 ~@2]/3", // C# F# B G# B A#
V: "[~@12 [e3,e4]@2 ~ [e3,e4]@2 [f#3,f#4]@2 [g#3,g#4]@2 [a#3,a#4]@2 [b3,b4]@2 [c#4,c#5]@2 [d#4,d#5]@2 [e4,e5]@2 [f#4,f#5]@32 [g#4,g#5]@25 ~ [e4,e5] [d#4,d#5]@2 ~ [d#4,d#5]@2 [c#4,c#5]@8 [a#4,a#5]@8 [f#4,f#5]@15 ~@2, ~@7 [d#3,d#4] ~@36 [f#4,f#5] ~ [e4,e5] ~@17]/4", // E F# G# A# B C# D# E …
W: "[c#4,c#5]@15 [f#4,f#5]@8 [b3,b4]@8 ~", X: "[[g#4,g#5]@24 [b3,b4]@7 [a#4,a#5]@32 ~]/2",
Y: "[~@12 [e3,e4]@2 ~ [e3,e4]@2 [f#3,f#4]@2 [g#3,g#4]@2 [a#3,a#4]@2 [b3,b4]@2 [c#4,c#5]@2 [d#4,d#5]@2 [e4,e5]@2 [f#4,f#5]@33, ~@7 [d#3,d#4] ~@24]/2", // E F# G# A# B C# D# E …
Z: "[g#4,g#5]@24 ~ [e4,e5]@2 ~ [f#4,f#5]@2 ~ [d#4,d#5], ~@24 [f#4,f#5]@2 ~ [d#4,d#5]@2 ~ [e4,e5]@2", // G# E F# D# F# D# E
AA: "[c#4,c#5]@7 ~ [a#4,a#5]@8 [f#4,f#5]@12 ~@4", // C# A# F#
})).s("gm_synth_strings_1").gain(0.35)
// drums · kick
const kick = s("bd").struct("<~@7 [~@2 x!2] [x!2]!34 [x ~@2 x ~@3 x] x [x!2]!52 ~@2>").gain(0.64)
// drums · snare
const snare = s("sd").struct("<~@8 A@34 B C A@28 D A@11 E A@11 ~@2>".pickRestart({
A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "~@4 x ~@3 x ~@2 x!2 ~@3", D: "~@4 x ~@2 x ~@2 x ~ x ~@3",
E: "~@4 x ~@2 x ~@4 x ~@3",
})).gain(0.64)
// drums · low tom
const low_tom = s("lt").struct("<~@43 [~@7 x] ~@54>").gain(0.57)
// drums · hihat
const hihat = s("hh").struct("<~@8 [x!8]!88 ~@2>").gain(0.64)
// drums · open hat
const open_hat = s("oh").struct(`<
~@17 A ~@5 A ~@8 B ~ B ~ B ~ B ~ B ~ C D ~@7 A ~@7 A ~@8 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@3
>`.pickRestart({
A: "~@7 x", B: "~@3 x", C: "x ~@2 x ~@3 x", D: "~ x ~@2",
})).gain(0.64)
// drums · crash
const crash = s("cr").struct("<~@8 A ~@7 A ~@7 A ~@6 B A ~@11 A ~@22 B A ~@7 A ~@7 A ~@7 A ~@5>".pickRestart({
A: "x", B: "~@3 x",
})).gain(0.64)
// drums · tambourine
const tambourine = s("tb").struct("<~@8 A@23 B C@11 D A@23 B C@12 E C@14 F ~@2>".pickRestart({
A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "x!16", D: "x!5 ~@7 x!3 ~", E: "x!12 ~ x!3", F: "x!15 ~",
})).gain(0.36)
// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
~@8
[~@3 x ~@7 x ~@4]!23
[~@3 x ~@5 x ~@6]
~@12
[~@3 x ~@7 x ~@4]!23
[~@3 x ~@5 x ~@6]
~@30
>`).gain(0.21)
stack(
bass, synth_brass_1, electric_guitar_muted, epiano2, string_ensemble_1, synth_strings_1, kick, snare, low_tom, hihat,
open_hat, crash, tambourine, tambourine_soft
)
More by
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.