KeyE♭ majorTempo118 bpm
0:00/0:00
// Young Hearts Run Free — Candi Staton
// 118 bpm, 4/4, key Eb major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 7 acoustic bass (copy of ch 2 slap bass 1)
// note: Full arrangement: all 123 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 · epiano2
const epiano2 = note(`<
~@4 A B C D E@6 F@6 G@4 H D I J D K L M N@3 O@2 P Q R S@3 T@2 U@8 V@8 W X Y Z AA AB@2 AC@4 AD@2 P L R AE AF@2 AG@2 AH
AI AJ@2 AK@2 AL AM AN@2 AO@2 P AP AQ AR AS@2 AT@2 AU AV AW AR AX@2 AY@2 AU AZ BA BB BC@2 BD@2 H BE BF BG BH
>`.pickRestart({
A: "~@27 [b3,db4,e4,gb4]@5", B: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@17 ~@3 [b3,db4,e4,gb4]@5",
C: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@18 ~@2 [b3,db4,e4,gb4]@3 ~@2", // Bsus4
D: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@18 ~@2 [b3,db4,e4,gb4]@5", // Bsus4
E: "[~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@12 ~@8 [e3,ab3,b3]@15 ~ [e3,ab3,db4]@14 ~@2 [e3,ab3,eb4]@11 ~ [e3,ab3,db4]@18 ~@2 [e3,ab3,b3]@15 ~ [e3,ab3,db4]@14 ~@2 [e3,ab3,eb4]@10 ~@2 [e3,ab3,db4]@12 ~@8 [a3,db4,e4]@14 ~@2 [a3,db4,gb4]@14 ~@2 [a3,ab4]@4 ~, ~@187 db4@2 ~@3, ~@187 d4 ~@4]/6", // Bsus4 E Dbm Emaj7 Dbm E Dbm Emaj7 …
F: "[~ [a3,ab4]@2 ~@4 [a3,db4,gb4]@13 ~@7 [e3,ab3,b3]@15 ~ [e3,ab3,db4]@15 ~ [e3,ab3,b3] ~@3 [ab3,b3] ~ [ab3,db4]@24 ~@2 [e3,ab3,b3]@14 ~@2 [e3,ab3,db4]@14 ~@2 [e3,ab3,eb4]@10 ~@2 [e3,ab3,db4]@19 ~ [e3,ab3,b3]@14 ~@2 [e3,ab3,db4]@13 ~@3 [e3,ab3,eb4]@5, ~ db4 ~@61 e3@25 ~@104]/6", // Amaj7 Gbm E Dbm E Abm Db5 E …
G: "[~@7 [e3,ab3,db4]@12 ~@8 [a3,db4,e4]@14 ~@2 [a3,db4,gb4]@14 ~@2 [a3,db4,ab4]@11 ~ [a3,db4,gb4]@13 ~@7 [e3,ab3,b3]@15 ~ [e3,ab3,db4]@14 ~@2 [e3,ab3,b3] ~@3 [e3,ab3,b3]]/4", // Dbm A Gbm Amaj7 Gbm E Dbm E
H: "~ [e3,ab3,db4]@18 ~@8 [b3,db4,e4,gb4]@4 ~", // Dbm Bsus4
I: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@15 ~ [db4,gb4] ~ b2 ~ [b3,db4,e4,gb4]@5", // Bsus4 Gb5 Bsus4
J: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@15 ~@3 b2 ~ [b3,db4,e4,gb4]@5", // Bsus4
K: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@12 ~@8 [a3,db4,e4,ab4]@5", L: "~ [a3,db4,e4,gb4]@24 ~@2 [a3,db4,e4,ab4]@5",
M: "~ [a3,db4,e4,gb4]@25 ~ [a3,db4,e4,ab4]@5", // Gbm7 Amaj7
N: "[~ [a3,db4,e4,gb4]@5 ~ [a3,db4,e4,ab4]@3 ~ [a3,e4,gb4]@7 ~ [a3,db4,e4]@6 ~@2 [db4,e4]@5 ~ [db4,eb4]@4 ~@2 [a3,db4,e4]@2 ~@2 [a3,db4,eb4]@7 ~ [a3,db4]@5 ~@3 db4@11 ~@5 b3@13 ~@3 [e3,ab3] ~@3 [ab3,b3], ~@11 db4 ~@15 a3@10 ~@22 [e3,ab3]@29 ~@8, ~@59 b3 ~@31 b3@2 ~@3]/3", // Gbm7 Amaj7 Gbm7 A Dbm Dbsus2 A Ebm7b5 …
O: "[~ [e3,ab3,db4]@24 ~@2 [e3,ab3,db4]@15 ~ [e3,ab3,b3]@13 ~@3 [e3,ab3,b3] ~@3 [e3,ab3,b3]]/2", // Dbm E
P: "~ [e3,ab3,db4]@17 ~@9 [a3,db4,e4,ab4]@5", Q: "~ [a3,db4,e4,gb4]@23 ~@3 [a3,db4,e4,ab4]@5",
R: "~ [a3,db4,e4,gb4]@20 ~@6 [a3,db4,e4,ab4]@5", // Gbm7 Amaj7
S: "[~ [a3,db4,e4,gb4]@25 ~ [db4,gb4]@5 ~ e4@5 ~ eb4@3 ~ [a3,db4,e4]@6 ~@2 [a3,db4,eb4]@4 ~@4 [e3,ab3,db4]@15 ~ [e3,ab3,b3]@14 ~@2 [e3,ab3,b3] ~@3 [ab3,b3], ~@9 a3@5 ~@18, ~@27 e4 ~@5 db4@9 ~@54]/3", // Gbm7 Gb5 A Ebm7b5 Dbm E Abm
T: "[~ [e3,ab3,db4]@25 ~ [e3,ab3,db4]@15 ~ [e3,ab3,b3]@14 ~@2 [e3,ab3,b3] ~@3 [e3,ab3,b3]]/2", // Dbm E
U: "[~ [e3,ab3,db4]@20 ~@6 [e3,ab3,b3]@15 ~ [e3,ab3,db4]@10 ~@6 [e3,ab3,eb4]@10 ~@2 [e3,ab3,db4]@19 ~ [e3,ab3,b3]@14 ~@2 [e3,ab3,db4]@11 ~@5 [e3,ab3,eb4]@8 ~@4 [e3,ab3,db4]@12 ~@8 [a3,db4,e4]@15 ~ [a3,db4,gb4]@13 ~@3 [a3,db4,ab4]@10 ~@2 [a3,db4,gb4]@13 ~@7 [e3,ab3,db4]@14 ~@2 [e3,ab3,b3]@13 ~@3 [e3,ab3,b3] ~@3 [e3,ab3,b3]]/8", // Dbm E Dbm Emaj7 Dbm E Dbm Emaj7 …
V: "[~ [e3,ab3,db4]@24 ~@2 [e3,ab3,b3]@15 ~ [e3,ab3,db4]@12 ~@4 [e3,ab3,eb4]@11 ~ [e3,ab3,db4]@18 ~@2 [e3,ab3,b3]@15 ~ [e3,ab3,db4]@10 ~@6 [e3,ab3,eb4]@10 ~@2 [e3,ab3,db4]@11 ~@9 [a3,db4,e4]@15 ~ [a3,db4,gb4]@14 ~@2 [a3,db4,ab4]@11 ~ [a3,db4,gb4]@14 ~@6 [e3,ab3,db4]@14 ~@2 [e3,ab3,b3]@14 ~@2 [e3,ab3,b3] ~@3 [e3,ab3,b3]]/8", // Dbm E Dbm Emaj7 Dbm E Dbm Emaj7 …
W: "~ [e3,ab3,db4]@17 ~@9 [b3,db4,e4,gb4]@5", // Dbm Bsus4
X: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@14 ~@2 [b3,db4,gb4] ~ b2 ~ [b3,db4,e4,gb4]@5", // Bsus4 Bsus2 Bsus4
Y: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@14 ~@2 gb4 ~ b2 ~ [b3,db4,e4,gb4]@5", // Bsus4
Z: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@14 ~@2 [b3,db4,e4,gb4] ~ b2 ~ [b3,db4,e4,gb4]@5", // Bsus4
AA: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@14 ~@2 [b3,db4] ~ b2 ~ [b3,db4,e4,gb4]@5", // Bsus4 Bsus2 Bsus4
AB: "[~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@12 ~@8 [a3,db4,ab4]@6 [a3,db4,gb4]@23 ~@3 [a3,db4,e4,ab4]@5, ~@27 e4@30 ~@7]/2", // Bsus4 Amaj7 Gbm Amaj7
AC: "[~ [a3,db4,e4,gb4]@24 ~@2 [db4,e4,ab4]@5 ~ [db4,e4,gb4]@4 ~@2 [a3,db4,e4,ab4]@3 ~ [a3,db4,e4,gb4]@7 ~ [a3,db4,e4]@6 ~@2 [db4,e4]@5 ~ [db4,eb4]@4 ~@2 [a3,db4,e4]@3 ~ [a3,db4,eb4]@7 ~ db4@4 ~@4 [e3,ab3,db4]@15 ~ [e3,ab3,b3]@14 ~@2 [e3,ab3,b3] ~@3 [ab3,b3], ~@27 a3@11 ~@21 a3@11 ~@58]/4", // Gbm7 Dbm Gb7 Amaj7 Gbm7 A Dbm Dbsus2 …
AD: "[~ [e3,ab3,db4]@25 ~ [e3,ab3,db4]@14 ~@2 [e3,ab3,b3]@14 ~@2 [e3,ab3,b3] ~@3 [e3,ab3,b3]]/2", // Dbm E
AE: "~ [a3,db4,e4,gb4]@4 ~@2 [a3,db4,e4,ab4]@3 ~ [a3,db4,e4,gb4]@7 ~ [a3,db4,e4]@7 ~ [a3,db4,e4]@5", // Gbm7 Amaj7 Gbm7 A
AF: "[~ [a3,db4,eb4]@4 ~@2 [a3,db4,e4]@3 ~ [a3,db4,eb4]@7 ~ [a3,db4]@4 ~@4 [e3,ab3,db4]@12 b3 ~@3 [e3,ab3,b3]@14 ~@2 [e3,ab3,b3] ~@3 [ab3,b3]]/2", // Ebm7b5 A Ebm7b5 A Dbm E Abm
AG: "[~ [e3,ab3,db4]@25 ~ [e3,ab3,db4]@14 ~@2 [e3,ab3,b3]@13 ~@3 [e3,ab3,b3] ~@3 [ab3,b3]]/2", // Dbm E Abm
AH: "~ [e3,ab3,db4]@19 ~@7 [b3,db4,e4,gb4]@5, ~ b3 ~@30", // Dbm Bsus4
AI: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@18 b2 ~ [b3,db4,e4,gb4]@5", // Bsus4
AJ: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@15 ~@3 b2 ~ [b3,db4,e4,gb4]@4 ~", // Bsus4
AK: "[~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@16 ~@4 [db4,e4,ab4]@6 [db4,e4,gb4]@22 ~@4 [a3,db4,e4,ab4]@5, ~@27 a3@27 ~@10]/2", // Bsus4 Dbm Gb7 Amaj7
AL: "~ [a3,db4,e4,gb4]@21 ~@5 [a3,db4,e4,ab4]@5", // Gbm7 Amaj7
AM: "~ [a3,db4,e4,gb4]@5 ~ [a3,db4,e4,ab4]@3 ~ [a3,db4,e4,gb4]@7 ~ [a3,db4,e4]@7 ~ [a3,db4,e4]@5", // Gbm7 Amaj7 Gbm7 A
AN: "[~ [a3,db4,eb4]@4 ~@2 [a3,db4,e4]@3 ~ [a3,db4,eb4]@6 ~@2 [a3,db4]@5 ~@3 [e3,ab3,db4]@14 ~@2 [e3,ab3,b3]@14 ~@2 [e3,ab3,b3] ~@3 [e3,ab3,b3]]/2", // Ebm7b5 A Ebm7b5 A Dbm E
AO: "[~ [e3,ab3,db4]@24 ~@2 [e3,ab3,db4]@13 ~@3 [e3,ab3,b3]@13 ~ e3 ~ [e3,ab3,b3]@2 ~@2 [e3,ab3]]/2", // Dbm E
AP: "~ [a3,db4,e4,gb4]@19 ~@7 [a3,db4,e4,ab4]@5", // Gbm7 Amaj7
AQ: "~ [a3,db4,e4,gb4]@3 ~@3 [a3,db4,e4,ab4]@3 ~ [a3,db4,e4,gb4]@11 ~@5 [a3,db4,e4,ab4]@5", // Gbm7 Amaj7 Gbm7 Amaj7
AR: "~ [a3,db4,e4,gb4]@4 ~@2 [a3,db4]@2 ~@2 [a3,db4,e4,gb4]@6 ~@2 [a3,db4,e4]@6 ~@2 [a3,db4,e4]@5, ~@7 [e4,ab4] ~@24", // Gbm7 A Gbm7 A E
AS: "[~ [a3,db4,eb4]@4 ~@2 [a3,db4,e4]@2 ~@2 [a3,db4,eb4]@7 ~ [a3,db4]@4 ~@4 [e3,ab3,db4]@14 ~@2 [e3,ab3,b3]@8 ~@8 [e3,ab3,b3] ~@3 [e3,ab3,b3]]/2", // Ebm7b5 A Ebm7b5 A Dbm E
AT: "[~ [e3,ab3,db4]@18 ~@2 [e3,ab3,db4] ~@5 [e3,ab3,db4]@14 ~@2 [e3,ab3,b3]@12 ~@2 e3 ~ [e3,b3] ~@4, ~@59 ab3@2 ~@3]/2", // Dbm E E5
AU: "~ [e3,ab3,db4]@15 ~@11 [a3,db4,e4,ab4]@5", AV: "~ [a3,db4,gb4]@18 ~@8 [a3,db4,e4,ab4]@3 ~@2",
AW: "~ [a3,db4,e4,gb4]@18 ~@8 [a3,db4,e4,ab4]@4 ~", // Gbm7 Amaj7
AX: "[~ [a3,db4,eb4]@5 ~ [a3,db4,e4]@2 ~@2 [a3,db4,eb4]@6 ~@2 [a3,db4]@4 ~@4 [e3,ab3,db4]@13 ~@3 [e3,ab3,b3]@13 ~@3 [e3,ab3,b3] ~@3 ab3]/2", // Ebm7b5 A Ebm7b5 A Dbm E
AY: "[~ [e3,ab3,db4]@24 ~@6 [e3,ab3,db4]@11 ~ [e3,ab3,b3]@14 ~@2 [e3,ab3,b3] ~@3 [ab3,b3]]/2", // Dbm E Abm
AZ: "~ [a3,db4,e4,gb4]@20 ~@6 [a3,db4,e4,ab4]@3 ~@2", // Gbm7 Amaj7
BA: "~ [a3,db4,e4,gb4]@3 ~@3 [a3,e4,ab4] ~@3 [a3,db4,e4,gb4]@7 ~@9 [a3,db4,e4,ab4]@3 ~@2, ~@7 db4@2 ~@23", // Gbm7 Amaj7 Gbm7 Amaj7
BB: "~ [a3,db4,e4,gb4]@2 ~@4 [a3,db4,e4,ab4] ~@3 [a3,db4,e4,gb4]@6 ~@2 [a3,db4,e4]@6 ~@2 [a3,db4,e4]@5", // Gbm7 Amaj7 Gbm7 A
BC: "[~ [a3,db4,eb4]@4 ~@2 [a3,db4,e4]@2 ~@2 [a3,db4,eb4]@6 ~@2 [a3,db4]@3 ~@5 [e3,ab3,db4]@14 ~@2 [e3,ab3,b3]@13 ~@3 [e3,ab3,b3] ~@3 [e3,ab3]]/2", // Ebm7b5 A Ebm7b5 A Dbm E
BD: "[~ [e3,ab3,db4]@23 ~@3 [e3,ab3,db4]@14 ~@2 [e3,ab3,b3]@12 e3 ~@3 [e3,ab3,b3] ~@3 ab3, ~ b3 ~@62]/2", // Dbm E
BE: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@17 ~ b2 ~ [b3,db4,e4,gb4]@4 ~", // Bsus4
BF: "~ [b3,db4,e4,gb4] ~@5 [b3,db4,e4,gb4]@17 ~@3 [b3,db4,e4,gb4]@4 b2", // Bsus4
BG: "~ [b3,e4,gb4] ~@3 b2 ~ [b3,db4,e4,gb4]@18 ~@2 [b3,db4,e4,gb4] ~ [b3,db4,e4,gb4]@2 ~, ~ db4@2 ~@29", // Bsus4
BH: "~@7 [b3,db4,e4,gb4] ~ [b3,db4,e4,gb4]@3 ~@7 [b3,db4,e4,gb4]@5 ~@8", // Bsus4
})).s("gm_epiano2").gain(0.42)
// bass · slap bass 1
const bass = note(`<
~@4 A B C D E@2 F G H I J G K L M G N I O L P Q R S R T U V I W G X Y Z AA U AB AC G AD AE AF@2 F G H I J G K L M G N
I O L P Q R S R T U V I W G X Y Z AA U AB AC G AD AE AG Q S R T U V I W G X Y Z AA U AB AC G AD AE AH AI V I W G X Y Z
AA U AB AC G AD AE AJ AK AL AM AN
>`.pickRestart({
A: "~@27 b1@5", B: "~ b1@2 ~@2 ab1 ~ b1@4 ~@2 b1@2 ab1@4 a1@4 bb1 ~ ab1@2 b1@4 ~",
C: "~ b1@2 ~@2 ab1 ~ b1 ~ b1@2 ~@2 b1 ~ ab1@4 a1@3 ~ bb1 ~ ab1@2 b1@4 ~",
D: "~ b1@2 ~@2 ab1@2 b1 ~ b1 ~@3 b1 ~ ab1@4 a1@3 ~ bb1@2 ab1@2 b1@4 ~",
E: "[~ b1@2 ~@2 ab1 ~ b1 ~@3 b1@2 db2@6 e2@2 gb2@6 e1@9 ~ e1@2 b1@4 db2@7 ~ b1@4 db2@2 b1@2 e1@5]/2",
F: "~ e1@2 ~@2 e1 ~ b1@4 db2 ~@3 db2@4 b1@4 db2@2 b1@2 e1@5", G: "~ e1@2 ~@2 e1 ~ b1@4 db2@8 b1@4 db2@2 b1@2 e1@4 ~",
H: "~ e1@2 ~@2 e1 ~ b1@4 db2 ~@3 db2@3 ~ b1@4 bb1@4 a1@5",
I: "~ a1@2 ~@2 e1@2 a1@4 gb1@2 ~@2 gb1@4 e1@3 ~ gb1@2 e1@2 a1@4 ~",
J: "~ a1@2 ~@2 e1 ~ a1@4 gb1 ~@3 gb1@3 ~ e1@3 ~ gb1@3 ~ e1@4 ~",
K: "~ e1@2 ~@2 e1 ~ b1@4 db2 ~@3 db2@4 b1@4 db2@2 b1@2 e1@4 ~", L: "~ e1 ~@3 e1 ~ b1@4 db2@8 b1@4 db2@2 b1@2 e1@4 ~",
M: "~ e1@2 ~@2 e1 ~ b1@3 ~ db2 ~@3 db2@4 b1@4 db2@4 e1@4 ~",
N: "~ e1@2 ~@2 e1 ~ b1@4 db2 ~@3 db2@4 b1@3 ~ bb1@4 a1@4 ~",
O: "~ a1@2 ~@2 e1@2 a1@3 ~ gb1@2 ~@2 gb1@3 ~ e1@3 ~ gb1@4 e1@4 ~",
P: "~ e1@2 ~@2 e1@2 b1@4 db2@4 ab1@4 a1@4 bb1@2 ab1@2 b1@5",
Q: "~ b1@2 ~@2 ab1@2 b1 ~ b1@2 ~@2 b1 ~ ab1@4 a1@4 bb1 ~ ab1@2 b1@5",
R: "~ b1@2 ~@2 ab1@2 b1 ~ b1 ~@3 b1 ~ ab1@4 a1@3 ~ bb1 ~ ab1@2 b1@4 ~",
S: "~ b1 ~@3 ab1@2 b1 ~ b1 ~@3 b1 ~ ab1@4 a1@3 ~ bb1 ~ ab1@2 b1@4 ~",
T: "~ b1@2 ~@2 ab1@2 b1@4 ab1@2 b1@6 ~@2 bb1@6 a1@5",
U: "~ a1@2 ~@2 e1@2 a1@4 gb1@2 ~@2 gb1@4 e1@3 ~ gb1@2 e1 ~ a1@4 ~",
V: "~ a1@2 ~@2 e1@2 a1@4 gb1@2 ~@2 gb1@4 e1@4 gb1@2 e1@2 a1@4 ~",
W: "~ a1@2 ~@2 e1@2 a1@4 gb1@2 ~@2 gb1@4 e1@3 ~ gb1@4 e1@5",
X: "~ e1 ~@3 e1 ~ b1@3 ~ db2 ~@3 db2@4 b1@3 ~ db2@2 b1 ~ e1@5",
Y: "~ e1@2 ~@2 e1 ~ b1@3 ~ db2@8 b1@4 db2@2 b1@2 e1@3 ~@2",
Z: "~ e1@2 ~@2 e1 ~ b1@3 ~ db2 ~@3 db2@4 b1@4 bb1@4 a1@4 ~",
AA: "~ a1@2 ~@2 e1 ~ a1@4 gb1 ~@3 gb1@4 e1@3 ~ gb1@2 e1@2 a1@5",
AB: "~ a1@2 ~@2 e1 ~ a1@4 gb1@2 ~@2 gb1@4 e1@3 ~ gb1@2 e1 ~ a1@4 ~",
AC: "~ a1@2 ~@2 e1 ~ a1@4 gb1@2 ~@2 gb1@4 e1@3 ~ gb1@4 e1@4 ~",
AD: "~ e1@2 ~@2 e1@2 b1@4 db2 ~@3 db2@4 b1@3 ~ db2@2 b1@2 e1@4 ~",
AE: "~ e1@2 ~@2 e1 ~ b1@4 db2@8 b1@3 ~ db2@2 b1@2 e1@3 ~@2",
AF: "[~ e1 ~@3 e1 ~ b1@4 db2 ~@3 db2@4 b1@4 db2@2 ~@2 e1@9 ~ e1@2 b1@4 db2@7 ~ b1@4 db2@2 b1@2 e1@5]/2",
AG: "~ e1 ~@3 e1 ~ b1@4 db2 ~@3 db2@4 b1@4 db2@2 ~@2 b1@5",
AH: "~ e1 ~@3 e1 ~ b1@4 db2 ~@3 db2@4 b1@4 db2@2 ~@2 a1@5",
AI: "~@5 e1@2 a1@4 gb1@2 ~@2 gb1@4 e1@3 ~ gb1@2 e1 ~ a1@4 ~",
AJ: "~ e1 ~@3 e1 ~ b1@4 db2 ~@3 db2@4 b1@4 db2@2 ~@2 b1@4 ~",
AK: "~ b1@2 ~@4 b1@5 ~ b1@2 ab1@4 a1@3 ~ bb1 ~ ab1@2 b1@4 ~",
AL: "~ b1@2 ~@2 ab1 ~ b1@5 ~ b1@2 ab1@4 a1@3 ~ bb1 ~ ab1@2 b1@5",
AM: "~ b1@2 ~@2 ab1 ~ b1@5 ~ b1@2 ab1@4 a1@3 ~ bb1@4 b1 ~ b1@3", AN: "~@7 b1 ~ b1@2 ~@8 b1@7 ~@6",
})).s("gm_slap_bass_1").gain(0.5)
// chords · brass section
const brass_section = note(`<
~@4 A@5 ~@5 B C D ~@5 B E F ~ G ~ H ~@5 I@2 J K ~@4 J K J K ~@5 L@2 K ~@6 M@2 ~ G ~ N ~@5 O@2 P@2 ~@4 O@2 Q@2 ~@8 O@2
R@2 ~@4 S@2 T@2 ~@4 U@2 O@2 ~@4 V@2 W@5 X
>`.pickRestart({
A: "[~@15 b4@2 ~@2 b4@2 a4@2 ab4@2 ~@2 ab4@2 ~@2 a4@2 gb4@43 ~@3 b4@2 ~@2 b4@2 a4@2 ab4@2 ~@2 ab4@2 ~@2 a4@2 gb4@57 ~@6]/5",
B: "~@27 [e3,b3]@5", C: "~ [e3,b3] ~@5 [e3,db4]@18 ~@2 [e3,b3]@5", D: "~ [e3,b3] ~@5 [e3,db4]@19 ~@6",
E: "~ [e3,b3] ~@5 [e3,db4]@18 ~@2 [e3,b3]@4 ~", F: "~ [e3,b3] ~@5 [e3,db4]@12 ~@13",
G: "~@15 ab4 ~@3 gb4@2 e4@2 db4@2 ~@7", H: "~@15 ab4 ~@3 gb4@2 e4@2 db4 ~@8",
I: "[~@27 [e3,ab3,b3] ~@3 b3 ~ db4@25 ~@6, ~@31 e3@27 ~@6]/2", J: "~@27 [e3,b3] ~@3 [e3,b3]", K: "~ [e3,db4]@26 ~@5",
L: "[~@27 [e3,db4]@14 ~@2 [e3,b3]@14 ~@2 [e3,b3] ~@3 [e3,b3]]/2", // Dbm E5
M: "[~@27 b3@2 ~@2 b3 ~ db4@25 ~@6, ~@27 e3 ~@3 e3@27 ~@6]/2", N: "~@15 ab4@2 ~@2 gb4@2 e4@2 db4@2 ~@7",
O: "[~@27 b3@2 ~@2 b3 ~ db4@26 ~@5, ~@27 e3 ~@3 e3@28 ~@5]/2",
P: "[~@27 [e3,b3] ~@3 b3@2 db4@26 ~@5, ~@31 e3@27 ~@6]/2", // E5
Q: "[~@27 [e3,b3]@2 ~@2 b3 ~ db4@16 ~@2 [b3,db4] ~ [e4,gb4] ~ [ab4,b4] ~ [db5,e5,gb5] ~ [ab5,b5,db6,e6] ~ gb6 ~@2, ~@31 e3@18 ~@15]/2", // E5 Bsus2 Esus2 Abm Gb7 Dbm7
R: "[~@27 [e3,b3] ~@3 b3 ~ db4@26 ~@5, ~@31 e3@28 ~@5]/2", // E5
S: "[~@27 b3@2 ~@2 b3@2 db4@28 ~@3, ~@27 e3 ~@3 e3@28 ~@5]/2",
T: "[~@27 b4@2 ~@2 b4@2 db5@26 ~@5, ~@27 e4 ~@3 e4@27 ~@6]/2",
U: "[~@27 [e3,b3] ~@3 b3@2 db4@26 ~@5, ~@31 e3@28 ~@5]/2", // E5
V: "[~@27 b3@2 ~@2 b3@2 db4@26 ~@5, ~@27 e3 ~@3 e3@27 ~@6]/2",
W: "[~@27 [e4,b4]@2 ~@2 b4 ~ db5@13 ~ b4@2 ~@2 b4@2 a4 ~ ab4@2 ~@2 ab4@2 ~@2 a4@2 gb4@45 ~ b4@2 ~@2 b4@2 a4@2 ab4@2 ~@2 ab4@2 ~@2 a4@2 gb4@23 ~@3 [gb4,b4,e5] ~ [gb4,b4,e5]@3, ~@31 e4@15 ~@114]/5", // E5 Esus2
X: "~@7 [gb4,b4,e5] ~ [gb4,b4,e5]@2 ~@9 [gb4,b4,e5]@4 ~ b4 ab4 [e4,gb4] [b3,db4] ab3 ~@2, ~@12 db5 ~@3", // Esus2 Bsus2
})).s("gm_brass_section").gain(0.71)
// other · alto sax
const alto_sax = note("<~@82 A B@2 C@3 ~@35>".pickRestart({
A: "~@23 b4@2 ~@2 b4@5, ~@25 db5@4 ~@3",
B: "[~ b4@17 ~ ab4@4 b4@2 ~@2 ab4@4 gb4@26 ~@7, ~@19 gb4@2 ~@6 gb4@2 ~@35]/2",
C: "[~@7 gb5@23 ~ db5@2 b4@2 db5@3 ~ b4@2 ab4@2 b4@2 ~@2 ab4@2 gb4@2 ab4@4 gb4@4 e4@21 ~@16]/3",
})).s("gm_alto_sax").gain(0.78)
// chords · brass section
const brass_section_2 = note(`<
~@4 A@5 ~@5 B C D ~@5 B E F ~ G ~ H ~@5 I@2 J K ~@4 J K J K ~@5 L@2 K ~@6 M@2 ~ G ~ N ~@5 O@2 P@2 ~@4 O@2 Q@2 ~@8 O@2
R@2 ~@4 S@2 T@2 ~@4 U@2 O@2 ~@4 V@2 W@5 X
>`.pickRestart({
A: "[~@15 b5@2 ~@2 b5@2 a5@2 ab5@2 ~@2 ab5@2 ~@2 a5@2 gb5@43 ~@3 b5@2 ~@2 b5@2 a5@2 ab5@2 ~@2 ab5@2 ~@2 a5@2 gb5@57 ~@6]/5",
B: "~@27 [e4,b4]@5", C: "~ [e4,b4] ~@5 [e4,db5]@18 ~@2 [e4,b4]@5", D: "~ [e4,b4] ~@5 [e4,db5]@19 ~@6",
E: "~ [e4,b4] ~@5 [e4,db5]@18 ~@2 [e4,b4]@4 ~", F: "~ [e4,b4] ~@5 [e4,db5]@12 ~@13",
G: "~@15 ab5 ~@3 gb5@2 e5@2 db5@2 ~@7", H: "~@15 ab5 ~@3 gb5@2 e5@2 db5 ~@8",
I: "[~@27 [e4,ab4,b4] ~@3 b4 ~ db5@25 ~@6, ~@31 e4@27 ~@6]/2", J: "~@27 [e4,b4] ~@3 [e4,b4]", K: "~ [e4,db5]@26 ~@5",
L: "[~@27 [e4,db5]@14 ~@2 [e4,b4]@14 ~@2 [e4,b4] ~@3 [e4,b4]]/2", // Dbm E5
M: "[~@27 b4@2 ~@2 b4 ~ db5@25 ~@6, ~@27 e4 ~@3 e4@27 ~@6]/2", N: "~@15 ab5@2 ~@2 gb5@2 e5@2 db5@2 ~@7",
O: "[~@27 b4@2 ~@2 b4 ~ db5@26 ~@5, ~@27 e4 ~@3 e4@28 ~@5]/2",
P: "[~@27 [e4,b4] ~@3 b4@2 db5@26 ~@5, ~@31 e4@27 ~@6]/2", // E5
Q: "[~@27 [e4,b4]@2 ~@2 b4 ~ db5@16 ~@2 [b4,db5] ~ [e5,gb5] ~ [ab5,b5] ~ [db6,e6,gb6] ~ [ab6,b6,db7,e7] ~ gb7 ~@2, ~@31 e4@18 ~@15]/2", // E5 Bsus2 Esus2 Abm Gb7 Dbm7
R: "[~@27 [e4,b4] ~@3 b4 ~ db5@26 ~@5, ~@31 e4@28 ~@5]/2", // E5
S: "[~@27 b4@2 ~@2 b4@2 db5@28 ~@3, ~@27 e4 ~@3 e4@28 ~@5]/2",
T: "[~@27 b5@2 ~@2 b5@2 db6@26 ~@5, ~@27 e5 ~@3 e5@27 ~@6]/2",
U: "[~@27 [e4,b4] ~@3 b4@2 db5@26 ~@5, ~@31 e4@28 ~@5]/2", // E5
V: "[~@27 b4@2 ~@2 b4@2 db5@26 ~@5, ~@27 e4 ~@3 e4@27 ~@6]/2",
W: "[~@27 [e5,b5]@2 ~@2 b5 ~ db6@13 ~ b5@2 ~@2 b5@2 a5 ~ ab5@2 ~@2 ab5@2 ~@2 a5@2 gb5@45 ~ b5@2 ~@2 b5@2 a5@2 ab5@2 ~@2 ab5@2 ~@2 a5@2 gb5@23 ~@3 [gb5,b5,e6] ~ [gb5,b5,e6]@3, ~@31 e5@15 ~@114]/5", // E5 Esus2
X: "~@7 [gb5,b5,e6] ~ [gb5,b5,e6]@2 ~@9 [gb5,b5,e6]@4 ~ b5 ab5 [e5,gb5] [b4,db5] ab4 ~@2, ~@12 db6 ~@3", // Esus2 Bsus2
})).s("gm_brass_section").gain(0.71)
// other · electric guitar muted
const electric_guitar_muted = note(`<
~@8 A B C B D E F B G B@2 H B@4 I ~@4 A B C B D E F B G B@2 H B@4 J B C B D E F B G B@2 H B@4 I ~@4 A B C B D E F B G
B@2 H B@4 I ~@3 A B C B D E F B G B@2 H B@4 J B C B D E F B G B@2 H B@4 I ~@4
>`.pickRestart({
A: "~@31 e3", B: "~@5 e3 ~@5 e3 ~@5 e3 ~@5 db3 ~ b2@2 ~@4 e3", C: "~@5 e3 ~@5 e3 ~@5 e3 ~@5 b2 ~ db3 ~@5 e3",
D: "~@5 e3 ~@5 e3 ~@5 e3 ~@5 db3@2 b2@2 ~@4 e3", E: "~@5 e3 ~@5 e3 ~@5 e3 ~@5 db3@2 b2 ~@5 e3",
F: "~@5 e3 ~@5 e3 ~@5 e3 ~@5 db3 ~ b2 ~@5 e3", G: "~@5 e3 ~@5 b2@2 db3 ~ e3 ~@3 gb3@4 e3 ~ db3 ~@5 e3",
H: "~@5 e3 ~@5 e3 ~@5 e3 ~@5 b2@2 db3 ~@5 e3", I: "~@5 e3 ~@5 b2@2 db3@2 [e3,gb3] ~@3 gb3@4 e3@2 ~@7",
J: "~@5 e3 ~@5 b2@2 db3@2 [e3,gb3] ~@3 gb3@4 e3@2 ~@6 e3", // Esus2
})).s("gm_electric_guitar_muted").gain(0.4)
// drums · kick
const kick = s("bd").struct(`<
A B@9 C B@3 C B@3 C B@3 C B@4 C B D B@17 C B@3 C B@3 C B@3 C B@4 C B D B@54 E F
>`.pickRestart({
A: "~@27 x ~@4", B: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", C: "~@3 x ~@7 x ~@5 x ~ x ~@7 x ~@4",
D: "~@7 x ~@5 x ~@5 x ~@7 x ~@4", E: "~@3 x ~@7 x ~@7 x ~@12", F: "~@3 x ~@11 x ~@3 x ~@12",
})).gain(0.71)
// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
~@3 A@2 ~@2 A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@3 B ~ B ~ B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~
A@3 B ~ B ~ B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 ~@2 A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~ A@2
~@2 A C
>`.pickRestart({
A: "~@9 x ~@22", B: "~@25 x ~@6", C: "~ x ~@11 x ~@18",
// … 83 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.