0:00/0:00
// All in a Mouse's Night — Genesis
// 145 bpm, 4/4, key G 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 (4/4 at bar 1, 3/4 at bar 11, 4/4 at bar 54, 6/8 at bar 55, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 3 "Bass Pedal" named as a bass, played on electric bass finger (its rock organ patch is not one)
// note: duplicate parts dropped: ch 6 "Flute sound" ocarina (copy of ch 1 "Tinkly sound" celesta)
// note: Full arrangement: all 264 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(145/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 · electric bass finger · "Bass Pedal"
const bass = note(`<
~@9 A@5 B@6 C@6 D@3 E@3 F@2 G H I@3 ~ J@3 K@3 L@3 M@3 N O@3 P@6 Q@6 R@4 S@6 T@6 U@3 V W X@3 Y@3 ~ Z@3 AA@3 AB@3 AC
AD@3 AE@3 AF@3 AG@6 AH@4 AI@2 AJ@4 AI@2 AK@3 AL@4 AM@6 AN@3 AO@2 AP@8 ~@8 AQ@5 AR@8 ~@8 AS@8 AT@6 AU@4 AV@5 AW@5 AX@5
AY@4 AZ@5 BA@5 BB@5 BC@5 BD@5 BE@8 BF@5 BG
>`.pickRestart({
A: "[~@13 c#2@107]/5", B: "[b1@36 c#2@77 c#3@2 ~@2 c3@6 a#2@3 g#2@2 ~ f#2@2 ~ c#2@12]/6",
C: "[b1@36 c#2@78 c#3@2 ~ c3@6 a#2@3 g#2@2 ~ f#2@2 ~ c#2@12]/6", D: "[b1 c#2]/3", E: "[c#2 a1 c#2 a1]/3",
F: "[c2@3 d2@3 ~@2]/2", G: "~@2 f#1 ~@3 f#1!2", H: "~@6 f#1!2", I: "~@6 b1!2", J: "c#2!2 ~@6", K: "~@2 f#1!2 ~@4",
L: "~@2 b1!2 ~@4", M: "~@4 c#2!2 ~@2", N: "~ e2 d2 c2", O: "[b1 a2@11]/3",
P: "[~ g#2@12 ~@6 e2@5, ~@39 g2@19 ~@14]/6", Q: "[~ d#2@12 d2@11]/6", R: "[~@6 c#2@78 c#3@2 ~ c3@6 a#2@3]/4",
S: "[g#2@2 ~ f#2@2 ~ c#2@12 b1@36 c#2@77 c#3@2 ~@2 c3@6 a#2@3]/6",
T: "[g#2@2 ~ f#2@2 ~ c#2@12 b1@36 c#2@36 c#2@18 a1@18 c#2@18]/6", U: "[a1 c2 d2 ~]/3", V: "f#1 ~@3 f#1!2 ~@2",
W: "~@4 f#1!2 ~@2", X: "~@4 b1!2 ~@2", Y: "~@6 c#2!2", Z: "f#1!2 ~@6", AA: "b1!2 ~@6", AB: "~@2 c#2!2 ~@4",
AC: "e2 d2 c2 b1", AD: "[a2@71 ~]/3", AE: "g#2/3", AF: "[~ e2, g2@19 ~@17]/3", AG: "[d#2 d2]/6",
AH: "[c#2@78 c#3@2 ~ c3@6 a#2@3 g#2@2 ~ f#2@2 ~]/4", AI: "[c#2 b1@3]/2",
AJ: "[c#2@77 c#3@2 ~@2 c3@6 a#2@3 g#2@2 ~ f#2@2 ~]/4", AK: "[c#2@2 c#2 a1]/3",
AL: "[c#2@18 a1@18 c2@8 ~ d2@9 c2@10 d2@10 c2@11 ~ d2@10]/4",
AM: "[~ c2@15 d2@14 c2@9 ~ d#2@29 ~ f1@29 ~ g1@14 a1@8 b1@14 ~ c2@7]/6", AN: "[d2@5 d#2@10 f1@9]/3",
AO: "[~ g1@15]/2", AP: "[~@7 c1@89]/8", AQ: "[~@17 g1@103]/5", AR: "[~ c1@11]/8", AS: "[~@18 g1@118 c1 c1@55]/8",
AT: "[~@49 b1@15 e1@80, ~@5 c2@46 ~@93]/6", AU: "[~ c2@18 b1@29]/4", AV: "[~@2 a1@59 d1@59]/5",
AW: "[~ c1@60 g1@30 f#1@29]/5", AX: "[~ e1@59 a1@60]/5",
AY: "[g2@36 ~ g3@2 ~@2 f#3@15 e3@2 ~ g2@36 ~, ~@29 d3 ~@18]/4",
AZ: "[g3@2 ~@3 f#3@14 e3@2 d3@2 g2@36 ~ g3@2 ~@2 f#3@15 e3@2 ~ g2@36 ~ g3, ~@81 d3@2 ~@37]/5",
BA: "[~@4 f#3@14 e3@2 d3 ~ g2@36 ~ g3@2 ~@2 f#3@15 e3@2 ~ g2@36 ~ g3@2, ~@40 d3 ~@19]/5",
BB: "[~@17 e3@2 d3 ~ g2@36 ~ g3@2 ~@2 f#3@15 e3@2 ~ g2@36 ~ g3@2 ~, ~@3 f#3@16 ~@60 d3@2 ~@39]/5",
BC: "[~@2 f#3@14 e3@2 d3@2 g2@36 ~ g3@2 ~@2 f#3@15 e3@2 d3 g2@36 ~ g3@2 ~@2]/5",
BD: "[~ f#3@14 e3@2 d3@2 g2@36 ~ g3@2 ~@2 f#3@15 ~ d3@2 g2@36 ~ g3@2 ~@3, ~@75 e3@2 ~@43]/5",
BE: "[~@14 e3@2 d3 ~ g2@36 ~ g3@2 ~@2 f#3@15 ~ d3 ~ g2@36 ~ g3@2 ~@3 f#3@14 e3@2 d3@2 g2@36 ~ g3@2 ~@2 f#3@14, f#3@8 ~@29 e3 ~@58]/8",
BF: "[~@2 d3 ~ g2@36 ~ g3@2 ~@3 f#3@14 e3@2 d3@2 g2@36 ~ g3@2 ~@2 f#3@15, ~ e3@2 ~@117]/5", BG: "~ d3 ~@22, e3 ~@11",
})).s("gm_electric_bass_finger").gain(0.69)
// chords · church organ · "Organ"
const church_organ = note(`<
~@9 A B@4 C@6 D@7 E@2 F@3 G@2 ~@19 H@6 I@3 J@3 K@3 L@6 M@6 N@4 O@3 ~@19 P@6 Q@3 R@3 S@3 T@6 U@6 V@3 W@3 X@5 Y@8 ~@112
>`.pickRestart({
A: "~ [c#4,f4,g#4]", B: "[~ [c#4,f4,g#4]@47]/4", C: "[~ [d#4,f#4]@37 ~ [c#4,f4]@104 ~, ~ b3@36 ~ g#4@104 ~@2]/6",
D: "[d#4@36 [c#4,f4,g#4]@107 ~ [b3,d#4]@24, f#4@40 ~@103 f#4@25, b3@17 ~@67]/7", E: "[~ [c#4,f4,g#4]@3]/2",
F: "[[b3,d#4,f#4]@17 ~ [a3,e4]@16 ~ [b3,d#4] [b3,d#4,f#4]@17 ~ [a3,e4]@16 ~ [b3,d#4,f#4], ~@2 c#4 ~@3 c#4 ~]/3", // B A5 B A5 B
G: "[[d4,f#4]@3 ~, a3 ~@23]/2", H: "[~@6 a4@71 d#5@35 ~ f4@31, ~ c5@23, ~@6 e5@69 ~@2 g#4@67]/6",
I: "[~ d5@6 e4@5, ~ [g4,b4]@11]/3", J: "[~@6 [d#4,a#4]@35 ~ c4@30, ~ g4@11, ~@41 d#4@31]/3",
K: "[~@29 g4@2 ~@11 b4@30, ~ [d4,f#4]@11, ~ a4@6 ~@5]/3", L: "[~@9 [c#4,f4]@104 ~ [b3,d#4,f#4]@30, ~ g#4@13 ~@4]/6",
M: "[~@6 [c#4,f4,g#4]@107 ~ [b3,d#4]@30, ~@113 f#4@31]/6", // C# B
N: "[~@6 [c#4,f4,g#4]@36 [b3,d#4,f#4]@17 ~ [a3,e4]@16 ~ [b3,d#4,f#4] [b3,d#4,f#4]@17 ~, ~@20 c#4@3 ~@9]/4", // C# B A5 B
O: "[[a3,e4]@16 ~ [b3,d#4] [d4,f#4]@36 ~@18, c#4@9 ~@9 a3@2 ~@52]/3", // A5 B D
P: "[a4@71 d#5@35 ~ f4@36 ~, c5@143 ~, e5@69 ~@2 g#4@72 ~]/6", Q: "[d5@18 e4@17 ~, [g4,b4]@71 ~]/3",
R: "[[d#4,a#4]@35 ~ c4@35 ~, g4, ~@35 d#4@36 ~]/3", S: "[~@23 g4@2 ~@11 b4@36, [d4,f#4], a4 ~]/3",
T: "[~@3 [c#4,f4]@104 ~ [d#4,f#4]@36, ~ g#4@52 ~ b3@17 ~]/6", U: "[[c#4,f4,g#4]@107 ~ [b3,d#4]@36, ~@107 f#4@37]/6",
V: "[[c#4,f4,g#4]@36 [b3,d#4,f#4]@17 ~ [a3,e4]@16 ~ [b3,d#4,f#4], ~@6 c#4 ~]/3", // C# B A5 B
W: "[[b3,d#4,f#4]@17 ~ [a3,e4]@16 ~ [b3,d#4,f#4] [d4,f#4]@36, ~@18 c#4@9 ~@9 a3@2 ~@34]/3", // B A5 B D
X: "[~@2 [d4,f#4]@52 [c4,e4,g4]@9 ~ [g#3,c4,d#4]@30 [f3,a3,c4]@26, ~@2 a3@3 ~@115]/5", // D C G# F
Y: "[~@4 [g3,b3,d4]@59 [g#3,c4,d#4]@30 [f3,a3,c4]@30 [g3,b3,d4]@59 ~@10]/8", // G G# F G
})).s("gm_church_organ").gain(0.46)
// chords · clavinet · "Harpsicord Sawtooth Guitar"
const clavinet = note("<~@53 A B@3 C@3 D@2 E F@2 G H@3 ~@37 I@3 J@3 K@3 L@3 M@3 ~@143>".pickRestart({
A: "~@3 [e4,a4,c5]@7 ~@2", B: "[[e4,a4,c5]@8 ~ [e4,a4,c5]@8 ~ [e4,a4,c5]@7 ~@2 [d#4,g#4,c5]@8 ~]/3",
C: "[[d#4,g#4,c5]@15 ~@3 [f4,g#4,c5]@16 ~@2 [f4,g#4,c5]@14 ~@4 [d4,g4,b4]@17 ~]/3", // G# Fm G
D: "[[d4,g4,b4]@15 ~@3 [e4,g4,b4]@17 ~ [e4,g4,b4]@11 ~]/2", E: "~@3 [d#4,g4,a#4]@8 ~",
F: "[[d#4,g4,a#4]@6 ~@3 [c4,d#4,g4]@8 ~ [c4,d#4,g4]@4 ~@2]/2", G: "~@6 [d4,a4,d5,f#5]@17 ~",
H: "[[d4,a4,d5,f#5]@16 ~@2 [d4,b4,d5,f#5]@16 ~@2 [d4,b4,d5,f#5]@15 ~@21, ~@9 a4@5 ~@22]/3", // D Bm
I: "[[a4,c5,e5]@15 ~@3 [a4,c5,e5]@15 ~@3 [a4,c5,e5]@16 ~@2 [a4,c5,e5]@14 ~@4]/3", // Am
J: "[[g#4,c5,d#5]@16 ~@2 [g#4,c5,d#5]@14 ~@4 [f4,g#4,c5]@15 ~@3 [f4,g#4,c5]@16 ~@2, ~@36 a#4 ~@35]/3", // G# Fm
K: "[[g4,b4,d5]@16 ~@2 [g4,b4,d5]@15 ~@3 [e4,g4,b4]@15 ~@3 [e4,g4,b4]@16 ~@2]/3", // G Em
L: "[[d#4,g4,a#4]@17 ~ [d#4,g4,a#4]@15 ~@3 [c4,d#4,g4]@15 ~@3 [c4,d#4,g4]@16 ~@2]/3", // D# Cm
M: "[[a3,d4,f#4]@16 ~@2 [a3,d4,f#4]@14 ~@4 [b3,d4,f#4]@16 ~@2 [b3,d4,f#4]@17 ~]/3", // D Bm
})).s("gm_clavinet").gain(0.36)
// other · overdriven guitar · "Harpsicord Sawtooth Guitar"
const overdriven_guitar = note("<~@167 A@6 ~@4 B@3 C@5 D@5 E@8 F G H@3 I@3 J K@3 L M@3 ~ N O ~@47>".pickRestart({
A: "[~@17 g3@34 ~@3 b3@2 c4@2 d4@2 ~ d4@3 g4@3 ~ g4@8 ~@7 d5@17 ~@6 g5@28 ~@10]/6",
B: "[~@14 e4@12 ~@3 e4@12 ~@3 f4@13 ~@2 a4@13]/3",
C: "[~@2 g4@13 ~@2 d4@13 ~ c4@14 ~@2 g4@13 ~ f4@14 ~ c4@14 ~ a#3@14 ~ f4@13 ~]/5",
D: "[~ d#4@13 ~@2 a#3@13 ~@2 a3@36 g3@7 ~ f#3@7 a3@7 ~ g3@30]/5",
E: "[~@8 c4@3 d4@2 ~@2 d4@3 g4@3 ~ g4@9 ~@7 d5@17 ~@4 g5@27 ~@3 g4@45 d4@4 e4@3 f4@6 ~ g4@43 ~, ~@7 b3@3 ~@182]/8",
F: "~ d#4@4 e4@3 f#4@4 b4@4 f#5@8", G: "b4@3 f#4@4 b3@3 f#3@4 d#3@6 ~ e3@3",
H: "[f3 [g3,a3] [b3,c4] [d4,e4,f4] [g4,a4] ~@11 a4@3 g4@4 a4@5 f#4@6 ~@2 e5@25 d5@5 c5@3 d5@3, ~ b4@3 ~@14]/3", // Gsus2 Cmaj7 Dm Gsus2
I: "[~ e5@3 f#5@4 g5@4 f#5@4 a4@21 a5@4 g5@4 f#5@7 d5@7 b4@8 f#5@5]/3", J: "~@2 e5@4 d5 [b4,c5] [g4,a4] f4 e4@13 ~",
K: "[e4@4 [f4,g4] [a4,b4] [c5,d5] e5@5 ~@3 e4@3 ~ [g4,a4] b4 [c5,d5] e5@5 ~@3 e4@2 f4 g4 a4 b4 d5@30 ~@6, ~@18 f4@2 ~@16 c5 ~@35]/3", // Fsus2 Asus2 Csus2 Gsus2 Csus2
L: "~@5 a5@5 g5@2, ~@9 g5@2 ~@13", M: "[~ e5@40 ~@5 e5@3 f5@4 e5@4 c5@3 ~ d5@9 ~@2]/3", N: "~@9 d5@6 ~@2 b4@4 a4@3",
O: "g#4@7 ~@5",
})).s("gm_overdriven_guitar").gain(0.36)
// chords · lead 2 sawtooth · "Sawtooth"
const lead_2_sawtooth = note(`<
~@9 A B C D B E F B C D B E F B C D B E F B G H I J K ~@19 L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AB AC AD
AE AF AG AH AI AJ AK AL AM ~@18 AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC C D B C BD BE C D B C BD BE C BF I G
BG BH@4 ~@122
>`.pickRestart({
A: "~@4 f4 g#4 c#5 f#4", B: "a#4 c#5 g#4 c5 c#5 g#4 a#4 c#5", C: "f4 g#4 c#5 f#4 a#4 c#5 g#4 c5",
D: "c#5 g#4 a#4 c#5 f4 g#4 c#5 f#4", E: "d#4 f#4 b4 b3 d#4 f#4 f#3 b3", F: "d#4 b3 d#4 f#4 f4 g#4 c#5 f#4",
G: "f#4 g#4 b4 d#4 f#4@2 e4 f#4", H: "a4 c#4 e4@2 f#4 g#4 b4 d#4", I: "f#4@2 e4 f#4 a4 c#4 e4@2",
J: "e4 f#4 a4 d4 e4 f#4 e4 f#4", K: "a4 d4 e4 f#4 g4 ~@3",
L: "~@6 [a4,c5] ~@2 [c5,e5] ~@2 [a4,c5]@2 ~ [c5,e5] ~@2 [a4,c5]@2 ~ [c5,e5]@2 ~", // Am C Am C Am C
M: "[a4,c5] ~@2 [c5,e5]@2 ~ [a4,c5]@2 ~ e5@2 ~ [a4,c5]@2 ~ [c5,e5] ~@2 [a4,c5] ~@2 [c5,e5]@2 ~, ~@9 c5 ~@14", // Am C Am C Am C
N: "a4@2 ~ [c5,e5]@2 ~ [a4,c5] ~@2 [c5,e5]@2 ~ [a4,c5] ~@2 [c5,e5] ~@2 a4@2 ~ [c5,e5] ~@2, c5 ~@17 c5 ~@5", // C Am C Am C
O: "[a4,c5]@2 ~ [c5,e5] ~@2 [d#4,g#4] ~@2 [g#4,c5] ~@2 g#4@2 ~ [g#4,c5] ~@2 d#4@2 ~ [g#4,c5] ~@2, ~@12 d#4 ~@5 g#4 ~@5", // Am C G#5 G#
P: "g#4@2 ~ [g#4,c5] ~@2 [d#4,g#4] ~@2 [g#4,c5] ~@2 [d#4,g#4]@2 ~ [g#4,c5] ~@2 [f4,g#4]@2 ~ [g#4,c5]@2 ~, d#4 ~@23", // G# G#5 G# G#5 G# Fm G#
Q: "[f4,g#4] ~@2 g#4@2 ~ [f4,g#4]@2 ~ [g#4,c5]@2 ~ [f4,g#4]@2 ~ [g#4,c5]@2 ~ [f4,g#4]@2 ~ c5@2 ~, ~@3 c5 ~@17 g#4 ~@2", // Fm G# Fm G# Fm
R: "[f4,g#4] ~@2 [g#4,c5] ~@2 [d4,g4] ~@2 [g4,b4]@2 ~ [d4,g4] ~@2 [g4,b4] ~@2 [d4,g4]@2 ~ [g4,b4] ~@2", // Fm G# G5 G G5 G G5 G
S: "[d4,g4] ~@2 [g4,b4]@2 ~ d4@2 ~ [g4,b4]@2 ~ d4@2 ~ [g4,b4] ~@2 [e4,g4] ~@2 [g4,b4] ~@2, ~@6 g4 ~@5 g4 ~@11", // G5 G Em G
T: "e4@2 ~ [g4,b4] ~@2 e4@2 ~ [g4,b4] ~@2 g4@2 ~ [g4,b4] ~@2 g4@2 ~ [g4,b4] ~@2, g4 ~@5 g4 ~@5 e4 ~@5 e4 ~@5", // G
U: "[e4,g4] ~@2 [g4,b4] ~@2 [d#4,g4] ~@2 [g4,a#4] ~@2 [d#4,g4] ~@2 [g4,a#4]@2 ~ [d#4,g4]@2 ~ [g4,a#4] ~@2", // Em G D# Gm D# Gm D# Gm
V: "[d#4,g4] ~@2 [g4,a#4] ~@2 [d#4,g4] ~@2 g4@2 ~ [d#4,g4]@2 ~ [g4,a#4] ~@2 [c4,d#4] ~@2 d#4@2 ~, ~@9 a#4 ~@11 g4 ~@2", // D# Gm D# Gm Cm
W: "[c4,d#4] ~@2 g4@2 ~ [c4,d#4]@2 ~ [d#4,g4]@2 ~ [c4,d#4] ~@2 [d#4,g4]@2 ~ [c4,d#4] ~@2 g4@2 ~, ~@3 d#4 ~@17 d#4 ~@2", // Cm D# Cm D# Cm
X: "[c4,d#4]@2 ~ g4@2 ~ [a4,d5] ~@2 [d5,f#5]@2 ~ a4@2 ~ [d5,f#5] ~@2 [a4,d5]@2 ~ [d5,f#5] ~@2, ~@3 d#4 ~@8 d5 ~@11", // Cm D5 D D5 D
Y: "[a4,d5] ~@2 [d5,f#5] ~@2 a4@2 ~ [d5,f#5] ~@2 a4@2 ~ [d5,f#5] ~@2 f#4@2 ~ [f#4,b4]@2 ~, ~@6 d5 ~@5 d5 ~@5 d4 ~@5", // D5 D B5
Z: "[d4,f#4] ~@2 [f#4,b4] ~@2 [d4,f#4]@2 ~ [f#4,b4] ~@2 [d4,f#4] ~@2 [f#4,b4]@2 ~ f#4@2 ~ [f#4,b4] ~@2, ~@18 d4 ~@5", // D B5 D B5 D B5
AA: "[d4,f#4]@2 ~ [f#4,b4] ~@2 f4@3 g#4@3 c#5@3 f#4@3 a#4@3 c#5@3", AB: "g#4 c5 c#5 g#4 a#4 c#5 f4 g#4",
AC: "c#5 f#4 a#4 c#5 g#4 c5 c#5 g#4", AD: "a#4 c#5 f4 g#4 c#5 f#4 a#4 c#5", AE: "g#4 c5 c#5 g#4 a#4 c#5 d#4 f#4",
AF: "b4 b3 d#4 f#4 f#3 b3 d#4 b3", AG: "d#4 f#4 f4 g#4 c#5 f#4 a#4 c#5", AH: "g#4 c5 c#5 g#4 a#4 c#5 f#4 g#4",
AI: "b4 d#4 f#4@2 e4 f#4 a4 c#4", AJ: "e4@2 f#4 g#4 b4 d#4 f#4@2", AK: "e4 f#4 a4 c#4 e4@2 e4 f#4",
AL: "a4 d4 e4 f#4 e4 f#4 a4 d4", AM: "e4 f#4 g4 ~@5", AN: "[c5,e5] [b4,d5] [a4,c5] [g4,b4]",
AO: "[a4,c5] ~@2 e5@2 ~ [a4,c5] ~@2 e5@2 ~ [a4,c5]@2 ~ [c5,e5] ~@2 [a4,c5] ~@2 [c5,e5]@2 ~, ~@3 c5 ~@5 c5 ~@14", // Am C Am C
AP: "[a4,c5] ~@2 [c5,e5] ~@2 [a4,c5] ~@2 [c5,e5] ~@2 a4@2 ~ [c5,e5] ~@2 a4@2 ~ [c5,e5] ~@2, ~@12 c5 ~@5 c5 ~@5", // Am C Am C
AQ: "[a4,c5] ~@2 [c5,e5] ~@2 [a4,c5] ~@2 [c5,e5] ~@2 [a4,c5]@2 ~ [c5,e5] ~@2 [a4,c5]@2 ~ c5@2 ~, ~@21 e5 ~@2", // Am C Am C Am C Am
AR: "g#4@2 ~ [g#4,c5] ~@2 g#4@2 ~ [g#4,c5] ~@2 [d#4,g#4]@2 ~ [g#4,c5]@2 ~ g#4@2 ~ [g#4,c5]@2 ~, d#4 ~@5 d#4 ~@11 d#4 ~@5", // G# G#5 G#
AS: "[d#4,g#4]@2 ~ [g#4,c5] ~@2 [d#4,g#4]@2 ~ g#4@2 ~ [f4,g#4] ~@2 [g#4,c5]@2 ~ [f4,g#4] ~@2 [g#4,c5]@2 ~, ~@9 c5 ~@14", // G#5 G# G#5 Fm G# Fm G#
AT: "[f4,g#4] ~@2 [g#4,c5]@2 ~ [f4,g#4] ~@2 g#4@2 ~ [f4,g#4] ~@2 [g#4,c5]@2 ~ [f4,g#4] ~@2 c5@2 ~, ~@9 c5 ~@11 g#4 ~@2", // Fm G# Fm G# Fm
AU: "[d4,g4] ~@2 [g4,b4]@2 ~ d4@2 ~ [g4,b4] ~@2 [d4,g4]@2 ~ [g4,b4] ~@2 d4@2 ~ [g4,b4] ~@2, ~@6 g4 ~@11 g4 ~@5", // G5 G G5 G
AV: "d4@2 ~ [g4,b4] ~@2 [d4,g4] ~@2 [g4,b4] ~@2 e4@2 ~ [g4,b4] ~@2 [e4,g4]@2 ~ [g4,b4] ~@2, g4 ~@11 g4 ~@11", // G G5 G Em G
AW: "[e4,g4] ~@2 g4@2 ~ g4@2 ~ [g4,b4]@2 ~ g4@2 ~ g4@2 ~ [e4,g4]@2 ~ g4@2 ~, ~@3 b4 ~@2 e4 ~@5 e4 ~@2 b4 ~@5 b4 ~@2", // Em G Em
AX: "d#4@2 ~ [g4,a#4]@2 ~ [d#4,g4]@2 ~ g4@2 ~ [d#4,g4] ~@2 [g4,a#4]@2 ~ [d#4,g4] ~@2 g4@2 ~, g4 ~@8 a#4 ~@11 a#4 ~@2", // Gm D# Gm D#
AY: "[d#4,g4] ~@2 g4@2 ~ [d#4,g4] ~@2 [g4,a#4]@2 ~ [c4,d#4] ~@2 d#4@2 ~ [c4,d#4] ~@2 [d#4,g4]@2 ~, ~@3 a#4 ~@11 g4 ~@8", // D# Gm Cm D#
AZ: "c4@2 ~ g4@2 ~ [c4,d#4] ~@2 [d#4,g4]@2 ~ [c4,d#4] ~@2 [d#4,g4] ~@2 [c4,d#4] ~@2 [d#4,g4] ~@2, d#4 ~@2 d#4 ~@20", // Cm D# Cm D# Cm D#
BA: "[a4,d5] ~@2 [d5,f#5] ~@2 a4@2 ~ [d5,f#5] ~@2 [a4,d5] ~@2 [d5,f#5] ~@2 [a4,d5] ~@2 [d5,f#5] ~@2, ~@6 d5 ~@17", // D5 D D5 D D5 D
BB: "d5@2 ~ [d5,f#5] ~@2 [a4,d5]@2 ~ d5@2 ~ f#4@2 ~ [f#4,b4]@2 ~ f#4@2 ~ f#4@2 ~, a4 ~@8 f#5 ~@2 d4 ~@5 d4 ~@2 b4 ~@2", // D D5 B5
BC: "f#4@2 ~ [f#4,b4] ~@2 [d4,f#4] ~@2 f#4@2 ~ [d4,f#4]@2 ~ f#4@2 ~ [d4,f#4]@2 ~ f#4@2 ~, d4 ~@8 b4 ~@5 b4 ~@5 b4 ~@2", // B5 D
BD: "c#5 g#4 a#4 c#5 d#4 f#4 b4 b3", BE: "d#4 f#4 f#3 b3 d#4 b3 d#4 f#4", BF: "c#5 g#4 a#4 c#5 f#4 g#4 b4 d#4",
BG: "a4 c#4 e4@2 e4 f#4 a4 d4",
BH: "[e4@3 f#4@3 e4@3 f#4@3 ~ a4@3 d4@3 e4@3 ~ f#4@3 e4@4 f#4@4 a4@4 d4@4 e4@4 f#4@3 e4@5 f#4@5 a4@5 d4@5 e4@5 f#4@4 c4@4 ~ d4@4 ~@9]/4",
})).s("gm_lead_2_sawtooth").gain(0.43)
// chords · synth strings 1 · "Strings"
const synth_strings_1 = note(`<
A@5 B@5 ~@42 C D ~@51 E ~@35 F@8 G@5 H@5 I J@7 K@8 L@5 M@5 N@5 O@8 P@8 Q@5 R@5 S@5 T@8 ~@35
>`.pickRestart({
A: "[~@14 g5@13 b5@13 ~ a5@13 e6@13 d6@13 ~ a5@13 g5@13 ~ [a#2,d6]@12, ~@7 c3@47 ~@6, ~@14 c5@53 a#4@27 [d#4,c5]@26, ~@14 g4@27 a4@26 d5@25 ~@2 c#5 ~@25, ~@14 e4@25 ~@2 f4@26 g4@52 ~]/5", // A# Cm
B: "[~ c6@13 g5@14 f5@13 c6@13 a#5@14 f5@13 [c4,g#4,d#5]@27 ~@12, ~ g#2@107 ~@12, ~ f4@53 d#4@54 ~@12, ~ g#4@27 a#4@54 ~@38, ~@28 c#4@25 ~ f#4@26 ~@40]/5", // G#
C: "~@6 [c5,e5]@5 ~ [b4,d5]@5 ~ [a4,c5,e5]@5 ~", D: "[g4,b4,d5]@5 ~@19",
E: "[c5,e5]@5 ~ [b4,d5]@5 ~ [a4,c5,e5]@5 ~ [g4,b4,d5]@5 ~", // C Bm Am G
F: "[~@16 [c4,d#4,g#4]@29 ~ [c4,f4,a4]@28 ~@2 [b3,d4,g4]@58 ~ [d#4,g#4]@29 ~ [f4,a4]@27, ~@45 c4@19]/8", // G# F G G#5 F
G: "[~@3 [b3,d4,g4]@59 g5@15 b5@14 ~ a5@15 e6@13, ~@62 c5@57 ~, ~@31 [e4,g4]@14 ~ [f4,a4]@14]/5", // G Em F
H: "[~@16 a5@15 g5@30 b5@29 ~ a5@15 e6@14, ~ [g4,a#4]@31 ~@88, ~@2 d5@28 ~ c5@87 ~@2, ~@2 d6@16 ~@13 [e4,g4]@58 ~@2 [f4,a4]@29]/5", // Gm Em F
I: "d6@5 a5@3, [g4,a#4,d5]", // Gm
J: "[~@6 g5@15 d6@14 ~ c6@15 g5@15 ~@15 c6@14 a#5@15 f5@14 ~ d#5@37 d5@6, ~@2 c5@19 ~ a#4@19 ~@15, ~@6 d#4@27 ~@3 f4@58 ~ [d#4,f#4]@73, ~@6 g#4@5 f5@5 ~@12, ~@66 c#4@28 ~@31 [c4,a4]@43]/7", // D#m F
K: "[~@2 c5@7 d#5@8 b4@28 ~ e5@29 ~ [a4,f5]@29 ~ g5@30 ~@15 b5@13 ~ a5@15 e6@12, ~@17 g4@59 ~@60 c5@56, ~@17 d5@26 ~@3 c5@60 [b4,d5]@32 ~@26 a4@28, ~@136 [e4,g4]@28 ~ f4@27, ~@17 g5@3 ~@4]/8", // Dm Bm Em
L: "[~@3 d6@15 a5@15 f4 ~@29 b5@14 b5@14 ~ a5@14 ~ e6@13, ~@2 g4@89 ~@29, ~@2 [a#4,d5]@31 c5@87, ~@33 g5@29 ~@58, ~@34 e4@57 [f4,a4]@29]/5", // A# F
M: "[~@2 d6@15 a5@14 ~ g5@14 ~ d6@13 ~@2 c6@14 ~@15 f5@15 c6@13 ~, ~ g4@59 f4@60, ~ [a#4,d5]@29 ~ c5@58 a#4@31, ~@31 d#4@29 g#4@30 c#4@30, ~@62 d6 ~@13 g5@15 ~@29]/5", // A#
N: "[~ a#5@15 f5@13 ~@2 d#5@37 d5@7 c5@7 ~ d#5@7 [b3,g4,d5]@30, [d#4,f#4]@89 ~@31, ~@30 c4@59 ~@31]/5", // G D#m
O: "[e5@29 ~ [a4,f5]@30 [d4,b4,g5]@29 [e4,c5]@30 d4@30 [e4,c6]@43, c4@58 ~@31 a5@28 ~@2 g4@73, ~@119 b5@28 ~@45]/8", // Dm G C
P: "[~ [f#4,b4,d#6]@15 b5@45 a5@7 g5@7 ~ a5@7 b5@8 e5@22 b5@7 a5@8 g5@7 ~@4 b5@7 ~@34 f#5@12, ~@8 [e4,g4]@67 [d4,f#4]@21, ~@135 a5@7 ~@4 d5@32 ~@14]/8", // B Em D
Q: "[~@3 [e4,a4,e5]@59 [d4,d5]@7 ~ [e4,e5]@7 [d4,f#4,d5,f#5]@7 ~ [e4,g4,e5,g5]@7 [d5,f5,a5]@15 b5@13, ~@23 [d4,f4]@7]/5", // A5 D E D Em Dm
R: "[~@2 a5@15 g5@29 b5@7 ~ c6@6 ~@16 d6@7 ~@8 d6@7 [e4,e6]@7 ~ d6@7 [b3,b5]@3 ~ a5@3, ~@2 e4@59 b4@59, ~@2 c4@51 c4@7 d4@7 e4@7 d4@9 b3@7 d4@9 ~@6 d4@7 ~@4 a3@4, ~@61 g4@30 f#4@29, ~@61 d6@8 e6@8 ~@7 b5@8 ~@28]/5", // E B
S: "[~ [g#3,g#5]@14 ~ b5@14 [d4,d6]@14 ~ c6@7 ~@8 a5@29 ~ e5@14 ~ f#5@15, ~ e4@117 ~@2, ~ g#4@57 ~@2 c#4@59 ~, ~@15 b3@15 ~@14 c4@8 b3@7 a3@30 e3@15 f#3@14 ~@2, ~@53 b5@8 ~@59]/5", // G# D
T: "[g4,b4,d5]/8", // G
})).s("gm_synth_strings_1").gain(0.42)
// drums · kick
const kick = s("bd").struct(`<
A ~@8 B ~ C B ~ D E F G H F G H F G H F G H F I H F G J K L@4 ~ M@3 N@6 O@3 ~ P Q R S Q R S Q R S Q R S Q R T U V T U
V T U V T U V T W V T U V X Y O@4 L@3 ~ M@6 N@3 ~ Z AA AB Z AA AB Z AA AB Z AA AB Z AA AB G H F G H F G H F G H F G AC
F AD AE AF AG AH AF ~@25 AI AJ ~ AK AL AM AN ~ AO AP AQ AR ~ AS AT A AU ~ AV AW AX AY ~ C AZ B AI BA ~ BB BC AH AJ ~
AU BD ~ BE ~ AO AT A AR ~ AS AW AX AU ~ AV AZ B AY ~@44
>`.pickRestart({
A: "~@7 x ~@4", B: "~ x", C: "x", D: "x ~@2 x ~@4", E: "~@4 x ~ x!2", F: "~ x ~@2 x!2 ~ x", G: "x ~ x!2 ~ x ~@2",
H: "x!2 ~ x!2 ~ x!2", I: "x!4 ~ x ~@2", J: "x!2 ~ x ~@2 x ~", K: "~@2 x ~@3 x!2", L: "~@6 x!2", M: "x!2 ~@6",
N: "~@2 x!2 ~@4", O: "~@4 x!2 ~@2", P: "~ x!2 ~", Q: "x ~ x ~@2 x!2 ~", R: "x ~ x!2", S: "~ x!2 ~ x ~@3",
T: "~ x!2 ~ x!2 ~ x", U: "~@2 x!2 ~ x!2 ~", V: "x!2 ~ x ~@2 x!2", W: "~@2 x!2 ~ x!3", X: "~ x ~@2 x ~@3",
Y: "x ~@3 x!2 ~@2", Z: "x!2 ~ x", AA: "x ~@2 x!2 ~ x ~", AB: "~@2 x ~ x ~@2 x", AC: "x!2 ~ x!5",
AD: "x ~@2 x ~@2 x ~", AE: "~ x ~@2 x ~@2 x", AF: "~@3 x ~@4 x ~@3", AG: "~ x ~@5 x ~@4", AH: "~ x ~@14 x ~@7",
AI: "~@17 x ~@6", AJ: "~@11 x", AK: "~ x ~@4", AL: "~@5 x ~@6", AM: "~@2 x", AN: "~@7 x", AO: "~ x ~@6",
AP: "~@3 x ~@4", AQ: "~@5 x ~@2", AR: "~@5 x", AS: "~ x ~@10", AT: "~ x ~", AU: "~@19 x ~@4", AV: "~ x ~@22",
AW: "~@7 x ~@16", AX: "~@13 x ~@10", AY: "~@3 x", AZ: "~ x ~@2", BA: "~@23 x", BB: "~@5 x ~@18", BC: "~@11 x ~@12",
BD: "~@2 x ~@6 x ~@14", BE: "~@6 x ~@7 x ~@6 x ~@2",
})).gain(0.75)
// drums · snare
const snare = s("sd").struct(`<
~@9 A ~ B A ~ C ~ D E F D E F D E F D E F D E F D E G F@6 A@3 E@6 ~ B@2 H I J K I J K I J K I J K I J K ~ L A B L A B
L A B L A B L A B L A M B@6 F@3 A@6 E@3 N J K I J K I J K I J K I J K I E F D E F D E F D E F D E F D O P Q R S T ~@25
U V ~ W X ~ Y A E ~ B Z AA U AB ~ W X AC V ~ AD J I AE ~@2 AF AG AH AI AJ Y AK AL T B AM A E AB AN Z AA U V ~ W X I AE
~ AD J AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY
BZ CA CB CC CD CE
>`.pickRestart({
A: "~ x", B: "x", C: "x ~@2 x ~@4", D: "~ x ~ x", E: "~@3 x", F: "~ x ~@2", G: "~ x!2 ~", H: "x ~@15 x!4 ~@4",
// … 119 more lines
More by Genesis
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.