0:00/0:00
// Hummingbird — Seals & Crofts
// 93 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (3/4 at bar 1, 1/8 at bar 26, 4/4 at bar 26, 2/4 at bar 49, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 8 "Guitar2" acoustic guitar nylon (copy of ch 2 "Guitar" acoustic guitar nylon); ch 8 "Guitar2" acoustic guitar steel (copy of ch 2 "Guitar" acoustic guitar steel)
// note: Full arrangement: all 104 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(93/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.
// other · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note("<A@3 B@2 C D@7 E@4 F@8 ~@66 G@4 H I J@3 K@3 L>".pickRestart({
A: "[~@14 [d#4,f#4]@7 [e4,g4]@7 [d#4,f#4]@7 ~@2 d4@3 ~@4 d4@3 ~@4 d4@3 ~@4 c#4@3 ~@4 c#4@3 ~@4 c#4@3 ~@4 c4@3 ~@4 c4@3 ~@4 c4@3, ~@12 b2@23 f#4@4 ~ g3@4 ~@3 g3@4 ~@3 g3@4 ~@3 g3@4 ~@3 g3@4 ~@3 g3@4 ~@3 g3@4 ~@3 g3@4 ~@3, ~@42 f#4@4 ~@3 f#4@4 ~@3 f#4@4 ~@3 f#4@4 ~@3 f#4@4 ~@3 e4@4 ~@3 e4@4 ~@3 e4@4 ~]/3", // D#m Em D#m
B: "[~@4 b3@3 ~@4 b3@3 ~@4 b3@3 ~@2 g4@7 a4@7 g4@7 f#4@7 g4@7 f#4@6, g3@4 ~@3 g3@4 ~@3 g3@4 ~@3 g3@4 ~@39, ~@2 e4@4 ~@3 e4@4 ~@3 e4@4 ~@3 [c4,e4]@21 [b3,d#4]@20]/2", // C B
C: "~ e5@3 ~@4 e5@3 ~@4 e5@3 ~@4 d5@3 ~@4 d5@3, ~@4 b4@4 ~@3 b4@4 ~@3 b4@4 ~@3 a4@4 ~@3, ~@6 g4@4 ~@3 g4@4 ~@3 g4@4 ~@3 g4@4 ~",
D: "[~@2 g4@3 ~@2 a4@3 g4@2 ~@2 e4@3 ~@2 g4@3 ~@4 g4@3 ~@2 b3@3 ~@4 b3@3 ~@2 c#4@3 ~@2 g4@3 ~@4 d4@3 ~@4 d4@3 ~@2 g3@3 ~@2 c4@3 ~@4 a#3@3 ~@2 d4@3 ~@4 d4@3 ~@2 g3@3 ~@4 g3@3 ~@2 b3@3 ~@2 e4@3 ~@4 [a#3,c#4]@7 d4@7 ~ [c#4,e4]@7 ~@2 e4@3 ~@2 f#4@3 ~@4 f#4@3 ~@2 b3@3 ~@4 b3@3 ~@2 e4@3 ~@2 f#4@3 ~@4 f#4@3 ~@4 f#4@3 ~@2 b3@3 ~@2 d#4@3 b3@2 ~@2 d#4@3 ~@2 b3@3 ~@4 b3@3, a4@4 ~ d5@4 ~@3 g4@4 ~ b3@4 ~ d#4@4 ~@3 d4@4 ~ g4@4 ~@3 g4@4 ~@8 b3@4 ~ c4@4 ~@3 c4@4 ~ d4@4 ~@3 d4@4 ~@8 g3@4 ~@8 b3@4 ~@6 g3@4 ~ b3@4 ~@22 f#4@4 ~@6 e4@4 ~@3 e4@4 ~ f#4@4 ~@3 f#4@4 ~@6 e4@4 ~@3 d#4@4 ~@3 d#4@4 ~ f#4@4 ~@8 f#4@4 ~ e4@4 ~@3, ~@24 b3@4 ~@8 c#4@4 ~@6 b3@4 ~ c#4@4 ~@5 g3@4 ~@11 g3@4 ~@3 g3@4 ~ a#3@4 ~@3 a#3@4 ~ d4@4 ~@3 e4@4 ~@8 g3@4 ~@25 b3@4 ~@3 b3@4 ~@8 e4@4 ~@6 b3@4 ~@3 b3@4 ~@3 b3@4 ~@13 b3@4 ~@8 f#4@4 ~]/7", // A#m C#m
E: "[~@2 f#4@3 ~@4 f#4@3 ~@2 f#4@3 ~@2 g3@3 ~@4 g3@3 ~@2 d4@3 ~@4 d4@3 ~@2 f#4@3 ~@4 f#4@3 ~@2 g3@3 ~@4 g3@3 ~@2 a3@3 ~@4 g3@3 ~@2 c#4@3 ~@2 f#4@3 ~@4 f#4@3 ~@2 a3@3 ~@2 c#4@2 a3@3 e4@2 c#4@3 a3@2 ~@2 c#4@3 ~@2 e4@3 ~@2 a3@3, e4@4 ~ b3@4 ~@3 g3@4 ~@8 d4@4 ~@6 g3@4 ~@3 g3@4 ~@3 g3@4 ~@8 a3@4 ~@8 c#4@4 ~@6 g3@4 ~@3 g3@4 ~@25 a3@4 ~ c#4@4 ~, ~@7 d4@4 ~@6 d4@4 ~ f#4@4 ~@3 f#4@4 ~@3 f#4@4 ~@6 d4@4 ~@3 c#4@4 ~ c#4@4 ~@3 c#4@4 ~ e4@4 ~@3 f#4@4 ~@6 c#4@4 ~@3 c#4@4 ~ e4@4 ~@10 f#4@4 ~@11]/4",
F: "[~@4 a3@3 ~@2 c#4@3 ~@2 f4@3 ~@4 f4@3 ~@2 g#3@3 ~@2 c#4@3 ~@2 f4@3 ~@4 f4@3 ~@2 g#3@3 ~@4 a3@3 ~@2 d4@3 ~@2 f#4@3 ~@4 f#4@3 ~@2 a3@3 ~@2 d4@3 ~@2 f#4@3 ~@4 g#3@3 ~@2 b3@3 ~@2 d#4@3 ~@4 d#4@3 ~@2 g#3@3 ~@2 b3@3 ~@4 b3@3 ~@2 d#4@3 ~@2 g#3@3 ~@4 g#3@3 ~@2 b3@3 ~@2 d#4@3 ~@2 g#3@3 ~@4 g#3@3 ~@2 c#4@3 ~@4 c#4@2 ~@6 e5@62 ~@7, e4@4 ~@3 f4@4 ~@6 c#4@4 ~@3 c#4@4 ~ f4@4 ~@6 c#4@4 ~@3 c#4@4 ~ f#4@4 ~@3 f#4@4 ~@6 d4@4 ~@3 d4@4 ~ f#4@4 ~@6 d4@4 ~@3 d#4@4 ~@8 g#3@4 ~@11 g#3@4 ~@3 g#3@4 ~ b3@4 ~@3 b3@4 ~@6 g#3@4 ~ b3@4 ~@3 c#4@4 ~@6 g#3@4 ~@5 e4@62 ~@10, ~@2 c#4@4 ~@6 g#3@4 ~@3 g#3@4 ~@11 g#3@4 ~@3 g#3@4 ~@8 d4@4 ~@6 a3@4 ~@3 a3@4 ~@11 a3@4 ~@3 a3@4 ~@6 g#3@4 ~ b3@4 ~@3 b3@4 ~ d#4@4 ~@3 d#4@4 ~@11 d#4@4 ~@3 d#4@4 ~@11 e4@4 ~@3 e4@4 ~@3 e4@4 ~ c#4@9 ~@65, ~@185 g#4@62 ~@9, ~@93 c#5@31 ~@4]/8",
G: "[~@30 e4@10 e4@6 e4@2 g#3@5 a3@2 ~ b3@3 a3@4 a3@7 c#4@6 a3@2 c#4@2 a3@2 c#4@4 c#4@2 ~ e4@6 b4@2 e5@2 b4@2 e5@5 b4@2 g#4@6 b4@2 b4@2 b4@2 a4@4 ~ e4@3, ~@44 d#4 ~@17 a4 ~]/4",
H: "~@3 a3@4 a3@2 a3@2 a3@2 a3@2 a3@2 ~ c#4@2 ~ d#4@2 e4@5 ~ f#5@2 ~, ~@2 e4@2 ~@13 b3@2 ~@9 b4@2 ~@2",
I: "f#5@3 f#5@2 e5@2 e5@2 b4@2 b4@2 e4@4 b4 b4@2 ~ a4@4 ~ e4@4 e4@2, ~@25 a4@2 ~@5",
J: "[a3@4 a3@2 a3@2 b3 b3@2 c#4@2 c#4@2 d#4@2 d#4@2 e4@11 e4@6 e4@2 g#3@5 a3@2 b3@4 a3@4 a3@8 c#4@5 a3@2 ~@2 a3@2 c#4@4 c#4@2 d#4@2 e4@5 b4@2 e5@2 b4@2 e5@5, ~@69 c#4@2 ~@25]/3",
K: "[~ b4@2 g#4@5 b4@2 b4@2 b4@2 a4@4 a4@2 e4@3 e4@2 a3@4 a3@2 a3@2 a3@2 a3@2 a3@2 b3@2 c#4@2 ~ e4@6 b4@2 f#5@2 f#5@4 f#5@2 e5 e5@2 b4@2 b4@2 e4@4 b4@2 b4@2 a4@4 a4@2 e4@4 ~ a3@4 a3@2 a3@2 b3@2, ~@43 d#4@2 ~@40 e4@2 ~@9]/3",
L: "b3@2 c#4@2 ~ d#4@2 d#4@2 ~@23, ~@2 c#4 ~@13",
})).s("gm_acoustic_guitar_nylon").gain(0.15).pan(0)
// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
~@24 A@2 B C D@2 E@6 F@2 G@6 H@2 I@2 J@5 K@3 L@5 M@5 N O@3 P Q@3 R S T U V W X Y Z AA AB AC AD AE AF@2 AG@2 ~@12
>`.pickRestart({
A: "[~@31 [c4,f4,a4]@8 [c4,f4,a4]@8 [c4,f4,a4]@8 ~ [c4,f4,a4]@8]/2", // F
B: "[c4,f4,a4]@8 [c4,f4,a4]@8 ~ [c4,f4,a4]@8 [c4,f4,a4]@7", // F
C: "~ [f4,a4]@4 [f4,a4]@4 [f4,a4]@4 [f4,a4]@4 ~ a4@2 a#4@2 a4@2 [c4,f4]@4 a4@2 a#4@2", // F F5
D: "[a4@2 [b3,g4]@4 [c4,a4]@4 [b3,g4]@4 ~ [a3,c4,f4]@20 [f4,a4,e5]@4 [f4,a4,e5]@4 [f4,a4,e5]@4 ~ [f4,a4,e5]@4 e5@2 f5@2 e5@2 [f4,c5]@4 e5@2]/2", // Em F Em F Fmaj7 F5
E: "[f5@2 e5@2 [g4,b4]@4 [a4,c5]@4 [g4,b4]@4 [c4,f4,a4]@20 [g3,a#3,d4,f4]@4 [g3,a#3,d4,f4]@8 [a3,c4,f4]@20 [g3,a#3,d4,f4]@4 [g3,a#3,d4,f4]@8 [a3,c4,f4]@20 [g3,a#3,d4,f4]@4 [g3,a#3,d4,f4]@8 [a3,c4,f4]@20 [g3,a#3,d4,f4]@4 [g3,a#3,d4,f4]@8 [a3,c4,f4]@20 [f4,a4]@4 [f4,a4]@4 ~ [f4,a4]@4 [f4,a4]@4 a4@2 a#4@2 a4@2 [c4,f4]@4 a4]/6", // G Am G F Gm7 F Gm7 F …
F: "[~ a#4@2 a4@2 [b3,g4]@4 [c4,a4]@4 ~ [b3,g4]@4 [a3,c4,f4]@20 [f4,a4,e5]@4 ~ [f4,a4,e5]@4 [f4,a4,e5]@4 [f4,a4,e5]@4 e5@2 f5@2 e5@2 [f4,c5]@3]/2", // Em F Em F Fmaj7 F5
G: "[~ e5@2 f5@2 e5@2 [g4,b4]@4 ~ [a4,c5]@4 [g4,b4]@4 [f4,a4]@4 ~@17 [f4,a#4,d5,f5]@4 [g4,a#4,d5,f5]@8 [c5,d5]@4 [c5,d5]@16 ~ [g4,a#4,d5,f5]@4 [g4,a#4,d5,f5]@8 c5@4 d5@8 ~@8 [g4,a#4,d5,f5]@4 [g4,a#4,d5,f5]@8 [f4,a4,c5,d5]@20 [d4,f4,a#4,c5]@4 [f4,a#4,c5]@4 [f4,a4,c5,d5]@20 ~@4 [f4,a4]@4 [f4,a4]@4 [f4,a4]@4 [f4,a4]@4 a4@2 a#4@2 a4@2, ~@20 c4@21 ~@12 [f4,a4]@21 ~@12 [f4,a4]@20 ~@36 d4@8 ~@42]/6", // G Am G F A# Gm7 Csus2 Gm7 …
H: "[[c4,f4]@2 a4 a#4 a4 [b3,g4]@2 [c4,a4]@2 [b3,g4]@2 [a3,c4,f4]@10 [f4,a4,e5]@2 [f4,a4,e5]@2 [f4,a4,e5]@2 [f4,a4,e5]@2 e5 f5 e5]/2", // F5 Em F Em F Fmaj7
I: "[[f4,c5]@2 e5 f5 e5 [g4,b4]@2 [a4,c5]@2 [g4,b4]@2 [c4,f4,a4]@10 [f4,g4,a#4,d5]@2 [f4,g4,a#4,c5]@4 [a3,d4,f#4]@5]/2", // F5 G Am G F Gm7 Fsus4 D
J: "[~ [f#3,a3]@4 [f#3,a3,d4]@4 [d4,f#4,a4]@4 g4@4 f#4@4 e4@4 d4@4 [a4,d5,f#5,a5]@16 [a#4,d5,f5,a#5]@16 [c5,e5,g5,c6]@16 [d5,f5,a5,d6]@3, ~@13 [a3,d4]@8 [f#3,a3]@8 ~@51]/5", // F#m D A# C Dm D5 F#m
K: "[~ [c5,f5,a5,c6]@12 [a4,d5,f5,a5]@16 [c5,e5,a5,c6]@8 g5@8 [d5,f#5,a5,d6]@3]/3", // F Dm Am D
L: "[~ [d4,f#4,a4]@4 [f#4,a4,d5]@4 [d5,f#5,a5]@4 g5@4 f#5@4 e5@4 d5@4 [a4,d5,f#5,a5]@16 [a#4,d5,f5,a#5]@16 [c5,e5,g5,c6]@16 [d5,f5,a5,d6]@3, ~@13 [a4,d5]@8 [f#4,a4]@8 ~@51]/5", // D A# C Dm D5 F#m
M: "[~@2 [c5,f5,a5,c6]@24 [a4,d5,f5,a5]@32 [c5,e5,a5,c6]@16 g5@16 [d5,f#5,a5,d6]@24 g3@2 f#3@2 ~ e3@4 ~@4 a3@4 d4@4 a3@4 [d4,f#4]@4 a3@4 [d4,f#4]@4 ~ a3@4 [f4,a4]@4, ~@123 f#3@33 ~@4, ~@131 f#4@8 ~@21]/5", // F Dm Am D F
N: "[f4,a4]@4 [f4,a4]@4 [f4,a4]@4 a4@2 a#4@2 a4@2 [c4,f4]@4 ~ a4@2 a#4@2 a4@2 [b3,g4]@3", // F F5 Em
O: "[~ [c4,a4]@4 [b3,g4]@4 [a3,c4,f4]@21 [f4,a4,e5]@4 [f4,a4,e5]@4 [f4,a4,e5]@4 [f4,a4,e5]@4 e5@2 f5@2 ~ e5@2 [f4,c5]@4 e5@2 f5@2 e5@2 [g4,b4]@4 [a4,c5]@4 [g4,b4]@4 [c4,f4]@4 ~@17, ~@25 a4@7]/3", // F Em F Fmaj7 F5 G Am G …
P: "[g3,a#3,d4,f4] [g3,a#3,d4,f4]@2 f4 f4@4, ~@3 [a3,c4]@3 ~@2", Q: "[g3,a#3,d4,f4] [g3,a#3,d4,f4]@2 [a3,c4,f4]@5",
R: "[f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 a4 a#4 a4 [c4,f4]@2 a4 a#4 a4", S: "[b3,g4] [c4,a4] [b3,g4] [a3,c4,f4]@5",
T: "[f4,a4,e5]@2 [f4,a4,e5]@2 [f4,a4,e5]@2 [f4,a4,e5]@2 e5 f5 e5 [f4,c5]@2 e5 f5 e5", // Fmaj7 F5
U: "[g4,b4] [a4,c5] [g4,b4] [c4,f4,a4]@5", V: "[d4,f4,g4,a#4]@3 [d4,f4,a#4]@5, ~@3 g4 ~@4",
W: "[c4,f4,a4]@3 [c4,f4,a4]@5", X: "[d4,g4,a#4,d5]@3 [d4,g4,a#4,d5]@5", Y: "[d4,g4,b4,d5]@3 [d4,g4,b4,d5]@5",
Z: "[c#4,f4,g#4]@3 [c#4,f4,g#4]@3 [d4,f#4,a4]@2", AA: "[d4,e4,a4]@3 ~@3 [d4,e4,a#4]@2",
AB: "[d4,g4,b4]@3 [d4,g4,b4]@3 [e4,a4,c#5]@2", AC: "[g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@2",
AD: "[d4,g4,a#4]@3 [d4,g4,a#4]@3 [f4,g#4,c5]@2", AE: "[f4,g4,a#4,d5]@3 d5 g4 g4@2 [f4,g4,a#4,d5], ~@3 [f4,a#4]@4 ~",
AF: "[e4,g4,b4,d5]", // Em7
AG: "[[a3,c4,e4,g4]@4 [a3,c4,e4,g4]@7 [a3,c4,e4,g4]@19 [a3,c4,e4,g4]@4 [a3,c4,e4,g4]@8 [a3,c4,e4,g4]@11 ~@11]/2", // Am7
})).s("gm_acoustic_guitar_steel").gain(0.17).pan(0)
// bass · electric bass finger · "Bass"
const bass = note(`<
A@3 B@2 C@2 D@2 E@4 F@6 G@3 H@4 I J@3 K L M@2 N O P Q@2 R@7 S@4 T@8 U@8 V W@3 X@3 Y Z AA Z AA AB AC@2 AD@7 AE AF AG@5
AH AI AJ@3 AK@3 AL
>`.pickRestart({
A: "[~@12 b2@23 e2@42 e2@19]/3", B: "[~@2 e2@21 c2@19 b2@2 b1@20]/2", C: "[~ e2@43 e2@20]/2",
D: "[~@2 e2@7 b2@7 e2@7 c2@22 c2@19]/2", E: "[~@3 g2@21 f#2@7 g2@7 ~ f#2@7 e2@22 e2@21 b2@22 f#3@14 b2@3]/4",
F: "[~@5 e2@21 e1@22 a1@22 a2@7 e2@7 a1@7 f#1@22 f#2@22 c#2@22 c#2@22 d2@13]/6",
G: "[~ d2@7 d2@7 ~ a2@7 d2@7 e2@22 e2@15 e2@7 a1@22]/3",
H: "[a2@22 a1@69 ~@4 d3@4 d3@4 d3@4 d3@4 d3@4 ~ d3@4 d3@4 d3@4]/4", I: "d3@4 d3@4 d3@4 d3@4 ~ d3@4 d3@4 d3@4 d3@3",
J: "[~ d3@4 d2@4 d3@4 d2@4 ~ d3@2 d3@2 d2@4 d3@4 d2@4 g2@4 a2@4 g2@4 ~ d2@6 d2@2 a2@6 a2@2 c3@4 d3@4 d2@4 d3@4 ~ d2@4 d3@2 d3@2 d2@4 d3@4]/3",
K: "d2@2 g2@2 a2@2 g2@2 d2@3 d2 a2@3 a2", L: "c3@2 g2@2 g2@4 d2@4 d3@3 a2", M: "d3@2 g2@2 g2@4 d2@4 d3@3 a2",
N: "d3 g2 g2@2 d2@2 d3 a2", O: "c3@4 d3@4 e2@4 ~ d3@4 e2@4 d3@2 d3@2 e2@4 d3@3",
P: "~ d2@4 g2@4 a2@4 ~ g2@4 d2@6 d2@2 a2@6",
Q: "[a2@2 c3@4 d3@4 ~ d2@4 d3@4 d2@4 d3@2 d3@2 d2@4 d3@4 d2@4 g2@4 ~ a2@4 g2@4 d2@6 d2@2 a2@4]/2",
R: "[~@2 a2@2 c3@4 ~ g2@4 g2@8 d2@8 d3@6 a2@2 d3@4 ~ g2@4 g2@8 e2@8 d3@6 a2@2 d3@4 g2@4 g2@8 d2@8 d3@6 a2@2 d3@4 g2@4 g2@8 d2@8 f2@4 a2@4 c3@4 d3@4 d2@4 d3@4 d2@4 d3@4 d2@4 d3@4 d2@4 g2@4 a2@4 g2@4 d2@6 d2@2 a2@6 a2@2 c3@4 d3@4 d2@4 d3@4 d2@4 d3@4 d2@2]/7",
S: "[~ d3@2 d2@2 g2@2 a2@2 g2@2 d2@3 d2 a2@3 c3 d3@2 g2@2 g2@4 d2@4 d2@2 d2@3 d2 d2@2 d2@2 d2@3 d2 d2@2 d2@2 d2@2 d2!6 d2@2 d2!2 d2@2 d2]/4",
T: "[~ d3@3 a2 d2@2 d2!2 a2@2 a2@2 g2@2 g2@4 d2!2 g1@2 g1@2 d2@2 c#2@2 c2@2 c2@4 g2!2 c3@2 c3@2 c2@2 g2@2 f2@2 f2@4 c2!2 f1@2 f1@4 f2@2 d2@2 d2@4 c3!2 d3@2 d3@4 g2 g#2 a2@2 a2@4 a2!2 c#2@2 c#2@4 c#2!2 d2@2 d2@4 a1!2 d2@2 d2@4 d2@2 d2@2 d2@2 d2@2 d2@2 f#1@2 f#1@2 g1@2 a1@2 d2@2 d2]/8",
U: "[~@2 d3@6 a2@2 d2@4 d2@2 d2@2 a2@4 a2@4 g2@4 g2@8 d2@2 d2@2 g1@4 g1@4 d2@4 c#2@4 c2@4 c2@8 g2@2 g2@2 c3@4 c3@4 c2@4 g2@4 f2@4 f2@8 c2@2 c2@2 f1@4 f1@8 f2@4 d2@4 d2@8 c3@2 c3@2 d3@4 d3@8 g2@2 g#2@2 a2@4 a2@8 a2@2 a2@2 c#2@4 c#2@8 c#2@2 c#2@2 d2@33 d2@33 d3@4]/8",
V: "d2@4 d3@4 d2@4 d3@4 d2@4 ~ d3@4 d2@4 g2@3",
W: "[~ a2@4 g2@4 d2@6 d2@2 a2@6 ~ a2@2 c3@4 d3@4 d2@4 d3@4 d2@4 d3@4 ~ d2@4 d3@8 g2@4 a2@4 g2@4 d2@6 ~ d2@2 a2@6 a2@2 c3@4]/3",
X: "g2@2 g2@4 d2@4 d3@3 a2 d3@2", Y: "g2 g2@2 d2@2 f2 a2 c3", Z: "d3 d2 d3 d2 d3 d2 d3 d2",
AA: "g2@2 a2@2 g2@2 d2@3 d2 a2@3 a2 c3@2", AB: "d2 d2@2 d2@3 d3@2", AC: "d2@2 d2@4 d2@6 d3@3 d2",
AD: "d2@2 d2@4 d2@4 a2!2 d3@3 d2", AE: "g3@3 e3 g3 d3 e3@3 c3@2 c3 a#2 c3 a#2@2",
AF: "a2 g2 e2 d2 c2@3 a#1@2 a1 g1@2 g1 a1 a#1 c2",
AG: "[f1@4 f1@7 f2@11 ~ a#1@2 c2@2 ~ g1@2 f1@4 f1@8 f2@11 f1@4 f2@4 e2@11 e2@6 e2@2 g#1@5 a1@2 b1@4 a1@4 a1@7 c#2@6 a1@2 c#2@2 a1@2 c#2@4 c#2@2 ~ e2@6 b2@2 e3@2 b2@2 e3@6 ~ g#2@6 b2@2 b2@2 b2@2 a2@4 a2@2 e2@2, ~@27 a#1@2 ~@91 d#2@2 ~@17 b2@2 ~@19]/5",
AH: "~ e2@2 a1@4 a1@2 a1@2 a1@2 a1@2 a1@2 ~ c#2@2 d#2@2 e2@6 b2@2 f#3@2, ~@17 b1@2 ~@13",
AI: "f#3@3 f#3@2 e3@2 e3@2 b2@2 b2@2 e2@4 b2@2 b2@2 a2@3 a2@2 e2@4 e2@2",
AJ: "[a1@4 a1@2 a1@2 b1 b1@2 c#2@2 c#2@2 d#2@2 d#2@2 e2@11 e2@6 e2@2 g#1@6 a1@2 b1@3 a1@4 a1@8 c#2@5 a1@2 c#2@2 a1@2 c#2@4 c#2@2 d#2@2 e2@5 b2@2 e3@2 b2@2 e3@5]/3",
AK: "[~ b2@2 g#2@5 b2@2 b2@2 b2@2 a2@4 a2@2 e2@4 ~ a1@4 a1@2 a1@2 a1@2 a1@2 a1@2 b1@2 c#2@2 ~ e2@6 b2@2 f#3@2 f#3@4 f#3@2 e3 e3@2 b2@2 b2@2 e2@4 b2@2 b2@2 a2@4 ~ e2@4 e2@2 a1@4 a1@2 a1@2 b1@2, ~@24 e2@2 ~@17 d#2@2 ~@34 a2@2 ~@15]/3",
AL: "b1@2 c#2 c#2@2 d#2@2 d#2@2 ~@23",
})).s("gm_electric_bass_finger").gain(0.2)
// chords · piano
const piano = note(`<
A@3 B@2 C D E@4 F G H@4 I J@4 K@4 L M N@2 O@6 P@2 Q@6 R@2 S@2 T@5 U@3 V@5 W@5 X Y@3 Z AA@3 AB AC AD AE AF AG AH AI AJ
AK AL AM AN AO AP@2 AQ AR@8 AS@4 AT
>`.pickRestart({
A: "[~@14 [d#4,f#4]@7 [e4,g4]@7 [d#4,f#4]@7 d4@21 c#4@21 d5@7 c5@7 b4@2 d5@2 ~, ~@35 [g3,f#4]@42 ~@19]/3", // D#m Em D#m Gmaj7
B: "[~@2 a4@7 b4@7 a4@7 g4@7 a4@7 g4@7 f#4@7 g4@7 f#4@6, ~@23 [c4,e4]@21 [b3,d#4]@20]/2", // C B
C: "~@5 b4@3 g4@3 ~@4 b4@3 ~ g4@3 ~@4 a4@3 g4@3, ~ e5@7 ~@4 e5@7 ~@3 d5@7 ~@3",
D: "~@5 a4@3 g4@4 [b3,e4,g4]@7 [b3,d#4,g4]@7 [b3,d4,g4]@6, ~ d5@7 ~@24", // Em Baug G
E: "[~@2 [b3,c#4,g4]@21 c4@22 a#3@22 d4@3 b3@4 g3@3 e4@4 b3@4 g3@3 [a#3,c#4]@7 d4@7 ~ [c#4,e4]@7 f#4@4 e4@3 b3@4 f#4@3 e4@4]/4", // C#m7b5 A#m C#m
F: "b3@4 f#4@3 e4@4 b3@3 f#4@4 e4@4 b3@3 f#4@4 d#4@3", G: "b3@4 f#4@4 d#4@3 b3@4 d#4@4 f#4@3 b3@4 e4@3 f#4@3",
H: "[~ b3@4 d4@3 f#4@4 g3@3 f#4@4 d4@4 g3@3 f#4@4 d4@4 g3@3 f#4@4 d4@3 g3@4 f#4@4 c#4@3 g3@4 c#4@3 a3@4 g3@4 e4@3 c#4@4 g3@3 f#4@4 c#4@4 g3@3 f#4@4 c#4@4 a3@3 e4@4 c#4@7 f#4@4 c#4@3 a3@4 e4@4]/4",
I: "c#4@3 a3@4 f4@3 c#4@4 g#3@4 f4@3 c#4@4 g#3@4 f4@3",
J: "[c#4@4 g#3@4 f4@3 c#4@4 g#3@4 f#4@3 d4@4 a3@4 f#4@3 d4@4 a3@3 f#4@4 d4@4 a3@3 f#4@4 d4@4 a3@3 g#3@4 d#4@4 b3@3 g#3@4 d#4@4 b3@3 g#3@4 d#4@4 b3@3 g#3@4 d#4@3 b3@4 g#3@4 d#4@3 b3@4 g#3@4 d#4@3 b3@4]/4",
K: "[g#3@4 e4@3 c#4@4 g#3@4 e4@3 c#4@4 ~@8 [e4,g#4,c#5,e5]@61 ~@4 [c4,f4,a4]@8 [c4,f4,a4]@8 [c4,f4,a4]@8 ~ [c4,f4,a4]@8]/4", // C#m F
L: "[c4,f4,a4]@8 [c4,f4,a4]@8 ~ [c4,f4,a4]@8 [c4,f4,a4]@7", // F
M: "~ [f4,a4]@4 [f4,a4]@4 [f4,a4]@4 [f4,a4]@4 ~ a4@2 a#4@2 a4@2 [c4,f4]@4 a4@2 a#4@2", // F F5
N: "[a4@2 [b3,g4]@4 [c4,a4]@4 [b3,g4]@4 ~ [a3,c4,f4]@20 [f4,a4,e5]@4 [f4,a4,e5]@4 [f4,a4,e5]@4 ~ [f4,a4,e5]@4 e5@2 f5@2 e5@2 [f4,c5]@4 e5@2]/2", // Em F Em F Fmaj7 F5
O: "[f5@2 e5@2 [g4,b4]@4 [a4,c5]@4 [g4,b4]@4 [c4,f4,a4]@20 [g3,a#3,d4,f4]@4 [g3,a#3,d4,f4]@8 [a3,c4,f4]@20 [g3,a#3,d4,f4]@4 [g3,a#3,d4,f4]@8 [a3,c4,f4]@20 [g3,a#3,d4,f4]@4 [g3,a#3,d4,f4]@8 [a3,c4,f4]@20 [g3,a#3,d4,f4]@4 [g3,a#3,d4,f4]@8 [a3,c4,f4]@20 [f4,a4]@4 [f4,a4]@4 ~ [f4,a4]@4 [f4,a4]@4 a4@2 a#4@2 a4@2 [c4,f4]@4 a4]/6", // G Am G F Gm7 F Gm7 F …
P: "[~ a#4@2 a4@2 [b3,g4]@4 [c4,a4]@4 ~ [b3,g4]@4 [a3,c4,f4]@20 [f4,a4,e5]@4 ~ [f4,a4,e5]@4 [f4,a4,e5]@4 [f4,a4,e5]@4 e5@2 f5@2 e5@2 [f4,c5]@3]/2", // Em F Em F Fmaj7 F5
Q: "[~ e5@2 f5@2 e5@2 [g4,b4]@4 ~ [a4,c5]@4 [g4,b4]@4 [f4,a4]@4 ~@17 [f4,a#4,d5,f5]@4 [g4,a#4,d5,f5]@8 [c5,d5]@4 [c5,d5]@16 ~ [g4,a#4,d5,f5]@4 [g4,a#4,d5,f5]@8 c5@4 d5@4 d5@12 [g4,a#4,d5,f5]@4 [g4,a#4,d5,f5]@8 [f4,a4,c5,d5]@20 [d4,f4,a#4,c5]@4 [f4,c5]@4 [f4,a4,c5,d5]@20 ~@4 [f4,a4]@4 [f4,a4]@4 [f4,a4]@4 [f4,a4]@4 a4@2 a#4@2 a4@2, ~@20 c4@21 ~@12 [f4,a4]@21 ~@12 [f4,a4]@20 ~@36 [d4,a#4]@8 ~@42]/6", // G Am G F A# Gm7 Csus2 Gm7 …
R: "[[c4,f4]@2 a4 a#4 a4 [b3,g4]@2 [c4,a4]@2 [b3,g4]@2 [a3,c4,f4]@10 [f4,a4,e5]@2 [f4,a4,e5]@2 [f4,a4,e5]@2 [f4,a4,e5]@2 e5 f5 e5]/2", // F5 Em F Em F Fmaj7
S: "[[f4,c5]@2 e5 f5 e5 [g4,b4]@2 [a4,c5]@2 [g4,b4]@2 [c4,f4,a4]@10 [f4,g4,a#4,d5]@2 [f4,g4,a#4,c5]@4 [a3,d4,f#4]@5]/2", // F5 G Am G F Gm7 Fsus4 D
T: "[~ [f#3,a3]@4 [f#3,a3,d4]@4 [d4,f#4,a4]@4 g4@4 f#4@4 e4@4 d4@4 [a4,d5,f#5,a5]@16 f5@16 [c5,e5,g5,c6]@16 [d5,f5,a5,d6]@3, ~@13 [a3,d4]@8 [f#3,a3]@8 ~@51]/5", // F#m D C Dm D5 F#m
U: "[~ [c5,f5,a5,c6]@12 [a4,d5,f5,a5]@16 [c5,e5,a5,c6]@8 g5@8 [d5,f#5,a5,d6]@3]/3", // F Dm Am D
V: "[~ [d4,f#4,a4]@4 [f#4,a4,d5]@4 [d5,f#5,a5]@4 g5@4 f#5@4 e5@4 d5@4 [a4,d5,f#5,a5]@16 f5@16 [c5,e5,g5,c6]@16 [d5,f5,a5,d6]@3, ~@13 [a4,d5]@8 [f#4,a4]@8 ~@51]/5", // D C Dm D5 F#m
W: "[~@2 [c5,f5,a5,c6]@24 [a4,d5,f5,a5]@32 [c5,e5,a5,c6]@16 g5@16 [d5,f#5,a5,d6]@24 g3@2 f#3@2 ~ e3@4 ~@4 a3@4 d4@4 a3@4 [d4,f#4]@4 a3@4 [d4,f#4]@4 ~ a3@4 [f4,a4]@4, ~@123 f#3@33 ~@4, ~@131 f#4@8 ~@21]/5", // F Dm Am D F
X: "[f4,a4]@4 [f4,a4]@4 [f4,a4]@4 a4@2 a#4@2 a4@2 [c4,f4]@4 ~ a4@2 a#4@2 a4@2 [b3,g4]@3", // F F5 Em
Y: "[~ [c4,a4]@4 [b3,g4]@4 [a3,c4,f4]@21 [f4,a4,e5]@4 [f4,a4,e5]@4 [f4,a4,e5]@4 [f4,a4,e5]@4 e5@2 f5@2 ~ e5@2 [f4,c5]@4 e5@2 f5@2 e5@2 [g4,b4]@4 [a4,c5]@4 [g4,b4]@4 [c4,f4]@4 ~@17, ~@25 a4@7]/3", // F Em F Fmaj7 F5 G Am G …
Z: "[g3,a#3,d4,f4] [g3,a#3,d4,f4]@2 f4 f4@4, ~@3 [a3,c4]@3 ~@2", AA: "[g3,a#3,d4,f4] [g3,a#3,d4,f4]@2 [a3,c4,f4]@5",
AB: "[f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 a4 a#4 a4 [c4,f4]@2 a4 a#4 a4", // F F5
AC: "[b3,g4] [c4,a4] [b3,g4] [a3,c4,f4]@5", // Em F Em F
AD: "[f4,a4,e5]@2 [f4,a4,e5]@2 [f4,a4,e5]@2 [f4,a4,e5]@2 e5 f5 e5 [f4,c5]@2 e5 f5 e5", // Fmaj7 F5
AE: "[g4,b4] [a4,c5] [g4,b4] [c4,f4,a4]@5", AF: "[d4,f4,g4,a#4]@3 [d4,f4,a#4]@5, ~@3 g4 ~@4",
AG: "[c4,f4,a4]@3 [c4,f4,a4]@5", AH: "[d4,g4,a#4,d5]@3 [d4,g4,a#4,d5]@5", AI: "[d4,g4,b4,d5]@3 [d4,g4,b4,d5]@5",
AJ: "[c#4,f4,g#4]@3 [c#4,f4,g#4]@3 [d4,f#4,a4]@2", AK: "[d4,e4,a4]@3 a#4@3 [d4,e4,a4,a#4]@2",
AL: "[d4,g4,b4]@3 [d4,g4,b4]@3 [e4,a4,c#5]@2", AM: "[g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@2",
AN: "[d4,g4,a#4]@3 [d4,g4,a#4]@3 [f4,g#4,c5]@2", AO: "[f4,g4,a#4,d5]@3 d5 g4 g4@2 [f4,g4,a#4,d5], ~@3 [f4,a#4]@4 ~",
AP: "[e4,g4,b4,d5]", AQ: "[a3,c4,e4,g4]@4 [a3,c4,e4,g4]@7 [a3,c4,e4,g4]@19 [a3,c4,e4,g4]@2",
AR: "[~@2 [a3,c4,e4,g4]@8 [a3,c4,e4,g4]@11 ~@8 [g#3,b3,d#4,f#4]@23 [g#3,b3,d#4,f#4]@7 [a3,c#4,e4,g#4]@23 [a3,c#4,e4,g#4]@7 [g#3,b3,f4,g#4]@23 [g#3,b3,d4,f4]@8 [a3,c#4,e4,g#4]@23 [a3,c#4,e4,g#4]@7 [g#3,b3,d#4,f#4]@23 [g#3,b3,d#4,f#4]@8 [a3,c#4,e4,g#4]@22 [a3,c#4,e4,g#4]@8 [g#3,b3,d#4,f#4]@23 [g#3,b3,d#4,f#4]@7 [a3,c#4,e4,g#4]@15]/8", // Am7 G#m7 Amaj7 Fdim G#dim Amaj7 G#m7 Amaj7 …
AS: "[~@8 [a3,c#4,e4,g#4]@8 [g#3,b3,f4,g#4]@22 [g#3,b3,d4,f4]@8 [a3,c#4,e4,g#4]@23 [a3,c#4,e4,g#4]@7 [g#3,b3,d#4,f#4]@23 [g#3,b3,d#4,f#4]@8 [a3,c#4,e4,g#4]@21]/4", // Amaj7 Fdim G#dim Amaj7 G#m7 Amaj7
AT: "~ [a3,c#4,e4,g#4]@4 ~@11", // Amaj7
})).s("gm_piano").gain(0.1)
// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@46 A@2 B@5 C@3 D@5 E@5 ~@11 F G H I J K L M N O P Q R S T@8 U@4 V>".pickRestart({
A: "[~@10 [g4,b4]@11 ~ [c4,f4,a4]@20 ~@22]/2", // G F
B: "[~ [f#3,a3]@4 [f#3,a3,d4]@4 [d4,f#4,a4]@4 g4@4 f#4@4 e4@4 d4@4 [a4,d5,f#5,a5]@16 f5@16 [c5,e5,g5,c6]@16 [d5,f5,a5,d6]@3, ~@13 [a3,d4]@8 [f#3,a3]@8 ~@51]/5", // F#m D C Dm D5 F#m
C: "[~ [c5,f5,a5,c6]@12 [a4,d5,f5,a5]@16 [c5,e5,a5,c6]@8 g5@8 [d5,f#5,a5,d6]@3]/3", // F Dm Am D
D: "[~ [d4,f#4,a4]@4 [f#4,a4,d5]@4 [d5,f#5,a5]@4 g5@4 f#5@4 e5@4 d5@4 [a4,d5,f#5,a5]@16 f5@16 [c5,e5,g5,c6]@16 [d5,f5,a5,d6]@3, ~@13 [a4,d5]@8 [f#4,a4]@8 ~@51]/5", // D C Dm D5 F#m
E: "[~@2 [c5,f5,a5,c6]@24 [a4,d5,f5,a5]@32 [c5,e5,a5,c6]@16 g5@16 [d5,f#5,a5,d6]@24 g3@2 f#3@2 ~ e3@4 f#3@33 ~@4]/5", // F Dm Am D
F: "[g4,b4] [a4,c5] [g4,b4] [c4,f4,a4]@5", G: "[d4,f4,g4,a#4]@3 [d4,f4,a#4]@5, ~@3 g4 ~@4",
H: "[c4,f4,a4]@3 [c4,f4,a4]@5", I: "[d4,g4,a#4,d5]@3 [d4,g4,a#4,d5]@5", J: "[d4,g4,b4,d5]@3 [d4,g4,b4,d5]@5",
K: "[c#4,f4,g#4]@3 [c#4,f4,g#4]@3 [d4,f#4,a4]@2", L: "[d4,e4,a4]@3 a4@3 [d4,e4,a4]@2",
M: "[d4,g4,b4]@3 [d4,g4,b4]@3 [e4,a4,c#5]@2", N: "[g4,b4,d5]@3 [g4,b4,d5]@3 [g4,b4,d5]@2",
O: "[d4,g4,a#4]@3 [d4,g4,a#4]@3 [f4,g#4,c5]@2", P: "[f4,g4,a#4,d5]@3 d5 g4 g4@2 [f4,g4,a#4,d5], ~@3 [f4,a#4]@4 ~",
Q: "[b3,g4,b4,e5]", R: "[e4,g4,b4,d5]", S: "[a3,c4,e4,g4]@4 [a3,c4,e4,g4]@7 [a3,c4,e4,g4]@19 [a3,c4,e4,g4]@2",
T: "[~@2 [a3,c4,e4,g4]@8 [a3,c4,e4]@11 ~@8 [g#3,b3,d#4,f#4]@23 [g#3,b3,d#4,f#4]@7 [a3,c#4,e4,g#4]@23 [a3,c#4,e4,g#4]@7 [e3,b3,e4,g#4]@23 [g#3,b3,d4,e4]@8 [a3,c#4,e4,g#4]@23 [a3,c#4,e4,g#4]@7 [g#3,b3,d#4,f#4]@23 [g#3,b3,d#4,f#4]@8 [a3,c#4,e4,g#4]@22 [a3,c#4,e4,g#4]@8 [g#3,b3,d#4,f#4]@23 [g#3,b3,d#4,f#4]@7 [a3,c#4,e4,g#4]@15, ~@5 g4@9 ~@114]/8", // Am7 Am G#m7 Amaj7 E E7 Amaj7 G#m7 …
U: "[~@8 [a3,c#4,e4,g#4]@8 [e3,b3,e4,g#4]@22 [g#3,b3,d4,f4]@8 [a3,c#4,e4,g#4]@23 [a3,c#4,e4,g#4]@7 [g#3,b3,d#4,f#4]@23 [g#3,b3,d#4,f#4]@8 [a3,c#4,e4,g#4]@21]/4", // Amaj7 E G#dim Amaj7 G#m7 Amaj7
V: "~ [a3,c#4,e4,g#4]@4 ~@11", // Amaj7
})).s("gm_string_ensemble_1").gain(0.11)
// chords · overdriven guitar · "Lead Guitar"
const overdriven_guitar = note("<~@31 A@5 ~@3 B@5 ~@3 C@3 ~@20 D E F G@2 ~@29>".pickRestart({
A: "[~@4 d5@4 ~ c5@7 f4 [a3,f4]@19 c5@4 c5 c5@7 [c4,f4,a4]@20 d5@4 ~ c5@6 ~ f4 f4@19 a4@4 ~ g4@7 g4 g4@8 f4@3 ~@2 f4@10 ~@24, ~@4 [g4,a#4]@12 d4@19 ~ [g4,a#4]@11 ~@21 [g4,a#4]@12 [a3,d4]@20 [d4,f4]@12 a3@23 ~@25, ~@112 d4@12 c4@11 ~@25]/5", // Dm F Gm D5 Dm
B: "[~@9 d5@4 c5@8 ~ a3@19 ~ c5@4 c5@7 ~ [c4,f4,a4]@20 d5@4 c5@6 ~@2 [a3,d4,f4]@20 a4@4 g4@8 g4@8 f4@4 [c4,f4]@16 ~@14, ~@9 [g4,a#4]@12 [d4,f4]@20 ~ [g4,a#4]@11 ~@21 [g4,a#4]@12 ~@20 [d4,f4]@12 a3@28 ~@14, ~@59 d4@6 ~@15]/5", // F Dm F5 Gm Dm Gm Dm
C: "[~@5 [g4,a#4,d5]@2 [g4,a#4,c5]@4 [a3,d4,f#4]@34 ~@3]/3", D: "d5@4 c5@8 ~ a3@18 ~, [g4,a#4]@12 [d4,f4]@19 ~",
E: "c5@4 c5@7 ~ [c4,f4,a4]@20, [g4,a#4]@11 ~@21", F: "d5@2 c5@3 ~ [a3,d4,f4]@10, [g4,a#4]@3 ~@5",
G: "[a4@4 ~ g4@7 g4@8 f4@4 [c4,f4]@16 ~@24, [d4,f4]@3 a3@7 ~@6, ~@3 d4@3 ~@10]/2", // F5 Dm
})).s("gm_overdriven_guitar").gain(0.12)
// other · electric guitar clean · "Mandolin"
const electric_guitar_clean = note(`<
~@2 A@3 B C D@4 ~ E@2 F@2 ~ G@2 H@3 I@3 ~@4 J K@2 ~@5 L M ~@6 N O@2 ~@5 P@3 ~ Q@4 R@4 ~@2 S@3 ~@6 T U V W X@2 Y Z AA
AB AC AD AE@2 AF AG@8 AH@4 AI
>`.pickRestart({
A: "[~@13 d5@7 c5@7 b4@2 d5@2 b4@2 ~ a4@7 b4@7 a4@7 g4@7 a4@7 g4@7 f#4@7 g4@7 f#4@6]/3", B: "~@2 e4@17 ~@13",
C: "~@12 e4@7 d#4@7 d4@6", D: "[~@2 c#4@21 c4@22 a#3@21 b3@19 ~@3 c#4@7 d4@7 ~ e4@7 f#4@18]/4",
E: "[~@15 b4@7 a4@7 g#4@7 ~ g4@12 ~@15]/2", F: "[~@16 f#4@7 g4@7 a4@7 ~ b4@7 d5@7 c#5@7 c#5@5]/2",
G: "[~@7 [f4,c#5,g#5]@7 ~@15 [g#4,c#5,f5]@15 ~@7 [f#4,a4,d5]@13]/2", // C# D
H: "[~@9 [a4,d5]@15 ~@7 b4@15 ~@6 [d#4,g#4,b4]@15 ~@7 [d#4,g#4,b4]@15 ~@7, ~@8 f#4@15 ~@7 [d#4,g#4]@15 ~@51]/3", // D5 G#m G#5
I: "[[e4,g#4,c#5]@15 ~@12 e5@62 ~@7, ~@12 e4@31 ~@5, ~@25 g#4@62 ~@9, ~@13 c#5@31 ~@4]/3", // C#m
J: "~@3 e5@4 e5@4 e5@4 ~ e5@4 e5@2 f5@2 e5@2 ~@4 e5@2", K: "[f5 e5 b4@2 c5@2 b4@2 a4@10 ~@14]/2",
L: "~@6 e5@4 ~ e5@4 e5@4 e5@4 e5@2 f5@2 e5@2 ~@3", M: "~ e5@2 f5@2 e5@2 b4@4 ~ c5@4 b4@4 a4@12",
N: "~@5 e5@2 e5@2 e5@2 e5@2 e5 f5 e5", O: "[~@2 e5 f5 e5 b4@2 c5@2 b4@2 a4@10 ~@11]/2",
P: "[~@13 [a4,d5,f5,a5]@16 [c5,e5,a5,c6]@8 g5@8 [d5,f#5,a5,d6]@3]/3", // Dm Am D
Q: "[~@13 [a4,d5,f#5,a5]@16 f5@16 [c5,e5,g5,c6]@16 ~@3]/4", // D C
R: "[~@26 [a4,d5,f5,a5]@32 [c5,e5,a5,c6]@16 g5@16 [d5,f#5,a5,d6]@25 ~@13]/4", // Dm Am D
S: "[~@30 e5@4 e5@4 e5@4 e5@4 e5@2 f5@2 ~ e5@2 ~@4 e5@2 f5@2 e5@2 b4@4 c5@4 b4@4 a4@21]/3",
T: "e5@2 e5@2 e5@2 e5@2 e5 f5 e5 ~@2 e5 f5 e5", U: "b4 c5 b4 a4@5", V: "a#4@3 a#4@5", W: "a4@3 a4@5", X: "d5@3 d5@5",
Y: "g#4@3 g#4@3 a4@2", Z: "a4@3 a4@3 a#4@2", AA: "b4@3 b4@3 c#5@2", AB: "d5@3 d5@3 d5@2", AC: "a#4@3 a#4@3 c5@2",
AD: "d5@3 a#4@4 d5, ~@3 d5 ~@4", AE: "d5", AF: "g4@4 g4@7 g4@19 g4@2",
AG: "[~@2 g4@8 g4@11 ~@8 f#4@23 f#4@7 g#4@23 g#4@7 g#4@23 e4@8 g#4@23 g#4@7 f#4@23 f#4@8 g#4@22 g#4@8 f#4@23 f#4@7 g#4@15]/8",
AH: "[~@8 g#4@8 g#4@22 e4@8 g#4@23 g#4@7 f#4@23 f#4@8 g#4@21]/4", AI: "~ g#4@4 ~@11",
})).s("gm_electric_guitar_clean").gain(0.38)
// drums · kick
const kick = s("bd").struct(`<
~@27 A B C D E D E D F G H I J K L M L M L M L M L M L M L M L M L M L M L M L N O P Q R S T U T U T U T U T U T U T U
T U T U T U V W X Y Z AA AB AC AD AE AF AG AH AI
>`.pickRestart({
A: "~ x ~@11 x ~@4 x ~@11 x ~", B: "~@2 x ~@12 x ~@3 x ~@3 x ~@7 x", C: "~@3 x ~@12 x ~@3 x ~@11", D: "x!2 ~@2 x!3 ~",
E: "x!2 ~@2 x!2 ~@2", F: "x ~@3 x ~@12 x ~@3 x ~@10", G: "~ x ~@3 x ~@12 x ~@3 x ~@3 x ~@5",
H: "~@2 x ~@3 x ~@12 x ~@3 x ~@8", I: "~@3 x ~@3 x ~@12 x ~@3 x ~@3 x ~@3", J: "~@4 x ~@4 x ~@11 x ~@3 x ~@6",
K: "~@5 x ~@4 x ~@11 x ~@3 x ~@3 x ~", L: "~@3 x ~ x ~@5 x ~ x ~@2", M: "~@3 x ~ x ~@5 x ~ x ~ x",
N: "~@6 x ~@3 x ~@12 x ~@3 x ~@3 x", O: "~@7 x ~@3 x ~@12 x ~@3 x ~@3", P: "~@8 x ~@3 x ~@12 x ~@3 x ~@2",
Q: "~@9 x ~@3 x ~@3 x ~@8 x ~@3 x ~", R: "~@10 x ~@3 x ~@12 x ~@3 x", S: "~@11 x ~@3 x ~@4 x ~@7 x ~@3",
// … 55 more lines
More by Seals & Crofts
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.