0:00/0:00
// Frogg No. 2 — The Brothers Four
// 120 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 141 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 · fretless bass · "FRETLESS"
const bass = note(`<
A@4 B@3 C@2 D E@3 F@2 G H I@2 J@2 K L@2 M N O P Q@3 R@2 S T@2 M U V W X@3 Y Z@2 AA@3 AB@3 AC AD@2 AE@3 AF@3 AG@3 AH
AI@2 AJ@3 AK@3 AL@3 AM@3 AN@3 AO AP@2 AQ@3 AR@3 AS@3 AT AU@2 AV@3 AW AX@2 AY AZ@2 BA@3 BB BC@2 BD@3 BE@3 BF@3 BG BC@2
BH AI@2 BI@3 BJ@3 BK@3 BL BM@2 ~@2
>`.pickRestart({
A: "[~@14 d2@27 f2@3 a2@2 ~ d3@2 ~@4 a3@2 ~ f3@3 ~@3 d2@15 ~@3 d2@20 ~ f2 ~@2 d3@2 ~@4 d2@15 ~@3]/4",
B: "[d2@2 ~@4 d2@22 ~@2 d2 c2@14 ~@3 c2@20 ~ c2 ~@2 c3@2 ~@4 bb1@14 ~@4]/3",
C: "[bb1 ~@5 bb1@20 ~@4 bb1 a1@15 ~@2 a1@16]/2", D: "~@2 g2@2 ~@4 a2@2 ~@4 d2@15 ~@3",
E: "[d2@2 ~@4 d2@22 ~@2 c2@15 ~@3 c2@20 ~ c2 ~@2 c3@2 ~@4 bb1@14 ~@4]/3",
F: "[bb1 ~@5 bb1@20 ~@4 g2 a1@15 ~@2 a1@16]/2", G: "~ g2 ~@2 a2 ~@2 a1@8 ~", H: "g2 ~@5 a2@13 ~@11 a1@2",
I: "[d2@13 ~@3 d2@20 ~ f2 ~@2 d3@2 ~@4 d2 bb1@14 ~@3]/2", J: "[bb1 ~@5 c2@20 c2@3 ~ a1@17 ~ f2@4 ~@2 d2@10]/2",
K: "~@2 c3@2 ~@4 d3@2 ~@4 d2 bb1@13 ~@4", L: "[bb1 ~@5 bb1@20 bb1@2 ~@2 d2 e2@15 ~@2 e2@16]/2",
M: "~@2 d3@2 ~@4 e3@2 ~@4 e2 c2@13 ~@4", N: "c2 ~@5 c2@20 ~@4 c2@2", O: "a1 f2@13 ~@2 f2@16",
P: "~@2 e3@2 ~@4 f3@2 ~@4 g2@15 ~@3",
Q: "[g2@2 ~@4 a1@18 ~ a1@4 ~ a1 d2@14 ~@3 d2@20 ~ f2 ~@2 d3@2 ~@4 d2 bb1@14 ~@3]/3",
R: "[bb1 ~@5 c2@20 c2@3 ~ f2@16 ~@2 f2@8 d2@8]/2", S: "~@2 c3@2 ~@4 d3@2 ~@4 bb1@15 ~@3",
T: "[bb1 ~@2 bb1@11 ~ e2@8 ~ e2@8]/2", U: "c2 ~@5 c2@20 ~@4 c2 [a1,c2]", V: "f2@7 ~ f2@8",
W: "~@2 e3@2 ~@4 f3@2 ~@4 f2 d2@14 ~@3", X: "[d2@15 ~@15 d2 g2@13 ~@4 g2 ~@5 e2@17 ~ d3@2 ~ e2@2 ~ c2@15 ~@3]/3",
Y: "c2@2 ~@4 c2@20 c2@3 ~ c2 a1", Z: "[f2@12 ~@4 f2@2 ~@4 f2@17 ~ e3@2 ~ f3 ~@2 bb1@15 ~@3]/2",
AA: "[bb1@2 ~@5 bb1@22 ~@2 e2@14 ~@4 e2@2 ~@4 e2@17 ~ d3@2 ~ g2@2 ~ g2@15 ~@2, ~@76 e3 ~@19]/3",
AB: "[~ g2@2 ~@4 a1@20 a1@3 ~ d2@14 ~@4 d2@2 ~@4 d2@17 ~ f2@2 ~ d3@2 ~ d2@15 ~@2]/3",
AC: "~ d2@2 ~@4 d2@17 d2@5 ~@2 [d2,e2]", AD: "[e2@13 ~@4 e2@2 ~@4 e2@17 ~ d3@2 ~ e2@2 ~ c2@15 ~@2, ~@44 e3 ~@19]/2",
AE: "[~ c2@2 ~@4 c2@20 c2@3 ~@2 f2@12 ~@5 f2@2 ~@4 f2@16 ~@2 e3@2 ~ f3@2 ~ bb1@15 ~@2, ~@31 a1@2 ~@63]/3",
AF: "[~ bb1@2 ~@4 bb1@22 ~@2 e2@14 ~@4 e2@2 ~@4 e2@17 ~ d3@2 ~ [e2,e3] ~@2 c2@14 ~@3, ~@79 e2 ~@16]/3", // E
AG: "[~ c2@2 ~@4 a1@23 ~ bb1@14 ~@4 bb1@2 ~@4 bb1@16 ~@2 f2@2 ~ bb2@2 ~ g2@14 ~@3, ~@79 bb1 ~@16]/3",
AH: "~ g2@2 ~@4 a1@22 ~@2 [a1,d2]", AI: "[d2@13 ~@4 d2@2 ~@4 d2@17 ~ f2@2 ~ a2@2 ~ bb1@15 ~@2]/2",
AJ: "[~ bb1@2 ~@4 c2@19 c2@4 ~ f2@14 ~@4 f2@2 ~@4 f2@17 ~ e3@2 ~ f3@2 ~ bb1@15 ~@2]/3",
AK: "[~ bb1@2 ~@4 bb1@23 ~ e2@14 ~@4 e2@2 ~@4 e2@17 ~ d3@2 ~ e2@2 ~ c2@14 ~@3, ~@79 e2 ~@16]/3",
AL: "[~ c2@2 ~@4 c2@23 ~ f2@13 ~@5 f2@2 ~@4 f2@17 ~ e3@2 ~ f3@2 ~ d2@15 ~@2, ~@31 a1 ~@64]/3",
AM: "[~ d2@2 ~@4 d2@16 d2@6 ~@2 e2@14 ~@4 e2@2 ~@4 e2@17 ~ d3@2 ~ e2@2 ~ c2@14 ~@3, ~@79 e2 ~@16]/3",
AN: "[~ c2@2 ~@4 c2@21 c2@2 ~@2 a1@2 f2@10 ~@5 f2@2 ~@4 f2@17 ~ e3@2 ~ f3@2 ~ bb1@15 ~@2, ~@31 c2@2 ~@63]/3",
AO: "~ bb1@2 ~@4 bb1@23 ~ [bb1,g2]", AP: "[e2@12 ~@5 e2@2 ~@4 e2@17 ~ d3@2 ~ bb2@2 ~ c2@15 ~@2]/2",
AQ: "[~ c2@2 ~@4 a1@21 a1@2 ~ d2@14 ~@4 d2@2 ~@4 d2@17 ~ f2 ~@2 a2 ~@2 d2@15 ~@2]/3",
AR: "[~ d2@2 ~@4 d2@20 d2@3 ~ e2@14 ~@4 e2@2 ~@4 e2@17 ~ d3@2 ~ e2@2 ~ e2 c2@13 ~@3]/3",
AS: "[~ c2@2 ~@4 c2@21 c2@2 ~ c2@2 f2@11 ~@5 f2@2 ~@4 f2@17 ~ e3@2 ~ f3@2 ~ bb1@15 ~@2]/3",
AT: "~ bb1@2 ~@4 bb1@22 ~@2 bb1", AU: "[e2@13 ~@4 e2@2 ~@4 e2@17 ~ d3@2 ~ e3@2 ~ a1 c2@4 a1@9 ~@3]/2",
AV: "[~ a1@2 ~@4 a1@23 ~ d2@3 bb1@10 ~@5 bb1@2 ~@4 bb1@17 ~ f2 ~@2 bb2@2 ~ e2@15 ~@2]/3", AW: "~ e2@2 ~@4 a1@23 ~ a1",
AX: "[d2@13 ~@4 d2@2 ~@4 d2@16 ~@2 f2@2 ~ a2@2 ~ d2 bb1@14 ~@2]/2", AY: "~ bb1@2 ~@4 c2@19 c2@3 ~@2 c2",
AZ: "[a1@4 f2@9 ~@4 f2@2 ~@4 f2@2 c2@2 d2@13 ~ c3 ~@2 d3@2 ~ d2 bb1@14 ~@2, ~@48 a1 ~@15]/2",
BA: "[~ bb1@2 ~@4 bb1@21 bb1 ~@2 e2@14 ~@4 e2 ~@5 e2@17 ~ d3@2 ~ e2@2 ~ c2@15 ~@2]/3",
BB: "~ c2@2 ~@4 c2@20 c2@3 ~ c2", BC: "[f2@13 ~@4 f2@2 ~@4 f2@17 ~ e3@2 ~ f3@2 ~ g2@15 ~@2]/2",
BD: "[~ g2@2 ~@4 a1@20 a1@3 ~ d2@14 ~@4 d2@2 ~@4 d2@17 ~ f2@2 ~ a2@2 ~ bb1@15 ~@2]/3",
BE: "[~ bb1@2 ~@4 c2@20 c2@2 ~@2 f2@14 ~@4 f2@2 ~@4 f2@17 ~ e3 ~@2 f3@2 ~ bb1@15 ~@2]/3",
BF: "[~ bb1@2 ~@4 bb1@22 ~@2 e2@14 ~@4 e2@2 ~@4 e2@17 ~ d3@2 ~ e3 e2@2 e2 c2@14 ~@2]/3",
BG: "~ c2@2 ~@4 c2@22 ~@2 c2", BH: "~ g2@2 ~@4 a1@21 a1@2 ~ a1",
BI: "[~ bb1@2 ~@4 c2@23 ~ e2@9 e2 a1@3 ~@5 f2@2 ~@4 f2@17 ~ e3@2 ~ f3@2 ~ a1 d2@3 bb1@11 ~@2, ~@41 c2 ~@54]/3",
BJ: "[~ bb1@2 ~@4 bb1@22 ~@2 e2@13 ~@5 e2@2 ~@4 e2@17 ~ d3@2 ~ e3 e2 ~ e2 c2@14 ~@2]/3",
BK: "[~ c2@2 ~@4 c2@18 c2@5 ~ f2@14 ~@4 f2@2 ~@4 f2@17 ~@2 e3@2 ~ f3@2 ~ g2@15 ~]/3", BL: "~@2 g2@2 ~@4 a1@21 a1@2 ~",
BM: "[a1 d2@13 ~@4 d2@2 ~@4 d2@17 ~ f2@2 ~ a2@2 ~ d2@16]/2",
})).s("gm_fretless_bass").gain(0.26)
// chords · piano · "A.PIANO 1"
const piano = note(`<
~ A@6 B@2 C@4 D@2 E F@3 G@2 H I@2 J K@2 L@4 M@2 N@3 O P@2 Q R S T@2 U@6 V@3 W@3 X@6 Y@3 Z@6 AA@3 AB@6 AC@3 AD@3 AE@6
AC@3 AF@6 AG@3 AH AI@5 AJ@3 AK@6 AL@3 AM@3 AN@3 AO@6 AP@3 AQ@3 ~
>`.pickRestart({
A: "[~@30 d3@13 ~@5 d5@30 ~@42 a3@6 [a3,d4]@11 ~@7 g4@27 ~@3 a4@17 ~, ~@30 [a3,d4,f4]@53 ~ a3@36 ~@6 d3 ~@65, ~@45 d4@14 ~@37, ~@16 a4@5 ~@11, ~@36 f4@6 f4@5 ~@17]/6", // D5 Dm
B: "[f4@25 ~@5 e4@26 ~@8]/2",
C: "[~@8 e4@6 ~@42 a3@6 c3@18 g4@27 ~@3 a4@17 ~, ~@2 a3@12 ~@6 a3@36 ~@6 [g3,c4,e4]@47 ~@19, ~@5 db4@9 ~@12 d4@28 ~@74, ~@16 a4@15 ~@33, ~@22 f4@9 ~@33]/4", // C
D: "[f4@25 ~@5 d4 d4@31 ~@2, ~@30 [g3,g4,b4]@33 ~]/2", E: "~@4 e4@3 [g3,a3,db4,e4]@8 ~, ~ a3@6 ~@9, ~@5 db4@9 ~@18",
F: "[~@6 [a3,db4,e4,g4]@13 ~@11 d4@15 ~@3 d5@30 ~@18]/3", G: "[f4@10 ~@5 e4@11 ~@6]/2",
H: "~@8 a4@6 c5 ~@17, ~@2 d4@13 ~@17, ~@5 f4@10 ~@17", I: "[f4@25 ~@5 e3@13 ~@21]/2",
J: "~@4 bb4 ~@11, ~@2 e4@9 ~@21, ~@5 g4@6 ~@21", K: "[g4@12 ~@3 a3@10 ~@7]/2",
L: "[~@8 c5@5 ~@19 d5@4 ~@44 d5@30 ~@18, ~ f4@6 ~@3 d4@8 ~@13 f3@12 ~@21, ~@5 a4@9 ~@12 g4@10 ~@92]/4",
M: "[f4@19 ~@11 [e4,f4,a4,c5]@26 ~@8]/2", // Fmaj7
N: "[~@4 a4@3 ~@9 bb4@14 ~ [d4,e4,g4,bb4]@16 ~, ~ d4@6 [f3,bb3,d4]@23 ~@18, ~@5 f4@9 ~@82]/3", // Em7b5 Bb
O: "~@4 bb4 ~@11, ~ e4@4 ~@11, ~@5 g4@5 ~@22", P: "[g4@25 ~@5 a4@30 ~@4]/2",
Q: "~@8 c5@6 [c4,e4,f4,a4]@11 ~@7, ~ f4@6 ~@9, ~@5 a4@9 ~@18", R: "[d4,gb4,a4,c5]@18 ~@12 d5 ~",
S: "~@10 g4@6 bb4 ~@15, ~@4 d4@13 ~@15",
T: "[~@14 c6@6 ~@30 g4@8 ~@4 c5 ~, ~@10 g3@19 ~@3, ~@13 bb3@16 ~@3, ~@16 e4@13 ~@3]/2",
U: "[~@16 a4@25 ~@35 f4@12 bb4@5 ~ e5@6 ~@12 g4@25 ~@23 bb4@3 ~@15 e4@8 ~@4 d5@2, ~@4 c4@37 ~@5 bb2@12 bb3@30 ~@12 bb3@37 ~@17 g4@9 ~@29, ~@10 e4@31 ~@11 f3@23 ~@67 g3@11 ~@39, ~@64 d4@25 ~@17 d4@31 ~@11 d4@13 ~@31]/6",
V: "[~@16 f4@12 d4@12 a3@2 ~@4 d6@6 ~@31 a4@5 d5@6 d5 ~, ~@4 a3@35 ~@13 a3@36 ~@8, ~@5 d4@8 ~@16 c4@15 ~@4, ~@8 gb4@3 ~]/3",
W: "[~@16 g4@25 ~@5 c6@6 ~@30 g4@8 ~@4 a4@2, ~@4 bb3@37 ~@12 g3@38 ~@5, ~@10 d4@31 ~@17 bb3@32 ~@6, ~@65 e4@26 ~@5]/3",
X: "[~@16 a4@25 ~@36 f4@12 bb4@6 e5@6 ~@12 g4@25 ~@5 e3 ~@11 bb3@6 e4@2 ~@16 e4@10 ~@2 bb4, ~@4 c4@37 ~@5 bb2@12 bb3@30 ~@13 bb3@37 ~@54, ~@11 e4@31 ~@10 f3@23 ~@74 g3@14 ~@29, ~@65 d4@24 ~@18 d4@31 ~@54]/6",
Y: "[~@17 d4@12 bb3@11 ~ f3@5 ~ bb2 ~@17 bb4@4 ~@14 e4@10 ~@2 a4, ~@5 f3@35 ~@19 g4@10 ~@27, ~@11 bb3@17 ~@25 d4@13 ~@30]/3",
Z: "[~@17 f4@11 ~ d4@12 a3@4 ~@2 bb5@6 ~@12 d4@6 ~@12 g4@7 ~@5 f5@6 ~@12 a4@25 ~@35 f4@12 bb4@6 e5, ~@5 a3@35 ~@13 f3@18 ~@36 e4@31 ~@11 f3@23 ~@20, ~@11 d4@16 ~@32 a3@12 ~@30 c4@37 ~@5 bb2@12 bb3@30 ~@7, ~@161 d4@25 ~@6]/6",
AA: "[~@17 g4@25 ~@5 e3 ~@35 g4@10 ~@2 a4, ~@5 bb3@37 ~@11 g3@40 ~@3, ~@11 d4@31 ~@17 bb3@33 ~@4, ~@65 e4@27 ~@4]/3",
AB: "[~@17 a4@25 ~@5 d6@6 ~@30 a4@5 ~ d5@6 e5@6 ~@12 g4@25 ~@5 e3 ~@35 g4@9 ~@3 c5, ~@5 c4@37 ~@11 a3@35 ~@13 bb3@37 ~@11 g3@39 ~@4, ~@11 e4@31 ~@17 c4@29 ~@19 d4@31 ~@17 bb3@33 ~@4, ~@65 gb4@23 ~@73 e4@27 ~@4]/6",
AC: "[~@17 a4@25 ~@35 f4@12 bb4@6 bb4, ~@5 c4@37 ~@5 bb2@12 bb3@30 ~@7, ~@11 e4@31 ~@11 f3@23 ~@20, ~@65 d4@25 ~@6]/3",
AD: "[~@17 g4@24 ~@6 c6@6 ~@6 bb3@6 e4@2 ~@16 e4@9 ~@3 d5, ~@5 bb3@37 ~@11 g3@14 ~@29, ~@11 d4@31 ~@54]/3",
AE: "[~@17 f4@11 ~ d4@12 a3@4 ~@2 d6@6 ~@30 a4@8 ~@4 e5@6 ~@12 g4@25 ~@5 e3 ~@35 g4@9 ~@3 c5, ~@5 a3@35 ~@13 a3@38 ~@10 bb3@37 ~@11 g3@39 ~@4, ~@11 d4@16 ~@32 c4@32 ~@16 d4@31 ~@17 bb3@33 ~@4, ~@65 gb4@26 ~@70 e4@27 ~@4]/6",
AF: "[~@17 g4@25 ~@5 a5 ~@11 g3@6 c4@2 ~@16 e4@10 ~@2 d5@3 ~@15 d4@12 bb3@11 ~ f3@5 ~ e6@6 ~@6 d4@6 g4@2 ~@16 e4@10 ~@2 a4, ~@5 bb3@37 ~@11 e3@14 ~@34 f3@35 ~@56, ~@11 d4@31 ~@65 bb3@17 ~@25 bb3@14 ~@29]/6",
AG: "[~@17 f4@12 d4@12 a3@4 ~@2 d3 ~@17 d4@6 ~@12 g4@7 ~@5 c5, ~@5 a3@35 ~@13 f3@18 ~@25, ~@11 d4@16 ~@32 a3@12 ~@25]/3",
AH: "~@17 a4@8 ~@7, ~@5 c4@20 ~@7, ~@11 e4@14 ~@7",
AI: "[~@15 d6 ~@35 f4@9 ~@3 e5@6 ~@12 g4@24 ~@6 c6@6 ~@30 g4@8 ~@4 c5, ~@21 f3@39 ~@57 g3@38 ~@5, ~@27 a3@33 ~@9 bb3@36 ~@18 bb3@32 ~@5, ~@33 d4@27 ~@15 d4@31 ~@23 e4@26 ~@5]/5",
AJ: "[~@17 a4@25 ~@23 bb4@3 ~@15 e4@8 ~@4 d5, ~@5 c4@37 ~@5 g3@11 ~ g4@9 ~@28, ~@11 e4@31 ~@11 d4@13 ~@30]/3",
AK: "[~@17 f4@12 d4@12 a3@4 ~@2 bb5@6 ~@12 d4@6 ~@12 g4@8 ~@4 f5@6 ~@12 a4@25 ~@5 bb5@6 ~@30 f4@10 ~@2 e5, ~@5 a3@35 ~@13 f3@18 ~@36 e4@31 ~@17 a3@33 ~@4, ~@11 d4@16 ~@32 a3@12 ~@30 c4@37 ~@11 f3@40 ~@3, ~@161 d4@27 ~@4]/6",
AL: "[~@17 g4@25 ~@5 e3 ~@35 g4@10 ~@2 c5, ~@5 bb3@37 ~@11 g3@40 ~@3, ~@11 d4@31 ~@17 bb3@33 ~@4, ~@65 e4@27 ~@4]/3",
AM: "[~@17 a4@25 ~@23 bb4@3 ~@15 e4@9 ~@3 a4, ~@5 c4@37 ~@5 g3@11 ~ g4@9 ~@28, ~@11 e4@31 ~@11 d4@13 ~@30]/3",
AN: "[~@17 f4@12 d4@12 a3@4 ~@2 bb5@6 ~@12 d4@6 ~@12 g4@10 ~@2 e5, ~@5 a3@35 ~@13 f3@18 ~@25, ~@11 d4@16 ~@32 a3@12 ~@25]/3",
AO: "[~@6 bb3@3 ~@2 a3 ~@6 a4@24 ~@5 a2 ~@35 f4@10 ~@2 e5@6 ~@12 g4@25 ~@6 e3 ~@34 g4@6 c5@6 ~, ~@53 f3@40 ~@57 g3@36 ~@6, ~@59 a3@33 ~@9 bb3@37 ~@18 bb3@30 ~@6, ~@65 d4@27 ~@15 d4@31 ~@23 e4@24 ~@7]/6",
AP: "[f5@5 ~@12 a4@25 ~@24 bb4@5 ~@13 e4@9 ~@3, ~@5 c4@37 ~@6 g3@11 ~ g4@11 ~@25, ~@12 e4@31 ~@11 d4@13 ~@29]/3",
AQ: "[a4 ~@17 f4@12 d4@12 a3@4 ~@8 a3@19 ~@23, ~@6 a3@35 ~@7 d3@11 ~@37, ~@3 d4@4 ~@17]/3",
})).s("gm_piano").gain(0.31)
// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
~@3 A@6 B@7 C@3 D@8 E@4 F@2 G@6 H@6 I@6 J@6 K@7 L@3 M@8 N@6 O@4 P@7 Q@5 R@6 S@2 T@6 U@4 V@2 W@7 X@3 Y Z AA AB@6 AC@4 ~
>`.pickRestart({
A: "[~@14 [d3,f3,a3]@44 ~@5 [e3,c4]@39 ~@7 [d3,a3,bb3]@43 ~@7 e3@33, ~@31 g3@19 ~@46]/6", // Dm C Bbmaj7
B: "[~@14 [d3,f3,a3]@41 ~@7 [e3,g3,c4]@39 ~@9 [d3,a3]@42 ~@6 [e3,a3]@66]/7", // Dm C D5 A5
C: "[~@39 bb3@8 ~, ~@31 [d3,f3,a3]@64 ~]/3", // Dm
D: "[~@6 [g3,bb3]@18 ~@31 d3@14 ~@10 a3@41 ~@55 c3@81, ~@3 c3@32 ~@93, ~@3 e3@24 ~@36 e3@47 ~@18, ~@29 a3@41 ~@56 bb3@91 ~@39, ~@34 f3@37 ~@56 g3@91 ~@38]/8", // Gm
E: "[~@13 [d3,bb3]@20 ~@4 [db3,e3]@17 ~@56 bb3@15 ~@3, ~@13 g3@41 ~@8 d3@63 ~@3, ~@37 a3@88 ~@3, ~@63 f3@63 ~@2]/4", // Gm Dbm
F: "[~@5 [g3,bb3]@18 ~@33 d3@8, ~@5 e3@49 ~@10, ~@29 f3@35]/2", // Gm
G: "[~@7 f3@21 ~@52 f3@16, ~@14 bb3@143 ~@2 a3@33, ~@14 d3@91 ~@6 c3@81, ~@31 e3@65, ~@62 g3@93 ~@37]/6",
H: "[~@14 [gb3,a3,c4]@41 ~@55 c3@82, ~@14 d3@47 ~@2 [g3,bb3]@89 ~@40, ~@63 d3@41 ~@88, ~@5 e3@7]/6", // Gbdim Gm
I: "[~@62 g3@47 ~@2 d3@18 ~@5 a3@58, ~@14 bb3@95 ~ g3@42 ~@40, ~@62 e3@44 ~@4 bb3@18 ~@6 e3@19 ~@39]/6",
J: "[~@13 [gb3,a3]@40 ~@57 c3@82, ~@31 e3@65, ~@62 g3@89 ~@41, ~@63 bb3@89 ~@40]/6", // Gbm
K: "[~@111 c3@16 ~@30 f3@44 ~@6 g3@17, ~@14 bb3@115 ~@28 bb3@67, ~@7 d3@46 ~@59, ~@62 [e3,g3]@89 ~@73]/7", // Em
L: "[~@26 bb3@5 ~, ~@3 a3@44 ~, ~@31 [d3,f3]@64 ~]/3", // Dm
M: "[~@6 [g3,bb3]@18 ~@5 a3@44 ~@150 f3@33, ~@6 [c3,e3]@67 ~@5 bb3@141 ~@37, ~@29 f3@92 ~@5 e3@130, ~@78 d3@91 ~@6 c3@81]/8", // Gm C
N: "[~@14 [gb3,a3]@39 ~@58 c3@81, ~@31 e3@65, ~@62 [g3,bb3]@91 ~@39]/6", // Gbm Gm
O: "[~@110 c3@17 ~, ~@7 bb3@57, ~@7 d3@45 ~@12, ~@63 g3@65, ~ e3]/4",
P: "[~@30 f3@44 ~@5 a3@40 ~@56 c3@49, ~@15 d3@70 ~@27, ~@18 [g3,bb3]@13 ~]/7", // Gm
Q: "[~ a3@41 ~@53 [e3,g3]@65, ~ f3@89 ~@70, ~@23 [d3,bb3]@47 ~@10]/5", // Em Gm
R: "[~@6 e3@19 ~@53 e3@21 ~@3 [db3,e3]@22 ~@51 bb3@17, ~@31 f3@41 ~@6 g3@46 ~@3 [d3,f3]@65, ~@33 bb3@64 ~@95]/6", // Dbm Dm
S: "[~@7 bb3@17 ~@32 d3@8, ~@3 e3@25 ~@4, ~@6 g3@17 ~@41, ~@7 c3@57]/2",
T: "[~@16 f3@42 ~@101 [f3,a3]@33, ~@15 a3@43 ~@4 e3@130, ~@16 bb3@137 ~@39, ~@62 g3@89 ~@41, ~@37 c3@27]/6", // F
U: "[~@15 [d3,bb3]@19 ~@5 e3@17 ~@54 bb3@17 ~, ~@15 g3@42 ~@5 [d3,f3]@65 ~, ~@38 a3@89 ~]/4", // Gm Dm
V: "[~@6 [g3,bb3]@19 ~@5 [f3,a3]@34, ~@3 e3@29]/2", // Gm F
W: "[~@14 [f3,a3]@44 ~@4 ab3 ~@96 [f3,a3]@41 ~@7 [d3,g3]@17, ~@14 d3@92 ~@6 c3@87 ~@25, ~@63 e3@136 ~@25, ~@9 g3@13 ~@10]/7", // F G5
X: "[~@7 e3@19 ~@53 bb3@16 ~, ~@7 a3@89, ~@31 d3@64 ~, ~ f3@2]/3", Y: "~@3 [e3,bb3]@12 ~, ~@6 c3@21 ~@5", Z: "~ c3@3",
AA: "~@7 a3@9", AB: "[~@127 [f3,a3]@43 ~@5 [d3,g3,bb3]@17, ~@30 e3@139 ~@23, ~@30 g3@89 ~@73, ~@80 c3@89 ~@23]/6",
AC: "[~@7 db3@19 ~@6 [d3,f3]@67 ~@29, ~@7 a3@92 ~@29]/4", // Dm
})).s("gm_string_ensemble_2").gain(0.24)
// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note(`<
~@6 A@4 ~@2 B@5 ~@2 C ~ D@4 E@3 ~@3 F@3 ~@9 G@6 H@6 I@4 ~@2 J@4 ~@5 K@8 ~@2 L@3 ~@2 M@8 ~@3 N@4 O@3 P@6 ~@3 Q ~@2 R@7
~ S T ~@2 U V@6 ~@2 W ~@4
>`.pickRestart({
A: "[~@15 f3@41 ~@7 [db3,g3,a3]@43 ~@22]/4", B: "[~@15 f3@40 ~@7 db3@72 ~@26, ~@13 bb3@41 ~@7 g3@73 ~@26]/5",
C: "~ ab3@2 ~@29", D: "[~@16 f3@39 ~@73, ~@14 bb3@45 ~@69, ~@15 d3@90 ~@23]/4",
E: "[~@33 f3@34 ~@29, ~@31 [e3,a3]@36 ~@29]/3", F: "[~@29 a3@42 ~@25, ~@5 c3@65 ~@26]/3",
G: "[~@39 d3@47 ~@10, ~@31 a3@43 ~@118, ~@4 f3@11 ~@9]/6",
H: "[~@5 db3@19 ~@5 f3@42 ~@6 c4@40 ~@9 d3@43 ~@23, ~@29 d3@96 ~@67]/6", I: "[~@4 f3@11 ~, ~@15 a3@21 ~@28]/4",
J: "[~@5 [db3,a3]@18 ~@6 d3@69 ~@5 e3@19 ~@6, ~@102 db3@19 ~@7]/4", // Gbm
K: "[~@30 g3@92 ~@4 a3@43 ~@5 [d3,c4]@41 ~@7 d3@34]/8", L: "[~ f3@88 ~@7, a3@7 ~@9]/3",
M: "[~@6 a3@69 ~@4 gb3@41 ~@6 e3@130, ~@6 db3@20 ~@52 c4@41 ~@137]/8",
N: "[~@16 c3@15 ~@7 [db3,g3]@19 ~@5 d3@66, ~@15 a3@43 ~@70, ~@15 db3@2 ~@111]/4", O: "[~ a3@15]/3",
P: "[~@18 f3@19 ~@3 d3@45 ~@11, ~@31 a3@42 ~@119]/6", Q: "~@3 db3@9 ~@4", R: "[~@7 c3@61 ~@10 bb3@140 ~@6]/7",
S: "~@7 bb3@9", T: "~@7 db3@20 ~@5", U: "~@3 g3@13",
V: "[~@12 f3@26 ~@12 bb3@133 ~@9, ~@8 e3@30 ~@10 d3@91 ~@53, ~@9 a3@30 ~@9 f3@43 ~@101]/6", W: "~@4 e3@9 ~@3",
})).s("gm_string_ensemble_2").gain(0.08)
// drums · kick
const kick = s("bd").struct(`<
~ A B C D B C D B C D B C D B C E B C D B C D B C D B C D B C D B C D B C D B C F G C D G C H I J K I J K I J K I J K
I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J
K I J K I J K I J K I J K I J K I B L M B ~@2
>`.pickRestart({
A: "~@21 x ~@2 x ~@5 x ~", B: "~ x", C: "~@7 x ~@8", D: "x ~@2 x ~@11 x", E: "x ~@2 x ~@8 x ~@2 x", F: "x ~@14 x",
G: "~@8 x ~@2 x ~@4", H: "x ~@5 x ~@24 x", I: "~@17 x ~@5 x ~@8", J: "~@15 x ~@16", K: "~ x ~@5 x ~@23 x",
L: "~ x ~@2 x ~@11", M: "x ~@8 x ~@2 x ~@3",
})).gain(0.29)
// drums · rim
const rim = s("rim").struct(`<
~@2 A B C A B C A B C A B C A D ~ A B C A B C A B C A B C A B C A B C A B C A B ~@101
>`.pickRestart({
A: "~@5 x ~@10", B: "~ x ~@11 x ~@2", C: "~@9 x ~@6", D: "~ x ~@14",
})).gain(0.29)
// drums · snare
const snare = s("sd").struct(`<
~@15 A B ~@23 C D E F D E F G H I G H I G H I G H I G H I G H I G H I G H I G H I G H I G H I G H I G H I G H I G H I
G H I G H I G H I G H I G H I G H I G H I G H I G H I G H I G H I G H I G H I G H I G J K L M ~@2
>`.pickRestart({
A: "~@13 x ~@2", B: "~@12 x ~@5 x ~@2 x ~@10", C: "~@3 x ~@2 x ~@25", D: "~@5 x ~@10", E: "~ x ~@11 x ~@2",
F: "~@9 x ~@6", G: "~@11 x ~@20", H: "~@3 x ~@23 x ~@4", I: "~@19 x ~@12", J: "~@3 x ~@24 x ~@3", K: "~@5 x ~@2",
L: "~@3 x ~@4", M: "~ x ~@6",
})).gain(0.26)
// drums · low tom
const low_tom = s("lt").struct("<~ [~@9 x ~@2 x ~@2 x ~@16] ~@14 [~@15 x ~@8 x ~@7] ~@23 [~@24 x ~@2 x ~@4] ~@100>")
.gain(0.29)
// drums · hihat
const hihat = s("hh").struct(`<
~ A B C D B C D B C D B C D B C E B C D B C D B C D B C D B C D B C D B C D B C F B G D B G H I J K I J K I J K I J K
I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J K I J
K I J K I J K I J K I J K I J K I L C D M ~@2
>`.pickRestart({
A: "~@9 x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~", B: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
C: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2", D: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", E: "~@3 x ~@11 x", F: "x ~@2 x ~@11 x",
G: "~ x ~@5 x ~@2 x ~@2 x ~@2", H: "x ~@5 x ~@5 x ~@5 x ~@6 x ~@5 x", I: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@2",
J: "~@3 x ~@11 x ~@5 x ~@5 x ~@4", K: "~ x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x", L: "~@3 x ~@12 x ~@5 x ~@5 x ~@3",
M: "~@2 x ~@5 x ~@2 x ~@4",
})).gain(0.21)
// … 22 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.