0:00/0:00
// Moonlight Serenade — Glenn Miller
// 84 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 68 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84/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
const bass = note(`<
~@2 A 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 A AG AH AI AJ AK AL AM U AN AO AP AQ AR AS ~
AT AU AV AW A AX AY AZ BA BB BC BD BE BF BG BH@3
>`.pickRestart({
A: "eb2 f2 g2 bb2", B: "c3 c2 eb2 gb2", C: "f2@8 e2@8 f2@8 f2@6 f1 ~", D: "bb1!4",
E: "eb2@8 bb2@8 eb2@5 ~ eb2@2 d2@8", F: "eb2@8 bb2@8 eb2@6 bb1 ~ bb2@5 bb1 ~@2",
G: "eb2@8 d2@8 eb2@6 bb1 ~ bb2@5 bb1 ~@2", H: "c2@6 c1 ~ c2@8 c2@6 c1 ~ f2@6 f1 ~",
I: "eb2@4 ~@2 eb2@2 bb2@8 eb2@6 eb1 ~ eb2@8", J: "f2@8 f2@4 ~@2 f2@2 b2@8 f2@6 f1 ~",
K: "bb1@8 b1@8 bb1@5 ~ bb1@2 d2@8", L: "eb2@6 eb1 ~ db2@8 f2@8 bb1@6 bb0 ~",
M: "eb2@6 bb1@2 bb2@7 ~ g2@8 eb2@3 ~@3 bb1@2", N: "c2 gb2 eb2 c2", O: "f2@8 gb2@8 f2@8 f2@6 f1 ~",
P: "bb1@6 bb0 ~ bb1@6 bb0 ~ bb1@6 bb0 ~ bb1@8", Q: "eb2@5 ~ eb2@2 d2@8 eb2@4 ~@2 eb2@2 bb2@8",
R: "eb2@8 d2@8 eb2@5 ~ eb2@2 d2@8", S: "eb2@4 ~@2 eb2@2 bb2@8 eb2@6 bb1 ~ bb2@5 bb1 ~@2", T: "c2!3 f2",
U: "eb2@6 bb1 ~ bb2@5 bb1 ~@2 eb2@6 eb1 ~ eb2@8", V: "f2@8 f2@6 f1@2 gb2@8 f2@6 f1 ~", W: "bb1@3 bb0 b1@4 bb1@4 e2@4",
X: "eb2@6 bb1 ~ bb2@5 bb1 ~@2 eb2@5 ~ eb2@2 g2@8", Y: "ab2@8 g2@8 ab2@6 ab1 ~ ab2@6 ab1 ~",
Z: "f2@4 ~@2 f2@2 b2@8 f2@6 f1 ~ b1@8", AA: "g2@6 g1 ~ g2@8 ~@16", AB: "db2@6 db1@2 db2@8 db2@8 db2@6 db1 ~",
AC: "c2@6 g1 ~ g2@5 g1 ~@2 c2@6 c1 ~ d2@6 d1 ~", AD: "d2@5 ~ d2@2 db2@8 d2@8 d2@8", AE: "g2@4 g2@4 c2@2 ~ c2 g2@4",
AF: "f2 c3 bb2 f2", AG: "c2@3 gb1 d2@4 eb2@3 gb1 eb2@4", AH: "f2@8 gb2@8 f2@6 f1 ~ f2@8",
AI: "bb1@6 bb0 ~ bb1@8 bb1@8 bb1@8", AJ: "eb2@2 ~ eb2 bb2@4 eb2@3 eb1 eb2@4",
AK: "eb2@6 bb1 ~ bb2@5 bb1 ~@2 eb2@8 eb2@8", AL: "eb2@5 ~ eb2@2 d2@8 eb2@8 b1@8", AM: "c2@6 c1 ~ c2@6 c1 ~ c2@8 f2@8",
AN: "f2@6 f1 ~ f2@4 ~@2 f2@2 b2@8 f2@8", AO: "bb1 f2 bb1!2", AP: "eb2@5 ~ eb2@2 d2@8 eb2@8 g2@7 ~",
AQ: "ab2 bb2 c3 eb3", AR: "f2@8 f2@8 f2@6 f1 ~ b1@6 b0 ~", AS: "g2@6 g1 ~ g2@6 ~@18",
AT: "c2@3 c1 eb2@4 d2@3 d1 d2@4", AU: "d2@8 a2@8 d2@5 ~ d2@2 gb2@8", AV: "g2@2 ~ g2 db3@4 c2@4 e2@4",
AW: "f2@3 f1 b1@4 bb1@2 ~ bb1 f2@4", AX: "c2@6 gb1 ~ d2@8 eb2@5 ~ gb1 ~ gb2@5 ~ gb1 ~",
AY: "f2@8 e2@8 f2@6 f1 ~ f2@6 f1 ~", AZ: "bb1@6 bb0 ~ bb1@8 bb1@6 bb0 ~ bb1@6 bb0 ~",
BA: "eb2@6 bb1 ~ bb2@5 bb1 ~@2 eb2@8 d2@8", BB: "eb2@4 ~@2 eb2@2 bb2@8 eb2@5 ~ eb2@2 d2@8",
BC: "eb2@4 bb2@4 eb2@2 ~ eb2 bb2@4", BD: "c2@6 c1 ~ c2@6 c1 ~ c2@6 c1 ~ f2@6 f1 ~",
BE: "eb2@6 eb1@2 eb2@8 eb2@6 eb1 ~ eb2@6 eb1 ~", BF: "f2@8 f2@6 b1 ~ b2@5 b1 ~@2 f2@8", BG: "bb1",
BH: "[~@2 eb2@34 ~ eb2@39 ~@20]/3",
})).s("gm_acoustic_bass").gain(0.12).pan(0.3)
// chords · piano
const piano = note(`<
~@2 A@2 B@3 C@4 D@2 E@2 F@4 G H I@2 J K@4 L M@2 N@6 O@2 P@3 Q@2 R@2 S@3 ~ T@2 U@4 V@2 W X@2 Y Z@2 AA AB@3
>`.pickRestart({
A: "[[g3,bb3,c4,eb4]@29 ~ [eb3,gb3,a3,c4]@34]/2", // Cm7 Ebdim
B: "[[eb3,ab3,c4,f4]@13 ~ [eb3,f3,ab3,c4]@7 ~ [eb3,ab3,b3,f4]@7 ~ [ab3,bb3,d4,f4]@7 ~ [ab3,d4,f4,c5]@10 [ab3,d4,f4,b4]@5 ~ [ab3,bb3,d4,gb4]@7 ~ [g3,d4,f4,bb4]@15 ~ [g3,c4,eb4,bb4]@18]/3", // Fm7 Fm7b5 Bb7 Dm7b5 Abdim Daug Gm7 Cm7
C: "[[g3,c4,eb4,bb4]@16 [g3,d4,f4,bb4]@13 ~ [g3,bb3,d4,f4]@15 ~ [g3,db4,eb4,bb4]@15 ~ [e3,bb3,c4,g4]@10 [e3,bb3,db4,g4]@8 [e3,bb3,c4,g4]@5 ~ [eb3,ab3,b3,f4]@7 ~ [g3,eb4,bb4]@18 [g3,eb4,bb4]@8 [gb3,bb3,c4,eb4]@8]/4", // Cm7 Gm7 Eb7 C7 Edim C7 Fm7b5 Eb …
D: "[[eb3,f3,ab3,c4]@5 ~ [eb3,ab3,b3,f4]@18 [eb3,ab3,c4,f4]@5 ~ [ab3,d4,g4,c5]@15 ~ [ab3,d4,gb4,bb4]@18]/2", // Fm7 Fm7b5 Fm7 Abmaj7 Daug
E: "[~@3 b5 c6@2 ~ g5 ~ bb5@2 ab5@2 g5 ~ f5@2 eb5 ~ db5 ~ c5@2 bb4@2 ab4@2 g4@2 ~ [g3,c4,eb4,bb4]@34]/2", // Cm7
F: "[[a3,eb4,gb4,c5]@29 ~ [ab3,eb4,f4,c5]@15 ~ [ab3,eb4,f4,c5]@7 ~ [ab3,b3,eb4,f4]@7 ~ [ab3,d4,f4,bb4]@7 ~ [ab3,d4,f4,c5]@7 ~ [ab3,b3,d4,f4]@10 [ab3,d4,gb4,bb4]@5 ~ [g3,d4,f4,bb4]@15 ~ [g3,c4,eb4,bb4]@18]/4", // Adim Fm7 Fm7b5 Bb7 Dm7b5 Abdim Daug Gm7 …
G: "[g3,c4,eb4,bb4]@13 ~ [g3,d4,f4,bb4]@18", H: "[g3,bb3,d4,f4] [g3,db4,eb4,bb4]",
I: "[[bb3,e4,g4,c5]@5 ~ [bb3,e4,g4,db5]@7 ~ [bb3,e4,g4,c5]@7 ~ [ab3,b3,eb4,f4]@7 ~ [g3,eb4,bb4]@18 [g3,eb4,bb4]@5 ~ [gb3,bb3,c4,eb4]@10]/2", // C7 Bbdim C7 Fm7b5 Eb Cm7b5
J: "[ab3,eb4,f4,c5]@8 [ab3,eb4,f4,b4]@13 ~ [ab3,c4,eb4,f4]@10", // Fm7 Fm7b5 Fm7
K: "[[ab3,c4,d4,g4]@16 [ab3,d4,gb4,bb4]@13 ~@10 bb3 ~ c4 db4 ~ f4 ~ g4 ~ bb4 c5 ~@2 eb5 ~ f5@2 g5@2 ab5@2 bb5@2 ~ eb5@2 bb5@2 ~ c6@9 ~ [g3,c4,eb4,bb4]@10 [f3,c4,eb4,ab4]@5 ~ [ab3,eb4,f4,b4]@18 [ab3,eb4,f4,b4]@5 ~ [ab3,b3,eb4,gb4]@10, ~@30 [g3,eb4,bb4]@13 eb4@2 ~ [g3,c4,db4,f4]@15 ~ [g3,c4,eb4,bb4]@15 ~@51, ~@47 ab4@2 ~@2 db5@2 ~@14 b5@2 ~@59]/4", // Abmaj7 Daug Cm7 Fm7 Fm7b5 Abm7 Eb Csus4 …
L: "[b3,g4,d5]!2 ~@2", // G
M: "[[bb3,e4,g4,db5]@13 ~ [bb3,e4,g4,db5]@10 [bb3,db4,e4,ab4]@5 ~ [a3,eb4,g4,c5]@15 ~ [a3,c4,eb4,g4]@10 [c4,gb4,a4,d5]@8]/2", // Bbdim Bbm7b5 Am7b5 D7
N: "[[c4,gb4,bb4,d5]@13 ~ [c4,gb4,bb4,d5]@7 ~ [c4,gb4,a4,eb5]@7 ~ [bb3,f4,g4,db5]@18 [bb3,e4,g4,c5]@13 ~ [ab3,eb4,f4,c5]@18 ~ ab6 ~ ab6 gb6 d6 db6 ~ b5 bb5 ab5 g5 f5 eb5 d5 c5@2 bb4@28 ~ [eb3,a3,c4,gb4]@31 ~ [eb3,ab3,c4,f4]@15 ~ [eb3,ab3,c4,f4]@10 [eb3,ab3,b3,f4]@8, ~@80 [ab3,d4,f4,b4]@13 ~ [g3,c4,eb4]@31 ~@67, ~@41 bb6 ~@54]/6", // Daug Cdim Gm7b5 C7 Fm7 Ebdim Fm7 Fm7b5 …
O: "[[ab3,d4,f4,bb4]@5 ~ [ab3,d4,f4,c5]@10 [ab3,d4,f4,b4]@8 [ab3,d4,gb4,bb4]@5 ~ [g3,d4,f4,bb4]@18 [g3,c4,eb4,bb4]@16]/2", // Bb7 Dm7b5 Abdim Daug Gm7 Cm7
P: "[[g3,c4,eb4,bb4]@16 [g3,bb3,d4,f4]@13 ~ [g3,bb3,d4,f4]@15 ~ [g3,bb3,db4,eb4]@15 ~ [e3,bb3,c4,g4]@7 ~ [e3,bb3,db4,g4]@7 ~ [e3,bb3,c4,g4]@10 [eb3,f3,ab3,b3]@8]/3", // Cm7 Gm7 Eb7 C7 Edim C7 Fm7b5
Q: "[[g3,eb4,bb4]@13 ~ [g3,eb4,bb4]@7 ~ [gb3,c4,eb4,bb4]@7 ~ [eb3,f3,ab3,c4]@7 ~ [eb3,ab3,b3,f4]@15 ~ [eb3,f3,ab3,c4]@10]/2", // Eb Cm7b5 Fm7 Fm7b5 Fm7
R: "[[ab3,d4,g4,c5]@13 ~ [ab3,bb3,d4,gb4]@15 ~ [g3,bb3,eb4]@15 ~ [g3,c4,db4,f4]@18]/2", // Abmaj7 Daug Eb Csus4
S: "[[g3,c4,eb4,bb4]@29 ~ [eb3,ab3,b3,f4]@15 ~ [eb3,ab3,b3,f4]@10 [ab3,b3,eb4,gb4]@5 ~ [b3,d4,g4]@10 [b3,g4,d5]@8 ~@16]/3", // Cm7 Fm7b5 Abm7 G
T: "[[a3,eb4,g4,c5]@13 ~ [c4,gb4,a4,d5]@15 ~ [c4,d4,gb4,bb4]@15 ~ [c4,gb4,a4,eb5]@18]/2", // Am7b5 D7 Daug Cdim
U: "[[bb3,f4,g4,db5]@16 [bb3,c4,e4,g4]@13 ~ [ab3,eb4,f4,c5]@18 [ab3,b3,d4,f4]@13 ~ [g3,c4,eb4,bb4]@31 ~ [eb3,a3,c4,gb4]@34]/4", // Gm7b5 C7 Fm7 Abdim Cm7 Ebdim
V: "[[eb3,f3,ab3,c4]@13 ~ [eb3,ab3,c4,f4]@7 ~ [eb3,ab3,b3,f4]@7 ~ [ab3,d4,f4,bb4]@7 ~ [ab3,d4,f4,c5]@7 ~ [ab3,d4,f4,b4]@10 [ab3,d4,gb4,bb4]@8]/2", // Fm7 Fm7b5 Bb7 Dm7b5 Abdim Daug
W: "[g3,d4,f4,bb4] [g3,c4,eb4,bb4]", // Gm7 Cm7
X: "[[g3,c4,eb4,bb4]@13 ~ [g3,d4,f4,bb4]@15 ~ [g3,d4,f4,bb4]@15 ~ [g3,bb3,db4,eb4]@18]/2", // Cm7 Gm7 Eb7
Y: "[e3,g3,bb3,c4]@5 ~ [e3,bb3,db4,g4]@7 ~ [e3,bb3,c4,g4]@10 [eb3,ab3,b3,f4]@8", // C7 Edim C7 Fm7b5
Z: "[[g3,eb4,bb4]@13 ~ [g3,eb4,bb4]@10 [gb3,bb3,c4,eb4]@5 ~ [eb3,ab3,c4,f4]@7 ~ [eb3,ab3,b3,f4]@15 ~ [eb3,f3,ab3,c4]@10]/2", // Eb Cm7b5 Fm7 Fm7b5 Fm7
AA: "[ab3,d4,g4,c5]@15 ~@2 [ab3,d4,gb4,bb4]@15", AB: "[~@2 [g3,eb4,bb4]@34 ~ [g3,c4,f4,bb4]@40 ~@19]/3",
})).s("gm_piano").gain(0.1).pan(0.3)
// other · alto sax
const alto_sax = note(`<
~@2 A B C D E F G H I J ~@2 A B C D E F G H I J ~@5 K L M N O P@2 Q R S@2 T U V W ~@2 X@2 Y Z AA AB AC AD A B C D E F
G H I J ~ AE AF@2
>`.pickRestart({
A: "bb4@26 ~ b4@2 c5@3", B: "a4@26 ~ b4@2 c5@3", C: "ab4@10 ~ b4@2 c5@3 ab4@10 ~ b4@2 c5@3", D: "d5@2 d5@3 ~ d5@2",
E: "f5@16 eb5@11 f5@2 g5@3", F: "eb5@26 ~ f5@2 g5@3", G: "f5@10 ~ f5@2 g5@3 f5@10 ~ f5@2 g5@3",
H: "g5@8 db5@8 c5@5 ~@3 eb5@8", I: "g5 bb4@2 c5", J: "f5 ab4@2 ab4", K: "~@3 db5", L: "c5@5 c5@2 ~ c5@16 c5@8",
M: "gb5@5 gb5@2 ~ gb5@13 ~@3 gb5@8", N: "f5@8 f5@5 f5@2 ~ c5@13 c5@2 ~", O: "eb5@8 eb5@5 eb5@2 ~ ab4@15 ~",
P: "c4@26 ~ d4@2 eb4@3", Q: "c4@10 ~ d4@2 eb4@3 c4@10 ~ d4@2 eb4@3", R: "e4@2 f4@3 ~ gb4@2", S: "g4@26 ~ ab4@2 bb4@3",
T: "g4@10 ~ ab4@2 bb4@3 g4@10 ~ ab4@2 bb4@3", U: "c5@2 e4@3 ~ f4@2", V: "bb4 d4@2 eb4", W: "ab4 b3@2 c4", X: "eb4/2",
Y: "d4@13 ~@3 d4@3 ~@2 eb4@3 ~@3 f4@3 ~@2", Z: "g4@17 ~@15", AA: "g4 gb4", AB: "bb4@16 a4@15 ~",
AC: "bb4@8 bb4@5 bb4@2 ~ bb4@12 bb4@4", AD: "ab4@8 ab4@5 ab4@2 ~ ab4@15 ~",
AE: "~@2 bb4@4 bb4@2 ~ bb4@3 ~@2 c5@2 eb5@3 ~ f5 ~ eb5@2 eb5 ~ f5 g5@2 ~@3, ~@8 c5@2 ~@3 bb4@2 ~@4 eb5@2 ~@11",
AF: "[~@5 f5@40 ~@19]/2",
})).s("gm_alto_sax").gain(0.25).pan(0.7)
// other · alto sax
const alto_sax_2 = note(`<
~@2 A B C D E F G H I J ~@2 A B C D E F G H I J ~@5 K L M N O ~@12 P Q@2 R S T U V A B C D E F G H I J ~ W X@2
>`.pickRestart({
A: "g4@26 ~ ab4@2 bb4@3", B: "gb4@26 ~ ab4@2 a4@3", C: "f4@10 ~ g4@2 ab4@3 f4@10 ~ g4@2 ab4@3",
D: "bb4@2 bb4@3 ~ bb4@2", E: "d5@16 c5@11 d5@2 f5@3", F: "c5@26 ~ d5@2 eb5@3",
G: "d5@10 ~ eb5@2 f5@3 db5@10 ~ db5@2 f5@3", H: "e5@2 bb4@3 ~ b4@2", I: "eb5 g4@2 bb4", J: "eb5 f4@2 f4",
K: "~@3 bb4", L: "a4@5 a4@2 ~ a4@16 a4@8", M: "d5@5 d5@2 ~ d5@13 ~@3 c5@8", N: "bb4@8 bb4@5 bb4@2 ~ bb4@13 bb4@2 ~",
O: "ab4@8 ab4@5 ab4@2 ~ f4@15 ~", P: "c4", Q: "[b3@44 ~@4 b3@3 ~@2 c4@3 ~@3 d4@3 ~@2]/2", R: "e4@17 ~@15",
S: "eb4 d4", T: "gb4@31 ~", U: "f4@8 f4@5 f4@2 ~ e4@12 e4@4", V: "eb4@8 eb4@5 eb4@2 ~ d4@15 ~",
W: "~@2 g4@4 g4@2 ~ g4@3 ~@2 bb4@2 c5@3 ~ eb5 ~ c5@2 c5 ~ eb5 eb5@2 ~@3, ~@8 bb4@2 ~@3 g4@2 ~@4 c5@2 ~@11",
X: "[~@5 c5@40 ~@19]/2",
})).s("gm_alto_sax").gain(0.25).pan(0.8)
// other · tenor sax
const tenor_sax = note(`<
~@2 A B C D E@2 F G H I ~@2 A B C D E@2 F G H I ~@5 J K L M N O@2 P Q R@2 S T U V ~@2 W@2 X Y Z AA AB AC A B C D E@2 F
G H I ~ AD AE@2
>`.pickRestart({
A: "eb4@26 ~ f4@2 g4@3", B: "eb4@26 ~ f4@2 gb4@3", C: "eb4@10 ~ e4@2 f4@3 eb4@10 ~ e4@2 f4@3",
D: "ab4@2 ab4@3 ~ ab4@2", E: "bb4@26 ~ b4@2 c5@3", F: "bb4@10 ~ c5@2 d5@3 bb4@10 ~ bb4@2 db5@3",
G: "bb4@2 g4@3 ~ ab4@2", H: "c5 f4@2 gb4", I: "c5 eb4@2 eb4", J: "~@24 g4@5 gb4@3", K: "g4@5 g4@2 ~ g4@16 gb4@8",
L: "bb4@5 bb4@2 ~ bb4@13 ~@3 a4@8", M: "g4@8 g4@5 g4@2 ~ g4@13 g4@2 ~", N: "f4@8 f4@5 f4@2 ~ d4@15 ~",
O: "c3@26 ~ d3@2 eb3@3", P: "c3@10 ~ d3@2 eb3@3 c3@10 ~ d3@2 eb3@3", Q: "e3@2 f3@3 ~ gb3@2", R: "g3@26 ~ ab3@2 bb3@3",
S: "g3@10 ~ ab3@2 bb3@3 g3@10 ~ ab3@2 bb3@3", T: "c4@2 e3@3 ~ f3@2", U: "bb3 d3@2 eb3", V: "ab3 b2@2 c3", W: "ab3/2",
X: "g3@13 ~@3 g3@3 ~@2 eb3@3 ~@3 b3@3 ~@2", Y: "bb3@17 ~@15", Z: "a3", AA: "d4@16 eb4@15 ~",
AB: "db4@8 db4@5 db4@2 ~ c4@12 c4@4", AC: "c4@8 c4@5 c4@2 ~ b3@15 ~",
AD: "~@2 eb4@4 f4@2 ~ eb4@3 ~@2 g4@2 ab4@3 ~ c5 ~ ab4@2 bb4 ~ c5 c5@2 ~@3, ~@8 g4@2 ~@3 f4@2 ~@4 bb4@2 ~@11",
AE: "[~@5 g4@40 ~@19]/2",
})).s("gm_tenor_sax").gain(0.25)
// other · tenor sax
const tenor_sax_2 = note(`<
~@2 A@2 B C D@2 E F G H ~@2 A@2 B C D@2 E F G H ~@5 I J K L M ~@12 N O P Q R S T U A@2 B C D@2 E F G H ~ V W@2
>`.pickRestart({
A: "c4@26 ~ d4@2 eb4@3", B: "c4@10 ~ d4@2 eb4@3 c4@10 ~ d4@2 eb4@3", C: "e4@2 f4@3 ~ gb4@2", D: "g4@26 ~ ab4@2 bb4@3",
E: "g4@10 ~ ab4@2 bb4@3 g4@10 ~ ab4@2 bb4@3", F: "c5@2 e4@3 ~ f4@2", G: "bb4 d4@2 eb4", H: "ab4 b3@2 c4", I: "~@3 e4",
J: "eb4@5 eb4@2 ~ eb4@16 d4@8", K: "gb4@5 gb4@2 ~ gb4@13 ~@3 eb4@8", L: "db4@8 db4@5 db4@2 ~ c4@13 c4@2 ~",
M: "c4@8 c4@5 c4@2 ~ b3@15 ~", N: "eb3", O: "f3@3 gb3", P: "g3@13 ~@14 d3@3 ~@2", Q: "db3@17 ~@15", R: "c3",
S: "d3@31 ~", T: "g3@8 g3@5 g3@2 ~ g3@12 g3@4", U: "f3@8 f3@5 f3@2 ~ f3@15 ~",
V: "~@2 c4@4 d4@2 ~ c4@3 ~@2 eb4@2 f4@3 ~ ab4 ~ f4@2 g4 ~ ab4 bb4@2 ~@3, ~@8 eb4@2 ~@3 d4@2 ~@4 g4@2 ~@11",
W: "[~@5 eb4@40 ~@19]/2",
})).s("gm_tenor_sax").gain(0.25).pan(0.4)
// other · muted trumpet
const muted_trumpet = note("<~@2 A B C D E F G H I ~ J K A B C D E F G H I ~ J L M N O P ~@38>".pickRestart({
A: "~@5 bb4@2 ~ bb4@5 g4@2 ~ bb4@5 g4@10 ~", B: "~@5 a4@2 ~ a4@5 gb4@2 ~ a4@5 gb4@10 ~", C: "~@5 ab4@11 eb5@15 ~",
D: "d5@4 ~ c5@5 ~@3 b4@5 ~@3 bb4@10 ~", E: "~@5 f5@2 ~ f5@5 f5@2 ~ eb5@5 g4@10 ~",
F: "~@5 eb5@2 ~ eb5@5 eb5@2 ~ d5@5 g4@10 ~", G: "~@5 d5@11 db5@15 ~", H: "c5 db5 c5 b4", I: "bb4@13 ~@19",
J: "g4@8 g4@5 g4@2 ~ bb4@13 bb4@2 ~", K: "g4@31 ~", L: "bb4@16 c5@15 ~", M: "g4@5 g4@2 ~ g4@16 f4@8",
N: "bb4@5 bb4@2 ~ bb4@13 ~@3 ab4@8", O: "g4@15 ~ d4@3 ~@2 eb4@3 ~@3 f4@3 ~@2", P: "g4@21 ~@11",
})).s("gm_muted_trumpet").gain(0.25).pan(0.6)
// other · trumpet
const trumpet = note("<~@34 A B C D E F G H I ~ J K ~@2 L M ~@2 N O A B C D E F G H I ~ P@2 Q@2>".pickRestart({
A: "~@5 bb4@2 ~ bb4@5 g4@2 ~ bb4@5 g4@10 ~", B: "~@5 a4@2 ~ a4@5 gb4@2 ~ a4@5 gb4@10 ~", C: "~@5 ab4@11 eb5@15 ~",
D: "d5@4 ~ c5@5 ~@3 b4@5 ~@3 bb4@10 ~", E: "~@5 f5@2 ~ f5@5 f5@2 ~ eb5@5 g4@10 ~",
F: "~@5 eb5@2 ~ eb5@5 eb5@2 ~ d5@5 g4@10 ~", G: "~@5 d5@11 db5@15 ~", H: "c5 db5 c5 b4", I: "bb4@13 ~@19",
J: "g4@8 g4@5 g4@2 ~ bb4@13 bb4@2 ~", K: "bb4@16 c5@15 ~", L: "~@16 d5@3 ~@2 eb5@3 ~@3 f5@3 ~@2", M: "g5@17 ~@15",
N: "f5@8 f5@5 f5@2 ~ e5@12 e5@4", O: "eb5@8 eb5@5 eb5@2 ~ d5@15 ~", P: "[g4@8 g4@5 ~ g4@3 bb4@14 bb4@3 bb4@27 ~@3]/2",
Q: "[~@5 c5@40 ~@19]/2",
})).s("gm_trumpet").gain(0.3).pan(0.6)
// other · muted trumpet
const muted_trumpet_2 = note("<~@2 A B C D E F G H ~@4 A B C D E F G H ~@3 I ~ J ~ K ~@38>".pickRestart({
A: "~@5 g4@2 ~ g4@5 eb4@2 ~ g4@5 eb4@10 ~", B: "~@5 gb4@2 ~ gb4@5 eb4@2 ~ gb4@5 eb4@10 ~", C: "~@5 f4@11 c5@8 b4@8",
D: "bb4@4 ~ ab4@5 ~@3 ab4@5 ~@3 ab4@10 ~", E: "~@5 d5@2 ~ d5@5 d5@2 ~ c5@5 eb4@10 ~",
F: "~@5 c5@2 ~ c5@5 c5@2 ~ bb4@5 eb4@10 ~", G: "~@5 bb4@11 bb4@15 ~", H: "a4@3 ab4", I: "~@16 g4@15 ~",
J: "f4@5 f4@2 ~ f4@13 ~@11", K: "e4@21 ~@11",
})).s("gm_muted_trumpet").gain(0.2)
// other · trumpet
const trumpet_2 = note("<~@34 A B C D E F G H ~@3 I ~@3 J ~@2 K L A B C D E F G H ~@4 M@2>".pickRestart({
A: "~@5 g4@2 ~ g4@5 eb4@2 ~ g4@5 eb4@10 ~", B: "~@5 gb4@2 ~ gb4@5 eb4@2 ~ gb4@5 eb4@10 ~", C: "~@5 f4@11 c5@8 b4@8",
D: "bb4@4 ~ ab4@5 ~@3 ab4@5 ~@3 ab4@10 ~", E: "~@5 d5@2 ~ d5@5 d5@2 ~ c5@5 eb4@10 ~",
F: "~@5 c5@2 ~ c5@5 c5@2 ~ bb4@5 eb4@10 ~", G: "~@5 bb4@11 bb4@15 ~", H: "a4@3 ab4", I: "~@16 g4@15 ~",
J: "e5@17 ~@15", K: "db5@8 db5@5 db5@2 ~ c5@12 c5@4", L: "c5@8 c5@5 c5@2 ~ b4@15 ~", M: "[~@5 bb4@40 ~@19]/2",
})).s("gm_trumpet").gain(0.25)
// other · muted trumpet
const muted_trumpet_3 = note("<~@2 A@2 B C D E F G H ~ I J A@2 B C D E F G H ~ I K L M N O ~@38>".pickRestart({
A: "~@5 eb4@2 ~ eb4@5 c4@2 ~ eb4@5 c4@10 ~", B: "~@5 eb4@11 ab4@15 ~", C: "ab4@4 ~ f4@5 ~@3 f4@5 ~@3 gb4@10 ~",
D: "~@5 bb4@2 ~ bb4@5 bb4@2 ~ bb4@5 c4@10 ~", E: "~@5 bb4@2 ~ bb4@5 bb4@2 ~ g4@5 d4@10 ~", F: "~@5 g4@11 g4@15 ~",
G: "g4@3 f4", H: "g4@13 ~@19", I: "d4@8 d4@5 d4@2 ~ gb4@13 gb4@2 ~", J: "~@8 e4@8 eb4@8 d4@7 ~", K: "g4@16 f4@15 ~",
L: "eb4@5 eb4@2 ~ eb4@16 eb4@8", M: "eb4@5 eb4@2 ~ eb4@13 ~@3 eb4@8", N: "d4@15 ~ b3@3 ~@2 c4@3 ~@3 d4@3 ~@2",
O: "db4@21 ~@11",
})).s("gm_muted_trumpet").gain(0.2).pan(0.4)
// other · trumpet
const trumpet_3 = note("<~@34 A@2 B C D E F G H ~ I J ~@2 K L ~@2 M N A@2 B C D E F G H ~ O@2 P@2>".pickRestart({
A: "~@5 eb4@2 ~ eb4@5 c4@2 ~ eb4@5 c4@10 ~", B: "~@5 eb4@11 ab4@15 ~", C: "ab4@4 ~ f4@5 ~@3 f4@5 ~@3 gb4@10 ~",
D: "~@5 bb4@2 ~ bb4@5 bb4@2 ~ bb4@5 c4@10 ~", E: "~@5 bb4@2 ~ bb4@5 bb4@2 ~ g4@5 d4@10 ~", F: "~@5 g4@11 g4@15 ~",
G: "g4@3 f4", H: "g4@13 ~@19", I: "d4@8 d4@5 d4@2 ~ gb4@13 gb4@2 ~", J: "g4@16 f4@15 ~",
K: "~@16 b4@3 ~@2 c5@3 ~@3 d5@3 ~@2", L: "db5@17 ~@15", M: "bb4@8 bb4@5 bb4@2 ~ bb4@12 bb4@4",
N: "ab4@8 ab4@5 ab4@2 ~ ab4@15 ~", O: "[d4@8 d4@5 ~ d4@3 gb4@14 gb4@3 g4@27 ~@3]/2", P: "[~@5 g4@40 ~@19]/2",
})).s("gm_trumpet").gain(0.25).pan(0.4)
// other · muted trumpet
const muted_trumpet_4 = note("<~@2 A B C D E F G H I ~ J K A B C D E F G H I ~ J L M N O P ~@38>".pickRestart({
A: "~@5 c4@2 ~ c4@5 bb3@2 ~ c4@5 bb3@10 ~", B: "~@5 c4@2 ~ c4@5 a3@2 ~ c4@5 a3@10 ~", C: "~@5 c4@11 f4@15 ~",
D: "f4@4 ~ d4@5 ~@3 d4@5 ~@3 d4@10 ~", E: "~@5 g4@2 ~ g4@5 g4@2 ~ g4@5 bb3@10 ~",
F: "~@5 g4@2 ~ g4@5 g4@2 ~ eb4@5 bb3@10 ~", G: "~@5 eb4@11 eb4@15 ~", H: "e4@3 eb4", I: "eb4@13 ~@19",
J: "c4@8 c4@5 c4@2 ~ d4@13 d4@2 ~", K: "eb4@8 db4@8 c4@8 c4@7 ~", L: "eb4@16 db4@15 ~", M: "c4@5 c4@2 ~ c4@16 c4@8",
N: "b3@5 b3@2 ~ b3@13 ~@3 b3@8", O: "b3@15 ~@17", P: "bb3@21 ~@11",
})).s("gm_muted_trumpet").gain(0.2).pan(0.3)
// other · trumpet
const trumpet_4 = note("<~@34 A B C D E F G H I ~ J K ~@2 L M ~@2 N O A B C D E F G H I ~ P@2 Q@2>".pickRestart({
A: "~@5 c4@2 ~ c4@5 bb3@2 ~ c4@5 bb3@10 ~", B: "~@5 c4@2 ~ c4@5 a3@2 ~ c4@5 a3@10 ~", C: "~@5 c4@11 f4@15 ~",
D: "f4@4 ~ d4@5 ~@3 d4@5 ~@3 d4@10 ~", E: "~@5 g4@2 ~ g4@5 g4@2 ~ g4@5 bb3@10 ~",
// … 101 more lines
More by Glenn 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.