0:00/0:00
// I Wonder Why — Curtis Stigers
// 90 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: ch 1 Harp 1 -> orchestral harp; ch 1 Fantasy -> pad new age
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 11 alto sax (copy of ch 9 alto sax, 0.146 beats late)
// note: Full arrangement: all 140 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/3)
// 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.
// other · pad metallic
const pad_metallic = note("<~@27 A B ~ B C@2 D ~@46 E F@2 ~@49 G H@2 I@4 ~>".pickRestart({
A: "f4", B: "g4", C: "[f4@11 ~@5]/2", D: "d4@19 ~@5", E: "~ e4@2", F: "[d4@43 ~@5]/2", G: "~ f#4@2",
H: "[e4@43 ~@5]/2", I: "[~ f#4@18 b4@18 e5@18 f#5@31 ~@10]/4",
})).s("gm_pad_metallic").gain(0.19).pan(0.6)
// chords · epiano2
const epiano2 = note(`<
~ A B C D E F C D A G H I J K ~@20 A B C D E F C D A G H I J K ~@20 A B C D E F C D A G H I J K ~@10 A B C D E F C L M
N O L P Q O L M N O L P Q O L M N O L P Q O L M N O L P Q R S T U ~@5
>`.pickRestart({
A: "f4@13 ~@3 a4@8, [d3,c5,e5], a4@2 ~, ~@13 f4@10 ~", B: "[f4,a4,c5,e5]@16 [f4,a4,c5,e5]@5 f3@2 ~, f3@7 ~",
C: "[a3,g4,b4,d5]", D: "[g3,f4,a4,c5]@8 [g3,f4,a4,c5]@7 ~ [a3,g4,b4,d5]@8", E: "[d3,f4,a4,c5,e5]",
F: "[a4,c5,e5]@2 [a4,c5,e5], [f3,g5]", G: "[f3,a4,c5,e5,g5]@23 ~", H: "[g3,c5,d5,g5]", I: "[g3,b4,d5,g5]",
J: "[g3,g4,c5,d5,g5]", K: "[g3,g4,b4,d5,g5]", L: "[a3,g4,b4,d5]@8 [a3,g4,b4,d5]@7 ~ [b3,a4,c#5,e5]@7 ~",
M: "g4@13 ~@3 b4@8, [e3,d5,f#5], b4@2 ~, ~@13 g4@10 ~", N: "[g4,b4,d5,f#5]@16 [g4,b4,d5,f#5]@5 g3@2 ~, g3@7 ~",
O: "[b3,a4,c#5,e5]", P: "[e3,g4,b4,d5,f#5]", Q: "[b4,d5,f#5]@2 [b4,d5,f#5], [g3,a5]", R: "[a3,d5,e5,a5]",
S: "[a3,c#5,e5,a5]", T: "[a3,a4,d5,e5,a5]", U: "[a3,a4,c#5,e5,a5]",
})).s("gm_epiano2").gain(0.18).pan(0.8)
// other · string ensemble 1
const string_ensemble_1 = note(`<
~@4 A ~@4 B ~@11 C@4 D@8 E@5 ~ F@3 G@7 ~@6 H I@7 J@5 K@5 L@3 M@6 N@4 O@7 ~@6 P@5 ~ Q@7 ~ R@16 S@6 ~@5
>`.pickRestart({
A: "~@2 [g4,g5] ~@2 [a4,a5] ~ [c5,c6] ~@2 [g4,g5] ~@2 [a4,a5] ~ [c5,c6] ~@2 [g4,g5] ~@2 [a4,a5] ~@2", // G A C G A C G A
B: "~@7 [c5,c6] ~@2 [a4,a5] ~@2 [c5,c6] ~@10", // C A C
C: "[~@23 [b3,d4]@8 [a3,f4]@8 [g3,e4]@8 [a3,c4,f4]@24 [g3,c4,e4]@23 ~ [a3,c4,f4], ~@23 g4@24 ~@49, ~@31 c4@16 ~@49]/4", // Bm Dm C F C F
D: "[~@7 [a3,c4,f4]@8 [b3,d4,g4]@8 [g3,c4,e4]@24 [a3,d4,f4]@24 [b3,d4,g4]@24 [g3,c4,e4]@23 ~ [a3,c4,f4]@24 [a#3,c4,d4,f4]@48 [c4,d4,g4]]/8", // F G C Dm G C F A# …
E: "[~@23 [d3,g3,b3]@8 [f3,a3,c4]@8 [g3,b3,d4]@6 [e5,e6] ~ [g5,g6]@24 [g4,g5]@24 [d5,d6]@24 ~, ~@47 [f5,f6] ~@72]/5", // G F G E G D F
F: "[~@15 [a4,a5]@8 [e5,e6]@8 [c5,c6]@16 [g4,g5]@25]/3", // A E C G
G: "[~@7 [c4,c5]@8 [d4,d5]@6 [e5,e6]@2 [g5,g6]@40 [e5,e6]@2 [f5,f6]@2 [f#5,f#6]@2 [g5,g6]@2 [d5,d6]@88 ~@9, ~@23 [f5,f6]@2 ~@143]/7", // C D E G E F F# G …
H: "~@23 b4",
I: "[~@7 a4@8 g4@8 [f4,f5]@24 [e4,e5]@16 [c4,c5]@8 [a4,a5]@16 [b4,b5]@8 [g4,g5]@24 [d4,d5]@16 [e4,e5]@8 [d4,d5]@18 ~ [c4,c5]@2 ~ [d4,d5]@2 [e4,e5]]/7", // F E C A B G D E …
J: "[~@15 [c4,c5]@8 [c4,c5]@19 [d4,d5]@3 [e4,e5]@2 [f4,f5]@48 [g4,g5]@25]/5", // C D E F G
K: "[~@21 [e5,e6] ~ [g5,g6]@24 [g4,g5]@24 [d5,d6]@28 ~@21, ~@23 [f5,f6] ~@96]/5", // E G D F
L: "[~@15 [a4,a5]@8 [e5,e6]@8 [c5,c6]@16 [d5,d6]@25]/3", // A E C D
M: "[~@7 [c4,c5]@8 [d4,d5]@6 [e5,e6]@2 [g5,g6]@40 [e5,e6]@2 [f5,f6]@2 [f#5,f#6]@2 [g5,g6]@2 [d5,d6]@72 [b3,b4], ~@23 [f5,f6]@2 ~@119]/6", // C D E G E F F# G …
N: "[~@2 [c4,c5]@3 [d4,d5]@2 [d4,d5]@3 [e4,e5]@3 [f4,f5]@2 [f4,f5]@3 [g4,g5]@3 [g#4,g#5]@2 g5@8 ~@40 f4@25, ~@23 g4@48 ~@25, ~@31 a#5@65]/4", // C D E F G G#
O: "[~@15 [d#4,d#5]@5 ~ [d4,d5]@2 [a#3,a#4]@48 [g4,d5,g5,d6]@96 ~]/7", // D# D A# G5
P: "[~@23 [a4,a5]@16 ~ [b4,b5]@5 [f#5,f#6] ~ [a5,a6]@24 [a4,a5]@24 [e5,e6]@24 ~, ~@23 [g5,g6] ~@36]/5", // A B F# A E G
Q: "[~@15 [b4,b5]@8 [f#5,f#6]@8 [d5,d6]@16 [e5,e6]@31 ~ [d4,d5]@8 [e4,e5]@6 f#6@2 [a5,a6]@24 [a4,a5]@24 [e5,e6]@24 ~, ~@93 f#5 ~ [g5,g6]@2 ~@71]/7", // B F# D E D E A E …
R: "[~@15 [b4,b5]@8 [f#5,f#6]@8 [d5,d6]@16 [e5,e6]@31 ~ [d4,d5]@8 [e4,e5]@6 f#6@2 [a5,a6]@24 [a4,a5]@24 [e5,e6]@32 ~@17, ~@93 f#5 ~ [g5,g6]@2 ~@95]/8", // B F# D E D E A E …
S: "[~@15 [b4,b5]@8 [f#5,f#6]@8 [d5,d6]@16 [e5,e6]@88 ~@9]/6", // B F# D E
})).s("gm_string_ensemble_1").gain(0.21)
// chords · synth strings 1
const synth_strings_1 = note("<A@8 B@7 ~@19 A@8 C@6 D@8 E@3 F@7 G@6 H@4 C@6 I@8 J@6 K@8 L@24 M@6 N@4 ~@2>".pickRestart({
A: "[~@23 [f3,a3,c4,e4]@47 ~ [g3,b3,d4]@23 ~ [f3,a3,c4]@7 ~ [f3,a3,c4]@7 ~ [g3,b3,d4]@7 ~ [f3,a3,c4,e4]@47 ~ [g3,b3,d4]@23 ~ [f3,a3,c4]]/8", // Fmaj7 G F G Fmaj7 G F
B: "[~@7 [f3,a3,c4]@7 ~ [g3,b3,d4]@7 ~ [f3,a3,c4,e4]@24 [f3,a3,c4,e4]@23 ~ [g3,c4,d4]@23 ~ [g3,b3,d4]@23 ~ [g3,c4,d4]@23 ~ [g3,b3,d4]@23 ~@2]/7", // F G Fmaj7 Gsus4 G Gsus4 G
C: "[~@7 [f3,a3,c4]@7 ~ [g3,b3,d4]@7 ~ [f3,a3,c4,e4]@24 [f3,a3,c4,e4]@23 ~ [g3,c4,d4]@23 ~ [g3,b3,d4]@23 ~ [g3,c4,d4]@23 ~ [g3,b3,d4]]/6", // F G Fmaj7 Gsus4 G Gsus4 G
D: "[~@23 [a3,c4,f4]@24 [g3,c4,e4]@24 [a3,c4,f4]@15 ~ [b3,d4,g4]@8 [c4,e4]@16 [b3,d4]@8 e4@24 f4@24 [g3,c4,e4]@24 [b3,d4,g4], ~@95 g3@24 [a3,c4]@48 ~@25]/8", // F C F G C Bm C G …
E: "[~@7 [a3,c4,f4]@8 [g3,c4,e4]@8 [a3,c4,f4]@24 [g3,c4,e4]@24 [a3,c4,f4]]/3", // F C F C F
F: "[~@15 [b3,d4,g4]@8 [g3,c4,e4]@24 [a3,d4,f4]@24 [b3,d4,g4]@23 ~ [g3,c4,e4]@24 [a3,c4,f4]@24 [a#3,d4,f4]@25]/7", // G C Dm G C F A#
G: "[~@23 c4@24 b3@8 [a3,c4]@8 [b3,d4]@8 [f3,a3,c4,e4]@47 ~ [g3,b3,d4]@23 ~ [f3,a3,c4], ~@23 [g3,d4]@32 ~@89]/6", // Am Bm Fmaj7 G F G5
H: "[~@7 [f3,a3,c4]@7 ~ [g3,b3,d4]@7 ~ [f3,a3,c4,e4]@47 ~ [g3,b3,d4]@23 ~ [f3,a3,c4]]/4", // F G Fmaj7 G F
I: "[~@23 [g#3,c4,d#4,g4]@48 [a#3,d4,f4]@47 ~ [g#3,c4,d#4,g4]@48 [a3,c4,f4]@24 [b3,d4,g4]]/8", // G#maj7 A# G#maj7 F G
J: "[~@23 [a3,c4,f4]@24 [b3,d4,g4]@23 ~ [f3,a3,c4,e4]@47 ~ [g3,b3,d4]@23 ~ [f3,a3,c4]]/6", // F G Fmaj7 G F
K: "[~@7 [f3,a3,c4]@7 ~ [g3,b3,d4]@7 ~ [f3,a3,c4,e4]@47 ~ [g3,b3,d4]@23 ~ [g3,b3,d4]@7 ~ [g3,b3,d4]@7 ~ [a3,c#4,e4]@7 ~ [g3,b3,d4,f#4]@47 ~ [a3,c#4,e4]@23 ~ [g3,b3,d4]]/8", // F G Fmaj7 G A Gmaj7 A G
L: "[~@7 [g3,b3,d4]@7 ~ [a3,c#4,e4]@7 ~ [g3,b3,d4,f#4]@47 ~ [a3,c#4,e4]@23 ~ [g3,b3,d4]@7 ~ [g3,b3,d4]@7 ~ [a3,c#4,e4]@7 ~ [g3,b3,d4,f#4]@47 ~ [a3,c#4,e4]@23 ~ [g3,b3,d4]]/8", // G A Gmaj7 A G A Gmaj7 A …
M: "[~@7 [g3,b3,d4]@7 ~ [a3,c#4,e4]@7 ~ [g3,b3,d4,f#4]@47 ~ [a3,d4,e4]@23 ~ [a3,c#4,e4]@23 ~ [a3,d4,e4]@23 ~ [a3,c#4,e4]]/6", // G A Gmaj7 Asus4 A Asus4 A
N: "[~@23 [g3,b3,d4,f#4]@51 ~@22]/4", // Gmaj7
})).s("gm_synth_strings_1").gain(0.09)
// chords · vibraphone
const vibraphone = note(`<
~@56 A ~@14 B C D@2 E C D@2 F E G B ~@12 B C D@2 E H ~@2 I H J@2 K H ~@2 I H J@2 K H ~@2 I H J@2 K H ~@2 I H J@2 ~@4
L@5
>`.pickRestart({
A: "g4@3 c5@2 g4@3 f4@3 c5@2 f4@3 e4@7 ~", B: "[g4,b4,d5]@11 ~", C: "[f4,a4,c5]!2 [g4,b4,d5]", D: "[a4,c5,e5]",
E: "[g4,b4,d5]", F: "[g4,c5,d5]@23 ~", G: "[g4,c5,d5]", H: "[g4,b4,d5]!2 [a4,c#5,e5]", I: "[a4,c#5,e5]@11 ~",
J: "[b4,d5,f#5]", K: "[a4,c#5,e5]",
L: "[~@20 f#7@13 ~@7, [g3,f#4]@101 ~@19, b4@17 g5@14 d6@16 b6@48 ~@25, ~@8 d5@13 a5@15 e6@17 d7@47 ~@20, ~@13 e5@13 b5@15 f#6@48 ~@31]/5", // Gmaj7
})).s("gm_vibraphone").gain(0.17)
// chords · electric guitar muted
const electric_guitar_muted = note(`<
A B C ~ A B D@2 E F G@5 ~@7 H@3 ~@2 I J K L@5 B M@2 E B D@2 E F G@5 ~@4 N O@3 P Q P R@8 S B M@2 E B D@2 E F G@5 T@2 U
V W@6 X Y Z AA AB AC AD AE AF@3 AG@2 AH@2 AI@4 AG@2 AH@2 AI@4 AG@2 AH@2 AI@4 AG@2 AJ AK@4 ~@5
>`.pickRestart({
A: "~@23 d4", B: "e4@5 g4@8 ~@3 e4@3 f4@2 g4@3", C: "d4 ~@7 g4@16, e4@23 ~",
D: "[[e4,g4]@7 ~ [e4,g4]@7 ~ [e4,g4]@7 ~ [d4,g4]@24, ~@23 b3@24 ~]/2", E: "[a3,c4,g4]@8 [a3,c4,g4]@8 [b3,d4,g4]@7 d4",
F: "e4@5 g4@10 ~ e4@3 f4@2 g4@3",
G: "[[e4,g4]@7 ~ [e4,g4]@7 ~ [e4,g4]@6 ~@2 [d4,g4]@22 ~@2 [d4,g4]@23 ~@2 g4@21 ~@3 g4@22 ~, ~@22 g3@24 g3@24 ~ [g3,c4]@23 g3@25 ~, ~@23 c4@24 b3@24 ~ d4@23 b3@24 ~, ~@96 d4@23 ~]/5", // Em G5 C5
H: "[g4@8 g4@8 c4@5 ~@3 c4@21 ~@19 c4@8, ~@7 g3@8 g4@9, ~@2 c5]/3", I: "f4@7 e4", J: "d4@19 c4@2 d4@3", K: "e4@2 d4",
L: "[c4@19 d4@2 e4@2 ~@22 c4@2 ~@17 d4@5 ~@4 d4@6 ~@2 d4@5 ~@2 d4@7 ~ b3@7 ~@2 c4@6 ~@2 d4@5 ~ d4, ~@23 f3@23 ~ [f3,a#3]@7 f3@7 f3@8 ~@2 g3@7 ~ g3@7 g3@9 [d3,g3]@9 ~@16, ~@24 [a#3,c4,d4]@23 ~ c4@7 a#3@7 a#3@7 ~@34 f3@8 g3@6 ~@3, ~@43 f4@5 ~ d4@7 c4@7 c4@6 ~@3 c4@8 c4@7 c4@8 ~@9 a3@8 b3@6 ~@2, ~@57 d4@7 ~@56]/5", // A#5 G5 A#
M: "[e4@7 c4 d4@7 c4@7 ~@3 d4@23, d4 ~@14 b3 ~@7 g3@23 ~@2, ~@24 b3@23 ~]/2", N: "~@16 d4@3 e4@2 g4@3",
O: "[f4@15 ~ f4@7 ~ e4@12 ~@9 g3@12 ~@15, ~@23 [g3,c4]@14 f4@5 c4@5 ~@25, ~@39 e4@8 ~@25]/3", // C5
P: "c4@5 c4@2 ~@12 g3 ~ a3 ~@2", Q: "c4@5 c4@2 ~@9 d#4@3 d4@2 c4@3",
R: "[c4@5 c4@2 ~@9 d4@5 g4@2 ~@2 f4@7 ~@8 e4@6 ~@18 d4@7 ~ g4@21 ~@18 c4@6 ~@3 f4@8 ~@8 c4@5 ~@3 f4@8 ~@8 c4@5 ~@3 g4@6 ~@2 g4@6 ~ [d4,g4]@8 ~, ~@23 a3@23 g3@24 ~@23 a3@24 f3@24 f3@48 ~@3, ~@24 c4@23 b3@46 ~@3 a4@22 ~@10 f4@14 ~@10 f4@39 ~, ~@32 f4@15 ~ d4@15 ~@8 c4@22 c4@11 g4@14 ~ c4@17 ~@7 c4@17 ~@6 c4 d4@7 c4 d4@7 c4@9 ~, ~@56 g4@15 ~@24 f4@23 a#3@24 a#3@48 ~@2]/8", // G5
S: "[g3,b3]@8 [a3,c4]@8 [b3,d4]@7 d4", // G Am Bm
T: "[~@19 g#4@2 a#4@3 ~@16 d#4@7 ~, g4@17 ~@7 g4@23 ~, ~@5 a#4@14 ~@13 a#4@16, ~@2 d#4@7 ~@3]/2",
U: "f4@19 a#3@2 c4@3", V: "d#4 f4@6 ~",
W: "[~@19 g#4@2 a#4@3 ~@16 g4@7 ~@2 a4@22 ~@2 b4@19 ~@4 c5@21 ~@3 [b4,d5]@21 ~@3, g4@17 ~@7 g4@16 ~@8 f4@22 ~@25 [f4,a4]@21 ~@28, ~@5 a#4@14 ~@13 g#4@16 ~@24 g4@19 ~@28 g4@22 ~@3, ~@8 d#4@28 ~@11 c4@22 ~@2 d4@20 ~@2 c4@22 ~@3 d4@23 ~@3]/6", // Bm F
X: "e4@2 ~ a4@2 e4@3 a4@3 e4@2 a4@3 e4@3 a4@2 e4@3", Y: "a4@3 e4@2 a4@3 e4@3 a4@2 e4@3 a4@3 e4@2 a4@3",
Z: "g4@13 c5@3 b4@3 g4@2 d4@3", AA: "c4@15 ~ d4@8", AB: "e4@5 g4@8 ~@3 e4@3 g4@2 c5@3",
AC: "e4@5 f4@2 ~ d4@8 c4@7 ~, ~@7 e4@2 ~@15", AD: "b3@2 ~ c4@2 d4@10 ~ b3@3 d4@2 a4@3",
AE: "b3@3 d4@2 g4@3 b3@3 d4@2 g4@3 c#4@3 e4@2 a4@2 e4",
AF: "[f#4@5 a4@10 ~ f#4@3 g4@2 a4@2 ~ [d4,f#4]@7 ~ f#4@7 ~ f#4@7 ~@2 e4@23, ~@23 b3@8 [b3,d4]@8 [b3,d4]@8 a3@23 ~@2, ~@48 c#4@23 ~]/3", // D Bm
AG: "[[b3,d4,a4]@8 [b3,d4,a4]@8 [c#4,e4,a4]@7 ~ f#4@5 a4@10 ~ f#4@3 g4@2 a4@3, ~@23 e4@2 ~@23]/2", // Bm7 A
AH: "[[b3,d4,f#4]@8 [b3,d4,g4]@8 [b3,d4,f#4]@7 ~ [e4,a4]@24, ~@23 c#4@24 ~]/2", // Bm G Bm A5
AI: "[[b3,d4,a4]@8 [b3,d4,a4]@8 [c#4,e4,a4]@7 ~ f#4@5 a4@10 ~ f#4@3 g4@2 a4@2 ~ [d4,f#4]@7 ~ f#4@7 ~ f#4@7 ~@2 e4@23, ~@23 e4@2 ~@22 b3@8 [b3,d4]@8 [b3,d4]@8 a3@23 ~@2, ~@72 c#4@23 ~]/4", // Bm7 A D Bm
AJ: "[b3,d4,f#4] [b3,d4,g4] [b3,d4,f#4]", // Bm G Bm
AK: "[[d4,e4,a4]@22 ~@2 [e4,a4]@23 ~@2 a4@21 ~@3 a4@22 ~, ~@22 a3@24 ~ [a3,d4]@23 a3@25 ~, ~@23 c#4@24 ~ e4@23 c#4@24 ~, ~@72 e4@23 ~]/4", // Dsus2 A5 D5
})).s("gm_electric_guitar_muted").gain(0.21).pan(0.9)
// chords · piano
const piano = note(`<
~ A B C D E F C D E F G H I J K L M N O P Q R S T M U V W X Y Z@2 AA AB A B C D E F C D E F G H I J AC AD AE AF AG AH
AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ AW AX AY AZ BA BB BC BD BC BE BF BG BH BI BJ BK AZ BL BM BN AW
BO AY AZ BP BQ BR BS BT BU BV BW BX BY BZ CA BT BU BV BW CB CC CD CE CF CG CH BW CI CJ CK@2 CL CM BZ CN CO CP CQ CR CS
CT@6
>`.pickRestart({
A: "[d2,d3,f4,a4,c5,e5]", B: "[a4,c5,e5]@2 [f4,a4,c5,e5], [f2,f3,g5]", C: "[a2,a3,g4,b4,d5]",
D: "[g2,g3,f4,a4,c5]@8 [g2,g3,f4,a4,c5]@7 ~ [a2,a3,g4,b4,d5]@7 ~", E: "[f4,a4,c5,e5] [a4,c5,e5,g5]@2, [d2,d3]",
F: "[f2,f3,f4,a4,c5,e5]", G: "[g4,c5]@13 ~@3 c5@8, [g2,g3,d5,g5], ~@13 g4@10 ~",
H: "g5@3 ~ d5@2, [g2,g3,g4,b4], d5@2 ~, ~@13 g5@11", I: "[g2,g3,g4,c5,d5,g5]", J: "[g2,g3,g4,b4,d5,g5]@19 ~@5",
K: "[c2,c3]@7 [c2,c3], [a3,c4,f4]", L: "[c2,c3]@7 [c2,c3], [e3,g3,c4]",
M: "[a3,c4,f4]@8 [a3,c4,f4]@5 [c2,c3]@2 ~ [c2,c3,b3,d4,g4]@8, [c2,c3]@13 ~@11", // F C G C
N: "[c2,c3,g3,c4,e4]@2 [b1,b2,g3,b3,d4]", O: "[a1,a2,a3,c4,e4]", P: "c4@8 c4@15 ~, [f1,f2,a3,f4]@23 ~",
Q: "[g3,c4]@19 ~@2 c4@3, [c2,c3,e3], ~@19 g3@5", R: "[b3,g4,c5,g5] [a3,f4,c5,g5] [g3,e4,g4,c5], c3@7 ~",
S: "a3@16 ~@5 c2@2 ~, [c3,c4,f4], c2@7 ~, ~@2 a3", T: "g3@8 ~@8 c4@5 c3@2 ~, [c2,c3,e4]@23 ~, c4@2 ~, ~@8 g3@15 ~",
U: "g3@13 ~@6 d4@2 e4@3, c3, [c2,c4,e4]@2 [c2,c4], ~@13 g3@11", // C
V: "[a3,d4,f4]@16 ~@5 [d2,d3]@3, [d2,d3]@7 ~, ~@2 [a3,d4,f4]", W: "[g3,d4]@16 d4@3 c4@2 d4@3, [b1,b2], ~@2 g3",
X: "~@2 g4, [c3,g3,c4,e4]", Y: "c4@8 c4@8 c4@3 d4@2 e4@3, [a2,a3,g4], [f3,f4]@2 g3",
Z: "[f4@19 f4@5 f4@16 f4@7 ~, a#2@47 ~, [f3,a#3,c4,d4]@24 [a#3,c4,a#4,c5]@23 ~]/2", // A# A#sus2
AA: "g4@16 ~@5 g2@3, [c4,d4], g2@7 ~, ~@2 g4", // Csus2
AB: "~@13 g2@3 [g2,g3,b3,d4]@6 ~@2, d3@7 ~, [g3,b3]@2 ~, g2@13 ~@11, ~@8 [f3,a3,c4]@13 ~@3", // G F
AC: "c2@16 ~@5 [a3,c4,f4]@2 ~, c3, [a3,c4,f4]@7 ~, ~@2 c2", // F
AD: "[c2,c3]@13 ~@8 g4@3, e4, c4@19 c4@5, g3@2 g3, ~@13 [c2,c3]@11", // C
AE: "[a3,c4,f4]@8 ~@13 c2@2 ~, c3, c2@13 c2@8 ~@3, ~ [a3,c4,f4] [b3,d4,g4]", // F G
AF: "c2@13 c2@2 ~ d4@3 ~@2 d4@3, [c3,g3,c4,e4]@2 [b1,b2,g3], ~@19 g4@4 ~", AG: "a2@7 a2, [a1,a3,c4,e4]",
AH: "[a3,c4,f4]@7 [a3,c4,f4], [f1,f2]", AI: "g3@16 ~@5 c3@2 ~, [c2,c4,e4], c3@7 ~, ~@2 g3",
AJ: "[b3,d4,g4]@8 [a3,c4,f4,g4]@8 [g3,c4,e4,g4]@7 ~, [c2,c3]", AK: "[a3,c4,f4]@7 [a3,c4,f4], [c2,c3]",
AL: "g3@13 g3@3 [g3,c4,e4]@5 c3@2 ~, [c2,c3]@23 ~, [c4,e4]@2 ~", // C
AM: "[a3,c4,f4]@8 [a3,c4,f4]@7 ~ [b3,d4,g4]@8, [c2,c3]", AN: "[c2,c3,g3,c4,e4]",
AO: "[a3,f4]@2 [a3,c4,e4,f4], [d2,d3,d4]", AP: "d4@16 ~@5 d4@3, [b1,b2,g3,b3], ~@16 d4@5 ~@3, ~@19 c4@5",
AQ: "g3@13 ~@3 c4@8, [c2,c3,e4], c4@2 ~, ~@13 g3@10 ~", AR: "[c4,f4]@16 ~@3 d4@2 e4@3, [a1,a2,a3], ~@2 c4",
AS: "[a#1,a#2,f3,a#3,d4,f4]", AT: "c4@8 ~@8 d4@7 ~, [a#1,a#2,f3,a#3]@23 ~, ~@8 c4@15 ~",
AU: "[a3,c4,f4]@8 ~@8 [a3,c4,f4]@5 g1@2 ~, g2@23 ~, g1@13 g1@8 ~@3, ~ [a3,c4,f4] ~", // F
AV: "[g1,d3,g3,b3]@8 [f3,a3,c4]@5 ~@3 [g3,b3,d4]@6 ~@2, g2@11 ~, ~@13 g1@9 ~@2", AW: "[d2,f3,a3,c4,e4]",
AX: "[f2,f3,a3,c4,e4]", AY: "[a2,g3,b3,d4]", AZ: "[g2,f3,a3,c4]@8 [g2,f3,a3,c4]@7 ~ [a2,g3,b3,d4]@8",
BA: "f3@7 f3, [d2,a3,c4,e4]", BB: "e4@16 e4@7 ~, [f2,f3,a3,c4]@23 ~", BC: "[g2,g3,c4,d4]",
BD: "g3@13 ~@3 b3@8, [g2,d4], b3@2 ~, ~@13 g3@11", // G5
BE: "b3@11 ~@10 e4@2 ~, [g2,g3], d4@2 c4, ~@11 a3@13, ~@13 b3@6 d4@5", // G
BF: "~@2 g#2, [g3,c4,g4], g#2@2 ~, d#4 d#4@2, ~@5 a#4@19", BG: "d#4 ~ g4, [f2,d#3,a#4], g4@2 ~, ~ [c4,d#4]@2",
BH: "a#3@13 ~@3 d4@5 c3@2 ~, [c3,f4]@23 ~, d4@2 ~, ~@13 a#3@10 ~", // F5
BI: "[g3,a#3,d#4,f4]@8 ~@5 c3@3 [c3,g3,a#3,d4,f4]@8, c3@13 ~@11, ~@8 d#4@13 ~@3, ~ [g3,a#3,f4] ~", // D# Gm7
BJ: "~@21 [a#4,a#5]@2 ~, [g#2,d#3,c4,d#4,g4]@23 ~, ~@5 c5@18 ~, ~@8 d#5@15 ~, ~@19 [g#4,g#5]@5", // A# G#maj7 G#
BK: "~@2 [g4,c5,g5], [f2,c3,g#3], [g4,c5,g5]@2 ~, ~ [g#4,g#5]@2", // C5 Fm C5 G#
BL: "~@21 [d5,g5,b5]@2 ~, [g2,g3,b3,d4,g4], ~@5 b4@18 ~, ~@19 [c5,f5,a5]@5", // G F
BM: "[f5,a5,c6]@5 [f5,a5]@11 ~@5 [f5,a5,c6]@3, g2, g1@2 [g1,c5], ~@5 c6@14 [d5,g5,b5]@5, ~@16 [f5,a5]@5 ~@3", // F C5 G F
BN: "~@8 [g4,b4,d5,g5]@3 ~, g2@11 ~, [d5,g5,b5]@3 ~, g1@13 g1@9 ~@2, ~@4 [a4,c5,f5,a5]@5 ~@3", // G F
BO: "f3@13 ~@8 f2@3, [c4,e4], f2@7 ~, a3@2 a3, ~@13 f3@11", BP: "f3@13 ~@8 d3@2 ~, [d2,c4,e4], a3@2 a3, ~@13 f3@10 ~",
BQ: "[c4,e4,g4] ~ [c4,e4], [f2,a3], ~ [d4,f4]@2", BR: "~@11 d4@13, [a2,b3,g4], d4@5 ~@7, ~@5 a4@18 ~",
BS: "b3 ~@4 d4@3 [a2,b3,d4,g4]@7 ~ [b2,a3,c#4,e4,a4]@6 ~@2, [a2,g4] ~@2, d4@5 ~@19, ~@3 b3@5 ~@16", // G A A7
BT: "[g3,b3,d4]@8 [g3,b3,d4]@13 e2@2 ~, [e2,f#4]@23 ~", // G Esus2
BU: "[b3,d4]@8 [b3,d4]@8 [b3,d4,f#4]@5 g2@2 ~, g2@7 ~, f#4@2 ~, ~@8 g4@15 ~", // Bm
BV: "a3@13 ~@8 b2@2 ~, e4, b2@7 ~, c#4@2 c#4, ~@13 a3@10 ~",
BW: "[a2,g3,b3,d4]@8 [a2,g3,b3,d4]@7 ~ [b2,a3,c#4,e4]@7 ~", // G A
BX: "[g3,b3,d4]@8 ~@8 e3@5 g3@2 ~, [e2,f#4]@23 ~, ~@8 [g3,b3,d4]@15 ~", // G Esus2 G
BY: "[g3,b3,d4]@8 [g3,b3,d4]@8 ~@5 g2@2 ~, g2@7 ~, f#4@2 [g3,b3,d4,f#4], ~ g4@2", // G Gmaj7
BZ: "a3@13 a3@3 [a3,c#4,e4]@5 b2@2 ~, b2@7 ~, [c#4,e4]@2 ~", // A C#m
CA: "[a2,g3,b3,d4]@8 ~@8 [b2,a3,c#4,e4]@7 ~, ~@8 [a2,g3,b3,d4]@15 ~", CB: "[g3,b3,d4] ~ e3, [e2,f#4], ~ [g3,b3,d4]@2",
CC: "[g3,b3,d4]@8 [g3,b3,d4]@15 ~, [g2,f#4]@23 ~", // G Gmaj7
CD: "a3@5 ~@11 [a3,c#4,c#5]@8, [b2,e4]@23 ~, c#4@11 [b3,b4]@13, ~@5 a4@18 ~, ~@5 a3@11 ~@8", // A E5 B
CE: "~@2 [a4,a5], [a2,g3,b3,d4,d5], ~@5 [e4,e5]@18 ~, ~@11 [f#4,f#5]@13", // A G E F#
CF: "g3@13 ~@8 e2@3, [d4,f#4], e2@7 ~, b3@2 b3, ~@13 g3@11", // D
CG: "[g3,b3,d4,f#4]@16 ~@5 g2@3, g2@7 ~, ~@2 [g3,b3,d4,f#4]", // Gmaj7
CH: "~@21 b2@2 ~, [a3,c#4], b2@7 ~, e4@2 e4, ~@13 a4@10 ~", CI: "[g3,b3,d4,f#4] ~ e2, e2@2 ~, ~ [b3,d4,f#4,a4]@2",
CJ: "[g3,b3,d4] ~ g2, f#4, g2@2 ~, ~ [g3,b3,d4]@2", // G
CK: "[~@45 c#5@2 ~, [b2,a3,c#4]@37 g4@3 a4@3 b4@5, e4@2 e4, ~ [a2,g3,b3,d4], ~@35 f#4@13]/2", // F#m G
CL: "[d4,g4,b4]@16 ~@5 e3@2 ~, [e2,d5], ~@2 [d4,g4,b4]", CM: "[g3,b3,d4]@16 ~@5 g2@3, f#4, g2@7 ~, ~@2 [g3,b3,d4]",
CN: "[g3,b3,d4]@8 [g3,b3,d4]@7 ~ [b2,a3,c#4,e4]@7 ~, a2@5 ~@3", // G A
CO: "[b3,d4,f#4]@8 ~@8 e3@5 g3@2 ~, [e2,g3]@23 ~, ~@8 [b3,d4,f#4,a4]@15 ~", // Bm Em Bm7
CP: "[g3,b3,d4] ~ f#4, g2, f#4@2 ~, ~ [g3,b3,d4]@2", CQ: "[a4,e5]@13 ~@3 d5@8, [a2,a3,a5], d5@2 ~, ~@13 a4@10 ~",
CR: "a5@3 ~ e5@2, [a2,a3,a4,c#5], e5@2 ~, ~@13 a5@11", CS: "[a2,a3,a4,d5,e5,a5]",
CT: "[[a2,a3,a4,c#5,e5,a5]@19 ~@17 g5@2 ~ g5@2 ~@12 a4@2 e4 e4@2 ~@29 e1@48 ~@9, ~@23 e2@10 e6@11 d5 e5@13 g4@6 a3 g3 a3@5 b2@7 d2@48 ~@18, ~@24 b2@7 d6@10 e5@2 g5@10 g4@2 a4@8 b3@7 d3@6 e2@9 g1@48 ~@11, ~@24 a5@5 f#6@9 a5@12 a4 b4@10 b3 e4@6 e3@6 g2@8 a1@48 ~@14, ~@24 d6 [f#3,a6]@10 b5@11 d5 b4 a4 d5@10 e4 d4@7 g3@6 a2@7 b1@48 ~@16]/6", // A F#m
})).s("gm_piano").gain(0.29)
// bass · epiano1
const bass = note(`<
~ A B C D A B C D A E F G H I J K L M N O P Q R S T U V W X Y Z AA H I AB AC Y AD AB O AE AD AB AF AG AH AI AJ R AK AL
M AM O L Q AL AN AO AP V W AQ Y AR AS F AT AB AC Y AD AB AC AE AD AB AF H AU AV AW AX O AY AZ BA AF F BB BC BD AB AC Y
AD BE AC BF BG BH BI W BJ BK BL BM BJ BN BI BO BJ BP BI BQ BJ BR BS BQ BT BU BS BV BW BX BI BO BJ BP BY BZ CA CB CC
CD@3 ~@2
>`.pickRestart({
A: "d1@17 ~@2 d1 ~ e1 ~@2", B: "f1@19 ~@2 g1@3", C: "a1@17 ~@4 a1@2 ~", D: "g1@7 ~ g1@7 ~ f1@7 ~",
// … 187 more lines
More by Curtis Stigers
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.