0:00/0:00
// Joining You — Alanis Morissette
// 107 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 110 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(107/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 · string ensemble 2
const string_ensemble_2 = note(`<
~ A@2 ~@5 B@8 C@2 D@4 E@2 F@4 G@4 H@8 ~ I J K L K M N@2 O@2 P Q R S@7 T@5 U V@2 W@4 ~@8 X Y@7 Z@7 AA@7 AB@2 ~@5
>`.pickRestart({
A: "[~@31 g#1@2 ~@31]/2", B: "[~@30 c2@33 g#1@32 c2@31 g#1@33 c2@32 g#1@32 g1@33]/8", C: "[~@31 c2@31 g#1@2]/2",
D: "[~@30 c2@33 g#1@32 c2@31 g#1@2]/4", E: "[~@31 g1@33]/2",
F: "[~@31 [e1,e2]@32 [c1,c2]@26 ~@6 [g2,b2]@24 ~@8 [c2,g2], ~@95 e2@28 ~@5, ~@95 e1@18 ~@15]/4", // E C G C5
G: "[~@31 [g2,b2,d3]@25 ~@7 [d2,d3,f#3,a3]@23 ~@9 [b3,e4]@33, ~@63 d1@20 ~@11 [a1,c#4]@34]/4", // G D E5 A
H: "[~@31 [e1,e2,g4,b4]@23 ~@10 c1@23 ~@8 [e1,e2,g4,b4]@24 ~@8 [c4,g4]@24 ~@8 [d4,g4]@27 ~@5 [d4,f#4,a4]@25 ~@7 [a1,b4,c#5,e5]@33, ~@31 e4@27 ~@5 [c2,c4,e4,g4]@25 ~@7 e4@28 ~@3 c2@22 ~@11 [g1,g2]@21 ~@42 a2@34, ~@127 e4@29 ~@3 b3@24 ~@73, ~@127 c1@19 ~@45 [d1,d2]@19 ~@46]/8", // Em C5 G5 D A C G D
I: "c5 ~@5 c5@3 ~@7", J: "g#4@2 ~@10 g#4@3 ~@16 c5", K: "~@11 c5 ~@19 g#4", L: "~@10 g#4@2 ~@19 c5",
M: "~@11 g#4 ~@20", N: "[g4@7 ~@4 g4@15 ~@20 g5@11 ~@6 [c5,c6], ~@30 g4@25 ~@9]/2",
O: "[~@10 [c5,c6]@2 ~@19 g#5@2 ~@10 [g#4,g#5]@10 ~@9 c6@2, ~@31 g#4 ~@30 c5 ~]/2", P: "~@11 [c5,c6]@10 ~@11",
Q: "[g#4,g#5] ~@10 [g#4,g#5]@9 ~@11 [c5,c6]", R: "~@10 c6@7 ~@14 [g#4,g#5]",
S: "[~@11 [g#4,g#5]@2 ~@18 g5@32 [b4,d5]@31 ~@24 [e3,e4]@7 ~ c3@9 c3@16 ~@4 e4@3 ~@9 e3@4 ~@17 d4@3 ~@9 c3@24, ~@31 g4@64 e3@17 ~@40 c3@7 ~@12 e4@20 c4@32 ~, ~@95 [e4,b4]@12 g4@18 ~ g4@13 ~@21 g4@12 ~@12 e3@7 ~@33, ~@103 e2@22 ~@34 e2@31 ~@2 c2@32]/7", // G# Bm E E5
T: "[[g2,b3,g4]@31 [d2,d3,d4,f#4,a4]@32 e4@4 ~@4 b3@3 ~@22 [a4,e5]@33 ~@12 b4@19, d4@24 ~@39 a2@64 ~@2 [e2,e3]@31, ~@67 a3@11 ~@18 a3@6 ~@58, ~@75 c#4@24 ~@38 e4@23]/5", // G D A5 E
U: "[c2,e4]", V: "[[e2,e3,b3]@31 [c2,c3]@33, g4]/2",
W: "[~@19 g4@11 ~ [d2,d3,d4,f#4]@32 ~@7 b3@4 c#4@9 ~@13 a5@31 ~, ~@7 g3@23 ~@33 a2@64 ~, ~@11 b3@19 ~@37 a3@16 e4@14 ~@31, ~@87 a3@40 ~]/4", // D
X: "~@31 g#4",
Y: "[~@11 g#4 ~@19 c4@2 ~@11 c4@5 ~@14 g#3@32 c4@32 g#3@32 ~@48 g1@16 ~, ~@159 g3@64 ~, ~@191 g2@33]/7",
Z: "[[e2,e3,b3]@31 [c2,c3,c4]@31 [e2,b3]@33 [c2,c3,c4]@31 ~ [g2,g3,d4]@31 ~ [d2,d3]@31 ~@13 a5@21, g4@76 ~@3 f#4@16 ~@17, e4@126 b3@33 ~@32 a3@33]/7", // E5 C E5 C G5 D
AA: "[~@31 [e2,e3,b3]@32 ~ c2@31 ~ e2@32 [c2,c3,c4]@31 [g2,b3]@31 ~ d2@32 a2, ~@31 g4@151 ~@42, ~@31 e4@127 ~@66, ~@63 c4@31 ~ b3@33 ~@62 [d3,f#4,a4]@32 ~@2]/7", // E5 C G D
AB: "[~@5 a5@27, ~@2 a3@61 ~, ~@3 a4@29]/2",
})).s("gm_string_ensemble_2").gain(0.26)
// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note(`<
~@27 A@2 B C@3 ~@5 D@3 ~@12 E F ~@3 G H ~ I ~@4 J K@2 ~@3 L ~@17 M@2 ~ N@2 O@2 ~ P Q R@3 ~@7
>`.pickRestart({
A: "[~@31 e2@20 ~@13]/2", B: "g1@25 ~@7", C: "[~@30 [a2,a3]@47 ~@19]/3", D: "[~@31 a4@44 ~@21]/3",
E: "~@10 c5@7 ~@15", F: "~@15 g#4@8 ~@9, ~@14 g#5@9 ~@9", G: "~@6 f#4@9 ~", H: "b3@5 ~@27", I: "~@12 d4@3 ~, g3@31 ~",
J: "[c4,g4]", K: "[~@31 c4@33, e4]/2", L: "a4@31 ~", M: "[~@30 e3@33 ~]/2", N: "[~@15 d4@16 ~]/2",
O: "[~@3 a4@60 ~]/2", P: "c3@15 ~", Q: "e3", R: "[~@31 [g3,d4]@31 d4@32 ~@2]/3",
})).s("gm_string_ensemble_2").gain(0.15)
// bass · electric bass pick
const bass = note(`<
~ A@8 B@8 C D E F G@6 H I J K@4 L M@6 N O@4 P Q@8 R@5 S T U V@3 W X@2 Y Z AA AB AC AD@2 AE@3 AF@5 AG AH AI@3 AJ@2 AK@6
AL AM AN AO AP@4 AQ AR@3 ~
>`.pickRestart({
A: "[c2@3 ~@8 c2@19 ~ g#1@3 ~@9 g#1@13 ~@7 c2@4 ~@9 c2@18 ~ g#1@3 ~@10 g#1@19 c2@3 ~@10 c2@19 g#1@3 ~@9 g#1@18 ~@2 g1@63 ~ c2]/8",
B: "[~@12 c2@19 g#1@3 ~@9 g#1@15 ~@5 c2@3 ~@9 c2@17 ~@3 g#1@2 ~@11 g#1@14 ~@5 c2@3 ~@9 c2@14 ~@6 g#1@3 ~@9 g#1@15 ~@5 g1@61 ~@4, ~@95 g1 ~@160]/8",
C: "~@11 c2@21", D: "~@12 g#1@15 ~ g#1@2 ~@2", E: "c2@4 ~@8 c2@11 ~ c2@2 ~@2 c2@4",
F: "g#1@3 ~@9 g#1@9 ~@3 g#1@2 ~@2 g#1@3 ~",
G: "[c2@3 ~@8 c2@11 ~ c2@2 ~@2 c2@3 ~ g#1@3 ~@8 g#1@10 ~@3 g#1@2 ~@2 g#1@2 ~@2 g1@9 ~@2 g1@17 ~@4 g1@2 ~ g1@2 ~@2 g1@2 ~@2 g1 ~@3 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@3 e2@8 e1@2 ~@3 [e1,f1]@3 ~@5 e1@2 ~@2 e1@2 ~ e1@2 ~@10 c1@2 ~@3 c1@3 ~@4 c1@2 ~@3 c1@2 ~ c1@2 ~@3, d2 ~@62 f1 ~@63 e1@5 ~@8 e2@28 ~@4 c2@13 ~@7, ~@127 d1@2 ~@63]/6", // Fmaj7
H: "e1@4 ~@4 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1 ~@3, e2@11 ~ e2@10 ~@2 e2@7 ~",
I: "c2@8 c1 ~@3 c2@8 c1@2 ~@2 c2@4 c1 ~@3, c1@3 ~@9 c1@2 ~@10 c1@2 ~@6",
J: "g2@8 g1@2 ~@2 g2@8 g1@2 ~@2 g1@2 ~@2 g2@3 ~, g1@4 ~@8 g1@4 ~@12 g1 ~@3",
K: "[d2@7 d1@2 ~@2 d2@8 d1@2 ~@2 d1@2 ~@2 d1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~ a1@2 ~@3 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@6 a1@2 ~@2 e2@9 e1 ~@3 e1@6 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2, d1@3 ~@8 d1@2 ~@10 d2@10 ~@6 a2@13 ~@3 a2@14 ~@2 a2@14 ~@3 a2@6 ~ f1@3 ~@10 e2@19 ~, c1 ~@86 a1@2 ~@6 e1@5 ~@28]/4",
L: "c2@8 c1 ~@3 c1@5 ~@3 c1@2 ~@2 c1@2 ~@2 c1@2 ~@2, c1@3 ~@9 c2@18 ~@2",
M: "[e1@3 ~@4 e1@2 ~@2 e1@4 ~@4 e1@2 ~@2 e1@2 ~@2 e1 ~@3 c2@8 c1 ~@3 c1@3 ~@5 c1@2 ~@2 c1@2 ~@2 c1 ~@3 g2@8 g1@2 ~@2 g1@3 ~@5 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 d1@3 ~@5 d1 ~@4 d1@3 ~@4 d1@2 ~@2 d1@2 ~@2 d1 ~@3 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@3 ~@6, e2@10 ~ e2@18 ~@2 c1@3 ~@9 c2@19 ~ g1@3 ~@9 g2@18 ~@2 d2@32 a2@7 ~@5 a2@18 ~@2 a2@32 ~]/6",
N: "~ [c2,c3]@3 ~@8 c2@18 c3@2, ~@3 c3@4 ~", // C
O: "[[g#1,g#2]@3 ~@9 g#2@12 c3@3 g#2@3 ~ [g1,g2]@3 ~@9 g1@17 g2@2 ~ [g#1,g#2]@3 ~@9 [g#1,g#2]@12 [c2,c3]@4 [g#1,g#2]@2 ~@2 [g#1,g#2]@3 ~@10 c3@14 ~@2 [c2,c3]@3 ~, ~@12 g#1@16 ~@15 g2@14 ~@50 c2@14 ~@7]/4", // G# G G# C G# C
P: "[g#1,g#2]@3 ~@9 [g#1,g#2]@11 ~@2 [g#1,g#2]@6 ~", // G#
Q: "[g2@9 ~@10 g1@2 ~@3 g1@2 ~ g1@2 ~@2 g1@5 ~@3 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~ g1 ~@4 [c2,c3]@3 ~@8 c2@7 ~ c1@5 ~@4 c3@3 ~ [g#1,g#2]@3 ~@17 g#1@4 c2@4 g#1@2 ~@2 [g#1,g#2]@2 ~@10 c2@5 ~@4 c2@3 ~ c1@3 c2@3 ~@2 g#2@3 ~@8 g#1@6 ~@3 g#1@3 ~ c2@3 g#1@3 ~ [c2,c3]@3 ~@9 c2@7 ~ c1@4 ~ c2@3 g#1@2 ~@2 [g#1,g#2]@3 ~@9 g#1@5 ~@4 g#1@2 ~@2 g#1@2 ~@2 g#1@2 ~ g1, g1@16 ~@71 c2@7 ~@12 g#1@7 ~@46 g#1@3 ~@94, ~@11 g2@17 ~@3 g2@14 ~@2 g2@10 ~@17 c3@15 ~@18 g#2@19 ~@13 c3@19 ~@13 g#2@19 ~@13 c3@19 ~@13 g#2@19 ~@2]/8", // C G# C G#
R: "[~@3 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@3 g1@2 ~@2 g1@2 ~ g1@2 ~@3 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~ e2@8 e1@2 ~@2 e1@3 ~@5 e1 ~@3 e1@2 ~@2 e1 ~@3 c2@8 c1@2 ~@2 c1@3 ~@6 c1@2 ~@2 c1@2 ~ c1 ~@3 e1@5 ~@4 [e1,f1] ~@3 e1@2 ~@2 e1@2 ~@2 e1 ~@3 e1@2 ~@2 e1@2 ~@2, g2@9 ~@2 g2@19 ~ g2@32 e1@4 ~@8 e2@19 ~ c1@3 ~@9 c2@19 ~ e2@32 ~]/5", // Fmaj7
S: "c1@6 ~@2 c1 ~@3 c1@5 ~@3 c1@2 ~@2 c1@2 ~@2 c1@2 ~@2, c2@31 ~",
T: "g1@3 ~@5 g1@2 ~@2 g1@6 ~@2 g1@2 ~@2 g1@2 ~ g1@2 ~@3, g2",
U: "d1@3 ~@5 d1@2 ~@2 d1@3 ~@5 d1@2 ~@2 d1@2 ~@2 d1@2 ~@2, d2@31 ~",
V: "[a1@3 ~ a1@2 ~@2 a1@2 ~@2 a1@3 ~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@3 a1@2 ~@9 e1@2 ~@2 e1@6 ~@3 e1@2 ~@2 e1@2 ~@2 e1@2 ~, a2@16 e1 ~@7, ~@65 e2@23 ~ e2@7]/3",
W: "~ c1@5 ~@3 c1@2 ~@2 c1@2 ~@2 c1@2 ~@2 c1 ~@3 c1@2 ~@2 c1@2 ~, ~ c2@31",
X: "[~ e1@4 ~@3 e1@2 ~@2 e1@3 ~@5 e1@2 ~@2 e1@2 ~@2 e1@2 ~@9 c1@2 ~@2 c1@4 ~@5 c1@2 ~ c1@2 ~@2 c1@2 ~@3, ~ e2@21 ~@2 e2@7 c1@3 ~@30, ~@32 c2@31 ~]/2",
Y: "g1@3 ~@4 g1@2 ~@2 g1@5 ~@3 g1@2 ~@2 g1@2 ~@3 g1@2 ~@2, g2",
Z: "d1@5 ~@3 d1@2 ~@2 d1@3 ~@5 d1@2 ~@2 d1@2 ~ d1@2 ~@3, d2@31 ~",
AA: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~, a2@10 ~@2 a2@19 ~",
AB: "a1 ~ a1 ~ a1 ~@3 a1 ~ a1 ~ a1 ~ a1 ~, a2@11 ~ a1@2 ~@18, ~@13 a2@9 ~@2 a2@7 ~",
AC: "c3@4 ~@8 [c2,c3]@19 ~, c2 ~@15", AD: "[[g#1,g#2]@4 ~@7 [g#1,g#2]@19 ~ [c2,c3]@4 ~@8 [c2,c3]@21]/2",
AE: "[[g#1,g#2]@3 ~@9 [g#1,g#2]@19 [c2,c3]@4 ~@8 [c2,c3]@20 [g#1,g#2]@3 ~@10 [g#1,g#2]@20]/3", // G# C G#
AF: "[g1@9 ~@3 g1@17 ~@3 g1@9 ~@3 g1@19 [c2,c3]@3 ~@9 [c2,c3]@20 [g#1,g#2]@3 ~@9 [g#1,g#2]@19 ~ [c2,c3]@3 ~@10 [c2,c3]@20, g2@31 ~@49]/5", // C G# C
AG: "[g#1,g#2]@3 ~@9 [g#1,g#2]@20", AH: "[c2,c3]@3 ~@9 [c2,c3]@18 ~@2",
AI: "[[g#1,g#2]@3 ~@9 [g#1,g#2]@19 [g1,g2]@61 ~@4]/3", // G# G
AJ: "[e1@5 ~@2 e1@2 ~@2 e1@5 ~@3 e1@2 ~@2 e1@2 ~@3 [e1,e2]@2 ~ c1@5 ~@3 c1@2 ~@2 c1@5 ~@4 c1@2 ~@2 c2@4 c1@2 ~@2, e2@10 ~ e2@14 ~@6 c2@22 ~@3 c1@2 ~@6]/2", // E
AK: "[e1@3 ~@5 e1@2 ~@2 e1@5 ~@3 e1@2 ~@2 e1@2 ~ e1@2 ~@2 c1@5 ~@3 c1@2 ~@2 c1@5 ~@3 c1@2 ~@2 c1@2 ~@2 c1@2 ~@2 g1@4 ~@4 g1@2 ~@2 g1@4 ~@4 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 d1@4 ~@4 d1 ~@3 d1@4 ~@4 d1@2 ~@2 d1@2 ~@2 d1 ~@3 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@3 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1 ~@3, e2@30 ~ c2@32 g2@32 d2@30 ~@2 a2@10 ~@2 a2@19 ~ a2@10 ~@3 a2@18 ~@2]/6",
AL: "e2@8 e1@2 ~@2 e1@3 ~@5 e1@2 ~@3 e1@2 ~ e1@2 ~@2, e1@5 ~@7 e2@19 ~",
AM: "c2@8 c1@2 ~@2 c1@3 ~@5 c1@2 ~@2 c1@2 ~@2 c1@2 ~@2, c1@5 ~@7 c2@18 ~@2",
AN: "e1@4 ~@4 e1 ~@3 e1@6 ~@3 e1@2 ~@2 e1@2 ~@2 e1@2 ~, e2@22 ~@3 e2@7",
AO: "c1@5 ~@3 c1 ~@3 c1@5 ~@3 c1@2 ~@2 c1@2 ~@2 c1@2 ~@2, c2@15 ~",
AP: "[g2@8 g1@2 ~@2 g2@8 g1@2 ~@2 g1@3 ~ g1@2 ~ d2@8 d1@2 ~@2 d2@8 d1@2 ~@2 d1@3 ~ d1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@3 ~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@3 a1@2 ~@2 a1@2 ~@3 a1@2 ~@2 a1 ~@2, g1@5 ~@6 g1@3 ~@10 g2@7 d1@4 ~@8 d1@3 ~@9 d2@7 ~ a2@9 ~@3 a2@17 ~@3 a2@33]/4",
AQ: "~ c3@3 ~@8 [c2,c3]@20, c2@3 ~@29", // C
AR: "[[g#1,g#2]@3 ~@9 [g#1,g#2]@19 ~ c2@3 ~@9 [c2,c3]@19 [g#1,g#2]@32 ~, ~@31 c3@2 ~@63]/3", // G# C G#
})).s("gm_electric_bass_pick").gain(0.41)
// chords · distortion guitar
const distortion_guitar = note(`<
A@4 B@7 C@3 D@7 E@4 F G H@2 I J@3 K L@4 M@3 N O@2 P Q R S@3 T U@8 V W X Y Z@2 AA AB AC AD AE@2 AF AG AH AI@4 AJ AK@3
AL AM AN AO AP@5 AQ@6 AR AS AT AU@3 AV AW AX@3 AY ~
>`.pickRestart({
A: "[~@31 [c2,c3]@2 ~@11 [c2,c3]@13 ~@6 [g#1,g#2]@2 ~@11 [g#1,g#2]@15 ~@4 [c2,c3]@2 ~@11 [c2,c3]@14 ~@6]/4", // C G# C
B: "[[g#1,g#2]@2 ~@10 [g#1,g#2]@14 ~@5 [c2,c3]@2 ~@11 [c2,c3]@13 ~@6 [g#1,g#2]@2 ~@11 [g#1,g#2]@14 ~@38 b2@23 ~@8 [c2,c3]@2 ~@11 [c2,c3]@19 [g#1,g#2]@2 ~@11 [g#1,g#2]@15 ~@4 [c2,c3], ~@47 g2@29 ~@36, ~@95 g1@57 ~@72]/7", // G# C G# C G# C
C: "[~@12 [c2,c3]@15 ~@4 [g#1,g#2]@3 ~@9 [g#1,g#2]@16 ~@4 [c2,c3]@2 ~@11 [c2,c3]@14 ~@5 [g#1,g#2]]/3", // C G# C G#
D: "[~@12 [g#1,g#2]@14 ~@37 b2@31 ~ [c2,c3]@6 ~@7 [c2,c3]@19 [g#1,g#2]@6 ~@6 [g#1,g#2]@19 ~ [c2,c3]@4 ~@9 [c2,c3]@18 ~ [g#1,g#2]@5 ~@8 [g#1,g#2]@18 ~ [c2,c3], ~@31 [g1,g2]@64 ~@129]/7", // G# C G# C G# C G
E: "[~@11 [c2,c3]@17 ~@3 [g#1,g#2]@5 ~@7 [g#1,g#2]@20 g2@11 ~ g2@20 g2@7 ~@22 e3@3 ~, ~@63 g1@63 ~@2, ~@95 b2@16 ~ b2@15 ~, ~@103 g2@17 g2@7 ~]/4", // C G#
F: "e3@8 e3@5 ~@11 e3@8, e2, g3@13 b3@19", G: "~@24 c3@7 ~, c2, [e3,g3]@12 e3@19 ~, ~ c3@2 ~",
H: "[~@8 e3@16 e3@7 ~ e3@8 ~@20 g3@3 ~, [e2,g3,b3]@31 c2@32 ~, ~@8 g3@7 ~, ~@40 c3@16 ~ c3@7, ~@44 e3@19 ~]/2", // Em
I: "g3@3 g3, [g2,b3]", // G
J: "[~@24 d3@7 ~@61 e3@3 ~, d2@31 a1@32 a1@25 a2@7 ~, a3@23 a3@8 [a3,c#4]@11 ~@2 a3@51 ~, ~@8 d3@16 ~@15 a2@16 ~ a2@16 a2@8 e4@14 ~@2, ~@11 f#3@20 ~@25 c#4@39 ~]/3", // A
K: "~@8 e3@16 e3@7 ~, [e2,g3,b3]@31 ~", // Em
L: "[~@23 c3@7 ~@26 b3@7 ~@25 g3@7 g3@8 ~@16 g3@8 ~, [c2,g3]@31 e2@32 c2@32 ~@8 g3@16 ~@9, e3@11 ~ e3@19 [g3,b3]@12 g3@20 ~@8 c3@23 ~ g2@33, ~@8 c3@15 ~@17 e3@23 [e3,g3]@13 e3@19 b3@11 ~ d4@20 ~, ~@115 b3@12 ~]/4", // C5 G Em
M: "[~@23 d3@6 ~@10 a3@3 ~@33 a3@9 ~@9 a3@3, d2@30 ~ a1@64 ~, [f#3,a3]@11 f#3@19 ~ a3@8 ~@4 a3@12 a3@7 ~@2 e4@32, ~@8 d3@15 ~@12 a2@7 ~@9 a2@12 a2 a3@8 a2@13 a3@4 a2@7, ~@19 a3@11 ~ [c#4,e4]@11 c#4@17 c#4@25 c#4@11 ~]/3", // F#m C#m
N: "[c2,c3]@6 ~@6 c3@2 ~@14 c3@3 ~, ~@12 c2@12 ~ c2@6 ~, ~@21 c3@7 ~@4", // C
O: "[[g#1,g#2]@4 ~@8 g#2@2 ~@13 g#2@3 ~ [c2,c3]@3 ~@26 c3@3 ~, ~@12 g#1@11 g#1@7 ~@13 c2@13 c2@7 ~, ~@20 g#2@7 ~@25 c3@8 ~@4]/2", // G# C
P: "g#1@6 ~ g#2@4 ~ g#1@7 ~@4 g#2@4 g#1@2 ~@3, g#2@3 ~@8 g#2@12 ~@9, ~@19 g#1@8 ~@5",
Q: "[c2,c3]@3 ~@21 c2@4 c3@3 ~, ~@3 c2@3 ~@2, ~@5 c3@2 ~", // C
R: "g#1@6 ~@2 g#2@4 g#1@8 ~@4 g#2@4 [g#1,g#2]@3 ~, ~@5 g#1@2 ~", // G#
S: "[g2 ~@10 g2@13 g2@7 ~@25 g2@6 ~ [c2,c3]@4 ~@8 c3@7 ~@6 c2@4 c3@3 ~, g1@31 b2@12 b2@19 ~@22 c3@8 ~@4, ~@32 g1@30 ~@13 c2@13 ~@8, ~@39 g2@16 ~@41, ~@26 d3@5 ~@17]/3", // C
T: "[g#1,g#2]@5 ~@7 g#2@8 g#2@4 ~@4 g#2@3 ~, ~@12 g#1@12 g#1@7 ~", // G#
U: "[[c2,c3]@3 ~@24 c3@3 ~@2 g#2@3 ~@8 g#2@8 g#2@4 [g#1,g#2]@4 g#2@2 ~@2 [c2,c3]@4 ~@8 c3@2 ~@6 c3@4 ~ c3@3 c3@3 ~ [g#1,g#2]@6 ~@7 [g#1,g#2]@7 ~@9 g#2@3 g2@33 ~@27 e3@3 ~@14 e3@8 ~@7 c3@3 ~@29 g3@4 ~, ~@11 c3@2 ~@7 c3@7 ~@88 g#2@8 ~@37 g2@16 g2@8 g2@7 ~@9 e2@16 e2@7 c2@32 ~, ~@12 c2@12 c2@6 ~ g#1@4 ~@8 g#1@12 ~@20 c2@12 ~ c2@6 ~@26 g#1@7 g1@63 ~ [e1,b3]@31 ~@22 c3@11 ~, ~@164 b2@16 b2@11 e3@12 ~@9 [e3,g3]@11 e3@25 e3@7 ~, ~@168 d3@23 g3@20 ~@12 g3@28 ~@5]/8", // C G# C G# E5 Em
V: "e3@2 ~@4 e3!2, e2, g3@3 g3@5, ~ e3@2 ~, ~@5 b3@3",
W: "~@28 c3@3 ~, c2@31 ~, g3@24 g3@7 ~, e3@12 e3@19 ~, ~@2 c3@5 ~", X: "g3@8 ~@16 g3@7 ~, g2, b3@3 b3@5, ~ g3@2 ~",
Y: "~@12 d3@2 a3 ~, d2@31 ~, a3@5 a3@2 ~, f#3@12 f#3@19 ~, ~ d3@2 ~",
Z: "[~@8 a3@4 ~@17 a3@3 ~@25 a2@4 e3@3, a1, [c#4,e4]@14 ~@6 c#4@12 ~ e4@31, a3@8 ~@4 b3@20 ~@13 a3@19, ~@4 a2@10 ~@11 a2@7 a2@8 ~ a2@12 c#4@11]/2", // C#m
AA: "~ e2@7 ~ e2@4 ~@13 g3@6, ~ b3@31, ~ g3@25 ~@6, ~@13 e2@19, ~@11 e3@5",
AB: "~@28 c3@3 ~, ~ c2@30 ~, ~ g3@23 g3@7 ~, ~ e3@11 e3@19 ~, ~@9 c3@19 ~@4",
AC: "e3@8 ~@16 e3@4 e3@3 ~, e2@31 ~, b3@20 b3@11 ~, g3@12 g3@19 ~, ~ e3@2 ~",
AD: "~@25 c3@4 g3@3, c2, [e3,g3]@12 e3@19 ~, ~@8 c3@17 ~@7, ~@21 g3@8 ~@3", // Em
AE: "[~ g3@8 ~@4 b3@7 ~@41 a3@3, g2@32 ~ d2@31, b3@3 ~@2 b3@3 ~@5 a3@2 ~, ~@9 g3@16 g3@7 ~@9 d3@16 d3@7, ~@29 f#3@15 f#3@19 ~]/2",
AF: "~@7 a3, a1, c#4@20 c#4@11 ~, a3@3 a3@4 ~, ~ a2@2 a2",
AG: "~@28 a3@3 ~, a1@31 ~, c#4@20 c#4@11 ~, ~@8 a2@17 a2@6 ~, ~@12 e4@19 ~",
AH: "[c2,c3]@4 ~@9 c2@18 ~, ~@12 c3@19 ~", // C
AI: "[[g#1,g#2]@4 ~@8 [g#1,g#2]@18 ~ [c2,c3]@4 ~@9 [c2,c3]@19 ~ g#1@4 ~@8 [g#1,g#2]@18 ~ [c2,c3]@4 ~@9 [c2,c3]@19 ~, ~@63 g#2@4 ~@61]/4", // G# C G# C
AJ: "[g#1,g#2]@4 ~@8 g#2@12 g#2@4 [g#1,g#2]@3 ~, ~@3 g#1@4 ~", // G#
AK: "[g2@24 ~@31 g2@6 ~@2 [c2,c3]@6 ~@7 c3@3 ~@13 c3@3 ~, g1@62 ~@14 c2@12 c2@7 ~, ~@24 g2@31 ~@41, ~@31 b2@31 ~@22 c3@8 ~@4, ~@47 d3@14 ~@35]/3", // C
AL: "[g#1,g#2]@6 ~@6 g#2@8 ~@8 g#2@3 ~, ~@12 g#1@12 g#1@7 ~, ~@5 g#2@2 ~", // G#
AM: "[c2,c3]@4 ~@8 c3@8 ~@8 c3@3 ~, ~@12 c2@12 c2@7 ~, ~@5 c3@2 ~", // C
AN: "[g#1,g#2]@5 ~@7 g#2@8 ~@8 g#2@3 ~, ~@12 g#1@12 g#1@7 ~, ~@5 g#2@2 ~", // G#
AO: "~ [c2,c3]@4 ~@7 c3@8 ~@4 c2@4 c3@2 ~@2, ~@3 c2@3 ~@2, ~@5 c3@2 ~", // C
AP: "[[g#1,g#2]@4 ~@16 g#2@4 g#2@3 g#2@4 ~@32 b2@17 b2@4 ~@7 e3@3 ~@2 [e3,g3,b3]@7 ~@17 e3@4 e3@3 ~@29 c3@3 ~, ~@12 g#1@19 g1@63 ~@14 g3@19 g3@24 ~ g3@7 ~, ~@55 g2@33 g2@7 e2@31 ~ c2@31 ~@2, ~@84 b2@11 ~@8 e3@16 ~@8 e3@13 e3@19 ~, ~@116 b3@11 ~@9 c3@20 ~@4]/5", // G# Em
AQ: "[~@24 e3@4 e3@3 ~@29 e3@3 ~@8 b3@5 ~@48 a3@3 ~@5 [a1,a2]@4 [a1,a2]@4 a2@4 ~@12 [a2,c#4]@2 ~@10 b3@4 ~@16 e3@3 ~, [e2,f2]@31 [c2,g3]@32 [e2,g3]@13 g2@20 d2@30 ~ a1@5 ~@8 [a1,c#4]@18 a1@26 a2@7 ~, b3@20 b3@11 ~@53 b3@12 ~@12 a3@16 ~@3 c#4@12 ~@13 b3@7 ~@5 c#4@7 ~ e4@19 ~, g3@12 g3@19 ~@9 c3@16 c3@7 ~@29 f#3@24 f#3@11 ~ a3@12 a3@8 a3@11 ~@17 c#4@15 ~, ~@8 e3@16 ~@7 e3@13 e3@16 ~@4 e3@12 g3@12 g3@8 ~@8 d3@16 d3@7 ~@17 a2@12 ~@4 [a2,e4]@12 a2@8 b3@11 ~]/6", // A Fmaj7 C5 Em A A5
AR: "~@2 e3 ~@3 e3!2, e2, [g3,b3]@3 g3@5, ~@5 b3@3", // G
AS: "~@28 e3@3 ~, c2, [e3,g3]@3 e3@4 ~, ~@8 c3@16 ~ c3@7, ~@5 g3@3", // Em
AT: "~ e3@8 ~@16 e3@3 e3@3 ~, e2@31 ~, [g3,b3]@12 ~ g3@19, ~@9 e3@16 ~@7, ~@20 b3@11 ~", // G
AU: "[~@28 g3@3 g3@8 ~@4 b3@8 ~@41 a3@4, c2@31 ~@29 f#3@15 f#3@20 ~, g3@19 ~ g3@8 ~@3 b3@12 ~@8 b3@12 ~@21 a3@8 ~@4, e3@12 e3@19 ~@9 g3@16 g3@8 ~@8 d3@16 d3@7 ~, ~@8 c3@16 c3@7 g2@32 ~ d2@31 ~]/3",
AV: "a3!3 ~@4 a3, c#4, a2!2, ~@3 a3@2 a3@2 ~, ~@3 b3",
AW: "~@24 a3@7 ~, a2@31 ~, c#4@20 c#4@11 ~, ~ a3@2 ~, ~@12 b3@19 ~",
AX: "[[c2,c3]@3 ~@9 [c2,c3]@19 [g#1,g#2]@2 ~@11 g#1@18 ~ [c2,c3]@3 ~@10 [c2,c3]@20, ~@43 g#2@18 ~@35]/3", // C G# C
AY: "g#2@31 ~",
})).s("gm_distortion_guitar").gain(0.31)
// drums · kick
const kick = s("bd").struct(`<
~@17 A@2 B C D E F G H B@2 I J K L M N A O P E Q F R S T B@2 U V O W L F@2 X Y L F Z B@2 AA V AB AC V AD T@2 AE T AF
B@2 AG AH ~@7 AI F AJ AG T AK AA F AL B AM AF B AN AO N AP B@2 S AQ AR B AS AH ~@4
>`.pickRestart({
A: "x ~@3 x ~@6 x ~@2 x ~@3 x ~ x ~@7 x ~@3", B: "x ~ x ~@3 x!2 ~ x!2 ~@3 x ~",
C: "x ~@3 x ~@6 x ~@2 x ~@3 x!2 ~@8 x ~@3", D: "x ~@2 x ~@8 x ~ x ~@3 x ~ x ~@6 x ~@4",
E: "x ~@2 x ~@7 x ~ x ~@3 x ~ x ~@7 x ~@3 x", F: "~@3 x ~@7 x ~ x ~@3 x ~ x ~@7 x ~@3 x",
G: "~@3 x ~@7 x ~ x ~@3 x ~ x ~@7 x ~@4", H: "x ~@2 x ~@7 x ~ x ~@3 x ~ x ~@8 x ~@3",
I: "~ x ~@2 x ~@7 x ~ x ~@3 x ~@2 x ~@7 x ~@2", J: "~ x ~@3 x ~@6 x ~@2 x ~@3 x ~ x ~@7 x ~@2",
K: "~ x ~@2 x ~@7 x ~ x ~@3 x ~ x ~@7 x ~@3", L: "x ~@3 x ~@6 x ~ x ~@3 x ~ x ~@7 x ~@3 x",
M: "~@3 x ~@7 x ~ x ~@4 x ~ x ~@7 x ~@2 x", N: "~@4 x ~@6 x ~@2 x ~@3 x ~ x ~@7 x ~@3",
O: "x ~@3 x ~@7 x ~ x ~@3 x ~ x ~@7 x ~@2 x", P: "~@3 x ~@7 x ~ x ~@3 x ~ x ~@4 x ~@3 x ~@3",
Q: "~@3 x ~@6 x ~@2 x ~@3 x ~ x ~@6 x ~@4 x", R: "~@3 x ~@8 x ~ x ~@3 x ~@2 x ~@6 x ~@3",
S: "x ~@4 x ~@7 x ~ x ~@3 x ~ x ~@7 x ~@2", T: "~ x ~@3 x ~@7 x ~ x ~@3 x ~ x ~@7 x ~@2",
U: "x ~@3 x ~@6 x ~@2 x ~@3 x ~ x ~@6 x ~@3 x", V: "~@2 x ~@3 x!2 ~ x!2 ~@3 x ~", W: "~@2 x ~@3 x!2 ~ x!2 ~ x ~ x ~",
X: "~@3 x ~@7 x ~ x ~@3 x ~@2 x ~@7 x ~@2 x", Y: "~@3 x ~@7 x ~@2 x ~@2 x ~@2 x ~@7 x ~@3",
Z: "~@3 x ~@7 x ~ x ~@3 x ~ x ~@8 x ~@3", AA: "x ~@3 x ~@7 x ~ x ~@3 x ~ x ~@6 x ~@3 x",
AB: "x ~@3 x ~@6 x ~@2 x ~@2 x ~ x ~@7 x ~@3 x", AC: "~@3 x ~@7 x ~ x ~@3 x ~ x ~@8 x ~@2 x",
AD: "x ~@3 x ~@7 x ~ x ~@3 x ~ x ~@8 x ~@2", AE: "~ x ~@3 x ~@7 x ~ x ~@3 x ~ x ~@3 x ~@3 x ~@2",
AF: "~ x ~@3 x ~@6 x ~ x ~@3 x ~ x ~@7 x ~@3", AG: "x ~@3 x ~@7 x ~@2 x ~@3 x ~ x ~@7 x ~@2", AH: "~ x ~@30",
AI: "~ x ~@2 x ~@7 x ~ x ~@2 x ~ x ~@7 x ~@3 x", AJ: "~@3 x ~@8 x ~ x ~@3 x ~ x ~@7 x ~@3",
AK: "~ x ~@3 x ~@6 x ~@2 x ~@3 x ~ x ~@6 x ~@3", AL: "~@3 x ~@8 x ~@6 x ~@8 x ~@3",
AM: "x ~@4 x ~@6 x ~@2 x ~@3 x ~ x ~@7 x ~@2", AN: "x ~@2 x ~@7 x ~ x ~@3 x ~ x ~@6 x ~@3 x ~",
AO: "~@2 x ~@8 x ~ x ~@3 x ~ x ~@7 x ~@3 x", AP: "x ~@3 x ~@7 x ~ x ~@3 x ~@2 x ~@6 x ~@3",
AQ: "~ x ~@3 x ~@6 x ~ x ~@3 x ~@2 x ~@6 x ~@3", AR: "x ~@3 x ~@6 x ~ x ~@4 x!2 ~@7 x ~@4",
AS: "x ~@3 x ~@7 x ~ x ~@4 x ~ x ~@7 x ~@2",
})).gain(0.46)
// drums · snare
const snare = s("sd").struct(`<
~@17 A@5 B@3 A@3 C D E F B A@4 B G B C D@2 A@2 F A F A B@3 H A B@3 A@2 F A F B A C D@3 E A@3 C ~@8 F B H C D@2 F B A@5
G B A@4 D@2 F A C ~@5
>`.pickRestart({
A: "~ x ~ x", B: "~@7 x ~@15 x ~@8", C: "~@8 x ~@16 x ~@6", D: "~@9 x ~@15 x ~@6", E: "~@9 x ~@14 x ~@7",
F: "~@8 x ~@14 x ~@8", G: "~@7 x ~@14 x ~@9", H: "~@7 x ~@16 x ~@7",
})).gain(0.46)
stack(string_ensemble_2, string_ensemble_2_soft, bass, distortion_guitar, kick, 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.