0:00/0:00
// American Patrol — Miller
// 186 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 148 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(186/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 · "ACOU BASS"
const bass = note(`<
~ A@3 B C D E F A@3 G H I J K L M N O P J Q G R K S T R K U V W ~ X ~ Y ~ Z AA@8 AB@7 AC AD ~@3 AE@8 AF@6 AG@2 AH@7
AI@2 ~@7 AJ@8 AK@5 ~@3 AL@4 AM@2 AN AO AP AQ AP AR AS AQ AT AU AV AO AW AX AY AZ AW AZ BA@2 BB@2 BA@2 BB@2 BA@2 BB@2
BC@2 BD@2
>`.pickRestart({
A: "ab2@5 ~ ab2@5 ~ eb2@5 ~ eb2@5 ~", B: "ab2@5 ~ ab1@5 ~ bb1@5 ~ c2@5 ~", C: "eb2@5 ~ eb2@5 ~ bb2@5 ~ eb2@5 ~",
D: "ab2@5 ~ ab2@5 ~ f2@5 ~ eb2@5 ~", E: "bb2@5 ~ ab2@5 ~ g2@5 ~ f2@5 ~", F: "eb2@5 ~ bb2@5 ~ g2@5 ~ eb2@5 ~",
G: "ab2@5 ~ ab2@5 ~ bb2@5 ~ c3@5 ~", H: "db3@5 ~ c3@5 ~ bb2@5 ~ ab2@5 ~", I: "g2@5 ~ f2@5 ~ eb2@5 ~ f2@5 ~",
J: "eb2@5 ~ eb2@5 ~ f2@5 ~ g2@5 ~", K: "ab2 ~@5", L: "eb2@5 ~ f2@5 ~ g2@5 ~ ab2@5 ~",
M: "bb2@5 ~ a2@5 ~ bb2@5 ~ eb3@5 ~", N: "eb3@5 ~ db3@5 ~ c3@5 ~ bb2@5 ~", O: "ab2@5 ~ g2@5 ~ f2@5 ~ c2@5 ~",
P: "eb2@5 ~ f2@5 ~ g2@5 ~ bb2@5 ~", Q: "ab2@5 ~ ab2@5 ~ eb2@5 ~ f2@5 ~", R: "db3 ~@5", S: "g2 ~@5", T: "f2 ~@5",
U: "eb2@5 ~ eb2@5 ~ g2@5 ~ bb2@5 ~", V: "ab2@5 ~ eb2@4 ab2@3 ~@11", W: "~@4 c2@7 c2@6 ~ c2@4 f2@2",
X: "~@2 eb2@4 eb2@3 eb2@2 ab2", Y: "~@2 g2@4 g2@3 g2@2 c2", Z: "~@3 bb1@8 bb1@6 bb1@4 eb2@3",
AA: "[~@23 eb2@5 ~ eb2@5 ~ e2@5 ~ e2@5 ~ f2@5 ~ gb2@5 ~ g2@5 ~ g2@5 ~ ab2@5 ~ f2@5 ~ eb2@5 ~ f2@5 ~ ab2@5 ~ f2@5 ~ eb2@5 ~ c2@5 ~ eb2@5 ~ eb2@5 ~ e2@5 ~ e2@5 ~ f2@5 ~ gb2@5 ~ g2@5 ~ g2@5 ~ ab2@5 ~ f2@5 ~ eb2@5 ~ f2@5 ~ ab2]/8",
AB: "[~@5 ab1@5 ~ bb1@5 ~ c2@5 ~ db2@5 ~ f2@5 ~ ab2@5 ~ f2@5 ~ ab2@5 ~ g2@5 ~ f2@5 ~ e2@5 ~ eb2@5 ~ f2@5 ~ g2@5 ~ bb2@5 ~ ab2@5 ~ g2@5 ~ f2@5 ~ eb2@5 ~ db2@5 ~ c2@5 ~ bb1@5 ~ db2@5 ~ ab2@5 eb2@5 ~ f2@5 ~ ab2@5 ~@3]/7",
AC: "~ eb2 d2@2 eb2 db2@3 ~@2 c2@2", AD: "~@2 bb1@3 ~@2 a1@4 ab1",
AE: "[~@10 eb2@4 ~@2 eb2@4 ~@2 ab2@5 ~ gb2@5 ~ eb2@5 ~ c2@5 ~ ab1@5 ~ ab1@5 ~ bb1@5 ~ c2@5 ~ db2@5 ~ f2@5 ~ ab2@5 ~ f2@5 ~ db2@5 ~ ab1@5 ~ bb1@5 ~ db2@5 ~ ab2@5 ~ gb2@5 ~ eb2@5 ~ c2@5 ~ ab1@5 ~ ab1@5 ~ bb1@5 ~ c2@5 ~ db2@5 ~ f2@5 ~ ab2@5 ~ f2@5 ~ db2@2]/8",
AF: "[~@4 ab1@5 ~ bb1@5 ~ db2@5 ~ db2@5 ~ f2@5 ~ ab2@5 ~ f2@5 ~ db2@5 ~ db2@5 ~ eb2@5 ~ f2@5 ~ gb2@5 ~ db2@5 ~ bb1@5 ~ db2@5 ~ gb1@4 ~@2 gb2@12 ~@4 f2@2 eb2@4 f2@3 ~@3 gb2@3 ~@3 g2@3 ~@3 ab2@3 ~]/6",
AG: "[~@4 ab2@12 ab1@3 ~@3 db2@5 ~ f2@5 ~ ab2@5 ~ f2@5 ~ db2@2]/2",
AH: "[~@22 eb2@5 ~ g2@5 ~ bb2@5 ~ g2@5 ~ f2@5 ~ f2@5 ~ bb1@5 ~ bb1@5 ~ eb2@5 ~ eb2@5 ~ bb1@5 ~ bb1@5 ~ eb2@5 ~ g2@5 ~ bb2@5 ~ bb1@5 ~ eb2@5 ~ g2@5 ~ bb2@5 ~ g2@5 ~ f2@5 ~ g2@5 ~ ab2@5 ~ f2@5 ~ bb2@2]/7",
AI: "[~@4 bb1@5 ~ c2@5 ~ d2@5 ~ eb2@9 ~ eb2@3 ~@13]/2",
AJ: "[~@21 ab1@5 ~@2 c2@5 eb2@5 ~ f2@5 ~ ab2@5 ~ f2@5 ~ eb2@5 ~ c2@5 ~ ab1@5 ~ ab2@5 ~ f2@5 ~ eb2@5 ~ c2@5 ~ bb1@5 ~ ab1@5 ~ c2@5 ~ eb2@5 ~ g2@5 ~ bb2@5 ~ eb2@5 ~ ab2@5 ~ f2@5 ~ eb2@5 ~ c2@5 ~ bb1@5 ~ d2@5 ~ f2@5 ~ d2@5 ~ eb2@3]/8",
AK: "[~@3 bb2@5 ~ g2@5 ~ eb2@5 ~ ab2@5 ~ f2@5 ~ eb2@5 ~ c2@5 ~ ab1@5 ~ c2@5 ~ eb2@5 ~ f2@5 ~ ab2@5 ~ bb2@5 ~ c3@5 ~ eb3@5 ~ ab2@5 ~ f2@5 ~ eb2@5 ~ c2@5 ~ db2@3]/5",
AL: "[~@21 eb2@5 ~ g2@5 ~ bb2@5 ~ g2@5 ~ eb2@5 ~ eb2@5 ~ f2@5 ~ g2@5 ~ ab2@5 ~ g2@5 ~ f2@5 ~ eb2@5 ab1@4]/4",
AM: "[~@3 c2@5 ~ eb2@5 ~ c2@5 ~ eb2@5 ~ bb2@5 g2@5 ~@2 f2@5 eb2@4]/2", AN: "~@3 db2@5 c2@5 ~ bb1@5 ~ ab1@4",
AO: "~@2 c2@5 ~ eb2@5 ~ f2@5 ~ ab2@4", AP: "~@2 g2@5 ~ f2@5 ~ eb2@5 ~ db2@4", AQ: "~@2 f2@5 ~ ab2@5 ~ f2@5 ~ ab2@4",
AR: "~@2 bb1@5 ~ g1@5 ~ g2@5 ~ f2@4", AS: "~@2 g2@5 ~ ab2@5 ~ eb2@5 ~ db2@4", AT: "~@2 g2@5 ~ f2@5 ~ c2@5 ~ eb2@4",
AU: "~@2 f2@5 ~ g2@5 ~ eb2@5 ~ ab2@4", AV: "~@2 eb2@5 ~ f2@5 ~ g2@5 ~ ab1@4", AW: "~@2 f2@5 ~ eb2@5 ~ f2@5 ~ ab2@4",
AX: "~@2 bb2@5 ~ c3@5 ~ eb2@5 ~ ab2@4", AY: "~@2 eb2@5 ~ f2@5 ~ g2@5 ~ ab2@4", AZ: "~@2 f2@5 ~ eb2@5 ~ f2@5 ~ gb2@4",
BA: "[~@2 f2@5 ~ eb2@5 ~ db2@12 f2@5 ~ ab2@5 ~ f2@5 ~ ab2@4]/2",
BB: "[~@2 f2@5 ~ ab2@5 ~ ab2@12 f2@5 ~ eb2@5 ~ f2@5 ~ ab2@4]/2",
BC: "[~@2 f2@5 ~ eb2@5 ~ db2@12 f2@5 ~ ab2@5 ~ f2@5 ~ db2@4]/2",
BD: "[~@2 f2@5 ~ ab2@5 ~ ab2@12 f2@5 ~ eb2@5 ~ c2@5 ~ ab1 ~@3]/2",
})).s("gm_acoustic_bass").gain(0.6)
// chords · trumpet
const trumpet = note(`<
~@8 A ~@7 B C D E F G H I J K L M N K L M ~ O ~ P ~ Q ~ R ~@8 S@3 ~@2 T U V@2 ~@3 W@3 ~ X@3 ~@2 Y@3 Z@2 AA@2 ~@8 AB AC
AD@3 AE ~ AF AG AH AI AJ AK AL AM AN@2 AO AI AO ~@4 AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE@2 ~@7 BF@2 BG@2
BH@2 BI@2 BF@2 BG@2 BH@2 BJ@2
>`.pickRestart({
A: "~@4 [c5,eb5]@3 ~@5 [c5,eb5]@4 ~@8", B: "~@3 eb4@2 f4 [eb4,g4]@2 [f4,ab4] [g4,bb4]@2 [ab4,c5]",
C: "[bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~ [bb4,db5] ~", D: "[bb4,db5]@2 [a4,c5] [bb4,db5]@6 [b4,d5]@2 [c5,eb5]",
E: "~@2 [c5,eb5]@4 [c5,eb5]@2 [bb4,db5] [ab4,c5]@2 [bb4,db5]", F: "[c5,eb5]@3 ~ [ab4,c5]@2",
G: "[bb4,db5]@3 ~@3 [bb4,db5]@3 ~@3 [bb4,db5]@3 ~@3 [bb4,db5]@4 [bb4,db5]@2", // Bbm
H: "~@2 [a4,c5] [bb4,db5]@4 ~ [b4,d5]@4", // Am Bbm Bm
I: "[c5,eb5]@4 [c5,eb5]@3 ~@3 [c5,eb5]@3 ~@3 [bb4,db5]@2 [ab4,c5]@4 [bb4,db5]@2", J: "[c5,eb5]@3 ~",
K: "[db5,f5] ~@5", L: "[c5,eb5] ~@5", M: "[bb4,db5] ~@5", N: "[ab4,c5] ~@5",
O: "~@4 [e4,g4]@8 [f4,ab4]@3 ~@3 [g4,bb4]@4 [f4,ab4]@2", P: "~@4 [g4,bb4]@8 [ab4,c5]@3 ~@3 [bb4,db5]@4 [ab4,c5]@2",
Q: "~@4 [b4,d5]@8 [c5,eb5]@3 ~@3 [d5,f5]@4 [c5,eb5]@2", R: "~@3 [d5,f5]@8 [eb5,g5]@3 ~@3 [f5,ab5]@4 [eb5,g5]@3",
S: "[~@15 [gb4,ab4]@8 [db5,f5]@3 ~@3 [db5,f5]@3 ~@3 [eb5,ab5]@10 [db5,f5]@2 [c5,eb5]@4 [c5,eb5]@3 ~@3 [db5,f5]@2 [c5,eb5]@4 [bb4,db5]@2 [ab4,c5]@4 ~@3]/3", // Gbsus2 Db Ab5 Db Cm Db Cm Bbm …
T: "~@5 [db5,f5]@4 [f5,ab5]@14 ~", U: "~@8 [eb5,ab5]@2 ~@4 [eb5,ab5]@3 ~@7",
V: "[~ [c5,eb5] [b4,d5]@2 [c5,eb5] [db5,e5]@2 [c5,eb5] [db5,e5]@2 [d5,f5] [db5,e5]@2 [d5,f5] [eb5,gb5]@2 [d5,f5] [eb5,gb5]@2 [e5,g5] [eb5,gb5]@2 [e5,g5] [f5,ab5]]/2", // Cm Bm Cm Dbm Cm Dbm Dm Dbm …
W: "[~@10 [ab4,c5]@3 ~@3 [bb4,db5]@3 ~@3 [c5,eb5]@12 [c5,eb5]@10 [c5,eb5]@14 [f5,ab5]@6 [eb5,gb5]@4 [db5,f5]@3 ~]/3", // Ab Bbm Cm Fm Ebm Db
X: "[~@22 [c5,eb5]@11 ~ [c5,eb5]@10 [c5,eb5]@14 [f5,ab5]@6 [eb5,gb5]@4 [db5,f5]@3 ~]/3", // Cm Fm Ebm Db
Y: "[~@2 [eb5,ab5]@3 ~@5 [eb5,ab5]@11 ~ [eb5,gb5]@6 [db5,f5]@4 [c5,eb5]@2 ~@4 [bb4,db5]@8 [ab4,c5]@4 [gb4,bb4]@20 ~@2]/3", // Ab5 Ebm Db Cm Bbm Ab Gb
Z: "[~@4 [eb5,bb5]@15 ~ [f5,ab5]@2 [eb5,gb5]@4 [d5,f5]@2 ~@4 [db5,eb5]@2 ~@4 [bb4,db5]@2 ~@4 [ab4,c5]@2 ~@2]/2", // Eb5 Fm Ebm Dm Dbsus2 Bbm Ab
AA: "[~@4 [c5,e5]@10 [bb4,db5]@2 [gb4,bb4]@3 ~@3 [bb4,db5]@12 [bb4,db5]@10 [bb4,db5]@3 ~]/2", AB: "~@11 [bb4,eb5]",
AC: "~@2 [bb4,eb5]@2 [bb4,eb5] [bb4,eb5]@2 [g4,bb4] [eb4,g4]@2 [g4,bb4] [bb4,eb5]", // Eb5 Gm Eb Gm Eb5
AD: "[~@8 [bb4,eb5]@11 ~ [g4,bb4]@2 [bb4,eb5]@4 [eb5,g5]@3 ~@3 [g4,bb4]@2 [bb4,eb5]@4 [eb5,g5]@3 ~@3 [g4,bb4]@2 [bb4,eb5]@4 [eb5,g5]@3 ~@3 [g4,bb4]@2 [bb4,eb5]@4 [eb5,g5]@3 ~@4 eb5@3, ~@34 [g4,bb4] ~]/3", // Eb5 Gm Eb5 Eb Gm Eb5 Eb Gm …
AE: "~@4 eb4@3 d4@2 eb4@4 d4@2 ~ eb4@4 ~ eb4@3, ~@10 d4 ~", AF: "~@7 bb4 c5 d5 eb5@4 ~@10", AG: "~@20 [f4,ab4]@3 ~",
AH: "~@2 [f4,ab4]@5 [f4,ab4]@2 ~ [f4,ab4]@12 ~@2", AI: "~@19 [f4,ab4]@3 ~@2",
AJ: "~ [f4,ab4]@5 ~ [f4,ab4]@2 [f4,ab4]@12 ~@3", AK: "~@19 [g4,bb4]@3 ~@2",
AL: "~ [g4,bb4]@6 [g4,bb4]@2 [g4,bb4]@12 ~@3", AM: "~@19 [ab4,bb4]@3 ~@2",
AN: "[~ [ab4,bb4]@6 [ab4,bb4]@2 [ab4,bb4]@11 ~ [g4,bb4]@10 [g4,bb4]@3 ~@9 [f4,ab4]@3 ~@2]/2", // Absus2 Gm Fm
AO: "~ [f4,ab4]@6 [f4,ab4]@2 [f4,ab4]@12 ~@3", AP: "eb5@2 d5 db5@4 c5@2 bb4@4 a4@2 ab4@4 f4@2 g4@3",
AQ: "~@3 gb4@4 ~@2 g4@4 ~@2 ab4@4 ~@2 bb4@3", AR: "~ a4@4 ~@2 bb4@4 ~@2 eb4@8 ~@3",
AS: "~ c5@2 b4@4 ~@2 c5@4 ~@2 db5@4 ~@2 eb5@3", AT: "~ c5@2 ab4@4 eb4@12 ~ db5@4",
AU: "~@3 eb5@4 ~ [db5,d5,eb5] ~@6 eb5@3 db5@2 ~@4, ~@4 e5@3 ~@5", AV: "ab4@2 ~ b4@3 c5@2 db5@4 d5@2 eb5@4 b4@2 ~@4",
AW: "ab4 f4@2 ~ eb4@3 db4@2 ~ c4@2, ~@19 b3@2 ~@3", AX: "eb4 f4@2 ab4@4 ~@5",
AY: "f5@4 ~@2 db5@2 ab5@5 ~ f5@5 ~ eb5@4", AZ: "eb5@3 ~@3 f5@2 eb5@4 db5@2 c5@5 ~ db5@4",
BA: "~@2 db5@5 ~ g4@8 ~@2 eb4@2 c5@4", BB: "c5@4 ~@2 c5@6 ab4@2 f4@3 ~@7",
BC: "~@2 f5@5 [eb5,f5] ab5@6 f5@4 eb5@2 ~@4, ~@8 g5 ~@15", BD: "eb5@6 f5@2 eb5@4 db5@2 c5@3 ~@3 db5@4",
BE: "[g4@3 ~@3 g4@2 c5@4 eb4@3 ~@3 eb4@2 b4@6 ab4@4 f4@2 ~@4 ab4@8 ~@4]/2",
BF: "[~@7 [db5,f5]@9 [db5,f5]@2 ~@4 [db5,f5]@2]/2", BG: "[~@3 [db5,f5] ~@3 [eb5,f5]@9 [eb5,f5]@2 ~@4 [eb5,f5]@2]/2",
BH: "[~@3 [eb5,f5] ~@3 [db5,f5]@9 [db5,f5]@2 ~@4 [db5,f5]@2]/2", BI: "[~@3 [db5,f5] ~@3 [eb5,f5]@9 ~@8]/2",
BJ: "[~@3 [db5,f5] ~@3 [eb5,f5]@15 ~@2]/2", // Db Ebsus2
})).s("gm_trumpet").gain(0.45).pan(0.6)
// other · trumpet
const trumpet_2 = note(`<
~@8 A ~@7 B C D E F G H I J K L@2 M K L M ~ N ~ O ~ P ~ Q ~@8 R@3 ~@2 S T U@2 ~@3 V@3 ~ W@3 ~@2 X@3 Y@2 Z@2 ~@8 B AA
AB@3 ~@2 AC AD AE AD AF AG AH AI AJ@2 AF AD AF ~@28 AK@2 AL@4 AM@2 AK@2 AL@4 AN@2
>`.pickRestart({
A: "~@4 f4@3 ~@5 f4@4 ~@8", B: "~@11 eb4", C: "f4 ~ f4 ~ f4 ~ f4 ~", D: "f4@2 e4 f4@6 e4@2 f4",
E: "~@2 f4@4 f4@2 f4 eb4@2 f4", F: "f4@3 ~ eb4@2", G: "e4@3 ~@3 e4@3 ~@3 e4@3 ~@3 e4@4 e4@2",
H: "~@2 eb4 e4@4 ~ eb4@4", I: "f4@4 f4@3 ~@3 f4@3 ~@3 eb4@2 eb4@4 f4@2", J: "f4@3 ~", K: "ab4 ~@5", L: "f4 ~@5",
M: "eb4 ~@5", N: "~@4 bb3@7 c4@3 ~@4 c4@4 c4@2", O: "~@4 db4@8 eb4@3 ~@3 f4@4 eb4@2",
P: "~@4 f4@8 g4@3 ~@3 g4@4 g4@2", Q: "~@3 ab4@8 bb4@3 ~@3 c5@4 bb4@3",
R: "[~@15 c4@8 ab4@3 ~@3 ab4@3 ~@3 ab4@10 ab4@2 f4@4 f4@3 ~@3 ab4@2 f4@4 e4@2 eb4@4 ~@3]/3", S: "~@5 ab4@4 bb4@14 ~",
T: "~@8 ab4@2 ~@4 ab4@3 ~@7", U: "[~ g4 gb4@2 g4 ab4@2 g4 ab4@2 a4 ab4@2 a4 bb4@2 a4 bb4@2 b4 bb4@2 b4 c5]/2",
V: "[~@10 eb4@3 ~@3 eb4@3 ~@3 gb4@12 gb4@10 gb4@14 bb4@6 ab4@4 ab4@3 ~]/3",
W: "[~@22 gb4@11 ~ gb4@10 gb4@14 bb4@6 ab4@4 ab4@3 ~]/3",
X: "[~@2 ab4@3 ~@5 ab4@11 ~ bb4@6 ab4@4 f4@2 ~@4 f4@8 db4@4 db4@20 ~@2]/3",
Y: "[~@4 bb4@15 ~ bb4@2 bb4@4 ab4@2 ~@4 gb4@2 ~@4 f4@2 ~@4 eb4@2 ~@2]/2",
Z: "[~@4 gb4@10 e4@2 c4@3 ~@3 f4@12 f4@10 f4@3 ~]/2", AA: "~@2 eb4@2 eb4 eb4@2 bb3 g3@2 bb3 eb4",
AB: "[~@8 eb4@11 ~ bb3@2 eb4@3 g4@3 ~@4 bb3@2 eb4@4 g4@3 ~@3 bb3@2 eb4@3 g4@3 ~@4 bb3@2 eb4@4 g4@3 ~@2 bb3@2 eb4@3]/3",
AC: "~@7 bb4 c5 eb5@4 ~@11, ~@9 d5 ~@14", AD: "~@19 c4@3 ~@2", AE: "~ c4@6 c4@2 c4@12 ~@3",
AF: "~ c4@5 ~ c4@2 c4@12 ~@3", AG: "~@19 db4@3 ~@2", AH: "~ db4@5 ~ db4@2 db4@12 ~@3", AI: "~@19 f4@3 ~@2",
AJ: "[~ f4@5 ~ f4@2 f4@11 ~ db4@10 db4@3 ~@9 c4@3 ~@2]/2", AK: "[~@7 ab4@9 ab4@2 ~@4 ab4@2]/2",
AL: "[~@3 ab4 ~@3 ab4@9 ab4@2 ~@4 ab4@2]/2", AM: "[~@3 ab4 ~@3 ab4@9 ~@8]/2", AN: "[~@3 ab4 ~@3 ab4@15 ~@2]/2",
})).s("gm_trumpet").gain(0.35).pan(0.6)
// chords · tenor sax
const tenor_sax = note(`<
~@12 A B C@2 ~@8 D E ~@14 F@5 G@4 ~ H@5 I@2 ~@3 J@3 ~ K@3 ~ L@3 M ~@2 N@2 O P Q R@2 S@4 ~@19 T@4 ~@9 U@4 V@4 ~@8 W@2
X@2 W@2 Y Z W@2 X@2 AA ~@2
>`.pickRestart({
A: "~@11 [bb3,f4]", B: "~@4 [ab3,eb4]@8 [g3,db4]@3 ~@3 [f3,c4]@3 ~@3",
C: "[[eb3,bb3]@3 ~@3 [eb3,ab3]@3 ~@3 [db3,g3]@6 [eb3,ab3]@4 bb3@8 [f3,c4]@4 [g3,db4]@2 [f3,c4]@4 [eb3,bb3]@2 ~@4 [eb3,ab3]@2]/2", // Eb5 Ab5 Dbdim Ab5 F5 Gdim F5 Eb5 …
D: "~@2 ab4@4 f4@3 ~@2 ab3", E: "[db4,f4] ~@7",
F: "[~@5 [c3,eb4]@4 [db3,f4]@2 [eb3,g4]@4 [f3,ab4]@2 [g3,bb4]@4 [ab3,c5]@2 db5@3 ~@3 db5@3 ~@3 db5@3 ~@3 db5@3 ~@3 db5@4 [a3,c5]@2 db5@8 ~@2 d5@8 eb5@4 ab5@7 ~ eb5@4 ~@2 [ab3,c5]@4 db5@2 eb5@12 ~@4 eb4@2 bb4@4 c5@2 db5, ~@44 db5 ~@15]/5", // Cm Db Eb Fm Gm Ab Am Ab
G: "[~@5 db5@4 c5@2 db5@3 ~@3 db5@4 c5@2 db5@4 c5@2 db5@8 ~@2 d5@7 ~ eb5@4 f5@7 ~ eb5@2 d5@2 db5@2 c5@4 db5@2 eb5@12 ~@13]/4",
H: "[~@15 [db4,g4]@2 [eb4,ab4]@4 [f4,c5]@2 [g4,db5]@3 ~@3 [g4,db5]@3 ~@3 [db4,g4]@10 [g4,db5]@2 [f4,c5]@4 [f4,c5]@3 ~@3 [ab4,db5]@2 [f4,c5]@4 [eb4,bb4]@2 [eb4,ab4]@3 ~@3 db4@18 ~@4 [c4,f4]@25 ~@2]/5", // Dbdim Ab5 F5 Gdim Dbdim Gdim F5 Db5 …
I: "[~ [c4,bb4] [b3,a4]@2 [c4,bb4] [db4,b4]@2 [c4,bb4] [db4,b4]@2 [d4,c5] [db4,b4]@2 [d4,c5] [eb4,db5]@2 [d4,c5] [eb4,db5]@2 [e4,d5] [eb4,db5]@2 [e4,d5] [f4,eb5]]/2", // C7 B7 C7 Db7 C7 Db7 D7 Db7 …
J: "[~@10 [gb3,c4]@3 ~@3 [gb3,db4]@3 ~@3 [gb3,c4]@12 [gb3,c4]@10 [gb3,c4]@14 [ab3,db4]@6 [gb3,c4]@4 [f3,bb3]@2 ~@2]/3", // Gbdim Gb5 Gbdim Db5 Gbdim Bb5
K: "[~@11 [gb3,c4]@6 [gb3,c4]@5 [gb3,c4]@7 [ab3,db4]@3 [gb3,c4]@2 [f3,bb3] ~]/3", // Gbdim Db5 Gbdim Bb5
L: "[~@14 ab3@5 ab3 [bb3,c4] db4 f3@24 gb3@6 f3@4 [f3,eb4]@2 ~@4 [f3,db4]@8 ~@2, ~@11 eb4@17 ~@8]/3", // Bbsus2 F7 Db
M: "~@5 [ab3,f4]@5 [gb3,eb4] ~", N: "[~@11 [f3,bb3]@6 [f3,bb3]@5 [f3,bb3] ~]/2",
O: "~@5 [bb4,eb5]@5 [ab4,d5] [g4,c5]", P: "~@4 [eb4,bb4]@3 ~@3 [c4,g4]@10 [bb3,eb4]@2 [c4,f4]@2",
Q: "~ [db4,g4] [c4,f4]@2 [ab3,eb4] [f3,c4]@5 [f3,bb3] [bb3,eb4]", // Dbdim F5 Ab5 F5 Bb5 Eb5
R: "[~@4 [bb3,eb4]@3 ~@3 [bb3,eb4]@4 [b3,f4]@2 [c4,g4]@4 [d4,ab4]@2 [eb4,bb4]@10 [c4,g4]@5 ~@3 [bb4,eb5]@4 [ab4,d5]@2 [g4,c5]@2]/2", // Eb5 Bdim C5 Ddim Eb5 C5 Eb5 Abdim …
S: "[~@4 [eb4,bb4]@3 ~@3 [c4,g4]@10 [bb3,eb4]@2 [c4,f4]@4 [db4,g4]@2 [c4,f4]@4 [ab3,eb4]@2 [f3,c4]@10 eb4@2 [ab3,d4]@6 [bb3,f4]@4 [f3,bb3]@8 [f3,c4]@4 [ab3,d4]@2 [bb3,eb4]@10 [bb3,eb4]@2 ~@14]/4", // Eb5 C5 Eb5 F5 Dbdim F5 Ab5 F5 …
T: "[~@13 [c4,ab4]@2 ~ [eb4,c5]@2 ~ [g4,eb5]@2 [ab4,f5]@6 [f4,eb5]@6 [ab4,db5]@6 [f4,c5]@6 [db4,bb4]@6 [bb3,ab4]@6 [db4,g4]@6 [bb3,ab4]@6 [db4,bb4]@6 [eb4,c5]@4 [f4,db5]@2 [eb4,c5]@6 [db4,bb4]@4 [c4,ab4]@2 ~@3, ~@12 [bb3,g4]@2 ~ [db4,bb4]@2 ~ [f4,db5]@2 ~@76]/4", // Fm Cm Db F7 Db5 F5 Gb Bb7 …
U: "[~@2 [bb3,f4]@18 [ab3,eb4]@24 ~ g3@23 [f3,c4]@24 ~@4, ~@11 db4@6 ~@7]/4", // Bb5 Ab5 F5
V: "[~@2 [bb3,f4]@18 [ab3,eb4]@24 [g3,db4]@24 [f3,c4]@18 ~@4 e3 ~@5]/4", // Bb5 Ab5 Gdim F5
W: "[[db4,bb4] [f4,db5]@2 [ab4,f5] [bb4,ab5]@5 [ab4,f5] [bb4,ab5]@3 [ab4,f5]@2 [bb4,ab5] ~@8]/2", // Gb Db Bb7 Db Bb7 Db Bb7
X: "[[c4,ab4] [eb4,c5]@2 [f4,eb5] [c5,ab5]@5 [f4,eb5] [c5,ab5]@3 [f4,eb5]@2 [c5,ab5] ~@8]/2", // Fm Cm F7 Fm F7 Fm F7 Fm
Y: "[c5,ab5]@2 [bb4,g5]@4 [ab4,f5]@2 [g4,eb5]@6 [ab4,f5]@3 ~@3 [eb4,b4]@4", Z: "[c4,ab4] [db4,bb4]@2 [c4,ab4] ~@8",
AA: "[db4,bb4] [f4,db5]@2 ~@9", // Gb Db
})).s("gm_tenor_sax").gain(0.35).pan(0.4)
// chords · tenor sax · soft notes
const tenor_sax_soft = note("<~@52 A@2 ~@91 B@2 C>".pickRestart({
A: "[~@23 ab4@18 ~@7]/2", B: "[~@3 [ab4,f5] [bb4,ab5]@5 [ab4,f5] [bb4,ab5]@3 [ab4,f5]@2 [bb4,ab5] ~@8]/2",
C: "[c5,ab5]@2 [ab4,f5]@4 [f4,eb5]@2 [c5,ab5]@6 [ab4,f5]@4 [f4,eb5]@2 [c5,ab5] ~@3", // Fm Db F7 Fm Db F7 Fm
})).s("gm_tenor_sax").gain(0.1).pan(0.4)
// chords · alto sax
const alto_sax = note(`<
A B C D E F G H I B C D J K L@2 ~@4 M ~@4 N O P Q R S T U V W X Y Z AA@2 AB@5 AC@4 AD@6 AE@2 ~@3 AF@3 AG@4 AH@4 AI
AJ@2 AK@2 AL AM@2 AN@2 AO@4 ~ AP AQ AR AS AT AU AV@3 AW@2 AX AY AZ@4 BA@5 BB@2 BC BD@2 BE BF BG@2 BH@4 BI@4 BJ@4 BK BL
BK ~ BM@2 BN@2 BM@2 BO BP BM@2 BN@2 BM@2 BQ
>`.pickRestart({
A: "~@9 eb3 f3 g3", B: "ab3@3 ~@3 ab3@3 ~@3 ab3@4 g3@2 ab3@4 bb3@2", C: "c4@4 c4@3 ~@3 c4@6 b3@2 c4@4 db4@2",
D: "eb4@3 ~@3 eb4@4 d4@2 eb4@4 d4@2 eb4@4 ab4@2", E: "eb4@6 ~@2 b3 c4@2 db4", F: "~@4 db4@3 ~@3 c4@2 bb3@6 db4@3 ~@3",
G: "c4@3 ~@3 c4@4 bb3@2 ab3@4 c4@8", H: "bb3@4 f3@3 ~@3 g3@3 ~@3 ab3@8", I: "bb3@6 ~@3 eb3 f3 g3",
J: "eb4@6 ~@2 g3 ab3@2 [ab3,db4]", K: "~@4 [f3,c4]@8 [eb3,bb3]@3 ~@3 [eb3,ab3]@3 ~@3",
L: "[[db3,g3]@3 ~@3 [c3,f3]@3 ~@3 [bb2,eb3]@6 [c3,f3]@4 [db3,eb3]@8 [eb3,ab3]@4 [f3,bb3]@2 [eb3,ab3]@4 [db3,g3]@2 ~@4 [c3,f3]@2]/2", // Dbdim F5 Eb5 F5 Dbsus2 Ab5 Bb5 Ab5 …
M: "~ ab4@2 f4@3", N: "~@6 [db4,f4]@3 ~@3 [f4,ab4]@8 ~@2 [db4,f4]@2",
O: "[c4,eb4]@4 [c4,eb4]@3 ~@3 [db4,f4]@2 [c4,eb4]@4 [bb3,db4]@2 [ab3,c4]@3 ~@3", // Cm Db Cm Bbm Ab
P: "[bb3,db4]@3 ~@3 [bb3,db4]@3 ~@3 [eb3,g3]@8 ~@2 [bb3,db4]@2", // Bbm Eb Bbm
Q: "[ab3,c4]@4 [ab3,c4]@3 ~@3 [bb3,db4]@2 [ab3,c4]@4 [g3,bb3]@2 [f3,ab3]@3 ~@3", // Ab Bbm Ab Gm Fm
R: "~@3 [db4,f4] [eb4,gb4] [e4,g4] [f4,ab4]@4 ~ [db4,f4]", // Db Ebm Em Fm Db
S: "[c4,eb4]@3 ~@3 [c4,eb4]@4 [db4,f4]@2 [c4,eb4]@4 [bb3,db4]@2 [ab3,c4]@3 ~@3", // Cm Db Cm Bbm Ab
T: "db4@3 ~@3 db4@3 ~@3 g3@4 eb3 ~ g3@4 bb3@2", U: "ab3@2 eb3 g3@2 ab3 ~@3 c4@2 c4", V: "c4",
W: "~@3 ab3@2 g3 ab3@2 bb3 c4@2 db4, ~@2 ab3 ~@9, ~@5 bb3@2 ~@17", X: "eb4",
Y: "~@5 d4 c4@4 b3@2 c4@4 d4@2 eb4@4 f4@2, ~@2 c4 ~@9", Z: "g4",
AA: "[~@5 eb4@4 d4@2 eb4@4 f4@2 g4@4 ab4@2 bb4@24 ~, ~@3 eb4@2 ~@43, ~@2 f4 ~@21]/2",
AB: "[~@5 eb3@4 f3@2 g3@4 ab3@2 bb3@4 c4@2 [bb3,db4]@3 ~@3 [bb3,db4]@3 ~@3 [bb3,db4]@3 ~@3 [bb3,db4]@3 ~@3 [bb3,db4]@4 c4@2 [bb3,db4]@8 ~@2 [b3,d4]@8 [c4,eb4]@4 [f4,ab4]@7 ~ [c4,eb4]@4 [bb3,db4]@2 c4@4 [bb3,db4]@2 [c4,eb4]@12 ~@4 eb3@2 [g3,bb3]@4 ab3@2 [bb3,db4]]/5", // Bbm Bm Cm Fm Cm Bbm Cm Gm …
AC: "[~@5 [bb3,db4]@4 [a3,c4]@2 [bb3,db4]@3 ~@3 [bb3,db4]@4 [a3,c4]@2 [bb3,db4]@4 [a3,c4]@2 [bb3,db4]@8 ~@2 [b3,d4]@8 [c4,eb4]@4 [db4,f4]@7 ~ [c4,eb4]@2 [b3,d4]@2 [bb3,db4]@2 [ab3,c4]@4 [bb3,db4]@2 [c4,eb4]@12 ~@13]/4", // Bbm Am Bbm Am Bbm Am Bbm Bm …
AD: "[~@3 db4@8 bb3@4 db4@2 bb3@3 ~@3 c4@4 eb4@8 ~@4 [bb3,e4]@2 [c4,f4]@4 [eb4,a4]@2 [f4,bb4]@3 ~@3 [f4,bb4]@3 ~@3 [bb3,eb4]@10 [f4,bb4]@2 [eb4,ab4]@4 [eb4,ab4]@3 ~@3 [f4,bb4]@2 [eb4,ab4]@4 [db4,g4]@2 [c4,f4]@3 ~@3 [f3,bb3]@18 ~@4 [eb3,ab3]@25 ~@2]/6", // Bbdim F5 Ebdim Bb5 Eb5 Bb5 Ab5 Bb5 …
AE: "[~ [g3,eb4] [gb3,d4]@2 [g3,eb4] [ab3,e4]@2 [g3,eb4] [ab3,e4]@2 [a3,f4] [ab3,e4]@2 [a3,f4] [bb3,gb4]@2 [a3,f4] [bb3,gb4]@2 [b3,g4] [bb3,gb4]@2 [b3,g4] [c4,ab4]]/2", // Cm D Cm Dbm Cm Dbm Dm Dbm …
AF: "[~@10 [ab2,eb4]@3 ~@3 [bb2,eb4]@3 ~@3 [eb3,eb4]@12 [eb3,eb4]@10 [eb3,eb4]@14 [f3,f4]@6 [eb3,eb4]@4 [ab2,db4]@2 ~@2]/3", // Ab5 Eb5 Eb F Eb Db5
AG: "[~@20 ab3@2 db4@4 bb3@3 ~@3 a3@2 ~@4 ab3@8 [eb3,eb4]@12 [eb3,eb4]@10 [eb3,eb4]@14 [f3,f4]@6 [eb3,eb4]@4 [ab2,db4]@2 ~@2]/4", // Eb F Eb Db5
AH: "[~@20 ab3@2 db4@4 bb3@3 ~@3 a3@2 ~@12 ab2@24 db3@10 [ab2,bb3]@2 ~@4 [ab2,bb3]@8 ~@2, ~@23 bb3@17 ~@8]/4", // Absus2
AI: "~@5 [db3,bb3]@5 [db3,bb3] ~", AJ: "[~@11 eb3@2 f3 ~@2 gb3 ~@2 g3 ~@2 ab3 ~]/2",
AK: "[~@2 ab3@9 [ab2,ab3]@6 [ab2,ab3]@5 [ab2,ab3] ~]/2", AL: "~@5 [g4,c5]@5 [f4,b4] [eb4,bb4]",
AM: "[~@4 [c4,g4]@3 ~@3 [bb3,eb4]@10 [g3,c4]@2 [ab3,eb4]@4 [bb3,e4]@2 [ab3,eb4]@4 [f3,c4]@2 [eb3,ab3]@10 [d3,ab3]@2 [g3,c4]@2]/2", // C5 Eb5 C5 Ab5 Bbdim Ab5 F5 Ab5 …
AN: "[~@4 [g3,c4]@3 ~@3 [g3,c4]@4 [ab3,d4]@2 [bb3,eb4]@4 [b3,f4]@2 [c4,g4]@10 [bb3,eb4]@5 ~@3 [g4,c5]@4 [f4,b4]@2 [eb4,bb4]@2]/2", // C5 Abdim Eb5 Bdim C5 Eb5 C5 Fdim …
AO: "[~@4 [c4,g4]@3 ~@3 [bb3,eb4]@10 [g3,c4]@2 [ab3,eb4]@4 [bb3,e4]@2 [ab3,eb4]@4 [f3,c4]@2 [eb3,ab3]@10 [f3,c4]@2 [f3,bb3]@6 [ab3,d4]@4 [d3,ab3]@8 [eb3,ab3]@4 [f3,bb3]@2 [g3,c4]@10 [g3,c4]@2 ~@14]/4", // C5 Eb5 C5 Ab5 Bbdim Ab5 F5 Ab5 …
AP: "~@11 eb4", AQ: "~@2 eb4@2 eb4 eb4@2 bb3 g3@2 bb3 eb4",
AR: "~@4 eb4@4 eb4@2 eb4@4 ~ g3@4 bb3@2 eb4@3, ~@7 bb3 ~@4", AS: "~@3 eb4@4 d4@2 eb4@4 d4@2 eb4@4 d4@2 eb4@3",
AT: "~@3 eb3@4 d3@2 eb3@4 d3@2 eb3@4 d3@2 eb3@3", AU: "~@3 eb4 ~@4",
AV: "[~@15 eb3@3 eb3 e3 f3 ab3@10 g3@2 ~ ab3@3 bb3@2 ~@4 c4@12 b3@2 c4@4 db4@2 ~@4 eb4@2 ~@3, ~@21 g3 ~@50]/3",
AW: "[~ ab4@2 g4@4 ab4@2 g4@6 ab4@4 eb4@14 ~@4 b3@2 c4@4 eb4@2 db4@3]/2",
AX: "~ f3@2 gb3@4 g3@2 eb4@6 c4@4 ab3@2 ~@3", AY: "~ eb3@2 e3@4 f3@2 eb4@6 c4@4 bb3@2 ~@3",
AZ: "[~ bb3@2 b3@4 c4@2 g4@4 bb4@2 gb4@4 bb4@2 f4@12 ~@6 eb3@3 eb3 e3 [f3,g3] ab3@10 g3@2 ab3@4 bb3@2 ~@4 c4@12 b3@2 c4@4 db4@2 ~@4 eb4@2 ~@3]/4", // Fsus2
BA: "[~ ab4@2 g4@4 ab4@2 g4@6 ab4@4 eb4@14 ~@4 [f3,db4]@2 ~ [ab3,f4]@2 ~ [c4,ab4]@2 [db4,bb4]@6 [c4,ab4]@6 [bb3,f4]@6 [ab3,eb4]@6 [g3,f4]@6 [f3,db4]@6 [eb3,bb3]@6 [f3,db4]@6 [g3,f4]@6 [ab3,g4]@4 [bb3,ab4]@2 [ab3,g4]@6 [g3,e4]@4 [f3,eb4]@2 ~@3, ~@36 [eb3,c4]@2 ~ [g3,eb4]@2 ~ [bb3,g4]@2 ~@76]/5", // Db Fm Gb Fm Bb5 Ab5 G7 Db …
BB: "[~ eb3@3 ~@3 f3@2 g3@4 ab3@2 bb3@4 c4@2 [bb3,db4]@8 ~@4 [bb3,db4]@10 [a3,c4]@2 [bb3,db4]@3]/2", // Bbm Am Bbm
BC: "~ [a3,c4]@3 ~@3 [bb3,db4]@8 [b3,d4]@4 [c4,eb4]@2 ~@3", // Am Bbm Bm Cm
BD: "[~ ab3@8 [c4,eb4]@4 [bb3,db4]@2 [ab3,c4]@4 [bb3,db4]@2 [c4,eb4]@24 ~@3]/2", // Cm Bbm Ab Bbm Cm
BE: "[bb3,db4]@3 ~ [bb3,db4]@5 [a3,c4] [bb3,db4]@2", BF: "~ [a3,c4]@3 ~@2 [bb3,db4]@11 ~ [b3,d4]@2 [c4,eb4]@4",
BG: "[ab3@8 [c4,eb4]@4 [bb3,db4]@2 ~ [ab3,c4]@4 ~ [c4,eb4]@24 ~@4, ~@19 [bb3,db4]@2 ~@27]/2", // Cm Bbm Ab Cm Bbm
BH: "[~ [ab3,db4]@9 [f3,c4]@12 [f3,bb3]@12 [eb3,ab3]@12 ~@2]/4", // Db5 F5 Bb5 Ab5
BI: "[~@2 [ab3,db4]@18 [f3,c4]@24 [eb3,bb3]@24 [eb3,ab3]@18 ~@3 eb3 ~ [f3,g3] ab3@4]/4", // Db5 F5 Eb5 Ab5 Fsus2
BJ: "[ab3@3 ~@3 ab3@6 g3@2 ab3@4 bb3@2 c4@10 b3@2 c4@4 db4@3 ~@3 eb4@38 ~@6 eb3@2 f3@2 g3@2 ab3@4]/4", BK: "ab3 ~@11",
BL: "~@7 eb3 f3 g3 ab3@2",
BM: "[[bb3,f4] [db4,ab4]@2 [f4,bb4] [ab4,db5]@5 [f4,bb4] [ab4,db5]@3 [f4,bb4]@2 [ab4,db5] ~@8]/2", // Bb5 Db5 Bb5 Db5 Bb5 Db5 Bb5 Db5
// … 165 more lines
More by Miller
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.