0:00/0:00
// Fuori stagione — Pooh
// 113 bpm, 2/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 44) are rendered on a constant 2/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 186 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(113/2)
// 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, A@4 for four bars: edit a riff to change every repeat.
// chords · piano
const piano = note(`<
A@2 B C D@2 B C D@2 B C D@2 B C E F G@3 H I J K F L M N H I J K O P Q R S T U V W X Y@3 V Z AA AB V@2 AA AC V Z AA AB
V P Q R S T U AD AE AF AG@3 AH@2 AI@2 AJ AK AD@2 AL AI AJ AD AL AK AD AM@3 AH@2 AI@2 AJ AK AD@2 AL AI AJ AD AL AN AO
AP@4 AQ AR AS AT AQ AR AS F AQ AR AU F@2 AR AV F AQ AR AU F AW@7 AX@2 AY AZ@3 BA BB BC BD BE BF V BG BH BI BJ BK BL BM
AD BN BO BP AH BQ AI BI BR BM AD BK BS BI BJ BK BL BM AD BT BU@2 BV BW@7 ~
>`.pickRestart({
A: "[~@14 [a4,d5,f5]@4 ~@4 [a4,d5,f5]@3 ~@5 [a4,e5,g5] ~]/2", // Dm A7
B: "~@2 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [g4,bb4,d5,f5] ~", // A7 Gm7
C: "~@2 [g4,bb4,d5,f5] ~@3 [g4,bb4,d5,f5] ~@3 [bb4,d5,f5] ~@5, ~@5 g4 ~@2", // Gm7 Bb
D: "[~@2 [a4,e5,g5] ~@3 [a4,e5,g5]@5 ~@3 [a4,d5,f5]@4 ~@4 [a4,d5,f5]@3 ~@5 [a4,e5,g5] ~]/2", // A7 Dm A7
E: "~@2 [a4,e5,g5] ~@4 [a4,e5,g5]@5 ~@3 [a4,d5,f5]", F: "~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5]",
G: "[~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [f4,bb4,d5]@14 ~@2 [a4,db5,e5]@20 [a4,d5,f5]]/3", // Dm Bb A Dm
H: "~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,e5,g5]", // Dm A7
I: "~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [g4,bb4,d5,f5]", // A7 Gm7
J: "~@3 [g4,bb4,d5,f5] ~@3 [g4,bb4,d5,f5] ~@3 [g4,bb4,d5,f5] ~@3 [a4,db5,e5]", // Gm7 A
K: "~@3 [a4,db5,e5] ~@3 [a4,db5,e5] ~@3 [a4,db5,e5] ~@3 [a4,d5,f5]", // A Dm
L: "~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [g4,bb4,d5,f5]", // Dm Gm7
M: "~@3 [g4,bb4,d5,f5] ~@3 [g4,bb4,d5,f5] ~@3 [g4,bb4,d5,f5] ~@3 [a4,db5,e5,a5]", // Gm7 A
N: "~@3 [db5,e5,a5] ~@3 [a4,db5,e5,a5] ~@3 [db5,e5,a5] ~@3 [a4,d5,f5], ~@3 a4@2 ~@6 a4@2 ~@3", // A Dm
O: "~@3 [a4,d5,f5] ~@4 [a4,d5,f5] ~@3 [d5,f5] ~@3, ~@6 a4 ~", // Dm
P: "[a4,gb5] ~@3 [a4,c5,gb5] ~@3 [a4,c5,gb5] ~@3 [c5,gb5] ~@3, c5 ~@5 a4 ~", Q: "g4 bb4 [d5,g5]@2",
R: "f4 bb4 [d5,f5]@2", S: "e4 g4 [bb4,e5]@2", T: "d4 g4 [bb4,d5]@2", U: "a4@8 [db5,e5,a5]@7 ~",
V: "[a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3", W: "[a4,db5]@7 ~ [db5,e5,a5]@7 ~",
X: "[d5,f5,a5]@3 ~ [d5,f5,a5]@3 ~", Y: "[[d5,f5,a5]@7 ~ [d5,f5,a5]@3 ~ [g4,bb4,d5]@11 ~ [a4,db5,e5]@23 ~]/3",
Z: "[a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3", // A7
AA: "[g4,bb4,d5,f5] ~@3 [g4,bb4,d5,f5] ~@3 [g4,bb4,d5,f5] ~@3 [g4,bb4,d5,f5] ~@3", // Gm7
AB: "[a4,db5,e5] ~@3 [a4,db5,e5] ~@3 [a4,db5,e5] ~@3 [a4,db5,e5] ~@3", // A
AC: "[a4,db5,e5,a5] ~@3 [db5,e5,a5] ~@3 [a4,db5,e5,a5] ~@3 [db5,e5,a5] ~@3, ~@2 a4 ~@3 a4 ~", // A
AD: "~ [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@2", AE: "~ [a4,db5]@7 ~ [db5,e5,a5]@7",
AF: "~ [d5,f5,a5]@6 ~@2 [d5,f5,a5]@6 ~", AG: "[~ [d5,f5,a5]@7 ~ [d5,f5,a5]@4 [g4,bb4,d5]@11 ~ [a4,db5,e5]@23]/3",
AH: "~ [d5,f5,a5] ~@3 [d5,f5,a5] ~@3 [d5,f5,a5] ~@3 [d5,f5,a5] ~@2", // Dm
AI: "~ [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@2", // Edim
AJ: "~ [a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@2", // A7
AK: "~ [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@2", // Dbdim
AL: "~ [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@2", // Bb
AM: "[~ [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [g4,bb4,d5]@15 ~ [a4,db5,e5]@17 ~@2]/3", // Dm Gm A
AN: "~@2 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~", // Dbdim
AO: "~@2 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~", // Dm
AP: "[~@2 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [bb4,d5,f5]@14 ~@2 [a4,db5,e5]@19 ~ [a4,d5,f5]@4 ~@4 [a4,d5,f5]@4 ~@2]/4", // Dm Bb A Dm
AQ: "~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5]", // A7
AR: "~@3 [g4,bb4,d5,f5] ~@3 [g4,bb4,d5,f5] ~@3 [g4,bb4,d5,f5] ~@3 [g4,bb4,d5,f5]", // Gm7
AS: "~@7 [a4,e5,g5] ~@3 [a4,e5,g5]@5", AT: "~@3 [a4,d5,f5]@4 ~@4 [a4,d5,f5]@4 ~",
AU: "~@3 [a4,db5,e5] ~@3 [a4,db5,e5] ~@3 [a4,db5,e5] ~@3 [a4,db5,e5]", // A
AV: "~@3 [a4,db5,e5,a5] ~@3 [a4,db5,e5,a5] ~@3 [a4,db5,e5,a5] ~@3 [a4,db5,e5,a5]", // A
AW: "[~@3 [a4,gb5] ~@3 [a4,c5,gb5] ~@3 [a4,c5,gb5] ~@3 [c5,gb5] ~@3 g4@4 bb4@4 [d5,g5]@8 f4@4 bb4@4 [d5,f5]@8 e4@4 g4@4 ~ [bb4,e5]@8 d4@4 g4@4 [bb4,d5]@8 a4@8 [db5,e5,a5]@7 ~ [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3, ~@3 c5@2 ~@10 a4@2 ~@95]/7", // D Gbdim Cdim G5 Dm Bbdim Bb A …
AX: "[[a4,d5,f5]@2 ~@2 [a4,db5]@7 ~ [db5,e5,a5]@7 ~ [d5,f5,a5]@6 ~@2 [d5,f5,a5]@4]/2", // Dm A Dm
AY: "~@4 [d5,f5,a5]@7 ~ [d5,f5,a5]@3 ~", // Dm
AZ: "[[g4,bb4,d5]@11 ~ [a4,db5,e5]@22 ~@2 [d5,f5,a5] ~@3 [d5,f5,a5] ~@3 [d5,f5,a5] ~@3]/3", // Gm A Dm
BA: "[d5,f5,a5] ~@3 [d5,f5,a5] ~@3 [d5,f5,a5] ~@3 [d5,f5,a5] ~@3", // Dm
BB: "[d5,f5,a5] ~@3 [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@3", // Dm Edim
BC: "[bb4,e5,g5] ~@3 [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@3", // Edim
BD: "[bb4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3", // Edim A7
BE: "[a4,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3", // A7 Dbdim
BF: "[db5,e5,g5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3", // Dbdim Dm
BG: "[a4,d5,f5] ~@3 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@3", // Dm Bb
BH: "[bb4,d5,f5] ~@3 [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@4 [bb4,e5,g5] ~@2", // Bb Edim
BI: "~ [bb4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@3 [a4,e5,g5] ~@2", // Edim A7
BJ: "~ [a4,e5,g5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@2", // A7 Dm
BK: "~ [a4,d5,f5] ~@3 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@2", // Dm Bb
BL: "~ [bb4,d5,f5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@2", // Bb Dbdim
BM: "~ [db5,e5,g5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@2", BN: "~ [g4,bb4,d5]@15", BO: "~ [a4,db5,e5]@15",
BP: "~@5 [d5,f5,a5] ~@3 [d5,f5,a5] ~@3 [d5,f5,a5] ~@2", // Dm
BQ: "~ [d5,f5,a5] ~@3 [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@2", // Dm Edim
BR: "~ [a4,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@3 [db5,e5,g5] ~@2", // A7 Dbdim
BS: "~ [bb4,d5,f5] ~@3 [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@3 [bb4,e5,g5] ~@2", BT: "~ [bb4,d5,f5]@7",
BU: "[~@2 [a4,db5,e5]@19 ~ [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~]/2", // A Dm
BV: "~@2 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,d5,f5] ~@3 [a4,c5,f5]@2", // Dm F
BW: "[~@2 [d4,f4,bb4]@7 ~ [d4,f4,a4]@3 [bb3,d4,g4]@7 ~ [bb3,d4,g4]@3 ~ [d3,a3,d4,gb4]@72 ~@15]/7", // Bb Dm Gm D
})).s("gm_piano").gain(0.3).pan(0.4)
// bass · fretless bass
const bass = note(`<
~@8 A@2 ~@2 B@2 ~@2 C@6 ~@2 D@2 ~@2 E@2 ~@2 D@2 ~ F G H I J I K L@4 M N O P Q R@3 S T O U V W F G H I J I X Y@4 Z AA Z
AA AB AC AD AE Z AA AB AE Z AF AG@4 AH AI AH AI AJ AK AL AM AH AI AJ AN AH AO AP@5 ~@3 AQ ~@3 AR AS AT AS AU AV@3 AW
AX@2 AY AZ BA BB BC BD BE@4 BF@2 BG@3 BH@2 BI@2 BJ@2 BK@2 BL@7 BM BN@8 BO@6 BP@3 BQ BR@2 BS BT@8
>`.pickRestart({
A: "[~@7 d2@4 ~@5]/2", B: "[~@2 g2@2 a2@2 c3@2 a2@2 db3@3 ~ d3@6 ~@12]/2",
C: "[~@15 d2@23 ~ c2@3 ~ bb1@15 ~ a1@19 ~ d2@3 ~@14]/6", D: "[~@15 d2@8 ~@9]/2",
E: "[~@3 g2@2 a2@2 c3@2 a2@2 db3@3 ~ d3@6 ~@11]/2", F: "g2@15 ~", G: "f2@15 ~", H: "e2@15 ~", I: "d2@15 ~",
J: "db2@15 ~", K: "db2@11 ~ a1@3 ~", L: "[bb1@23 ~ a1@3 ~ g1@7 ~ g1@3 ~ a1@23 ~]/4", M: "d2@3 ~@3 d2 ~ d2@4 ~@4",
N: "~@4 a1@3 ~ c2@3 ~ a1 ~ c2 ~", O: "g1@6 d2 ~ g2@3 ~@5", P: "~@4 a1@3 ~ c2@2 ~@2 a1@2 db2 ~", Q: "d2@7 ~ d3@6 ~@2",
R: "[~@4 a1@3 ~ ab1@4 g1@7 ~ bb1@4 d2@4 db2@8 e2@4 a1@6 ~@2]/3", S: "d2@5 ~ a1@2 d2@7 ~", T: "~@2 a1@2 c2 ~ a1 c2",
U: "~@4 a2@4 c3@3 ~ a2 ~ db3@2", V: "d3@5 ~ a2@2 d3@6 e3@2", W: "gb3 gb2 ~@2", X: "~ db2@11 ~ a1@3",
Y: "[~ bb1@23 ~ a1@3 ~ g1@7 ~ g1@3 ~ a1@23]/4", Z: "~ bb1@5 ~ bb1 ~ bb1@5 ~ bb1", AA: "~ bb1@5 ~ bb1 ~ bb1@7",
AB: "~ a1@5 ~ a1 ~ a1@5 ~ a1", AC: "~ db2@5 ~ db2 ~ db2@7", AD: "~ d2@5 ~ d2 ~ d2@5 ~ d2", AE: "~ d2@5 ~ d2 ~ d2@7",
AF: "~ a1@5 ~ a1 ~ a1@7", AG: "[~ d2@27 ~ g1@15 ~ a1@19]/4", AH: "~@2 bb1@5 ~ bb1 ~ bb1@5 ~",
AI: "bb1 ~ bb1@5 ~ bb1 ~ bb1@6", AJ: "~@2 a1@5 ~ a1 ~ a1@5 ~", AK: "a1 ~ db2@5 ~ db2 ~ db2@6",
AL: "~@2 d2@5 ~ d2 ~ d2@5 ~", AM: "d2 ~ d2@5 ~ d2 ~ d2@6", AN: "a1 ~ d2@5 ~ d2 ~ d2@6", AO: "bb1 ~ a1@6 a1 ~ a1@6",
AP: "[~@2 d2@23 ~ c2@3 ~ bb1@15 ~ a1@19 ~ d2@6 ~@8]/5", AQ: "~@3 d2@8 ~@5", AR: "~@3 d2@3 ~@3 d2 ~ d2@4 ~",
AS: "~@7 a1@3 ~ c2@3 ~ a1", AT: "~ c2 ~ g1@6 d2 ~ g2@3 ~@2", AU: "~ db2 ~ d2@7 ~ d3@5",
AV: "[~@7 a1@3 ~ ab1@4 g1@7 ~ bb1@4 d2@4 db2@7 ~ e2@4 a1@5]/3", AW: "~@3 d2@6 a1@2 d2@5",
AX: "[~@7 a1@3 ~ c2@2 ~@2 a1@2 c2 ~ g1@6 d2 ~ g2@3 ~@2]/2", AY: "~@7 a2@4 c3@3 ~ a2", AZ: "~ db3@2 d3@5 ~ a2@2 d3@5",
BA: "~ e3@2 gb3@4 gb2@4 ~@5", BB: "~@3 g2@13", BC: "~@3 f2@13", BD: "~@3 e2@13",
BE: "[~@4 d2@15 ~ db2@15 ~ d2@15 ~ db2@11 ~]/4", BF: "[a1@3 ~ bb1@23 ~ a1@3 ~]/2",
BG: "[g1@7 ~ g1@3 ~ a1@23 ~ bb1@6 bb1 ~ bb1@4]/3", BH: "[~@2 bb1 ~ bb1@6 bb1 ~ bb1@8 bb1@6 bb1 ~ bb1@4]/2",
BI: "[~@2 bb1 ~ bb1@6 bb1 ~ bb1@8 a1@5 ~ a1 ~ a1@4]/2", BJ: "[~@2 a1 ~ db2@5 ~ db2 ~ db2@7 ~ d2@5 ~ d2 ~ d2@4]/2",
BK: "[~@2 d2 ~ d2@6 d2 ~ d2@8 bb1@6 bb1 ~ bb1@4]/2",
BL: "[~@3 bb1 ~ bb1@5 ~ bb1 ~ bb1@7 ~ a1@5 ~ a1 ~ a1@5 ~ a1 ~ d2@5 ~ d2 ~ d2@7 ~ bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~ a1@6 a1 ~ a1@8 d2@27]/7",
BM: "~ g1@15",
BN: "[~ a1@19 ~ bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~ bb1@7 ~ bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~ bb1@7 ~ a1@5 ~ a1 ~ a1@5 ~ a1 ~ db2@5 ~ db2 ~ db2@7 ~ d2@5 ~ d2 ~ d2@3]/8",
BO: "[~@3 d2 ~ d2@5 ~ d2 ~ d2@7 ~ bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~ bb1@7 ~ a1@5 ~ a1 ~ a1@5 ~ a1 ~ d2@5 ~ d2 ~ d2@7 ~ bb1@5 ~ bb1 ~ bb1@3]/6",
BP: "[~@3 bb1 ~ a1@6 a1 ~ a1@8 d2@23 ~@2 c2@2]/3", BQ: "~ bb1@7", BR: "[~@2 a1@19 ~ d2@10]/2",
BS: "~@2 d2@3 ~ d2@3 ~ d2@3 ~ c2@2", BT: "[~@2 bb1@7 ~ a1@3 g1@7 ~ g1@3 ~ d2@91 ~@12]/8",
})).s("gm_fretless_bass").gain(0.28)
// chords · pad halo
const pad_halo = note(`<
~@35 A B C D E F E G@2 ~@16 A B C D H I J K@2 ~@2 L@5 M N@3 O P I Q M R@8 P M N@3 O P S Q M T@5 ~@21 U@3 V@6 ~@2 W@8
X@8 Y Z@7 AA@8 AB@3 AC@3 AD@8
>`.pickRestart({
A: "[bb3,d4,g4]", B: "[bb3,d4,f4]", C: "[g3,bb3,e4]", D: "[g3,bb3,d4]", E: "[e3,a3,db4]", F: "[f3,a3,d4]",
G: "[[f3,bb3,d4]@23 ~@9]/2", H: "[a3,db4,e4]", I: "~ [a3,d4,f4]@15", J: "~ [a3,db4,e4]@15",
K: "[~ [f3,bb3,d4]@23 ~@8]/2", L: "[~ [d4,f4,a4]@32 [c4,e4,g4]@32 [a3,e4,g4]@15]/5", M: "~ [db4,e4,g4]@15",
N: "[~ [a3,d4,f4]@32 [bb3,d4,f4]@15]/3", O: "~ [c4,e4,g4]@15", P: "~ [a3,e4,g4]@15", Q: "~ [bb3,d4,f4]@15",
R: "[~ [a3,d4,f4]@28 [bb3,d4,g4]@16 [a3,db4,e4]@20 [d4,f4,a4]@32 [c4,e4,g4]@31]/8", S: "~ [d4,f4,a4]@7",
T: "[~@2 [d4,f4,a4]@28 [d4,f4,bb4]@16 [db4,e4,a4]@19 ~@15]/5", // Dm Bb A
U: "[~@3 [bb3,d4,g4]@16 [bb3,d4,f4]@16 [g3,bb3,e4]@13]/3", // Gm Bb Edim
V: "[~@4 [g3,bb3,d4]@16 [a3,db4,e4]@16 [a3,d4,f4]@16 [a3,db4,e4]@16 [f3,bb3,d4]@23 ~@5]/6", // Gm A Dm A Bb
W: "[~ [d4,f4,a4]@8 [c4,e4,g4]@8 [a3,e4,g4]@4 [db4,e4,g4]@4 [a3,d4,f4]@7]/8", // Dm C A7 Dbdim Dm
X: "[~@4 [bb3,d4,f4]@16 [c4,e4,g4]@16 ~ [a3,e4,g4]@15 [a3,d4,f4]@16 ~ [bb3,d4,f4]@16 [db4,e4,g4]@16 [a3,d4,f4]@27]/8", // Bb C A7 Dm Bb Dbdim Dm
Y: "~ [bb3,d4,g4]@15", Z: "[~ [a3,db4,e4]@20 [d4,f4,a4]@32 [c4,e4,g4]@32 [a3,e4,g4]@16 [db4,e4,g4]@11]/7",
AA: "[~@5 [a3,d4,f4]@32 [bb3,d4,f4]@16 [c4,e4,g4]@16 [a3,e4,g4]@16 [d4,f4,a4]@16 [bb3,d4,f4]@16 [db4,e4,g4]@11]/8", // Dm Bb C A7 Dm Bb Dbdim
AB: "[~@5 [d4,f4,a4]@28 ~ [d4,f4,bb4]@14]/3", AC: "[~ [db4,e4,a4]@10 [d4,f4,a4]@13]/3",
AD: "[~@2 [d4,f4,bb4]@11 [d4,g4,bb4]@12 [d4,gb4,a4,d5]@89 ~@14]/8", // Bb Gm D
})).s("gm_pad_halo").gain(0.09)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@5 A B C@2 A B C@2 A B D@6 E F G@2 E F G@2 E F H@3 I J K L M ~@7 N O P Q N O P Q N O P Q R I J K L M ~@7 S@2 T@3 U
S@2 V T@2 S V U ~@4 S@2 T@3 U S@2 V T@2 S V W ~@8 X Y Z AA@2 Y Z AA@2 Y Z AA@2 Y Z AB@6 AC AD ~@6 AE AF AG AH@2 AI AJ
AF AK AL@2 AM@3 AN ~@3 AO@3 AP@2 AQ AR@3 AS AP AM@3 AN ~@13
>`.pickRestart({
A: "~ [a3,d4,f4]@2 ~@5", B: "~ [a3,e4,g4]@2 ~@5",
C: "[~@2 [bb3,d4,f4]@4 ~@8 [db4,e4,a4]@4 [db4,e4,a4]@2 [db4,e4,a4]@4 [db4,e4,a4]@2 [db4,e4,a4]@3 ~@3]/2", // Bb A
D: "[~@2 [bb3,d4,f4]@4 ~@8 [db4,e4,a4]@4 ~@3 e4@4 [db4,e4,a4]@2 [db4,e4,a4]@3 ~ [d4,f4,a4]@24 ~@4 [bb3,d4,f4]@14 ~@2 [a3,db4,e4]@19 ~@2, ~@9 a4 [db4,a4]@2 ~@36, ~@19 [db4,e4]@2 ~@75]/6", // Bb A Dm Bb A Gbm Dbm
E: "~@3 [a3,d4,f4]@4 ~@9", F: "~@3 [a3,e4,g4]@4 ~@9",
G: "[~@3 [bb3,d4,f4]@4 ~@8 [db4,e4,a4]@4 [db4,e4,a4]@2 [db4,e4,a4]@4 [db4,e4,a4]@2 [db4,e4,a4]@3 ~@2]/2", // Bb A
H: "[~@3 [bb3,d4,f4]@4 ~@8 [db4,e4,a4]@4 [db4,e4,a4]@2 [db4,e4,a4]@4 ~@3 db4@3 f3@4 a3@4 ~ d4@4 a3@3 ~, ~@25 [e4,a4]@2 [e4,a4]@3 ~@18, ~@13 db4 ~@10]/3", // Bb A A5
I: "gb3@4 a3@4 c4@4 a3@3 ~", J: "g3 bb3 d4 bb3", K: "f3 bb3 d4 bb3", L: "e3 bb3 d4 bb3", M: "d3@4 bb3@4 d4@4 bb3@3 ~",
N: "~ [a3,d4,f4] ~@2", O: "~ [a3,e4,g4] ~@2", P: "~ [bb3,d4,f4] ~@2",
Q: "[db4,e4,a4]@4 [db4,e4,a4]@2 [db4,e4,a4]@4 [db4,e4,a4]@2 [db4,e4,a4]@3 ~", R: "f3@4 a3@4 d4@4 a3@3 ~",
S: "~ d4@4 f4@4 a4@4 f4@3", T: "~ c4@4 e4@4 g4@4 e4@3", U: "~ db4@4 e4@4 g4@4 e4@3", V: "~ bb3@4 d4@4 f4@4 d4@3",
W: "~ db4@2 e4@2 g4@2 e4", X: "~@7 [a3,d4,f4]@4 ~@5", Y: "~@7 [a3,e4,g4]@4 ~@5", Z: "~@7 [bb3,d4,f4]@4 ~@5",
AA: "[~@3 [db4,e4,a4]@4 [db4,e4,a4]@2 [db4,e4,a4]@4 [db4,e4,a4]@2 [db4,e4,a4]@3 ~@5 [a3,d4,f4]@4 ~@5]/2", // A Dm
AB: "[~@3 [db4,e4,a4]@4 [db4,e4,a4]@2 [db4,e4,a4]@4 [db4,e4,a4]@2 [db4,e4,a4]@3 ~ f3@4 a3@4 d4@4 a3@3 ~ gb3@4 a3@4 c4@3 ~ a3@3 ~ g3@4 bb3@4 d4@4 bb3@4 f3@4 bb3@4 d4@4 bb3@4 e3@4 bb3@5 d4@4]/6", // A
AC: "bb3 d3 bb3 d4", AD: "bb3@3 ~@13", AE: "~ d4 f4 a4", AF: "f4 d4 f4 a4", AG: "f4 c4 e4 g4", AH: "e4 c4 e4 g4",
AI: "e4@3 ~ db4@4 e4@4 g4@4", AJ: "e4@3 ~ d4@4 f4@4 a4@4", AK: "f4@3 ~ bb3@4 d4@4 f4@4",
AL: "[d4@4 c4@4 e4@4 ~ g4@4 e4@4 c4@4 e4@4 g4@3]/2",
AM: "[~ e4@4 d4@4 f4@4 a4@4 f4@4 bb3@4 d4@4 f4@4 d4@3 ~ db4@4 e4@4 g4@3]/3", AN: "~ e4@3 ~@12",
AO: "[~@5 d4@4 f4@4 a4@4 f4@4 d4@4 f4@4 a4@4 f4@4 c4@4 e4@4 g4@3]/3", AP: "~ e4@4 c4@4 e4@4 g4@3",
AQ: "~ e4@3 ~ db4@4 e4@4 g4@3", AR: "[~ e4@4 d4@4 f4@4 a4@4 f4@4 d4@4 f4@4 a4@4 f4@3 ~ bb3@4 d4@4 f4@3]/3",
AS: "~ d4@4 c4@4 e4@4 g4@3",
})).s("gm_electric_guitar_clean").gain(0.2).pan(0.7)
// other · distortion guitar
const distortion_guitar = note(`<
~@13 A B C D@5 ~@14 E F G H I H J K@4 ~@4 L M L N O ~@3 P Q E F G H I H R S@4 ~@14 T@3 U V@3 ~@11 W@5 ~@11 X@5 ~@2 Y@3
Z@7 AA@2 AB@3 ~@13 AC@2 AD AE@4 ~@11 AF@2 AG AH@3 AI@6 ~@2
>`.pickRestart({
A: "~@2 d4 ~ d4 ~ f4 ~ f4 ~ d4 ~@5", B: "~@2 c4 ~ c4 ~ c4 ~ c4 ~ d4 ~@5", C: "~@2 d4 ~ d4 ~ f4 ~ f4 ~ d4 ~@3 a4@2",
D: "[~@2 f4@2 g4@2 ~ d4@2 e4@2 c4@3 ~ d4@23 ~ c4@4 bb3@16 a3@18 ~@3]/5", E: "g4", F: "f4", G: "e4", H: "d4",
I: "db4@15 ~", J: "db4@3 a3", K: "[bb3@23 ~ a3@4 g3@7 ~ g3@4 a3@23 ~]/4", L: "~@2 a4 d5 f5 d5 c5 ~",
M: "d5 ~@3 d5@11 ~", N: "g5@8 e5@2 d5 ~ c5@2 ~@2", O: "d5@15 ~", P: "~ d5@3", Q: "d5 c5 a4!3 gb4 d4 gb4",
R: "~ db4@12 a3@3", S: "[~ bb3@23 ~ a3@4 g3@7 ~ g3@4 a3@23]/4",
T: "[~@5 d3@2 f3@2 a3@2 c4@2 d4@2 e4@2 f4@2 a4@2 c5@2 d5@2 e5@2 f5@2 g5@12 d5@2 bb4@2 a4@3]/3",
U: "~ a4@2 g4@2 f4@2 g4@2 ~ a4@4 f4@2", V: "[e4@2 d4@31 ~@15]/3", W: "[~@2 d4@22 ~@2 c4@4 bb3@15 ~ a3@20 ~@14]/5",
X: "[~@7 d4 ~ d4 ~ f4 ~ f4 ~ d4@7 ~ c4 ~ c4 ~ c4 ~ c4 ~ d4@7 ~ d4 ~ d4 ~ f4 ~ f4 ~ d4@2 ~@2 d5@4 c5@2 bb4@2 a4@2 g4@2 f4@3 ~ d4@12 ~]/5",
Y: "[~@15 a4@2 d5@2 f5@2 d5@2 a4@2 g4@2 a4@2 g4@2 f4@2 d4@2 g4@2 gb4@2 e4@2 d4@2 g3@2 gb3@2 e3]/3",
Z: "[~ d3@2 [g3,g4]@16 [f3,f4]@16 [e3,e4]@16 ~ [d3,d4]@16 [db3,db4]@15 ~ [d3,d4]@16 [db3,db4]@12]/7", // G F E D Db D Db
AA: "[[a2,a3]@4 bb3@23 ~ a3@4]/2", AB: "[g3@7 ~ g3@3 ~ a3@23 ~@13]/3", AC: "[~@9 d5@16 c5@2 ~@2 d5@3]/2",
AD: "~ c5@2 ~@2 d5@2 ~@2 c5@2 ~@2 d5@3", AE: "[~ c5@2 ~@2 a5@3 ~ c5@2 ~@2 a5@37 ~@14]/4",
AF: "[~@9 d3@2 f3@2 a3@2 c4@2 d4@2 e4@2 f4@2 a4@2 c5@2 ~ d5@2 e5@2]/2", AG: "f5 g5@6 d5",
AH: "[bb4@2 a4@4 a4@2 g4@2 f4@2 g4@2 a4@4 f4@2 e4@2 d4@23 ~ c4@2]/3",
AI: "[~@2 bb3@7 ~ a3@3 g3@7 ~ g3@3 ~ gb3@59 ~@12]/6",
})).s("gm_distortion_guitar").gain(0.57).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
~@16 A ~ B@2 ~@23 C D ~@2 E ~ E ~ E ~ F ~ E ~ E ~ E G H G H I H I J K L ~ M@15 K N O P@15 Q R S T ~@8 U ~ U ~ U ~ V ~
U ~ U ~ U W X@2 Y Z Y Z Y E AA ~ E@9 AB@7 I@2 AB@16 AC Q AD P Q L ~@6
>`.pickRestart({
A: "~@15 x", B: "~@11 x ~@4", C: "~@3 x", D: "~ x!2 ~", E: "~ x ~ x", F: "~ x!3", G: "x ~@2 x", H: "x",
I: "~ x ~@11 x ~@2", J: "~ x ~@14", K: "~ x ~@7 x ~@3 x ~@2", L: "~@5 x ~@3 x ~@6", M: "~ x ~@7 x ~@6",
N: "~@9 x ~@3 x ~@2", O: "~@5 x ~@2", P: "~ x ~@3 x ~@2", Q: "~ x ~@3 x ~ x", R: "~@5 x ~ x", S: "~@3 x ~ x ~@2",
T: "~ x ~@6", U: "~@7 x ~@7 x", V: "~@7 x ~@3 x ~@3 x", W: "~@3 x ~@11 x", X: "~@3 x ~@12", Y: "x!2 ~@2",
Z: "~ x ~@2", AA: "x ~ x!2", AB: "~@5 x ~@7 x ~@2", AC: "~ x ~@5 x", AD: "~@3 x ~@4",
})).gain(0.48)
// … 51 more lines
More by Pooh
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.