0:00/0:00
// Goodnight My Love — The McGuire Sisters
// 64 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 8 "MUTED GTR" named as a guitar, played on electric guitar muted (its muted trumpet patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 43 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(64/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 2"
const piano = note(`<
A B C D E F@2 G H I J@2 K L M@2 N O P Q R S T U V W@2 X Y Z AA AB AC AD@3 AE@2 AF AG AH@3
>`.pickRestart({
A: "~@5 [g2,d3,g3,b3,d4]", B: "[ab2,eb3,c4,eb4]", C: "~ eb4@11, [ab2,eb3,ab3,c4,f4]",
D: "[ab2,eb3,ab3,c4,eb4,f4] [a2,a3,c4,eb4]", // Fm7 Adim
E: "f4@3 ~ bb2@2 [eb2,ab3,bb3,db4]@3 [eb2,eb3,g3,bb3,db4,eb4]@3, [ab3,bb3,db4] ~, bb2 ~@2, ~ f4@2 ~", // Ebsus4 Eb7 Bbm7
F: "[bb2,ab3,bb3,db4,f4] [eb2,eb3,g3,bb3,db4,eb4]", G: "[ab3,bb3,db4,f4] [g3,bb3,db4,eb4], bb2 ~ eb2 ~",
H: "[ab2,eb3,ab3,c4,eb4,g4]@12 [ab2,ab3,c4,eb4]@4 [a2,a3]@2 [bb3,db4,f4] ~ [b2,gb3,b3,d4]@4, ~@16 [c4,e4] ~ bb2@2 ~@4", // Abmaj7 Ab A Bbm Bm C
I: "~@11 g4, [c4,eb4], c3@5 c3, g3@2 g3, ~@6 g4@5 ~", // Cm
J: "[ab3@6 ~@5 d4 [bb2,ab3,db4]@6 eb3@4 ~ eb4, f4@11 f4@7 eb4@5 ~, b2@3 b2 ~@2 [eb2,g3,bb3,db4]@2, ~@3 ab3@2 ab3 ~@5 eb3]/2", // Bbm7 Eb7
K: "~ [eb3,gb3] [f2,eb3,f3,a3,c4] [a2,f3,a3,c4], eb4@3 ~, [gb2,bb3] ~", L: "~@11 f4, [bb2,ab3,c4], f4@11 ~, ~@3 bb3",
M: "[~ c4@5 ~@6 bb2@8 ~@2 f4@2, [ab3,d4,g4]@4 ab3@3 ab3, bb2@5 bb2 ~@4 bb2@2, ~ c4 [c4,db4]@2, ~@6 f4@5 f4@11 ~@2]/2", // G Dbmaj7
N: "~@4 e3@2 [eb2,g3,c4,f4]@3 [eb2,g3,bb3,db4,e4]@3, [e2,ab3,b3,d4,gb4] ~", // Cm Eb7 E7
O: "[ab2,eb3,g3,ab3,c4,eb4] [ab2,eb3,ab3,c4,eb4,f4]", // Abmaj7 Fm7
P: "[ab3,c4,f4]@3 ~ eb4@2 [ab3,c4,eb4,f4]@3 [ab3,c4,eb4,f4]@3, [ab2,eb3]!2, ~ [ab3,c4,f4] ~@2", // Fm Fm7 Ab5 Fm
Q: "[ab3,c4,eb4,f4]@3 [ab3,c4,eb4,f4]@3 eb4@4 ~ a3, [ab2,eb3] [a2,c4], ~@6 a3@5 ~, ~@5 eb4", // Fm7 Ab5 Am
R: "~@3 [bb3,db4]@3 ~@5 eb4, [bb2,f4] [eb2,bb3], ~ ab3@5 eb4@4 g3@2, ~@2 g3 eb3, ~@7 db4@5", // Bbm Bb5 Eb5
S: "~@2 db4@4 ~@5 eb4, [bb2,ab3,f4] eb2, ~ bb3@5 eb4@4 g3@2, ~@2 g3 eb3, ~@7 bb3@5", // Bb7
T: "~@5 f4 g3 ~ [g3,bb3,db4]@4, [ab3,db4]@6 ~ eb3@5, bb2@2 bb2 [eb2,eb4]@3, ~ bb3@5 ~@6, ~ f4@4 ~@7", // Gdim Db5 Eb
U: "~@2 [bb3,db4]@4 eb3@3 ~@2 eb4, bb2@12 [eb2,eb4]@11 ~, ~ [ab3,f4]@5 [g3,bb3,db4]@4 [g3,bb3,db4]@2, ~@3 eb3", // Bbm Eb Db Gdim
V: "~@2 [ab3,c4,f4] [e2,e3,ab3,b3,d4,e4], f2@3 ~, [c3,ab3,c4,f4] ~, ~ eb4 ~@2, ~@5 f3@4 ~@3", // Fm E7 Fm
W: "[~@12 f4@4 ~ bb5 bb4@3 [c4,a4]@3, [gb3,bb3,db4,eb4]@2 [gb3,bb3,c4] [gb3,bb3], ~@9 bb5@8 ~@7, ~@8 f4 ~@3]/2", // F Ebm7 Cm7b5 Gb
X: "~@3 db5, [f3,ab3,bb3,db4,ab4], ~@7 ab5@5", Y: "~@4 ab4@2 ~@3 gb4@3, [ab3,eb4,e4] [gb3,bb3,e4,bb4], ~ eb5@5",
Z: "~@3 eb4@2 eb4, [g3,ab3,c4,eb4,f5] [f3,ab3,c4], ~ eb5@5", // Fm7 Fm
AA: "~ ab4 ~ eb5@3, db3, ~ ab3@11, ~ [b3,eb4]@5, ~ bb4@2", AB: "~@11 eb6, [gb3,bb3,ab4,eb5], e4@5 e4, ~ ab5",
AC: "~ eb4@3 ~@3 f3@2 f3 [eb4,a4,gb5]@2, f3@5 ab5@5 ~@2, ~ [db5,eb5]@9 ~@2, ~ a4@6 a4@3 ~@2, ~ ab5@3 eb4@6 ~@2", // Ebdim Dbsus2
AD: "[db5@8 ~@12 [c4,db4]@4 ~@8 c5@6 [g3,c4,db4,f4,bb4,eb5]@6 f4@2 ~@2 [gb3,bb3,c4,eb4,gb4,c5]@8 [gb3,bb3,c4,eb4,gb4,bb4,eb5] ~@3 [gb3,bb3,c4,eb4,bb4,c5,gb5]@4 [bb3,c4,c5,gb5] ~@3 [gb3,bb3,c4,eb4,bb4,c5,gb5]@4, [ab3,f5]@8 c6@11 ~@17, [c4,db4]@7 [f4,bb5]@5 [g3,c4,db4,f4]@7 ~@3 [g3,c4,db4]@2 ~@12, f4@5 c5@7 ~@11 [bb4,eb5]@5 ~@8, ~@4 db5@8 ~@2 bb5@5 ~@17]/3", // Dbmaj7 Gm7b5 Cm7b5 Db Dbmaj7 Bb5 Csus4 C …
AE: "[~@8 [g4,c5]@4 [f3,eb4,g4]@4 eb4@4 ~@4 [ab3,c4,db4,f4,c5,db5]@4 [ab3,c4,db4,f4,c5,db5,f5] ~@3 [ab3,c4,db4,f4,c5,f5,c6] ~@3 f4@8 ~@2 c6@2, [a4,d5,g5]@4 ~ eb4 ~@5 f4, [f3,eb4] c5 ~@2, ~@2 [c4,f5]@2 [f3,c4,g4,a4]@2 ~@3 [ab3,c4,db4,c5,f5]@3, ~@11 f5@3 ~@4 c6@5 ~]/2", // C5 Cm Dbmaj7 Dsus4 F7 F5 F Dbmaj7
AF: "[f4,g5]@4 ~@5 [g3,c4,db4,f4,c5]@3, [g3,c4,db4,c5]@3 ~, ~ g5@2, ~@4 f4@5 ~@3, ~@5 f5@7", // Fsus2 Csus4 C
AG: "[ab3,gb4,ab4,c5,eb5]@3 ~@9 [ab3,f4,ab4,bb4,eb5]@11 ~", // Ab7 Absus2
AH: "[[eb3,f4,ab4,bb4,db5]@10 ~@20 bb6@23 ~@19, ~@10 [ab3,g4,ab4,c5]@43 ~@19, ~@15 eb5@38 ~@19, ~@18 g5@35 ~@19, ~@21 bb5@4 eb6@27 ~@20]/3", // Bbm7 Abmaj7
})).s("gm_piano").gain(0.38).pan(0.4)
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
A B C D E F G H I J K F L M N O P Q R S T U@2 V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM@2 ~
>`.pickRestart({
A: "~@5 g1", B: "ab1@12 ab1@11 ~", C: "ab1@11 ~ ab1@10 g1@2", D: "ab1 a1", E: "bb1@6 eb1@5 f2", F: "bb1 eb1",
G: "bb1@12 eb1@9 ~ f2@2", H: "bb1@6 eb1@5 g2", I: "ab2@6 ab1@2 a1 bb1 b1@2", J: "c2@10 ~@2 c2@9 ~ c2@2",
K: "b1@11 ~ b1@10 b1@2", L: "gb1@12 f1@6 a1@5 ~", M: "bb1@11 ~ bb1@11 ~", N: "bb1@6 bb1@5 f2", O: "bb1@11 ~ bb1@12",
P: "e1@6 eb1@4 bb1 a1", Q: "ab1@11 ~ ab1@9 ~ g1@2", R: "ab1@11 ~ ab1@8 ~@2 g1@2", S: "ab1@12 a1@11 ~",
T: "bb1@4 db2 eb2 eb1@6", U: "bb1@9 ~ bb1@2 eb2@10 f2@2", V: "bb1@9 ~ bb1@2 eb2@7 ~ eb2@2 e2@2",
W: "f2@9 ~ e2@2 f2@4 a1@2 e2@4 a1@2", X: "eb2@6 eb2@5 ~ eb2@5 ~ eb2@4 gb2@2", Y: "ab2@3 eb2@3 ab1@2 eb2 ab2@2 eb2",
Z: "db2@6 ab2@6 db3@5 ~ db3@2 ab2@2 f2@2", AA: "db2@6 ab2@5 ~ gb2@5 ~ gb2 ~ gb2@2 g2@2",
AB: "ab2@5 ~ ab2@3 ~ eb2@2 ab1@4 ab2@2 eb2@4 d2@2", AC: "db2@6 db3@6 ab2@4 f2@2 db2@5 ~",
AD: "gb2@6 db2@6 gb1@5 ~ gb1@4 e1@2", AE: "f1@5 ~ f1@4 c2@4 f2@2 c2@2 f1@2 ab1@2 c2@2",
AF: "bb1@5 ~ bb1@4 c2@2 db2@6 d2@6", AG: "eb2@6 bb2@6 g2@4 eb2@2 d2@3 ~ db2@2", AH: "c2@3 d2@3 eb2@2 c2 gb2@2 c2",
AI: "f2@6 c2@5 ~ a1@6 f1@4 a1@2", AJ: "bb1 c2 db2 bb1", AK: "eb2@4 eb2@5 ~ bb1@2 eb2@3 ~ eb2@5 ~@3",
AL: "ab1@7 ~@3 ab1 ~ ab1@7 ~@3 ab1@2", AM: "[eb1@8 ~@2 ab1@33 ~@5]/2",
})).s("gm_acoustic_bass").gain(0.33)
// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
~ A@2 B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM@3
>`.pickRestart({
A: "[[c4,g4] ~@5 [c4,eb4]@3 ~@2 f3 [f3,ab3,eb4]@3 f3@2 ~ [ab3,eb4]@3 [ab3,eb4]@3, ~ ab3@2 [ab3,eb4] ~ [ab3,eb4] ~@2, ~ [c4,eb4] ~ c4@2 c4@3, ~@5 f3@6 ~@6 f3@7]/2", // C5 Cm Fm7 Ab5 Cm
B: "[ab3,eb4]@6 [ab3,eb4]@6 [c4,eb4]@6 [c4,eb4]@5 ~, ~@12 a3@11 ~", // Ab5 Cm
C: "[bb3,f4]@3 [bb3,f4]@3 ~@2 ab3 [bb3,eb4]@3, ~@2 [bb3,f4] ~", D: "f4 [bb3,f4] ~ db4, ab3 ~@11 [bb3,eb4]@12",
E: "[bb3,f4] [ab3,bb3,f4] bb3 [bb3,db4], ~ eb4", F: "[ab3,db4]!2 [bb3,eb4] [g3,bb3,eb4]",
G: "[ab3,eb4]@6 [ab3,eb4]@6 ~@4 [a3,c4]@2 [bb3,db4]@2 [b3,d4]@3 ~, g3@2 [ab3,eb4] ~", // Ab5 Am Bbm Bm Ab5
H: "c4 ~ eb4!2, eb4 ~, ~ [c4,g4]@2 ~", I: "[ab3,b3,d4] d4@2 [b3,d4], ~ ab3@3",
J: "[ab3,db4]@3 [ab3,db4]@3 [bb3,eb4]@3 ~@2 g3, ~@3 [bb3,eb4]", // Db5 Eb5
K: "[bb3,eb4] [gb3,bb3,eb4] [a3,eb4] [a3,c4], gb3 ~@11", // Eb5 Ebm Adim Am
L: "[ab3,d4]@3 [ab3,d4]@3 ~ f4@2 [d4,f4]@3, ~@12 [ab3,d4]@6 ab3 ~@5", // Abdim Dm Abdim
M: "[c4,f4]@6 ~@4 ab3@2 [c4,f4]@6 [ab3,c4,f4]@5 ~, ~ [c4,f4] ~@2", N: "[ab3,db4,f4]!2 [ab3,db4]!2, ~ f4",
O: "[ab3,b3,d4] [ab3,d4] [g3,bb3,db4] [bb3,db4,e4]", // Abdim Gdim Bbdim
P: "[ab3,eb4]@3 [ab3,eb4]@3 f3@2 ~@3 f3, ~ c4, ~@2 ab3 [ab3,eb4], ~@8 f3@3 ~", // Ab5
Q: "[ab3,eb4]@3 [ab3,eb4]@3 ~@2 f3 [f3,ab3,eb4]@3, f3@2 ~, ~@2 [ab3,eb4] ~", // Ab5 Fm7 Ab5
R: "[ab3,eb4]@6 [ab3,eb4]@6 [c4,eb4]@6 [c4,eb4]@5 ~, f3 ~@11 a3@11 ~", // Ab5 Cm
S: "[bb3,f4]@3 [ab3,bb3,f4]@3 [bb3,db4,eb4]@3 ~@2 g3, ~@3 [bb3,db4,eb4]", // Bb5 Bb7 Eb7
T: "[ab3,bb3,f4] [bb3,f4] [bb3,eb4] [bb3,db4,eb4], ~@6 ab3 ~@17", // Bb7 Bb5 Eb5 Eb7
U: "~@4 ab3@2 ab3 ~ ab3@4 [bb3,db4,eb4]@6 ~@4 g3@2, [bb3,f4]!2 ~ eb4", // Eb7 Bb5
V: "ab3@2 ab3 ~@2 ab3 [bb3,eb4]@3 [bb3,db4,eb4]@3, f4@6 [bb3,f4]@6 ~@6 g3 ~@5", // Eb5 Eb7 Bb5
W: "[ab3,f4] [ab3,c4] [ab3,f4] [b3,d4]", // Db Ab Db Bm
X: "[bb3,eb4]@2 gb3@2 ~@2 [bb3,eb4]@5 ~ [bb3,eb4]@4 ~@2 [bb3,eb4]@4 ~@2, ~@6 gb3 ~@5 gb3 ~@5 gb3 ~@5", // Eb5
Y: "[bb3,c4,f4]@3 ~@3 [bb3,f4]@4 ~@2 [gb3,bb3,c4,f4]@3 ~@3 [a3,c4,eb4]@4 ~@2, gb3 ~@5 c4@2 ~@16, ~@6 gb3 ~@17", // Bbsus2 Bb5 Gbmaj7 Adim
Z: "[f3,bb3,eb4]@2 ~@4 [f3,bb3,eb4] ~@5 [f3,ab3]@2 ~@2 f3 ~ [ab3,bb3]@4 f3 ~, ~@6 bb3@2 ~ f3 ~@2", // Ebsus2 Fm Absus2
AA: "[ab3,b3]@3 ~@3 [ab3,b3]@4 ~@2 [gb3,bb3]@3 ~@3 [gb3,bb3]@3 ~@3, e3 ~@23", // Abm Gb
AB: "[ab3,c4]@4 ~@2 ab3@4 g3 ~ [f3,ab3]@6 [ab3,c4]@6, g3@3 ~ g3@4 ~@16, ~ c4@2 ~", // Ab Fm Ab
AC: "~@3 [ab3,db4], db4@3 ~, ~@2 ab3@7 ~@3, ~ f4", // Db5
AD: "e4@6 [gb3,bb3,e4]@6 [gb3,bb3,e4]@6 [gb3,bb3,e4]@5 ~, bb3 ~@5, gb3 ~@23", AE: "[a3,eb4] [a3,eb4]@2 [a3,eb4]",
AF: "[ab3,db4,f4] ~@5 db4@3 ~ f3 ~ c4@2 ~@4 [ab3,db4]@4 f3 ~, ~@6 ab3@8 ~@4 f3 ~@5", // Db Db5
AG: "db4@5 ~ [bb3,db4]@5 ~ db4@4 g3 ~ g3 ~@3 g3@2, g3@2 ~@10 bb3@3 ~@3 [bb3,db4]@6", // Bbm
AH: "gb3@4 ~@2 [bb3,c4,eb4]@6 [bb3,c4]@6 [bb3,c4]@5 ~, [bb3,c4] ~@3, ~@4 gb3@8 gb3@2 ~@4 gb3 ~@5", // Cm7 Bbsus2
AI: "[a3,c4]@6 [a3,c4]@6 [a3,c4]@6 [a3,eb4]@5 ~, ~@12 f3 ~@11", // Am Adim
AJ: "[ab3,db4]@2 ~@4 db4@4 ab3 ~ [db4,f4]@6 [ab3,db4,f4]@6, ~@6 ab3@2 ~@4 ab3 ~@11", // Db5 Db
AK: "[g3,db4,f4]@3 g3 ~ g3 [g3,db4,f4]@3 [g3,db4,f4]@3, ~ db4 ~@2", AL: "[gb3,c4,eb4] ~ [f3,ab3,bb3,db4]@2",
AM: "[[f3,bb3,db4]@9 ~ [g3,ab3,eb4]@43 ~@19]/3", // Bbm Abmaj7
})).s("gm_acoustic_guitar_nylon").gain(0.2).pan(0.7)
// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<~@28 [~@4 ab3 a3 bb3@3 ~@2 bb3] [c4@7 ~@17] ~@13>")
.s("gm_acoustic_guitar_steel").gain(0.28).pan(0.4)
// chords · vibraphone
const vibraphone = note("<A B@3 C D E F G H I J K L M N O P@2 Q R S T U V ~@18>".pickRestart({
A: "~@5 [g5,d6]", // G5
B: "[~@48 [ab5,f6]@7 ~ f6@4 [a5,eb6]@12, ab5@2 ~, eb6@24 eb6@31 ~@17, ~@9 f6@3 ~@7 f6@5 ~@12, ~@22 c6@20 c6@13 ~@17]/3", // Db Adim
C: "~@2 f6@2 f5 gb5 g5@6, ab5 ~@2", D: "ab5@4 ~ f6 ~ bb5@5, db6 eb6, ~@2 ab5 ~@3",
E: "~@2 db6@2 f5 gb5 ~@2 db6@4, [ab5,f6]@2 ~ g5@3", F: "f6@5 f6 ~@2 db6@4, ab5@3 eb6 ~@2, ~@7 g5@5",
G: "~@4 g5@8 [c5,eb5]@3 ~ [c5,e5]@2 [db5,f5]@2 [b4,d5]@4, [eb5,c6] ~", H: "~@2 g5, c5",
I: "f5@7 ~ ab4@4, ~@7 [d5,f5]@5", J: "~@16 bb4@7 ~, db5@12 ~@2 db5@9 ~, ~@2 bb4 ~@3, ~@10 eb5@13 ~",
K: "~@2 gb4@4 ~@3 a4@3, ~ [bb4,e5]@5 eb5@3 ~@3, ~@7 c5@5", L: "~@2 [d6,f6], ~ [ab4,d5]@11, ~@7 bb5@5",
M: "~@7 f5@5, [ab4,d5,g5]", N: "c5@7 ~@2 ab4@3, ~@7 db5@5", O: "e5@2 eb5 ~",
P: "[~@3 [eb5,c6]@6 f5@9 ~@2 bb5@4, ~ g5@8 ~@9 [f5,c6]@6, ~@2 bb5@7 ~@15]/2", // Cm F5
Q: "c5 ~ c5, [ab4,f5]@12 a4@11 ~, ~@2 c5 ~@3, ~@5 eb5@7", R: "f5 ~@7 f5@4 eb5@12, ~ bb4@5 ~@6, ~ f5@3 ~@8, ~ db5 ~@2",
S: "~@2 ab5 eb5 eb5@2, f5 ~, ~ bb5@3", T: "~@8 f5@2 gb5@2 g5@11 ~", U: "bb5@4 f4 gb4 ~@2 db5@4, ~ g4, ~@7 bb4@5",
V: "~@6 f5@11 ~@7, [ab4,c5]@17 ~@7", // Ab
})).s("gm_vibraphone").gain(0.2).pan(0.6)
// chords · vibraphone · soft notes
const vibraphone_soft = note("<~@2 A@2 B ~@11 C ~@3 D E F ~@20>".pickRestart({
A: "[bb6@31 ~@17, f6@7 ~@17]/2", B: "f6 ~@5", C: "~ ab4@5 ~@6", D: "~@7 bb4@5", E: "ab4 ~, bb4 ~@11",
F: "~@4 bb5@5 ~@15",
})).s("gm_vibraphone").gain(0.12).pan(0.6)
// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note("<~@40 A@2 ~>".pickRestart({
A: "[ab4@5 g4@16 ~@3, g4 ~@47]/2",
})).s("gm_electric_guitar_muted").gain(0.44)
// other · alto sax
const alto_sax = note("<~@39 A B@2 ~>".pickRestart({
A: "~@10 eb4@2 gb4@3 ~ f4@2 db4@3 ~ f3@2", B: "[gb3@5 db3@16 ~@3]/2",
})).s("gm_alto_sax").gain(0.38).pan(0.6)
// other · alto sax
const alto_sax_2 = note("<~@39 A B@2 ~>".pickRestart({
A: "~@10 eb4@2 gb4@3 ~ f4@2 db4@3 ~ f3@2", B: "[gb3@9 ~ c4@32 ~@6]/2",
})).s("gm_alto_sax").gain(0.38).pan(0.3)
// drums · kick
const kick = s("bd").struct("<~@9 A@3 B C D B D B@3 C A C A B@2 C B C@2 B E F C F@2 G F H I J K ~>".pickRestart({
A: "x", B: "x ~@10 x", C: "x ~@9 x!2", D: "x ~@4 x", E: "x ~@4 x!2 ~@3 x!2", F: "x ~@5 x ~@4 x", G: "x ~@5 x ~@3 x!2",
H: "x ~@8 x ~ x", I: "x!2", J: "x ~@4 x ~@6", K: "~@17 x ~@6",
})).gain(0.38)
// drums · snare
const snare = s("sd").struct(`<
~ A@3 B A@4 C A C D E F G H I J K L M N K O P Q E R G N M S T U M V G W X Y Z ~
>`.pickRestart({
A: "~ x ~ x", B: "~@3 x ~@5 x!2 ~", C: "~@3 x ~@5 x!3", D: "~@3 x ~@3 x ~ x ~ x", E: "~ x!3",
F: "x ~@2 x ~@2 x ~ x!2 ~ x", G: "x ~@2 x ~@2 x ~@2 x!3", H: "~@3 x ~@2 x!2 ~ x ~ x", I: "~@3 x ~@2 x!2 ~ x ~@2",
J: "~@3 x ~@2 x!6", K: "x ~@2 x ~@5 x!3", L: "~@3 x ~@3 x!4 ~", M: "x!4", N: "x ~@2 x ~@2 x ~@2 x!2 ~",
O: "x!4 ~@2 x ~@2 x!2 ~", P: "x!2 ~ x ~@5 x!3", Q: "x ~@2 x ~@2 x!2 ~ x ~ x", R: "x!2 ~ x!2 ~ x!4 ~@2",
S: "x ~@2 x!8 ~", T: "x ~@5 x ~@5 x ~@5 x ~ x!3 ~", U: "x ~@2 x ~@2 x!6", V: "x!2 ~ x ~ x!3 ~ x!3",
W: "x ~@2 x ~@4 x!4", X: "~@3 x ~@3 x!5", Y: "~@3 x!2 ~@7", Z: "~@17 x ~@6",
})).gain(0.44)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@8 A@2 B A B C D E F ~ G H A D ~ I ~ J ~ G ~@4 K ~@5 J ~@2 L ~>".pickRestart({
A: "x ~ x!2", B: "x!4", C: "x!2 ~ x", D: "~ x ~ x", E: "~@3 x", F: "x ~@2 x", G: "x", H: "~ x!2 ~", I: "~@2 x!2",
J: "~ x", K: "~ x ~@2", L: "~@2 x",
})).gain(0.27)
// drums · ride
const ride = s("rd").struct("<~ A@2 B@2 A@3 C B A B D B@12 E A F G H A E I E J K B L M N O P ~>".pickRestart({
A: "x ~@2 x ~@2 x ~@2 x ~ x", B: "x ~@2 x ~ x!2 ~@2 x ~ x", C: "x ~@2 x ~ x!2 ~ x ~@2 x",
D: "x ~@2 x ~ x!2 ~ x!2 ~ x", E: "x!4", F: "x ~@2 x ~@2 x ~ x!2 ~@2", G: "x ~@2 x ~@2 x!3 ~ x!2", H: "~ x!3",
I: "x ~@2 x ~ x!2 ~ x!2 ~@2", J: "x ~@2 x ~@2 x ~@2 x!3", K: "~ x ~ x ~ x ~ x ~ x ~ x", L: "x ~@2 x ~ x ~ x ~ x ~ x",
M: "x ~@2 x ~@2 x ~ x ~@2 x", N: "x ~@4 x!2 ~@4 x", O: "x ~@9 x ~@3 x!10", P: "x!2 ~ x!6 ~@5 x!2 ~@8",
})).gain(0.44)
// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@41 [~@2 x ~@6 x!5 ~@10] ~>").gain(0.27)
// drums · splash
const splash = s("cr").struct("<~@9 A ~@3 A ~@3 A ~@7 A ~ A ~ A ~@3 A ~ B C A@3 ~@3>".pickRestart({
A: "x", B: "~@5 x", C: "x ~@10 x",
})).gain(0.38)
stack(
piano, bass, acoustic_guitar_nylon, acoustic_guitar_steel, vibraphone, vibraphone_soft, electric_guitar_muted,
alto_sax, alto_sax_2, kick, snare, snare_soft, ride, ride_soft, splash
)
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.