0:00/0:00
// The Days of Wine and Roses — Oscar Peterson
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 118 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 · "ACOU BASS"
const bass = note(`<
A@6 B C@3 D@2 E@3 F@5 G@5 H@4 I@2 J@4 K@3 L@6 M N@2 O@3 P@3 Q@3 R@2 S T@3 U@3 V@2 W@3 X Y@2 Z AA@2 AB@3 AC AD@2 AE@3
AF@3 AG@3 AH@3 AI AJ@2 AK AL AM@3 AN AO AP AQ@3 AR@3 AS AT@3 ~@3
>`.pickRestart({
A: "[~@6 db2 ~@11 gb2@17 ~@6 b1 ~@10 e2@18 ~@6 a1@2 ~@10 d2@17 ab1@8 db2@10 g1@8 c2@9 f1@14 ~ c2@2 f2@8 ~ e2@9 eb2@14 ~ eb2@2]/6",
B: "~ bb2 ~@4 g2@2 ~ eb2@9 d2@13 ~",
C: "[~ d2@2 a1@17 ~ d2@16 ~@2 d2@7 ~ d2@2 ~ bb1@2 ~ a1 ~@2 g1@18 d2@12 ~@2 d2 ~@7]/3",
D: "[~ g2@2 ~@7 d2@3 g1@8 a1@9 bb1@15 f2 ~@2 f2@16]/2",
E: "[~ eb2@14 ~ bb1@2 ~ eb1@8 bb1@9 a1@20 ~@4 a1@2 c2@9 d2@14 ~ a1@3 f1@7]/3",
F: "[~ gb1@9 g1@17 bb1@12 ~@3 b1@2 ~ c2@14 ~ c2@2 ~ bb1@3 ~@5 a1@9 e1@13 ~@2 bb1@3 a1@8 db2@9 d2@18 g1@21 ~@2 g1@2 ~@2]/5",
G: "[~@8 a1@18 ~@5 bb1@2 ~@10 eb2@17 ab1@15 eb2@3 ab2@6 ~@3 g2@7 ~ gb2@12 ~@3 db2@2 ~@7 bb1@2 ~@6 gb1@2 ~ f1@15 a1@3 c2@11 ~]/5",
H: "[~@2 db2@3 c2@8 gb1@9 f1@8 ~ c2@2 ~@4 b1@3 bb1@18 f2@19 ~@4 bb2@3 f2@8 bb1@9 c2@9 db2@18]/4",
I: "[ab2@14 db2@3 gb2@6 gb1@12 gb2@3 ~@5 db2@9 c2@12]/2",
J: "[~@3 c2@2 bb1@9 g1@9 f1@15 ab1@2 ~@6 c2@8 ~ db2@3 d2@14 ~@3 ab1@17 ~ db2@17 ab1@17 ~]/4",
K: "[c2@13 ~@2 c2@2 ~ f1@7 ~ f1@9 bb1@7 ~@2 bb1@8 eb2@7 ~@2 eb2@6 ab1@2 ~@27]/3",
L: "[~@24 g1@3 c2@8 e2@7 c2@2 f2 ~@5 c2@2 ~ a1@9 g1@8 f1@9 bb1@9 db2@7 bb1@2 eb2 ~@5 eb2@2 bb1@8 ~ a1@8 c2@9 ~ d2@8 gb2@7 d2@2 a2 ~@5 a2@3 eb2@8 d2@9 ab1@9 g1@8]/6",
M: "~ d2@8 c2@9 bb1@9 g2 ~@4", N: "[~ gb2@2 f2@9 d2@9 c2@9 bb1@9 f2@8 db2@7 f2@2 d2@8]/2",
O: "[~ eb2@8 ~ db2@9 c2 ~@5 c2@2 bb1@8 ~ a1@8 bb1@9 c2@9 db2@9 d2@2 ~@4 d2@2 e2@9 f2@8]/3",
P: "[~ gb2@9 g2 ~@5 bb1 ~@2 a1@9 g1@8 bb1@6 ~ g1@2 c2 ~@5 c2@2 ~ d2@6 g1@2 e2@9 gb2@6 eb2@2 ~ e2@9 ab1@7]/3",
Q: "[~ a1@9 db2@9 d2@9 ab2@8 g2@2 ~@4 d2@2 ~ bb1@4 ~@2 a1@2 ~ g1@9 d2@9 e2@8 a1@9 bb1@7]/3",
R: "[~@2 f2@9 eb2 ~@5 eb2@2 a2@9 ab2@9 gb2@8 f2@9 e2@9 gb2]/2", S: "~@5 db2@2 bb1@9 gb1@9 db2@7",
T: "[bb1@2 c2@9 gb1@9 bb1@8 gb1@9 f1@9 a1@6 f1@2 ~ c2@8 b1@9 bb1@9 f2@8 eb2@7]/3",
U: "[~@3 bb2@8 bb1 ~@5 bb1@2 f2@9 eb2@9 bb2@9 db2@9 ab2@8 gb2@9 db3@9 db2 ~@5 db2@2 ab2@7]/3",
V: "[~@2 gb2@9 db3 ~@2 ab2 ~@2 db2 ~@2 c2@9 eb2@6 c2@2 g2 ~@5 g2@2 ~ gb2@9 f2@3 ~@3 f2@3]/2",
W: "[c2@8 f1@6 ~ e2@2 eb2@6 db2@2 ~ d2@9 c2@8 bb1@9 ab1@9 db2@8 b1@9 ab1@8 ~ db2@7 ab1@2]/3",
X: "c2@9 e2@8 f2@9 b2 ~@5", Y: "[b2@2 ~ bb2 ~@5 bb2@3 e2@8 eb2@9 g2@7 eb2@2 ab2 ~@5 ab2@2 ~ g2@8 f2@9]/2",
Z: "gb2@9 g2@2 ~ d2 ~@2 g1@2 ~ db2@6 bb1@2 c2@2 ~@4", AA: "[~ c2@2 gb1@9 f1@9 a1@6 f1@2 c2@9 b1@9 bb1@8 d2@9]/2",
AB: "[~ eb2@8 g2@7 gb2@2 a2 ~@5 eb2@3 d2@8 a1@9 a2 ~@5 eb2@3 d2@9 a1@8 a2@2 ~ eb2@2 ~ a1@2 ~ d2@2 gb2@6 g2@7 d2@2]/3",
AC: "~ bb1@9 a1@8 ab1@8 ~@2 g1@4", AD: "[~@2 d2@2 c2@9 g2@8 c2@9 bb1@9 c2@6 bb1@2 db2@2 ~@5 db2@2 d2@8]/2",
AE: "[~ eb2@8 ~ f2@8 g2@9 bb2@9 a2 ~@5 g2@2 ~ e2@8 c2@9 db2@9 d2@9 f2@9 a2@7]/3",
AF: "[~ ab2@9 g2@7 d2@2 bb1@9 a1@8 g1@9 c2@9 g2@8 ~ gb2@8 f2@8 ~ e2@9 ab1@7]/3",
AG: "[~@2 a1@8 eb2@9 d2@8 ~ gb1@9 g1@8 ab1@9 g1 ~@5 g1@3 d2@9 e2@8 a1@9 bb1@7]/3",
AH: "[~ f2@8 ~ eb2 ~@5 eb2@2 ~ a1@9 ab1@9 c2@9 eb2@8 ab2@9 gb2@8 bb2@9 ~ db3 ~@5 db3@2 gb2@7]/3",
AI: "~@2 f2@9 b2@8 a2@2 ~@3 f2@4 eb2@4", AJ: "[~ b1@4 a1@8 f2@6 ~ b1 ~ a1@6 ~ f1@2 a1@9 bb1@7 f1@2 c2@9 db2@6]/2",
AK: "~@2 d2@9 eb2@9 f2@9 ab2 ~@2", AL: "~@3 bb2@2 c3@6 db3@7 ~@2 db3@2 ~ ab2@9",
AM: "[e2@8 d2@9 gb2@9 db2@9 gb1@8 db2@6 ~ bb1@2 c2@9 eb2@6 c2@2 ~ g2@8 gb2@7 eb2@2 f2@6 c2@2 ~]/3",
AN: "ab1@9 g1@8 f1@9 d2@6", AO: "~@2 ab2 ~@6 ab2@2 f2@9 gb2@7 eb2@2 g2@3", AP: "~@3 g1@3 b1@9 d2@8 db2@9",
AQ: "[c2@9 gb2@9 f2@8 b1@9 bb1@9 d2@9 eb2 ~@5 eb2@2 db2@9 c2@9 gb1@9 f1@8]/3",
AR: "[a1@9 bb1@9 d2@8 eb2@9 db2@9 c2 ~@6 c2@2 gb2@9 f2@8 b1@9 bb1@9 d2@8]/3",
AS: "~ eb2@3 ~@5 g1@5 ~ ab1@3 ~@6 d2@2 ~ db2@4 ~", AT: "[~@3 c2@5 ~ b1@3 ~@10 bb1@3 ~@5 a1@6 ab1@38 ~@22]/3",
})).s("gm_acoustic_bass").gain(0.52).pan(0.3)
// chords · piano · "A.PIANO 1"
const piano = note(`<
A@4 B@2 C@2 D E@4 F@2 G@2 H@7 I@7 J@4 K L@2 M N@2 O P Q R S@2 T U V@2 W@3 X@2 Y@3 Z AA@2 AB@3 AC AD AE AF AG AH AI AJ
AK AL AM AN@2 AO@4 AP AQ@3 AR AS AT@3 AU@3 AV AW AX AY@5 AZ BA BB BC BD@2 BE@3 BF BG@5 ~
>`.pickRestart({
A: "[~@6 [e3,ab3,b3,eb4,gb5,db6,gb6] ~@10 [e3,bb3,a5,d6,gb6,a6]@20 ~@4 [a3,db4,d4,gb4,e5,a5,db6,e6] ~@11 [ab3,d4,g4,g5,c6,e6,g6]@19 ~@4 [g3,b3,c4,e4,d5,g5,b5,d6]@3 ~@9 [gb3,c4,f4,f5,bb5,d6,f6]@14 ~@3 [eb4,gb4,db5]@6 [b3,f4,a4,e5]@2 ~@7 [d4,f4,c5]@2 ~@6, ~@103 ab3@8 f3 ~@8 [bb3,ab4] ~@7]/4", // Emaj7 D Dmaj7 C Cmaj7 Bb Ebm7 Esus4 …
B: "[~ [e3,bb3,e4,ab4]@2 ~@6 b3@2 ~@17 d3 eb3 [a3,e4]@14 [eb3,g3,c4,db4,f4]@20, ~@8 d4@2 ~@2 a4@31 ~@21, ~@29 db4@14 ~@21]/2", // Bbm7b5 A5 Cm
C: "[g4@4 ~@2 a4@3 ~@3 c5@3 ~@4 d5@23 e4@2 d5@4 ~@5 [ab4,c5]@5 ~@6, ~@15 a2@27 ~@22, ~@17 [e3,b3,c4]@26 ~@21, ~@9 [g4,b4]@12 ~ bb4 ~@9]/2", // Ab Cmaj7 G
D: "~@4 [c4,eb4,ab4] ~@8 [gb3,bb3] ~@2 c5@3 ~@2 bb4@2 ~@2 [g4,ab4]@2 a4@3 g2 ~", // Ab Gb Abmaj7
E: "[~@10 d4@5 ~ d4 ~@10 [a3,bb3,d4]@17 ~ d4@6 ~@2 a4@3 ~@3 ab3 a3@11 [a3,bb3,db4,f4,a4]@3 ~@6 [a3,bb3,db4,f4]@4 ~@3 eb3 [e3,ab3,d4]@6 [eb3,g3,db4]@28 ~ a4@5, ~@51 f4@4 ~@4 [db4,f4,c5]@12 ~@57]/4", // Bbmaj7 Bbm E7 Eb7 Dbmaj7
F: "[~@2 e3 ~@7 [a2,g3,c4]@10 ~@2 [ab3,d4]@4 ~@4 [db3,g3,bb3,e4]@6 ~@3 [d3,a3,c4,f4]@3 ~@6 [e3,bb3,db4,g4]@4 ~@5 [f3,c4,d4,a4]@3 ~@4, ~ g4@2 ~@17 b2@4 ~@40]/2", // Am7 Abdim Dbdim Dm7 Edim Dm7
G: "[~@2 c4@5 ~ [bb3,a4]@34 bb4@2 ~ [d4,c5]@4 ~@2 e3@2 ~ [c4,g4,bb4]@5 ~@3 g4 ab4, gb3@7 ~@44 bb3 ~@12, ~ [f4,bb4,d5]@5 ~ [f4,c5]@36 ~@2 ab4@2 ~@17]/2", // Bbmaj7 D7 C7 Bb F5
H: "[a4@5 [e3,bb3] ~ g4@6 ~@18 e4@2 eb4@6 e4@12 [d4,eb4] ~@6 [f3,a3,b3]@8 f4@2 ~ [a3,db4,e4]@6 g2@3 d4@8 ~@6 [g2,f3,a3,bb3] ~@11 [a2,g3,a3,c4,e4]@17 ~@6 [bb2,ab3,c4,db4] ~@26 eb4@2 ~@16 ab2@2 [g3,c4,eb4,g4]@2 ~@13 e3@17 g4@2 ~ ab4@4 ~ bb4@2 ~ c5@4 ~@2 eb5, ~@13 a4@17 f4@2 ~ a2@10 ~@32 f3@11 ~@53 [eb3,db4,gb4]@14 d4@2 ~@33 [ab3,c4,eb4]@19 ~@17, ~@13 gb4@15 ~ gb4@4 ~@18 g4@17 ~@18 g4@18 ~@17 ab4@17 a4@16 ~@2 c5@32 ~@36, ~@14 [bb3,d4]@18 ~ g3@18 ~ e4@16 ~@24 d4@2 ~@33 f4@2 ~@23 eb4@2 ~@70]/7", // Edim Ebmaj7 Bm7b5 A Gm7 Am7 Bbm7 Cm …
I: "[~@8 [f3,a3,gb4,b4] ~@11 [eb4,g4,c5,eb5]@2 ~@7 [b4,f5]@5 [g4,eb5]@2 ~@4 [a4,d5,ab5]@3 ~@2 [f4,a4,db5,gb5]@3 ~@3 a4@3 ~@2 [f4,a4,db5,gb5]@12 ~@4 c5@6 f4@8 ab4@2 ~ ab4@4 ~@12 f4@2 ab4@3 ~@3 c5@3 ab4@5 ~@4 ab4@3 ~@3 c5@2 ab4@6 ~@3 ab4@4 ~@2 b4@4 ~@2 ab4@2 ~@3 ab4@4 ~@2 bb4 ~@8 e4@2 gb4@2 ~@4 gb4@27 [g3,bb3,c4,ab4] ~@2 [bb3,c4,eb5,g5]@3 ~@9, ~@2 f5@14 ~@11 f3@3 ~@39 eb5@2 db5@2 ~@5 [ab3,bb3,c4,db4]@57 ~@7 [gb3,ab3,b3]@33 ~ [ab3,bb3]@34 ~@14, ~@28 [a3,gb4]@5 ~ [eb4,c5] ~@5 eb4 ~@9 [eb4,d5,ab5]@3 ~@15 f5@2 d5@2 ~@16 f4@2 ~@23 b4 ~@17 b4 ~@16 bb4 ~@16 b4@10 ~@34 [eb5,ab5]@2 ~@13, ~@43 ab4 ~@12]/7", // B7 Cm Bdim Cm D Gbm C7 Cm7 …
J: "[~@3 [g3,bb3,c4] ~@2 [bb3,f5]@4 ~@4 [bb3,c4,g4,g5]@8 ~ [ab4,c5,eb5,ab5]@6 ~@20 [eb5,eb6]@7 ~@3 b5 ~@21 [ab3,c4,d4,g4]@5 ~ bb5@5 ~@2 g6@22 ~ [f3,b3,eb4,f5,f6]@11, ~@3 [eb4,eb5]@2 ~@24 [ab3,bb3,c4,eb4]@28 [ab3,c4]@24 ~@5 [ab3,c4,d4,g4,bb6]@6 [f3,b3]@25 ~@11, ~@32 [bb4,bb5]@25 ~ [d4,g4]@23 [ab5,eb6,ab6]@11 ~@25 [gb5,gb6] ~@10, ~@40 [c5,c6]@16 ~@2 [g5,c6]@34 ~ [eb4,g5,b5,eb6]@24 ~@11, ~@59 [e6,g6]@33 ~@36]/4", // C7 Bb5 C7 Ab Eb Abmaj7 Fm7b5 Eb …
K: "~@6 [gb3,bb3,c4,f4,eb5,bb5,eb6] ~@8 [a3,db4,eb4,c5,gb5,c6] ~@2 [db4,eb4,bb4,bb5]@4 ~@4 [a3,db4,eb4,ab4,ab5]@3 ~@3", // Cm7b5 Ebm7b5 Eb7 Amaj7
L: "[~@3 [ab3,c4,db4,f4,c5,f5,ab5,c6]@6 [ab3,c4,db4,f4,c5,f5,ab5,c6]@12 f4@5 ~ ab4@2 bb4@5 ~ [ab2,eb3,ab4]@2 ~@7 [bb5,d6]@2 ~@2 [bb5,d6]@3 ~@2 [ab5,d6]@2 ~ f5@3 ~@3 [eb5,a5]@2, ~@21 e4 ~@42]/2", // Dbmaj7 Ab5 Bb Abdim Ebdim
M: "~ c5@3 ~@2 [bb4,d5]@2 ~ d5@4 ~@2 f4@2 ~ [eb4,a4]@5 ~ c4@2 ~ bb3@5, ~@9 ab4@3 ~ bb4@2 ~@17, ~@7 ab4 ~@8", // Bb Ebdim
N: "[~ f3 ~ ab3@2 a3@4 ~@3 eb3@9 g4 a4@5 ~ eb3 ~ [f4,c5]@6 c4@2 ~ bb3@6 [bb2,f3] ~ ab3 a3@5 ~ db4@2 ~@7 eb2, ~@3 d4@6 f2@12 ab4@2 ~@41, ~@12 f3@2 ~@7 c5@6 ~@37]/2", // F5 Bb5
O: "~@8 [bb2,f4] g4@6 ~@2 f4 d5@2 ~@5 [d2,f4] ~@2 ab4@2 ~@2, ~@13 g4@2 ~, ~@27 d5@5", // Bb5 Dm
P: "~@3 d4@5 ~@2 d4 ~@10 [eb3,g3,db4] ~@10", Q: "~@4 [d3,gb3,c4] ~ f5@6 ~ e5@2 f5@4 ~@5 f4@3 ~@5",
R: "~ [g2,f3]@3 ~@6 ab4@2 a4@3 ~@10 [f3,a3,bb3] ~@6, ~@5 c5@2 ~@9", // G7 Bbmaj7
S: "[~ f4 ~@2 a4@4 ~@2 c5@3 bb4@6 ~@2 g4@5 ~ [bb2,ab3,ab4]@11 ~ f4@6 db4@2 ~ eb4@2 f4@3 db4@10 bb2]/2", // Bb7
T: "~ eb2 ~@2 [d4,gb4,db5] ~@4 [f4,db5] c5 ~@2 eb2 ~ [c4,a4]@2 ~@4 [db4,bb4]@2 ~ bb2 ~@2 c4@5, ~@9 db4@2 ~@4 e4 ~@5 f4 ~@10", // Dmaj7 Db F Gb
U: "~ [g3,e4]@2 ~ gb4 g4@8 c4@8 ~ d4@5 ~@5", // C
V: "[~@4 e4@2 ~ f4@4 ~@2 [d2,a2]@2 ~@7 g4@2 ~ a4@4 ~@2 c5@2 d5@5 ~ g2 ~@2 f5@6 ~@3 f5@4 ~@2 [a3,bb3] ~ [ab4,d5]@3 ~@2]/2", // D5 Bbmaj7 Abdim
W: "[~@16 e4@2 ~ g4@2 a4@3 bb4@2 ~ a4@2 ~ g4@4 ~@2 bb3 ~@2 gb4@4 ~@2 a4@2 ~ g4@6 ~@3 g4@9 ~@4 bb4 ~ f5 ~@2 a5@3 ~ e5@3 ~ [f5,gb5] g5@12, ~@66 [c4,db4,f4]@11 ~@6 [f3,a3,e4]@12 ~, ~@71 db5@2 ~@23]/3", // Gbmaj7 Dbmaj7 Fmaj7
X: "[f5@2 [d5,e5] ~ [f3,b3,e4,db5]@3 ~@2 [f3,b3,e4,d5]@2 ~@2 e5@2 ~ f5@3 ~ d5@2 bb4@2 ~@2 gb4 ~@2 a4@2 g4@3 ~@6 e4@2 g4@2 d4@3 ~ e4@3 ~@4 bb2@2 ~@4 db4 f4@2, ~@13 [f3,b3,e4]@8 ~@36 ab3@7]/2", // Dsus2 Db7 Bdim E
Y: "[ab4 ~ c5@2 eb5@5 ~@6 bb4@3 ~ b4@2 g4 gb4 ~ eb4@2 db4@2 [ab2,c4]@18 eb3 ~@4 ab3@2 ~ bb3@2 ~@2 c4@2 db4@3 [gb2,e3] ~@2 e4@2 ~ ab4@2 ~ eb5@5 ~@2 bb3 ~ eb5@4 ~@2 db5@2 ab4@6 ~, ~@9 eb3@2 ~@17 g3@14 ~@54, ~@10 db4@9 bb3 ~@3 e4@2 ~@38 eb4@2 ~@31]/3", // Ab Gb7
Z: "e4@2 eb4@5 ~ [a3,b3]@2 ~@7 f2 ~@2 f5@6 a4@2 ~@4, ~@26 b4 ~@5", // Asus2
AA: "[~@3 eb4 ~ [b5,f6]@3 [a5,eb6] ~@2 a3@2 ~ [b4,f5]@3 [a4,eb5] ~ eb3@2 ~ [b3,f4]@3 a3 eb4 ~ f2@3 [b4,f5]@3 ~ eb5 ~ bb2@2 ~ c5@4 ~@2 eb5@2 ~ c5@4 ~@2 [ab3,c4,db4,ab4,c5]@3 ~@6, ~@2 a3@2 ~@7 eb4 ~@22 a4@2 ~@28]/2", // Bdim Adim Bdim Adim Bdim Dbmaj7
AB: "[ab4@2 ~ c5@6 [bb1,f4] ~ b4@2 c5@6 ~ c5@5 ~ ab4@2 ~ f4@4 ~@4 bb3 ~@5 e6 ~@2 eb6@6 a5 ~@2 bb5@2 db6@2 b5@3 ~@4 g5@2 ab5@2 ~ d5@2 eb5@2 gb5@2 e5@2 b4@2 c5@2 ~ eb5@2 db5@2 ab4 ~ c5@2 ab4 ~ b4@2, ab3 ~@10 eb5@6 ~@9 [ab3,c4,db4]@12 ~@3 a5@2 ~@3 [gb3,ab3,b3,eb4]@37 ~@13, ~@21 c6 ~@26]/3", // Bb5 Dbmaj7 Abm7
AC: "~ ab4 bb4@3 gb5@2 ~@4 [e3,bb3,eb4]@2 g5@2 ~ eb5 d5 ~ c5 ~ bb4 g4 ab4 ~ c5 eb5 ~ ab5@2 bb5@2, ~@5 gb4 ~@21 g5@2 ~@3", // Eb
AD: "ab5@3 ~@11 [g3,ab3,c4] ~ g5 ab5 ~ eb6 ~@2 g6@2 ab6 g6 ab6 g6 ab6 g6 ~ ab6, ~@21 f6@2 ~@9", // Abmaj7
AE: "g6 ab6 g6 ab6 ~ [g6,ab6] ~ g6 ab6 [ab3,bb3,c4,eb4,g4,g6] ab6 g6@2 ab6 g6 ab6 g6@2 [gb3,bb3,db4,f4]@6 ~ gb6@2 ~ ab6@4, ~@24 f6@3 g6@2 ~@3", // Abmaj7 Gbmaj7
AF: "~@3 g6@4 ~@2 [ab3,c4,d4] ~@2 c6@3 ~@2 ab5@3 ~ g5@5 [f3,b3,eb4] ~@2 b5@3, ~@9 [f6,g6]@3 ~@14 f5@3 ~@3", // Dm7b5 Fm7b5 Fsus2
AG: "~@3 bb5@3 ab5@2 ~ eb5@2 b4@2 ~ [f3,b3,eb4] ~@2 ab4 ~@2 gb4@2 ~ g4@3 bb4@2 ~ d5@2 ~, ~@14 bb4@3 ~@15", // Fm7b5
AH: "[f4,f5]@3 d5 ~@2 [ab4,ab5]@2 ~ g5@2 ~@3 [gb4,gb5]@2 ~ [f4,f5]@4 ~@2 eb5@2 ~ bb4@2 b4@4, g2 ~@7 g4@2 ~@13 f2 ~@2 f5@5 ~", // F Ab Gb F
AI: "~ ab4 ~ [db5,f5]@4 ~@2 bb4 b4@2 ab4@3 ~@3 [gb4,c5]@3 eb4@5 ~ db4@2 b3@2 ~, ~@9 f5@2 ~@7 ab3 ~@8 ab4@5", // Db Gbdim
AJ: "~@3 [c4,ab4]@2 ~ ab3@5 ~ eb3 ~@2 c4@5 ~ eb4@3 db4@5 ~ eb3 ~, ~@3 b3 ~@2 bb3 ~@8 b3@2 ~@15", // Fm
AK: "~ f4@6 ab4@2 a4@4 ~@2 c5@2 ~ a4@2 ~@4 d4@2 c4@2 ~@4, ~ e4@2 ~@12 g2 ~@16",
AL: "bb3@2 ~ ab3@4 ~@2 f2@3 [d3,a3]@9 c3@2 ~@6 e3@2 ~", // D5
AM: "f3@2 g3@2 ab3 ~ a3@2 ~ bb3@2 b3@2 c4@2 a3 ~ bb3@2 ~@3 a3 ~ [eb2,bb3] ~ c4@2 db4@2 eb4@2, ~@6 c3 ~@25", // Eb5
AN: "[~ f4@2 g4@2 a4@2 bb4 ~ db4 eb5 ~@3 c5@2 ~ bb4@2 a4@2 bb4 ~ c5@2 ~@2 a4@3 c4 bb4@2 ~ a4 ~ g4@2 ~ a4@2 ab4 ~@3 ab4@2 ~ gb4@2 f4@2 eb4@2 d4@4 ~ d4@2 ~@3, ~@12 d5@2 ~@12 bb4@2 ~@7 ab4@2 ~@11 g4 ~@15, ~@13 db5@2 ~@10 b4@2 ~@37]/2",
AO: "[~@5 a2@2 d2 ~@2 d4 gb4@2 ~ bb4 ~ d5@2 gb5 ~ bb5 ~ db6 ~ d6@3 ~@2 c6@2 b5@2 bb5 ~ f5 ~ gb5@2 a5 ~ bb3 g5@2 d5 ~ bb4@2 ~@2 ab4 a4@2 bb3 [ab4,c5]@2 a4@2 g2 ~ f3 db4 ~@4 a4@2 d4 d5@2 [g4,bb4]@2 e4 ~@2 f4 ~ bb4@2 e4@2 c4 ~ f4 d4 bb3 a3@2 ~@5 bb2@8 f3 ~ a3@2 bb3@2 ~@2 bb2 ~ ab3@2 ~ ab3@2 f3@2 gb3 ~ g3@2 f4@2 ~@3, ~@41 [a3,d4]@8 g4@2 ~@12 f4@2 c5@2 ~@7 c5@2 ~@7 a4@2 ~@43, ~@50 c5@3 ~@11 a4@2 ~@9 a4@2 d4@2 ~@49]/4", // Ab Gm D5
AP: "bb2 eb2@2 ~ f3@2 bb3 ~ db4@2 eb4 ~ f4@2 ~ bb4@2 db5@2 eb5 ~ f5@2 bb5@2 ~ db6 ~ f6@2 db6@2, ~@19 [g3,db4]@13", // Gdim
AQ: "[bb5@2 ~@3 e6@7 ~ d6@4 ~@2 c6@2 ~ a5@5 ~ [g3,b3,c4] ~@2 d5@6 c5@2 [d5,eb5] e5@5 f5@2 ~@2 e5@5 f5@2 ~ [d5,f5]@4 ~@2 [c5,f5]@3 a4@4 ~ [g2,f3,g4]@2 ~ f4@6 [a3,bb3] f3@2 [ab4,d5]@3 a4@3 ~@3 d4@4, ~@4 [g3,b3,c4,e4]@12 ~@12 [e4,e5]@2 ~@18 [d5,eb5]@2 ~@21 d5@9 d4@2 ~ g4@2 ~@11, ~@2 eb6 ~@45]/3", // Cmaj7 Ebmaj7 Dm F5 G7 Bbmaj7 Abdim Cmaj7 …
AR: "~@2 d4@2 ~@10 b3 ~ e4 g4@2 bb4 b4 d5 ~@2 d5 eb5 ~ f5@2 [g5,ab5] a5 ~, ~@11 b4 ~@4, ~@23 c5@2 ~ e5@2 ~@4", // Abmaj7
AS: "~ e6 g6 ~@2 g6 ab6 ~ [db7,d7] e7 a7 ~@6 a4@2 bb4 a4 ab4 ~@2 a5 ~@7, c6@2 ~ e6@2 ~@10 [g3,c4,db4,f4]@11 ~@6, ~@4 f6@2 ~ a6@2 ~@23", // Dmaj7 Csus4
AT: "[~@8 e5@2 ~ g5@3 ~@3 f5@2 c5@3 ~ db5@2 e5@3 db5@2 ~ d5@2 ~ f5@2 ~ a5@4 ~@2 [a3,b3,e4]@2 ~ [f3,b3,f5,f6]@4 ~ [f3,a3,bb3,d4,g6]@2 ~@3 d6@3 ~@4 db6@2 d6@2 ~@5 [c6,gb6]@3 g6@2 ~@4 [g3,a3,c4,e4,d6,a6,d7]@8 ~ [ab6,eb7]@5 [ab3,c4,db4,f4,d6,ab6,bb6,d7], ~@19 [a3,b3,e4]@19 ~@5 [d5,d6] ~ [a3,e4]@4 ~@5 [f3,a3,bb3,d4,a5,db6]@6 ~@3 [f3,a3,bb3,d4,a5,f6,a6]@5 ~@4 [g3,a3,c4,e4,c7]@6 ~@11 [ab3,c4,db4,f4,eb6,bb6]@7, ~@46 g5 ~@4 g5 ~@3 a6@5 ~@36]/3", // Asus2 Fdim Gm7 Cdim Am7 Ab5 Dbmaj7 Asus2 …
AU: "[~@2 [ab3,c4,db4,f4,db6,ab6,db7]@5 ~@3 g6 ~@6 g3@2 [g3,c4,db4,f4,eb5,bb5,eb6]@8 ~ [g3,bb3,c4,f4,c6,g6,c7]@17 ~ [g3,bb3,c4,f4,c6,g6,c7]@3 ~@5 [b3,e4,b5,g6,b6]@6 ~ [c6,ab6,c7]@11 [e3,bb3,eb4,eb5,bb5,eb6]@6 ~@3 [e3,bb3,eb4,f6]@6 [e3,bb3,eb4,ab5,ab6] ~ [e3,bb3,eb4,bb5,bb6]@7, ~@8 [g3,c4,db4,f4,c6,gb6,c7]@4 ~@41 f3@7 [e3,bb3,eb4]@11 ~@10 [f5,c6] ~@14]/3", // Dbmaj7 Gm7b5 Gm7 Em Fm Eb Ebsus2 Emaj7 …
AV: "~@4 b5@3 ~ [a3,db4,b5,gb6]@2 ~ [a3,db4,eb4,ab4,bb5,eb6,gb6,bb6]@6 [a3,db4,eb4,ab4,bb5,gb6,bb6]@2 ~ [db4,eb4,ab5]@4 ~@4 [a3,db4,eb4,ab4,f5,db6,f6]@4, ~@2 [a3,db4,eb4,ab4,eb6,gb6]@5 ~ [eb4,ab4,eb6,b6] ~@10 [a3,ab4]@5 ~@8, ~@2 [bb5,bb6]@2 ~@13 eb6 ~@2 [eb6,ab6]@2 ~@10, ~@3 b6@4 ~@25", // Gbm Ebm7 Dbsus2 Db Ebm7b5 Abm Amaj7 Bb …
AW: "~@3 ab6@3 ~@14 [g2,a2] f2 f1@10, ~@3 [db4,eb4,ab4,ab5,db6]@13 a3 [f3,g3] e3 [c3,d3]@3 ~@10, ~@3 a3@9 [g4,a4]@8 b2@2 ~@10, ~@10 [c5,d5]@3 f4 [d4,e4]@8 ~@10, ~@11 b4@4 [b3,c4]@7 ~@10", // Gsus2 Dbsus2 Fsus2 Csus2 Gsus2 Csus2 Dsus2 Cmaj7
AX: "f5@5 ~ [c4,db4,ab5]@2 ~ [ab3,c4,db4,c5]@4 ~@4 [ab3,bb3,c4,db4,f4,f5]@5 ~@4 [ab3,bb3,c4,db4,f4,c5]@4 ~@2, e5@2 ~@4 [ab3,f4] ~ [f4,c6]@4 ~@14 ab5@2 ~@4", // Dbmaj7 Db F5
AY: "[~@9 [bb3,d4,eb4] ~@2 [bb3,d4,eb4,g4] ~@2 bb5@2 ~ db4@2 ab5@2 ~ [c5,c6]@3 ab5@2 ~ f5@2 ~@3 f5@2 ~@4 [c5,c6]@3 ~@6 eb5 ~ eb6 eb5 eb6 ~ eb6@2 eb5 eb6 eb5 eb6 ~ eb5!2 ~@6 [gb5,gb6]@2 ~ [e5,e6]@5 [e3,bb3,eb4]@18 ~@9 ab5@11 ~ [g3,bb3,c4,f4,c5,eb5,g5]@3 ~@5 [g3,bb3,c4,f4,c5,eb5]@8 ~ [ab3,d4,b4,d5,f5]@4 ~@5 [g3,bb3,c4,f4,c5,eb5,g5]@7 ~@2 [eb4,c5,eb5,ab5]@4 ~@4, ~@9 bb5@2 ~ [d5,d6]@5 [a3,d4,gb4,db5,db6]@3 ~@3 [ab3,db4]@20 [eb5,eb6]@6 ~@5 eb5@2 ~@7 eb6@3 ~@12 [c5,c6]@25 ~@57, ~@23 [c4,f4]@14 ab5@7 ~@2 [e3,gb3,ab3,b3,eb4]@11 ~@7 [e3,ab3,b3,eb4]@15 ~@17 [e3,bb3,eb4]@20 ~@35 [ab3,c4]@4 ~@5]/5", // Ebmaj7 C Gb E Eb Cm7 Abdim Cm7 …
AZ: "[g3,bb3,db4,e4,db5,e5,bb5]@5 ~@4 [c4,eb4,c5,f5,ab5,c6]@6 [gb3,bb3,db4,f4,eb5,bb5,eb6]@3 ~@6 [f3,ab3,e4,g5,e6,g6]@2 ~@6, ~@7 f3@8 ~@17, ~@8 ab3@7 ~@9 [c4,c6] ~@7", // Gdim Fm7 Gbmaj7 C
BA: "~ [f3,ab3,c4,g5,c6,e6,g6]@2 ~@6 [f3,ab3,c4,e4,f5,c6,f6] ~@2 [f3,ab3,c4,e4,g5,c6,g6]@4 ~@4 [f3,ab3,c4,e4,f5,c6,f6]@8 ~@2 [f3,b3,eb4,bb6]@2, e4@2 ~@28 [bb5,eb6,gb6] ~", // Fm Ebsus2 Ebm
BB: "~ eb6@2 [f3,b3,eb4,ab5,eb6,ab6]@2 ~ e3 eb6 ~@7 [g1,g2]@15 g3@2, gb6@5 ~@27, [b3,eb4]@3 ~@3 [f3,b3,eb4,g5,g6]@25 ~, ~ a6@5 ~@26", // Fm7b5 G B Ebaug
BC: "~ c3@2 ~@3 [g4,eb5]@2 ~@7 c5@3 [eb4,bb4]@4 ~@5 [eb4,ab4]@4 ~, ~@6 [bb3,bb4] ~@8 eb3@6 ~@6 eb3@2 ~@3, ~@18 f2@9 ~@5", // Cm Eb5 Ab5 Bb
BD: "[~@3 c5@5 ~@4 c5@5 ~ [g3,db4,e4,gb4,a4,c5]@17 [gb3,c4,f4,bb4,d5]@2 ~@2 gb3@3 ~@5 [gb3,c4,f4,bb4,eb5]@4 ~@5 [a3,eb4,a4,b4,d5]@4 ~@4, ~ bb2@15 ~@48, ~@3 [ab3,db4,f4]@13 ~@22 [c4,f4,bb4,f5]@3 ~@23, ~@10 b4@7 ~@47]/2", // Gbm7 Bb Cm7b5 B7 Db Fsus4
BE: "[~ [a3,eb4,b4]@4 ~@13 g5@5 ~@13 c6@5 ~@12 [f5,f6]@5 [gb5,db6,gb6]@3 ~@9 [bb5,bb6]@5 ~ [ab3,c4,d4,g4,c6,ab6,c7]@2 ~@7 [ab3,ab5,ab6]@9 ab3@2, [a4,eb5]@4 ~@5 [ab3,d4,g4,c5,e5]@14 ~ [g3,bb3,c4,db4,f4,c5,f5,a5]@17 [gb3,bb3,c4,f4,d5,bb5,d6]@17 [a3,db4,eb4,ab4]@17 ~@9 [c4,d4,g4]@12, ~@15 f5@8 ~@10 bb5@8 ~@9 [eb5,eb6]@9 ~@8 [ab5,ab6]@8 ~ f6 ~@19]/3", // B7 F Gb5 Bb Abmaj7 Ab Adim C …
BF: "~ [db4,f4,f5,db6,f6]@4 ~@5 ab6@5 [g3,bb3,c4,f4,ab5,eb6,ab6]@3 ~@6 [d3,c4,f4,ab4]@3 ~ [db3,b3,e4]@4, ab3@4 ~@5 [ab3,db4,f4,ab5]@7 ~@11 ab4@3 ~@2", // Db Cm7 Dm7b5 Dbm7 Db
BG: "[~@2 bb2 ~ [c3,eb4,ab4]@5 ~ [b2,a3,d4,ab4]@3 ~@8 [db3,ab3,c4,db4,f4]@4 ~@5 [e3,g3,b3,db4,eb4,gb4]@6 f4@14 ~@19 d7@6 ~@15 bb5@4 bb5@5 ~@61, ~@4 bb3@3 ~@12 bb2@5 ~@4 a2@7 ~ [ab2,eb3,g3,bb3,c4,d4]@18 d5@3 bb5 c6@2 d6@2 f6@2 bb6@2 c7@8 ~@10 gb4@64 ~@12, ~@21 f3@2 ~@28 f4@24 ~ d3@10 bb4@64 ~@10, ~@52 bb4@23 ~@4 bb3@8 c5@64 ~@9, ~@53 c5@22 ~@8 f4@64 ~@13]/5", // Ab Abdim Dbmaj7 Dbm7b5 Abmaj7
})).s("gm_piano").gain(0.48).pan(0.6)
// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
A@2 ~ B C@2 ~ D ~ E@2 F ~@2 G H@2 I ~@3 J ~@5 K L@3 M@2 ~@2 N ~@5 O ~@2 P@2 ~ Q ~@2 R ~ S T U V ~ W X ~@2 Y ~ Z@2 AA
AB ~@2 AC ~ AD@2 AE AF AG AH AI AJ AK AL AM ~ AN ~@2 AO AP AQ@2 ~@5 AR ~ AS AT ~@2 AU ~@2 AV ~@4 AW ~@4 AX@4
>`.pickRestart({
A: "[~@17 d4@19 ~@28]/2", B: "~@9 bb4@6 ~@10 a4 ~@6, ~@8 b3@7 ~@9 g3@2 ~@6",
C: "[~@9 c4 ~ c4 ~@15 db3@2 e3@14 ~@21]/2", D: "~@14 b4@2 ~@12 d3 ~@3", E: "[~ d4@6 ~@18 g2@2 f3@17 ~@20]/2",
F: "~@22 d3 ~@9", G: "~@5 bb2@2 ~@15 eb3@2 ~@8", H: "[~@8 [g3,d4]@36 ~@3 a4@2 ~@15]/2", I: "~@7 g4, ~@7 [e3,g3]@9",
J: "~@23 e4@3 ~@6, ~@11 g3@16 ~@5", K: "~@13 f4 ~@2",
L: "[~@11 f4@2 ~@16 e4 ~@21 e4@2 ~@31 [g3,g4]@3 ~@9, ~@14 [e3,eb4]@33 ~@2 e3@34 ~@13]/3", // G Emaj7
M: "[~@6 [g3,c4,f4]@4 ~@4 g3@7 ~@8 g4@27 ~@8]/2", N: "~@9 a3@2 ~@5", O: "~@15 a4",
P: "[~@28 c4@3 d4@2 ~@18 f4@2 ~@11]/2", Q: "~@7 e2 ~@10 eb2 ~@13", R: "~@18 d5 ~@6 f3@2 ~@3 a4@2", S: "~@4 e3 ~@27",
T: "~@5 a4@2 ~@12 c4@11 ~@2, ~@2 g3@11 ~@19", U: "~@25 g4 ~@6", V: "~ d4 ~ f4@2 ~ d4 ~@8 c4 ~@12 c4@2 ~@2",
W: "~@8 g3 ~@7", X: "~@14 eb4 [e3,db5] ~@16", Y: "~@13 f4@3", Z: "[~@4 f5 ~@2 e3@18 ~@7]/2", AA: "~@29 a5 ~@2",
AB: "~@9 c6 ~@6", AC: "a5 ~@15", AD: "[~@12 bb4 ~@18 c4@2 ~@31]/2", AE: "~@21 f4 ~@8 b3@2", AF: "~@25 f3@2 ~ c3 ~@3",
AG: "~@10 g3 ~@5", AH: "~@9 g3 ~@22", AI: "~@12 gb4 ~@19, ~@11 g4@2 ~@19", AJ: "~@27 a5 ~@4",
AK: "~@12 bb3@6 ~@13 d4", AL: "~@4 f4 ~@11 [g4,ab4] ~@15", AM: "~@12 f3@3 ~@2 bb3@3 ~@12, ~@11 a3@2 ~@19",
AN: "~@3 f5 ~@28", AO: "~@9 a4 ~@6", AP: "~@23 b4 ~@8", AQ: "[~@14 e5@2 ~@3 f3@19 ~@5 f3 ~@11 f6@4 ~@5]/2",
AR: "~@9 e5@12 ~@11, ~@7 g5@15 ~@10, ~@8 f5@13 ~@11", AS: "~@9 g4 ~@22", AT: "c5 ~@15", AU: "~@21 f3@6 ~@5",
AV: "~ a5@5 ~@9 eb2@16 ~, ~ f3@2 ~@29", AW: "~@9 g4@17 ~@6",
AX: "[~@9 gb5@16 ~@7, ~@9 d2@16 gb5@2 f6@2 d6@64 ~@35, ~@14 gb3@17 gb5 f6@64 ~@32, ~@17 c4@17 c6@64 ~@30, ~@24 f5@11 bb5@64 ~@29]/4",
})).s("gm_piano").gain(0.32).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
A B C D E F ~ G H I J K L ~ M ~ N O P Q R N S T U V W X Y U Z B AA AB AC AD AE AF ~ AG AH AI AJ AK AL AM AN L AO AP AQ
AR O P AS AT AU S T AV AW AX AY AZ U Z B C BA AC BB BC BD BE AG F ~ G H I J K L AO AP AQ N O P Q BF AU S T U V W X Y U
Z B C AB AC AD AE BD BE E BG ~ BH AF ~@4
>`.pickRestart({
A: "x ~@16 x ~@14", B: "~@3 x ~@16 x ~@11", C: "~@3 x ~@12", D: "~@9 x ~@5 x ~@16", E: "~@27 x ~@4",
F: "~@12 x ~@2 x ~@14 x ~", G: "~ x ~@19 x ~@10", H: "~@4 x ~@16 x ~@10", I: "~@7 x ~@24",
J: "~ x ~@17 x ~@7 x ~@2 x ~", K: "~@13 x ~@16 x ~", L: "~ x ~@14 x ~@15", M: "~@11 x ~@4", N: "~@7 x",
O: "~@16 x ~@14 x", P: "~@19 x ~@12", Q: "~@2 x ~@16 x ~@2 x ~@9", R: "~@22 x ~@2 x ~@6", S: "~@11 x ~@16 x ~@2 x",
T: "~@14 x ~@16 x", U: "~@17 x ~@14", V: "~@5 x ~@14 x ~@11", W: "~@5 x ~@8 x ~@17", X: "x ~@3 x ~@8 x ~@2",
Y: "~@14 x ~@14 x ~@2", Z: "x ~@4 x ~@2", AA: "~@3 x ~@9 x ~@2", AB: "~@9 x ~@16 x ~@2 x ~@2", AC: "~@3 x ~@4",
AD: "x ~@14 x ~@16", AE: "x ~@8 x ~@6", AF: "~ x ~@6", AG: "~@12 x ~@14 x ~@4", AH: "~@15 x ~@14 x ~",
AI: "~@9 x ~@6", AJ: "~ x ~@16 x ~@2 x ~@10", AK: "~ x ~@4 x ~", AL: "~@7 x ~@16 x ~@2 x ~@4", AM: "~@5 x ~@10",
AN: "~@13 x ~@18", AO: "~@4 x ~@14 x ~@12", AP: "~@2 x ~@8 x ~@4", AQ: "~@10 x ~@14 x ~@6", AR: "~@13 x ~@14 x ~@3",
AS: "~@2 x ~@16 x ~@12", AT: "~@5 x ~@19 x ~@6", AU: "~@2 x ~@4 x", AV: "~@2 x ~@14 x ~@14",
AW: "~@2 x ~@2 x ~@14 x ~@11", AX: "~@23 x ~@8", AY: "~@11 x ~@14 x ~@5", AZ: "~@11 x ~@17 x ~@2",
BA: "~@9 x ~@19 x ~@2", BB: "~@15 x ~@16", BC: "~@3 x ~@14 x ~@13", BD: "~@6 x ~@14 x ~@10", BE: "~@9 x ~@14 x ~@7",
BF: "~@5 x ~@16 x ~@2 x ~@6", BG: "~@6 x ~@8 x", BH: "~@21 x ~@10",
})).gain(0.07)
// drums · rim
const rim = s("rim").struct(`<
~@5 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 ~@3 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 AD AB AC ~ AE AF A B C D E F G H I ~ J K L M N O P Q R S ~@2 U V W X Y Z AA AD AB AC ~ AE AF A B ~@6
>`.pickRestart({
A: "~@3 x ~@12", B: "~@9 x ~@22", C: "~@3 x ~@4", D: "~@15 x ~@16", E: "~@9 x ~@6", F: "~@21 x ~@10", G: "~@3 x",
H: "~@27 x ~@4", I: "~@15 x", J: "~ x ~@30", K: "~ x ~@6", L: "~@7 x ~@24", M: "~@5 x ~@10", N: "~@13 x ~@18",
O: "~ x", P: "~@19 x ~@12", Q: "~@11 x ~@4", R: "~@25 x ~@6", S: "~@7 x", T: "~@31 x", U: "~ x ~@14", V: "~@5 x ~@26",
W: "~ x ~@2", X: "~@11 x ~@20", Y: "~@7 x ~@8", Z: "~@17 x ~@14", AA: "~@5 x ~@2", AB: "~@13 x ~@2", AC: "~@29 x ~@2",
AD: "~@23 x ~@8", AE: "x", AF: "~@3 x ~@28",
})).gain(0.36)
// drums · snare
const snare = s("sd").struct(`<
A B C D E F ~@7 G ~ H ~ I ~ J K L ~@6 M ~ A ~ N O P Q@2 R ~ S F ~ T ~@2 U ~@2 U R V W I ~@3 X ~@3 Y ~@4 A Z ~@2 O ~ AA
AB ~ AA F ~@7 U ~ V ~ I ~@3 X ~@2 AC AD AE ~ M ~ A ~ AF ~ O ~ Q AB ~ AG AH AI AJ R ~@4
>`.pickRestart({
A: "~@17 x ~@14", B: "~@9 x ~@11 x ~@10", C: "~@12 x ~@10 x ~@6 x ~", D: "x ~@14 x ~@8 x ~@7",
E: "~ x ~@4 x ~@2 x ~@2 x ~@19", F: "~@21 x ~@10", G: "~ x ~@19 x ~@10", H: "~ x ~@2", I: "~@11 x ~@4", J: "~@7 x",
K: "~@7 x ~@24", L: "x ~@10 x ~@13 x ~@6", M: "~@5 x ~@2", N: "~@13 x ~@2", O: "~@29 x ~@2",
P: "~@21 x ~@4 x ~@2 x ~@2", Q: "x", R: "~ x ~@6", S: "~@4 x ~@4 x ~@2 x ~@5 x ~@13", T: "~@27 x ~@4", U: "~ x ~@30",
V: "~ x", W: "~@19 x ~@12", X: "~@25 x ~@6", Y: "~@11 x ~@20", Z: "~@7 x ~@8", AA: "~@9 x ~@22", AB: "~@3 x ~@4",
AC: "~@2 x ~@8 x ~@7 x ~@8 x ~@3", AD: "~@3 x ~@16 x ~@2 x ~@2 x ~@2 x ~ x", AE: "~@2 x ~@2 x ~@2 x ~@23",
AF: "~@3 x", AG: "~@9 x ~@17 x ~@4", AH: "~@12 x ~@8 x ~@10", AI: "~@15 x ~@8 x ~@2 x ~@4",
AJ: "~@3 x ~@6 x ~@7 x ~@2 x ~@8 x ~",
})).gain(0.29)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@13 A ~@21 B ~@3 C ~@8 D ~@8 E ~@8 F ~@16 G H ~@20 B ~@12>".pickRestart({
A: "~@5 x ~@9 x", B: "~@3 x", C: "~@3 x ~@12", D: "~@7 x", E: "~@2 x ~@2 x ~@13 x ~@2 x ~@9", F: "~@3 x ~@4",
G: "~@10 x ~@2 x ~@16 x ~", H: "~ x ~@30",
})).gain(0.07)
// drums · low tom
const low_tom = s("lt").struct("<~@57 [~@25 x ~@6] ~@60>").gain(0.07)
// drums · hihat
const hihat = s("hh").struct(`<
// … 76 more lines
More by Oscar Peterson
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.