0:00/0:00
// Make Me Smile — Chicago
// 120 bpm, 4/4, key Eb major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 94 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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.
// bass · acoustic bass · "Bass"
const bass = note(`<
~ A B C D E F C D E G H I J K L M L M L M L M N O P Q C D E F C D E G H I J K L M L M L M L M N O R S T@2 U@2 V@2 W@2
X@2 Y@2 X@2 Z@2 AA@2 AB AC L M L M L M L M N O AD AE ~@3 AF AG ~@2 AH AI@2 AJ
>`.pickRestart({
A: "~ gb3@5 ~@26", B: "~ gb3@5 ~@3 gb3@5 ~@18", C: "~ bb2@3 ~ bb2@6 ~@2 f2@3 ~ bb2@3 ~ bb2@7 ~ ab2@3",
D: "~ gb2@3 ~ gb2@6 ~@2 gb2@3 ~ gb2@4 ab2@4 bb2@3 ~ c3@3", E: "~ db3@3 ~ db3@8 ab2@4 db3@3 ~ eb3@4 db3@4 b2@3",
F: "~ c3@3 ~ c3@6 ~@2 c3@4 f2@3 ~ f2@4 a2@4 c3@3", G: "~ c3@3 ~ c3@6 ~@2 c3@4 f3@3 ~ f3@6 ~@2 f3@3",
H: "~ bb2@2 ~@2 bb2@6 ~@2 bb2@3 ~ c3@3 ~ c3@6 ~@2 c3@3",
I: "~ db3@2 ~@2 db3@6 ~@2 db3@2 ~@2 eb3@2 ~@2 eb3@6 ~@2 eb3@3", J: "~ f3@3 ~ f3@6 ~@2 f3@2 ~@2 f3@4 c3@4 a2@4 c3@3",
K: "~ f2@3 ~ f2@8 a2@3 ~ c3@3 ~ f2@4 f3@7", L: "~ db3@3 ~ db3@5 ~@7 db3@3 ~ db3@5 ~@3 db3@3",
M: "~ b2@3 ~ b2@5 ~@7 gb2@3 ~ gb2@7 ~@4", N: "~ db3@7 ~ c3@7 ~ bb2@6 ~@2 db3@7",
O: "~ ab2@3 ~ c3@3 ~ eb3@3 ~ ab2@3 ~ ab3@3 ~ gb3@3 ~ f3@3 ~ ab3@3",
P: "~ gb3@3 ~ db3@3 ~ bb2@3 ~ db3@3 ~ gb2@3 ~ bb2@3 ~ db3@3 ~ bb2@3", Q: "~ gb2@6 ~@2 gb2@6 ~@2 gb2@6 ~@2 gb2@6 ~",
R: "~ gb3@3 ~ db3@3 ~ bb2@7 ~ db3@3 ~ gb2@3 ~ bb2@3 ~ db3@3", S: "~ a3@7 ~ a3@6 ~@2 a3@7 ~ g3@3 ~ e3@3",
T: "[~ d3@12 a3@4 d4@4 a3@4 ab3@4 g3@7 ~ g3@7 ~ g3@3 ~ g3@3 ~ g3@7 ~ a3@3]/2",
U: "[~ d3@12 a3@4 d4@8 a3@4 g3@8 d3@2 ~@2 g2@12 b2@4 c3@4 db3@3]/2",
V: "[~ d3@12 a3@4 d4@8 a3@4 g3@8 d3@2 ~@2 g2@12 g3@7 ~ c3@3]/2",
W: "[~ d3@12 a3@4 d4@8 a3@4 g3@8 d3@2 ~@2 g2@8 g3@4 b2@4 c3@4 db3@3]/2",
X: "[~ d3@12 a3@4 d4@4 e4@4 a3@4 g3@8 d3@2 ~@2 g2@8 g3@4 b2@7 ~ c3@3]/2",
Y: "[~ d3@12 a3@4 d4@4 e4@4 a3@4 g3@8 d3@3 ~ f3@3 ~ gb3@4 g3@4 d3@4 g3@4 c3@3]/2",
Z: "[~ d3@12 a3@4 d4@4 e4@4 a3@4 g3@7 ~ g3@7 ~ g3@7 ~ c3@4 d3@4 e3@3]/2",
AA: "[~ f2@2 ~@2 bb2@2 ~@2 c3@10 ~@2 f2@2 ~@2 bb2@2 ~@2 c3@7 ~ f2@2 ~@2 bb2@2 ~@2 c3@3 ~ d3@3 ~ eb3@3 ~ f3@3 ~ g3@3]/2",
AB: "~ ab3@11 ~ ab3@2 ~@2 ab3@11 ~ eb3@3", AC: "~ ab2@12 eb3@4 ab3@4 gb3@3 ~ f3@3 ~ eb3@3",
AD: "~ gb3@16 bb2@4 b2@4 c3@4 db3@3", AE: "~ gb2@4 ~@4 gb2@4 ~@19", AF: "~@17 bb2@2 ~@2 bb2@3 ~@8", AG: "~ bb2@31",
AH: "~@11 bb2@3 bb2@3 bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@2",
AI: "~ bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@2", AJ: "~ bb2@3 ~@28",
})).s("gm_acoustic_bass").gain(0.31)
// bass · acoustic bass · "Bass" · soft notes
const bass_soft = note(`<
~@88
[~ bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@3 bb2@2 bb2@3 bb2@2]!2
[~ bb2@2 bb2@3 bb2@3 bb2@2 ~@21]
~@3
>`).s("gm_acoustic_bass").gain(0.1)
// chords · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note(`<
~ A B C@8 D@5 E F E F E F E G H I J K@8 L@5 E F E F E F E G H M N O P O P O P O P O P O P O P O P Q@2 R S F E F E F E
F E G H T U ~@3 V W@2 ~@4 X
>`.pickRestart({
A: "~ [db5,gb5,b5]@3 ~@28", B: "~ [db5,gb5,b5]@2 ~@6 [db5,gb5,b5]@2 ~@21",
C: "[~ [bb4,db5,f5]@5 ~ [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,f5]@4 ~@2 [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,gb5]@4 ~@2 [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [bb4,db5,gb5]@5 ~ [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,c5,eb5]@4 ~@2 [bb4,c5,eb5]@2 [bb4,c5,eb5] ~@3 [bb4,c5,eb5]@2 [bb4,c5,eb5]@2 [f4,a4,c5]@4 ~@2 [f4,a4,c5]@2 [f4,a4,c5] ~@3 [f4,a4,c5]@2 [f4,a4,c5]@2 [bb4,db5,f5]@5 ~ [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,f5]@4 ~@2 [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,gb5]@4 ~@2 [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [bb4,db5,gb5]@5 ~ [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,c5,eb5]@4 ~@2 [bb4,c5,eb5]@2 [bb4,c5,eb5] ~@3 [bb4,c5,eb5]@2 [bb4,c5,eb5]@2 [f4,a4,c5]@4 ~@2 [f4,a4,c5]@2 [f4,a4,c5] ~@3 [f4,a4,c5]@2 [f4,a4,c5]]/8", // Bbm Gb Db Cm7 F Bbm Gb Db …
D: "[~ [bb4,db5,f5]@5 ~ [bb4,db5,f5] ~ [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [ab4,c5,eb5]@5 ~ [ab4,c5,eb5]@2 [ab4,c5,eb5] ~@3 [ab4,c5,eb5]@2 [ab4,c5,eb5]@2 [ab4,db5,f5]@5 ~ [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,eb5,gb5]@4 ~@2 [bb4,eb5,gb5]@2 [bb4,eb5,gb5] ~@3 [bb4,eb5,gb5]@2 [bb4,eb5,gb5]@2 [eb5,f5,bb5]@4 ~@2 [eb5,f5,bb5]@2 [eb5,f5,bb5] ~@3 [eb5,f5,bb5]@2 [eb5,f5,bb5]@2 [eb5,f5,bb5]@4 ~@2 [eb5,f5,bb5]@2 [eb5,f5,bb5] ~@3 [eb5,f5,bb5]@2 [eb5,f5,bb5]@2 [eb5,f5,a5]@4 ~@2 [eb5,f5,a5]@2 [eb5,f5,a5] ~@3 [eb5,f5,a5]@2 [eb5,f5,a5]@2 [eb5,f5,a5]@4 ~@2 [eb5,f5,a5]@2 [eb5,f5,a5] ~@3 [eb5,f5,a5]@2 [eb5,f5,a5]@2 [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@8 [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@7]/5", // Bbm Ab Db Ebm Ebsus2 F7 Db
E: "~ [gb4,b4,eb5]@4 [gb4,b4,eb5]@4 ~@8 [gb4,bb4,db5]@4 [gb4,bb4,db5]@4 ~@7", // B Gb
F: "~ [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@8 [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@7", // Db
G: "~ [db5,f5,ab5]@6 ~@2 [db5,f5,ab5]@6 ~@2 [db5,f5,ab5]@6 ~@2 [db5,f5,ab5]@6 ~", // Db
H: "~ [db5,eb5,ab5]@6 ~@2 [db5,eb5,ab5]@6 ~@2 [c5,eb5,ab5]@6 ~@2 [c5,eb5,ab5]@5 ~@2", // Dbsus2 Ab
I: "~ [b4,db5,gb5]@6 ~@2 [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@6 ~", // Bsus2
J: "~ [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@4 ~@3", // Bsus2
K: "[~ [bb4,db5,f5]@5 ~ [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,f5]@4 ~@2 [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,gb5]@4 ~@2 [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [bb4,db5,gb5]@6 [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [ab4,db5,f5]@5 ~ [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,c5,eb5]@4 ~@2 [bb4,c5,eb5]@2 [bb4,c5,eb5] ~@3 [bb4,c5,eb5]@2 [bb4,c5,eb5]@2 [f4,a4,c5]@4 ~@2 [f4,a4,c5]@2 [f4,a4,c5] ~@3 [f4,a4,c5]@2 [f4,a4,c5]@2 [bb4,db5,f5]@5 ~ [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,f5]@4 ~@2 [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [bb4,db5,gb5]@4 ~@2 [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [bb4,db5,gb5]@5 ~ [bb4,db5,gb5]@2 [bb4,db5,gb5] ~@3 [bb4,db5,gb5]@2 [bb4,db5,gb5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [ab4,db5,f5]@4 ~@2 [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,c5,eb5]@4 ~@2 [bb4,c5,eb5]@2 [bb4,c5,eb5] ~@3 [bb4,c5,eb5]@2 [bb4,c5,eb5]@2 [f4,a4,c5]@4 ~@2 [f4,a4,c5]@2 [f4,a4,c5] ~@3 [f4,a4,c5]@2 [f4,a4,c5]]/8", // Bbm Gb Db Cm7 F Bbm Gb Db …
L: "[~ [bb4,db5,f5]@5 ~ [bb4,db5,f5]@2 [bb4,db5,f5] ~@3 [bb4,db5,f5]@2 [bb4,db5,f5]@2 [ab4,c5,eb5]@5 ~ [ab4,c5,eb5]@2 [ab4,c5,eb5] ~@3 [ab4,c5,eb5]@2 [ab4,c5,eb5]@2 [ab4,db5,f5]@5 ~ [ab4,db5,f5]@2 [ab4,db5,f5] ~@3 [ab4,db5,f5]@2 [ab4,db5,f5]@2 [bb4,eb5,gb5]@4 ~@2 [bb4,eb5,gb5]@2 [bb4,eb5,gb5] ~@3 [bb4,eb5,gb5]@2 [bb4,eb5,gb5]@2 [eb5,f5,bb5]@4 ~@2 [eb5,f5,bb5]@2 [eb5,f5,bb5] ~@3 [eb5,f5,bb5]@2 [eb5,f5,bb5]@2 [eb5,f5,bb5]@4 ~@2 [eb5,f5,bb5]@2 [eb5,f5,bb5] ~@3 [eb5,f5,bb5]@2 [eb5,f5,bb5]@2 [eb5,f5,a5]@4 ~@2 [eb5,f5,a5]@2 [eb5,f5,a5] ~@3 [eb5,f5,a5]@2 [eb5,f5,a5]@2 [eb5,f5,a5]@4 ~@2 [eb5,f5,a5]@2 [eb5,f5,a5] ~@3 [eb5,f5,a5]@2 [eb5,f5,a5]@2 [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@8 [ab4,db5,f5]@4 [ab4,db5,f5]@4 ~@7]/5", // Bbm Ab Db Ebm Ebsus2 F7 Db
M: "~ [bb4,db5,gb5]@6 ~@2 [bb4,db5,gb5]@6 ~@2 [bb4,db5,gb5]@6 ~@2 [bb4,db5,gb5]@5 ~@2", // Gb
N: "~ [e4,ab4,db5]@6 ~@2 [e4,ab4,db5]@6 ~@2 [e4,ab4,db5]@6 ~@2 [e4,ab4,db5]@5 ~@2", // Dbm
O: "~@9 [f4,a4,d5]@3 ~@13 [f4,a4,d5]@2 ~@5", P: "~@9 [f4,b4,d5]@3 ~@13 [f4,b4,d5]@2 ~@5",
Q: "[~ f4@2 ~@2 bb4@2 ~@2 c5@10 ~@2 f4@2 ~@2 bb4@2 ~@2 c5@7 ~ f4@2 ~@2 bb4@2 ~@2 c5@3 ~ d5@3 ~ eb5@3 ~ f5@3 ~ g5@3]/2",
R: "~ [db5,eb5,ab5]@6 ~@2 [db5,eb5,ab5]@5 ~@3 [db5,eb5,ab5]@5 ~@3 [db5,eb5,ab5]@5 ~@2", // Dbsus2
S: "~ [db5,eb5,ab5]@5 ~@3 [db5,eb5,ab5]@5 ~@3 [db5,eb5,ab5]@5 ~@3 [db5,eb5,ab5]@4 ~@3", // Dbsus2
T: "~ [b4,db5,gb5]@6 ~@2 [b4,db5,gb5]@6 ~@2 [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@6 ~", // Bsus2
U: "~ [b4,db5,gb5]@5 ~@3 [b4,db5,gb5]@5 ~@18", V: "~@17 [f4,bb4,d5]@2 ~@2 [f4,bb4,d5]@3 ~@8",
W: "[~ [f4,bb4,d5]@40 ~@23]/2", X: "~ [f4,bb4,d5]@4 ~@27",
})).s("gm_acoustic_guitar_nylon").gain(0.15)
// 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 O N Q R S@2 C D E F C D E F G H I J K L M N O P O N Q R T U V W V W V W V W
V W V W V W V W ~@2 X Y K L M N O P O N Q R S Z ~@3 AA AB@2 ~@4 AC
>`.pickRestart({
A: "~ [db4,gb4,b4]@5 ~@26", B: "~ [db4,gb4,b4]@4 ~@4 [db4,gb4,b4]@5 ~@18",
C: "~ [bb2,f3,bb3,db4]@6 ~@2 [bb2,f3,bb3,db4]@7 ~ [bb2,f3,bb3,db4]@6 ~@2 [bb2,f3,bb3,db4]@6 ~", // Bbm
D: "~ [gb2,gb3,bb3,db4]@6 ~@2 [gb2,gb3,bb3,db4]@7 ~ [gb2,gb3,bb3,db4]@6 ~@2 [gb2,gb3,bb3,db4]@6 ~", // Gb
E: "~ [db2,f3,ab3,db4]@6 ~@2 [db2,f3,ab3,db4]@6 ~@2 [db2,f3,ab3,db4]@6 ~@2 [db2,f3,ab3,db4]@5 ~@2", // Db
F: "~ [c3,bb3,c4,eb4]@6 ~@2 [c3,bb3,c4,eb4]@6 ~@2 [f2,a3,c4,eb4]@6 ~@2 [f2,a3,c4,eb4]@5 ~@2", // Cm7 F7
G: "~ [bb2,f3,bb3,db4]@6 ~@2 [bb2,f3,bb3,db4]@6 ~@2 [c3,eb3,ab3,c4]@6 ~@2 [c3,eb3,ab3,c4]@6 ~", // Bbm Ab
H: "~ [db3,f3,ab3,db4]@6 ~@2 [db3,f3,ab3,db4]@7 ~ [eb3,gb3,bb3,eb4]@6 ~@2 [eb3,gb3,bb3,eb4]@6 ~", // Db Ebm
I: "~ [f2,bb3,eb4,f4]@7 ~ [f2,bb3,eb4,f4]@7 ~ [f2,bb3,eb4,f4]@6 ~@2 [f2,bb3,eb4,f4]@6 ~", // Ebsus2
J: "~ [f2,a3,eb4,f4]@6 ~@2 [f2,a3,eb4,f4]@6 ~@2 [f2,a3,eb4,f4]@6 ~@2 [f2,a3,eb4,f4]@5 ~@2", // F7
K: "~@9 [gb4,ab4,db5]@3 ~@9 [f4,ab4,db5]@3 ~@8", L: "~@9 [eb4,gb4,b4]@4 ~@8 [db4,gb4,bb4]@4 ~@7",
M: "~@9 [gb4,ab4,db5]@4 ~@8 [f4,ab4,db5]@3 ~@8", N: "~@9 [eb4,gb4,b4]@3 ~@9 [db4,gb4,bb4]@4 ~@7",
O: "~@9 [gb4,ab4,db5]@4 ~@8 [f4,ab4,db5]@4 ~@7", P: "~@9 [eb4,gb4,b4]@3 ~@9 [db4,gb4,bb4]@3 ~@8",
Q: "~ [ab3,db4,f4]@6 ~@2 [ab3,db4,f4]@6 ~@2 [ab3,db4,f4]@6 ~@2 [ab3,db4,f4]@6 ~", // Db
R: "~ [ab3,db4,eb4]@6 ~@2 [ab3,db4,eb4]@6 ~@2 [ab3,c4,eb4]@6 ~@2 [ab3,c4,eb4]@6 ~", // Absus4 Ab
S: "~ [gb3,b3,db4]@6 ~@2 [gb3,b3,db4]@6 ~@2 [gb3,b3,db4]@6 ~@2 [gb3,b3,db4]@6 ~", // Gbsus4
T: "~ [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@6 ~", // Gb
U: "~ [e3,ab3,db4]@6 ~@2 [e3,ab3,db4]@6 ~@2 [e3,ab3,db4]@6 ~@2 [e3,ab3,db4]@6 ~", // Dbm
V: "~ [f3,a3,c4,d4]@5 ~@3 [f3,a3,c4,d4]@6 ~@2 [f3,a3,c4,d4]@6 ~@2 [f3,a3,c4,d4]@6 ~", // Dm7
W: "~ [f3,b3,d4]@6 ~@2 [f3,b3,d4]@6 ~@2 [f3,b3,e4]@6 ~@2 [f3,b3,d4]@7", // Bdim E Bdim
X: "~ [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@5 ~@3 [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@6 ~", // Gb
Y: "~ [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@6 ~@2 [bb3,db4,gb4]@5 ~@3 [bb3,db4,gb4]@6 ~", // Gb
Z: "~ [gb3,b3,db4]@6 ~@2 [gb3,b3,db4]@6 ~@17", AA: "~@17 [bb1,bb2]@2 ~@2 [bb1,bb2]@3 ~@8",
AB: "[~ [bb1,bb2]@41 ~@22]/2", AC: "~ [bb1,bb2]@4 ~@27",
})).s("gm_piano").gain(0.31)
// other · trumpet
const trumpet = note(`<
~ A B ~@12 C@8 D@2 E@2 F G@2 H I G@2 H J K L M C@8 D@2 N@2 O@4 P Q R@3 S@8 T U@2 C@8 D@2 V W ~@3 X Y@6 Z
>`.pickRestart({
A: "~ b4@4 ~@27", B: "~ b4@4 ~@4 b4@5 ~@18", C: "~@9 db5@4 ~@8 db5@3 ~@8",
D: "[~@9 f5@4 eb5@4 db5@4 c5@4 bb4@4 ab4@35]/2",
E: "[~@17 gb4@26 ~@2 gb4@2 ab4@2 bb4@2 ~@2 c5 ~@3 db5@2 ~@2 eb5@2 ~]/2", F: "~ f5@25 ~@6",
G: "[~ bb4@25 ~@3 db5@2 eb5@2 f5@25 ~@6]/2", H: "~ eb5@11 ~@5 c5@11 ~@4", I: "~ bb4@24 ~@7",
J: "~ bb4@11 ~@5 ab4@12 ~@3", K: "~ ab4@12 ~@4 gb4@11 ~@4",
L: "~@5 f4 ~ bb4 ~ c5@6 ~@2 f4 ~ bb4 ~ c5@9 ~@2, ~@9 bb4 ~@22", M: "~@5 f4 ~ a4 ~ c5@6 ~@2 f4 ~ a4 ~ c5@9 ~@2",
N: "[~@17 bb4@12 b4@2 bb4@2 ab4@25 ~@6]/2",
O: "[~ a4@11 ~@5 a4@7 ~ c5@4 b4@28 ~@4 a4@2 g4@2 a4@12 ~@4 e5@8 c5@4 b4@28 ~@7]/4", P: "~ d4@8 f4@8 a4@8 c5@7",
Q: "~ e5@2 d5@2 ~ c5@3 b4@7 ~ a4@8 g4@7",
R: "[~ a4@8 f4@8 d4@7 ~ c4@4 b3@19 ~@9 d4@2 e4@2 f4@2 g4@2 a4@7 ~ c5@4 a4@8 c5@4 ~@7]/3",
S: "[~@9 g5@4 ~@4 e5@4 d5@3 ~ c5@3 ~ d5@12 ~@4 c5@2 b4@2 c5@8 ~@4 b4@2 a4@2 b4@8 ~@8 f4@2 e4@2 f4@2 g4@2 a4@2 g4@2 a4@2 b4@2 c5@2 b4@2 a4@2 b4@2 c5@10 ~@2 e5@2 ~@2 e5@2 ~@2 c5@2 d5@6 g5@2 ~@6 d5 ~ d5@6 g5@2 ~@2 f5@2 e5@2 d5@2 c5@6 d5@2 ~@2 e5@2 ~@2 f5@2 e5@6 d5@2 c5@2 d5@2 c5@2 b4@2 c5@6 b4@2 a4@2 b4@2 a4@2 g4@2 a4@6 g4@2 f4@2 g4@2 f4@2 e4@2 f4@2 ~@4 c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@2]/8",
T: "~ c5@2 ~@2 c5 ~@3 c5 ~@3 c5@2 ~@2 c5@2 ~@2 c5@2 ~@2 c5@2 ~@2 c5@2 ~", U: "[~ ab4@60 ~@3]/2", V: "~ b4@30 ~",
W: "~ b4@4 ~@4 b4@4 ~@19", X: "~@25 bb4@2 ~@2 bb4@2 ~", Y: "[~ bb4@190 ~]/6", Z: "~ bb4@4 ~@27",
})).s("gm_trumpet").gain(0.51)
// other · alto sax · "Sax"
const alto_sax = note(`<
~ A B ~@12 C D C D C D C D E@2 F@2 G H@2 I J H@2 I K L ~@2 C D C D C D C D E@2 M@2 N@4 O P Q@3 R@8 S T@2 C D C D C D C
D E@2 U V ~@3 W X@6 Y
>`.pickRestart({
A: "~ gb4@5 ~@26", B: "~ gb4@3 ~@5 gb4@3 ~@20", C: "~@9 ab4@4 ~@8 ab4@4 ~@7", D: "~@9 gb4@4 ~@8 gb4@4 ~@7",
E: "[~@9 f4@4 eb4@4 db4@4 c4@4 bb3@4 eb4@35]/2",
F: "[~@17 gb3@26 ~@2 gb3@2 ab3@2 bb3@2 ~@2 c4 ~@3 db4@2 ~@2 eb4@2 ~]/2", G: "~ f4@25 ~@6",
H: "[~ gb4@25 ~@3 db4@2 eb4@2 f4@26 ~@5]/2", I: "~ eb4@12 ~@4 c4@12 ~@3", J: "~ f4@24 ~@7",
K: "~ db4@12 ~@4 c4@13 ~@2", L: "~ db4@13 ~@3 eb4@11 ~@4", M: "[~@17 db4@12 eb4@2 db4@2 db4@25 ~@6]/2",
N: "[~ a3@11 ~@5 a3@8 c4@4 b3@28 ~@4 a3@2 g3@2 a3@12 ~@4 e4@8 c4@4 b3@28 ~@7]/4", O: "~ d3@8 f3@8 a3@8 c4@7",
P: "~ e4@2 d4@2 ~ c4@2 ~ b3@8 a3@8 g3@7",
Q: "[~ a3@8 f3@8 d3@8 c3@4 b2@19 ~@9 a3@2 b3@2 c4@2 d4@2 e4@8 g4@4 e4@7 ~ g4@2 ~@9]/3",
R: "[~@9 g4@4 ~@4 e4@4 d4@4 c4@4 d4@12 ~@4 c4@2 b3@2 c4@8 ~@4 b3@2 a3@2 b3@7 ~@9 c4@2 b3@2 c4@2 d4@2 e4@2 d4@2 e4@2 d4@2 c4@2 b3@2 a3@2 b3@2 c4@10 ~@2 e4 ~@3 e4@2 ~@2 c4@2 d4@6 g4@2 ~@6 d4 ~ d4@6 g4@2 ~@2 f4@2 e4 ~ d4 ~ a4@5 ~ b4@2 ~@2 c5 ~@3 d5@2 c5@6 b4@2 a4@2 b4@2 a4@2 g4@2 a4@5 ~ g4@2 f4@2 g4@2 f4@2 e4@2 f4@5 ~ e4@2 d4@2 e4@2 d4@2 c4@2 d4@2 ~@4 g4 ~@3 g4 ~@3 g4@2 ~@2 g4@2 ~@2 g4 ~@3 g4@2 ~@2 g4 ~@2]/8",
S: "~ g4 ~@3 g4@2 ~@2 g4@2 ~@2 g4 ~@3 g4@2 ~@2 g4 ~@3 g4@2 ~@2 g4@2 ~", T: "[~ ab3@60 ~@3]/2", U: "~ gb4@30 ~",
V: "~ gb4@4 ~@4 gb4@4 ~@19", W: "~@25 f4@2 ~@2 f4@2 ~", X: "[~ bb3@191]/6", Y: "~ bb3@3 ~@28",
})).s("gm_alto_sax").gain(0.37)
// other · trombone
const trombone = note(`<
~ A B ~@12 C D C D C D C D E@2 F@2 G H@2 I J H@2 I K L M N C D C D C D C D E@2 O@2 P@4 Q R S@3 T@8 U V@2 C D C D C D C
D E@2 W X ~@3 Y Z@6 AA
>`.pickRestart({
A: "~ db4@4 ~@27", B: "~ db4@3 ~@5 db4@4 ~@19", C: "~@9 gb4@4 ~@8 f4@4 ~@7", D: "~@9 eb4@3 ~@9 db4@4 ~@7",
E: "[~@9 f4@4 eb4@4 db4@4 c4@4 bb3@4 db4@35]/2",
F: "[~@17 gb3@26 ~@2 gb3@2 ab3@2 bb3@2 ~@2 c4 ~@3 db4@2 ~@2 eb4@2 ~]/2", G: "~ f4@26 ~@5",
H: "[~ db4@24 ~@4 db4@2 eb4@2 f4@25 ~@6]/2", I: "~ eb4@12 ~@4 c4@12 ~@3", J: "~ db4@24 ~@7",
K: "~ db4@12 ~@4 ab3@12 ~@3", L: "~ db4@13 ~@3 eb4@11 ~@4", M: "~@5 f3 ~ bb3 ~ c4@6 ~@2 f3 ~ bb3 ~ c4@9 ~@2",
N: "~@5 f3 ~ a3 ~ c4@5 ~@3 f3 ~ a3 ~ c4@7 ~@4", O: "[~@17 gb3@11 ~ ab3@2 gb3@2 e3@25 ~@6]/2",
P: "[~ a3@11 ~@5 a3@8 c4@4 b3@28 ~@4 a3@2 g3@2 a3@12 ~@4 e4@8 c4@4 b3@28 ~@7]/4", Q: "~ d3@8 f3@8 a3@8 c4@6 ~",
R: "~ e4@2 d4@2 ~ c4@2 ~ b3@7 ~ a3@8 g3@7",
S: "[~ a3@8 f3@8 d3@8 c3@4 b2@20 ~@8 f3@2 g3@2 a3@2 b3@2 c4@7 ~ e4@4 c4@7 ~ e4@4 ~@7]/3",
T: "[~@9 g4@4 ~@4 e4@4 d4@4 c4@4 d4@12 ~@4 c4@2 b3@2 c4@8 ~@4 b3@2 a3@2 b3@7 ~@9 a3@2 ab3@2 a3@2 b3@2 c4@2 b3@2 c4@2 b3@2 c4@2 b3@2 a3@2 b3@2 c4@9 ~@3 e4@2 ~@2 e4@2 ~@2 c4 ~ d4@5 ~ g4@2 ~@6 d4 ~ d4@6 g4@2 ~@2 f4@2 e4 ~ d4@2 e4@6 f4@2 ~@2 g4@2 ~@2 a4@2 g4@6 f4@2 e4@2 f4@2 e4@2 d4@2 e4@6 d4@2 c4@2 d4@2 c4@2 b3@2 c4@5 ~ b3@2 a3@2 b3@2 a3@2 g3@2 a3@2 ~@4 f4@2 ~@2 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~@2]/8",
U: "~ f4 ~@3 f4@2 ~@2 f4@2 ~@2 f4 ~@3 f4@2 ~@2 f4@2 ~@2 f4 ~@3 f4@2 ~", V: "[~ ab2@59 ~@4]/2", W: "~ db4@29 ~@2",
X: "~ db4@4 ~@4 db4@4 ~@19", Y: "~@25 d4@2 ~@2 d4@2 ~", Z: "[~ bb3@191]/6", AA: "~ bb3@3 ~@28",
})).s("gm_trombone").gain(0.72)
// drums · kick
const kick = s("bd").struct(`<
~ A@2 B@8 A@4 C@8 D@3 A B@7 A@5 C@8 D@3 A D@3 B@13 A@4 C@8 D@3 E ~@2 F G H ~@5 H
>`.pickRestart({
A: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", B: "~ x ~@3 x ~@7 x ~@3 x ~@3 x ~@7 x ~@2",
C: "~ x ~@3 x ~@7 x ~@3 x ~@3 x ~@10", D: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", E: "~@5 x ~@7 x ~@18",
F: "~@17 x ~@3 x ~@3 x ~@3 x ~@2", G: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@10", H: "~ x ~@30",
})).gain(0.41)
// drums · snare
const snare = s("sd").struct(`<
~ A B C@4 D@4 E@3 F G@8 H@3 I C@7 J K L H F G@8 H@2 K M H@3 N C@7 O C@3 P Q@2 R S G@8 H@2 K T U V W X ~@7
>`.pickRestart({
A: "~ x ~@5 x ~ x ~@3 x ~@3 x ~@9 x ~ x ~ x", B: "~@9 x ~@5 x ~@2 x!2 ~ x!3 ~ x!3 ~ x!3", C: "~@9 x ~@15 x ~@6",
D: "~@9 x ~@5 x ~@9 x ~@6", E: "~ x ~@7 x ~@5 x ~@9 x ~@6", F: "~@9 x ~@5 x ~@9 x ~ x ~ x ~ x",
G: "~@9 x ~@3 x ~ x ~ x ~@7 x ~ x ~@4", H: "~ x ~@7 x ~@7 x ~@7 x ~@6",
I: "~ x ~@5 x ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x ~@3 x ~@2", J: "~@5 x ~@3 x ~@11 x ~@5 x ~ x ~ x",
K: "~ x ~@7 x ~@7 x ~@7 x ~@5 x", L: "~@9 x ~@7 x ~@7 x ~@6", M: "~ x ~ x ~ x ~ x ~ x ~@22",
N: "~ x ~@7 x ~@15 x ~@6", O: "~@9 x ~@15 x ~ x ~ x ~@2", P: "~ x ~@5 x ~ x ~@22",
Q: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", R: "~ x ~@3 x!3 ~ x ~@9 x ~@3 x ~@3 x ~ x ~ x",
S: "~ x ~ x ~ x ~ x ~@24", T: "~ x ~@7 x ~@11 x ~@5 x ~ x ~@2", U: "~@7 x ~ x ~@8 x!2 ~ x!3 ~ x ~@4 x!2",
V: "~ x ~ x ~@3 x ~@3 x ~ x ~ x ~@5 x ~@5 x ~@4", W: "~ x ~@5 x ~@10 x!2 ~ x!3 ~ x!3 ~ x!3",
X: "~ x!3 ~ x!3 ~ x!3 ~ x!3 ~@9 x ~@3 x ~@2",
})).gain(0.46)
// drums · low tom
const low_tom = s("lt").struct("<~@50 A ~@19 B ~@14 C ~@3 D@4 E>".pickRestart({
A: "~@29 x ~@2", B: "~@25 x!3 ~ x!3", C: "~@9 x ~@3 x ~@18", D: "~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3",
E: "~ x ~@30",
})).gain(0.36)
// drums · pedal hat
const pedal_hat = s("hh").struct("<A ~@2 A@12 ~@8 A@3 B A@12 ~@8 A@3 B A@16 ~@12 A@3 ~@12>".pickRestart({
A: "~ x ~@7 x ~@7 x ~@7 x ~@6", B: "~ x ~@30",
})).gain(0.36)
// drums · mid tom
const mid_tom = s("mt").struct("<~ A ~@48 B ~@15 C ~@3 D ~@12 E F G ~@8>".pickRestart({
A: "~@25 x ~@6", B: "~@25 x ~ x ~@4", C: "~@25 x ~ x ~ x ~@2", D: "~@17 x!3 ~ x!3 ~@8", E: "~ x ~@30",
F: "~@29 x ~ x", G: "~@3 x ~ x ~@11 x ~@14",
})).gain(0.46)
// … 19 more lines
More by Chicago
25 Or 6 To 41970 · A minor · 140 bpmDoes Anybody Really Know What Time It Is?1970 · G major · 119 bpmIf You Leave Me NowB major · 103 bpmFeelin' Stronger Every Day1973 · F major · 164 bpmSaturday In The ParkC major · 135 bpmAlive Again1978 · B♭ major · 126 bpmAlong Comes A Woman1985 · D major · 112 bpmAnother Rainy Day In New York City1976 · A major · 155 bpm
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.