0:00/0:00
// UR — Alanis Morissette
// 87 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 72 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(87/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 · harmonica
const harmonica = note("<~@43 A@6 ~@23>".pickRestart({
A: "[~@48 d5@42 [e5,g5]@24 [e5,g5]@4 ~@2 a5@15 ~@3 g5@11 ~ [d5,f#5]@10 ~@2 [e5,g5]@45 ~@3 [f#5,a5]@9 ~@3 [e5,g5]@5 ~ [d5,f#5]@5 ~ e5@28 ~@26, ~@47 f#5@44 ~@28 f#5@15 ~@3 e5@10 ~@87 g5@21 ~@33]/6", // Em D Em F#m Em D
})).s("gm_harmonica").gain(0.31)
// other · electric guitar jazz
const electric_guitar_jazz = note(`<
~@20 A@2 B@2 C@2 D@2 ~@6 E F@3 G@4 H@3 ~@10 I@3 J@2 K@2 L@3 ~@2 M ~@4
>`.pickRestart({
A: "[f#4@38 ~@3 g4@21 ~@4 a4@12 b4@18]/2", B: "[~@11 f#4@27 ~@4 g4@19 ~@5 a4@11 ~ b4@17 ~]/2",
C: "[~@11 f#4@25 ~@5 g4@20 ~@4 a4@9 ~@3 b4@19]/2", D: "[~@11 f#4@26 ~@4 g4@19 ~@5 a4@8 ~@4 b4@17 ~@2]/2",
E: "~@42 f#4 ~@2 f#4@2 ~", F: "[f#4@3 e4@39 ~@5 f#4@37 ~@5 g4@20 ~@4 a4@12 b4@19]/3",
G: "[~@11 f#4@27 ~@4 g4@20 ~@4 a4@10 ~ b4@23 ~@7 f#4@25 ~@5 g4@19 ~@5 a4@12 ~ b4@16 ~@2]/4",
H: "[~@11 f#4@16 ~@8 f#4@4 ~@2 g4@19 ~@5 a4@10 ~@2 b4@25 ~@42]/3",
I: "[~@47 f#4@33 ~@3 f#4@6 g4@22 ~@2 a4@12 b4@19]/3", J: "[~@12 f#4@24 ~@5 g4@19 ~@6 a4@11 b4@18 ~]/2",
K: "[~@12 f#4@22 ~@3 f#4@5 g4@18 ~@6 a4@9 ~@2 b4@17 ~@2]/2",
L: "[~@12 f#4@23 ~@6 g4@14 ~@11 a4@9 ~@3 b4@8 ~@4 b4@49 ~@5]/3", M: "~@18 f#4 ~@2 f#4@2 ~ g4@5 ~ a4@6 g4@5 ~ f#4@6",
})).s("gm_electric_guitar_jazz").gain(0.31)
// chords · string ensemble 1
const string_ensemble_1 = note("<~@12 A@2 B@2 C@2 D@2 E@8 ~@7 F@6 G H@7 ~ I J@2 K@2 L@7 M@4 N@6>".pickRestart({
A: "[~@8 a3@8 c4@9 ~@7, ~@11 g3@13 ~@72, ~@12 g2@79 ~@5]/2",
B: "[~ g2@22 [a2,c4]@24 [c2,c3,e4]@25 [d2,a4]@23 [g2,b3], [g3,b3]@23 ~@73]/2", // Am C D5 G
C: "[[g1,d4]@24 [a1,a3,c4,e4]@23 [c1,c2,e4,g4]@24 [d1,d2,a4]@24 [g1,g2,b3]]/2", // G5 Am C D5 G
D: "[~@23 [a1,a2,c4]@23 ~ [c1,e4,g4]@24 [d1,d2,a4]@24 [g1,g2,d4], ~@23 c2@12 ~@13]/2", // Am C D5 G5
E: "[~@24 [a1,a2,a3,c4,e4]@23 [c2,c3,c4,e4]@24 [d2,d3,d4,f#4]@24 [g1,g2,b3,d4]@24 [a1,a2,a3,c4,e4]@24 [c2,c3,c4,e4]@24 [d2,d3,d4,f#4]@24 [g1,g2,b3,d4]@24 [a1,a2,a3,c4,e4]@24 [c2,c3,c4,e4]@24 [d2,d3]@23 ~ [g1,b3,d4]@24 [a1,a2,a3,c4]@23 [c2,c3,e4,g4]@24 [d2,d3,d4,f#4]@25 [g1,g2,g3], ~@286 g2@25 ~@73]/8", // Am C D G Am C D G …
F: "[~@41 g3@5 ~ [g1,g2,b3]@24 [a1,c4]@23 ~ [c2,c3]@23 ~ d2@22 ~ [g1,g3,d4]@24 [a1,a2,a3,c4,e4]@25 [c2,c3,c4,e4]@24 [d2,d3,d4,f#4]@24 [g1,g2,g3,b3,d4]@24 [a1,a2,c4,e4]@25, ~@94 [c4,e4]@24 d4@23 b3@25 ~@122]/6", // G Am C G5 Am C D G …
G: "[c2,c3,c4,e4]@23 [d2,d3,d4,f#4]@25", // C D
H: "[[g1,g2,g3,b3,d4]@23 [a1,a2]@24 [c2,c3,c4,e4]@23 [d2,d4]@25 ~ g1@23 ~ [a3,c4,e4]@23 [c2,c3,e4]@24 [d2,d3,d4,f#4]@24 ~ [g1,g3,b3,d4]@22 ~ [a2,a3]@24 [c2,c3,c4,e4]@24 [d2,d3,d4,f#4]@24 ~ g1@29 ~@19, ~@95 [g2,g3,b3,d4]@24 [a1,a2]@24 ~@48 g2@23 a1@25 ~@48 g3@14 ~@35, ~@96 g2@7 ~@9]/7", // G A C D Am C D G …
I: "g1@12 g2@2 ~@3 g2@4 ~@7 a1@7 a2@4 ~@2 a2@3 ~@4",
J: "[~@5 c2@6 c3@2 ~@4 c3@4 ~@14 d3@2 ~@3 d3 ~@18 g2@6 g2@6 ~@18 a2@6 c2, ~@29 d2@12 ~@6 g1@24 a1@24 ~]/2",
K: "[~@17 c2@3 ~@16 d3@10 ~@20 g2@5 ~@19 a2@5 c2, ~@11 c3@10 ~@2 d2@23 ~ g1@24 a1@24 ~, ~@59 b3@12 ~@12 [a3,c4]@12 ~]/2", // Am
L: "[~@5 c4@6 ~@6 c3@5 ~@7 d4@6 ~@6 d3@6 ~@18 g3@5 ~@18 c4@6 ~@14 c3@11 ~@18 g3@5 ~@19 a3@5 ~@19 c4@5 ~@20 d4@5 ~@12 d3@12 ~@18 a3@6 ~@19 c4@5 ~@19 c4@6 ~@18 g3@6, ~@11 [c4,e4]@12 d2@23 ~ [g1,b3,d4]@23 [a1,a3]@24 ~ [c2,e4]@24 [d2,d4,f#4]@23 ~ [g1,b3,d4]@24 ~@13 a2@11 ~@13 c3@10 ~@37 g2@12 a1@24 c2@26 ~@23, ~@35 [d4,f#4]@11 ~ g3@18 ~@6 e4@24 ~@72 e4@24 ~@73 e4@24 e4@26 ~@22, ~@59 g2@12 c4@17 ~@6 c4@24 ~@48 a1@24 ~ [c2,c4,e4]@24 [d2,d4,f#4]@24 [g1,g3,b3,d4]@25 ~@13 a2@11 ~@24 [d2,d4,f#4]@23 ~, ~@82 a2@12 ~@38 d3@10 ~@13 g2@12 c4@18 ~@79 c4@18 ~@5 c4@18 ~@19 d3@11 ~]/7", // C G A C D G D C …
M: "[g1 ~@16 g3@6 ~@18 c4@6 ~@12 c3@11 ~@14 d3@11 ~@18 g3@6 ~@19 c4@5 ~@13 c3@11 ~@13 d3@11 ~, [b3,d4]@23 [a1,e4]@24 [c2,c4,e4]@24 [d2,d4,f#4]@24 [g1,b3,d4]@24 [a1,a3,e4]@24 [c2,c4,e4]@24 [d2,d4,f#4]@24 ~, ~@23 c4@18 ~@54 g3@18 ~@6 c4@19 ~@54, ~@35 a2@12 ~@60 g2@12 ~@13 a2@11 ~@49]/4", // Bm A5 C D G A5 C D
N: "[~@17 g3@5 ~@19 c4@5 ~@15 c3@10 ~@12 d3@12 ~@13 g2@11 ~@18 c4@5 ~@15 c3@10 ~@13 d3@11 [g1,g2,b3,d4,g4]@50 ~@47, [g1,b3,d4]@23 [a1,a3]@24 [c2,c4,e4,g4]@24 d2@23 ~@2 g1@24 a1@22 ~ [c2,c4,e4,g4]@23 ~ [d2,f#4]@24 ~@97, g3@17 ~@6 c4@18 ~@31 [d4,f#4]@23 [g3,b3,d4]@25 ~ [a3,e4]@22 ~@145, ~@12 g2@10 ~@14 a2@11 ~@74 c4@16 ~@31 d4@23 ~@97, ~@131 a2@11 ~@146]/6", // G A C D G A5
})).s("gm_string_ensemble_1").gain(0.2)
// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note(`<
~@13 A B@2 C@5 D@2 E@2 F@3 ~@4 G ~@2 H@2 I@2 ~ J ~ K L ~ M N ~@7 O ~@2 P@2 Q R ~ S ~@3 T ~@5
>`.pickRestart({
A: "~@4 d4@3 ~", B: "[d4@23 [a3,e4]@24 [c4,g4]@25 ~ d3@23, ~@3 [d4,f#4]]/2",
C: "[g3@24 a2@23 c4@24 [d4,f#4]@24 [g3,d4]@24 [a3,e4]@24 c4@24 [d4,f#4]@24 [b3,g4]@25 ~@24]/5", // D G5 A5 D Em
D: "[~@47 g3@25 ~@24]/2", E: "[~@47 g3@24 ~@25]/2", F: "[~@23 [d4,f#4]@24 g3@25 e4@22 c4@24 ~@26]/3", G: "g3 ~@23",
H: "[~@47 [g3,d4]@24 [a2,a3,e4]@25]/2", I: "[~@23 d3@23 g2@25 ~@25, ~@11 f#4@12 ~@25]/2", J: "~@23 a3@25",
K: "~@24 [c4,e4]@23 ~, ~@23 a3@24 ~", L: "~@23 d3@25, ~@11 f#4@13", M: "c4 ~", N: "~@23 [c4,e4]@24 ~",
O: "~@5 g3@6 ~ d4@12 ~@5 a3@6 ~@13, ~@11 g3@12 ~@25", P: "[~@47 g3@24 a3@24 ~]/2", Q: "~@41 g3@6 ~", R: "~ a3",
S: "g3@17 ~@6 a3@24 ~", T: "~@23 e4@23 ~@2",
})).s("gm_string_ensemble_1").gain(0.1)
// bass · acoustic bass
const bass = note(`<
~@11 A@2 B C D E@4 F G H@7 I@3 J@2 K@2 L@4 M N O P Q@4 R@2 S T U@8 V W X@2 Y@3 N Z@2 AA@2
>`.pickRestart({
A: "[~@47 g2@24 ~ a2@24]/2", B: "c2@24 d2@18 d2@5 ~", C: "g2@18 g2@5 a2@18 ~ a2@5 ~", D: "c2@17 c2@6 ~ d2@23 ~",
E: "[g2@18 g2@6 a2@18 a2@5 c2@18 ~ c2@5 d2@17 ~ d2@6 g2@18 g2@6 a2@18 a2@6 c2@18 ~ c2@6 d2@18 d2@6]/4",
F: "g2@17 g2@7 a2@18 a2@6", G: "c2@18 c2@5 d2@24 ~",
H: "[g2@18 g2@6 a2@18 a2@5 c2@18 c2@6 ~ d2@23 g2@18 g2@6 a2@19 a2@5 c2@17 ~ c2@6 d2@24 g2@18 g2@6 a2@18 a2@6 c2@18 c2@6 d2@23 ~ g2@19 g2@6 a2@18 a2@6]/7",
I: "[c2@18 c2@5 d2@18 d2@6 g2@18 g2@6 a2@18 a2@6 c2@18 c2@6 d2@23 ~@2]/3",
J: "[g2@5 g2@6 g2@6 ~@6 a2@6 ~ a2@5 a2@6 ~@6 c2@5 ~ c2@6 c2@6 ~@6 d2@6 d2@6 d2@6 d2@6 ~, ~@17 g2@78 ~, ~@7 a2@9, ~@65 c2@31]/2",
K: "[g2@5 g2@6 g2@6 g2@6 a2@6 a2@6 a2@6 a2@6 c2@6 c2@6 c2@6 c2@6 d2@6 d2@6 d2@6 d2@6 ~]/2",
L: "[g2@17 g2@6 a2@18 ~ a2@5 c2@18 c2@6 d2@24 g2@18 g2@6 a2@19 a2@5 c2@18 c2@6 d2@24 ~]/4",
M: "g2@17 g2@6 a2@19 a2@6", N: "c2@3 c2 d2@4", O: "g2@17 g2@6 a2@25", P: "c2@23 d2@25",
Q: "[g2@18 g2@6 a2@18 a2@5 c2@18 c2@6 d2@18 d2@6 g2@18 g2@6 a2@18 a2@6 c2@18 ~ c2@6 d2@24]/4",
R: "[g2@23 a2@24 c2@24 d2@24 ~]/2", S: "g2@6 g2@11 g2@6 a2@6 a2@13 a2@6",
T: "c2@5 ~@18 d2@6 d2@6 d2@6 d2@6 ~, ~@5 c2@42 ~",
U: "[g2@5 g2@7 g2@6 ~@6 a2@6 a2@7 a2@5 ~@6 c2@6 c2@6 c2@5 c2@6 d2@8 d2@5 d2@6 d2@5 g2@6 ~ g2@6 g2@5 g2@6 ~ a2@5 a2@6 a2@6 a2@5 ~ c2@6 c2@6 c2@5 ~ c2@6 d2@5 d2@6 ~ d2@6 d2@5 ~ g2@17 g2@7 a2@19 a2@5 c2@18 c2@5 ~ d2@18 d2@5 ~ g2@18 g2@5 ~ a2@18 a2@5 ~ c2@19 c2@6 d2@18 d2@6, ~@18 g2@53 ~@313, ~@7 a2@5 ~@52]/8",
V: "g2@3 g2 a2@3 a2", W: "c2@3 c2 d2@3 d2", X: "[g2@18 g2@5 a2@19 a2@5 c2@18 c2@6 ~ d2@24]/2",
Y: "[g2@17 g2@7 a2@17 a2@6 c2@18 c2@6 ~ d2@23 g2@18 g2@7 a2@18 a2@6]/3",
Z: "[g2@18 g2@6 a2@18 a2@5 c2@19 c2@6 d2@24]/2", AA: "[g2@9 ~@7]/2",
})).s("gm_acoustic_bass").gain(0.36)
// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
A@8 B@2 C@4 D@2 E@4 F@8 G@8 H I@3 J K@3 L@4 M@2 N@2 O@8 P@2 Q R S@4 T@2 U ~
>`.pickRestart({
A: "[~@7 g3 ~@118 d4@2, g3@21 ~@3 a3@54 d4@5 g4@6 d4@6 g3@79 d4@6 g4@6 d4@12 d4@12 d4@41 g4@7 c4@12 d4@6 g4@6 d4@60 c4@6 g4@6 c4@6 d3@6 d4@6 g4@11 ~, ~@6 d4@12 d4@51 c3@50 a3@49 d3@22 ~@2 g3@71 d3@54 c4@7 g4@5 c4@7 c3@47 ~, ~@12 g4@13 ~@5 c4@12 c4@6 c3@18 c4@35 d4@7 g4@6 d4@36 c4@6 g4@6 c4@28 ~@13 g4@18 c4@6 g4@6 c4@6 c3@54 c4@6 g4@7 c4@5 a3@72 ~, ~@36 g4@18 c4@5 g4@12 d3@55 c4@7 g4@5 c4@6 c3@46 ~@25 a3@72 g3@96 ~]/8",
B: "[~@15 d4, g3@7 g4, ~@5 c4@12 c4@12 c4@12 c4@55, ~@11 g4@24 ~ g4@11 c3@6 d4@6 g4@6 d4@6 d3@25, ~@23 a3@73]/2",
C: "[~@72 d3 ~@20 d4@3, g3@72 d3@30 d4@6 g4@6 d4@6 a3@24 c3@25 ~@23, ~@12 g4@24 g4@18 c4@6 g4@6 c4@80 ~@21 d3@25, ~@18 c4@12 c4@12 c4@6 c3@78 d4@6 g4@14 ~@10 g4@13 ~@11 g4@12, ~@23 a3@55 d4@6 g4@6 d4@5 g3@43 d4@12 d4@12 d4@8 ~@4 d4@12 ~@6]/4",
D: "[~@15 d4, g3@9 c4 g4@2 d3@4, ~@12 g4@18 c4@6 g4@6 c4@6 c3@25 ~@11 g4@12, ~@3 d4@8 c4@5, ~@24 a3@49 ~@5 d4@12 ~@6]/2",
E: "[~@18 d4@6 ~@42 c4@6 ~@41 d4@6 ~@43 c4@6 ~@18 d4@6, g3@24 a3@49 ~@22 g3@25 ~@11 g4@19 c4@6 g4@12 ~@12 g4@12, ~@6 d4@12 ~@12 c4@12 c4@12 c4@12 ~@23 d4@12 d4@12 ~@6 a3@49 d3@24, ~@12 g4@13 ~@11 g4@24 g4@13 ~@10 g4@13 ~@11 g4@13 ~@6 d4@12 d4@30 ~@24, ~@47 c3@25 d3@24 ~@48 c3@25 ~@23]/4",
F: "[~@162 c4@6 ~@17 d4@6 ~@90 d4@5 ~@19 d4@6 ~@43 c4@5 ~@12 g4@12 ~, g3@54 c4@6 g4@6 c4@5 d3@24 g3@61 g4@13 ~@11 g4@12 ~@11 g4@24 g4@12 ~@12 g4@12 d3@24 g3@24 a3@25 ~@23 d3@24 ~, ~@6 d4@12 d4@11 ~@13 d4@42 g4@24 g4@23 g4@12 c3@25 d3@24 ~@23 a3@24 ~@6 c4@12 c4@10 ~@8 g4@11 ~@13 g4@12 ~@12 g4@13 ~@11 g4@13 ~@24, ~@12 g4@24 g4@12 c3@60 ~@11 a3@49 ~@23 g3@48 c3@28 ~@68 c3@25 ~@24, ~@23 a3@85 ~@6 d4@11 d4@12 ~ d4@31 ~@4 d4@12 ~@24 d4@12 d4@12 d4@34 ~@2 d4@12 ~@12 d4@12 ~@24 d4@31 ~@5 d4@12 ~@7]/8",
G: "[~@65 c3@6 ~@18 d3@6 ~@42 c3@6 ~@18 c3@6 ~@19 g3@5 ~@168 d3@6 ~@12 d3@6 ~, g3@17 g3@55 ~@23 g3@18 g3@54 ~@24 g3@18 g3@66 g4@6 d4@6 g3@12 g4@9 d4@48 c4@9 d3@7 g4@12, ~@12 c4@18 ~@6 c4@24 c4@13 ~@11 c4@84 ~@44 c4@93 g3@78 ~, ~@24 a3@18 a3@30 ~@35 g4@24 g4@25 g4@24 g4@23 g4@12 a3@12 g4@12 c3@12 g4@12 d4@6 d3@67 c3@12 g4@6 c3@30, ~@48 c3@17 ~@6 d3@18 ~@30 c3@18 ~@6 c3@18 ~@6 d3@90 c3@54 a3@12 g4@6 a3@54 ~]/8",
H: "~@7 d4, a3!2, g3@3 g3@5, ~@3 c4@7 c4@14, ~@12 g4@18 d4@5 g4@13",
I: "[~@20 c4@3 ~@66 d4@6 ~@43 c4@6, c3@17 c3@6 d3@72 c3@18 c3@30 ~, ~@6 c4@14 ~@9 d4@12 d4@12 d4@12 d4@7 a3@26 ~@3 c4@18 c4@18 ~@7, ~@11 g4@12 ~@12 g4@24 g4@18 d4@6 g4@14 ~@11 g4@23 g4@12 ~, ~@47 g3@21 g3@29 ~@29 d3@18]/3",
J: "~@3 g3 ~@3 d4, g3@3 ~ a3@4, ~@12 g4@13 ~@5 d4@12 ~@6, ~@3 g4",
K: "[~@18 c4@5 ~@45 d4@3 ~@19 d4@5 ~@43 d4@6, c3@23 d3@47 ~@25 c3@49, ~@12 g4@12 ~@6 c4@12 c4@28 ~@7 d4@13 ~@11 c4@12 c4@31, ~@36 g4@17 d4@12 g3@5 ~ a3@24 ~@22 d3@27, ~@47 g3@12 g4@11 ~@13 g4@12 ~@13 g4@19 d4@5 g4@12]/3",
L: "[~@65 d4@7 ~@21 g3@3 ~@66 c4@6 ~@12 g4@11 ~, g3@20 ~@4 a3@17 a3@31 ~@24 g3@20 g3@52 d3@23 ~, ~@12 g4@23 ~ g4@24 g4@13 ~@11 g4@23 g4@19 d4@5 g4@7 d4@31 ~@5 d4@17 ~, ~@30 d4@23 d4@12 ~@13 d4@12 d4@12 d4@12 d4@5 a3@24 c3@26 ~@23, ~@47 c3@25 d3@78 c4@6 g4@13 ~@23]/4",
M: "[g3@17 ~@6 a3@18 ~@7 c3@17 ~@25 d3@6, ~@17 g3@79, ~@65 c3@31, ~@12 d3@3 ~, ~@7 g4]/2",
N: "[~@48 c3@17 c3@7 ~@18 d3@6, g3@17 g3@55 d3@18 ~@6, ~@11 g4@24 g4@25 ~@24 g4@12, ~@24 a3@17 a3@31 ~@24]/2",
O: "[~@69 c4@3 ~@18 d4@5 ~@69 c4@3 ~@163 c4@5 ~@21 c3@4 ~@18 d4@6, g3@18 g3@54 ~@23 g3@66 c3@7 ~@23 g3@20 g3@50 c4@3 d3@71 c3@21 ~@4 d3@24, ~@12 g4@24 g4@18 c4@12 c3@6 d3@24 ~@24 a3@48 ~@5 d4@11 ~ d4@12 d4@12 d4@61 c4@6 g4@6 c4@5 g3@13 g4@12 a3@24 ~@5 c4@12 ~ c4@9 ~@3 d4@12 ~@6, ~@21 c4@9 c4@18 c3@12 g4@12 ~@6 d4@12 ~@24 d4@11 d4@12 d4@30 d3@55 c4@6 g4@6 c4@6 c3@6 c4@6 g4@6 c3@60 c4@6 g4@13 ~@11 g4@15 ~@9 g4@12, ~@24 a3@18 a3@30 ~@12 g4@13 ~@10 g4@24 ~ g4@11 c3@6 c4@6 g4@12 ~@12 g4@24 g4@12 a3@91 c4@2 g3@28 ~@48]/8",
P: "[~@21 g3@3 ~@49 d3@5 ~@12 d4@6, g3@21 ~@4 a3@49 ~@22, ~ d4@2 d4@2 d4@2 d4@2 d4@2 d4@4 ~, ~@12 g4@12 ~@12 g4@24 g4@13 ~@12 g4@11, ~@24 c3@12 c3 ~@11]/2",
Q: "~@7 d4, g3@17 g3@6 a3@25, ~@6 d4@14 d4@5 ~@4 d4@12 ~@7, ~@11 g4@12 ~@13 g4@12",
R: "~@42 d4@5 ~, c3@18 c3@6 d3@23 ~, ~@2 c4@5 c4@2 ~ d4@4 ~@2, ~@12 g4@15 ~@9 g4@11 ~",
S: "[~@21 g3@2 ~@22 a3@3 ~@21 c3@3 ~@12 g4@6 ~@3 g3 ~@22 g3@2 ~@22 a3@3 ~@23 d3@2 ~@18 d4@6, g3@21 ~@3 a3@21 ~@3 c3@21 ~@3 d3@21 ~@2 g3@21 ~@3 a3@21 ~@4 c3@24 d3@24, ~@6 d4@12 d4@12 d4@12 d4@12 d4@12 d4@12 d4@12 d4@11 d4@12 ~ d4@12 d4@12 d4@12 d4@12 d4@12 d4@12 ~@6, ~@12 g4@11 ~@12 g4@12 ~@13 g4@13 ~@35 g4@10 ~@14 g4@11 ~@13 g4@13 ~@11 g4@12]/4",
T: "[~@7 c4 ~@14 c4@2 ~@6 d4@2, g3@18 g3@6 a3@17 a3@31 d3@24, ~@2 c4@5 ~@3 c4@8 c4@4 ~@4 d4@4 ~@2, ~@12 g4@11 ~@13 g4@24 g4@13 ~@11 g4@12, ~@48 c3@25 ~@23]/2",
U: "d4@47 ~, g3@7 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.31)
// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
~@5 A ~@3 B A ~@6 C ~ B C D@2 E F ~ C G H ~@3 I@4 ~@4 J E ~@2 K@2 ~ L M@2 ~ N O ~ P ~@3 E ~@2 Q ~@10
>`.pickRestart({
A: "~@5 c4@12 ~@31", B: "~@5 d4@2 ~", C: "~@29 d4@12 ~@7", D: "[~@5 c4@2 ~@2 d4 ~@6, ~@7 c4@3 ~@6]/2",
E: "~ c4@2 ~@5", F: "~@5 d4@12 ~@31", G: "~@5 c4@12 ~@24 d4@7", H: "~@5 c4 ~@2",
I: "[~@5 c4@15 ~@33 d4@18 ~@30 d4@15 ~@9 c4@24 ~ c4@14 ~@28, ~@30 d4@23 ~@139, ~@41 a3@78 ~@73]/4",
J: "~@6 c4@19 ~@23", K: "[~@5 g3@13 ~@6, ~@5 c4@67 ~@24, ~@17 d4@12 ~@67]/2", L: "~@42 c4@5 ~",
M: "[~@11 g4@24 ~@25 g4@24 ~@12, ~@35 g4@24 ~@37, ~@7 a3@9]/2", N: "~ g4@2 ~", O: "~@2 c4@5 ~@9", P: "~@6 g4@5 ~@37",
Q: "~@5 d3@3",
})).s("gm_acoustic_guitar_nylon").gain(0.15)
// drums · kick
const kick = s("bd").struct(`<
~@3 A B@2 C D E F G H I J K ~ L M N O L@3 P N Q M R S T U V W X Y Z AA AB AC AD AE I AF N I AD L AG AH AI AJ AK AC AL
AM AN AO AA AP AQ I L AR O AS AT AU AV L AW ~@2
>`.pickRestart({
A: "~@6 x!2", B: "~@29 x ~@18", C: "~@5 x ~@11 x ~@2 x ~@26 x", D: "~@5 x ~@2 x ~@21 x ~@2 x ~@14", E: "~@6 x ~@40 x",
F: "~@5 x ~@14 x ~@26 x", G: "~@5 x ~@42", H: "~@9 x ~@31 x ~@6", I: "~ x ~ x!3 ~ x",
J: "x ~@4 x ~@3 x ~ x ~@6 x ~@4 x ~@6 x ~@11 x ~@5", K: "x", L: "x!2 ~ x!3 ~ x",
M: "x ~@5 x ~@10 x ~@5 x ~@5 x ~@11 x ~@5 x", N: "~@5 x ~@11 x ~@5 x ~@5 x ~@11 x ~@5 x",
O: "~@5 x ~@11 x ~@5 x ~@6 x ~@17", P: "x ~@5 x ~@11 x ~@5 x ~@5 x ~@16 x", Q: "~@5 x ~@11 x ~@6 x ~@4 x ~@12 x ~@5",
R: "~@5 x ~@11 x ~@5 x ~@5 x ~@17 x", S: "~@6 x ~@10 x ~@5 x ~@5 x ~@11 x ~@5 x",
T: "~@6 x ~@11 x ~@5 x ~@16 x ~@5 x", U: "~@6 x ~@11 x ~@5 x ~@5 x ~@10 x ~@6",
V: "x ~@4 x ~@11 x ~@5 x ~@6 x ~@11 x ~@5", W: "x ~@5 x ~@10 x ~@6 x ~@5 x ~@11 x ~@5",
X: "x ~@17 x ~@5 x ~@4 x ~@11 x ~@6", Y: "x ~@16 x ~@6 x ~@17 x ~@5", Z: "x ~@17 x ~@5 x ~@5 x ~@16 x",
AA: "~@5 x ~@11 x ~@6 x ~@5 x ~@11 x ~@5", AB: "x ~@5 x ~@10 x ~@6 x ~@5 x ~@14 x ~@2",
AC: "~@6 x ~@10 x ~@5 x ~@5 x ~@11 x ~@6", AD: "x!2 ~ x!3 ~@2", AE: "x ~@5 x ~@10 x ~@6 x ~@4 x ~@11 x ~@5 x",
AF: "x ~@5 x ~@10 x ~@5 x ~@6 x ~@10 x ~@5 x", AG: "x ~@5 x ~@10 x ~@6 x ~@4 x ~@12 x ~@5",
AH: "~ x ~@4 x ~@11 x ~@5 x ~@16 x ~@6", AI: "~@5 x ~@11 x ~@6 x ~@16 x ~@5 x",
AJ: "~@5 x ~@6 x ~@4 x ~@11 x ~@11 x ~@6", AK: "~@11 x ~@23 x ~@11 x", AL: "x ~@4 x ~@12 x ~@5 x ~@4 x ~@12 x ~@5",
AM: "x ~@4 x ~@11 x ~@5 x ~@17 x ~@6", AN: "x ~@4 x ~@11 x ~@6 x ~@4 x ~@17 x",
AO: "~@5 x ~@11 x ~@2 x ~@8 x ~@11 x ~@5 x", AP: "x ~@5 x ~@11 x ~@5 x ~@4 x ~@11 x ~@5 x",
AQ: "~@5 x ~@11 x ~@6 x ~@4 x ~@11 x ~@5 x", AR: "x ~@4 x ~@12 x ~@5 x ~@4 x ~@11 x ~@5 x",
AS: "x ~@4 x ~@11 x ~@5 x ~@5 x ~@11 x ~@5 x", AT: "~@5 x ~@11 x ~@5 x ~@4 x ~@12 x ~@5 x",
AU: "~@17 x ~@5 x ~@5 x ~@11 x ~@6", AV: "x ~@4 x ~@12 x ~@5 x ~@5 x ~@11 x ~@5",
AW: "x ~@5 x ~@10 x ~@5 x ~@6 x ~@11 x ~@5",
})).gain(0.31)
// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@4 A B C D E F G H I ~@16 J ~@42>".pickRestart({
A: "~@24 x ~@22 x", B: "~@5 x ~@11 x ~@2 x ~@20 x ~@6", C: "x ~@22 x ~@5 x ~@11 x ~@6",
D: "~@17 x ~@5 x ~@18 x ~@4 x", E: "~@17 x ~@2 x ~@2 x ~@5 x ~@11 x ~@6", F: "~@17 x ~@5 x ~@6 x ~@10 x ~@6",
G: "~@17 x ~@2 x ~@2 x ~@5 x ~@12 x ~@5", H: "x ~@5 x ~@11 x ~@5 x ~@5 x ~@13 x ~@2 x", I: "~@7 x ~@8",
J: "~@29 x ~@18",
})).gain(0.15)
// drums · snare
const snare = s("sd").struct(`<
~@16 A B@2 C D E@2 F B G B H B D@2 E A D A H A I B J D B@3 E K E A D B ~@2 A B@2 L B E D B A E B M B@2 A N O A ~@2
>`.pickRestart({
A: "~@11 x ~@24 x ~@11", B: "~@11 x ~@23 x ~@12", C: "~@11 x ~@24 x ~@4 x ~@2 x ~@3", D: "~@12 x ~@22 x ~@12",
E: "~ x ~ x", F: "~@12 x ~@22 x ~@5 x ~@2 x ~@3", G: "~@11 x ~@23 x ~@6 x ~@5", H: "~@11 x ~@23 x ~@5 x ~@2 x ~@3",
I: "~@12 x ~@22 x ~@5 x ~@6", J: "~@12 x ~@23 x ~@4 x ~@2 x ~@3", K: "~@6 x ~@11 x ~@2 x!2 ~",
L: "~@11 x ~@23 x ~@2 x ~@2 x ~ x ~@4", M: "~@11 x ~@23 x ~@3 x ~@2 x ~ x ~@3", N: "~@12 x ~@24 x ~@10",
O: "~@13 x ~@22 x ~@11",
})).gain(0.41)
stack(
harmonica, electric_guitar_jazz, string_ensemble_1, string_ensemble_1_soft, bass, acoustic_guitar_nylon,
acoustic_guitar_nylon_2, kick, kick_soft, snare
)
More by Alanis Morissette
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.