0:00/0:00
// 'Round Midnight — Herman
// 80 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 81 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(80/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 · "Piano - T"
const piano = note(`<
~@9 A@6 B@2 C D E F G H I@2 J K L M N O P Q@4 R S T U V ~@2 W X Y Z AA AB AC AD W X Y Z AA AB AC AE@8 AF AG@6 AH@3 ~@3
AI@2
>`.pickRestart({
A: "[eb3,eb4] [d3,d4]", // Eb D
B: "[[eb3,eb4]@24 [d3,d4]@23 ~ eb3@24 [d3,d4]@12 [bb2,e3,ab3,b3,d4]@9 ~@3, ~@47 eb4@26 ~@23]/2", // Eb D E7
C: "~@36 [c3,gb3,bb3,c4,eb4]@11 ~", D: "[f3,ab3,b3,eb4]@5 ~@3 [bb2,e3,ab3,b3,db4]@8",
E: "[eb3,bb3,db4,gb4]@23 ~ [ab2,bb3,c4,gb4]@24", F: "[b2,gb3,a4] [e3,ab4] ~ [eb3,g4], d4, ~ [bb2,f3,ab4]",
G: "[ab2,eb3,b3,gb4] [db3,f3,b3,eb4,ab4]", H: "[eb3,gb3,db4,f4,bb4]@17 ~@7 [c3,eb3,gb3,d4,bb4]@24",
I: "[~@12 f4@12 ~@12 d3@10 ~@2 [eb3,bb3,d4,f4]@47 ~, g3@95 ~, [b2,gb3,a3,db4,gb4]@12 [bb2,eb3,ab3,b3,f4]@11 ~@25]/2", // Bb Gbm Fm7b5
J: "[c3,gb3,bb3,eb4] [f2,a3,b3,eb4]", K: "[b3,db4,e4], [bb2,d3]@43 ~@5, f3@35 ~@13",
L: "[c3,gb3,bb3,eb4]@24 [a3,b3,eb4]@11 ~@13, ~ f2", M: "[b3,db4,e4], [bb2,d3,f3]@7 ~@5",
N: "[ab2,gb3,b3,eb4]@24 [f2,ab3,b3,eb4]@11 ~ [bb2,d3,ab3,b3,db4]@12", // Abm7 Fm7b5 Abdim
O: "[eb3,gb3,bb3,db4,f4]@23 ~@13 [f2,a3]@11 ~, ~@24 [eb3,bb3,db4,gb4]@23 ~", // Ebm7 F Ebm7
P: "[ab2,gb3,eb4]@16 [ab2,gb3,c4,eb4]@4 [ab2,gb3,c4,eb4]@4 [gb2,e3,a3,db4]@16 [gb2,e3,a3,db4]@4 [gb2,e3,a3,db4]@3 ~, bb3 ~", // Ab7 Gbm7
Q: "[[f2,eb3,ab3,b3]@16 [f2,eb3,ab3,b3]@4 [f2,eb3,ab3,b3]@4 bb1@4 bb2@4 ab2@4 f2@4 d2@4 b1@3 ~@51 gb4@6 eb5@6 f5@6 bb5@26 ~@2 [b3,eb4]@23 ~ [e3,ab3]@24, ~@47 bb3@19 bb3@77 ~@49, ~@48 bb2@95 ~@24 [bb2,b3,db4]@24 ~, ~@53 eb3@19 gb3@7 eb4@6 f4@6 bb4@11 ~@90, ~@59 f3@43 ~@41 [f3,ab3]@24 ~@25]/4", // Fm7b5 B E Bbm Fm
R: "[eb3,bb3,db4,gb4]@23 ~@2 [bb3,c4,gb4]@23, ~@24 ab2@23 ~", // Ebm7 Cm7b5
S: "~ gb3@11 [e3,ab4]@11 ~@14 [eb3,g4]@10 ~, d4@47 ~, a4@12 ~@13 ab4@22 ~, ~ b2@17 ~@6 [bb2,f3]@22 ~@2", // E Eb Bb5
T: "[ab2,eb3,b3,gb4]@23 ~ [db3,f3,b3,ab4]@23 ~, ~@23 eb4@23 ~@2", // Abm7 Db7
U: "[eb3,gb3,db4,f4,bb4]@23 ~ [c3,gb3]@22 ~@2, ~@23 [eb4,bb4]@22 ~@3", // Ebm7 Cdim Eb5
V: "~@12 b3@11 ~ [bb2,ab3,c4,db4,gb4]@22 ~@2, [b2,d4,gb4]@23 ~@25", W: "~@22 [eb3,bb3,db4,f4,ab4] ~@25, ~@11 g3 ~@12",
X: "~@22 [f3,b3,eb4,f4,g4,bb4] ~@25", Y: "~@21 gb3 [db4,f4,ab4] ~@25, ~@21 eb3@2 ~@25, ~@11 bb3 ~@12",
Z: "~@10 [d4,e4,ab4,a4] ~@23 [bb2,f3,bb3]@2 ~@12, ~@10 [b2,gb3,b3]@2 ~@22 [db4,eb4,ab4] ~@13", // Dsus2 Bb5 B5 Dbsus2
AA: "~@22 [ab2,eb3,ab3,b3,db4,gb4] ~@25", AB: "~@5 [eb3,gb3,bb3] ~@18, ~@10 [db4,f4,ab4] ~@37",
AC: "~@10 [g3,bb3,f4,a4,c5] ~@23 [db4,e4,ab4,c5] ~@13, ~@5 d4 ~@11 [ab3,a3] ~@6", // F Dbm Amaj7
AD: "~@10 [a3,b3,eb4,g4,bb4] ~@23 [e3,ab3,b3,d4,f4,bb4]@14, ~@5 f3 ~@18", // Eb E7
AE: "[~@10 [a3,b3,eb4,g4,bb4] ~@23 [e3,a3,d4,f4,bb4]@12 [eb3,g3,bb3,d4,f4,a4]@35 [c3,gb3,bb3,eb4]@23 ~ [f2,a3,b3,eb4]@24 [b3,db4,e4]@48 [c3,gb3,bb3,eb4]@24 [a3,b3,eb4]@11 ~@13 [b3,db4,e4]@48 [ab2,gb3,b3,eb4]@24 [f2,ab3,b3,eb4]@11 ~ [bb2,d3,ab3,b3,db4]@12 [eb3,gb3,bb3,db4,f4]@23 ~@13 [f2,a3]@11 ~ [ab2,gb3,bb3,eb4]@15, ~@10 f3@2 ~@117 [bb2,d3]@43 ~@29 f2@24 [bb2,d3,f3]@28 ~@131, ~@129 f3@35 ~@181 [eb3,bb3,db4,gb4]@23 ~@16]/8", // Eb Bbmaj7 Ebmaj7 Cm7b5 F7 Dbm7 Cm7b5 B7 …
AF: "~ [ab2,gb3,c4,eb4]@4 [ab2,gb3,c4,eb4]@4 [gb2,e3,a3,db4]@16 [gb2,e3,a3,db4]@4 [gb2,e3,a3,db4]@3 ~ [f2,eb3,ab3,b3]@15", // Ab7 Gbm7 Fm7b5
AG: "[~ [f2,eb3,ab3,b3]@4 [f2,eb3,ab3,b3]@4 bb1@4 bb2@4 ab2@4 f2@4 d2@4 b1@4 bb2 ~@49 gb4@6 eb5@6 ~ f5@5 bb5@26 ~@3 b3@23 [bb2,e3,ab3,b3,db4]@24 ~ [eb3,bb3,db4,gb4]@23 ~ [ab2,bb3,c4,gb4]@23 ~ gb3@12 [e3,ab4]@11 ~@13 [eb3,g4]@10 ~@2 b3@14, ~@33 bb3@18 bb3@77 ~@97 d4@47 ~@16, ~@34 bb2@23 gb3@7 eb4@6 f4@7 bb4@11 ~@137 a4@12 ~@51, ~@39 eb3@49 ~@138 b2@17 ~@7 [bb2,f3,ab4]@22 ~ [ab2,eb3,gb4]@15, ~@45 f3@43 ~@41 [f3,ab3,eb4]@24 ~@135]/6", // Fm7b5 Bbm7b5 Ebm7 Ab7 E Eb Bb7 Ab7 …
AH: "[~@10 f3@22 ~ [eb3,gb3,db4,f4,bb4]@23 ~ [c3,gb3,eb4,bb4]@22 ~@14 b3@11 ~@2 [ab3,c4,db4,gb4]@22 ~@16, ~@9 [db3,b3,eb4,ab4]@23 ~@49 [b2,d4,gb4]@23 ~ bb2@22 ~@17]/3", // Ebm7 Cm7b5 Ab7 Abm Bm
AI: "[~@42 [eb1,eb2]@29 ~@25]/2", // Eb
})).s("gm_piano").gain(0.26)
// other · electric guitar jazz · "Guitar"
const electric_guitar_jazz = note("<~@7 A B C D C@4 D E F ~@15 G H ~@40 I@6>".pickRestart({
A: "~@2 eb5@10 ~ eb5@8 db5@19 bb4@4 db5@4", B: "eb5@11 ~ eb5@8 db5@20 bb4@3 ~ db5@4", C: "[eb4,eb5] [d4,d5]",
D: "[eb4,eb5]@24 [d4,d5]@23 ~", E: "[eb4,eb5]@6 [d4,d5]@3 d5 ~@2", F: "bb3@6 eb4@5 ~ f4@5 bb4@6 ~ gb4@12 ~@12",
G: "bb2@5 eb3@6 f3@7 bb3@6 gb3@7 eb4@6 f4@6 bb4@5", H: "~ gb4@3 eb5@3 f5@3 bb5@13 ~",
I: "[~@56 ab3@12 ~@136 bb3@28 ~@2 [eb4,eb5]@27 ~@27, ~@32 bb3@36 f4@79 f5@42 gb5@7 f4@36 ~@56, ~@45 eb4@24 ~@9 bb4@31 f5@28 ab4@96 ~@55, ~@88 eb5@31 bb4@37 a5@77 ~@55, ~@99 ab4@29 eb5@36 d5@8 g4@9 c5@52 ~@55]/6", // Eb
})).s("gm_electric_guitar_jazz").gain(0.26)
// bass · acoustic bass · "Bas"
const bass = note(`<
~@7 A B C@7 D E F G H I J K L M N O P Q R S T U@3 V W X Y Z AA AB AC AD AE AF AG AH AI AJ AC AD AE AF AG AH AI AJ AK@8
AL@3 AM@6 ~@3 AN@2
>`.pickRestart({
A: "~@2 eb2@10 ~ eb2@8 db2@19 bb1@4 db2@4", B: "eb2@5 ~ eb2@4 db2@10 bb1@2 db2@2", C: "eb3 d3",
D: "eb3@24 d3@12 bb2@11 ~", E: "~@3 c2", F: "f2@23 ~ bb2@24", G: "eb2@9 ~ eb2@2 ab1@12",
H: "b1@11 ~ e2@12 bb1@12 eb2@12", I: "ab1@23 ~ db2@24", J: "eb2@20 db2@4 c2@11 ~ c2@12", K: "b1@23 ~ bb1@23 ~",
L: "eb2@23 ~ eb2@10 ~@2 eb2@7 ~ eb2@4", M: "c2 f2", N: "bb1@23 ~ bb2@20 ab2@4", O: "gb2@11 ~ c2@11 ~ f2@18 ~@2 f2@4",
P: "bb1 bb2", Q: "ab2@23 ~ f2@12 bb1@12", R: "eb2@2 c2 f2", S: "ab2 db2 gb2 b1",
T: "f2@19 ~ f2@5 ~@3 bb2@4 ab2@4 f2@4 c2@4 b1@4, ~@27 bb1@4 ~@17", U: "[bb1@95 f2@18 ~ f2@6 bb1@12 bb2@12]/3",
V: "eb2@23 ~ ab2@12 ab1@12", W: "b1 e2 bb1 eb2", X: "ab1@23 db2@24 ~", Y: "eb2@19 db2@6 c2@23",
Z: "b1@12 b2@12 bb2@12 bb1@11 ~", AA: "eb2 bb2 eb2 eb3 db3 db2 bb1 db2",
AB: "eb2@5 ~ eb2@6 bb2@6 eb2@6 db2@6 db3@6 bb2@6 db2@5 ~", AC: "eb2 eb3 db3 bb2 eb3 bb2 eb2 e2",
AD: "f2 b2 f2 b2 f2 f3 e3 e2", AE: "eb2 bb2 eb2 eb3 eb2 eb3 db3 c3",
AF: "b2@3 gb2@3 b1@3 b2@3 bb2@3 f2@3 bb1@3 bb2@2 a2", AG: "ab2 ab1 ab2 eb2 ab1 ab2 bb2 db3",
AH: "eb3 eb2 eb3 bb2 eb3 db3 bb2 eb2", AI: "g2@6 d2@6 g2@6 g1@6 gb2@6 db3@6 gb2@6 gb1@5 ~",
AJ: "f1@6 f2@6 b2@6 f2@6 e2@6 e3@6 b2@6 e2@5 ~",
AK: "[eb2@10 ~ eb2@3 eb2@14 d2@4 ~ c2@24 f2@24 bb1@23 ~ bb2@20 ab2@4 gb2@11 ~ c2@11 ~ f2@18 ~@2 f2@4 bb1@24 bb2@24 ab2@23 ~ f2@12 bb1@12 eb2@24 c2@12 f2@12 ab2@12 db2@12 gb2@12 b1@12 f2@15]/8",
AL: "[~@5 f2@5 ~@3 bb2@4 ab2@4 f2@4 c2@4 b1@4 bb1@95 f2@16, ~@3 bb1 ~@32]/3",
AM: "[~@4 f2@5 bb1@12 ~ bb2@12 eb2@23 ab2@12 ab1@12 b1@12 ~ e2@11 bb1@12 eb2@12 ab1@24 db2@24 eb2@20 ~@5 c2@23 b1@12 ~ b2@11 bb2@12 bb1@11 ~@16, ~@197 db2@8 ~@83]/6",
AN: "[~@42 eb2@29 ~@25]/2",
})).s("gm_acoustic_bass").gain(0.26)
// chords · alto sax
const alto_sax = note(`<
~ A@3 B@4 C D E F@2 G@4 ~@2 H I J K L M ~@3 N@2 O P Q R@2 ~ S T U V ~ W@2 X Y Z AA AB AC AD AE X Y Z AA AB AC AD AF@2
~@3 AG AH AI AJ AK AL@2 AM@4 ~@2 AN@2 AO@3
>`.pickRestart({
A: "[~@29 f4@87 ~@28, ~@15 eb4@101 ~@28]/3",
B: "[~@72 ab4@73 ~ eb5@11 [ab4,eb5]@7 [gb4,db5]@20 [eb4,bb4]@3 [gb4,db5]@4 ~, ~@15 f4@130 ab4@11 ~@36]/4", // Ab5 Gb5 Eb5 Gb5
C: "[ab4,eb5]@11 ~ [ab4,eb5]@7 ~ db5@20 [eb4,bb4]@3 ~ db5@4, ~@19 gb4@20 ~@4 gb4@4 ~", // Ab5 Eb5
D: "~@11 bb3@4 eb4@2 f4@3 bb4@4 gb4@18 bb3@3 ~@3", E: "~@6 eb4@12 d4@2 eb4@3 bb4@6 ab4@5 ~@14",
F: "[~@12 eb4@3 gb4@3 bb4@3 db5@3 ~ c5@17 ~ eb4@3 a4@13 ab4@11 ~ ab4@12 g4@12 ~]/2",
G: "[~@12 ab4@3 b4@2 eb5@3 gb5@3 f5@18 b4@5 ~ bb4@35 ~@6 eb4@3 f4@4 gb4@17 f4@3 gb4@3 f4@20 ~ eb4@4 d4@7 bb4@41 ~]/4",
H: "[db4,f4]@23 ~ bb4@13 c5@11, ~@23 f4@25", I: "~ a4@11 ab4@12 ~ ab4@12 g4@11, db5 c5",
J: "~@8 bb4@15 ~ ab4@24, db5@7 ~@41, ~ eb4@21 ~ eb4@25", K: "[db4,f4] [d4,gb4]", L: "[db4,ab4] [b3,bb4]",
M: "~ bb4@47, d4@47 ~", N: "[~@28 db4@2 d4@3 e4@3 f4@3 g4@3 ab4@2 bb4@3 b4@18 ~ b4@5 bb4@20 ~ bb4@4]/2",
O: "ab4@18 gb4@2 ab4@3 f4@20 ~ f4@4",
P: "~ bb4@15 [bb4,eb5]@4 ~ bb4@3 [ab4,db5]@15 ~ [ab4,db5]@4 [ab4,db5]@4, eb5@15 ~@5 eb5@5 ~@23", // Eb5 Db5
Q: "~ eb4@15 [eb4,b4]@4 [eb4,b4]@4 [d4,bb4]@24, b4@5 ~@11", R: "[~@49 gb4@47, ~@43 bb4@51 ~@2]/2",
S: "~ eb4@11 f4@11 gb4@13 ab4@12", T: "a4 b4 db5 eb5", U: "b4 db5 eb5 f5", V: "gb5 ~@3",
W: "~@5 [f4,bb4] ~@9 [eb4,ab4] ~@8", X: "~@22 [f4,bb4] ~@25", Y: "~@22 [eb4,bb4] ~@25", Z: "~@11 [f4,bb4] ~@12",
AA: "~@5 [gb4,a4] ~@11 [f4,ab4] ~@6", AB: "~@22 [eb4,gb4] ~@25", AC: "~@5 [f4,bb4] ~@18",
AD: "~@10 [a4,d5]@2 ~@22 [ab4,db5] ~@13", AE: "~@10 [g4,b4] ~@22 f4@2 ~ e4@4 d4@8",
AF: "[~@10 [g4,b4] ~@23 f4@2 e4@6 e4@4 [d4,f4]@25 ~@25]/2", AG: "~@13 db4@2 d4@3 e4@3 f4@3 g4@3 ab4@2 bb4@3 ~ b4@15",
AH: "~@3 b4@5 bb4@20 ~ bb4@4 ab4@15", AI: "~@4 gb4@2 ab4@3 f4@20 f4@4 ~ bb4@14, ~@11 eb5@5",
AJ: "~@2 bb4@3 ~ bb4@3 ~ [ab4,db5]@15 [ab4,db5]@4 [ab4,db5]@4 ~ eb4@14, ~ eb5@3 ~ eb5@5 ~@23 b4@15", // Db5
AK: "~ [eb4,b4]@4 [eb4,b4]@4 ~ d4@23 ~@15, ~@3 bb4@8 ~@5", AL: "[~@34 gb4@47 ~@15, ~@28 bb4@51 ~@17]/2",
AM: "[~@34 eb4@11 f4@11 ~ gb4@12 ab4@12 a4@12 b4@12 db5@12 ~ eb5@12 b4@11 db5@12 eb5@12 f5@12 gb5@12 ~@3]/4",
AN: "[~@61 f4@9 ~@26, ~@41 eb4@31 ~@24]/2", AO: "[~@45 gb4@73 ~@26, ~@2 f4@117 ~@25]/3",
})).s("gm_alto_sax").gain(0.26)
// chords · tenor sax
const tenor_sax = note(`<
~ A@3 B@4 C D E F@2 G@4 ~@2 H I J K L@2 ~@3 M@2 N O P Q@3 R S T@2 U@3 V W X Y Z AA AB AC V W X Y Z AA AB AD@2 ~@3 AE
AF AG AH AI AJ@2 AK@4 AL@7
>`.pickRestart({
A: "[~@11 ab3@47 ~@14, ~@2 bb3@27 ~@7]/3",
B: "[~@82 gb3@64 [db4,f4]@10 ~ [db4,f4]@7 ~ eb4@19 [ab3,c4]@3 ~ eb4@4, ~@7 ab3@139 ~@18 b3@20 ~@3 b3@4 ~]/4", // Db Ab
C: "[db4,f4]@11 ~ [db4,f4]@8 [b3,eb4]@20 [ab3,c4]@3 ~ eb4@4, ~@43 b3@4 ~", // Db B Ab
D: "~@11 bb3@4 eb4@2 f4@3 bb4@4 gb4@18 bb3@3 ~@3", E: "~@6 eb4@12 d4@2 eb4@3 bb4@6 ab4@5 ~@14",
F: "[~@12 eb4@3 gb4@3 bb4@3 db5@3 ~ c5@17 ~ eb4@3 a4@13 ab4@11 ~ ab4@12 g4@12 ~]/2",
G: "[~@12 ab4@3 b4@2 eb5@3 gb5@3 f5@18 b4@5 ~ bb4@35 ~@6 eb4@3 f4@4 gb4@17 f4@3 gb4@3 f4@20 ~ eb4@4 d4@7 bb4@41 ~]/4",
H: "[gb3,bb3]@23 [gb3,eb4]@25", I: "~ gb3@10 ~ e3@12 f3@12 ~ eb3@11, ~ d4@23 db4@24", J: "~ [gb3,b3]@22 [f3,b3]@25",
K: "[gb3,bb3] [eb3,bb3]", L: "[[eb3,a3]@23 ~ ab3@23 ~ f3@48, ~@23 f3@24 g3@49]/2",
M: "[~@28 db4@2 d4@3 e4@3 f4@3 g4@3 ab4@2 bb4@3 b4@18 ~ b4@5 bb4@20 ~ bb4@4]/2", N: "ab4@18 gb4@2 ab4@3 f4@20 ~ f4@4",
O: "~ [b3,gb4]@15 ~ b3@3 ~ b3@3 ~ a3@14 ~ [a3,eb4]@3 ~ [a3,eb4]@4, ~@16 f4@3 ~ f4@4 e4@15 ~@9", // B5 Adim
P: "~ b3@15 ~ [ab3,b3]@3 [ab3,b3]@3 ~ [ab3,b3]@24, ab3 ~@2", // Abm
Q: "[~@36 f4@59 eb3@17 d3@3 eb3@4 ~ g3 ~@7 ab3@16, ~@30 eb4@65 ~@24 bb3@9 ~@16, ~@119 f3@2 ~@23]/3",
R: "eb3@12 eb3@3 gb3@2 bb3@2 ~ db4@3 gb3@12 ab3@9 eb3@4, ~@12 f3@11 c4@21 ~@4",
S: "~@4 gb3 d3 b3@6 ~@4 f3 db3 [g3,eb4]@6, a3@4 ab3@7 ~@5, ~@2 db4 ~", // Cm
T: "[b3@11 ~ gb3@3 eb3@2 b2@2 ~ eb3@3 ~ eb4@11 ~@8 f3@4 ~ gb3@12 eb3@3 ~ d3@3 db3@4 ~ c3@7 bb3@12 eb3@2 f3@3, ~@12 db4@11 db3@21 ~@3 eb4@12 ~@37, ~@35 f4@13 ~@48]/2",
U: "[gb3@19 f3@2 eb3@3 f3@18 eb3@3 d3@2 ~@11 db4@2 ~@18 b3@2 ~@26 db4@2 ~@18 b3@2 ~@16, ~@47 eb4@84 ~@13]/3",
V: "~@22 db4 ~@25", W: "~@22 b3 ~@25", X: "~@11 db4 ~@12", Y: "~@5 db4 ~@11 c4 ~@6", Z: "~@22 bb3 ~@25",
AA: "~@5 db4 ~@18", AB: "~@10 f4@2 ~@22 e4 ~@13", AC: "~@10 eb4 ~@23 f3@2 e3@4 d3@8",
AD: "[~@10 eb4 ~@23 f3@2 e3@6 e3@4 g3@25 ~@25]/2", AE: "~@13 db4@2 d4@3 e4@3 f4@3 g4@3 ab4@2 bb4@3 ~ b4@15",
AF: "~@3 b4@5 bb4@20 ~ bb4@4 ab4@15", AG: "~@4 gb4@2 ab4@3 f4@20 f4@4 ~ [b3,gb4]@14",
AH: "~@3 b3@3 [b3,f4]@4 [a3,e4]@15 [a3,eb4]@3 ~ [a3,eb4]@4 ~ [ab3,b3]@14, ~@2 f4@3 ~@43", // Bdim A5 Adim Abm
AI: "~@2 [ab3,b3]@3 ~ ab3@3 [ab3,b3]@25 ~@14, ~@5 b3@3 ~@40", AJ: "[~@21 f4@59 eb3@16, ~@15 eb4@65 ~@16]/2",
AK: "[~ d3@4 eb3@3 ~ bb3@9 ab3@15 eb3@12 eb3@3 gb3@3 bb3@2 db4@4 gb3@11 ab3@9 eb3@4 ~@8 gb3@2 d3@2 b3@12 db4@9 ~ db3@2 [g3,eb4]@13 b3@11 gb3@3 eb3@2 b2@2 ~ eb3@3 ~ eb4@11 ~@9 f3@4 [gb3,eb4]@13 eb3@2, ~@8 f3@2 ~@35 f3@11 ~@58 f3@2 ~@36 db3@21 ~@19, ~@9 g3 ~@47 c4@21 ~@3 a3@12 ab3@21 ~@27 db4@12 ~@12 f4@13 ~@14]/4", // Cm Ebm
AL: "[~ d3@4 db3@4 c3@8 bb3@11 eb3@2 f3@3 gb3@19 f3@2 eb3@3 f3@18 ~ eb3@2 d3@3 ~@65 ab3@20 ~@19 ab3@126 ~@25, ~@81 eb4@230 ~@25]/7",
})).s("gm_tenor_sax").gain(0.31)
// chords · trumpet
const trumpet = note(`<
~@4 A@4 ~@20 B ~ C D E ~ F@2 G H I@2 J@4 K L M N@5 K L M O@5 ~@2 P@2 ~ Q R S T@2 U V@3 W@7
>`.pickRestart({
A: "[~@31 c4@41 ~@24, ~@25 bb4@122 ~@45, ~@34 gb4@111 ~@47, ~@53 d4@92 ~@47]/4",
B: "~@11 e5@7 d5@2 db5@2 b4@2 bb4@24", C: "~@11 f4",
D: "[gb4,ab4,bb4,eb5]@16 [f4,ab4,bb4,eb5]@3 ~ [f4,ab4,bb4,eb5]@4 [e4,gb4,ab4,db5]@16 [e4,gb4,ab4,db5]@4 [e4,gb4,ab4,db5]@4", // Ebm Fm7 Dbm
E: "[eb4,f4,g4,b4]@15 ~ [eb4,f4,g4,b4]@3 ~ [eb4,f4,b4]@4 [d4,e4,g4,bb4]@24, ~@19 g4@4 ~@25", // Ebaug Fm7b5 Em7b5
F: "[~@20 ab5@25 ~@2 eb4@17 d4@3 eb4@4 ~ g4 ~@7 ab4@16, ~@8 eb5@35 ~@28 bb4@9 ~@16, ~@13 f5@30 ~@28 f4@2 ~@23]/2",
G: "~@12 eb4@3 gb4@2 bb4@2 ~ db5@3 c5@21 eb4@4", H: "a4@4 gb4 d4 ab4@10 f4 db4 g4@6",
I: "[~ b4@11 g4@3 b4@2 eb5@2 ~ gb5@3 ~ eb5@12 ~@7 b4@4 ~ bb4@12 eb4@3 ~ d4@3 db4@4 ~ c4@7 bb4@12 eb4@2 f4@3, ~@12 db5@11 f5@13 f5@11 gb5@12 ~@37]/2",
J: "[gb4@19 f4@2 eb4@3 f4@18 eb4@3 d4@2 ~ [gb4,eb5]@17 ~ [gb4,ab4,eb5]@4 [e4,gb4,db5]@14 [db4,eb4,bb4]@4 [gb4,db5]@2 ~@4 gb4@20 [gb4,ab4,eb5]@4 [e4,gb4,db5]@14 [db4,eb4,bb4]@4 [e4,gb4,db5]@2 ~@4 [gb4,ab4,eb5]@11 ~ ab4@30 [g4,a4,e5]@8, ~@47 ab4@18 ~@28 [ab4,eb5]@20 ~@40 [gb4,eb5]@30 ~@9, ~@48 eb4@36 ~@4 e4 ~@103]/4", // Ebm Ab7 Gb7 Eb7 Gb5 Ab7 Gb7 Eb7 …
K: "~ bb4@9 [ab4,bb4,eb5]@26 [g4,a4,d5]@12, [ab4,eb5]@3 ~@13", // Absus2 Gsus2 Ab5
L: "[gb4,ab4,eb5]@9 ~ [gb4,ab4,eb5]@29 ~ [f4,d5]@8, ~@13 eb4@3", // Ab7 Dm
M: "[d4,e4,db5]@15 ~ [d4,e4,db5]@8 [db4,eb4,c5]@22 [c4,d4,b4]@2", // Dbm Cm G
N: "[[b3,db4,bb4]@36 [db4,eb4,bb4]@4 [e4,gb4,db5]@2 ~@4 [ab4,eb5]@19 ~ [ab4,eb5]@23 ~ [gb4,ab4,eb5]@4 [bb4,c5,f5]@20 [bb4,c5,f5]@4 [a4,b4,e5]@19 ~ [a4,b4,e5]@4 [ab4,bb4,eb5]@19 ~ [ab4,bb4,eb5]@4 [ab4,bb4,d5]@24 [gb4,ab4,eb5]@11 ~ ab4@30 [g4,a4,e5]@8, ~@45 gb4@19 ~ gb4@23 ~@113 [gb4,eb5]@30 ~@9]/5", // Gb Eb7 Gb7 Ab5 Ab7 Bbsus2 Asus2 Absus2 …
O: "[[b3,db4,bb4]@36 [db4,eb4,bb4]@4 [e4,gb4,db5]@2 ~@4 [ab4,eb5]@19 ~ [ab4,eb5]@23 ~ [gb4,ab4,eb5]@4 [bb4,c5,f5]@20 [bb4,c5,f5]@4 [a4,b4,e5]@19 ~ [a4,b4,e5]@4 [ab4,bb4,eb5]@19 ~ [ab4,bb4,eb5]@4 [ab4,bb4,d5]@20 [ab4,bb4,d5]@4 [g4,a4,d5]@24 ~@26, ~@45 gb4@19 ~ gb4@23 ~@152]/5", // Gb Eb7 Gb7 Ab5 Ab7 Bbsus2 Asus2 Absus2 …
P: "[~@44 e5@7 ~@2 db5@2 b4@2 bb4@24 ~@15, ~@26 d5 ~@21]/2", Q: "~@29 f4@4 ~ bb4@14, ~@11 [gb4,ab4,eb5]@5",
R: "~@2 ab4@3 [f4,ab4,bb4,eb5]@4 [e4,gb4,ab4,db5]@16 ~ [ab4,db5]@3 [e4,gb4,ab4,db5]@4 ~ [f4,g4]@14, ~ [f4,bb4,eb5]@3 ~@21 [e4,gb4]@4 ~@4 [eb4,b4]@15", // Fm7 Dbm Db5 Dbm Fsus2 Ebsus2 Esus2 Abm
S: "~ [eb4,f4,g4,b4]@4 [eb4,f4,g4,b4]@4 [d4,e4,g4,bb4]@25 ~@14", // Ebaug Em7b5
T: "[~@53 ab5@25 ~@2 eb4@16, ~@41 eb5@35 ~@20, ~@23 f5@15 ~@10]/2",
U: "~ d4@4 eb4@3 ~ bb4@9 ab4@16 ~@11 eb4@3, ~@4 f4 ~@19, ~@9 g4 ~@38",
V: "[gb4@3 bb4@2 db5@4 c5@20 eb4@4 a4@8 gb4@2 d4@2 ab4@21 ~ db4@2 g4@12 ~ b4@11 g4@3 b4@2 eb5@2 ~ gb5@3 ~ eb5@12 ~@8 b4@4 [bb4,gb5]@13 eb4@2, ~@66 f4@2 ~@25 db5@11 f5@13 f5@12 ~@15]/3", // Ebm
W: "[~ d4@4 db4@4 c4@8 bb4@11 eb4@2 f4@3 gb4@19 f4@2 eb4@3 f4@18 ~ eb4@2 d4@2 ~@149 c4@82 ~@25, ~@80 eb4@231 ~@25, ~@203 a4@108 ~@25, ~@106 d4@49 ~@13]/7",
})).s("gm_trumpet").gain(0.26)
// chords · muted trumpet · "Trumpet-M"
const muted_trumpet = note("<~ A@3 ~@3 B C ~@8 D E@2 F G@2 H I ~@56>".pickRestart({
A: "[~@59 f5@56 ~@29, ~@37 bb4@80 ~@27, ~@44 eb5@71 ~@29, ~@13 ab4@16 ~@7]/3",
B: "~@2 f4@10 ~ [f4,ab4,eb5]@7 ~ db5@19 [c4,eb4,f4,bb4]@3 ~ [eb4,gb4,db5]@4, ~ [ab4,bb4,eb5]@11 bb4@7 ~ [eb4,gb4,ab4]@20 ~@3 ab4@5", // Fm7 Cm7 Ebm7 Absus2 Ab7
C: "[f4,ab4,bb4,eb5]@11 ~ [f4,bb4,eb5]@7 ~ db5@19 ~ [c4,bb4]@3 ~ [gb4,ab4,db5]@4, ~@11 ab4@7 ~ [eb4,gb4,ab4]@20 [eb4,f4]@4 eb4@4 ~", // Fm7 Ebsus2 C7 Gbsus2 Ab7 Ebsus2
D: "~@43 bb3@5",
E: "[eb4@16 f4@2 ~ d4@2 eb4@2 ~ bb4@5 ab4@27 ~@4 eb4@2 gb4@3 bb4@2 db5@4 c5@20 eb4@5, ~@9 eb4 ~@38]/2",
F: "a4@9 gb4@2 d4@2 ab4@11 ~ ab4@8 f4@2 ~ g4@12, ~@35 db4@2 ~@11",
G: "[~ ab4@10 ~@4 ab4@2 b4@2 eb5@2 gb5@2 f5@20 b4@4 bb4@40 ~ eb4@4 f4@4]/2", H: "gb4@11 f4@12 eb4@13 d4@11 ~",
I: "d4@4 eb4@3 f4@5 eb4@36",
})).s("gm_muted_trumpet").gain(0.2)
// chords · trombone
const trombone = note(`<
A@8 B C ~@7 D ~@6 E F G@2 H I@2 J K@3 ~ L M N O P@4 Q R S T@5 Q R S U@7 V@4 W X@3 Y@4 ~ Z@6
>`.pickRestart({
A: "[~@49 f3@115 ~@120 bb1@53 [eb3,gb3,bb3,db4]@10 ~@2 gb3@7 [db3,e3,ab3,b3]@20 [bb2,db3,f3,ab3]@3 ~ [e3,ab3,b3]@4, ~@14 bb2@68 ~@13 eb4@73 ~@24, ~@35 eb3@129 ~@17 bb3@156 ~@47, ~@42 ab2@122 ~@71 f3@103 ~@10 [eb3,bb3,db4]@8 ~@23 db3@4 ~]/8", // Ebm7 Dbm7 Bbm7 E Eb7
B: "[eb3,gb3,bb3,db4]@11 ~ [eb3,gb3,db4]@7 ~ e3@20 [bb2,db3,f3,ab3]@4 [e2,b2,ab3,b3]@4, ~@11 bb3@8 [db3,ab3,b3]@20 ~@9", // Ebm7 Bbm7 E Db7
C: "[eb2,bb2,gb3,eb4]", D: "~@18 bb3@5 gb3@24 ~, bb2, ~ eb3@7, ~@11 d4@37",
E: "~@35 [eb3,eb4]@6 ~ f4@6, ~@41 [d3,f3,d4]@7", F: "gb4@19 f4@2 eb4@3 f4@19 ~ eb4@4, eb3@43 f3@5, [bb3,c4] [a3,b3]",
G: "[[ab3,b3,db4,d4]@27 ~@3 bb3 bb3@4 ~@6 f4@6 ~ gb4@15 ~@4 eb4@2 ~@4 f4@5 e4@6 eb4@11 ~, ~@35 b3@12 [eb3,bb3,c4]@16 ~@3 [gb3,bb3,c4]@3 ~ gb4@4 ~@22, ~@35 e4@6 ~@23 b3@4 ~ [bb3,c4,eb4]@4 b3@23, ~@12 [d3,ab3]@4 ~@5 [c3,eb3,gb3] ~@2 [f3,a3]@8]/2", // Abdim Cm7 Cm7b5 Cm7 Ddim Cdim F
H: "[ab3,b3,db4,d4]@23 ~", // Abdim
I: "[~ gb3@22 f2@12 ~ b3@11 ~ [db4,f4]@22 ~@14 [f2,a3]@12, [b3,eb4]@35 [bb2,d4]@13 gb3@47 ~, ab2@23 ab3@24 eb3@23 c3@14 ~@12, ~@71 bb3@12 ~@13, ~@72 eb4@23 ~]/2", // Db F B Bb
J: "[ab3,b3,db4,eb4]@4 [ab3,b3,db4,eb4]!2 [gb3,a3,b3,db4]@4 [gb3,a3,b3,db4]!2", // Abm Gbm
K: "[[f3,ab3,bb3,b3]@15 ~ [f3,ab3,bb3,b3]@4 [f3,ab3,bb3,b3]@4 bb2@4 bb3@4 ab3@4 f3@4 d3@4 b2@3 bb2@5 ~@19 gb3@70 ~@3, ~@4 b3@4 ~@3 bb3@13, ~@24 f3@12 ~@17 eb3@90 ~, ~@24 ab3@8 ~@27 f3@83 ~@2]/3", // Fdim
L: "[eb3,gb3,bb3,db4] [ab2,gb3,bb3,c4]", M: "a3@12 ab3@11 ~ ab3@12 g3@12, [b2,d3,db4] [bb2,db3,c4]",
N: "[ab2,gb3] [db2,f3], [b3,eb4]", O: "[eb2,gb3,bb3,db4]@13 ~@35",
P: "[~@48 [bb3,f4]@18 [eb3,bb3,db4,f4]@4 [db3,ab3,b3,eb4]@14 [bb2,f3,ab3,c4]@4 [ab3,b3,eb4]@2 ~@4 [db4,f4]@20 [eb3,bb3,db4,f4]@4 [db3,ab3,b3,eb4]@14 [bb2,f3,ab3,c4]@4 [db3,ab3,b3,eb4]@2 ~@4 [eb3,bb3,db4,f4]@11 ~ [eb3,bb3,db4,f4]@30 [e3,b3,d4,gb4]@8, ~@47 [eb3,db4]@18 ~@23 db3 ~@4 [eb3,bb3]@20 ~@79]/4", // Bb5 Bbm Abm Fm Abm Db Bbm Abm …
Q: "[f3,b3,eb4,g4]@5 [f3,b3,eb4,g4]@13 [e3,b3,d4,gb4]@6", // Ebaug Bm
R: "[eb3,bb3,db4,f4]@9 ~ [eb3,bb3,db4,f4]@30 [c3,gb3,bb3,d4]@8", // Bbm Daug
S: "[b2,gb3,a3,db4]@15 ~@2 gb3@7 [bb2,f3,ab3,c4]@22 [a2,e3,g3,b3]@2, ~@5 b2@3 ~@8, ~@2 [a3,db4] ~@3", // Gbm Fm Em A
T: "[[ab2,eb3,gb3,bb3]@36 [bb2,f3,ab3,c4]@4 [db3,ab3,b3,eb4]@2 ~@4 db4@20 [eb3,bb3,db4,f4]@24 [eb3,bb3,db4,f4]@4 [g3,d4,f4,a4]@20 [g3,d4,f4,a4]@4 [gb3,db4,e4,ab4]@19 ~ [gb3,db4,e4,ab4]@4 [f3,b3,eb4,g4]@20 [f3,b3,eb4,g4]@4 [e3,b3,d4,f4]@24 [eb3,bb3,db4,f4]@11 ~ [eb3,bb3,db4,f4]@30 [e3,b3,d4,gb4]@8, ~@9 [eb3,bb3,f4]@4 ~@35]/5", // Ebm Fm Abm Bbm Dm Dbm Ebaug Bdim …
U: "[[ab2,eb3,gb3,bb3]@36 [bb2,f3,ab3,c4]@4 [db3,ab3,b3,eb4]@2 ~@4 db4@20 [eb3,bb3,db4,f4]@24 [eb3,bb3,db4,f4]@4 [g3,d4,f4,a4]@20 [g3,d4,f4,a4]@4 [gb3,db4,e4,ab4]@19 ~ [gb3,db4,e4,ab4]@4 [f3,b3,eb4,g4]@20 [f3,b3,eb4,g4]@4 [e3,b3,d4,f4]@19 ~ [e3,b3,d4,f4]@4 [eb3,bb3,d4,f4]@23 ~ [eb3,eb4]@5 [d3,f3,d4,f4]@6 ~ gb4@19 f4@2 eb4@2 ~@20 eb4@4 [ab3,b3,db4,d4]@27 ~@3 bb3 bb3@4 ~ e4@5 f4@6 ~ [bb3,gb4]@15, ~@45 [eb3,bb3,f4]@20 ~@160 eb3@43 f3@5 ~@36 [d3,ab3]@12 ~@15, ~@225 [bb3,c4]@24 b3@24 ~@35 b3@12 ~@16, ~@249 f4@20 ~@67, ~@125 a3@12 ~@23 [eb3,c4]@8]/7", // Ebm Fm Abm Bbm Dm Dbm Ebaug Bdim …
V: "[~@4 [gb3,eb4]@2 ~ gb4@3 f4@5 ~ e4@6 eb4@11 [ab3,b3,db4,d4]@46 ~@3 gb3@22 f2@12 ~ b3@12 [eb3,db4,f4]@23 ~ bb3@12 [f2,a3]@12 [ab3,b3,db4,eb4]@15, [eb3,gb3]@3 [bb3,c4]@3 [bb3,c4,eb4]@4 [f3,a3,b3]@24 ~@47 b3@35 [bb2,d4]@13 ~@23 c3@14 ~@26, ~ [c3,b3]@4 ~@76 ab2@23 ab3@24 ~ gb3@47 ~@16, ~@82 eb4@35 ~@36 eb4@23 ~@16]/4", // Ebm Abdim Db F Abm Ebm Bbsus2 Cm7 …
W: "~ [ab3,b3,db4,eb4]@4 [ab3,b3,db4,eb4]@4 [gb3,a3,b3,db4]@16 ~ db4@3 ~ db4@3 ~ [f3,ab3,b3]@14, ~@25 [gb3,a3,b3]@4 [gb3,a3,b3]@4 bb3@15", // Abm Gbm Fdim B7
X: "[~@2 [f3,ab3]@3 [f3,ab3,bb3,b3]@4 bb2@4 bb3@4 ab3@4 f3@4 d3@4 b2@3 ~ bb2@5 ~@19 gb3@70 ~@17, ~ [bb3,b3]@4 ~@4 b3@24 ~@18 bb3@78 ~@15, ~@9 f3@12 ~@17 eb3@89 ~@17, ~@9 ab3@8 ~@27 f3@83 ~@17]/3", // Fm Fdim Bmaj7
Y: "[~@33 [eb3,gb3,bb3,db4]@24 [ab2,gb3,bb3,c4]@24 a3@12 ab3@11 ~ ab3@12 g3@12 [ab2,gb3]@24 [db2,f3]@24 [eb2,gb3,bb3,db4]@13 ~@2, ~@27 [b2,d3,db4]@8 [bb2,db3,c4]@8 [b3,eb4]@16 ~@5]/4", // Ebm7 Ab7 Db Ebm7 Bm Bbm B
// … 59 more lines
More by Herman
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.