0:00/0:00
// Pools — Steps Ahead
// 83 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 120 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(83/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@2 B@4 C D@5 E@5 F@4 G@2 H@2 I J K@2 L@2 M@2 N@4 O@2 P@2 Q@2 R@4 S@7 T U T U T U T V@2 W@8 X@8 Y@2 Z@2 AA@4 AB@6 AC@4
AD@6 AE@2 AF@6 AG@2 AH@2 AI@4 ~
>`.pickRestart({
A: "[~@7 [bb3,db4,e4,gb4,a4]@6 ~@2 [ab3,bb3,eb4,g4]@15 ~@2]/2", // Gb7 Eb
B: "[~@11 c2 ~@3 [ab3,bb3,eb4,g4]@18 ~@10 c2 ~@3 [ab3,bb3,eb4,g4]@17, ~@7 [bb3,db4,e4,gb4,a4]@6 ~@26 [bb3,db4,e4,gb4,a4]@6 ~@19]/4", // Eb Gb7
C: "~@3 [eb2,eb3,a3,d4,gb4]@3 ~@2 [eb2,eb3,a3,db4,f4] ~@6 [a3,c4,eb4]", // D Dbaug Adim
D: "[~@3 ab2@10 ~@2 [a2,g3,b3,db4,eb4,gb4]@14 ~@2 [ab2,gb3,bb3,db4,f4]@20 ~@4 [bb3,db4,e4,gb4,a4]@6 ~@2 [ab3,bb3,eb4,g4]@15 ~@2, [gb3,b3,db4]@3 ~@17]/5", // B7 Gbmaj7 Gb7 Eb Gbsus4
E: "[~@7 [bb3,db4,e4,gb4,a4]@4 c2 ~@3 [ab3,bb3,eb4,g4]@19 ~@9 c2 ~@3 [ab3,bb3,eb4,g4]@18 ~@2 [eb2,eb3,a3,d4,gb4]@3 ~@2 [eb2,eb3,a3,db4,f4] ~@6 eb4, ~@39 [bb3,db4,e4,gb4,a4]@6 ~@35]/5", // Gb7 Eb D Dbaug Gb7
F: "[[ab2,gb3,b3,db4]@12 ~@3 [a2,g3,db4,gb4]@14 ~@2 [ab2,gb3,bb3,db4,f4]@20 ~@5 [d3,c4,e4,g4,b4] ~ [d3,c4,e4,g4,b4] [gb2,d4,e4,f4,bb4,d5] ~ [gb2,d4,f4,bb4,d5] ~@2]/4", // Abm7 Gbm Gbmaj7 Cmaj7 Bb
G: "[~@4 c4@15 ~@5 [d3,c4,e4,g4,b4] ~ [d3,c4,e4,g4,b4] [gb2,d4,f4,bb4,d5] ~ [gb2,d4,f4,bb4,d5] ~@2, ~@3 [g2,g3,d4,e4,g4]@17 ~@12]/2", // Cmaj7 Bb Em7
H: "[~@3 [g2,d3,g3,f4,a4,b4,db5,e5]@17 ~@4 [db3,b3,eb4,gb4,bb4] ~ [db3,b3,eb4,gb4,bb4] [db4,e4,a4] ~ [db4,e4,a4,db5] ~@2, ~@3 [c5,f5] ~@28]/2", // G7 Ebm7 A F5
I: "~@3 bb3 ~@5 eb4@3 gb2 ~ e2 ~, ~@3 [db4,gb4]@11 ~@2, ~@3 [gb2,gb3]@9 ~@4", // Gb5 Gb
J: "[eb2,eb3,g3,bb3,db4]@3 [eb2,eb3,g3,bb3,db4] ~@4 [ab2,gb3,b3,eb4,gb4]@5 ~@3", // Eb7 Abm7
K: "[[db3,b3,eb4,gb4,bb4] ~@2 [c3,bb3,e4,a4]@8 [ab3,eb4,g4]@15 ~@6, ~@11 bb3 ~@20]/2", // Ebm7 Am Abmaj7
L: "[~@7 c2 ~@3 [ab3,bb3,eb4,g4]@19 ~@2, ~@3 [bb3,db4,e4,gb4,a4]@6 ~@23]/2", // Eb Gb7
M: "[~@7 c2 ~@3 [ab3,bb3,eb4,g4]@18 ~@3, ~@3 [bb3,db4,e4,a4]@6 ~@23]/2", // Eb A
N: "[[eb2,eb3,a3,d4,gb4]@3 ~ [eb2,eb3,a3,db4,f4] ~@6 eb4 [ab2,gb3,b3,db4]@14 ~ [a2,g3,db4,gb4]@14 ~@2 [ab2,gb3,bb3,db4,f4]@20 ~]/4", // D Dbaug Abm7 Gbm Gbmaj7
O: "[~@4 [d3,c4,e4,g4,b4] ~ [d3,c4,e4,g4,b4] [gb2,d4,f4,bb4,d5] ~ [gb2,d4,f4,bb4,d5] ~@5 g2@9 g2 ~ f2 ~ [g2,g3]@2 ~ [g2,g3], ~@15 [c4,d4,e4,g4]@16 ~, ~@15 g3@11 ~@6]/2", // Cmaj7 Bb G C
P: "[~@4 [d3,c4,e4,g4,b4] ~ [d3,c4,e4,g4,b4] [gb2,gb3,d4,f4,bb4,d5] ~ [gb2,gb3,d4,f4,bb4,d5] ~@5 g2@9 [g2,g3] ~ [f2,f3] ~ [g2,g3]@2 ~ [g2,g3], ~@15 [f4,a4,b4,db5,e5]@16 ~, ~@15 g3@7 ~@10]/2", // Cmaj7 Bb G F G A
Q: "[~@4 [db3,b3,eb4,gb4,bb4] ~ [db3,b3,eb4,gb4] [f2,f3,db4,e4,a4,db5] ~ [f2,f3,db4,e4,a4,db5] ~@5 [gb2,db3,gb3,db4,eb4,gb4]@9 [gb2,gb3] ~ [e2,e3] ~ [eb2,eb3,g3,bb3,db4]@3 [eb2,g3,bb3,db4]]/2", // Ebm7 B A Ebm7 Gb E Eb7
R: "[~@4 [ab2,gb3,b3,eb4,gb4]@7 ~ [db3,b3,eb4,gb4,bb4] ~@2 [c3,bb3,e4,a4]@29 [d3,d4,db5,gb5,a5]@14 ~@2 [a3,g4,db5,gb5,a5]@4, ~@15 db4 ~@28 a4 ~@19]/4", // Abm7 Ebm7 Am Dmaj7 Gbm
S: "[~@12 [d3,d4,a4,db5,gb5,a5]@15 ~ [a3,g4,db5,gb5,a5]@14 ~@2 [d3,d4,a4,db5,gb5,a5]@14 ~@2 [a3,g4,db5,gb5,a5]@14 ~@2 [d3,d4,a4,db5,gb5,a5]@14 ~@2 [a3,g4,db5,gb5,a5]@14 ~@2 [d3,d4,a4,db5,gb5,a5]@2 ~ [d3,d4,a4,db5,gb5,a5]]/7", // Dmaj7 Gbm Dmaj7 Gbm Dmaj7 Gbm Dmaj7
T: "~@12 [a3,g4,db5,gb5,a5]@2 ~ [a3,g4,db5,gb5,a5]", U: "~@12 [d3,d4,a4,db5,gb5,a5]@2 ~ [d3,d4,a4,db5,gb5,a5]",
V: "[~@4 [ab2,ab3,c4,gb4,bb4]@5 ~@2 [g2,f3,bb3,d4,f4,a4]@21]/2", // Ab7 Gm7
W: "[~@3 [d3,c4,gb4,bb4]@7 ~ [g2,f3,bb3,d4,f4,a4]@22 ~@2 [d3,c4,gb4,bb4]@6 ~ d3 [g2,bb3,d4,f4,a4]@22 bb3 ~ [d3,c4]@8 [bb3,f4,a4]@22 ~@2 [c3,bb3,e4,ab4]@6 ~@2 [f2,c3,f3,ab3,c4,eb4,g4]@21, ~@11 d3 ~@31 f3@20 ~@4 [gb4,bb4]@6 ~@2 [g2,d4]@24 ~@29, ~@75 f3@14 ~@39]/8", // Daug Gm7 Daug Gm7 D7 Bbmaj7 Caug Fm7 …
X: "[~@3 [c3,bb3,e4,ab4]@7 ~@2 f3@21 ~ c3 [c3,bb3]@8 [f2,c3,f3,ab3,c4,eb4,g4]@22 ~ [f2,f3] [bb3,e4,ab4]@7 ~ [f2,f3,c4,eb4,g4]@23 ~ [d3,c4,gb4,bb4]@7 ~ d3@2 ~ d3@12 ~@6, ~@10 c3@23 ~@2 [e4,ab4]@6 ~@34 ab3@21 ~@32, ~@11 [f2,ab3,c4,eb4,g4]@22 ~@34 c3@30 ~@10 [g2,f3,bb3,d4,f4,a4]@21]/8", // Caug C7 Fm7 F Bbm7b5 Cm Daug E …
Y: "[~@7 d4@3 ~ [g2,g3,bb3,d4,f4,a4]@21, ~@3 [d3,c4,gb4,bb4]@8 ~@21]/2", // Gm7 Daug
Z: "[~@3 [c4,gb4,bb4]@6 ~@2 [g2,f3,bb3,d4,f4,a4]@21, ~@3 [d3,d4]@8 ~@21]/2", // Cm7b5 Gm7 D
AA: "[~@3 [d3,c4,d4,gb4,bb4]@7 ~ [bb3,d4,f4,a4]@22 ~@2 [c3,bb3,e4,ab4]@7 ~ [f2,c3,f3,ab3,c4,eb4,g4]@21, ~@11 [g2,f3]@24 ~@29]/4", // Daug Bbmaj7 Caug Fm7 G7
AB: "[~@3 [c3,bb3,e4,ab4]@8 [f2,c3,f3,ab3,c4,eb4,g4]@23 ~ [c3,bb3,e4,ab4]@7 ~ [ab3,c4,eb4,g4]@22 ~@2 [c3,bb3,e4,ab4]@7 ~ [f2,c3,f3,ab3,c4,eb4,g4]@21, ~@43 [f2,c3,f3]@24 ~@29]/6", // Caug Fm7 Caug Abmaj7 Caug Fm7 F5
AC: "[~@3 [d3,c4,gb4,bb4]@7 d3 [g2,f3,bb3,d4,f4,a4]@24 [d3,c4,gb4,bb4]@8 [g3,bb3,d4,f4,a4]@10 [bb3,d4] ~@2 [g3,bb3,d4,f4]@8, ~@43 g2@20 ~]/4", // Daug Gm7 Daug Gm7 Bb Gm7
AD: "[~@3 [d3,c4,gb4,bb4]@7 ~@2 bb3@7 g3 [bb3,d4,f4]!2 ~@5 [g3,bb3,d4,f4]@6 ~@2 [d3,c4,gb4,bb4]@6 ~ d3 [g3,bb3,d4,f4,a4]@10 [bb3,d4,f4] ~@2 [bb3,d4,f4] ~@10 [bb3,db4,e4,gb4,a4]@6 ~@2 [ab3,bb3,eb4,g4]@19 ~@2, ~@11 g2@22 ~@10 g2@23 ~@30, ~@11 [g3,d4,f4,a4]@8 ~@37 g3@11 ~@29]/6", // Daug Bb Gm7 Daug Gm7 Bb Gb7 Eb …
AE: "[~@7 c3@2 ~@2 [ab3,bb3,eb4,g4]@19 ~@2, ~@3 [bb3,db4,e4,gb4,a4]@6 ~@23]/2", // Eb Gb7
AF: "[~@7 c3 ~@3 [ab3,bb3,eb4,g4]@18 ~@2 [eb2,eb3,a3,d4,gb4]@4 ~ [eb2,eb3,a3,db4,f4] ~@6 [a3,c4,eb4] [ab2,gb3,b3,db4]@11 ~@4 [a2,g3,db4,gb4]@14 ~@2 [ab2,gb3,bb3,db4,f4]@19 ~@2, ~ [bb3,db4,e4,gb4,a4]@2 ~@29]/6", // Eb D Dbaug Adim Abm7 Gbm Gbmaj7 Gb7
AG: "[~@4 [d3,c4,e4,g4,b4] ~ [d3,c4,e4,g4,b4] [gb2,d4,f4,bb4,d5] ~ [gb2,d4,f4,bb4,d5] ~@5 [g2,g3]@9 [g2,g3] ~ [f2,f3] ~ [g2,g3]@2 ~ [g2,g3], ~@15 [c4,d4,e4,g4]@17]/2", // Cmaj7 Bb G F G C
AH: "[~@4 [d3,c4,e4,g4,b4] ~ [d3,c4,e4,g4,b4] [gb2,gb3,d4,f4,bb4,d5] ~ [gb2,gb3,d4,f4,bb4,d5] ~@5 g3 g3@8 [g2,g3] ~ [f2,f3] ~ [g2,g3]@2 ~ [g2,g3], ~@15 [f4,a4,b4,db5,e5]@17, ~@15 g2@9 ~@8, ~@15 d3@5 ~@12]/2", // Cmaj7 Bb G F G A
AI: "[~@4 [db3,b3,eb4,gb4,bb4] ~ [db3,b3,eb4,gb4,bb4] [gb2,db4,e4,a4] ~ [gb2,db4,e4,a4] ~@5 gb2@9 gb2 ~ e2 ~ eb2@2 [g3,bb3,db4] [eb2,g3,bb3,db4] ~@4 [ab2,gb3,b3,eb4,gb4]@6 ~@2 [db3,b3,eb4,gb4] ~@2 [c3,bb3,e4,gb4,a4]@17, ~@15 [db4,gb4]@13 ~@36, ~@15 [gb3,eb4]@11 ~@2 eb3@7 ~@29]/4", // Ebm7 Gbm7 Gdim Eb7 Abm7 B Gbm7b5 Gb5 …
})).s("gm_piano").gain(0.37).pan(0.2)
// bass · acoustic bass
const bass = note(`<
~ A B C D E@2 F G H I J K L@2 M@2 N O H P Q R S T U V W X Y Z Y AA ~ AB AC AD AE@2 AF@4 AG@3 AH AI AJ AK AL AI AL AM
AN AO AP@2 AN AO AN AQ AR AS@2 AT@2 AU@2 AV@2 AW@2 AX AY AZ@2 BA@2 BB@2 BC@2 BD@2 BE@2 BF@2 BG BH AZ@2 BI@2 BJ@2 BK@2
BL@2 ~ BM Y BN Y BO ~ BP BQ AD BR@2 BS@2 BT@2 BU@2 ~
>`.pickRestart({
A: "~@7 f3 c3@2 ~ f3@3 ~@2", B: "~@11 c2@2 ~@3", C: "~@7 f3 c3@2 f3 c3 ab2@2 c3 ab2", D: "~ f2 ~ f2@2 ~@6 c2@2 ~@3",
E: "[~@4 eb3 ~ eb3 ~ f3@3 ~@2 f3 ~ ab3@4 ~@13]/2", F: "~@7 eb3 eb3@2 ~ ab3@3 ~@2", G: "~@5 a2 e3 a3 b3@2 ~ e3 ~ a2@3",
H: "~@3 bb3 ~@3 ab3 ~@3 eb3 ~@3 bb2", I: "ab2@2 ~ bb2@2 ~@6 c2@2 ~@3", J: "~@7 f3 c3@3 f3@2 ~@3", K: "~@11 c2 ~@4",
L: "[~@7 f3 c3 ~ f3 c3 ~@2 c3 ab2@2 f2 ~ f2 ~@7 c2 ~@4]/2", M: "[~@4 eb3 ~ eb3 ~ f3@2 ~ eb3 ~ f3 ~ ab3@5 ~@12]/2",
N: "~@7 eb3 eb3@2 ~ ab3@4 ~", O: "~@5 a2 e3 a3 b3@2 ~ e3 b2 a2@2 ~", P: "ab2@2 ~ bb2 ~@4 d3 ~ d3 gb3 ~ gb3 ~ c3",
Q: "d3@2 f3 g2@8 ~ g2 ~ f2 ~", R: "g2@2 ~ g2 ~@4 d3 ~ d3 gb3 ~ gb3 ~ d3", S: "~@2 f3 a3@8 ~ g2 ~ f2 ~",
T: "g2@2 ~ g2@2 ~@3 db3 ~ db3 f3 ~ f3 ~ bb2", U: "db3 ~ eb3 gb2@5 ~@4 gb2 ~ e2 ~", V: "eb2@2 ~ eb2 ~@4 ab1@6 ~@2",
W: "db2 ~@2 c2@5 ~@8", X: "~@3 f3 c3@3 f3@2 ~@7", Y: "~@7 c2 ~@8", Z: "~@3 f3 c3 ~ f3 c3 ~@2 c3 ab2 ~ f2 ~ f2",
AA: "eb3 ~ eb3 ~ f3@2 ~ eb3 ~ f3 ~ ab3@5", AB: "~@3 eb3 eb3@2 ~ ab3@4 ~@5",
AC: "~ a2 e3 a3 b3@2 ~ e3 b2 a2@2 ~@4 bb3", AD: "~@3 ab3 ~@3 eb3 ~@3 bb2 ab2@2 ~ bb2",
AE: "[~@4 d3 ~ d3 gb2 ~ gb2 ~ [c2,d2] f2 ~ g2 g2@6 ~@3 g2 ~ f2 ~ g2@2 ~ g2]/2", // Csus2
AF: "[~@4 d3 ~ d3 gb2 ~ gb2 ~ c3 d3 ~ f3 a3@7 ~@2 g2 ~ f2 ~ g2@2 ~ g2@2 ~@3 db3 ~ db3 f2 ~ f2 ~ db3 eb3@2 db3 gb2@5 ~@4 gb2 ~ e2 ~ eb2 ~@2 eb2]/4",
AG: "[~@4 ab1@6 ~@2 db2 ~@2 c2@25 ~@4 d2 ~@3]/3", AH: "~@3 d2 b1@3 d2 ~@4 a1@3 a1", AI: "~@7 a1 b1@3 ~ d2@2 ~@2",
AJ: "~@4 b1@2 ~ d2 ~@4 a1@2 ~ a1", AK: "~@7 a1 b1@3 ~ d2 ~@3", AL: "~@3 d2 b1@2 ~ d2 ~@4 a1@2 ~ a1",
AM: "~@7 a1 b1@2 ~@2 d2@2 ~ d2", AN: "~@12 a1@2 ~ a1", AO: "~@12 d2@2 ~ d2",
AP: "[~@12 a1@2 ~ a1@2 ~@11 d2@2 ~ d2]/2", AQ: "~@4 ab1@7 g1@2 ~@3", AR: "~@3 g1 g1@9 g1 ~@2",
AS: "[~@3 d2@7 ~ g1@7 ~ g1 ~@9 g1 ~@2]/2", AT: "[~@3 d2@8 ~ g1@9 ~ g1 ~ g1@2 ~@6]/2",
AU: "[~@3 d2@7 ~ g1@7 ~@2 g1!2 ~@10]/2", AV: "[~@3 c2@7 ~ f1@7 ~@4 f1 ~@9]/2",
AW: "[~ f1 ~@2 c2@6 ~ f1@7 ~ c1 f1!2 ~@7 f1 ~@2]/2", AX: "~@3 c2@8 ~@5", AY: "~@5 f1 ~@2 f1 ~@7",
AZ: "[~@3 c2@7 ~ f1@7 ~@3 f1 ~@2 f1 ~@7]/2", BA: "[~@11 g1@7 ~ f1 g1 ~@8 g1 ~@2]/2",
BB: "[g1 ~@2 d2@7 ~ g1@7 ~@3 g1 ~ g1 ~@8]/2", BC: "[~@3 d2@7 ~ g1@7 ~@2 g1!2 ~@7 g1 ~@2]/2",
BD: "[~@3 d2@7 ~ g1@7 ~@3 g1 ~@2 g1 ~@7]/2", BE: "[~@3 c2@7 ~ f1@9 ~ f1 ~@2 f1@2 ~@6]/2",
BF: "[~ f1 ~ c2@7 ~ f1@7 ~@3 f1 ~@2 f1 ~@7]/2", BG: "~@3 c2@8 f1@5", BH: "~@5 f1 ~@4 f1 ~@5",
BI: "[~@3 d2@7 ~ g1@7 ~ f1 g1@3 ~@9]/2", BJ: "[~@3 d2@7 ~ g1@8 ~@2 g1 ~@2 g1 ~@4 g1 ~@2]/2",
BK: "[~@3 d2@7 ~ g1@7 ~ f1 g1 ~ g1 ~@6 g1 ~@2]/2", BL: "[~@3 d2@7 ~ g1@8 ~@2 g1 ~@10]/2", BM: "~@3 f3 c3@3 f3 ~@8",
BN: "~@3 f3 c3@2 f3 c3 ab2@2 c3 ab2 ~ f2 ~ f2", BO: "eb3 ~ eb3 ~ f3@3 eb3 ~ f3 ~ ab3@4 ~",
BP: "~@3 eb3 eb3@3 ab3@2 ~@7", BQ: "~ a2 ~ a3 b3 ~@3 b2 a2@2 ~@4 bb3",
BR: "[~@4 d3 ~ d3 gb2 ~ gb2 ~@2 f2 ~ g2 g2@6 ~@3 g2 ~ f2 ~ g2@2 ~ g2]/2",
BS: "[~@4 d3 ~ d3 gb2 ~ gb2 ~ c3 d3 ~ f3 a3@7 ~@2 g2 ~ f2 ~ g2@2 ~ g2]/2",
BT: "[~@4 db3 ~ db3 ~ f2!2 ~@5 gb2@8 ~ gb2 ~ e2 ~ eb2@2 ~ eb2]/2",
BU: "[~@4 ab2@5 ~@3 db2 ~@2 c2@6 ~@11, ~@4 ab1@3 ~@25]/2",
})).s("gm_acoustic_bass").gain(0.38)
// bass · acoustic bass · soft notes
const bass_soft = note(`<
~@5 A ~@2 B ~@4 C ~@4 D ~@4 E ~@6 F ~@4 G ~@12 H ~@16 I ~@2 J ~@4 K@2 ~@2 L M ~@3 J ~@7 N ~ O ~@7 P ~@8 Q ~@10
>`.pickRestart({
A: "~@11 eb3 ~@4", B: "~@10 a3 ~ b2 ~@3", C: "~@6 ab2 ~", D: "~@10 a3 ~@5", E: "c3 ~@15", F: "~@4 ab2 ~@3",
G: "~@6 a3 ~@9", H: "~@3 d2 ~@12", I: "~@11 bb1 ~@4", J: "~@3 f1 ~@12", K: "[~@11 bb1 f1@7 ~@13]/2",
L: "~@3 d2@8 ~@5", M: "~@5 g1 ~@10", N: "~@3 c1 f1 ~@11", O: "~@6 c1 ~@9", P: "~@11 g1@2 ~@3",
Q: "~@2 e3 ~@3 a3 e3 ~@8",
})).s("gm_acoustic_bass").gain(0.21)
// chords · vibraphone
const vibraphone = note(`<
A@2 B@4 C D@5 E@5 F@4 G@2 H@2 I J K@2 L@2 M@2 N@4 O@2 P@2 Q@2 R@3 S@8 T U T V W X T ~@16 Y Z AA AB AC AD AE AF AG AH
AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW@2 AX@2 AY@6 AZ@2 BA@2 BB@2 BC@3
>`.pickRestart({
A: "[~@7 [bb5,db6,e6,gb6,a6]@6 ~@2 [ab5,bb5,eb6,g6]@15 ~@2]/2", // Gb7 Eb
B: "[~@7 [bb5,db6,e6,gb6,a6]@6 ~@2 [ab5,bb5,eb6,g6]@18 ~@6 [bb5,db6,e6,gb6,a6]@6 ~@2 [ab5,bb5,eb6,g6]@17]/4", // Gb7 Eb Gb7 Eb
C: "~@3 [eb4,eb5,a5,d6,gb6]@3 ~@2 [eb4,eb5,a5,db6,f6] ~@6 [a5,c6,eb6]", // D Dbaug Adim
D: "[[b5,db6]@12 ~@3 [a4,g5,b5,db6,eb6,gb6]@14 ~@2 [ab4,gb5,bb5,db6,f6]@20 ~@4 [bb5,db6,e6,gb6,a6]@6 ~@2 [ab5,bb5,eb6,g6]@15 ~@2]/5", // Bsus2 B7 Gbmaj7 Gb7 Eb
E: "[~@7 [bb5,db6,e6,gb6,a6]@5 ~@3 [ab5,bb5,eb6,g6]@19 ~@5 [bb5,db6,e6,gb6,a6]@6 ~@2 [ab5,bb5,eb6,g6]@18 ~@2 [eb4,eb5,a5,d6,gb6]@3 ~@2 [eb4,eb5,a5,db6,f6] ~@6 eb6]/5", // Gb7 Eb Gb7 Eb D Dbaug
F: "[[ab4,gb5,b5,db6]@12 ~@3 [a4,g5,db6,gb6]@14 ~@2 [ab4,gb5,bb5,db6,f6]@20 ~@5 [d5,c6,e6,g6,b6] ~ [d5,g6] [gb4,d6,e6,f6,bb6,d7] ~ [gb4,d6,f6,bb6,d7] ~@2]/4", // Abm7 Gbm Gbmaj7 Cmaj7 G5 Bb
G: "[~@3 [g4,g5,d6,e6,g6]@17 ~@4 [d5,c6,e6,g6,b6] ~ [d5,e6,g6] [gb4,d6,f6,bb6,d7] ~ [gb4,d6,f6,bb6,d7] ~@2]/2", // Em7 Cmaj7 Em7 Bb
H: "[~@3 [g4,d5,g5,f6,a6,b6,db7,e7]@17 ~@4 [db5,b5,eb6,gb6,bb6] ~ [db5,b5,gb6,bb6] [db6,e6,a6] ~ [db6,e6,a6,db7] ~@2, ~@3 f7 ~@28]/2", // G7 Ebm7 Gb A
I: "~@3 [gb4,gb5]@9 gb4 ~ e4 ~, ~@3 [db6,gb6]@11 ~@2, ~@3 bb5 ~@12", // Gb Gb5
J: "[eb4,eb5,db6]@6 ~@2 [ab4,gb5,b5,eb6,gb6]@5 ~@3", // Eb7 Abm7
K: "[[db5,b5,eb6,gb6,bb6] ~@2 [c5,bb5,e6,a6]@8 [ab5,eb6,g6]@15 ~@6, ~@11 bb5 ~@20]/2", // Ebm7 Am Abmaj7
L: "[~@3 [bb5,db6,e6,gb6,a6]@6 ~@2 [ab5,bb5,eb6,g6]@19 ~@2]/2", // Gb7 Eb
M: "[~@3 [bb5,db6,e6,a6]@6 ~@2 [ab5,bb5,eb6,g6]@18 ~@3]/2", // A Eb
N: "[[eb4,eb5,a5,d6,gb6]@3 ~ [eb4,eb5,a5,db6,f6] ~@6 eb6 [ab4,b5,db6]@14 ~ [a4,g5,db6,gb6]@14 ~@2 [ab4,gb5,bb5,db6,f6]@20 ~]/4", // D Dbaug Db7 Gbm Gbmaj7
O: "[~@4 [d5,c6,e6,g6,b6] ~ [d5,e6,g6] [gb4,d6,f6,bb6,d7] ~ [gb4,d6,f6,bb6,d7] ~@5 [g4,c6,d6,e6,g6]@16 g5, ~@15 g5@11 ~@6]/2", // Cmaj7 Em7 Bb C
P: "[~@4 [d5,c6,e6,g6,b6] ~ [d5,c6,e6,g6,b6] [gb4,gb5,d6,f6,bb6,d7] ~ [gb4,gb5,d6,f6,bb6,d7] ~@5 g5@7 ~@2 g5 ~ f5 ~ g5@2 ~ g5, ~@15 [g4,f6,a6,b6,db7,e7]@16 ~]/2", // Cmaj7 Bb A7
Q: "[~@4 [db5,b5,eb6,gb6,bb6] ~ [db5,b5,eb6,gb6] [f4,f5,db6,e6,a6,db7] ~ [f4,f5,db6,e6,a6,db7] ~@5 [gb4,db5,gb5,db6,eb6,gb6]@9 [gb4,gb5] ~ e4 ~ [eb4,eb5,g5,bb5,db6]@3 [eb4,g5,bb5,db6]]/2", // Ebm7 B A Ebm7 Gb Eb7
R: "[~@4 [ab4,gb5,b5,eb6,gb6]@7 ~ [db5,b5,eb6,gb6,bb6] ~@2 [c5,bb5,e6,a6]@29 [d3,d4,e5,gb5]@4, ~@15 db6 ~@28 c5 ~@3]/3", // Abm7 Ebm7 Am D
S: "[~@12 [a3,a4,db5,gb5,a5]@14 ~@2 [d3,d4,b4,c5,e5,gb5,a5]@14 ~@2 [a3,a4,db5,gb5,a5]@14 ~@2 [d3,d4,b4,c5,e5,a5]@14 ~@2 [a3,a4,db5,gb5,a5]@14 ~@2 [d3,d4,b4,c5,e5,a5]@14 ~@2 [a3,a4,db5,gb5,a5]@14 ~@2 [d3,d4,b4,c5,e5,a5]@2 ~ [d3,d4,b4,e5,gb5,a5]]/8", // Gbm D7 Gbm Am Gbm Am Gbm Am …
T: "~@12 [a3,a4,db5,gb5,a5]@2 ~ [a3,a4,db5,gb5,a5]", U: "~@12 [d3,d4,b4,c5,e5,gb5,a5]@2 ~ [d3,d4,b4,c5,e5,a5]",
V: "~@12 [d3,d4,b4,c5,gb5,a5]@2 ~ [d3,d4,b4,c5,e5,gb5,a5], ~@12 e5 ~@3", W: "~@12 [a3,a4,db5]@2 ~ [a3,a4,db5,gb5,a5]",
X: "~@12 [d3,d4,b4,c5]@2 ~ [d3,d4,b4,c5,e5,a5], ~@12 [e5,a5] ~@3", Y: "~@14 a4 g4",
Z: "~ a4 ~ f4 ~@5 g4 ab4 a4 bb4 c5 d5 f5", AA: "g5 ~@2 d5 f5 g5 [g5,a5] ~ g5 f5 g5 a5 g5@2 f5 d5",
AB: "f5 ~ d5 ~@6 [g4,a4,bb4,d5]@3 ~ g5 f6 ~", // Gm
AC: "d6 c6 f5 bb5 ~ a5 g5 f5 d5 [g5,a5] [f5,g5] [c5,d5] [d5,f5] [ab4,b4] a4 [f4,g4]", // Gsus2 Fsus2 Csus2 Dm Abm Fsus2
AD: "d4 c4 d4 ~@5 c4 d4 f4 g4 ~ f4 g4 a4", AE: "bb4 c5 d5 f5 ~ g5 f5 ~ f5 d5 ~ f5 ~ f5 d5 ~",
AF: "[e5,f5] ~ f5 ~@2 f5 d5 ~ f5!2 d5 c5 ~ [g5,a5] g5 f5", // Fmaj7 Gsus2
AG: "g5 a5 g5 [d5,f5] [c5,f5] [b4,d5] [ab4,a4] [ab4,c5] [f4,g4] [c4,d4] d4 [eb4,e4] [f4,gb4] g4@2 ~", // Dm F5 Bm Amaj7 Ab Fsus2 Csus2 Emaj7 …
AH: "ab4 [gb4,g4] f4 c4 bb3 g3 ab3 g3 f3 g3 ~@2 [c4,g4,ab4]@3 ~", // Gmaj7 Abmaj7
AI: "bb4 c5 d5 eb5 f5 g5 ab5 bb5 ab5 ~@2 g5 f5@2 g5 eb5",
AJ: "~ f5 c5 ~@2 bb4 ~ ab4 g4@2 f4 g4 c4 ~ f4 c4, ~@8 ab4 ~@7",
AK: "~ f4 bb4 f4 bb4 [g4,ab4] bb4 [bb4,b4] g4 [ab4,bb4] [b4,c5] [d5,eb5] e5 [f5,gb5] [g5,bb5] [g5,ab5]", // Abmaj7 Bmaj7 Absus2 Cmaj7 Ebmaj7 Gbmaj7 Gm Abmaj7
AL: "[f5,g5] [c5,eb5] [f5,g5] [c5,eb5] [g4,bb4] [bb4,c5] [f4,g4] [c4,eb4] [f4,g4] [bb3,c4,eb4] ab3 [f3,g3] eb3 ~@3", // Fsus2 Cm Fsus2 Cm Gm Bbsus2 Fsus2 Cm …
AM: "[ab4,c5] ~@2 bb3 g3 ~ a3 bb3 b3 c4 db4 d4 f4 ~ g4 ~", AN: "ab4 ~ bb4 g4 ab4 bb4 c5 d5 eb5 f5!2 ~@2 bb5 ~ ab5",
AO: "[gb5,g5] ~ f5 g5 [eb5,f5] eb5 ~ c5 d5@2 eb5 [db5,d5] ~ c5 bb4!2", // Gmaj7 Ebsus2 Dmaj7
AP: "a4 [g4,ab4] [f4,g4] a4 bb4 ~@4 a4 ~ g4!2 a4 f4 g4", AQ: "f4 c4 ~ d4 ~@9 bb4 gb4 g4",
AR: "a4 bb4 db5 d5 e5 f5 bb5 ~ a5 ~ f5 ~ g5 ~@3", AS: "~ f6 c6 ~ eb6 ~ d6 ~ c6 d6 c6 ~ bb5 [ab5,a5] ab5 [c5,f5]",
AT: "bb4 [a4,c5] [a4,bb4] [ab4,a4] f4 [bb3,c4] [ab3,a3] [f3,g3] [c3,d3] [a2,bb2] g2 f2 ~@4", // Am Bbmaj7 Amaj7 Bbsus2 Amaj7 Fsus2 Csus2 Bbmaj7
AU: "~@2 c4 f4 g4 bb4 ~ ab4 a4 ~ g4 f4 ~ g4 [ab4,a4] ~", AV: "f4 ~ d4 ~@6 g4 a4 bb4 c5 f5 a4@2, ~@14 ab4 ~",
AW: "[~@3 [bb5,e6,a6]@6 ~@2 [ab5,c6,eb6,g6]@17 ~@4, ~@3 c5@8 ~@21]/2", // A Abmaj7
AX: "[~@3 [c5,bb5,e6,a6]@6 ~@2 [ab5,c6,eb6,g6]@18 ~@3]/2", // Am Abmaj7
AY: "[~@3 [c5,bb5,e6,a6]@6 ~@2 [f4,ab5,c6,eb6,g6]@17 ~@3 [eb4,a5,db6,gb6]@4 ~ [eb4,a5,db6,f6] ~@6 eb6 [ab4,b5,db6]@13 ~@2 [a4,g5,db6,gb6]@14 ~@2 [ab4,bb5,db6,f6]@21]/6", // Am Fm7 Ebm7b5 Dbaug Db7 Gbm Bbm7
AZ: "[~@4 b6 ~ b6 d7 ~ d7 ~@5 [g4,d5]@15 ~@2, ~@15 [b5,d6]@12 ~@5]/2", // G5 Bm
BA: "[~@4 [d5,c6,e6,g6,b6] ~@2 [d6,f6,bb6] ~ [gb4,d6,f6,bb6] ~@5 [g4,g5,f6,a6,e7]@12 ~@5]/2", // Cmaj7 Bb Fmaj7
BB: "[~@4 [db5,b5,db6,eb6,gb6] ~ [db5,gb6] [f4,e6,a6] ~ [f4,db6,e6,a6] ~@5 [gb4,db5,db6,gb6]@9 ~@4 [eb4,bb5,eb6]@4]/2", // B Gb5 Fmaj7 A Gb5 Eb5
BC: "[~@4 [eb5,b5,eb6,gb6]@5 ~@3 [db5,b5,eb6,gb6] ~@2 [c5,e6,a6]@20 ~@13, ~@15 bb5@11 ~@22]/3", // B Am
})).s("gm_vibraphone").gain(0.15).pan(0.6)
// chords · vibraphone · soft notes
const vibraphone_soft = note(`<
~@7 A ~@12 B C@2 D E F G ~@6 H@2 ~@2 I J ~@3 K ~@2 L@2 ~@2 M@4 N ~ O ~@2 P Q ~@24 R S ~@4 T U V ~@3 W ~@3 X Y@2 Z@2
~@2 AA@2 AB@2 AC@2 AD ~ AE@2 AF ~@2
>`.pickRestart({
A: "~@3 ab4@10 ~@3, gb5@3 ~", B: "~@10 [c6,e6,b6] ~@5", C: "[~@4 c6@15 ~@7 [c6,b6] ~@5]/2", D: "~@3 c7 ~@12",
E: "~@10 eb6 ~@5", F: "~@9 eb6@4 ~@3", G: "[g5,bb5]@5 ~@11", H: "[~@12 gb5@13 ~@7]/2", I: "~@6 [c6,b6] ~@9",
J: "~@6 g5 ~", K: "~@10 e5 ~@5", L: "[~@6 [b4,a5]@7 ~@3]/2", M: "[~@6 gb5@7 ~@3]/2", N: "~@12 gb5@2 ~ c5",
O: "~@15 gb5", P: "~@6 [gb5,a5] ~", Q: "~@12 gb5@2 ~ gb5", R: "~@3 d5 ~@12", S: "~@10 db4 ~@5", T: "~@10 a3 ~@5",
U: "f4 ~@15", V: "~@9 e5 ~@6", W: "~@11 c5 ~@4", X: "~ c4 ~@14", Y: "[~@11 f4@17 ~@4]/2", Z: "[~@11 f4@18 ~@3]/2",
AA: "[~@3 gb5@3 ~@2]/2", AB: "[~@11 gb5@20 ~]/2", AC: "[~@15 g5@15 ~@2, ~@15 a5@12 ~@5]/2",
AD: "~@6 [c6,e6,g6,b6] gb4 ~@8", AE: "[~@6 [b5,eb6] db6 ~@8 ab5@9 ~@3 [eb5,g5]@4, ~@15 bb5@9 ~@8]/2",
AF: "~@4 [ab4,gb5]@5 ~@7", // Ab7
})).s("gm_vibraphone").gain(0.08).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
A B C B C B@2 D B D B@2 C B E B@3 D B@3 F B@3 G H I J I J I@2 K I@3 L I@2 L M N O P I@31 Q F B F@3 R F S F R F T F B@2
S U I@5 V W I J K J I@2 K I L I L I L@2 X Y ~@2
>`.pickRestart({
A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@6 x ~@4", D: "~@4 x ~@6 x!2 ~@3", E: "~@3 x!2 ~@6 x ~@4",
F: "~@3 x!2 ~@7 x ~@3", G: "~@3 x ~@12", H: "x ~@2 x ~@12", I: "x!2", J: "x ~@6 x ~@8", K: "x ~@6 x!2 ~@7",
L: "x ~@7 x ~@6 x", M: "x ~@7 x ~@3 x ~@2 x", N: "~@4 x ~@7 x ~@2 x", O: "~@15 x", P: "~ x ~ x!2 ~@7 x ~@3",
Q: "x ~ x!2", R: "~@3 x ~@2 x ~@5 x ~@3", S: "~@3 x ~@8 x ~@3", T: "~@3 x ~@2 x ~", U: "~ x", V: "x",
W: "x ~@2 x ~@4 x ~@7", X: "~@8 x ~ x ~ x ~@2 x", Y: "~@12 x ~@2 x",
})).gain(0.42)
// drums · rim
const rim = s("rim").struct("<~@45 A B@15 C D E F G E H I ~ J K L M N ~ O P ~@42>".pickRestart({
A: "~@14 x!2", B: "x!16", C: "x!5 ~@11", D: "~ x ~@2 x ~@9 x ~", E: "~ x ~@14", F: "~ x ~@2 x ~@2 x ~@8", G: "~@7 x",
H: "~@5 x ~@2 x ~@7", I: "~ x ~@2 x ~@2 x ~@2 x ~@5", J: "~ x ~@7 x ~@2 x ~@3", K: "~@6 x ~@2 x ~@6",
L: "~@9 x ~@2 x ~@3", M: "~@13 x ~@2", N: "x ~@8 x ~@2 x ~@3", O: "~ x ~@2 x ~@8 x ~@2", P: "x",
})).gain(0.3)
// drums · snare
const snare = s("sd").struct(`<
A B C D E F G H I J K L I M N I O P Q I R S T I U V W X Y Z AA AB AC AD AE AF S AG AH AI AJ AK AL ~@2 AM ~@32 AN@2
AO@2 AN AO AN AO AN AO AN@2 AO@2 AN ~@8 AP AQ AR AS S AT AQ AR AU AR AV S AW AX AY AZ ~@3
>`.pickRestart({
A: "~@10 x!2 ~@2 x ~", B: "~@2 x!2 ~@3 x ~@7 x", C: "~@2 x!2 ~@3 x ~@8", D: "~@3 x ~@2 x ~@4 x ~@3 x",
E: "~@3 x ~@2 x!2 ~@3 x ~@2 x ~", F: "~@3 x ~ x!3 ~@3 x ~@2 x ~", G: "~@3 x ~@2 x ~@9", H: "~@3 x ~@2 x ~@3 x!3 ~@3",
I: "~@2 x!2 ~@2 x ~@4 x ~@2 x ~", J: "~@3 x ~@2 x ~@4 x ~@2 x ~", K: "~@2 x!2 ~ x ~@3 x ~@3 x ~@2",
L: "~@2 x!2 ~@2 x ~@8 x", M: "~@2 x!2 ~@4 x!2 ~@2 x ~@2 x", N: "~@2 x!2 ~@12", O: "~@2 x!2 ~@2 x!2 ~@2 x ~@5",
P: "~@2 x!2 ~@2 x ~@3 x!2 ~@2 x!2", Q: "~@3 x ~@2 x ~@2 x ~@3 x ~@2", R: "~@3 x ~@12",
S: "~@2 x ~@3 x!2 ~@2 x ~@3 x!2", T: "~ x ~@4 x ~@9", U: "~ x ~ x ~ x ~ x ~@8", V: "~@2 x!2 ~@2 x ~@4 x ~@4", W: "x",
X: "~@15 x", Y: "~@2 x ~@4 x ~@2 x ~@4 x", Z: "~ x ~@4 x ~@2 x ~@6", AA: "~@2 x!2 ~@2 x ~@4 x ~@2 x!2",
// … 127 more lines
More by
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.