0:00/0:00
// Mezzo angolo di cielo — Anna Oxa
// 106.4 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 118 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(106.4/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 · epiano2 · "E.PNO/BASS"
const epiano2 = note("<~ A B C D E@2 F G H@2 I J K ~@104>".pickRestart({
A: "~@20 [e4,f#4,a4]@2 ~@2 [e4,f#4,a4]@3 ~ e4@2 ~@2, ~@20 b3 ~@11", // F#m7
B: "[b3,e4,f#4,a4]@3 ~ [e4,f#4,a4]@3 ~@5 [b3,e4,f#4,a4]@2 ~@2 e4@2 ~@2 b3@3 ~ [b3,e4,f#4,a4]@3 ~ [e4,f#4,a4]@3 ~", // Bsus4 F#m7 Bsus4 F#m7
C: "~@4 [b3,e4,f#4,a4]@3 ~ [e4,f#4]@2 ~@2 [b3,e4]@2 ~@2 [b3,e4,f#4,a4]@3 ~ [e4,f#4,a4]@3 ~ b3@2 ~@2 [b3,e4,f#4,a4]@3 ~", // Bsus4 Esus2 E5 Bsus4 F#m7 Bsus4
D: "[e4,f#4,a4]@3 ~ [b3,e4,f#4]@3 ~ [b3,e4,f#4,a4]@3 ~ [e4,f#4,a4]@2 ~@2 [b3,e4]@2 ~@2 [b3,e4,f#4,a4]@3 ~ [e4,a4]@2 ~@2 [b3,e4,f#4]@3 ~", // F#m7 Bsus4 F#m7 E5 Bsus4 A5 Bsus4
E: "[[b3,e4,f#4,a4]@3 ~@5 [b3,e4]@2 ~@2 [b3,e4,f#4,a4]@3 ~ [d#4,f#4,b4]@10 ~@2 [c#4,e4,a4]@7 ~ [b3,e4,f#4]@2 ~@2 [b3,e4,f#4,a4]@2 ~@2 [e4,f#4,a4]@3 ~ [e4,f#4,a4]@3 ~ [b3,e4,f#4]@2 ~@2 [e4,f#4,a4]@2 ~@2 [e4,a4]@2 ~@2, ~@44 b3 ~@19]/2", // Bsus4 E5 Bsus4 B A Bsus4 F#m7 Bsus4 …
F: "[e4,f#4,a4]@2 ~@2 [e4,f#4]@2 ~@2 [a4,b4] ~@3 [e4,f#4,a4,e5]@2 ~@2 [e4,f#4,a4,e5]@2 ~@2 [e4,f#4,a4,e5]@3 ~ [e4,f#4,a4,e5]@3 ~ [e4,f#4,a4,e5]@2 ~@2, ~@4 b3 ~@3 e5@2 ~@22", // F#m7 Esus2 Asus2 F#m7
G: "[e4,e5]@2 ~@2 [e4,a4]@2 ~@2 [e4,a4,e5]@2 ~@2 [e4,f#4,a4]@2 ~@2 [e4,f#4,a4,e5]@2 ~@2 [e4,f#4] ~@3 [a4,e5]@2 ~@2 [e4,f#4] ~@3, [f#4,a4] ~@3 f#4 ~@3 f#4 ~@11 a4@2 ~@2 [e4,f#4] ~@3 a4@2 ~@2", // E A5 F#m7 Esus2 A5 Esus2 F#m Esus2
H: "[[f#4,a4,e5]@2 ~@2 [e4,f#4,a4]@2 ~@2 [e4,f#4,a4,e5]@3 ~ [e4,f#4,a4] ~@3 [d#4,f#4,b4]@9 ~@3 [c#4,e4,a4]@7 ~ [b3,e4,f#4]@2 ~@2 [b3,e4,f#4,a4]@2 ~@2 [b3,e4,f#4,a4]@2 ~@2 [b3,e4,f#4,a4]@2 ~@2 f#4@2 ~@2 [f#4,a4]@2 ~@2 [b3,e4] ~@3, e4 ~@51 e4 ~@3 [b3,e4] ~@3 f#4@2 ~@2]/2", // F#m7 B A Bsus4 F#m E5
I: "[f#4,a4]@2 ~@2 [b3,e4] ~@3 [b3,f#4,a4]@2 ~@2 [b3,e4,a4] ~@3 [f#4,a4]@2 ~@2 [b3,e4] ~@3 [f#4,a4]@2 ~@2 b3 ~@3, [b3,e4] ~@3 f#4@2 ~@2 e4 ~@3 f#4@2 ~@2 [b3,e4] ~@7 [b3,e4] ~@7", // F#m E5 B7 Esus4 F#m E5 F#m E5
J: "[e4,f#4,a4,e5]@2 ~@2 [f#4,a4]@2 ~@2 [f#4,a4,e5]@2 ~@2 [e4,f#4] ~@3 [f#4,a4,e5]@2 ~@6 [e4,f#4,a4,e5]@2 ~@2 [e4,f#4] ~@3, ~@4 e4 ~@3 e4 ~@3 a4@2 ~@2 e4 ~@11 a4@2 ~@2", // F#m7 F#m F#m7 Esus2 F#m7 Esus2
K: "[a4,e5]@2 ~@2 [e4,f#4] ~@3 [e4,f#4,a4,e5]@2 ~@2 [e4,f#4,a4]@2 ~@18, [e4,f#4] ~@3 a4@2 ~@26", // A5 Esus2 F#m7 Esus2
})).s("gm_epiano2").gain(0.35)
// chords · epiano2 · "E.PNO/BASS" · soft notes
const epiano2_soft = note("<~ A B C D E F ~@3 G A H ~@105>".pickRestart({
A: "~@28 f#4 ~@3", B: "~@4 b3@2 ~@2 [b3,e4]@2 ~@6 [f#4,a4]@2 ~@2 e4 ~@7 b3@2 ~@2",
C: "[b3,e4]@2 ~@6 [b3,a4]@2 ~@10 b3@2 ~@2 e4 ~@7", D: "b3 ~@7 f#4 ~@3 f#4 ~@3, ~@24 b3 ~@7",
E: "~@2 [b3,e4,f#4,a4] ~ f#4 ~@11", F: "~@14 f#4 ~", G: "~@10 b3 ~@5", H: "~@10 [f#4,a4] ~@5, ~@20 e4 ~@11",
})).s("gm_epiano2").gain(0.14)
// bass · electric bass finger · "E.PNO/BASS"
const bass = note(`<
~@14 A B C D E F G@5 H@8 I@8 J@8 K@2 L@8 M@2 N@7 O@8 P@3 Q R S T U V W X@2 Y Z AA AB AC AD AE@2 AF AG AH AI AJ AK AL
AM AN AO AP@2 AQ@7 AR@3
>`.pickRestart({
A: "~@12 e1@3 ~ e1@10 ~@2 e1@2 ~@2", B: "e1@9 ~@3 e1 ~@3 e1@9 ~@3 e1@2 ~@2", C: "e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~",
D: "e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2", E: "e1@9 ~@3 e1@3 e1@9 ~@3 e1@2 ~@3", F: "e1@10 ~ e1@2 ~@3 e1@9 ~@3 e1@4",
G: "[e1@9 ~@2 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@10 ~@2 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@4 e1]/5",
H: "[~@11 e1 ~@3 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@8 ~@4 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@8 ~@4 e1@2 ~@2 e1]/8",
I: "[~@11 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e2@4 c2@4 c#2@4 c#2@4 c#1@3 ~ c#2@2 ~@2 c#2@2 ~@2 c#1@2 ~@2 c#1@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#1@2 ~@2 c#1@2 ~@2 c#2@2 ~@2 c#2@2 ~@2 c#1 ~@3 c#2@4 e1@4 f1@2 ~@2 f1@3 ~ f#1@3 ~ f#1 ~@3 f#1 ~@3 f#1@2 ~@2 f#1@2 ~@2 f#1 ~@3 f#1 ~@3 f#1 ~@3 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1 ~@3 f1@3 ~ f#1@3 ~ g#1@4 a1@4 a#1@4 b1@4 c#2@4 e2@4 c#2@3 ~ e1]/8",
J: "[~@3 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@4 f#1@2 ~@2 g#1@3 ~ g#1 ~@3 g#1 ~@3 g#1 ~@3 g#1@3 ~ a1@2 ~@2 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 f1@4 f#1@4 g#1@4 a1@4 a#1@4 b1@4 c#2@4 e2@4 c#2@4 e1@2 ~@2 e1 ~@3 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1 ~@3 e1@2 ~@2 e1@2 ~@2 e1@3 ~ f#1@2 ~@2 f#1@3 ~ g#1@2 ~@2 g#1@2 ~@2 g#1@3 ~ e1@4 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 g#1@3 ~ a1@2 ~@2 f#1@3 ~ f#1]/8",
K: "[~@3 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 a1@4 b1@4 c#2@4 c#1@2 ~@2 c#1@2 ~@2 c#1@2 ~@2 c#1@4 b1@2 ~@2 b1@4 c#2@2 ~@2 a1@4 a1]/2",
L: "[~@3 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@9 ~@19 e1@4 e1@8 ~@4 e1 ~@3 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 b1@4 e2@4 b1@4 e1@4 e1@10 ~@2 e1@3 ~ e1@10 ~@2 e1@2 ~@2 e1@9 ~@2 e1 ~@3 e1@9 ~@4 e1@2 ~ e1@2]/8",
M: "[~@10 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@4 b1@4 e1@4 b1@4 e1@2]/2",
N: "[~@2 e1@7 ~ e1@4 ~ e1@9 ~@2 e1@2 ~@2 e1@10 ~@2 e1@2 ~@2 e1@9 ~@3 e1@4 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@10 ~@2 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e2@3 ~ e2@3 ~ b1@4 e1@4 e1@2]/7",
O: "[~@10 e1 ~@3 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e2@4 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 b1@4 e2@4 e1@4 b1@4 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@8 ~@4 e1@2 ~@2 e1@2]/8",
P: "[~@10 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e2@4 c2@4 c#2@4 c#2@4 c#1@2]/3",
Q: "~ c#2 ~ c#2 ~ c#1 ~ c#1 ~ c#2 ~ c#2 ~ c#1 ~ c#1",
R: "~@2 c#2@2 ~@2 c#2@2 ~@2 c#1 ~@3 c#2@4 e1@4 f1@2 ~@2 f1@3 ~ f#1@2",
S: "~@2 f#1 ~@3 f#1 ~@3 f#1@2 ~@2 f#1@2 ~@2 f#1 ~@3 f#1 ~@3 f#1 ~@3 f#1@2",
T: "~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1 ~@3 f1@3 ~ f#1@2",
U: "~@2 g#1@4 a1@4 a#1@4 b1@4 c#2@4 e2@4 c#2@3 ~ e1@2", V: "~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1",
W: "~@2 e1@4 f#1@2 ~@2 g#1@3 ~ g#1 ~@3 g#1 ~@3 g#1 ~@3 g#1@3 ~ a1@2",
X: "[~@2 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 a1 ~@3 f1@4 f#1@4 g#1@4 a1@4 a#1@4 b1@4 c#2@4 e2@4 c#2@4 e1@2]/2",
Y: "~@2 e1 ~@3 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1 ~@3 e1@2 ~@2 e1@2",
Z: "~@2 e1@3 ~ f#1@2 ~@2 f#1@3 ~ g#1@2 ~@2 g#1@2 ~@2 g#1@3 ~ e1@4 a1@2",
AA: "~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1",
AB: "~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 g#1@3 ~ a1@2 ~@2 f#1@3 ~ f#1@2",
AC: "~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ a1@2 b1@2 c#2@2 c#1", AD: "~ c#1 ~ c#1 ~ c#1@2 b1 ~ b1@2 c#2 ~ a1@2 a1",
AE: "[~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@9 ~@3 a#1@4 b1@4 c#2@4 e2@4 c#2@3 ~ e1@2]/2",
AF: "~@2 e1@2 ~ e1@2 ~@3 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@2",
AG: "~@2 e1@4 f#1@2 ~ g#1@3 ~@2 g#1 ~@3 g#1 ~@3 g#1 ~@3 g#1@3 ~ a1@2",
AH: "~ a1 ~@4 a1 ~@3 a1 ~@2 a1 ~@3 a1 ~@3 a1 ~@4 f1@3 f#1@3",
AI: "~ g#1@4 a1@4 ~ a#1@4 b1@3 c#2@4 e2@4 ~ c#2@3 e1@2 ~",
AJ: "~ e1 ~@3 e1@2 ~@3 e1@2 ~ e1@2 ~@2 e1@2 ~@2 e1 ~@3 e1@2 ~@2 e1@2 ~",
AK: "~ e1@3 ~ f#1@2 ~@2 f#1@3 ~ g#1@2 ~@2 g#1@2 ~@2 g#1@3 ~ e1@4 a1@2 ~",
AL: "~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~",
AM: "~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 g#1@3 ~ a1@2 ~@2 f#1@3 ~ f#1@2 ~",
AN: "~ f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2 a1@4 b1@4 c#2@4 c#1@2 ~",
AO: "~ c#1@2 ~@2 c#1@2 ~@2 c#1@4 b1@2 ~@2 b1@4 c#2@2 ~@2 a1@4 a1@2 ~",
AP: "[~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@9 ~@19 e1@4 e1@3]/2",
AQ: "[~@9 e1 ~@3 e1@9 ~@3 e1@2 ~@2 e1@10 ~@2 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@10 ~@2 e1@2 ~@2 e1@10 ~@2 e1@3 ~ e1@10 ~@2 e1@2 ~@2 e1@9 ~@3 e1 ~@3 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@2 ~@2 e1@9 ~@3 e1@3 ~ e1@3]/7",
AR: "[~@9 e1@2 ~@2 e2@4 e2@3 ~ b1@4 e1@56 ~@15]/3",
})).s("gm_electric_bass_finger").gain(0.69)
// chords · harpsichord · "PRG.CHANGE"
const harpsichord = note("<~@40 A@7 B@6 ~@30 C@7 D@5 E@7 F@6 ~@10>".pickRestart({
A: "[~@31 e4@12 [g#3,b3,e4]@32 [b3,e4,g#4]@15 ~@13 [a3,c#4]@4 b3@12 [g#3,c#4]@4 [a3,e4]@20 f#4@8 e4@4 f#4@4 [a3,c#4,e4]@12 [g#3,b3,e4]@32 [b3,e4,g#4]@16 e4 ~ e4 ~ e4, ~@31 a3@72 ~@4 g#3@10 ~@26 a3@16 ~@65, ~@95 a2@48 ~@81, ~@107 a3 ~@15 c#4@28 ~@73]/7", // E A C#5 A5 A E
B: "[~@3 e4 ~@3 [a3,c#4]@4 e4@10 ~@2 e4@3 ~ e4@15 ~ e4@7 ~ e4@4 ~@4 e2@4 ~@8 a3@4 b3@8 a3@2 f#3@2 c#3@3 ~ c#3@3 ~@5 g#3@4 c#4@4 e4@3 ~ d#4@4 b3@3 ~ g#3@6 ~@2 b3@8 a3@3 ~ a3@4 ~@4 a3@3 ~ a3@3 ~ a3@3 ~ [a2,e3,a3]@5 ~@28, ~@7 e4@3 ~ [g#3,b3]@15 ~ [a3,c#4]@36 f#2@23 ~@9 c#3@14 ~@2 b2@15 e3@32 ~@34, ~@55 e4@8 ~@62 a2@32 ~@35, ~@143 e4@17 ~@32]/6", // A A5 G#m A
C: "[~@30 [a3,c#4,e4]@12 [g#3,b3,e4]@32 [b3,e4,g#4]@15 ~@13 [a3,c#4]@4 b3@12 [g#3,c#4]@4 [a3,e4]@20 f#4@8 e4@4 f#4@4 [a3,c#4,e4]@12 [g#3,b3,e4]@32 [b3,e4,g#4]@16 e4 ~ e4 ~ e4 ~, ~@47 a2@24 ~@41, ~@53 g#3@5 ~@13 a3@8 ~@33, ~@106 a3 ~@15 c#4@28 ~@74]/7", // A E A C#5 A5 A E
D: "[~@2 e4 ~@3 [a3,c#4]@4 e4@10 ~@2 e4@3 ~ e4@15 ~ e4@7 ~ e4@4 ~@4 e2@4 ~@8 a3@4 b3@8 a3@2 f#3@2 c#3@3 ~ c#3@3 ~@5 g#3@4 c#4@4 e4@3 ~ d#4@4 b3@3 ~ g#3@6 ~@2 b3@8 a3@3 ~ a3@4 ~@4 a3@3 ~ a3@3 ~ a3@3 ~ [e4,a4]@2, ~@6 e4@3 ~ [g#3,b3]@15 ~ [a3,c#4]@36 f#2@23 ~@9 c#3@14 ~@2 b2@15 e3@32 ~@3, ~@27 e4@4 ~@31 a2@16 ~@2, ~@71 [e4,a4]@8 ~]/5", // A A5 G#m A A5
E: "[~@2 a3@4 ~@4 a3@3 ~ a3@3 ~ a3@3 ~ e4@4 a3@3 ~ [a3,c#4,e4]@12 [g#3,b3,e4]@31 [b3,e4,g#4]@15 ~@14 [a3,c#4]@4 b3@11 [g#3,c#4]@5 [a3,e4]@20 f#4@7 e4@4 ~ f#4@3 [a3,c#4,e4]@12 ~ [g#3,b3,e4]@31 ~ [e4,g#4]@15 e4 ~ e4 ~ e4 ~@2, ~@3 [e4,a4]@8 ~@36 a2@24 ~@41, ~@106 g#3@10 ~@26 a3@15 ~@44 b3@14 ~@9, ~@106 a3 ~@15 c#4@28 ~@74]/7", // A E A C#5 A5 A E A5
F: "[~ e4 ~@3 [a3,c#4]@4 e4@10 ~@2 e4@3 ~ e4@15 ~ e4@7 ~ e4@4 ~@4 e2@4 ~@8 a3@4 b3@8 a3@2 f#3@2 c#3@3 ~ c#3@3 ~@5 g#3@4 c#4@4 e4@3 ~ d#4@4 b3@3 ~ g#3@7 ~@2 b3@7 a3@3 ~ a3@4 ~@4 a3@3 ~ a3@3 ~ a3@3 ~ [a2,e3,a3]@5 ~@30, ~@5 e4@3 ~ [g#3,b3]@15 ~ [a3,c#4]@36 f#2@23 ~@9 c#3@14 ~@2 b2@16 ~@16 e4@17 ~@34, ~@53 e4@8 ~@63 [a2,e3]@32 ~@36]/6", // A A5 G#m A A5
})).s("gm_harpsichord").gain(0.5)
// chords · lead 5 charang · "SAW WAVE"
const lead_5_charang = note(`<
~@5 A@8 B@6 C@5 D@6 E@3 F@8 G@5 H@6 I@8 J@7 K@6 L@3 M@8 N@5 O@6 P@5 Q@7 R@8 S@3
>`.pickRestart({
A: "[~@4 [b3,d#4,f#4,b4,d#5]@3 [a3,c#4,e4]@29 [b3,d#4,f#4,d#5]@3 [a3,c#4,e4]@25, ~@28 [a4,c#5]@16 ~@100 b4@9 ~@3 [a4,c#5]@16 ~@84]/8", // B A B A
B: "[~@4 [b3,d#4,f#4,b4,d#5]@3 [a3,c#4,e4]@13 [b3,d#4,f#4,b4,d#5]@3 [a3,c#4,e4]@13 [b3,d#4,f#4,b4,d#5]@3 [a3,c#4,e4]@9, ~@7 [a4,c#5]@4 ~@12 [a4,c#5]@4 ~@12 [a4,c#5]@4 ~@5]/6", // B A B A B A
C: "[~@16 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@19 [a3,c#4,e4,a4,c#5]@12 [g#3,b3,e4]@52 [a3,c#4,f#4,a4,c#5]@12 ~ [b3,e4]@36, ~@28 [a4,c#5]@16 ~@15 [g#4,b4]@16 ~@48 g#4@16 ~@21, ~@31 b4@4 ~@5]/5", // B A E F#m E5 A G#m
D: "[~@15 [b3,d#4,f#4,b4,d#5]@12 ~ [a3,c#4,e4]@51 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@37, ~@27 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@21]/6", // B A B A B A
E: "[~@15 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@20 [a3,c#4,e4,c#5]@12 [g#3,b3,e4]@37, ~@27 [a4,c#5]@16 ~@4 a4@9 ~@3 [g#4,b4]@16 ~@21]/3", // B A E A G#m
F: "[~@15 [a3,c#4,f#4,a4,c#5]@12 [b3,e4]@64 [c#3,c#4,e4,g#4]@68 [f#3,c#4,f#4,a#4]@64 [f#3,c#4,f#4,a4]@16 [b3,c#4,f#4,a4]@14 ~@2 [a3,c#4,f#4], ~@27 [g#4,b4]@16 ~@213]/8", // F#m E5 C#m F# F#m G#m
G: "[~@11 [g#3,b3,e4]@32 [g#3,b3,e4,g#4]@20 [a3,c#4,e4]@28 [f#3,a3,c#4,e4]@20 [a3,c#4,e4,f#4]@16 [a3,c#4,f#4]@12 [g#3,b3,e4]@21]/5", // E A F#m7 F#m E
H: "[~@11 [g#3,b3,e4,g#4]@20 [a3,c#4,e4]@28 [a3,c#4,e4]@36 [f#3,a3,c#4,f#4]@32 [g#3,c#4,e4,g#4]@16 [g#3,b3,d#4,g#4]@16 [a3,c#4,e4]@32 [a3,c#4,e4]]/6", // E A F#m C#m G#m A
I: "[~@15 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@51 [b3,d#4,f#4,b4,d#5]@12 ~ [a3,c#4,e4]@37, ~@27 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@21]/8", // B A B A B A B A
J: "[~@14 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@20 [a3,c#4,e4,a4,c#5]@12 [g#3,b3,e4]@52 ~ f#4@11 [b3,d#4]@38, ~@13 [a4,c#5]@8 ~@24 [a4,c#5]@8 ~@8 [g#4,b4]@8 ~@18 [a3,c#4,a4,c#5]@6 [g#4,b4]@8 ~@11]/7", // B A B A E B A G#m …
K: "[~@7 [b3,d#4,f#4,b4,d#5]@6 [a3,c#4,e4]@26 [b3,d#4,f#4,d#5]@6 [a3,c#4,e4]@26 [b3,d#4,f#4,b4,d#5]@6 [a3,c#4,e4]@19, ~@26 [a4,c#5]@16 ~@36 b4@9 ~@3 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@22]/6", // B A B A B A
L: "[~@7 [b3,d#4,f#4,b4,d#5]@6 [a3,c#4,e4]@10 [a3,c#4,e4,a4,c#5]@6 [g#3,b3,e4]@19, ~@13 [a4,c#5]@8 ~@8 [g#4,b4]@8 ~@11]/3", // B A E A G#m
M: "[~@7 [a3,c#4,f#4,a4,c#5]@6 [b3,d#4]@32 [c#3,c#4,e4,g#4]@34 [f#3,c#4,f#4,a#4]@32 [f#3,c#4,f#4,a4]@8 [b3,c#4,f#4,a4]@7 ~ [a3,c#4,f#4], ~@13 [g#4,b4]@8 ~@107]/8", // F#m B C#m F# F#m G#m
N: "[~@5 [g#3,b3,e4]@16 [g#3,b3,e4,g#4]@10 [a3,c#4,e4]@14 [f#3,a3,c#4,e4]@10 [a3,c#4,e4,f#4]@8 [a3,c#4,f#4]@6 [g#3,b3,e4]@11]/5", // E A F#m7 F#m E
O: "[~@5 [g#3,b3,e4,g#4]@10 [a3,c#4,e4]@14 [a3,c#4,e4]@18 [f#3,a3,c#4,f#4]@16 [g#3,c#4,e4,g#4]@8 [g#3,b3,d#4,g#4]@8 [a3,c#4,e4]@16 [a3,c#4,e4]]/6", // E A F#m C#m G#m A
P: "[~@10 [b3,c#4,f#4,a4]@18 ~@2 [a3,c#4,f#4]@12 [g#3,b3,e4]@31 [g#3,b3,e4,g#4]@20 ~ [a3,c#4,e4]@28 [f#3,a3,c#4,e4]@20 [a3,c#4,e4,f#4]@15 [a3,c#4,f#4]@3]/5", // F#m E A F#m7 F#m
Q: "[~@10 [g#3,b3,e4]@32 [g#3,b3,e4,g#4]@19 [a3,c#4,e4]@28 [a3,c#4,e4]@36 [f#3,a3,c#4,f#4]@32 [g#3,c#4,e4,g#4]@16 [g#3,b3,d#4,g#4]@16 [a3,c#4,e4]@32 [a3,c#4,e4]@3]/7", // E A F#m C#m G#m A
R: "[~@13 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4]@52 [b3,d#4,f#4,d#5]@12 [a3,c#4,e4]@39, ~@25 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@48 [a4,c#5]@16 ~@36 b4@9 ~@3 [a4,c#5]@16 ~@23]/8", // B A B A B A B A
S: "[~@13 [b3,d#4,f#4,b4,d#5]@12 [a3,c#4,e4,a4,c#5]@64 ~@7]/3", // B A
})).s("gm_lead_5_charang").gain(0.48)
// other · piano · "PRG.CHANGE"
const piano = note("<A B C@2 D@14 E F G@8 H@7 I@6 ~@77>".pickRestart({
A: "~ e1 ~@4 e1@2 ~@8", B: "e1 ~ e3 ~@2 e3 ~@2", C: "e1 ~ e3 ~@2 e3 ~ e3", D: "e1 e2 e3 e1 e2 e3 e2 e3",
E: "e1@3 e2@4 ~ e3@4 e1@4 e2@4 e3@3 e2@4 ~ e3@4", F: "e1@3 e2@4 ~ e3@3 e1@4 ~ e2@4 e3@3 e2@4 ~ e3@4",
G: "[e1@4 e2@3 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 ~ e3@3 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 ~ e3@3 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 ~ e2@3 e3@4 e2@4 ~ e3@3 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1]/8",
H: "[~@3 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1@4 e2@4 e3@4 e1@4 e2@4 e3@4 e2@4 e3@4 e1]/7",
I: "[~@3 e2@4 e3@4 e1@4 [e3,g#4]@4 [c3,d#4]@4 [c#3,e4]@4 [c#4,e4]@52 [c#3,b3,c#4,e4,g#4]@12 ~@4 f#2@48 ~@16 f#2@4 g#2@4 a2@4 a#2@4 b2@4 [c#3,c#4]@4 [e3,e4]@4 [c#3,c#4]@4 ~, ~@27 [c#2,g#3]@59 ~@5 [f#3,a#3]@51 ~@17 [c#4,e4]@16 ~@17]/6", // E Cm C#m C#m7 C# E C# C#5 …
})).s("gm_piano").gain(0.64)
// other · piano · "PRG.CHANGE" · soft notes
const piano_soft = note("<[~ e2 e3 ~ e2 e3 e2 e3] [~ e2 ~ e1 e2 ~ e2 e3] [~ e2 ~ e1 e2 ~ e2 ~]!2 ~@114>")
.s("gm_piano").gain(0.32)
// other · epiano2 · "PRG.CHANGE"
const epiano2_2 = note("<~@57 A@2 ~@2 B@2 C D E F G ~@50>".pickRestart({
A: "[~@15 e4@3 a4@4 b4@4 ~ e5@22 ~@15]/2", B: "[~@10 e4 ~@3 e4@4 a4@4 b4@4 e5@19 ~@5 a4@4 ~ b4@3 a4@6]/2",
C: "~@2 a4@4 b4@4 e5@10 ~@2 e5 ~@9", D: "~@2 b4@3 ~ g#5@2 ~@10 b4@2 ~@2 g#5@4 f#5@6",
E: "~@2 g#5@4 e5@4 b4@4 ~ a4@3 f#4@4 a4@4 b4@5 ~", F: "~@2 g#4 ~@3 g#4 ~@7 g#4 ~@7 e5@4 d#5@3 ~ b4@2",
G: "~@6 g#4@3 ~ f#4@4 g#4@4 e4@4 b3@4 a3@6",
})).s("gm_epiano2").gain(0.8)
// other · electric guitar jazz · "PRG.CHANGE"
const electric_guitar_jazz = note("<~@68 A@8 B@8 ~@11 C ~@22>".pickRestart({
A: "[~@3 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1]/8",
B: "[~ e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 e2@2 e3@2 e2@2 e3@2 e1@2 e2@2 e3@2 e1@2 [e3,g#4]@2 [c3,d#4]@2 [c#3,e4]@2 [c#4,e4]@26 [c#3,b3,c#4,e4,g#4]@6 ~@2 f#2@24 ~@8 f#2@2 g#2@2 a2@2 a#2@2 b2@2 [c#3,c#4]@2 [e3,e4]@2 [c#3,c#4]@2 ~, ~@90 [c#2,g#3]@59 ~@5 [f#3,a#3]@51 ~@17 [c#4,e4]@16 ~@18]/8", // E Cm C#m C#m7 C# E C# C#5 …
C: "~@5 a#2@2 b2@2 [c#3,c#4]@2 [e3,e4]@2 [c#3,c#4]@2 ~", // C# E C#
})).s("gm_electric_guitar_jazz").gain(0.64)
// drums · kick
const kick = s("bd").struct(`<
~@24 A B@15 C B D B@9 E B@5 F G@8 H G@15 I G J G@9 K L M N O P@7 Q P@7 R ~@2
>`.pickRestart({
A: "~@31 x", B: "~@11 x ~@3 x ~@11 x ~@3 x", C: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
D: "~@11 x ~@3 x ~@15 x", E: "~@27 x ~@3 x", F: "~@10 x ~@3 x ~@12 x ~@2 x ~", G: "~@5 x ~ x ~@5 x ~ x",
H: "~@5 x ~ x ~@3 x ~ x ~ x", I: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", J: "~@5 x ~ x ~@7 x", K: "~@13 x ~ x",
L: "~@10 x ~@3 x ~@10 x ~@4 x ~", M: "~@9 x ~@4 x ~@15 x ~", N: "~@9 x ~@3 x ~@12 x ~@2 x ~@2",
O: "~@10 x ~@3 x ~@10 x ~@3 x ~@2", P: "~@9 x ~@3 x ~@11 x ~@3 x ~@2", Q: "~@25 x ~@3 x ~@2", R: "~@25 x ~@6",
})).gain(0.67)
// drums · snare
const snare = s("sd").struct(`<
~@25 A@10 B A@4 C A D A@9 ~ A@3 B A E@2 F@7 G F@15 H F I F@9 J K L M@9 ~ M@7 ~@3
>`.pickRestart({
A: "~@7 x ~@15 x ~@8", B: "~@7 x ~@24", C: "~@23 x ~@3 x ~ x ~@2", D: "~@7 x ~@15 x ~@3 x ~ x ~@2",
E: "~@7 x ~@14 x ~@9", F: "~@3 x ~@7 x ~@4", G: "~ x ~ x ~@3 x ~ x ~@6", H: "~@11 x ~ x!2 ~",
I: "~@3 x ~@7 x ~ x!2 ~", J: "~@3 x ~ x ~ x ~@8", K: "~@5 x ~@16 x ~@9", L: "~@6 x ~@14 x ~@3 x ~@2 x ~@3",
M: "~@5 x ~@15 x ~@10",
})).gain(0.67)
// drums · low tom
const low_tom = s("lt").struct("<~@13 A ~@21 B ~@16 C ~@3 D ~@38 E ~@11 F ~@7 G ~@2>".pickRestart({
A: "~@11 x ~@4", B: "~@27 x ~ x ~@2", C: "~@15 x ~@5 x ~@10", D: "~@23 x ~@8", E: "~@5 x ~@2", F: "~@13 x ~@6 x ~@11",
G: "~@13 x ~@5 x ~@12",
})).gain(0.53)
// drums · hihat
const hihat = s("hh").struct(`<
~@14 A@4 B C@2 B C@2 D E@10 F E@4 ~ G H I J I@7 K E@3 L M N O P@7 Q P@10 R P@4 ~ S T U V U@3 W U@3 ~ X Y Z AA I@3 AB
I@2 AC AD AE@7 ~@3
>`.pickRestart({
A: "~ x ~ x", B: "~@8 x ~@14 x ~@8", C: "~@7 x ~@15 x ~@8", D: "~@7 x ~@15 x ~@7 x",
E: "~@3 x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@3 x ~ x ~ x", F: "~@3 x ~@3 x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x",
G: "~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
H: "~ x ~ x ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
I: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
J: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@6", K: "~@31 x",
L: "~@3 x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@7 x", M: "~@3 x ~@3 x ~@3 x ~ x ~ x ~@2 x ~@3 x ~@4 x ~ x ~ x",
N: "~@3 x ~@2 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@4 x!2 ~ x ~", O: "~@3 x ~@3 x ~@2 x ~ x ~ x ~@3 x ~@3 x ~@3 x ~ x ~ x ~",
P: "~ x ~ x ~ x!3 ~ x ~ x ~ x!3", Q: "~ x ~ x ~ x!3 ~ x!3 ~ x!3", R: "~ x ~ x ~ x!3 ~ x!3 ~ x!2 ~", S: "~ x!15",
T: "x!4 ~ x!11", U: "x!16", V: "x!13 ~@3", W: "x!15 ~",
X: "~@2 x ~ x!2 ~@2 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~ x ~@2 x ~ x ~",
Y: "x!2 ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2 x!2",
Z: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2 x!2 ~ x ~ x",
AA: "~ x ~ x ~ x ~ x ~@2 x!2 ~@2 x!2 ~ x ~ x ~ x ~ x ~@7 x",
AB: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@5 x ~ x",
AC: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2", AD: "~@29 x ~@2",
AE: "~ x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@3 x ~@3 x ~ x ~ x ~@2",
})).gain(0.47)
// drums · mid tom
const mid_tom = s("mt").struct("<~@13 A ~@21 B ~@16 C ~@3 D ~@38 D ~@11 E ~@7 F ~@2>".pickRestart({
A: "~@21 x ~@10", B: "~@19 x ~ x ~ x ~@8", C: "~@11 x ~@8 x ~@11", D: "~@19 x ~@12", E: "~@9 x ~@9 x ~@12",
F: "~@9 x ~@8 x ~@13",
})).gain(0.6)
// drums · high tom
const high_tom = s("ht").struct("<~@13 A ~@38 B ~@42 C ~@11 D ~@7 E ~@2>".pickRestart({
A: "~@4 x!2 ~@2", B: "~@3 x ~@3 x ~@11 x ~@12", C: "~ x ~@7 x ~@6", D: "~ x ~@3 x ~@12 x ~@13",
// … 25 more lines
More by Anna Oxa
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.