0:00/0:00
// Blue Bayou — Linda Ronstadt
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 83 bars on a 32-step grid, each part at one level. 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 · piano
const bass = note(`<
~ A B C@7 D E@6 F G@2 H@2 I J K@3 L M N O@7 P Q R@3 S T@6 U V@6 W X@3 Y Z@5 AA AB@2 AC AD@6 AE@2 AF@5
>`.pickRestart({
A: "~@7 c2@12 g2@13", B: "g1@8 ~ c2@12 g2@11",
C: "[~@2 g1@8 c2@12 ~ g2@12 ~ g1@8 c2@11 ~@2 g2@12 g1@6 ~@3 c2@11 ~ g2@13 g1@7 ~ c2@10 ~@3 g2@13 g1@7 ~ g1@11 ~@2 d2@12 d1@8 ~ g1@11 ~ d2@12 ~ d1@8 ~ g1@11]/7",
D: "~ d2@12 ~ d1@8 g1@10",
E: "[~@3 d2@12 ~ g1@8 c2@11 ~@2 g2@12 g1@8 ~ c2@11 ~ g2@13 g1@8 c2@11 ~@2 g2@13 g1@8 c2@11 ~@2 g2@12 g1@7 ~@2 g1@11 ~ d2@12 ~ d1@8]/6",
F: "~ g1@12 d2@12 ~ d1@6", G: "[~@2 g1@11 ~@2 d2@12 ~ d1@8 g1@11 ~@2 d2@12 g1@3]/2",
H: "[~ a1@4 ~ c2@11 ~ g2@13 g1@8 c2@11 ~@2 g2@12]/2", I: "~ g1@2 a1@2 c2@2 a1@2 c2@12 ~ g2@2 ~@2 g2@6",
J: "~@2 g1@7 ~@2 c2@11 ~ g2 ~@4 g2@4",
K: "[c2@4 b1@3 ~ a1@4 ~ g1@12 d2@2 ~@2 d2@8 ~ d1@7 ~ g1@12 ~ d2@2 ~@2 d2@8 ~ d1@2 e1 ~ g1@2 e1 ~ g1@12 ~ d2 ~@2]/3",
L: "~ d2@7 ~ d1@7 ~@2 g1@12 d2@2", M: "~@3 d2@3 ~ g1@4 a1@4 b1@4 c2@12 ~", N: "g2@2 ~@2 g2@8 ~ g1@4 a1@4 c2@11",
O: "[~@2 g2@2 ~@2 g2@8 g1@8 ~ c2@12 g2@2 ~@3 g2@8 g1@8 ~ c2@12 d2 ~ d#2 ~ e2@8 ~ c2@8 f2@12 ~ f1@2 ~@2 f1@8 ~ a1@8 a#1@31 ~@3 c2@12 g2@2 ~@2 g2@8 ~ c2@4 b1@2 a1@2 g1@11 ~@2 d2@2 ~@2 d2@4 g1@4 ~ a1@4 b1@3]/7",
P: "~ c2@13 g2@2 ~@2 g2@8 g1@6", Q: "~@3 c2@12 g2@2 ~@3 g2@8 g1@2 a1@2",
R: "[c2@2 a1@2 c2@11 ~@2 g2@13 g1@7 ~ c2@10 ~@3 g2@12 g1@7 ~@2 g1@11 ~@2 d2@11]/3", S: "~ d1@8 ~ g1@11 ~ d2@10",
T: "[~@3 d1@8 g1@11 ~@2 d2@12 ~ d1@8 g1@11 ~@2 d2@12 g1@8 ~ c2@11 ~ g2@12 ~ g1@8 c2@11 ~@2 g2@13 g1@8 c2@11 ~@2 g2@12 g1@8 ~ c2@11 ~]/6",
U: "~ g2@12 g1@7 ~@2 g1@10",
V: "[~@2 d2@12 ~ d1@8 g1@12 ~ d2@12 ~ d1@8 g1@11 ~@2 d2@12 d1@8 ~ g1@11 ~ d2@12 ~ g1@4 a1@4 ~ c2@11 ~ g2@13 g1@8 c2@11 ~@2 g2@12 ~ g1@2 a1@2 c2@2 a1@2]/6",
W: "c2@12 ~ g2@2 ~@2 g2@8 g1@7",
X: "[~@2 c2@11 ~ g2 ~@3 g2@4 ~ c2@4 b1@3 ~ a1@4 g1@12 ~ d2@2 ~@2 d2@8 ~ d1@7 ~ g1@12 ~ d2@2 ~@2 d2@8 d1@2]/3",
Y: "e1 ~@2 g1@2 e1 ~ g1@12 d2 ~@4 d2@7 ~",
Z: "[d1@7 ~@2 g1@12 d2@2 ~@2 d2@3 ~@2 g1@4 a1@4 b1@4 c2@12 ~ g2@2 ~@2 g2@8 g1@4 ~ a1@4 c2@12 ~ g2@2 ~@2 g2@8 g1@8 ~ c2@12 g2@2 ~@2 g2@8 ~ g1@8 c2@12 ~ d2 ~ d#2 ~]/5",
AA: "e2@8 ~ c2@8 f2@12 ~ f1@2", AB: "[~@2 f1@8 a1@8 ~ a#1@31 ~@3 c2@11]/2",
AC: "~ g2@2 ~@2 g2@8 ~ c2@4 b1@2 a1@2 g1@10",
AD: "[~@3 d2@2 ~@2 d2@4 g1@4 a1@5 b1@4 c2@12 ~ g2@2 ~@2 g2@8 g1@8 ~ c2@12 g2 ~@3 g2@8 ~ g1@2 a1@2 c2@2 a1 ~ g1@11 ~@2 d2@2 ~@2 d2@11 ~@2 g1@2 ~@2 g1@12 ~ d2 ~@3 d2@13 g1@2 ~@2 g1@12 d2@2 ~@3 d2@8 g1@4 d2@2 ~@2]/6",
AE: "[~ d2@10 ~@2 d2 ~@3 d2@8 ~ a1@4 d2@4 g1@11 ~@2 d2@2 ~@2 d2@8 g1@4 ~]/2",
AF: "[a1@4 c2@10 ~@15 g1 ~@8 c2@11 ~ g2@12 ~ g1@8 c2@10 ~@16 g1 ~@7 c2@34 ~@21, ~@17 g2@21 ~@46 g2@21 ~@55]/5",
})).s("gm_piano").gain(0.28)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~ A B C@2 D@8 E@5 F@8 G H@3 I@2 J@5 K L@4 M@7 N@3 O@7 P@2 Q R@2 S@5 T@4 U@3 V@5 W@2
>`.pickRestart({
A: "~@15 [g3,c4,e4]@4 ~@9 c3@4, ~@19 [g3,c4,e4]@12 ~", // C
B: "c4@4 c3@4 c3@4 g3@4 ~ [g3,c4,e4]@4 c4@8 c3@3, [g3,e4]@12 ~@9 [g3,e4]@11", // C
C: "[~@2 c4@8 c3@4 g3@4 [g3,c4,e4]@4 ~ c4@8 c3@4 c4@4 c3@4 ~ c3@4 g3@4 [g3,c4,e4]@4 [g3,c4,e4]@8, ~ e4@12 ~@51, ~@2 g3@12 ~@9 [g3,e4]@12 [g3,e4]@12 ~@17]/2", // C
D: "[~ c3@4 c4@4 c3@4 [c3,g3,c4,e4]@8 ~ [g3,c4,e4]@4 c4@8 c3@4 ~ c4@4 c3@4 c3@4 g3@4 ~ [g3,e4]@4 c4@8 c3@4 c4@4 ~ c3@4 [g3,b3,f4]@4 d3@4 [g3,b3,f4]@4 [g3,b3,f4]@8 ~ d3@4 [g3,b3,f4]@4 ~@9 d3@4 [g3,b3,f4]@4 [g3,b3,f4]@8 d3@4 ~ [g3,b3,f4]@4 ~@8 d3@4 ~ [g3,b3,f4]@4 [g3,b3,f4]@8 d3@4 ~ [g3,b3]@4 ~@8 d3@4 [g3,b3,f4]@4 ~ [g3,b3,f4]@8 d3@4 [g3,b3,f4]@4 d3@4 ~ [c4,e4]@4 g3@4 [g3,c4,e4]@4 ~@4 c3@4 ~ g3@4 [g3,c4,e4]@4 c4@4 c3@4 g3@3, ~@5 [g3,e4]@8 ~@13 [g3,e4]@12 ~ [g3,e4]@12 ~@4 c4@4 ~ [g3,e4]@12 [g3,e4]@8 ~ g2@33 g2@33 ~ g2@33 ~ g2@33 ~@13 c4@13 ~@15, ~@110 d3@8 ~@26 d3@8 ~@21 f4@4 ~ d3@8 ~@30 c3@16 ~@24, ~@228 [g3,e4]@8 ~@9 [g3,e4]@8 ~@3]/8", // C G7 G G7 C
E: "[~@2 [g3,c4,e4]@4 c4@8 c3@4 ~ c4@4 c3@4 g3@8 ~ c4@4 ~@4 c3@4 g3@4 [g3,c4,e4]@4 ~@5 c3@4 g3@4 [g3,c4,e4]@4 c4@8 ~ c3@4 c4@4 c3@4 ~ [g3,f4]@4 d3@4 [g3,b3,f4]@4 [g3,b3,f4]@8 d3@4 ~ [g3,b3,f4]@4 ~@8 d3@4 ~ [g3,b3,f4]@4 [g3,b3,f4]@4 d3@4 g3@4 ~ [g3,f4]@4 d3@2, ~@6 [g3,e4]@12 ~ [g3,e4]@8 c3@17 ~@4 c3@12 ~@34 g2@33 ~ g2@32, ~@35 [g3,e4]@4 ~ [g3,c4,e4]@8 ~@9 c4@12 ~@25 b3@4 ~@55 b3@4 ~@3, ~@57 [g3,e4]@8 ~@8 [g3,e4]@12 ~ [g3,e4]@8 ~@30 d3@8 ~@28]/5", // C G7 C
F: "[~@2 [g2,b3,f4]@4 d3@4 [g3,b3,f4]@4 ~ [b3,f4]@4 d3@4 g3@4 [g3,b3,f4]@4 ~@9 d3@4 [g3,b3,f4]@4 [g3,b3,f4]@8 ~ d3@4 [g3,b3,f4]@4 d3@4 [g3,e4]@8 ~ [g3,e4]@4 ~@17 c3@4 ~@4 g3@4 ~ e4@4 ~@8 c3@4 ~@5 c3@4 [g3,e4]@8 [g3,c4,e4]@4 ~@4 c3@4 ~ g3@4 [g3,c4,e4]@4 c4@4 ~ c3@4 g3@4 [g3,c4,e4]@4 c4@4 c3@4 g3@4 ~ c4@4 c3@4 [g3,b3,f4]@4 d3@4 ~ [b3,f4]@4 [g3,b3,f4]@4 d3@4 g3@4 ~ f4@4 ~@4 g2@4 d3@4 [g3,b3,f4]@4 ~ [g3,b3,f4]@4 d3, ~@2 g3@8 ~@4 g3@4 ~@13 d3@8 ~@30 c3@21 c3@8 ~@5 c3@21 ~@13 c3@16 ~@51 g2@33 ~@19, ~@36 g2@33 ~@13 [g3,e4]@12 e4@12 ~@10 c4@17 ~@16 c4@13 ~@72 [b3,f4]@8 ~@14, ~@95 g3@12 ~@4 [g3,c4]@4 ~ [g3,e4]@12 [g3,e4]@8 ~@13 [g3,e4]@8 ~@9 [g3,e4]@8 ~@9 [g3,e4]@8 ~@5 [g3,e4]@8 ~@8 g3@4 ~@13 [g3,b3]@4 ~ g3@12 ~@10]/8", // G7 Bdim G7 C G7 Bdim G7 C …
G: "~@3 g3@4 [g3,b3,f4]@4 d3@4 ~ [g2,b3,f4]@4 d3@4 [g3,b3,f4]@4 [g3,b3,f4]@4, ~@15 g3@9 ~@8", // G7
H: "[~ d3@4 g3@4 [g3,b3,f4]@4 d3@4 [g2,b3,f4]@4 ~ d3@4 [g3,b3,f4]@4 [g3,b3,f4]@4 d3@4 g3@4 ~ [g3,b3,f4]@4 d3@4 [g3,c4,e4]@4 g3@4 ~ c4@4 ~@4 c3@4 g3@4 c4@4 ~ c3@4 [c3,g3,e4]@4 g3@4 [g3,c4,e4]@3, ~@17 g3@9 ~@25 c3@17 ~@28, ~@59 [g3,e4]@4 ~ c4@12 ~@9 c4@8 ~@3, ~@16 [g3,e4]@2 ~ [g3,e4]@2 ~@3]/3", // G7 C
I: "[~ c4@4 ~ c3@4 g3@4 c4@4 c3@4 ~ [c3,g3]@4 g3@4 [g3,c4,e4]@4 c4@4 c3@4 ~ [g3,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@4 c3@4 c3@4, ~ [g3,e4]@8 ~@5 [g3,e4]@8 c4@9 ~@4 [g3,e4]@8 ~@13 [g3,a#3,c4,e4]@8, ~@22 e4@4 ~@17 c4@4 ~@17]/2", // C5 C C7
J: "[~ [c4,e4]@4 c4@4 c3@4 g3@4 ~@5 c3@4 f2@4 c3@4 [a3,c4,f4]@4 ~ c4@4 c3@4 c4@4 c3@4 c3@4 ~ [f3,d4,f4]@33 [g3,c4,e4]@4 g3@4 ~ [g3,c4,e4]@4 ~@4 c3@4 g3@4 ~@5 c3@4 [g3,b3,f4]@4 d3@4 [g3,b3,f4]@4 g3@4 ~@5 g3@4 [g3,b3,f4]@4 d3@4, [g3,a#3]@4 ~ [g3,a#3,e4]@8 ~@4 [g3,a#3]@8 ~ [a3,c4,f4]@8 ~@5 a3@8 [a3,f4]@12 g#3@34 c3@17 ~@34 d3@9 ~@7, ~@17 c4@4 ~@85 c4@12 c4@4 ~@17 [b3,f4]@9 ~@12, ~@18 e4@8 ~@12 f4@8 ~@60 [g3,e4]@8 ~@5 [g3,e4]@8 ~@33]/5", // C F Dm C G7 Gm Edim Gm …
K: "~ [g3,c4,e4]@4 g3@4 [g3,c4,e4]@4 ~@9 g3@4 [g3,c4,e4]@4 c3@2, c3@13 c4@9 ~@10, ~@13 g3@5 c3@10 ~@4, ~@7 e4@4 ~@5", // C
L: "[~@3 [c4,e4]@3 g3@4 ~ [g3,c4,e4]@4 ~@9 g3@4 ~@3 c3@4 ~ c3@8 ~ [c4,e4]@4 c4@8 c3@4 ~ c4@4 c3@4 c3@4 g3@4 [g3,c4,e4]@4 ~@9 c3@4 c4@4 c3@4 ~ [b3,f4]@4 d3@4 [g3,b3,f4]@4 [g3,b3,f4]@8 ~ d3@3, ~@2 c3@14 ~@3 c3@10 ~@53 c4@8 ~@13 g3@4 ~@21, ~@2 g3@4 ~@9 [g3,c4,e4]@8 ~@5 [g3,c4,e4]@7 ~@9 g3@4 ~ [g3,e4]@12 [g3,e4]@12 ~@9 e4@12 ~@34, ~@83 g3@12 [g3,e4]@8 g2@25]/4", // C Bdim G7 C
M: "[~ [g3,b3,f4]@4 ~@9 d3@4 [g3,b3,f4]@4 [g3,b3,f4]@8 d3@4 ~ [b3,f4]@4 ~@8 d3@4 ~ f4@4 [g3,b3,f4]@8 d3@4 [g3,b3,f4]@4 ~@9 d3@4 [g3,b3,f4]@4 [g3,b3,f4]@8 ~ d3@4 [g3,b3,f4]@4 d3@4 ~ c4@4 g3@4 [g3,c4,e4]@4 ~@4 c3@4 g3@4 ~ [g3,c4,e4]@4 c4@4 c3@4 g3@4 ~ e4@4 c4@8 c3@4 ~@5 c3@4 g3@8 [g3,c4,e4]@4 ~@5 c3@4 g3@4 [g3,c4,e4]@4 ~@4 c3@4 ~ g3@4 [g3,c4,e4]@4, ~@5 d3@8 ~@21 g3@4 ~ d3@8 ~@4 [g3,b3]@4 ~@18 d3@8 ~@29 c3@17 ~@43 g3@8 c3@17 ~@4 c3@12 ~@13, ~@9 g2@33 ~ g2@33 ~ g2@33 e4@4 ~@9 c4@13 ~@33 e4@8 ~@14 c4@8 ~@8 c4@13 ~@4, ~@123 [g3,e4]@8 ~@9 [g3,e4]@8 ~@4 [g3,c4]@4 ~ [g3,e4]@12 c4@4 ~@17 [g3,e4]@8 ~@9 [g3,e4]@8 ~@9]/7", // G7 Bdim G7 C G C C5 C
N: "[c4@8 ~ c3@4 c4@4 c3@4 [g3,b3,f4]@4 ~ d3@4 [g3,b3,f4]@4 [g3,b3,f4]@8 d3@4 [g3,b3,f4]@4 ~@9 d3@4 ~ b3@4 [g3,b3,f4]@4 d3@4 g3@4 [g3,b3,f4]@4 d3@4 ~ [g2,b3,f4]@4 d3@3, [g3,e4]@12 ~ [g3,e4]@8 g2@33 ~ g2@33 ~@8, ~@51 d3@8 ~@4 [g3,f4]@4 ~@22 g3@7]/3", // G7 C G7
O: "[~ [g3,b3,f4]@4 [g3,b3,f4]@4 ~ d3@4 g3@4 [g3,b3,f4]@4 ~@9 d3@4 [g3,b3,f4]@4 [g3,b3,f4]@8 ~ d3@4 [g3,b3,f4]@4 d3@4 [g3,e4]@8 ~ g3@4 ~@17 c3@4 ~@4 g3@4 [g3,c4,e4]@4 ~@9 c3@4 ~@4 c3@4 ~ e4@8 [g3,c4,e4]@4 ~@4 c3@4 ~ g3@4 [g3,c4,e4]@4 c4@4 c3@4 ~ g3@4 [g3,c4,e4]@4 c4@4 c3@4 g3@4 ~ c4@4 c3@4 [g3,b3,f4]@4 d3@4 ~ f4@4 [g3,b3,f4]@4 d3@4 g3@4 [g3,b3,f4]@4, ~@22 d3@8 ~@30 c3@21 c3@8 ~@5 c3@21 ~@12 c3@17 ~@51 g2@29, ~@27 g2@33 ~@8 e4@4 ~ [g3,e4]@12 e4@12 ~@10 c4@17 ~@16 c4@13 ~@71, ~@86 g3@12 ~@8 [g3,e4]@12 ~ [g3,e4]@8 g3@8 ~@5 [g3,e4]@8 ~@9 [g3,e4]@8 ~@9 [g3,e4]@8 ~@4 [g3,e4]@8 ~@9 [g3,b3]@4 ~@17]/7", // G7 C G7 C G
P: "[~@5 g2@4 d3@4 [g3,b3,f4]@4 [g3,b3,f4]@4 d3@4 ~ g3@4 [g3,b3,f4]@4 d3@4 ~ [g2,b3]@4 d3@4 [g3,b3,f4]@4 [g3,b3,f4]@4 d3@4 g3@4 ~, g3@13 ~@25 g3@9 ~@17, b3 ~@7, ~ f4@8 ~@29 f4@4 ~@22]/2", // G7 G G7
Q: "[g3,b3,f4]@4 d3@4 [g2,b3,f4]@4 d3@4 ~ [g3,f4]@4 [g3,b3,f4]@4 d3@4 g3@3, ~@2 g3@2 b3 ~@3", // G7
R: "[~@2 [g3,f4]@4 d3@4 [g3,c4,e4]@4 g3@4 [g3,c4,e4]@4 ~@5 c3@4 g3@4 c4@4 c3@4 ~ [c3,g3,e4]@4 g3@4 [g3,c4,e4]@4 c4@4 ~ c3@3, ~ b3@4 ~@5 c3@17 ~@37, ~@22 c4@13 ~@8 c4@9 ~@12, ~@22 [g3,e4]@8 ~@5 [g3,e4]@8 ~@13 [g3,e4]@8]/2", // G7 C
S: "[~ g3@4 c4@4 c3@4 [c3,g3,e4]@4 g3@4 ~ [g3,c4,e4]@4 c4@4 c3@4 [g3,c4,e4]@4 ~ [g3,c4]@4 [g3,c4,e4]@4 c3@4 c3@4 ~ e4@4 c4@4 c3@4 g3@4 c4@4 c3@4 ~ f2@4 c3@4 [a3,c4,f4]@4 c4@4 ~ c3@4 c4@4 c3@4 c3@4 ~ [f3,f4]@33 [g3,c4,e4]@4 g3@4 [g3,c4,e4]@4, ~@5 [g3,e4]@8 c4@9 ~@4 [g3,e4]@8 ~@4 e4@4 ~@5 [g3,a#3,c4,e4]@8 [g3,a#3,c4]@4 ~ [g3,a#3,e4]@8 ~@4 [g3,a#3,e4]@8 ~ [a3,c4,f4]@8 ~@4 [a3,f4]@8 ~ [a3,f4]@12 [g#3,d4]@34 c3@12]/5", // C C5 C F C C7 Edim F …
T: "[~@5 c3@4 g3@4 ~@5 c3@4 [g3,b3,f4]@4 d3@4 [g3,b3,f4]@4 ~@9 g3@4 [g3,b3,f4]@4 d3@4 [g3,c4,e4]@5 g3@4 [g3,c4,e4]@4 g3@4 ~@5 g3@4 [g3,c4,e4]@4 c3@4 [g3,c4,e4]@4 g3@4 ~ [g3,c4,e4]@4 ~@8 g3@4 ~@4 c3@4 ~ g2@5, ~ c4@12 e4@8 ~@47 [c4,e4]@9 ~@38 e4@6 ~@7, ~ [g3,e4]@8 ~@4 c4@4 ~@22 d3@9 ~@7 c3@15 ~@2 c3@10 ~@7 c3@14 ~@3 c3@10 ~@12, ~@14 g3@8 ~@12 [g3,b3,f4]@8 ~@60 [g3,c4,e4]@8 ~@4 [g3,c4]@7 ~@7]/4", // G7 C G7 C C5
U: "[d3@4 [g3,b3,f4]@4 [g3,b3,f4]@8 d3@4 ~@5 d3@4 g2@4 d3@4 ~ [g3,f4]@3 [g3,b3,f4]@9 d3@4 ~@4 d3@4 g2@4 d3@4 ~ [g3,b3,f4]@4 [g3,b3,f4]@8 d3@5 ~@4 d3@4, ~@20 [g3,b3,f4]@12 ~@5 b3@4 ~@13 [g3,b3,f4]@12 ~@22 [g3,b3,f4]@8]/3", // G7
V: "[~@4 a3@4 ~ [a3,c4,f4]@4 [a3,c4,f4]@8 d3@4 ~@5 d3@4 g2@5 d3@3 [g3,b3,f4]@4 [g3,b3,f4]@8 ~ g2@4 ~@4 g2@4 ~@4 g3@4 ~ [g3,c4,e4]@4 [g3,c4,e4]@8 c3@4 ~@5 c3@4 c3@5 g3@4 [g3,c4,e4]@4 [g3,c4,e4]@8 c3@4 ~@4 c3@4 ~@5 g3@4 [g3,c4,e4]@4 [g3,c4,e4]@9 c3@4, d3@10 ~@15 [a3,c4,f4]@11 ~@23 [g3,b3,f4]@8 c3@7 ~@19 [g3,c4,e4]@9 ~@24 [g3,c4,e4]@9 c3@7 ~@18]/5", // F G7 C F G7 C
W: "[[g3,c4,e4]@4 c3@4 ~ [c3,c4,e4]@34 ~@21, ~@4 g3@17 ~@11]/2", // C
})).s("gm_acoustic_guitar_steel").gain(0.06).pan(1)
// other · epiano1
const epiano1 = note("<~@13 A@2 B@3 C D@2 E F ~@23 G@3 H@2 I@2 J@3 ~@22 K@3 L@2>".pickRestart({
A: "[~@2 g3@9 ~@4 a3@10 ~@2 e4@17 ~@20]/2", B: "[~@18 g3@6 a3@6 ~ f4@37 ~@18 g3@6 a3@4]/3", C: "~ f4@14 ~",
D: "[~@25 g3@6 a3@6 ~ e4@25 ~]/2", E: "~@7 g3@4 ~ a3@4 c4@3 ~ e4@4 g4@4 a4@4", F: "~ c5@4 e5@4 ~@23",
G: "[~@25 g3@10 ~@3 a3@12 e4@17 ~@29]/3", H: "[~@9 g3@6 a3@6 ~ f4@37 ~@5]/2", I: "[~@12 g3@6 ~ a3@6 f4@28 ~@11]/2",
J: "[~@16 g3@6 a3@6 e4@25 ~@9 g3@4 a3@4 ~ c4@3 ~ e4@4 g4@4 a4@4 c5@4 ~ e5@2 ~@2]/3",
K: "[~@4 e5@4 g4@4 c5@4 ~ f5@12 d5@8 ~ e5@4 g4@4 c5@4 f5@12 ~ d5@8 e5@4 ~ g4@4 c5@4 f5@12]/3",
L: "[~ d5@8 e5@27 ~@28]/2",
})).s("gm_epiano1").gain(0.51).pan(0.7)
// chords · pad warm
const pad_warm = note(`<
~ A@4 B@2 C@4 D@4 E@5 F@2 G@2 H@4 I@2 J@7 K@2 L@2 M@4 N@4 O@6 P@3 Q@4 R@2 S@2 T@3 U@7 V W@6
>`.pickRestart({
A: "[~@3 [g3,c4,e4]@61]/4", B: "[~@13 [g3,c4,e4,g4]@51]/2", C: "[~@17 [g3,b3,f4,g4]@111]/4",
D: "[~@23 [g3,c4,e4,g4]@105]/4", E: "[~@3 [g3,b3,f4,g4]@13]/5", F: "[~@5 [c4,e4,g4]@59]/2",
G: "[~@9 [g3,c4,e4]@55]/2", H: "[~@3 [g3,b3,f4]@29]/4", I: "[~@19 [g3,c4,e4]@45]/2",
J: "[~@22 [g3,a#3,c4,e4]@67 ~ [f3,a3,c4,f4]@33 [g#3,c4,d4,f4]@34 [g3,c4,e4]@34 [g3,b3,f4]@33]/7", // C7 F Dm7b5 C G7
K: "[~ [g3,c4,e4]@63]/2", L: "[~ [g3,c4,e4,g4]@15]/2", M: "[~@7 [g3,b3,f4,g4]@121]/4", N: "[~@7 [g3,c4,e4,g4]@57]/4",
O: "[~@7 [g3,b3,f4,g4]@45 [c4,e4,g4]@12]/6", P: "[~@31 [g3,c4,e4]@65]/3", Q: "[~@3 [g3,b3,f4]@125]/4",
R: "[~@5 [g3,c4,e4]@27]/2", S: "[~@13 [g3,a#3,c4,e4]@51]/2",
T: "[~@17 [f3,a3,c4,f4]@33 [g#3,c4,d4,f4]@34 [g3,c4,e4]@12]/3", // F Dm7b5 C
U: "[~@22 [g3,b3,f4]@33 [g3,c4,e4]@67 ~ [g3,b3,f4]@101]/7", V: "[a3,c4,f4]",
W: "[~@2 [g3,b3,f4]@33 [g3,c4,e4]@135 ~@22]/6", // G7 C
})).s("gm_pad_warm").gain(0.05)
// other · string ensemble 1
const string_ensemble_1 = note("<~@21 A B@6 C@2 D@7 E@2 ~@16 F G@5 H I@4 J@2 K@8 L M@6>".pickRestart({
A: "~@26 g4@2 a4@2 ~ b4", B: "[~ c5@2 d5@2 e5@2 f5 ~ g5@50 ~ e5@8 c5@8 ~ b4@59 d5@8 g4@25 a4@8 ~ b4@14]/6",
C: "[~@3 d5@8 f5@8 e5@45]/2",
D: "[~@6 d5@8 c5@8 ~ g5@25 f5@8 ~ e5@16 d5@8 ~ c5@8 a5@25 ~ g5@8 f5@17 ~@17 e5@16 d5@8 ~ c5@8 b4@17 c5@8 ~ d5@7]/7",
E: "[~@5 c5@58 ~]/2", F: "~@17 g4@2 a4@2 b4@2 ~ c5@2 d5@2 e5@2 f5 ~", G: "[g5@50 e5@8 ~ c5@8 b4@59 d5@8 ~ g4@25]/5",
H: "a4@8 b4@17 d5@7", I: "[~@2 f5@8 e5@50 ~ d5@8 c5@8 ~ g5@25 f5@8 e5@17]/4", J: "[d5@8 ~ c5@8 a5@25 g5@8 ~ f5@13]/2",
K: "[~@20 e5@17 d5@8 ~ c5@8 b4@17 c5@8 d5@13 c5@54 ~ b4@4 a4@4 g4@34 b4@17 d5@17 g5@33]/8", L: "f5",
M: "[~ g5@80 ~@15]/6",
})).s("gm_string_ensemble_1").gain(0.1).pan(0.4)
// drums · kick
const kick = s("bd").struct(`<
~ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS Z AT AU
J AV AW M AX AY P AZ BA BB BC BD BE BF BG BH F BI BJ BK BL BM AF BN BO BP BQ BR R S T U BS ~
>`.pickRestart({
A: "~@7 x ~@11 x ~@12", B: "~@9 x ~@11 x ~@10", C: "~@10 x ~@12 x ~@8", D: "~@12 x ~@12 x ~@6", E: "~@7 x ~@5 x ~@2",
F: "~@15 x ~@12 x ~@3", G: "~@17 x ~@12 x ~", H: "~@19 x ~@11 x", I: "~@21 x ~@10", J: "~ x ~@20 x ~@9",
K: "~@3 x ~@20 x ~@7", L: "~@5 x ~@20 x ~@5", M: "~@6 x ~@20 x ~@4", N: "~@8 x ~@20 x ~@2", O: "~@10 x ~@20 x",
P: "~@11 x ~@20", Q: "~ x ~@11 x ~@18", R: "~@2 x ~@12 x ~@16", S: "~@4 x ~@12 x ~@14", T: "~@3 x ~@5 x ~@6",
U: "~@7 x ~@12 x ~@11", V: "~@9 x ~@12 x ~@3 x ~@5", W: "~@11 x ~@11 x ~@4 x ~@3", X: "~@13 x ~@11 x ~@3 x ~@2",
Y: "~@14 x ~@12 x ~@3 x", Z: "~@16 x ~@12 x ~@2", AA: "~ x ~@16 x ~@11 x ~", AB: "~@3 x ~@15 x ~@12",
AC: "x ~@3 x ~@16 x ~@10", AD: "~@2 x ~@3 x ~@16 x ~@8", AE: "~@3 x ~@4 x ~@16 x ~@6", AF: "~@5 x ~@3 x ~@16 x ~@5",
AG: "~@7 x ~@3 x ~@16 x ~@3", AH: "~@25 x ~@4 x ~", AI: "~@10 x ~@4 x ~@15 x", AJ: "~@3 x!2 ~@3",
AK: "~ x ~@12 x ~@3 x ~@13", AL: "~@3 x ~@11 x ~@4 x ~@11", AM: "~@5 x ~@11 x ~@14", AN: "~@6 x ~@12 x ~@12",
AO: "~@8 x ~@12 x ~@10", AP: "~@5 x ~@5 x ~@4", AQ: "~@11 x ~@12 x ~@7", AR: "~@13 x ~@12 x ~@5",
AS: "~@15 x ~@11 x ~@4", AT: "~@18 x ~@12 x", AU: "~@5 x ~@2", AV: "~@2 x ~@20 x ~@8", AW: "~@4 x ~@20 x ~@6",
AX: "~@7 x ~@21 x ~@2", AY: "~@9 x ~@20 x ~", AZ: "x ~@12 x ~@3 x ~@14", BA: "~@2 x ~@11 x ~@4 x ~@12",
BB: "~@3 x ~@12 x ~@3 x ~@11", BC: "~@5 x ~@12 x ~@3 x ~@9", BD: "~@7 x ~@11 x ~@4 x ~@7",
BE: "~@9 x ~@11 x ~@3 x ~@6", BF: "~@10 x ~@12 x ~@3 x ~@4", BG: "~@12 x ~@12 x ~@3 x ~@2", BH: "~@7 x ~@5 x ~ x",
BI: "x ~@16 x ~@12 x ~", BJ: "~@2 x ~@16 x ~@12", BK: "~@16 x ~@4 x ~@10", BL: "~ x ~@3 x ~@16 x ~@9",
BM: "~@3 x ~@3 x ~@16 x ~@7", BN: "~@6 x ~@3 x ~@16 x ~@4", BO: "~@8 x ~@3 x ~@16 x ~@2", BP: "~@10 x ~@3 x ~@16 x",
BQ: "~@11 x ~@4 x ~@15", BR: "~ x ~@11 x ~@3 x ~@14", BS: "~@9 x ~@22",
})).gain(0.4)
// drums · rim
const rim = s("rim").struct(`<
A B C D E F G H I J K ~ L M N O P Q R S T U ~@17 V B U W E X Y Z I AA AB ~ L M AC AD P ~@21 R S T U ~@2
>`.pickRestart({
A: "~@5 x ~@8 x ~@7 x ~@7 x ~", B: "~@15 x ~@16", C: "~@17 x ~@14", D: "~@19 x ~@12", E: "~@5 x ~@2", F: "~@11 x ~@4",
G: "~@3 x", H: "~@13 x ~@2", I: "~@27 x ~@4", J: "~@29 x ~@2", K: "~@31 x", L: "x", M: "~ x ~@14", N: "~ x ~@6",
O: "~@3 x ~@12", P: "~@7 x ~@24", Q: "~@9 x ~@22", R: "~@11 x ~@20", S: "~@3 x ~@4", T: "~@7 x ~@8", U: "~ x",
V: "~@13 x ~@18", W: "~@9 x ~@6", X: "~@21 x ~@10", Y: "~@23 x ~@8", Z: "~@25 x ~@6", AA: "~@7 x", AB: "~@15 x",
AC: "~@3 x ~@28", AD: "~@5 x ~@26",
})).gain(0.3)
// drums · snare
const snare = s("sd").struct(`<
~@22 A B C D E F G H I J K L M D N F G ~@17 N O P Q R S B T U V W X Y I R S B C U V F ~@6
>`.pickRestart({
A: "~@17 x ~@14", B: "~@2 x ~@16 x ~@12", C: "~@4 x ~@16 x ~@10", D: "~@6 x ~@16 x ~@8", E: "~ x ~ x",
F: "~@9 x ~@16 x ~@5", G: "~@11 x ~@16 x ~@3", H: "~@13 x ~@15 x ~@2", I: "~@14 x ~@16 x", J: "~ x",
K: "~ x ~@16 x ~@13", L: "~@3 x ~@16 x ~@7 x ~@3", M: "~@17 x ~@3 x ~@10", N: "~@8 x ~@16 x ~@6",
O: "~@10 x ~@16 x ~@4", P: "~@12 x ~@16 x ~@2", Q: "~@13 x ~@16 x ~", R: "~@15 x ~@16", S: "x ~@16 x ~@14",
T: "~@3 x ~@16 x ~@11", U: "~@5 x ~@16 x ~@9", V: "~@7 x ~@16 x ~@7", W: "~@9 x ~@15 x ~@6", X: "~@10 x ~@8 x ~@12",
Y: "~@8 x ~@3 x ~@16 x ~@2",
})).gain(0.35)
// drums · hihat
const hihat = s("hh").struct(`<
~ A B C D E A F C G E H F I G J H K L G J H M ~@16 N O P Q R S T U V R S T U W X S A ~@21 I G J H M ~
>`.pickRestart({
A: "~@7 x ~@7 x ~@8 x ~@7", B: "x ~@8 x ~@7 x ~@7 x ~@6", C: "~@2 x ~@7 x ~@8 x ~@7 x ~@4",
D: "~@4 x ~@7 x ~@7 x ~@8 x ~@2", E: "~@5 x ~@8 x ~@7 x ~@8 x", F: "x ~@8 x ~@7 x ~@8 x ~@5",
G: "~@4 x ~@7 x ~@8 x ~@7 x ~@2", H: "~@7 x ~@8 x ~@7 x ~@7", I: "~@2 x ~@8 x ~@7 x ~@7 x ~@4",
J: "~@6 x ~@7 x ~@7 x ~@8 x", K: "~ x ~@7 x ~@7 x ~@8 x ~@5", L: "~@2 x ~@8 x ~@7 x ~@8 x ~@3", M: "~ x ~@30",
N: "~@5 x ~@7 x ~@7 x ~@8 x ~", O: "~@6 x ~@8 x ~@7 x ~@7 x", P: "~@8 x ~@7 x ~@8 x ~@6",
Q: "~ x ~@8 x ~@7 x ~@7 x ~@5", R: "~@3 x ~@7 x ~@8 x ~@7 x ~@3", S: "~@5 x ~@7 x ~@8 x ~@7 x ~",
T: "~@6 x ~@8 x ~@7 x ~@8", U: "x ~@7 x ~@8 x ~@7 x ~@6", V: "~ x ~@8 x ~@7 x ~@8 x ~@4",
W: "~@2 x ~@7 x ~@7 x ~@8 x ~@4", X: "~@3 x ~@8 x ~@7 x ~@8 x ~@2",
})).gain(0.4)
// drums · open hat
const open_hat = s("oh").struct(`<
~@3 A ~ B ~ C ~ D ~ E ~ F ~ G ~ H ~@2 I J K ~@18 L M N ~ O ~ P ~ Q ~ R ~ S ~ T ~@21 U V ~ W ~@2
>`.pickRestart({
A: "~@3 x ~@12", B: "~ x ~@7 x ~@22", C: "~@13 x ~@18", D: "~ x!2 ~", E: "~@5 x ~@2", F: "~@15 x ~@7 x ~@8",
G: "~@27 x ~@4", H: "~@11 x ~@3 x", I: "~ x ~@30", J: "~@7 x", K: "~@5 x ~@26", L: "~ x ~@6", M: "~@31 x",
N: "~@7 x ~@24", O: "~@11 x ~@20", P: "~@3 x ~@3 x ~@8", Q: "~@17 x ~@14", R: "~@12 x ~@8 x ~@10", S: "~@3 x",
T: "~@19 x ~@8 x ~@3", U: "~@23 x ~@8", V: "x", W: "~@3 x ~@28",
})).gain(0.4)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~@2 A B C D E F G H I J K L M N O P Q R S T U ~@16 V W A X Y Z AA AB AC AD AE AF AG AH AI AJ AK ~@21 AL R S AM AN ~
>`.pickRestart({
A: "x!2 ~@6", B: "~ x ~ x ~@12", C: "~ x!2 ~@5", D: "~ x ~@7 x ~@22", E: "~@7 x ~@3 x ~@20", F: "~@9 x ~@3 x ~@18",
G: "~@10 x ~@4 x ~@16", H: "~ x!2 ~", I: "~@7 x ~ x ~@6", J: "~@4 x!2 ~@2", K: "~@17 x ~@3 x ~@10",
L: "~@15 x ~@7 x ~@8", M: "~@21 x ~@3 x ~@6", N: "~@22 x ~@4 x ~@4", O: "~@6 x!2", P: "~@11 x ~@3 x", Q: "~@7 x",
R: "x ~@28 x ~@2", S: "~ x ~@29 x", T: "~@3 x ~@24 x ~@3", U: "~@5 x ~@26", V: "~@15 x", W: "~ x ~@14",
X: "~ x ~@3 x ~@25 x", Y: "~@7 x ~@24", Z: "~@5 x ~@3 x ~@22", AA: "~@6 x ~@4 x ~@20", AB: "~@2 x!2 ~@4",
AC: "~@3 x ~@3 x ~@8", AD: "~@3 x!2 ~@3", AE: "~@13 x ~@3 x ~@14", AF: "~@15 x ~@3 x ~@12", AG: "~@12 x ~@8 x ~@10",
AH: "~@18 x ~@4 x ~@8", AI: "~@5 x!2 ~", AJ: "~@11 x ~ x ~@2", AK: "~@19 x ~@8 x ~@3", AL: "~@23 x ~@8",
AM: "~@3 x ~@28", AN: "~ x ~@3 x ~@26",
})).gain(0.3)
// drums · high tom
const high_tom = s("ht").struct(`<
~@5 A ~@3 B ~@3 C ~@3 D ~@4 E ~ F ~ B ~ G ~ C ~ H ~@3 I ~@2 J ~@3 K ~@3 L ~@3 M ~@3 N ~ O ~@2 K ~ P ~ Q ~ R ~@3 S ~ T
~ U ~ V U ~@5
>`.pickRestart({
A: "~@5 x ~@26", B: "~@3 x ~@4", C: "~@19 x ~@12", D: "~@13 x ~@2", E: "~ x ~@30", F: "~ x ~@2", G: "~@15 x ~@16",
H: "~@11 x ~@4", I: "~@29 x ~@2", J: "x", K: "~@3 x ~@28", L: "~@5 x ~@10", M: "~@17 x ~@14", N: "~@3 x", O: "~@31 x",
P: "~@3 x ~@12", Q: "~@9 x ~@22", R: "~@13 x ~@18", S: "~@5 x ~@2", T: "~@23 x ~@8", U: "~@27 x ~@4", V: "~@15 x",
})).gain(0.4)
// … 47 more lines
More by Linda Ronstadt
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.