0:00/0:00
// (Hey There) Lonely Girl — Eddie Holman
// 74 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, 6/4 at bar 57, 4/4 at bar 59) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 82 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(74/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 · "Ac Piano"
const piano = note(`<
A@4 B C D E F G H I J K L M N O P Q R S C D E F G H I J K L M N O P Q R S C D E F G H I J K L M N O P Q R T U@7 V@2 W
X@3 Y@7 Z@6
>`.pickRestart({
A: "[g#3@4 ~@4 c#4@4 f#3@6 ~@4 a3 ~@21 e3@2 ~@2 [g#3,c#4]@10 [g#3,c#4,e4]@2 f#3@6 f#3@4 ~@4 [a3,d4,e4]@4 ~@14 e3@3 ~, [c#4,e4]@8 ~@4 c#4@11 ~@17 g#3@7 ~@31 [a3,d4,e4]@16 ~@2, a1@6 a1@14 a1@14 a1@8 ~ a1@3 a1@24 a1@12 a1@8 a1@4 ~@2, ~@4 g#3@4 [g#3,e4]@15 ~ [a3,d4,e4]@23 ~@13 [c#4,e4]@10 ~@18 g#3@6 ~@2, ~@18 f#3@5 ~@9 f#3@15 ~ e3@12 ~@24 f#3@10 ~@2]/4", // C#5 C#m Asus4 C#m Asus4 C#m Asus4 C#m
B: "~@3 [e4,e5]@7 ~@2, [e1,e2]@5 ~", // E
C: "d1@3 ~@2 [c#4,f#4,c#5] ~@3 [f#3,c#4] [f#3,c#4]@2, f#3@2 d2, [c#4,f#4]@5 ~ [f#4,c#5]@6, d2@4 d2@2 c#4@3 ~@3, ~ d1@3", // F#5
D: "e3@2 ~@2 b3 ~ c#2@2 e3 ~@2 e2, c#1@2 [c#1,c#2], b3@3 c#2@2 [b3,e4]@4 ~@3, c#2@2 e4@3 b4@7, ~@2 e3@6 ~ [e3,b3,e4]@3", // C# E5
E: "a3@2 ~@7 [d4,f#4,a4]@3, [d4,f#4]@2 [d4,f#4,a4] ~, e1@5 e1@7, e2@3 e2@5 e2@4, ~ a3 a3@4", // D
F: "c#4@2 ~@4 g#3@2 g#3 [g#3,c#4,e4]@3, [e4,g#4] ~, a1@2 g#3 ~@3, a2@3 a2@2 [a1,a2]@7, ~@2 c#4@4 [c#4,e4]@3 ~@3", // C#m E A C#m
G: "a3@2 ~@7 [c#4,f#4,a4]@3, c#4@5 [f#4,a4] d2 [c#4,f#4,a4]@2 ~@3, f#4 d1 [d1,d2], d1@3 d2@2 c#5@7, d2 a3@5", // F#m D
H: "~@4 b3 e4@2 ~ e3 [e3,b3,e4]@3, [c#2,g#4], c#1@7 e4@2 ~@3, e4@5 b3@4 ~@3, b3@3 e3@2 e3@3 c#1@4", // E5 C#5
I: "a3@2 ~@2 a3 [a3,d4,f#4] ~@3 [a3,d4,f#4]@3, [e1,d4,f#4]@5 e1@7, e2@3 e2@5 e2@4, ~ a3 ~ a4@3, ~@2 [a3,d4,f#4] ~", // D
J: "a2@5 ~@5 a4@6 ~@6 c#4@2, a1@5 e4, [b3,c#4,e4,a4]@9 ~ [c#4,e4]@8 a4@6, ~@6 a2@17 ~, ~@10 a3@5 ~ a3@8", // A C#m
K: "[a2,c#4,a4] ~@11", // A
L: "[c#3,e3,g#3,b3]@7 c#3 ~@8 c#3@8, c#2@5 c#2@7, ~@2 [c#3,e3,g#3,b3] [e3,g#3,b3]@3, ~@3 c#3 ~@2, ~@7 c#1@5", // C#m7 E
M: "[f#3,a3]@4 ~@5 f#3@3, [d1,d3], d2@5 d2@3 d2@4, ~@2 [f#3,a3] [a3,c#4]@3, ~@2 f#3 ~", // F#m D F#m A
N: "e2@2 ~@5 b3, e3@2 e3 g#3, e1@5 e1@7, [g#3,b3]@2 [g#3,b3]!2 f#3@2, ~ e2@3", O: "[e1,e2,e3,g#3,b3,e4] ~@9 e2 d2",
P: "[g#3,b3]@4 ~@2 g#3@3 ~ c#2@2, e3, c#2@5 c#2@5 ~@2, ~@2 [g#3,b3,e4] [b3,e4]@3, ~@3 g#3", // G#m E E5
Q: "f#3@2 ~@3 [a3,c#4,f#4] a3@3 a3@3, d4, a3@5 ~ [c#4,f#4]@6, d2 d2@3, ~ f#3@5", // F#m F#5
R: "g#3@5 g#3@3 ~@12 e2@3 ~, e2@5 e2@3 e2@2 ~@2, [b3,e4]@8 [g#3,b3,e4]@4 [b3,e4]@11 ~, ~@12 g#3@6 g#3@5 ~", // E5 E E5
S: "[f#3,a3,d4]@4 ~@8 [g#3,b3,e4]@4 [g#3,b3,e4]@2 e2@2 ~@2 c#2 ~, e2@3 e2@2 e2@4 ~@3, ~ [f#3,a3,d4]!2 ~@2 [g#3,b3,e4]", // D E D E
T: "a3@2 ~@6 [a3,f4] [a3,c4,f4] ~ f2, f1@5 f1@7, [c4,d#4]@2 ~ d#4@3, f2@3 f2@3 a3 f2@4 ~, ~@2 a3@2 [a3,c4,d#4]@2 c4@3 ~ [a3,c4,f4]@2", // Dm F Cm Adim F
U: "[[g3,a#3,d#4]@3 [a3,c4,f4]@3 d#1@3 ~@2 [d4,g4,d5] ~@3 [g3,d4] [g3,d4]@2 f3@2 ~@2 c4 ~ d2@2 f3 ~@2 f2 a#3@2 ~@7 [d#4,g4,a#4]@3 d4@2 ~@4 a3@2 a3 [a3,d4,f4]@3 a#3@2 ~@7 [d4,g4,a#4]@3 ~@4 c4 f4@2 ~ f3 [f3,c4,f4]@3 a#3@2 ~@2 a#3 [f1,a#3,d#4,g4], f1@11 ~ g3@16 d#2@8 d2@4 f4@6 c5@14 ~@4 a#3@4 a#3@16 ~@4 d4@8 [d4,f4]@6 ~@6 d4@10 [g4,a#4]@2 d#2@2 [d4,g4,a#4]@4 ~@6 f4@10 c4@8 ~@10 a#3@4 ~@4, ~@6 [d4,g4]@5 ~ [g4,d5]@6 ~@2 f3@6 ~ [f3,c4,f4]@3 f2@3 f2@5 f2@4 a#2@3 a#2 a3@2 ~@6 d#2@2 a#3@10 d1@7 f4@2 ~@9, ~@6 d#2@4 d#2@2 d4@3 ~@3 c4@3 d2@2 [c4,f4]@4 ~@3 [d#4,g4]@6 [d#4,g4,a#4]@3 ~@3 [f4,a4]@6 ~@6 g4@4 d#1@4 [d#1,d#2]@4 [d2,a4]@12 f2@3 f2@3, ~@9 d#1@9 d1@8 [d1,d2]@4 f1@5 f1@7 a#1@5 [a#1,a#2]@7 d#1@3 d#2@2 d5@7 c4@3 f3@2 f3@3 d1@4 [f1,d#4,g4]@5 ~]/7", // D# F G5 D# Dm Gm F5 D# …
V: "[~@6 [a#3,d#4,g4]@6 a#2@5 ~@5 a#4@6 ~@6 d4@2 [a#2,d4,a#4]@2 ~@10, a#4@6 ~@3 a#2@7 f4@2 ~@6, [a#3,d#4,g4]@6 ~@6 [c4,d4,f4,a#4]@9 ~ [d4,f4]@8 a#4@6 ~@12, ~@4 f2@8 a#1@23 ~@13, ~@22 a#3@5 ~ a#3@8 ~@12]/2", // D# A# D# A# Dm
W: "~@6 a3@2 ~@3 a#1, ~@3 d4@2 ~, ~@6 a#1@3 a#1@2 ~, ~@4 a3 [a3,d4]", // D5
X: "[a#1@5 ~@4 a#3 ~@7 a#1 [a3,d4]@4 ~@5 a#1@2 ~@5 a#3 [a#3,d#4], [g3,d4]@6 d#4@4 [d#4,f4]@8 ~@4 f4@7 a#1@7, ~@10 a#1@12 a#1@8 a#1@2 g3@4 f3@23 ~ a#3@6 f1@6, ~@12 a#3@6 ~@2 a#3@4 a#3@12 ~@8 [a3,d4]@4 [g3,c4]@11 ~ d#4@10 ~@2, ~@16 f4@4 ~@8 a3@8 a#1@10 a#1@6 [a3,d4]@7 ~ f4@12]/3", // D5 D#5 G5 D#sus2 D5 C5 D5
Y: "[a#3@2 ~@4 a#3@2 [a#3,d#4,f4]@3 ~ d#1@6 ~@4 [d4,g4,d5]@2 ~@6 [g3,d4]@2 [g3,d4]@4 f3@4 ~@4 c4@2 ~@2 d2@4 f3@2 ~@4 f2@2 a#3@4 ~@14 [d#4,g4,a#4]@6 d4@4 ~@8 a3@4 a3@2 [a3,d4,f4]@6 a#3@4 ~@14 [d4,g4,a#4]@6 ~@8 c4@2 f4@4 ~@2 f3@2 [f3,c4,f4]@6 a#3@4 ~@4 a#3@2 [f1,a#3,d#4,g4]@2, f4@4 ~@2 d#2@4 d#2@2 d4@2 d#2@4 d2@2 f4@3 c5@7 ~@2 a#3@2 a#3@8 ~@2 d4@4 [d4,f4]@3 ~@3 d4@5 [g4,a#4] d#2 [d4,g4,a#4]@2 ~@3 f4@5 c4@4 ~@5 a#3@2 ~@2, d#4@2 d#4@2 ~@2 [d4,g4]@5 ~ [g4,d5]@6 ~@2 f3@6 ~ [f3,c4,f4]@3 f2@3 f2@5 f2@4 a#2@3 a#2 a3@2 ~@6 d#2@2 a#3@10 d1@7 f4@2 ~@9, ~ a#3@2 ~@3 g3@9 ~@3 c4@3 d2@2 [c4,f4]@4 ~@3 [d#4,g4]@6 [d#4,g4,a#4]@3 ~@3 [f4,a4]@6 ~@6 g4@4 d#1@4 [d#1,d#2]@4 [d2,a4]@12 f2@3 f2@3, ~@9 d#1@9 d1@8 [d1,d2]@4 f1@5 f1@7 a#1@5 [a#1,a#2]@7 d#1@3 d#2@2 d5@7 c4@3 f3@2 f3@3 d1@4 [f1,d#4,g4]@5 ~]/7", // A#sus4 G5 D# Dm Gm F5 D# Dm …
Z: "[~@6 [a#3,d#4,g4]@6 a#2@5 ~@5 a#4@6 ~@6 d4@2 ~@53 a#1@33 ~@22, a#4@12 ~@6 a#2@14 f4@4 [d4,a#4]@33 c4@10 a#5@43 ~@22, [a#3,d#4,g4]@6 ~@6 [c4,d4,f4,a#4]@9 ~ [d4,f4]@8 a#4@6 ~@32 f3@7 f5@47 ~@22, ~@4 f2@8 a#1@23 ~ f2@35 d4@12 c6@40 ~@21, ~@22 a#3@5 ~ a#3@8 ~@31 a#2@5 a#4@48 ~@24]/6", // D# Gm D# A# Dm
})).s("gm_piano").gain(0.32)
// bass · fretless bass · "El Bass"
const bass = note(`<
A B C D E F G H I F G H J K L M N O P Q R S F G H I F G H J K L M N O P Q R S F G H I F G H J K L M N O P Q R T U V W
X Y V W Z AA@2 AB AC AD AE V W X Y V W Z AF@5
>`.pickRestart({
A: "a1@3 a1!2 ~ a1 ~ a1 ~ a1 ~ a1@3 a1 a1@2 a1@2 a1@2 a1 ~",
B: "a1@3 a1 a1@2 a1 ~ a1 ~ a1@2 a1@3 a1 a1@2 a1 ~ a1@2 e1@2",
C: "a1@3 a1!2 ~ a1@2 a1 ~ a1@2 a1@3 a1!2 ~ a1@2 a1@2 a1@2",
D: "a1@3 a1!2 ~ a1 ~ a1 ~ a1 ~ a1@3 a1 a1@2 a1@2 a1@2 b1@2", E: "e1@10 b1 c#2",
F: "d2@3 d2!2 ~ d2 ~ d2 ~ d2 ~ d2@3 d2 d2@2 d2@2 d2@2 b1 ~",
G: "c#2@3 c#2 c#2@2 c#2 ~ c#2 ~ c#2@2 c#2@3 c#2 c#2@2 c#2 ~ c#2@2 d2@2",
H: "e1@3 e1!2 ~ e1@2 e1 ~ e1@2 e1@3 e1!2 ~ e1@2 e1@2 e1@2",
I: "a1@3 a1!2 ~ a1 ~ a1 ~ a1 ~ a1@3 a1 a1@2 a1@2 a1@2 c#2@2",
J: "a1@3 a1!2 ~ a1 ~ a1 ~ a1 ~ a1@3 a1 a1@2 a1@2 a1@2 e1@2", K: "a1 ~@9 e2 d2", L: "c#2@9 ~ g#1 ~ c#2@8 b1@2 c#2 ~",
M: "d2@9 ~ a1 ~ d2@5 ~ b1@5 ~", N: "e2@12 e2@6 b1@5 ~", O: "e1 ~@9 e2 d2", P: "c#2@5 g#1 c#2@4 b1 c#2",
Q: "d2@5 a1 d2@4 c#2 b1", R: "e2@5 b1 e1@5 b1", S: "e2@10 b1@2 e1@6 b1@4 c#2 ~", T: "f1@9 ~ c2@2 f2@10 c2@2",
U: "f2@6 f2@4 d2@2 d#2@3 d#2!2 ~ d#2 ~ d#2 ~ d#2 ~",
V: "d#2@3 d#2 d#2@2 d#2@2 d#2@2 c2 ~ d2@3 d2 d2@2 d2 ~ d2 ~ d2@2",
W: "d2@3 d2 d2@2 d2 ~ d2@2 d#2@2 f1@3 f1!2 ~ f1@2 f1 ~ f1@2",
X: "f1@3 f1!2 ~ f1@2 f1@2 f1@2 a#1@3 a#1!2 ~ a#1 ~ a#1 ~ a#1 ~",
Y: "a#1@3 a#1 a#1@2 a#1@2 a#1@2 d2@2 d#2@3 d#2!2 ~ d#2 ~ d#2 ~ d#2 ~",
Z: "f1@3 f1!2 ~ f1@2 f1@2 f1@2 a#1@8 a#1@2 f1@2", AA: "[g1@10 c2@2 f1@23 ~ a#1@3 a#1!2 ~ a#1 ~ a#1 ~ a#1 ~]/2",
AB: "a#1@3 a#1 a#1@2 a#1@2 a#1@2 a#1 ~ a#1@3 a#1 a#1@2 a#1 ~ a#1 ~ a#1@2",
AC: "a#1@3 a#1 a#1@2 a#1 ~ a#1@2 f1@2 a#1@3 a#1!2 ~ a#1@2 a#1 ~ a#1@2",
AD: "a#1@3 a#1!2 ~ a#1@2 a#1@2 a#1@2 a#1@3 a#1!2 ~ a#1 ~ a#1 ~ a#1 ~",
AE: "a#1@3 a#1 a#1@2 a#1@2 c2@2 d2@2 d#2@3 d#2!2 ~ d#2 ~ d#2 ~ d#2 ~", AF: "[g1@10 c2@2 f1@29 ~ a#1@61 ~@17]/5",
})).s("gm_fretless_bass").gain(0.36)
// chords · vibraphone · "Vibes"
const vibraphone = note(`<
A@2 B@2 C ~@9 D E F ~ G E H@2 ~@9 D E F ~ G E H@2 ~@9 D E F ~ G E I J K@8 L M@8 N@4 L O@3 ~
>`.pickRestart({
A: "[~@22 a4 b4, [e3,e4]@23 ~ [e3,e4]@23 ~, ~@6 e5@11 ~ e5@6]/2", // E
B: "[~@36 e5@11 ~, [e3,e4]@23 ~ e4@23 ~, ~@12 e5@23 ~@13, ~@24 e3@17 ~@7]/2", // E
C: "~@4 e5@7 ~, d4@7 ~, ~@2 e4@19 ~@3, ~@4 g#4@17 ~@3, ~@2 b4@5 ~", D: "[e4,g#4]@11 ~", E: "[f#4,a4]@23 ~",
F: "b4@23 ~", G: "[e4,g#4]@23 ~", H: "[b4@2 ~ e4@3 ~@2, ~ e5@2 ~, ~@16 b4@21 ~@11]/2", I: "b4@2 ~ e4, ~ e5, ~@2 b4",
J: "~@3 c6, f4@23 ~, ~ c5@3, ~ f5",
K: "[[a#4,a#5]@6 [c5,c6]@6 [g5,a#5]@22 ~@2 [f5,a5]@21 ~@3 [d#5,g5]@22 ~@2 [d5,a5]@18 ~@6 [g5,a#5]@22 ~@2 [f5,a5]@22 ~@8 d#5@16 ~@8 f5@5 ~, ~@78 a#5@11 ~ a#5@6, ~@80 g5@9 ~@7]/8", // A# C Gm F D# D5 Gm F
L: "g5@4 a5@4 a#5@3 ~@13",
M: "[~@56 a#4@2 c5@2 ~@36 f5@11 ~ [g5,a#5]@22 ~@2 [f5,a5]@21 ~@3 [d#5,g5]@22 ~@2 [d5,a5]@12, ~@12 [f3,f4]@23 ~ [f3,f4]@23 ~ [f3,f4]@23 ~ f4@23 ~@85, ~@24 f5@22 ~@2 f5@12 ~@12 f5@23 ~@97, ~@84 f3@17 ~@91]/8", // Gm F D# D5 F
N: "[~@12 [g5,a#5]@22 ~@2 [f5,a5]@22 ~@8 d#5@16 ~@8 f5@5 ~, ~@30 a#5@11 ~ a#5@6, ~@32 g5@9 ~@7]/4", // Gm F
O: "[~@26 c5@41 ~@5, ~@19 a#4@49 ~@4, ~@22 f5@45 ~@5]/3",
})).s("gm_vibraphone").gain(0.29)
// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
A B A B C D E F G D E F H I ~@3 J K L M N D E F G D E F H I ~@3 J K L M N D E F G D E F H I ~@3 J K L O P Q@8 R S@4
T@8 U@5
>`.pickRestart({
A: "[a3,e4,g#4,c#5]", B: "[a3,d4,f#4,b4]", C: "[e3,e4] ~@7", D: "[d3,a3,c#4,f#4]", E: "[c#3,g#3,b3,e4]",
F: "[e3,f#3,a3,d4]", G: "[a2,e3,g#3,c#4]", H: "[e3,c#4,a4]", I: "[a3,a5] ~@11",
J: "[e3,e5] ~@2 e4@3 [d4,f#4]@3 [c#4,g#4]@3 [b3,a4]@3 [a3,b4]@3 [g#3,c#5]@3 [f#3,d5]@3, e4 ~@11", // E D C#5 B7 Asus2 C#5 D
K: "[e3,e4]@2 [b3,b4] [g#3,g#4]", L: "[f#3,f#4]@2 [c#4,c#5] [a3,a4]", M: "[b3,b4] [e4,e5]",
N: "[e3,e4] [f#3,f#4] [g#3,g#4] [a3,a4] [b3,b4] [c#4,c#5] [d4,d5] [e4,e5]", // E F# G# A B C# D E
O: "d3@3 ~ e3@2 f#3@2 g#3@3 ~ a3@2 b3@3 ~ c#4@3 ~ d4@2", P: "d#3@3 ~ f3@2 g3@3 ~ a3@2 a#3@3 ~ c4@2 d4@3 ~ d#4@2",
Q: "[[a#3,a#4]@6 [c4,c5]@5 ~ [d#3,a#3,d4,g4]@24 [d3,a3,c4,f4]@24 [f3,g3,a#3,d#4]@24 [a#2,f3,a3,d4]@24 [d#3,a#3,d4,g4]@24 [d3,a3,c4,f4]@24 [f3,g3,a#3,d#4]@24 [f3,d4,a#4]@12]/8", // A# C D#maj7 Dm7 D# A#maj7 D#maj7 Dm7 …
R: "~ [d#5,a#5,d6]", S: "[~ [a#3,f4,a4,d5]@2 [a#3,d#4,g4,c5]@2 [a#3,f4,a4,d5]@2 [a#3,d#4,g4,c5]]/4",
T: "[~ [d#3,a#3,d4,g4]@2 [d3,a3,c4,f4]@2 [f3,g3,a#3,d#4]@2 [a#2,f3,a3,d4]@2 [d#3,a#3,d4,g4]@2 [d3,a3,c4,f4]@2 [f3,g3,a#3,d#4]@2 [f3,d4,a#4]]/8", // D#maj7 Dm7 D# A#maj7 D#maj7 Dm7 D# A#
U: "[~@12 [d#5,a#5,d6]@30 [a#3,f4,d5,a#5]@67 ~@11]/5", // D#maj7 A#
})).s("gm_string_ensemble_1").gain(0.32)
// other · french horn · "Brass"
const french_horn = note(`<
A@2 B@2 ~ C@3 D E F G H ~@5 I J K L C@3 D E F G H ~@5 M N K L O@3 P Q R G H S T U V ~ W X Y Z AA AB AC ~ AD AE AF@2 AG
AH AI@2 AJ@2 AB AC ~ AD AE AF@2 AG ~@4
>`.pickRestart({
A: "[~ e3 e4@5 ~]/2", B: "[~@6 e3@6 e4@31 ~@5]/2", C: "[c#4@12 c#5@4 a4@2 ~ f#4@17 b4@4 g#4@2 e4@17 ~@13]/3",
D: "~@12 g#4 a4 g#4 f#4 g#4@2 a4@4 b4@2", E: "~@12 c#5 d5 c#5 a4 f#4@8", F: "~@12 b4 c#5 b4 g#4 e4@8", G: "d4",
H: "c#4@9 ~ b4@6 a4@2 e4@4 c#4@2", I: "[b3,g#4]", J: "[a3,f#4]", K: "[b3,e4]", L: "e3 f#3 g#3 a3 b3 c#4 d4 e4",
M: "g#4@2 ~ e4, b3, ~ g#4", N: "f#4@2 ~ c#4, a3, ~ f#4", O: "[c#4@12 c#5@4 a4@2 f#4@17 ~ b4@4 g#4@2 e4@17 ~@13]/3",
P: "~@12 g#4 ~ [g#4,a4] ~ g#4@2 a4@4 b4@2, ~@16 f#4 ~@7", Q: "~@12 c#5 ~ [c#5,d5] ~ f#4@8, ~@16 a4 ~@7",
R: "~@12 [b4,c#5] ~ b4 ~ e4@8, ~@16 g#4 ~@7", // Bsus2
S: "~@2 e4 [e3,e4]@2 f#4 [g#3,g#4]@2 [f#3,f#4] [g#3,g#4]@2 [f#3,f#4], ~@4 e3 ~@5 f#3 ~@13", // E G# F# G# F#
T: "[e3,e4]@8 [e3,e4] [f#3,f#4]@2 g#4, ~@22 g#3 ~", U: "[a3,a4]@8 [f#3,f#4] [g#3,g#4]@2 a4, ~@22 a3 ~",
V: "[b3,b4]@5 [c#4,c#5] [b3,b4]@6", W: "[b3,g#4]@2 ~ e4, ~ g#4", X: "[a3,f#4]@2 ~ c#4, ~ f#4",
Y: "[b3,b4]@7 ~ [c#4,c#5]@2 [b3,b4]@2 [c#4,c#5]@2 [b3,b4]@9 ~", // B C# B C# B
Z: "[c4,c5]@7 ~ [d4,d5]@2 c5@2 d5@2 [c4,c5]@10, ~@10 c4 ~ d4 ~@11", AA: "[a#3,a#4]@6 [c4,c5]@5 ~ d4@12",
AB: "d5@4 a#4@2 g4@17 ~", AC: "c5@4 a4@2 f4@17 ~", AD: "a4 ~ [a4,a#4] ~ a4@2 a#4@4 c5@2 ~@12, ~@4 g4 ~@19",
AE: "d5 ~ [d5,d#5] ~ g4@8 ~@12, ~@4 a#4 ~@19", AF: "[[c5,d5] ~ c5 ~ f4@8 d#4@24 [f3,f4]@12, ~@4 a4 ~@43]/2",
AG: "[g3,g4]@3 ~ [a3,a4]@4 [a#3,a#4]@4 [g3,d#4]@2 ~@10, ~@3 a#4 ~@2", AH: "~@3 f3", AI: "[f4@5 ~@2 f3]/2",
AJ: "[f4@31 ~@5 d4@12]/2",
})).s("gm_french_horn").gain(0.17)
// chords · electric guitar jazz · "Guitar"
const electric_guitar_jazz = note(`<
~ A B C D E F G H I J K L M N O P ~ Q R S T E F G H I J K L M N O P ~ Q R S T E F G H I J K L M N O P ~ Q R S ~ U V W
X Y Z AA AB@2 ~ AC AD AE AF V W X Y Z AA AG@5 ~
>`.pickRestart({
A: "~@10 [f#4,b4]@2 [e4,a4]@3 ~ [f#4,b4] ~@5 [c#4,f#4]@2", B: "[b3,e4]@11 ~@13",
C: "~@8 f#5 ~@3 e5 ~ c#5 ~@5 c#5 ~ a4 ~", D: "b4 ~@23", E: "~@6 [f#4,a4]@5 ~@5 [a4,c#5] ~ [a4,c#5]@4 ~@2",
F: "~@16 [f#4,b4]@2 [e4,a4]@4 [f#4,b4] ~", G: "~@8 d4 ~ f#4 ~ a4@6 f#4@4 ~@2",
H: "[e4,g#4]@6 ~@10 [c#5,f#5]@2 [b4,e5]@3 ~@3", // E F#5 E5
I: "~@8 [a4,c#5] ~ [a4,c#5] ~ [a4,c#5]@2 [c#5,e5] ~ [c#5,e5] ~ [c#5,e5]@4 ~@2", // A C#m
J: "~@12 [g#4,b4]@3 ~ [e4,g#4] ~ [e4,g#4]@4 ~@2", // G#m E
K: "e3 f#3 [a3,d4] ~ a3@4 f#3@2 a3 ~ a3 b3@3 a3@2 f#3@2 [a3,d4]@2 f#3@2, ~@4 d4@7 ~ d4@8 ~@4", // D5
L: "[a3,c#4]@2 ~@6 a3 e3 a3 e3, ~@4 e3@4 c#4@5 ~ c#4@8 ~@2, ~@2 a3@3 ~@3, ~@10 e3@7 ~@7", M: "[a3,c#4] ~@23",
N: "[g#4,b4]@11 ~", O: "[f#4,a4]@10 ~@2 [a4,c#5]@5 ~ [f#4,a4]@5 ~", P: "e4@10 ~@6 [c#4,f#4]@2 [b3,e4]@4 [c#4,f#4] ~",
Q: "[b3,e4]@16 b3 ~ f#4 e4@2 ~ e4 ~, ~@21 b3@2 ~", R: "[a3,d4]@10 ~@2 e4 ~ a3@2 d4 ~ e4@2 d4@2 a3 ~, ~@13 d4@2 ~@9",
S: "e4@10 f#4@2 e4@2 ~@2 e4@3 ~@3 b3@2, b3@13 ~ b3@6 e4@4",
T: "~@4 d4@2 ~@4 d4@2 b3@2 ~@6 e4@2 b3 ~, a3@5 ~ a3@5 ~@5 b3@5 ~@3, ~@2 f#4@5 ~ e4@4 ~@2 e4@4 g#4@5 ~",
U: "~@18 [g4,a#4]@5 ~", V: "~@4 [a#4,d5] ~ [a#4,d5]@4 ~@14", W: "~@4 [g4,c5]@2 [f4,a#4]@4 [g4,c5] ~@9 d#4 ~ g4 ~",
X: "a#4@3 g4@2 ~ [f4,a4]@3 ~@3", Y: "~@4 [d5,g5]@2 [c5,f5]@3 ~@11 [a#4,d5] ~ [a#4,d5] ~",
Z: "[a#4,d5]@2 [d5,f5] ~ [d5,f5] ~ [d5,f5]@4 ~@14", // A# Dm
AA: "[a4,c5]@3 ~ [f4,a4] ~ [f4,a4]@4 ~@2 f3 g3 [a#3,d#4] ~ a#3@4 g3@2 a#3 ~, ~@16 d#4@7 ~", // Am F D#5
AB: "[a#3 c4@3 a#3@2 g3@2 [a#3,d#4]@2 g3@2 [a#3,d4]@4 ~@12 a#3@2 f3@2 a#3@2 f3@2 [a#3,d4] ~@11, d#4@8 ~@8 f3@4 d4@5 ~ d4@8 ~@14, ~@6 a#3@3 ~@7, ~@22 f3@7 ~@19]/2", // D#5 A#
AC: "~@11 [g4,c5]", AD: "[f4,a#4]@3 ~ [g4,c5] ~@5 [d4,g4]@2 [c4,f4]@11 ~", AE: "~@20 g5 ~@3",
AF: "f5 ~ d5 ~@5 d5 ~ a#4 ~@7 [g4,a#4]@5 ~", // Gm
AG: "[a#3 c4@3 a#3@2 g3@2 [a#3,d#4]@2 g3@2 [a#3,d4]@4 ~@12 a#3@2 f3@2 a#3@2 f3@2 d4@29 ~@4 f4@15 c4@18 ~@18, d#4@8 ~@8 f3@4 d4@5 ~ d4@8 ~@34 c4@15 ~@37, ~@6 a#3@3 ~@3 a#3@9 ~@19, ~@22 f3@7 ~@38 f3@16 ~@37]/5", // D#5 A#
})).s("gm_electric_guitar_jazz").gain(0.18)
// other · orchestral harp · "Harp"
const orchestral_harp = note("<~@12 A ~@15 B C ~@8 D E ~@24 F G ~@16>".pickRestart({
A: "[e5,a5] [b4,c#5] [f#4,a4] [c#4,e4] [a3,b3] [e3,f#3] [c#3,e3] [f#3,a3] [b3,c#4] [e4,f#4] [a4,b4] [c#5,e5] [f#5,a5] [b5,c#6] [e6,f#6] a6 ~@8", // A5 Bsus2 F#m C#m Asus2 Esus2 C#m F#m …
B: "[f#6,a6] [d6,e6] [f#5,a5] [d5,e5] [f#4,a4] [d4,e4] [f#3,a3] [d3,e3] [e3,f#3] [a3,b3] [d4,e4] [f#4,a4] [b4,d5] [e5,f#5] [a5,b5] [d6,e6] [f#6,a6] ~@7", // F#m Dsus2 F#m Dsus2 F#m Dsus2 F#m Dsus2 …
C: "[e3,f#3] [a3,b3] [c#4,e4] [f#4,a4] [b4,c#5] [e5,f#5] [a5,b5] [c#6,e6] [f#6,a6] ~@15", // Esus2 Asus2 C#m F#m Bsus2 Esus2 Asus2 C#m …
D: "~@10 [d3,e3] [f#3,g#3] [a3,b3] [c#4,d4] [e4,f#4] [g#4,a4] [b4,c#5] [d5,e5] [f#5,g#5] [a5,b5] [c#6,d6] [e6,f#6] [g#6,a6] [b6,c#7]", // Dsus2 F#sus2 Asus2 Dmaj7 Esus2 Amaj7 Bsus2 Dsus2 …
E: "d#7 ~@23", F: "~@14 [g6,a#6] [d#6,f6] [a#5,d6] [f5,g5] [d5,d#5] [g4,a#4] [d#4,f4] [a#3,d4] [f3,g3] [d3,d#3]",
G: "[d#3,f3] [g3,a#3] [c4,d4] [d#4,f4] [g4,a#4] [c5,d5] [d#5,f5] [g5,a5] [a#5,c6] [d6,d#6] [f6,g6] [a6,a#6] c7 ~@11", // D#sus2 Gm Csus2 D#sus2 Gm Csus2 D#sus2 Gsus2 …
})).s("gm_orchestral_harp").gain(0.14)
// other · glockenspiel · "Bell"
const glockenspiel = note(`<
A B A B C D E F G D E H I J ~@8 D E F G D E H I J ~@8 D E F G D E H I J ~@8 K L M N O L P Q R S T U T V L M N O L P Q
R ~@4
>`.pickRestart({
A: "e6 ~@11 f#6 ~@3 g#6 ~@7", B: "e6 ~@11 a6 ~@3 g#6 ~@3 f#6 ~@3", C: "e6 ~@23", D: "c#6 ~@3 a5 ~ f#5 ~@17",
E: "b5 ~@3 g#5 ~ e5 ~@17", F: "a5 ~@11 d6 ~@5 a6 ~@5", G: "g#6 ~@5 e6 ~@5 c#6 ~@5 a5 ~@3 b5 ~",
H: "a5 ~@5 d5 ~@5 f#5 ~@5 a5 ~@5", I: "a5 ~@11 a6 ~@5 e6 ~@5", J: "a5 ~@23", K: "~@12 d6 ~@3 a#5 ~ g5 ~@5",
L: "~@12 c6 ~@3 a5 ~ f5 ~@5", M: "~@12 a#5 ~@11", N: "d#6 ~@5 a#6 ~@5 a6 ~@5 f6 ~@5",
O: "d6 ~@5 a#5 ~@3 c6 ~ d6 ~@3 a#5 ~ g5 ~@5", P: "~@12 a#5 ~@5 d#5 ~@5", Q: "g5 ~@5 a#5 ~@5 a#5 ~@11",
R: "a#6 ~@5 f6 ~@5 a#5 ~@11", S: "~@12 f6 ~@11", T: "g6 ~@3 a6 ~@7 f6 ~@11", U: "a#6 ~@3 a6 ~@3 g6 ~@3 f6 ~@11",
V: "a#6 ~@3 a6 ~@3 g6 ~@3 d6 ~@3 a#5 ~ g5 ~@5",
})).s("gm_glockenspiel").gain(0.16)
// drums · kick
const kick = s("bd").struct(`<
~@5 A ~ A ~ B C D@2 A@2 ~ E D A ~@2 F A ~ A ~ B C D@2 A@2 ~ E D A ~@2 F A ~ A ~ B C D@2 A@2 ~ E D A ~@2 G H ~ I ~ J K
I L@2 M N O N H P Q R S T U V H W ~@3
>`.pickRestart({
A: "x", B: "x ~ x ~@8 x", C: "x!2 ~@4", D: "x ~@10 x", E: "~@11 x", F: "x ~ x ~@2 x!2 ~@2 x ~@2",
G: "x ~@4 x!2 ~@4 x", H: "x!2", I: "~ x", J: "~@3 x!2 ~", K: "~@5 x!2 ~ x ~@3", L: "~@5 x!2 ~@5",
M: "~@6 x ~ x ~@2 x", N: "x ~ x ~@2 x!2 ~ x ~@2 x", O: "x ~@4 x!2 ~ x ~@2 x", P: "x ~ x!2", Q: "x!5 ~ x!2", R: "x!4",
S: "x ~@2 x ~@2 x ~ x ~@2 x", T: "x ~@2 x!2 ~@5 x ~ x ~@3 x ~@5 x ~", U: "x ~ x ~ x ~ x ~@4 x",
V: "x ~ x ~@2 x!2 ~@4 x", W: "~@3 x",
})).gain(0.48)
// drums · snare
const snare = s("sd").struct(`<
A B A@2 C A@8 D A@3 E A@3 F A@8 D A@3 E A@3 F A@8 D A@3 E A@3 G A@8 H I A J A K L M L N A@3 O ~@4
>`.pickRestart({
A: "~ x ~ x", B: "~@3 x ~@5 x ~ x", C: "~@3 x", D: "x ~@16 x!2 ~@5", E: "x ~@2 x", F: "~@3 x ~@3 x!3 ~@2",
G: "~@3 x ~@4 x!2 ~@2", H: "~ x!2 ~", I: "~@5 x!2 ~@11 x ~@5", J: "~@2 x!2 ~@5 x ~@2",
K: "~@4 x ~ x ~@6 x ~@2 x ~@2 x ~@2 x ~", L: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
M: "~ x ~@2 x ~@2 x ~@2 x ~@4 x!2 ~@2 x ~@2 x ~", N: "~ x ~@2 x ~@3 x ~ x ~@7 x ~@5", O: "~ x ~@2",
})).gain(0.54)
// … 56 more lines
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.