0:00/0:00
// Virtual Insanity — Jamiroquai
// 60 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 60 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/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
const piano = note("<A B@5 C@8 D@7 E F G H I J K L M N O@5 P@2 Q@8 R@4 S T@2 U V W X Y Z@2>".pickRestart({
A: "~@16 bb4@5 ~@5 b4@5 ~, ~@11 [eb3,db4,eb4,gb4]@10 [f3,eb4,f4,ab4]@10 ~", // Ebm7 Fm7
B: "[[eb4,e4,ab4]@5 [db4,gb4,bb4]@5 ~@5 b3@5 ~ [c2,c3,gb3,bb3,c4,eb4]@10 ~ [b2,gb3]@10 ~ [d4,gb4]@40 bb2 ~@2 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,c4,eb4,gb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db3 ~ [bb3,db4,f4,gb4]@8 g2 ~@2 [bb3,c4,eb4,gb4]@8 gb2 ~@2 [bb3,b3,eb4,gb4]@7 gb2 ~@2 [ab3,bb3,d4,gb4]@8 bb2 eb2@2, gb3@10 [b1,b2,db4,eb4,gb4]@11 ~@10 [b1,bb3,eb4,gb4]@11 [bb1,bb2,ab3,bb3]@42 eb2@9 ~@2 ab2@9 ~@12 gb2@9 ~@35, ~@95 ab1@6 ~@4 [db2,db3]@10 ~@11 [c2,c3]@10 ~ [b1,b2]@10 [bb1,bb2]@10 ~@3]/5", // Emaj7 Gb Cm7b5 B5 D Ebm7 Ab7 Fm7b5 …
C: "[[bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,c4,eb4,gb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db3 ~ [bb3,db4,f4,gb4]@8 g2 ~@2 [bb3,c4,eb4,gb4]@8 gb2 ~ [bb3,b3,eb4,gb4]@8 b2 ~@2 [ab3,bb3,d4,gb4]@8 bb2 ~@2 [bb3,db4,eb4,gb4]@7 bb2 ~@2 [db4,eb4,gb4,bb4]@8 eb2 ~@2 [c4,eb4,gb4,bb4]@8 ab2 ~ [b3,eb4,f4,ab4]@8 db3 ~@2 [bb3,db4,f4,gb4]@8 g2 ~ [gb3,bb3,c4,eb4]@8 gb2 ~@2 [gb3,bb3,b3,eb4]@8 b2 ~ [ab3,bb3,d4,gb4]@8 bb2 ~@5 gb1@2 gb2 g1@2 g2 ~ [gb3,bb3,c4,eb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db2 ~@2 [bb3,db4,f4,gb4]@7 g2 ~@2 [bb3,c4,eb4,gb4]@8 c2 ~@2 [bb3,b3,eb4,gb4]@8 b1 ~ [ab3,bb3,d4,gb4]@8 bb2 ~@2 [bb3,db4,eb4,gb4]@8 bb2 ~ [bb3,db4,eb4,gb4]@8 eb2 ~@2 [gb3,bb3,c4,eb4]@3, ~@8 ab2@9 ~@13 gb2@9 ~@33 [eb2,eb3]@9 ~ eb2@9 ~@2 ab2@9 ~@12 gb2@9 ~@33 [eb2,eb3]@5 ~@6 ab2@9 ~@54 [eb2,eb3]@9 ~@2 eb2@9 ~ [ab1,ab2]@5, ~@8 ab1@6 ~@5 [db2,db3]@10 ~@11 [c2,c3]@10 ~ [b1,b2]@10 [bb1,bb2]@10 ~@22 ab1@6 ~@4 [db2,db3]@10 ~@11 [c2,c3]@10 ~ [b1,b2]@10 ~ [bb1,bb2]@10 ~@2 [bb3,db4,eb4,gb4]@8 ~ ab1@6 ~@4 [db2,db3]@9 ~@2 [gb1,gb2]@9 ~ [c2,c3]@9 ~@2 [b1,b2]@9 ~ [bb1,bb2]@9 ~@13 eb3@6 ~@9]/8", // Ebm7 Ab7 Fm7b5 Gbmaj7 Cm7b5 Bmaj7 Daug Ebm7 …
D: "[~@5 ab2 ~ [b3,eb4,f4,ab4]@8 db2 ~@2 [bb3,db4,f4,gb4]@8 g2 ~ [bb3,c4,eb4,gb4]@8 gb2 ~@2 [bb3,b3,eb4,gb4]@8 b1 ~@2 [ab3,bb3,d4,gb4]@3 ~@2 [ab3,bb3,d4,gb4]@3 ~@2 [bb3,b3,eb4,gb4]@8 b1 d2@2 ~ f2@2 d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 [bb1,ab3,bb3,d4,f4]@5 ~@2 [bb3,b3,eb4,gb4]@8 b1 d2@2 ~ f2@2 d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4] ~@3 gb4@2 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@7 b1 d2@2 ~ f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [b3,eb4,gb4,bb4]@3 [b3,eb4,gb4]@5 b1 ~ [bb3,d4,f4,ab4]@7 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@4 bb1@2, ~@6 [db2,db3]@9 ~ [gb1,gb2]@9 ~@2 [c2,c3]@9 ~ [b1,b2]@9 ~@2 [bb1,bb2]@5 [bb1,bb2]@5 b1@8 ~@5 [ab3,bb3,d4,gb4]@7 ~ eb2@9 ~@2 ab1@5 ~@6 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2 eb2@8 ~@2 ab1@4 ~ bb1@6 b1@8 ~@13 eb2@9 ~ ab1@5 ~@6 b1@9 ~@2 bb1@9 ~ eb2@9 ~@2 ab1@6 ~, ~@134 gb4@2 ~ [bb3,d4,ab4]@3 ~@15 [ab3,bb3,d4,gb4]@7 ~@28 bb4 ~@33]/7", // Fm7b5 Gbmaj7 Cm7b5 Bmaj7 Daug Bmaj7 Ebm7 Abm7 …
E: "[bb3,d4,ab4]@3 ~@2 [db4,eb4,gb4,bb4]@8 eb2 ~ [c4,eb4,gb4,bb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@6, ~@3 eb2@9 ~@2 ab2@9 ~@9, ~@7 ab1@3 ~@2 [db2,db3]@4", // Bb7 Ebm7 Cm7b5 Fm7b5 Db
F: "~@2 db3 ~@2 [bb3,db4,f4,gb4]@7 g2 ~@2 [bb3,c4,eb4,gb4]@8 gb2 ~@2 [bb3,b3,eb4,gb4]@6, ~@3 gb2@9 ~ [c2,c3]@10 ~ [b1,b2]@8", // Gbmaj7 Cm7b5 Bmaj7 C B
G: "~@2 b2 ~ [ab3,bb3,d4,gb4]@8 bb2 ~@5 gb1@2 gb2 g1@2 g2 ~ [gb3,bb3,c4,eb4]@7, ~@2 [bb1,bb2]@10 ~ [eb2,eb3]@5 ~@6 [ab1,ab2]@8, ~@15 [bb3,db4,eb4,gb4]@8 ~@9", // Daug Cm7b5 Bb Eb Ab Ebm7
H: "~ ab2 ~@2 [eb4,f4,ab4,bb4]@8 db2 ~ [bb3,db4,f4,gb4]@8 g2 ~@2 [bb3,c4,eb4,gb4]@7, ~@2 [db2,db3]@9 ~@2 [gb1,gb2]@9 ~ [c2,c3]@9", // Ebsus4 Gbmaj7 Cm7b5 Db Gb C
I: "~ c2 ~@2 [bb3,b3,eb4,gb4]@7 b1 ~@2 [ab3,bb3,d4,gb4]@8 bb2 ~@2 [bb3,db4,eb4,gb4]@7, ~@2 [b1,b2]@9 ~ [bb1,bb2]@9 ~@2 [eb2,eb3]@9", // Bmaj7 Daug Ebm7 B Bb Eb
J: "~ bb2 ~ [gb3,bb3,c4,eb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db2 ~ [bb3,db4,f4,gb4]@8, ~ ab2@9 ~@22, ~ ab1@6 ~@5 [db2,db3]@9 ~@2 [gb1,gb2]@9", // Cm7b5 Fm7b5 Gbmaj7 Db Gb
K: "g2 ~@2 [bb3,c4,eb4,gb4]@8 c2 ~ [bb3,b3,eb4,gb4]@8 b1 ~@5 db2@2 db3 d2@2, ~ [c2,c3]@9 ~@2 [b1,b2]@9 ~ [bb1,bb2]@5 ~@5, ~@3 [ab3,bb3,d4,gb4]", // Cm7b5 Bmaj7 C B Bb Daug
L: "bb2 ~ [bb3,db4,eb4,gb4]@3 ~ gb1@2 gb2 ~ g2 ~@2 [gb3,bb3,c4,eb4]@8 ab2 ~@2 [b3,eb4,ab4]@7 db2, ~ eb2@2 ~@6 g1@2 ab2@9 ~@3 f4@8 ~, ~@11 ab1@6 ~@5 [db2,db3]@9 ~", // Ebm7 Cm7b5 Abm Db
M: "~@2 [bb3,db4,f4,gb4]@8 g2 ~@2 [bb3,c4,eb4,gb4]@8 c2 ~ [bb3,b3,eb4,gb4]@8 b1, [gb1,gb2]@9 ~@2 [c2,c3]@9 ~ [b1,b2]@9 ~@2", // Gbmaj7 Cm7b5 Bmaj7 Gb C B
N: "~@2 [ab3,bb3,d4,gb4]@8 bb2 ~ [bb3,b3,eb4,gb4]@8 b1 d2@2 ~ f2@2 d2@3 ~@3, [bb1,bb2]@9 ~@2 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2", // Daug Bmaj7 Bb Daug
O: "[~ [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 [bb1,ab3,bb3,d4,f4]@5 ~@3 [bb3,b3,eb4,gb4]@7 b1 d2@2 ~ f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4] ~@3 gb4@2 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@8 b1 ~@2 f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [b3,eb4,gb4,bb4]@3 [b3,eb4,gb4,bb4]@5 b1 ~ [bb3,d4,f4,ab4]@7 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 ~@2 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@8 b1 d2@2, eb2@9 ~ ab1@5 ~@6 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2 eb2@8 ~@2 ab1@4 ~ bb1@6 b1@8 ~@3 d2@3 ~@7 eb2@9 ~@2 ab1@5 ~@5 b1@9 ~@2 bb1@9 ~ eb2@9 ~@2 ab1@5 bb1@5 b1@8 ~@5, ~@54 gb4@2 ~ [bb3,d4,ab4]@3 ~@15 [ab3,bb3,d4,gb4]@7 ~@78]/5", // Ebm7 Abm7 Bb7 Bmaj7 Ebm7 Abm Bb7 Bmaj7 …
P: "[~ f2@2 d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 [bb1,ab3,bb3,d4,f4]@5 ~@2 [bb3,b3,eb4,gb4]@8 b1 d2@2 ~ f2@2 d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ab1@2 [ab3,b3,eb4,gb4], [ab3,bb3,d4,gb4]@7 ~ eb2@9 ~@2 ab1@5 ~@6 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2 eb2@8 ~@5]/2", // Ebm7 Abm7 Bb7 Bmaj7 Ebm7 Abm7 Daug
Q: "[~@2 [bb3,d4,gb4,ab4]@3 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@7 b1 d2@2 ~ f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [b3,eb4,gb4,bb4]@3 [b3,eb4,gb4,bb4]@5 b1 ~ [bb3,d4,f4,ab4]@7 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@4 ~@2 [bb3,d4,ab4]@3 ~@2 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,c4,eb4,gb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db3 ~@2 [bb3,db4,f4,gb4]@7 g2 ~@2 [bb3,c4,eb4,gb4]@8 gb2 ~@2 [bb3,b3,eb4,gb4]@8 gb2 ~@5 db2@2 d2@2 bb1 ~@2 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,c4,eb4,gb4]@8 ab2 ~@2 [b3,eb4,f4,ab4]@8 db3 ~ [bb3,db4,f4,gb4]@8 g2 ~@2 [bb3,c4,eb4,gb4]@8 gb2 ~ [bb3,b3,eb4,gb4]@8 gb2 ~@5 bb1 bb1@5 ~@2 [bb3,b3,eb4,gb4]@8 d2@2 ~ f2@2 ~, ~@2 bb1@6 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2 eb2@9 ~ ab1@5 ~@6 b1@9 ~ bb1@9 ~@2 eb2@9 ~@2 ab1@5 bb1@5 eb2@9 ~@2 ab2@9 ~@12 gb2@9 ~@24 [ab3,bb3,d4,gb4]@8 ~@12 ab1@6 ~@4 [db2,db3]@10 ~@11 [c2,c3]@10 ~ [b1,b2]@10 [bb1,bb2]@5 ~@6 b1@8 ~@2 b1 ~@5, ~@103 ab1@6 ~@4 [db2,db3]@10 ~@11 [c2,c3]@10 ~ [b1,b2]@10 [bb1,bb2]@5 ~@6 eb2@9 ~@2 ab2@9 ~@12 gb2@9 ~@24 [ab3,bb3,d4,gb4]@8 ~@13 [ab3,bb3,d4,gb4]@4]/8", // Bbaug Bb7 Bmaj7 Ebm7 Abm7 Bb7 Bmaj7 Bb7 …
R: "[d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [bb3,b3,eb4,gb4]@8 b1 ~@2 f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4] ~@3 gb4@2 ~ [bb3,d4,ab4]@2 ~@2 [bb3,b3,eb4,gb4]@8 b1 d2@2 f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 [bb1,ab3,bb3,d4,f4]@5 ~@2 [b3,eb4,gb4,bb4]@4 [b3,eb4,gb4,bb4]@4 b1 ~@2 [bb3,d4,f4,ab4]@5, ~@5 eb2@9 ~ ab1@5 ~@6 b1@8 ~@3 d2@3 ~@7 eb2@8 ~@3 ab1@4 bb1@6 b1@8 ~@13 eb2@9 ~@2 ab1@5 ~@5 b1@9 ~@2 bb1@7, ~@38 [ab3,bb3,d4,gb4]@7 ~@14 gb4@2 ~ [bb3,d4,ab4]@3 ~@16 [ab3,bb3,d4,gb4]@7 ~@40]/4", // Ebm7 Abm7 Bb7 Bmaj7 Ebm7 Abm Bb7 Bmaj7 …
S: "~@5 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 ~@2 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@6, ~@4 eb2@9 ~ ab1@5 bb1@5 ~ b1@7", // Ebm7 Abm7 Bb7 Bmaj7
T: "[~@2 b1 d2@2 ~ f2@2 d2@3 ~@4 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [bb3,b3,eb4,gb4]@7 b1 d2@2 ~ f2@2 ~ d2@3 ~@4 [bb3,db4,eb4,gb4]@6, ~@5 [ab3,bb3,d4,gb4]@7 ~@2 eb2@9 ~ ab1@5 ~@6 b1@8 ~@4 [ab3,bb3,d4,gb4]@7 ~@2 eb2@8]/2", // Ebm7 Abm7 Bb7 Bmaj7 Ebm7 Daug
U: "~@2 eb2 ~ [ab3,b3,eb4] ~@3 gb4@2 [bb3,d4,ab4]@3 ~@2 [bb3,b3,eb4,gb4]@8 b1 ~@2 f2@2 ~ d2@3, ~@2 ab1@4 ~ bb1@6 b1@8 ~@3 d2@3 ~@5, ~@4 gb4@2 ~ [bb3,d4,ab4]@3 ~@15 [ab3,bb3,d4,gb4]@7", // Abm Bb7 Bmaj7 Bb7 Daug
V: "~@4 [bb3,db4,eb4,gb4]@8 eb2 ~ [ab3,b3,eb4,gb4]@3 ~ [bb1,ab3,bb3,d4,f4]@5 ~@2 [b3,eb4,gb4,bb4]@3 [b3,eb4,gb4,bb4]@4, ~@2 eb2@9 ~@2 ab1@5 ~@5 b1@9", // Ebm7 Abm7 Bb7 Bmaj7
W: "~ b1 ~@2 [bb3,d4,f4,ab4]@7 ~@3 [bb3,db4,eb4,gb4]@8 eb2 ~@2 [ab3,b3,eb4,gb4]@3 ~@2 [bb3,d4,ab4]@2, ~@2 bb1@9 ~ eb2@9 ~@2 ab1@5 bb1@4", // Bb7 Ebm7 Abm7 Bb7
X: "~@3 [bb3,b3,eb4,gb4]@8 a2 ~@2 [ab3,d4,f4,ab4]@9 ~@5 eb4@4, ~ b1@8 ~@3 [d2,d3]@11 [eb3,bb3,f4,gb4,bb4]@9", // Bmaj7 Ddim D Ebm
Y: "~@6 b4@5 ~ [gb3,eb4]@5 [gb2,db4,bb4]@5 ~@6 b3@4, ~ [f3,ab3,db4,f4,ab4]@10 ~ [e4,ab4]@10 [b2,db4,eb4,gb4]@10", // Ebm Gb Db E B
Z: "[~@3 [c2,gb3,bb3,c4]@12 [b1,gb3,bb3,b3]@12 ~@22 [d6,d7]@9 ~@6, ~@3 eb4@25 ~ [bb1,ab3]@27 ~@8, ~@30 bb3@25 ~@9, ~@31 d4@10 ~ d4@13 ~@9, ~@32 gb4@23 ~@9]/2", // Cm7b5 Bmaj7 D Bb7
})).s("gm_piano").gain(0.35)
// bass · acoustic bass · "BAS"
const bass = note(`<
~@5 A@6 B@3 C@2 D E F G H I J K L M@2 N O P Q R S T U V W X Y Z@2 ~@3 AA AB AC AD AE AF AG AH@2 AI AJ AK AL ~@3
>`.pickRestart({
A: "[~@29 bb1 eb2@9 ~ ab1@6 ~@4 ab2 db3@9 ~ db3 gb2@9 g2 c3@9 ~ gb2 b1@9 b2 bb2@9 ~ bb2 eb2@9 bb1 eb2@9 ~ eb2 ab1@6 ~@4 db3@9 ~ db3 gb2@9 ~ c3@9 ~ gb2 b1@10 b2 bb2@9 bb2 eb2@4, ~@40 eb2 ~@94 ab2 ~@20 g2 ~@35]/6",
B: "[~@7 ab1@6 ~@3 ab1 db2@9 ~ db2 gb1@8 ~ g1 c2@8 ~@2 c2 b1@9 ~ bb1@8 ~@2 bb1 eb2@9 ~ bb1 eb2@9 eb2 ab1@5, ~@59 b1 ~@36]/3",
C: "[~@5 ab1 db2@9 db2 gb1@8 ~@2 g2 c2@9 gb2 b1@9 ~ b1 bb1@5 bb1 ~ bb1 bb1@2 b1 ~ b1 ~@3]/2",
D: "~@4 b1 d2 ~ d2 f2!2 d2 ~@4 eb2@2 eb2!2 ~@2 gb1@2 g1@2 g1 ab1@2 ab1!2 ~@2, ~@15 bb1 ~@7 gb1 ~@8",
E: "~ bb1@3 ~ b1!3 ~@6 b1 d2 ~ d2 f2@2 d2 ~@4 d2 eb2!3 ~@2 gb1",
F: "~ gb1 g1!2 ab1 ~ ab1 ab1@2 ~ bb1 bb1@3 ~ b1 ~ b1 ~@6 b1 d2 ~ d2 f2 ~ f2 d2",
G: "~@3 bb1 eb2@2 eb2!2 ~ gb1@2 gb1 g1@2 ab1@2 ab1!2 ~@3 bb1@3 ~ b1@2 b1!2 ~@3, ~@14 g1 ~@17",
H: "~@3 b1 d2!2 f2@2 d2 ~@4 d2 eb2 ~ eb2!2 ~ gb1 ~ gb1 g1 ~ g1 ab1!2 ab1@2 ~ bb1 ~",
I: "bb1@3 eb1 ~ eb1 eb2 ~ gb1@2 gb2 g1@2 g2 ~ ab2 ~@7 ab2 db2@2 db3 ~@4 e2, ~@7 ab1 ~@7 e1",
J: "f1@2 f2 gb1@2 gb2 ~@6 gb1 c2@2 c3 ~@7 c2 b1@2 b2 ~@5",
K: "~@2 bb1@2 bb2 ~@2 bb1 db2@2 db3 ~ db2 eb2 ~ eb2 eb3 ~ gb1@2 gb2 g1@2 g2 ~ ab2 ~@6, ~@2 b1 ~@21 ab1@2 ~@6",
L: "~ ab1 db2@2 db3 ~@2 e1@2 e2 f1@2 f2 ~ gb2 ~@7 g1 c2@2 c3 ~@6, ~@13 gb1@2 ~@17",
M: "[~ c2 b1@2 b2 ~@6 b1 bb1@2 bb2 ~@2 bb1 ~ db3 ~@2 db2 eb2@2 eb2 eb3 ~ gb1@2 gb2 g1@2 ab1@2 ab2 ~@7 ab1 db2@2 db3 ~@2 e1@2 e2 f1@2 f2 ~ gb2 ~@7, ~@18 db2@2 ~@13 g2 ~@21 gb1@2 ~@7]/2",
N: "g1 c2@2 c3 ~@7 c2 ~ b2 ~@7 b1 bb1@2 bb2 ~@2 db2@2 db3 ~@2, ~@12 b1@2 ~@13 bb1 ~@4",
O: "db2 eb2!2 eb3 ~@2 gb1@2 gb2 ~ g2 ab1@2 ab2 ~@7 ab1 db2@2 db3 ~@2 e1@2 e2 ~ f2, ~@9 g1@2 ~@19 f1@2",
P: "gb1@2 gb2 ~@7 g1 c2@2 c3 ~@7 b1@2 b2 ~@7 b1, ~@21 c2 ~@10",
Q: "bb1@2 bb2 ~ bb1 bb1@2 bb2@3 e2 b1!2 ~@7 b1 d2 ~ d2 f2 ~ [d2,f2] ~@4 bb1", // Dm
R: "eb2!3 ~@2 gb1@2 gb1 g1!2 ab1@2 ab1!2 ~@3 bb1@3 ~ b1@2 b1 ~@6 b1 d2",
S: "~ d2 f2@2 d2 ~@4 d2 eb2 ~ eb2 ~@2 gb1 ~ gb1 g1 ~ [g1,ab1] ~ ab1 ab1@2 ~ bb1 bb1@3 ~ b1", // Abmaj7
T: "~ b1 ~@7 b1 d2!2 f2 ~ f2 d2 ~@3 bb1 eb2@2 eb2!2 ~ gb1@2 gb1 g1@2 g1 ab1",
U: "ab1!2 ~@4 bb1@3 b1@2 b1!2 ~@6 b1 d2!2 f2@2 d2 ~@4 d2 eb2 ~",
V: "eb2!2 ~@2 gb1!2 g1 ~ g1 ab1 ~ ab1@2 ~ bb1 ~ bb1@3 b1 ~ b1 ~@7 b1 d2 ~",
W: "d2 f2!2 d2 ~@4 eb2@2 eb2!2 ~@2 gb1!2 g1@2 g1 ab1@2 ab1!2 ~@3 bb1@3 ~ b1!2, ~@8 bb1 ~@23",
X: "b1 ~@6 b1 d2 ~ d2 ~ d2 ~@5 d2 eb2!3 ~@2 gb1 ~ gb1 g1!2 ab1 ~ ab1, ~@11 f2@2 ~@19",
Y: "ab1@2 bb1 ~ bb1@3 ~ b1 ~ b1 ~@6 b1 d2 ~ d2 f2 ~ f2 d2 ~@3 bb1 eb2@2 eb2",
Z: "[~@2 gb1@2 gb1 g1@2 ab1@2 ab1!2 ~@3 bb1@3 ~ b1@2 b1!2 ~@6 [b1,d2] ~ d2 f2@2 d2 ~@4 d2 eb2 ~ eb2!2 ~ gb1 ~ gb1 g1 ~ g1 ab1!2 ab1@2 ~ bb1 ~ bb1@3 ~@4, ~@7 g1 ~@56]/2", // Bm
AA: "~@21 ab3 ~ [eb3,gb3] db3@3 gb3 eb3 bb2@2 ~, ~@29 db3 ~@2", // Ebm
AB: "~@8 eb3 db3 bb2 ~ bb2 ab2@2 gb2 b1 ~ b1 ~@7 [b1,d2] ~ d2 f2 ~ f2, ~@11 db3@2 ~@19", // Bm
AC: "d2 ~@3 bb1 eb2@2 eb2!2 ~ gb1@2 gb1 g1@2 ab1@2 ab1!2 ~@4 bb1@3 b1@2 b1!2 ~@2, ~@15 g1 ~@16",
AD: "~@4 b1 d2!2 f2@2 d2 ~@4 d2 eb2 ~ eb2!2 ~ gb1 ~ gb1 g1 ~ g1 ab1!2 ab1@2 ~ bb1",
AE: "~ bb1@3 b1 ~ b1 ~@7 b1 d2 ~ [d2,f2] ~ f2 d2 ~@3 bb1 eb2@2 eb2!2 ~@2 gb1", // Dm
AF: "gb1 g1@2 g1 ab1@2 ab1!2 ~@3 bb1@3 b1@2 b1!2 ~@6 b1 d2 ~ d2 ~ d2 ~@2, ~@14 f2 ~",
AG: "~@3 d2 eb2!3 ~@2 gb1 ~ [gb1,g1] ~ g1 ab1 ~ ab1 ab1@2 bb1 ~ bb1@3 ~ b1!2 ~@5", // Gmaj7
AH: "[~@2 b1 d2 ~ d2 f2 ~ [d2,f2] ~@4 bb1 eb2!3 ~@2 gb1@2 gb1 g1!2 ab1@2 ab1!2 ~@3 bb1@3 ~ b1@2 b1 ~@6 b1 d2 ~ d2 f2@2 d2 ~@4 d2 eb2 ~ eb2!2 ~ gb1 ~ gb1]/2", // Dm
AI: "g1 ~ [g1,ab1] ~ ab1 ab1@2 ~ bb1 ~ bb1@3 b1 ~ b1 ~@7 b1 d2!2 f2 ~ f2 d2 ~@2", // Abmaj7
AJ: "~ bb1 eb2@2 eb2!2 ~ gb1@2 gb1 g1@2 g1 ab1!3 ~@4 bb1@3 b1@2 b1!2 ~@5",
AK: "~ b1 d2 ~ f2@2 d2 ~@4 d2 eb2 ~ eb2!2 ~@2 gb1!2 g1 ~ g1 ab1 ~ ab1 ab1@2 bb1@2 ab1 ~, ~@4 d2 ~@27",
AL: "~ b1@2 ~@29, bb1 ~@15",
})).s("gm_acoustic_bass").gain(0.59)
// chords · piano
const piano_2 = note("<~@16 A@3 B@3 ~@6 C D E F G H@3 I J@5 ~@3 K L M@4 N@3 O P Q R ~@2>".pickRestart({
A: "[[gb3,gb4]!2 [eb3,eb4] ~@7 [f3,f4] ~ [f3,f4] [d3,d4] ~ eb4@5 ~ db4@5 [b3,eb4]@5 [d4,f4,ab4]@5 ~@6 [ab3,ab4] ~ [gb3,ab3,gb4,ab4] ~@7 [f3,f4] ~ [f3,f4] [d3,d4] ~@2 [eb4,gb4]@5 [db4,f4]@5 [b3,eb4,gb4]@5 [d4,ab4]@4 ~@7 [gb3,gb4] ~ [gb3,gb4] [eb3,eb4] ~@7 [f3,f4], ~@5 gb4@5 ~@22]/3", // Gb Eb F D B Ddim Ab Gbsus2 …
B: "[[f3,f4] [d3,d4] ~@2 eb4@5 db4@5 [b3,eb4]@6 [d4,f4,ab4]@5 [eb4,gb4,bb4]@10 ~@6 d5@5 eb5@5 f5@6 [ab4,b4,gb5]@5 [d5,ab5]@5 ~@29, ~@4 gb4@15 ~@16 [d4,f4,ab4]@11 [gb4,bb4]@10 ~@40]/3", // F D B Ddim Ebm Abm7 Ddim Gb
C: "~ eb4 f4 ~ gb4 ~ ab4 ~ gb4 f4 ~ eb4 ~ f4 ~ gb4 ab4 ~ gb4 ~ f4 ~ eb4 ~ f4 gb4 ~ ab4 ~ gb4 ~ f4",
D: "eb4 ~ f4 ~ gb4 ~ ab4 gb4 ~ f4 ~ eb4 ~ f4 gb4 ~ ab4 ~ gb4 ~ f4 eb4 ~ f4 ~ gb4 ~ ab4 gb4 ~ f4 ~",
E: "[d4,gb4]@10 ~@6 [gb3,gb4] ~ [eb3,gb3,eb4,gb4] ~@7 [f3,f4] ~ [f3,f4] [d3,d4] ~@2", // D Gb Ebm F D
F: "eb4@5 db4@5 [b3,eb4]@5 [d4,f4,ab4]@5 ~@6 [ab3,ab4] ~ [ab3,ab4] [gb3,gb4] ~@2, gb4@15 ~@17", // B Ddim Ab Gb
G: "~@5 [f3,f4]!2 [d3,d4] ~@2 [eb4,gb4]@5 [db4,f4]@5 [b3,eb4,gb4]@5 ~ [d4,ab4]@4 ~@2", // F D Ebm Db B Ddim
H: "[~@4 [gb3,gb4] ~ [gb3,gb4] [eb3,eb4] ~@7 [f3,f4]!2 [d3,d4] ~@2 eb4@5 db4@5 ~ [b3,eb4]@5 [d4,f4,ab4]@5 [eb4,gb4,bb4]@10 ~@6 d5@5 eb5@5 f5@6 [ab4,b4,gb5]@5 [d5,ab5]@5 ~@6 [gb3,gb4]!2 [eb3,eb4] ~@4, ~@20 gb4@15 ~@17 [d4,f4,ab4]@10 [gb4,bb4]@10 ~@24]/3", // Gb Eb F D B Ddim Ebm Abm7 …
I: "~@3 [f3,f4] ~ [f3,f4] [d3,d4] ~ eb4@5 ~ db4@5 [b3,eb4]@5 [d4,f4,ab4]@5 ~@3, ~@8 gb4@15 ~@9", // F D B Ddim
J: "[~@3 [ab3,ab4] ~ [gb3,ab3,gb4,ab4] ~@7 [f3,f4] ~ [f3,f4] [d3,d4] ~@2 [eb4,gb4]@5 [db4,f4]@5 [b3,eb4,gb4]@5 [d4,ab4]@4 ~@7 [gb3,gb4] ~ [gb3,gb4] [eb3,eb4] ~@7 [f3,f4]!2 [d3,d4] ~@2 eb4@5 db4@5 [b3,eb4]@6 [d4,f4,ab4]@5 [eb4,gb4,bb4]@10 ~@6 d5@5 eb5@5 f5@6 gb5@2 f5@3 eb5 ~ gb5@2 ~ bb5@21 ~@15, ~@61 gb4@15 ~@16 [d4,f4,ab4]@11 [gb4,bb4]@10 ~ [ab4,b4]@5 ~ f5@2 ~ ab5@2 ~@35]/5", // Ab Gbsus2 F D Ebm Db B Ddim …
K: "~@21 [gb3,gb4] ~ [gb3,gb4] [eb3,eb4] ~@7", // Gb Eb
L: "[f3,f4]!2 [d3,d4] ~@2 eb4@5 db4@5 [b3,eb4]@6 [d4,f4,ab4]@5 ~@5 [ab3,ab4], ~@5 gb4@15 ~@12", // F D B Ddim Ab
M: "[~ [ab3,ab4] [gb3,gb4] ~@7 [f3,f4] ~ [d3,f3,d4,f4] ~@2 [eb4,gb4]@5 [db4,f4]@5 ~ [b3,eb4,gb4]@5 [d4,ab4]@5 ~@5 [gb3,gb4] ~ [gb3,gb4] [eb3,eb4] ~@7 [f3,f4] ~ [f3,f4] [d3,d4] ~ eb4@5 ~ db4@5 [b3,eb4]@5 [d4,f4,ab4]@5 [eb4,gb4,bb4]@10 ~@6 d5@5 eb5@5 ~ f5@5 [ab4,b4,gb5]@5 [d5,ab5]@5 ~ [gb4,gb5]@2 [eb4,eb5]@2 ~@3, ~@57 gb4@15 ~@17 [d4,f4,ab4]@10 [gb4,bb4]@10 ~@19]/4", // Ab Gb F Dm Ebm Db B Ddim …
N: "[~@3 [f4,f5]@2 ~ [d4,d5]@2 ~@6 eb5@5 db5@5 [b4,eb5]@5 [bb4,f5]@5 ~ [gb4,gb5]@2 eb4@2 ~ [ab4,ab5]@3 [gb4,gb5]@2 ~@6 [f4,f5]!2 [d4,d5] ~@2 [eb4,eb5]@5 [f4,f5]@5 b4@2 ab4 ~ bb4 ~ b4 d5 ~ f5 ~ [gb4,gb5]@3 [eb4,eb5]@2 ~@6 [f4,f5]@2 [d4,d5]@2 ~@4, ~@37 eb5 ~@18 bb4@10 gb5 ~@29]/3", // F D B Bb5 Gb Ab Gb F …
O: "~@2 eb5@5 db5@6 [b4,eb5]@5 [bb4,f5]@5 [gb4,gb5]@5 [eb4,eb5]@4", // B Bb5 Gb Eb
P: "~@2 [f4,f5]@5 [d4,d5]@5 [eb4,eb5]@5 ~ [f4,f5]@5 [gb4,gb5] ~ [ab3,ab4] [bb3,bb4] ~ [b3,b4] ~ [d4,d5] ~", // F D Eb F Gb Ab Bb B …
Q: "[e4,f4,f5] [eb4,gb5]@11 [b3,ab4,f5]@10 [bb3,eb4,gb4,eb5]@10", // Fmaj7 Ebm Fdim Ebm
R: "~ [ab3,eb4,ab4,db5]@11 [e4,db5,b5]@5 [gb4,db5,bb5]@5 [eb4,db5,gb5]@6 [eb4,b4,eb5]@4, ~@6 gb3@5 b3@5", // Absus4 Dbm7 Gb Ebm7 Abm
})).s("gm_piano").gain(0.28).pan(0.3)
// chords · piano · soft notes
const piano_soft = note("<~@18 A ~ B@2 ~@10 C ~@2 D ~@2 E ~@8 F@2 ~ G ~@5 H ~ I@2>".pickRestart({
A: "~@9 f4@4 ~@19", B: "[~@30 bb4@5 ~@29]/2", C: "~@13 f4@2 ~", D: "~@14 bb4@5 ~@13", E: "~ f4@2 ~@13",
F: "[~@31 f4@4 ~@29]/2", G: "~@19 bb4@5 ~@8", H: "~ bb4@11 ~@20",
I: "[~@2 [c3,c4,eb4,gb4,bb4]@13 [b2,b3,eb4,gb4,bb4]@13 [bb2,ab3,bb3,d4,gb4,bb4]@34 ~@2, ~ gb3@13 ~@18]/2", // Cm7b5 Bmaj7 Bbaug
})).s("gm_piano").gain(0.16).pan(0.3)
// other · lead 2 sawtooth · "SAWWAVE"
const lead_2_sawtooth = note("<~@15 A B C@2 D E ~@9 F G@4 H I@2 J@2 K ~@4 L M N O P Q R S T U V ~@4>".pickRestart({
A: "~@26 f4@2 db4@3 ~, ~@26 gb4 ~@5", B: "~@4 eb4 d4@2 b3@2 ~@6 f4@2 db4@2 ~@2 db4 ~@3 db4 b3@5 ~, ~@15 gb4 ~@16",
C: "[~@4 gb4 ~ db4@3 ~@5 eb4 d4@2 b3@3 ~@5 gb4 ~ db4@2 ~ db4 db4@2 ~@2 db4 b3@4 ~@6 gb4 f4@2 db4@3 ~@4 eb4 d4@2 b3@2 ~@3, ~@5 f4@2 ~@19 f4@2 ~@36]/2",
D: "~@3 gb4 f4@2 db4@2 ~ db4 ~@4 b3@5 ~@5 gb4 f4@2 db4@3 ~@2, ~@14 db4 ~@17",
E: "~@3 eb4 ~ b3@3 ~@5 gb4 f4@2 db4@2 db4 db4@2 ~@3 db4 b3@4 ~@3, ~@2 d4 ~@13",
F: "~@10 gb4 ~ db4@2 ~@6 eb4 d4@2 b3@2 ~@6 gb4, ~@11 f4@2 ~@19",
G: "[~ db4@2 ~@2 db4 ~@3 db4 b3@5 ~@5 gb4 f4@2 db4@3 ~@4 eb4 d4@2 b3@3 ~@5 gb4 f4@2 db4@2 db4 db4@2 ~@3 b3@4 ~@6 gb4 f4@2 db4@2 ~@6 d4@2 b3@2 ~@6 gb4 f4@2 db4@2 ~ db4 ~@4 db4 b3@5 ~@4 gb4 f4@2 db4@3 ~@5 eb4 ~ b3@3 ~@5 gb4 f4@2, f4@2 ~@50 db4 ~@20 eb4 ~@42 d4@2 ~@10]/4",
H: "db4@2 ~ db4 db4@2 ~@2 db4 b3@4 ~@6 f4@2 db4@3 ~@5 eb4 d4@2",
I: "[b3@2 ~@6 f4@2 db4@2 ~@2 db4 ~@3 db4 b3@5 ~@5 gb4 ~ db4@3 ~@5 eb4 d4@2 b3@3 ~@5 gb4 ~ db4@2 ~ db4 db4@2 ~@2 db4 b3@3, ~@8 gb4 ~@21 f4@2 ~@19 f4@2 ~@11]/2",
J: "[~@7 gb4 f4@2 db4@3 ~@4 eb4 d4@2 b3@2 ~@6 gb4 f4@2 db4@2 ~ db4 ~@4 b3@5 ~@5 gb4 f4@2 db4@3 ~@5 d4@2 b3@2, ~@39 db4 ~@20 eb4 ~@3]/2",
K: "~@6 gb4 f4@2 db4@2 db4 db4@2 ~@3 db4 b3@4 ~@10", L: "~@15 gb4 f4@2 db4@2 ~@6 d4@2 b3@2 ~@2, ~@26 eb4 ~@5",
M: "~@4 gb4 f4@2 db4@2 ~ db4 ~@4 b3@5 ~@5 gb4 f4@2 db4@3 ~, ~@15 db4 ~@16",
N: "~@4 eb4 ~ b3@3 ~@5 gb4 f4@2 db4@2 ~ db4 ~@4 db4 b3@4 ~@2, ~@5 d4@2 ~@25",
O: "~@3 gb4 f4@2 db4@2 ~@6 eb4 d4@2 b3@2 ~@5 gb4 f4@2 db4@2 ~@2 db4",
P: "~@3 db4 b3@5 ~@5 f4@2 db4@3 ~@5 eb4 d4@2 b3@3 ~@2, ~@14 gb4 ~@17",
Q: "~@3 gb4 ~ db4@2 ~ db4!2 ~@3 db4 b3@4 ~@8 db4@2 ~@4, ~@4 f4@2 ~@19 f4@2 ~@5",
R: "~@2 eb4 d4@2 b3@2 ~@6 gb4 ~ db4@2 ~@2 db4 ~@3 db4 b3@5 ~@3, ~@7 f4 ~@8",
S: "~@2 gb4 f4@2 db4@3 ~@5 d4@2 b3@3 ~@5 gb4 f4@2 db4@2 db4 db4@2 ~, ~@13 eb4 ~@18",
T: "~@2 b3@4 ~@6 gb4 f4@2 db4@2 ~@6 eb4 ~ b3@2 ~@5, ~@2 db4 ~@21 d4@2 ~@6",
U: "~ gb4 f4@2 db4@2 ~ db4 ~@4 db4 b3@5 ~@4 gb4 f4@2 db4@3 ~@4",
V: "~ eb4 d4@2 b3@3 ~@4 gb4 f4@2 db4@2 ~ db4 db4@2 ~@2 db4 b3@4 ~@5",
})).s("gm_lead_2_sawtooth").gain(0.3).pan(0.9)
// chords · trumpet · "TROMPET"
const trumpet = note("<~@21 A B C@2 D@2 E F G ~@30>".pickRestart({
A: "~@16 [c5,eb5]@2 [gb4,bb4,c5,eb5] ~@13, ~@16 [gb4,bb4] ~@15", B: "~@21 [gb4,bb4,eb5] ~ [gb4,bb4,eb5] ~@8",
C: "[~@31 [gb4,ab4,c5] ~ [gb4,ab4,c5,eb5] ~@19 [gb4,eb5] [gb4,bb4,eb5] ~@2 gb4 [gb4,ab4,eb5] ~ [gb4,bb4,eb5] ~@3, ~@31 eb5@2 ~@20 ab4@2 ~@9]/2", // Ab7 Ebm Ab7 Ebm
D: "[~@31 [gb4,eb5]@2 [gb4,bb4] ~@30, ~@31 bb4 ~@32]/2", // Ebm Gb
E: "~@4 [gb4,bb4,c5,eb5]!2 ~@3 [gb4,ab4] ~ [gb4,bb4,eb5] ~@2 [gb4,ab4] ~ [gb4,bb4,eb5] ~@15, ~@9 eb5@2 ~@3 eb5@2 ~@16", // Cm7b5 Gbsus2 Ebm Gbsus2 Ebm
F: "~@19 [gb4,bb4] ~ [gb4,bb4,eb5] ~@10, ~@19 eb5@2 ~@11", // Gb Ebm
G: "~@19 [ab4,eb5]@2 [gb4,bb4,eb5] ~@2 [ab4,eb5]@2 [gb4,bb4,eb5] ~@5, ~@19 gb4 ~@4 gb4 ~@7", // Ab5 Ebm Ab5 Ebm
})).s("gm_trumpet").gain(0.16).pan(0.9)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@2 A@2 ~ B ~@54>".pickRestart({
A: "[~@5 [bb2,ab3,d4,gb4,bb4]@21 ~@6]/2", B: "~@4 [eb5,eb6]@17 ~@4 eb5@2 ~@5, ~@25 eb6 ~@6",
})).s("gm_string_ensemble_1").gain(0.02).pan(0.7)
// drums · kick
const kick = s("bd").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 AD AE AF AG AH AI AJ ~@4 AK AL AM AN AO AP AQ AR AS
AT AU AV ~@3
>`.pickRestart({
A: "~@27 x ~@2 x ~", B: "x ~@7 x ~ x ~@7 x!2 ~ x ~@7 x!3", C: "~@7 x!2 ~ x ~@7 x!3 ~@7 x!2 ~ x",
D: "~@7 x!2 ~ x ~@7 x ~ x ~@7 x!2 ~ x", E: "~@7 x ~ x ~@7 x!2 ~ x ~@7 x ~ x ~",
F: "~@6 x!2 ~ x ~@7 x!3 ~@7 x!2 ~ x ~", G: "~@7 x!2 ~@7 x!2 ~ x ~@7 x!2 ~ x ~",
H: "~@5 x!2 ~ x ~@7 x!2 ~ x ~@7 x ~ x ~@2", I: "~@5 x!2 ~ x ~@7 x!3 ~@7 x!2 ~ x ~@2",
J: "~@5 x!3 ~@7 x!2 ~ x ~@7 x!3 ~@3", K: "~@4 x!2 ~ x ~@7 x!2 ~ x ~@5 x ~ x ~@2 x ~@2",
L: "~@4 x!2 ~@2 x ~@6 x ~@2 x ~@6 x!2 ~@2 x ~@2", M: "~@5 x ~ x ~@6 x!2 ~@2 x ~@7 x ~ x ~@3",
N: "~@3 x!2 ~@2 x ~@7 x ~ x ~@6 x!2 ~@2 x ~@3", O: "~@4 x ~@2 x ~@6 x ~@2 x ~@7 x ~@2 x ~@3",
P: "~@3 x!2 ~ x ~@7 x ~@2 x ~@6 x!2 ~ x ~@4", Q: "~@3 x ~ x ~@7 x!3 ~@7 x!2 ~ x ~@5",
R: "~@2 x!2 ~ x ~@6 x!2 ~ x ~@7 x!2 ~ x ~@5", S: "~@2 x ~ x ~@7 x!2 ~ x ~@8 x!2 ~@6",
T: "~ x!2 ~ x ~@7 x!3 ~@7 x!2 ~ x ~@6", U: "~ x!2 ~ x ~@6 x!2 ~ x ~@7 x!2 ~ x ~@6",
V: "~ x ~ x ~@7 x!2 ~ x ~@8 x!2 ~@7", W: "x!2 ~ x ~@7 x!3 ~@7 x!2 ~ x ~@7", X: "~ x!2 ~@7 x!2 ~ x ~@7 x!2 ~ x ~@6 x",
Y: "x ~ x ~@7 x!2 ~ x ~@7 x ~ x ~@7 x", Z: "x ~@2 x!2 ~@3 x ~@2 x ~ x ~@6 x!2 ~@2 x ~@7",
AA: "x ~ x ~@6 x!2 ~@2 x ~@7 x ~ x ~@6 x!2", AB: "~@2 x ~@7 x ~ x ~@7 x ~@2 x ~@7 x",
AC: "~@2 x ~@6 x!2 ~ x ~@7 x ~@2 x ~@6 x!2", AD: "~ x ~@7 x ~@2 x ~@6 x!2 ~ x ~@7 x ~",
AE: "~ x ~@6 x!2 ~ x ~@7 x ~@2 x ~@6 x!2 ~", AF: "~ x ~@6 x ~@2 x ~@6 x!2 ~@2 x ~@7 x ~",
AG: "x ~@6 x!2 ~@2 x ~@7 x ~ x ~@6 x!2 ~@2", AH: "x ~@7 x ~ x ~@6 x!2 ~@2 x ~@7 x ~ x",
AI: "~@7 x ~@2 x ~@7 x ~@2 x ~@6 x ~@2 x", AJ: "~@7 x ~@2 x ~@6 x!2 ~ x ~@5 x ~@5",
AK: "~@10 x ~@2 x ~ x!2 ~ x ~@7 x ~@2 x ~@2", AL: "~@5 x ~@2 x ~@6 x ~@2 x ~@7 x ~@2 x ~@2",
AM: "~@4 x!2 ~ x ~@7 x ~@2 x ~@6 x!2 ~ x ~@3", AN: "~@4 x ~@2 x ~@6 x!2 ~ x ~@7 x ~@2 x ~@3",
AO: "~@3 x!2 ~@2 x ~@6 x ~@2 x ~@6 x!2 ~@2 x ~@3", AP: "~@4 x ~ x ~@6 x!2 ~@2 x ~@7 x ~ x ~@4",
AQ: "~@2 x!2 ~@2 x ~@7 x ~ x ~@6 x!2 ~@2 x ~@4", AR: "~@3 x ~ x ~@6 x!2 ~@2 x ~@7 x ~@2 x ~@4",
AS: "~@2 x ~@2 x ~@7 x ~@2 x ~@6 x!2 ~ x ~@5", AT: "~@2 x ~@2 x ~@6 x!2 ~ x ~@7 x ~@2 x ~@5",
AU: "~ x!2 ~ x ~@7 x ~@2 x ~@6 x!2 ~ x!2 ~@3 x ~", AV: "x",
})).gain(0.56)
// drums · clap
const clap = s("cp").struct(`<
~@11 A B C D@2 E F@2 G H I J K L M N O P Q R@2 S T U@2 V W X Y Z ~@4 AA E F AB G H I J AC L M ~@4
>`.pickRestart({
A: "~ x ~@10 x ~@10 x ~@8", B: "~ x ~@10 x ~@9 x ~@9", C: "~ x ~@9 x ~@10 x ~@9", D: "x ~@10 x ~@9 x ~@10",
E: "x ~@9 x ~@10 x ~@9 x", F: "~@10 x ~@9 x ~@10 x", G: "~@9 x ~@10 x ~@9 x ~", H: "~@9 x ~@9 x ~@10 x ~",
I: "~@8 x ~@10 x ~@10 x ~", J: "~@8 x ~@10 x ~@9 x ~@2", K: "~@8 x ~@20 x ~@2", L: "~@7 x ~@10 x ~@10 x ~@2",
M: "~@7 x ~@10 x ~@9 x ~@3", N: "~@7 x ~@9 x ~@10 x ~@3", O: "~@6 x ~@10 x ~@9 x ~@4", P: "~@6 x ~@20 x ~@4",
Q: "~@6 x ~@9 x ~@10 x ~@4", R: "~@5 x ~@10 x ~@9 x ~@5", S: "~@5 x ~@9 x ~@10 x ~@5", T: "~@4 x ~@10 x ~@9 x ~@6",
U: "~@4 x ~@9 x ~@10 x ~@6", V: "~@3 x ~@10 x ~@9 x ~@7", W: "~@3 x ~@9 x ~@10 x ~@7", X: "~@2 x ~@10 x ~@10 x ~@7",
Y: "~@2 x ~@10 x ~@9 x ~@8", Z: "~@2 x ~@9 x ~@10 x ~@8", AA: "~@21 x ~@10", AB: "~@9 x ~@10 x ~@10 x",
AC: "~@8 x ~@9 x ~@10 x ~@2",
})).gain(0.48)
// drums · snare
const snare = s("sd").struct(`<
~@5 A B C D E F G H I J K L M@2 N O P Q R S@2 T U V W X Y@2 Z AA@2 B C AB E AC ~@4 AD L M@2 N O P Q AE S@2 ~@4
>`.pickRestart({
// … 150 more lines
More by Jamiroquai
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.