0:00/0:00
// Still — RICHIE LIONEL
// 65 bpm, 4/4, key Db 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: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 62 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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
const piano = note("<~ A@4 B@2 C D E@2 F@3 G@7 H@2 I J@5 K@8 L@2 M N@8 O@7 P@6 ~>".pickRestart({
A: "[~@12 db4@6 ab3@24 ~@18 db4@6 ab3@24 ~@18 db4@6 ab3@24 ~@18 db4@6 [ab3,db4,eb4,gb4,ab4]@29 ~, db3@48 db2@48 db2@48 db2@47 ~, ~@6 ab3@12 [eb4,f4,ab4]@50 ~@22 ab3@12 ab3@12 [db4,eb4]@35 ~@43, ~@18 db4@42 ~@6 [eb4,gb4,ab4]@49 ~@23 ab3@12 ab3@12 ~@30, ~@42 ab3@11 ~ ab3@12 db4@42 ~@6 ab4@48 ~@30]/4", // Absus4 Fm7 Dbsus2 Ab7
B: "[~@9 f4@3 ~@21 ab3@2 ~@11 db4@2, [db2,gb4]@27 ab3@3 db4@5 db2@9 eb4@4, ~@6 ab3@24 ab3@12 eb4@29 db4@9 f4@15 ~, ~@12 db4@24 db4@12 ab4@23 ~ gb4@23 ~, ~@24 f4@47 ab3 eb4@5 ab3@18 ~]/2", // Gb5
C: "bb3@2 ~@5 f4 ~@6 db4@2, gb2@15 ~, [gb3,f4]@3 gb4 ~@4, db4@2 db4@2 ~ bb3@3, ~ bb3@3 [gb3,eb4]@4", // Gbmaj7 Ebm
D: "~@18 gb3@5 ~@7 gb3@6 gb3@6 gb3@6, [ab2,bb3,db4]@23 ~ ab2@23 ~, ~ gb3@2 ~@5, ~@12 [ab3,c4]@11 ~ [bb3,db4]@12 [bb3,c4,eb4]@12", // Bbm7 Ab Bbm Cm7
E: "[~@18 f4@6 ~@67 ab4@5, db3, gb4@6 db4@3 ab3 db4@3 ab3@3, ~@3 ab3@9 f4@9 eb4@12 ab3@3 eb4@10 ~@2, ~@2 db4@3 ab3@3 ab4@6 db4@2]/2",
F: "[~@19 f4@6 ~@43 ab3@4 ~@22 db4@4 bb3@6 ~@12 gb4@4 f4@3 ~@6 bb3@12 db4@3, ~ [db2,gb4]@54 ab3@7 db4@10 db2@18 eb4@8 [gb3,f4]@24 ~ [gb3,eb4]@21, ~@7 ab3@24 ab3@12 eb4@30 db4@9 f4@16 db4@12 ~ db4@12 ~@21, ~@13 db4@24 db4@12 ab4@24 ~ gb4@24 ~@6 bb3@19 ~@21, ~@25 f4@48 ab3 eb4@5 ab3@19 gb2@46]/3", // Gb5 Gbmaj7 Ebm
G: "[~@21 gb3@6 ~@6 gb3@6 ab3@6 ~ gb3@4 ~@20 f4@6 ~@31 ab3@6 [db3,ab3,db4,f4]@13 [bb2,bb3,b3,eb4,gb4]@13 [ab2,b3,eb4,f4,ab4]@14 ~@39 gb4@3 eb4@4 ~@15 bb3@6 eb4@3 ~@3 [c4,eb4,ab4]@12 [bb3,eb4,ab4]@12 ~@42 ab3@4 ab4@3 ~ ab4@23 ~ [b3,eb4,ab4]@11 ~, ~@3 [ab2,bb3,db4]@24 ab2@23 ~@2 db3@61 ~@40 gb2@43 ~@140, ~@9 gb3@12 ~@18 [bb3,c4,eb4]@12 ~ gb4@36 db4@25 ~@46 gb3@30 f4@6 ~@13 gb3@13 ~@35 ab3@12 ab3@12 ~ ab3@11 ~@44, ~@15 [ab3,c4]@12 [bb3,db4]@14 ~@17 ab3@18 f4@18 eb4@19 ~@52 db4@12 bb4@18 ~@68 ab4@23 f4@5 gb4@4 ~@41, ~@64 db4@18 ab3@18 ab4@13 ~@58 f4@12 db4@12 ~@7 db4@20 ~@28 db4@12 db4@12 db4@12 ~ db4@12 [b3,eb4]@24 ~@13]/7", // Db Bmaj7 Fm7b5 Ab Ebsus4 Abm Bbm7 Cm7 …
H: "[[b3,eb4,ab4]@12 ~@36 db4@6 eb4@6 ~@19 eb4@5 ~@7 ab3@5, ~@12 gb2@24 bb4@12 ~@25 bb3@11 ~@12, ~@18 gb3@19 ~@5 gb3@11 ~@13 gb3@17 ~@13, ~@24 db4@17 ~@19 db4@22 ~@3 [c4,eb4]@10 ~, ~@30 db5@19 ~@47]/2", // Abm Cm
I: "~@7 ab2@5 ~@7 f3@7 ~@5 f3@6 ab3@6 f3@5, ~ [bb3,eb4]@10 ~@2 [ab3,c4,eb4]@11 ~@2 [c4,eb4]@21 ~", // Eb5 Ab Cm
J: "[~@2 f4@4 gb4@3 ~ ab4@3 ~@45 ab3@5 ~@42 gb4@4 eb4@4 ~@15 bb3@6 eb4@4 ~@2 [c4,eb4,ab4]@12 ~ [bb3,eb4,ab4]@12 ~@38 f4@5 [ab3,gb4]@4 ab4@4 [b3,eb4,ab4]@12 ~@7 b3@5, ~@14 [b3,eb4,ab4]@11 ~ [db4,f4]@12 ~ [eb4,gb4]@12 [f4,ab4]@13 ~@8 gb3@30 f4@6 ~@13 gb3@13 ~@37 ab3@12 ~ ab3@12 ~ ab3@11 ~@32, ~@20 ab3@12 ~ ab3@12 ab3@13 ~@7 gb2@44 ~@131, ~@78 db4@12 bb4@19 ~@69 ab4@24 ~@38, ~@83 f4@13 db4@13 ~@6 db4@21 ~@29 db4@12 ~ [db4,eb4]@12 db4@12 ~ db4@12 ~@13 [db4,f4]@12]/5", // Ab Ebsus4 Ab7 Abm Db Ebm Fm Dbsus2 …
K: "[~@22 b3@7 [bb3,f4,bb4]@14 ~@32 bb3@5 ~@2 [gb2,bb3,db4,f4]@13 [f2,ab3,c4,eb4]@14 [eb2,gb3,bb3,db4]@53 ab3@6 ~@14 ab3@6 ~@23 ab3@50 ~ [ab4,eb5,gb5]@16 ~@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@6 ~@3 [ab4,ab5] ~@2 [ab4,f5,ab5]@8 ~ [eb5,gb5] ~@2 [ab4,eb5,gb5]@9 ~ [db5,f5] ~@2 [ab4,db5,f5]@10 ~@2 [ab4,eb5,gb5]@7 ~@2 [ab4,db5,f5]@7 eb5@4 db5@4 ~ [gb4,bb4,db5,f5]@15 ~@2 [gb4,eb5,gb5]@3 ~ [gb4,db5,f5]@3, ~@2 [eb4,gb4]@12 ~ f4@13 ~@15 bb4@11 ~@2 db4@13 f4@12 ~@81 eb4@13 [bb3,eb4]@15 ~@5 ab3@16 ~@173, ~@8 b3@14 ~@7 [gb2,f3]@51 ~@82 ab2@100 ~@122, ~@16 db4@13 ~@20 bb3@13 eb4@13 ~@87 c4@28 ~@13 [c4,eb4]@58 ~@46 ab4@2 ~@10 ab4@2 ~@63, ~@168 ab3@13 ~@7 [db4,eb4]@15 ~@92 f5@2 ~@87]/8", // Bb5 Gbmaj7 Fm7 Ebm7 Ab7 Db Ab Db …
L: "[[f4,bb4,eb5]@17 ~ [gb4,bb4,db5]@6 ~@43 gb4@6 [ab4,eb5,gb5]@18 [ab4,db5,f5]@5, ~@24 [bb4,db5]@12 [ab4,c5]@12 [bb4,db5]@12 ~ [c5,eb5,ab5]@12 ~@23, ~@5 gb4@2 gb4@2 gb4@2 ~@5]/2", // Ebsus2 Gb Ab7 Db Bbm Ab Bbm Ab
M: "~ [ab4,db5]@6 ~@19 ab5@12 [ab3,db4,f4]@10, ~ f5@17 ~ eb5@18 ~@11, ~@7 ab4@30 ~@11, ~@13 db5@24 ~@11", // Db5 Db
N: "[~@3 [bb3,b3,eb4,gb4]@14 [b3,eb4,f4,ab4]@14 ~@41 gb4@3 eb4@4 ~@15 bb3@6 eb4@4 ~@3 [c4,eb4,ab4]@12 [bb3,eb4,ab4]@12 ~@38 f4@5 ~ ab3@4 ab4@4 ab4@12 f4@12 ~ [b3,eb4,gb4]@11 ~@2 [b3,eb4]@12 ~@31 gb3@9 ~ [c4,eb4,ab4]@9 ~@19 eb4@5 ~ c4@7 ab3@6 ~@6 ab2@5 ~@8 f3@6 ~@6 f3@6 ab3@6 f3@7 f4@4 gb4@4 ~ ab4@4, ~@31 gb2@38 f4@6 ~@99 gb4@4 ~@61 gb3@19 bb4@13 ~@12 [bb3,gb4]@12 bb3@11 ~@15 [bb3,eb4]@10 ~@2 [ab3,c4,eb4]@12 ~@39, ~@38 gb3@38 ~@12 gb3@13 ~@37 ab3@12 ~ ab3@12 ab3@12 ~@58 gb2@28 ~@28 gb3@18 ~@77, ~@44 db4@13 bb4@19 ~@69 ab4@24 ~@51 ab4@12 ~@19 db5@20 ~@63 eb5@12 ~@38, ~@50 f4@13 db4@13 ~@6 db4@21 ~@29 db4@12 ~ db4@12 db4@12 db4@12 ~@2 [b3,eb4]@25 ~@25 [db4,f4,bb4]@12 db4@17 ~@21 db4@23 ~@2 eb4@11 ~@27 [c4,eb4,ab4,ab5]@22 ~@16]/8", // Bmaj7 Fm7b5 Ab Ebsus4 B Ab Ebm Eb5 …
O: "[~@47 ab3@6 ~@31 db4@9 [c4,eb4,ab4]@9 ~@18 eb4@3 ~@4 [c4,eb4,ab4]@12 [bb3,eb4,ab4]@12 ~@36 f4@5 ~ ab3@4 ab4@3 ~ ab4@11 ~@35 b3@7 [bb3,f4,bb4]@14 ~@34 bb3@6 ~ [gb2,bb3,db4,f4]@14 ~ [f2,ab3,c4,eb4]@12, [b3,eb4,ab4]@11 ~ [db4,f4]@13 ~ [eb4,gb4]@13 [f4,ab4]@14 ~ bb4@18 f4@25 ~@5 db4@20 ~@29 db4@12 [db4,eb4]@12 db4@12 db4@12 ~@13 [db4,f4]@13 ~ [eb4,gb4]@12 ~@2 [db4,f4]@14 ~@27 db4@17 ~@38, ~@6 ab3@13 ab3@13 ab3@14 ~@8 gb2@43 ~@12 gb3@13 ~@35 ab3@12 ab3@12 ab3@11 ~@62 [gb2,f3]@53 ~@29, ~@54 f4@12 db4@12 bb4@18 ~@68 ab4@23 ~@5 gb4@4 ~@72 bb4@11 ~@16 f4@13 ~@28, ~@54 db4@6 gb3@36 ~@6 [bb3,gb4]@12 ~ bb3@8 ~@77 [b3,eb4]@12 ~@7 b3@13 b3@14 ~@28 bb3@14 eb4@14 ~@34]/7", // Ab Ebsus4 Bb5 Gbmaj7 Fm7 Abm Db Ebm …
P: "[~@2 [eb2,gb3,bb3,db4]@57 ab3@7 ~@14 ab3@7 ~@21 ab3@54 ~ ab4@7 ~@15 f5@8 ~ [db3,ab4,f5]@94, ~@59 ab2@103 db2@126, ~@59 c4@29 ~@13 [c4,eb4]@61 ~@8 ab4@24 ~@94, ~@59 eb4@14 [bb3,eb4]@15 ~@6 ab3@14 ~@55 [db3,gb5]@33 ~@92, ~@66 ab3@14 ~@7 [db4,eb4]@14 ~@62 db5@14 db5@16 db5@94 ~]/6", // Ebm7 Db Cm Eb5 Gb5 Dbsus2
})).s("gm_piano").gain(0.38).pan(0.6)
// bass · fretless bass
const bass = note("<~@16 A@2 B C D@3 E@2 F@4 G@8 H I J K@2 L@2 M@4 N O@3 P@3 Q@4 ~@3>".pickRestart({
A: "[~@17 db2@12 ~ bb1@12 ~ ab1@12 ~@2 gb1@17 ~ gb1@4 ~@2 gb1@14 ~]/2", B: "~@3 f2@4 ~@2 eb2@16 ~@3 ab1@4 ~@2 ab1@14",
C: "~@4 ab2@4 ~@2 db2@17 ~ db2@4 ~@2 db2@14",
D: "[~@5 ab1@5 ~ db2@9 ~@3 db2@11 ~ bb1@10 ~@2 ab1@10 ~@3 gb1@16 ~@2 gb1@4 ~@2 gb1@17 ~ f1@5 ~ ab1@17 ~@2 ab1@5 ~ ab1@11]/3",
E: "[~ ab2@11 ~ db2@17 ~@2 db2@5 ~ db2@23 ~ db2@9 ~@3 db2@11 ~@2 bb1@9]/2",
F: "[~@4 ab1@9 ~@4 gb1@17 ~ gb1@5 ~@2 gb1@18 ~ f2@5 ~ eb2@18 ~ ab1@4 ~@2 ab1@25 db2@17 ~@2 db2@4 ~@2 db2@18 ~ ab1@5 ~ db2@24 ~]/4",
G: "[~ bb1@12 ~@2 ab1@12 ~@2 gb1@51 ~@2 gb1@12 ~ f1@12 ~@2 eb2@52 ~ ab1@97 ~@3 db2@17 ~ db2@3 ~@3 db2@22 ~@3 db2@17 ~ db2@4 ~@2 db2@23 ~ gb1@17 ~ gb1@3 ~@4]/8",
H: "gb1@23 ~ ab1@17 ~ ab1@3 ~@3", I: "ab1@11 ~@2 ab1@10 ~@2 db2@17 ~ db2@4 ~", J: "~ db2@23 ~@2 db2@11 ~ db2@10",
K: "[~@3 bb1@11 ~@3 ab1@11 ~@3 gb1@22 ~@4 gb1@17 ~ f1@4 ~@3 eb2@14]/2",
L: "[~@5 ab1@3 ~@3 ab1@20 ~@2 ab1@2 ~ db2@17 ~@2 db2@4 ~@2 db2@22 ~@3 db2@9 ~]/2",
M: "[~@3 db2@11 ~ bb1@10 ~@3 ab1@10 ~@3 gb1@17 ~ gb1@4 ~@3 gb1@12 ~@3 f1@7 ~@3 eb2@18 ~ ab1@5 ~ ab1@22 ~@3 db2@18 ~ db2@5 ~ db2@18 ~ ab1@5 ~@2]/4",
N: "db2@9 ~@3 db2@11 ~@3 bb1@12 ~ ab1@9",
O: "[~@6 gb1@16 ~@2 gb1@4 ~@2 gb1@12 ~@3 f1@7 ~@2 eb2@17 ~ ab1@4 ~@3 ab1@11 ~ ab1@10 ~@2 db2@17 ~ db2@4 ~@2 db2@17]/3",
P: "[~@2 ab1@5 ~ db2@11 ~ db2@13 ~ bb1@13 ab1@13 ~@2 gb1@53 ~@2 gb1@13 ~ f1@13]/3",
Q: "[~@2 eb2@56 ~ ab1@101 ~@32]/4",
})).s("gm_fretless_bass").gain(0.44)
// chords · acoustic guitar steel · "steel string guitar"
const acoustic_guitar_steel = note("<~ A B C D ~@4 E@2 ~@17 F G@6 ~@18 H@2 I@4 J@3>".pickRestart({
A: "~@3 [db4,eb4,f4,ab4]@5", B: "~@3 [db4,eb4,gb4,ab4]@5", C: "~@3 [db4,eb4,ab4]@5",
D: "~@19 gb4@27 ~@2, ~@6 [db4,eb4,ab4]@9 ~", E: "[[ab3,eb4,gb4]@16 ~@2 [ab3,db4,f4]@5 ~ [ab3,db4,f4]@66 ~@6]/2",
F: "~@3 [db4,f4]", // Db
G: "[~ [eb4,gb4]@13 ~ [f4,ab4]@11 ~@30 bb3@26 ~ bb4@10 ~@4 ab4@8 ~@5 db4@6 bb3@7 ~@6 bb3@5 ~ [bb3,db4]@6 ~ [c4,eb4]@6 [db4,f4]@6 ~ [bb3,db4]@6 ~@7 ab3@7 bb3@6 ~ c4@6 db4@8 ab3@7 ~@9 ab3@47 ~@29, ~@29 db4@30 ~@23 [db4,f4]@12 ~ c4@10 ~@4 bb3@3 ~@11 db4@12 ~@27 [c4,eb4]@12 ~@29 c4@56 ~@29, ~@30 f4@12 f4@33 ~@21 eb4@9 ~@5 gb4@24 ~@41 ab4@12 ~@101, ~@31 bb4@43 ~@214]/6", // Ebm Fm Bbm Cm Db Bbm Db Cm
H: "[~@34 bb3@4 ~@17 bb4@6 ~ bb3@7 ~@2 bb4@11 ~@3 ab4@9 ~@2, ~@14 db4@21 ~@13 db4@20 ~ [db4,f4]@13 ~@2 [c4,eb4]@11 ~, ~@21 bb3@13 ~@7 [bb3,f4]@17 ~@38, ~@28 f4@11 ~@57]/2", // Db Cm Bb5
I: "[~@10 bb3@8 ~@7 bb3@5 ~@2 [bb3,db4]@6 [c4,eb4]@7 [db4,f4]@7 [bb3,db4]@7 ~@7 ab3@7 bb3@6 ~ c4@7 db4@7 ab3@7 ~@14 ab4@45 ~@32, ~@2 bb3@4 ~@102 ab3@51 ~@33, ~@3 db4@7 ~@8 db4@13 ~@28 [c4,eb4]@12 ~@30 c4@59 ~@32, ~@4 gb4@27 ~@42 ab4@13 ~@106]/4", // Bbm Cm Db Bbm Cm
J: "[~@2 f4@31 ~@15, db3@25 ~@11, ~ ab3@97 ~@46, ~ db4@32 ~@15, ~@2 eb4@47 ~@23]/3",
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.1)
// chords · french horn
const french_horn = note("<~@9 A@2 ~@24 B C D E F G ~@21>".pickRestart({
A: "[[eb4,gb4]@17 ~ f4@5 ~ [db4,f4]@68 ~@4, ~@17 db4@5 ~@74]/2", B: "~@11 ab3@10 ~ eb4 gb4 ab4@24, ~@21 db4@2 ~@25",
C: "~@35 bb4@12 ~", D: "f4@12 eb4@5 ~ db4@5 ~ ab4@24", E: "bb4@12 ~ ab4@11 ~ [eb4,gb4]@18 [db4,f4]@5",
F: "~ [db4,f4]@26 ~@11 ab3@10", G: "~@3 db4@14 eb4@14 ~@17",
})).s("gm_french_horn").gain(0.27).pan(0.3)
// other · orchestral harp · "harp"
const orchestral_harp = note("<~@2 A ~ B ~@5 C ~@23 D ~@27>".pickRestart({
A: "~@6 ab4@2 ~@4 db5@2 ~@4 ab5@3 ~@27", B: "db6@4 ~@2 bb5@4 ~@8 ab5@4 ~@2 gb5@3 ~@3 eb5@3 ~@9 db5@2 ~@4",
C: "~@6 ab4@6 db5@6 ab4@6 eb5@6 ab4@6 db5@6 ~ ab4@3 ~@2",
D: "~@12 ab3 bb3 db4 eb4 [gb4,ab4] [bb4,db5] [eb5,gb5] [ab5,bb5] db6 eb6 db6 bb5 [gb5,ab5] [db5,eb5] [ab4,bb4] [eb4,gb4] ~@20", // Gbsus2 Bbm Ebm Absus2 Gbsus2 Dbsus2 Absus2 Ebm
})).s("gm_orchestral_harp").gain(0.27).pan(0.3)
// chords · string ensemble 1 · "strings"
const string_ensemble_1 = note("<~@2 A ~ B C@2 ~@9 D@2 E@2 F@2 G@7 H@5 I@4 J K L@4 M@4 N@7 O@7>".pickRestart({
A: "db4!3 db4@2 ~@13 [ab4,db5,eb5,gb5]@30", // Absus4
B: "db4!3 bb5@3 ab5@3 bb5@3 ab5@3 bb5@3 ab5@3 bb5@3 ab5@3 bb5@3 ab5@3 bb5@3 ab5@3 bb5@3 ab5@3 bb5@3, ab5@3 db4 ~@2 bb3@12 ab3@6 gb3@6 eb3@12 db3@5 ~",
C: "[gb5@3 ab5@9 ~@4, [ab2,db3]@3 ~]/2", // Db5
D: "[~@17 [ab3,db4,f4]@12 ~ [bb3,eb4]@12 ~ [b3,f4]@13 ~ [db4,f4]@36 [db4,f4,bb4]@3, ~@29 gb4@13 ab4@14 bb4@36 ~@4]/2", // Db Eb5 Bdim Db Bbm
E: "[~@4 eb4@5 ~ [bb3,db4]@24 ~@24 f4@35 ~@2 db4, ~@3 [c4,ab4]@6 gb4@24 ~ [c4,eb4,ab4]@60 f4@2]/2", // Bbm Fm Ab
F: "[~@3 gb4@4 ab4@4 [b3,eb4,ab4]@11 ~ [ab3,db4]@12 gb4@12 ~@6 db6@6 ~@24 ab5 bb5@12, ~@22 f4@13 [b3,eb4]@25 [bb3,db4,f4]@36, ~@47 db5@6 ~@6 bb5@23 ~@14, ~@4 f4 ~@3]/2", // Abm Db5 B Bbm
G: "[~@6 [c4,eb4,ab4,ab5,c6]@6 [db4,gb4,bb4,bb5,db6]@24 ~ c4@17 ~ [bb3,bb5,db6]@5 ~ [c4,c6,eb6]@36 ~ f3@4 [gb3,c4,gb5]@4 [ab3,c4,ab5]@4 eb6@12 ~@13 [gb4,bb4]@12 ~ eb4@13 bb4@18 ~ db5@3 [bb4,db5]@3 [db5,f5]@6 ~@13 c5@3 c5@3 [gb4,db5]@18 ~ c5@3 ~@3 eb5@12 [eb5,ab5]@13 [c5,eb5]@3 [bb4,db5]@3 [ab4,c5]@3 ~ db5@3 [c5,eb5]@25 [f3,f4]@4 [gb3,gb4]@4 [ab3,ab4]@4 ~ [ab3,b3,eb4,ab4]@12 [b3,db4,f4]@12, ~@36 eb4@24 ~ ab4@61 [f4,ab4]@13 ~@12 [ab4,b4]@13 ~@70 gb4@6 ~@25 ab3@38 ~@37, ~@36 [ab4,c6,eb6]@18 gb4@6 f4@61 ~ db4@25 ~@88 ab4@25 ~@10 bb4@4 ~@62, ~@97 [c4,f5]@4 ~@9 b3@50 ~ [gb3,db4,f4]@44 [ab3,eb4,f4,ab4]@6 [gb3,db4,bb4]@25 [ab3,eb4,c5]@25 [c4,eb4]@50 ~@25, ~@123 db6@25 ~@31 f5@3 ~@22 eb5@3 ~@22 eb5@3 ~ [db5,f5]@4 ~@99]/7", // Ab Gb Bbm Cm Gbdim Ab Gb Bbm …
H: "[~ [eb4,gb4]@13 ~ [db4,f4]@14 gb4@7 f4@6 db4@40 ~ f4@12 [ab3,c4,eb4,c5,ab5]@13 [gb3,bb3,db4,bb4,gb5]@26 ~ [bb4,db5]@6 [c5,eb5]@6 ~ f5@7 [eb5,gb5]@6 ~ [ab3,c4]@73 ~@5, ~ b3@28 [gb2,db3,gb3,bb3]@53 [bb3,db4,db5,bb5]@13 ~@52 db5@7 ~@7 [c5,eb5]@73 ~@6]/5", // Ebm Db Ab Gb Bbm Cm Ebm Ab …
I: "[~@22 [ab4,eb5,gb5]@18 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@47 ~@2 [ab4,eb5,gb5]@8 ~ db5@6 ~ [ab4,db5,eb5]@4 [ab4,db5]@4 ~ f5@17 ~ gb5@3 f5@2 ~@19 db5@5 ~ [gb4,bb4,db5]@12 [gb4,ab4,c5]@12, ~@103 [ab4,f5]@8 ~@8 db5@24 f4@12 ~ gb4@11 ~@25, ~@5 bb4 bb4 ~, ~@24 eb5@3 ~@5]/4", // Ab7 Db Ab7 Absus4 Db5 Gb Ab7 Db
J: "~ bb4@11 ~ [c5,eb5]@12 [ab4,eb5,gb5]@18 [ab4,db5,f5]@5, [gb4,db5]@12 gb4@11 ~@25", // Cm Ab7 Db Gb5
K: "~ [ab4,db5,f5]@36 ~ [ab3,db4,f4]@10", // Db
L: "[~@3 [bb3,eb4]@13 ~ [b3,f4]@14 ~ db4@37 [db4,f4,bb4]@6 ~ eb4@6 [bb3,db4,gb4]@25 ~@25 f4@37 ~@5 gb4@4 ab4@4 [b3,eb4,ab4]@10, ~@2 gb4@14 ab4@15 [f4,bb4]@38 ~@6 [c4,ab4]@7 ~@25 eb4@75 ~@10, ~@107 [c4,ab4]@62 f4@5 ~@18, ~@85 db4@6 ~@5]/4", // Eb5 Bdim Bbm Gb Abm Bb5 Fm
M: "[~@3 [ab3,db4]@12 gb4@13 ~@4 db5@4 db6@4 ~@24 ab5 ~ bb5@16 [c4,eb4,ab4,ab5,c6]@9 [db4,gb4,bb4,bb5,db6]@24 ~ [c4,ab4,c6]@18 ~ [bb5,db6]@5 ~ [c4,ab4,c6,eb6]@38 [f4,f5]@4 [gb4,gb5]@4 [ab4,ab5]@4 ~, ~@2 f4@13 [b3,eb4]@26 [bb3,db4,f4]@41 ~@34 eb4@24 f4@38 ~@14, ~@28 [f4,ab4]@12 bb5@24 ~@51 eb6@19 [bb3,gb4]@7 ~@51]/4", // Db5 Ab Gb Fm Bbm Ab F Gb …
N: "[eb6@13 db6@12 ~ gb4@13 [f4,ab4]@14 ~ bb4@18 [db5,f5]@3 [bb4,db5]@3 [db5,f5]@5 ~@10 [ab3,eb4,f4,ab4,c5,eb5]@6 c5@3 [gb4,db5]@18 ~@4 db5@2 ~ eb5@12 [eb5,ab5]@12 [c5,eb5]@3 [bb4,db5]@3 [ab4,c5]@3 [bb4,db5]@3 [c5,eb5]@24 ~ f3@4 [gb3,gb4]@4 [ab3,ab4]@4 [ab3,b3,eb4,ab4]@12 ~ [b3,db4]@13 [eb4,gb4]@13 ~ db4@14 ~ gb4@6 f4@6 [db4,f4]@42 ~ [bb3,f4]@13 [ab3,c4,eb4,c5,ab5]@13, b3@54 [gb3,db4,f4]@39 ~@9 [gb3,db4,bb4]@24 ~ [ab3,eb4,c5]@24 [c4,eb4]@49 ~@26 b3@29 ~@54 [db4,db5,bb5]@14 ~@13, [db4,f4,ab4]@25 bb5@28 ~@70 f5@4 ~@209, ~@25 eb4@14 ~@82 gb4@6 ~@24 ab3@36 ~@67 [gb2,db3,gb3,bb3]@55 ~@27, ~@26 bb4@27 ~@67 [c5,eb5]@3 ~@3 ab4@24 ~@37 f4@4 ~@21 f4@13 ~@14 f4@15 ~@82]/7", // Fm Db Bbm Db Fm7 Gb5 Ab5 Cm …
O: "[~@2 bb4@29 [bb4,db5]@7 [c5,eb5]@6 [db5,f5]@8 [eb5,gb5]@7 [ab3,c4,ab4,c5,eb5]@102 ~ db6@130 ~@44, ~ [gb3,bb3,db4]@57 ~@278, ~ gb5@29 ~@306]/7", // Bbm Cm Db Ebm Ab Gb
})).s("gm_string_ensemble_1").gain(0.25)
// chords · trombone
const trombone = note("<~@17 A@8 B@4 C@2 D E@2 F@5 G@3 H@7 I@4 J@2 K L@2 ~@4>".pickRestart({
A: "[~@9 [db4,f4]@35 ~ [db4,f4]@6 [c4,eb4]@7 [bb3,db4]@23 ~ [c4,eb4]@18 [bb3,db4]@6 [c4,eb4]@49 eb4@12 db4@11 ~ eb4@12 ~ db4@8 ~@4 [db4,f4]@42 [c4,eb4]@6 [bb3,gb4]@24 [c4,ab4]@24 ~ c4@47 ~@2 b3@12 ~@22, ~@155 b3@49 ~@97 eb4@61 ~@22]/8", // Db Cm Bbm Cm Bbm Cm Db Cm …
B: "[~@17 [db4,f4]@43 ~ c4@6 [bb3,gb4]@24 ~ c4@75 ~ b3@12 f4@12, ~@30 eb4@3 ~@13 ab4@44 ~@6]/4", // Db Ebm
C: "[~@2 gb4@13 [f4,ab4]@14 [f4,bb4]@53 f4@14]/2", D: "eb4@12 ~ gb4@26 ~@9, ~@6 db4@13 ~@5",
E: "[~@32 bb3@13 db4@15 c4@32 ~@4, ~@31 [eb4,ab4]@61 ~@4]/2", // Ab5
F: "[~@22 [gb3,eb4]@17 ~ [f3,db4]@4 ~@2 [f3,ab3]@46 ~@3 [f3,db4]@8 ~ db4@6 ~@2 f3@3 ~ f3@3 ~@19 bb3@5 ~ f3@23 ~ gb3@48 ~ [ab3,eb4]@16 ~@2 [ab3,db4]@4 ~, ~@103 f3@7 ~ db4@3 ~ db4@3 ~ db4@18 ~@6 bb3@24 ab3@49 ~@24, ~@120 f3@23 ~@97]/5", // Ebm Db Fm Db Ab5 Db5
G: "[~ [f3,ab3]@24 ~@13 ab3@41 [db4,f4]@36 ~@2 [db4,f4]@6 [c4,eb4]@7 [bb3,db4]@14]/3", // Fm Db Cm Bbm
H: "[~@11 [c4,eb4]@19 [bb3,db4]@6 [c4,eb4]@37 db4@5 eb4@4 db4@4 eb4@12 ~ db4@12 ~ eb4@12 f4@12 ~ [db4,f4]@40 ~ [c4,eb4]@7 ~@2 [bb3,gb4]@25 [c4,ab4]@25 c4@49 ~@2 b3@12 f4@13 eb4@13 ~ db4@9, ~@86 b3@50 ~@101 eb4@63 ~@36]/7", // Cm Bbm Cm Db Cm Ebm Fm
I: "[~@6 [db4,f4]@36 ~@3 [c4,eb4]@9 [bb3,gb4]@23 ~@2 c4@73 b3@12 ~ db4@13 eb4@14, ~@79 ab4@86 ~@27]/4", // Db Cm Ebm
J: "[f4@14 [db4,f4]@55 f4@15 eb4@12]/2", K: "~@2 [db4,gb4]@29 ~@17", L: "[~@11 [c4,ab4]@80 ~@5]/2",
})).s("gm_trombone").gain(0.27).pan(0.3)
// chords · muted trumpet · Dbsus2
const muted_trumpet = note("<~@4 [~@18 [db5,eb5]@29 ~] ~@57>").s("gm_muted_trumpet").gain(0.38).pan(0.7)
// other · trumpet
const trumpet = note("<~@2 [~@3 eb5@5] ~@59>").s("gm_trumpet").gain(0.27).pan(1)
// other · pizzicato strings · Ab5
const pizzicato_strings = note(`<
~
[~@6 ab4@3 ~@3 db5@2 ~@4 db5@2 ~@28]
~
[~@18 ab5@3 ~@3 [ab4,eb5]@4 ~@2 [eb4,ab4]@7 ~@11]
[~@30 eb5@4 ~@8 db5 ~@5]
~@24
[~@34 bb5@4 ~@5 bb4@5]
~@32
>`).s("gm_pizzicato_strings").gain(0.15).pan(0.9)
// other · celesta · "celestia pad"
const celesta = note("<~@9 A ~@22 B@2 ~@28>".pickRestart({
A: "ab6@5 ~@7", B: "[~@24 ab5@6 ~@7 ab5@17 ~@42, ~@31 ab6@30 ~@35]/2",
})).s("gm_celesta").gain(0.27).pan(0.8)
// drums · kick
const kick = s("bd").struct(`<
~@16 A B C@2 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 ~@5
>`.pickRestart({
A: "~@17 x ~@12 x ~@12 x ~@4", B: "~@3 x ~@5 x ~ x ~@4", C: "~@5 x ~@8 x ~@2 x ~@6", D: "~@11 x ~@11 x ~@11 x ~@12",
E: "x ~ x ~@2 x!2 ~", F: "~@12 x ~@18 x ~@5 x ~@10", G: "~@13 x ~@17 x ~@6 x ~@9", H: "~@14 x ~@11 x ~@12 x ~@8",
I: "~@4 x ~@12 x ~@17 x ~@6 x ~@5", J: "~@19 x ~@18 x ~@5 x ~@3", K: "~@21 x ~@18 x ~@5 x ~", L: "~ x",
M: "~@29 x ~@18", N: "~@13 x ~@34", O: "~@17 x ~@30", P: "~@11 x ~@8 x ~@2 x", Q: "~@16 x ~@6 x ~@17 x ~@5 x",
R: "~@23 x ~@17 x ~@6", S: "x ~@2 x!2 ~@2 x", T: "x ~@12 x ~@11 x ~@17 x ~@4", U: "~ x ~@17 x ~@6 x ~@11 x ~@9",
V: "~@3 x ~@13 x ~@13 x ~@16", W: "~@2 x ~@6 x ~@24 x ~@13", X: "~@4 x ~@6 x ~@24 x ~@11",
Y: "~@7 x ~@5 x ~@24 x ~@9", Z: "~@3 x ~@11 x ~@12 x ~@12 x ~@6", AA: "~@11 x ~@6 x ~@14 x ~@9 x ~@4",
AB: "~@14 x ~@5 x ~@24 x ~@2", AC: "~@8 x ~@2 x ~@12", AD: "x ~@11 x ~@13 x ~@12 x ~@8", AE: "~@2 x ~@5 x ~ x ~@4 x",
AF: "~@6 x ~@17 x ~@6 x ~@16", AG: "~@7 x ~@17 x ~@5 x ~@16", AH: "~@4 x ~@12 x ~@6", AI: "x ~@6 x ~@16",
AJ: "~@21 x ~@13 x ~@12", AK: "~ x ~@22", AL: "~@11 x ~@36",
})).gain(0.44)
// drums · rim
const rim = s("rim").struct("<A ~@16 B C D ~ E F G H I J K L ~@11 M N O P ~ Q R S ~ T U V ~@10>".pickRestart({
A: "x!4", B: "~@7 x ~@7 x", C: "~@11 x ~@11 x", D: "~@22 x ~@24 x", E: "~ x", F: "x ~@24 x ~@22",
G: "~ x ~@23 x ~@22", H: "~ x ~@22", I: "~@29 x ~@18", J: "~@6 x ~@24 x ~@16", K: "~@4 x ~@12 x ~@6",
L: "~@11 x ~@36", M: "~@11 x", N: "~@21 x ~@24 x ~", O: "~@23 x ~@24", P: "~ x ~@24 x ~@21", Q: "~@5 x ~@24 x ~@17",
R: "~@8 x ~@24 x ~@14", S: "~@10 x ~@24 x ~@12", T: "~@3 x ~@3 x", U: "~@18 x ~@24 x ~@4", V: "~@19 x ~@24 x ~@3",
})).gain(0.38)
// drums · snare
const snare = s("sd").struct(`<
~@34
[~@17 x ~@6]
[~@10 x ~@24 x ~@12]
[~@35 x ~@12]
[~ x ~ x]
[~@13 x ~@23 x ~@10]
[~@13 x ~@34]
~@22
>`).gain(0.49)
// drums · hihat
const hihat = s("hh").struct(`<
~@17 A B C D E F G H I J K L ~@5 M N O P Q R S K T U ~ V W X Y Z AA AB ~@10
>`.pickRestart({
A: "~@7 x ~@3 x ~@3 x", B: "~@5 x ~@5 x ~@5 x ~@5 x", C: "~@10 x ~@11 x ~@11 x ~@12 x",
D: "~@11 x ~@11 x ~@11 x ~@12", E: "x!4", F: "x ~@11 x ~@12 x ~@11 x ~@10", G: "~ x ~@11 x ~@11 x ~@12 x ~@9",
H: "~ x ~@5 x ~@5 x ~@10", I: "~@29 x ~@12 x ~@5", J: "~@6 x ~@12 x ~@11 x ~@12 x ~@3",
K: "~@9 x ~@11 x ~@12 x ~@11 x ~", L: "~@11 x ~@36", M: "~@14 x ~@2 x ~@5 x",
N: "~@4 x ~@5 x ~@11 x ~@6 x ~@5 x ~@5 x ~@6", O: "~@5 x!3", P: "x ~ x ~ x!4", Q: "x ~@36 x ~@10",
R: "~ x ~@5 x ~@5 x ~@6 x ~@27", S: "~@11 x", T: "~@11 x ~@11 x ~@12 x ~@11", U: "~ x ~@11 x ~@12 x ~@11 x ~@9",
V: "~@5 x ~@12 x ~@11 x ~@17", W: "~@7 x ~@12 x ~@12 x ~@11 x ~@2", X: "~@10 x ~@11 x ~@12 x ~@12", Y: "x",
Z: "~@3 x ~ x ~ x", AA: "~@18 x ~@12 x ~@11 x ~@4", AB: "~@7 x ~@11 x ~@11 x ~@12 x ~@3",
})).gain(0.22)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@34 A B ~ C D ~@2 E F G ~ H I J ~ K L M N ~@9>".pickRestart({
A: "~@5 x", B: "~ x ~", C: "~ x ~ x ~@4", D: "~@7 x ~@23 x ~@11 x ~@4", E: "~@2 x ~@12 x ~@11 x ~@12 x ~@7",
F: "~@5 x ~@11 x ~@12 x ~@11 x ~@5", G: "~@7 x ~@11 x ~@12 x ~@12 x ~@2", H: "~ x!2 ~",
I: "~ x ~@12 x ~@11 x ~@12 x ~@8", J: "~@4 x ~@11 x ~@12 x ~@11 x ~@6", K: "~ x!3", L: "~@12 x ~@12 x ~@11 x ~@10",
M: "~ x ~@11 x ~@11 x ~@12 x ~@9", N: "~ x ~@22",
})).gain(0.11)
// drums · open hat
const open_hat = s("oh").struct("<~@4 A ~@11 B C ~@18 D ~ E ~ F ~@4 G ~@2 H I ~@12>".pickRestart({
A: "~@39 x!9", B: "~@47 x", C: "x!2 ~ x!6 ~@39", D: "~@15 x!8 ~@25", E: "~@16 x!9 ~@23",
F: "~@21 x!3 ~ x!2 ~ x!3 ~@17", G: "~@11 x ~@4", H: "~@40 x ~ x!5 ~", I: "x!5 ~@40 x ~@2",
})).gain(0.27)
// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@4 A ~@11 B ~@19 C ~ D ~ E ~@21>".pickRestart({
A: "~@37 x!2 ~@9", B: "~@44 x!3 ~", C: "~@12 x!3 ~@33", D: "~@14 x!2 ~@32", E: "~@18 x!3 ~@27",
})).gain(0.16)
// drums · crash
// … 16 more lines
More by Lionel Richie
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.