0:00/0:00
// Land of Confusion — Genesis
// 115 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 133 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(115/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 · synth bass 1 · "Bass"
const bass = note(`<
~ A@3 B C@2 D@2 E@2 C@4 D@2 E@2 C@2 F G H I J K L M N O P Q R O P S A@3 B C@2 D@2 E@2 C@2 F G H I J K L M N O P Q R O
P S A@3 B T@2 U T@2 V W X T@2 U T@2 V W X Y@2 Z@2 AA@2 AB@2 AC AD AE C@2 D@2 E@2 C@2 F G H I J K L M N O P Q R O P S N
O P Q R O P S A@3 AF AG
>`.pickRestart({
A: "~@2 g#1!2 d#2@2 g#1@2 g#2@2 g#1@2 d#2@2 g#1@2", B: "~@2 g#1!2 d#2@2 g#1@2 g#2@2 g#1@2 d#2 ~ g#1 ~",
C: "d#1!2 ~@2 d#1!3 ~ d#1!3 ~@3 d#1 ~", D: "g#1!2 ~@2 g#1!3 ~ g#1!3 ~@3 g#1 ~", E: "b0!2 ~@2 b0!3 ~ b0!3 ~@3 b0 ~",
F: "c#1 ~ c#1 ~ c#1 ~ d#1@2 ~@2 d#1 ~@2 d#1!3", G: "f#1@2 f#1 ~ f#1 ~ g#1@2 ~ g#1@2 ~ g#1!4",
H: "c#1 ~ c#1 ~ c#1 ~ d#1@2 ~@2 d#1 ~ d#1!3 ~", I: "f#1 ~ f#1 ~ f#1@4 ~ c#1@2 ~ c#1@2 ~@2",
J: "c#1 ~ c#1 c#1@2 ~ d#1@2 ~@2 d#1 ~ d#1!4", K: "f#1 ~ f#1 ~ f#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1!3 ~",
L: "c#1@2 ~ c#1!2 ~ d#1 ~@3 d#1 ~ d#1!3 ~", M: "f#1 ~ f#1!2 ~ f#1 ~@2 c#1 ~@2 c#1!3 ~@2",
N: "~@2 d#1 ~ f#1@2 ~ d#1 f#1@2 b0@2 ~@4", O: "~@2 c#1 ~ f1@2 ~ c#1 f1@2 g#0@2 ~@4",
P: "~@2 d#1@2 f#1@2 ~ d#1 f#1 ~ b0@2 ~@4", Q: "~@2 c#1@2 f1@2 ~ c#1 f1@2 g#0@2 ~@4",
R: "~@2 d#1@2 f#1@2 ~ d#1 f#1@2 b0@2 ~@4", S: "~@2 c#1 ~ f1@2 ~ c#1 f1@2 c#1@2 ~@4",
T: "c1@2 ~@2 c2@2 ~@2 g1@2 a#1 ~ c2@2 ~@2", U: "c1@2 ~@2 c2@2 ~@2 g1@2 a#1 ~ c2 ~ g1 ~",
V: "c1@2 ~@2 c2 ~@3 g1@2 a#1 ~ c2 ~@3", W: "d#2 d2", X: "c2@8 f2@7 ~", Y: "[g#1@23 ~ g#1@6 ~@2]/2", Z: "[b0@31 ~]/2",
AA: "[b0@29 ~@3]/2", AB: "b0 c#1", AC: "b0@8 c#1@7 ~", AD: "b0@8 c#1@4 c#1 ~ c#1 ~", AE: "c#1@2 d#1@9 ~ d#1@2 ~@2",
AF: "~@2 g#1!2 d#2@2 g#1@2 g#2@2 g#1@2 d#2@2 [g#1,c#2] ~, ~@12 c#2 ~@3", AG: "c#2@2 d#2@10 d#1@3 ~",
})).s("gm_synth_bass_1").gain(0.41)
// chords · synth brass 2 · "Synth"
const synth_brass_2 = note(`<
~ A@2 B@2 ~@24 C D C D C D C D E F G@2 ~@16 C D C D C D C D E F G@2 ~@43 C D C D C D C D C D C D C D C D E F G H I
>`.pickRestart({
A: "[g#4,c5,d#5] ~ [g#4,c5,d#5] ~ [g#4,c5,d#5] ~ [g#4,c5,d#5] ~ [g#4,c5,d#5] ~ [g#4,c5,d#5] ~ [g#4,c5,d#5] ~ [g#4,c5,d#5] ~", // G#
B: "[g#4,b4,d#5] ~ [g#4,b4,d#5] ~ [g#4,b4,d#5] ~ [g#4,b4,d#5] ~ [g#4,b4,d#5] ~ [g#4,b4,d#5] ~ [g#4,b4,d#5] ~ [g#4,b4,d#5] ~", // G#m
C: "[d#4,f#4,a#4]!8 [d#4,f#4,b4]!8", D: "[c#4,g#4] [c#4,f4,g#4]!7 [a#3,c#4,f4,g#4]!8", E: "[c4,d#4,g#4]!16",
F: "[c4,d#4,g#4]!15 d#4", G: "[b3,d#4,g#4]!16",
H: "[b3,d#4,g#4]!12 [b3,c#4,d#4,f4,g#4] [b3,d#4,g#4] [b3,d#4,f4,g#4] [b3,d#4,g#4], ~@7 c#4", // G#m C#7 G#m Fm7b5 G#m
I: "[c#4,f4]@2 [d#4,f#4,a#4]@10 ~ [d#4,f#4,a#4]@2 ~, g#4 ~@15", // C# D#m
})).s("gm_synth_brass_2").gain(0.41)
// chords · overdriven guitar · "Guitar"
const overdriven_guitar = note(`<
~ A B A C D E F G H I J I J E F G H I J ~ K ~@3 K ~@2 L ~@8 A B A C J E F G H I J ~ K ~@3 K ~@2 L ~@8 A B A C M N O N
P Q R S M N O N P Q R S T@2 ~@7 U V ~ E F G H I J ~ K ~@3 K ~@2 L ~@16 A B A W X
>`.pickRestart({
A: "~ g#2 d#3 g#2 g#3 g#2 d#3 g#2", B: "~@2 g#2@2 d#3@2 g#2@2 g#3@2 g#2@2 d#3@2 g#2 ~",
C: "~@2 g#2@2 d#3@2 g#2@2 g#3@2 g#2@2 [d#3,g#3]@2 [g#2,d#3,g#3] ~", D: "[d#3,g#3] [d#3,a#3] ~@6",
E: "~@12 [f#3,c#4,a#4] ~ [f#3,c#4,a#4] ~", F: "[f#3,c#4,a#4] [g#3,d#4,c5] ~@6", G: "~@12 [g#3,d#4]@2 [g#3,d#4] ~",
H: "[g#3,d#4] [c#4,f4] ~@6", I: "~@12 [g#3,c#4] ~ [g#3,c#4] ~", J: "[g#3,c#4] [a#3,d#4] ~@6",
K: "~@10 [a#3,d#4] ~ [a#3,d#4]@2 ~@2", L: "~@11 c#4@2 ~ c#4@2, ~@5 g#3@3",
M: "~@2 [d#4,g4] ~ [d#4,g4]@2 [d4,f4]@2 [d4,f4]@2 [c4,d#4]@2 [c4,d#4]@2 ~@2", N: "~@2 [g3,c4] ~ [g3,c4] ~@3",
O: "~@2 [d#4,g4]@2 [d#4,g4]@2 [d4,f4] ~ [d4,f4]@2 [c4,d#4] ~ [c4,d#4]@2 ~@2", // D# Dm Cm
P: "~@2 [d#4,g4]@2 [d#4,g4]@2 [d4,f4] ~ [d4,f4]@2 [c4,d#4]@2 [c4,d#4]@2 ~@2", // D# Dm Cm
Q: "~@2 [d4,f4] ~ [d4,f4]@2 [c4,d#4] ~ [c4,d#4]@2 [c4,d#4] ~ [c4,d#4]@2 ~@2", // Dm Cm
R: "~@2 [d#4,g4] ~ [d#4,g4]@2 [d4,f4] ~ [d4,f4]@2 [c4,d#4] ~ [c4,d#4]@2 ~@2", // D# Dm Cm
S: "~@2 [c4,d#4] ~ [c4,d#4] ~ [c4,d#4] ~ [d4,f4]@3 ~ [d4,f4]@2 ~@2", T: "[[g#3,c4,d#4]@23 ~ [g#3,c4,d#4]@6 ~@2]/2",
U: "~@12 [g#4,c#5] ~ [g#4,c#5] ~", V: "[g#4,c#5]@2 [a#4,d#5]@9 ~ [a#4,d#5]@2 ~@2",
W: "~@2 g#2@2 d#3@2 g#2@2 g#3@2 g#2@2 [d#3,g#3,g#4,c#5] ~ [g#2,d#3,g#3,g#4,c#5] ~", // C#sus2 G#sus4
X: "[g#4,c#5] [a#4,d#5]@5 [a#4,d#5] ~", // C#5 D#5
})).s("gm_overdriven_guitar").gain(0.46)
// chords · pad warm · "Pad"
const pad_warm = note(`<
~ A@2 B@2 C@2 D@2 E@4 F@4 G@2 H@2 I J@2 K@2 L@2 M N O P Q R O R S T@2 U@2 F@4 G@2 H@2 I J@2 K@2 L@2 M N O P Q R O R S
T@2 U@2 ~@22 V W X Y ~ F@4 G@2 H@2 I J@2 K@2 L@2 M N O P Q R O R S N O P Q R O R S T@2 Z@2 AA
>`.pickRestart({
A: "[g#3,c4,d#4]/2", B: "[g#3,b3,d#4]/2", C: "[d#3,g3,a#3]/2", D: "[d#3,g#3,c4]/2",
E: "[[c#3,f3,g#3]@31 ~ d#3@30 ~@2, ~@31 [f#3,a#3]@31 ~@2]/4", F: "[[d#3,g3,a#3]@31 [d#3,g#3,c4]@32 ~]/4",
G: "[c#3,f3,g#3]/2", H: "[[d#3,f#3,a#3]@31 ~]/2", I: "[c#3,f3,g#3]@3 [d#3,f#3,a#3]@5",
J: "[[d#3,f#3,a#3,c#4]@6 [g#3,c4,d#4]@9 [c#3,f3,g#3]@7 [d#3,f#3,a#3]@10]/2", // D#m7 G# C# D#m
K: "[[d#3,f#3,a#3,c#4]@6 ~@2 [c#3,f3,g#3,c#4]@7 ~ g#3@5 ~ [d#3,f#3,a#3]@10, ~@15 [c#3,f3]@6 ~@11]/2", // D#m7 C# D#m C#
L: "[[d#3,f#3,a#3,c#4]@6 [g#3,c4,d#4]@9 [c#3,f3,g#3]@6 [d#3,f#3,a#3]@11]/2", // D#m7 G# C# D#m
M: "[d#3,f#3,a#3,c#4]@7 [c#3,f3,g#3]@6 ~@3", N: "[d#3,f#3,a#3]@7 ~ [f#3,b3]@6 ~@2, ~ d#3",
O: "[c#3,f3,g#3] [a#2,c#3,f3,g#3]", P: "[d#3,f#3,a#3]@7 [d#3,f#3,b3]@9", Q: "[c#3,f3,g#3] [a#2,f3,g#3]",
R: "[d#3,f#3,a#3] [d#3,f#3,b3]", S: "[c#3,f3,g#3]@4 [a#2,c#3,f3,g#3]@3 ~", T: "[[d#3,g#3,c4,d#4]@15 ~]/2",
U: "[[d#3,g#3,b3,d#4]@13 ~@3]/2", V: "[f#3,b3,d#4]@7 [g#3,c#4,f4]@9", W: "[b3,d#4,f#4] [g#3,c#4,f4]",
X: "[f#3,b3,d#4] [g#3,c#4,f4]", Y: "[b3,d#4,f#4]@7 [g#3,c#4,f4]@6 ~@3", Z: "[[d#3,g#3,b3,d#4]@13 ~ [c#4,f4,g#4]@2]/2",
AA: "~@2 [d#4,f#4,a#4]@13 ~", // D#m
})).s("gm_pad_warm").gain(0.41)
// chords · piano · "CP-70"
const piano = note(`<
~@13 A@2 B C@2 D A E F G F H F G F I J K J L J K J M N O P@2 Q A B C@2 D A E F G F H F G F I J K J L J K J M N O P@2
R@2 S@2 T@2 U@2 R@2 S@2 T@2 U@2 V@2 W X W Y W X W Z AA Q A B C@2 D A E F G F H F G F I J K J L J K J M J K J L J K J M
N O AB@2 AC
>`.pickRestart({
A: "~@4 a#2 ~ d#3@2 ~@4 a#2 ~ d#3@2, d#2!2, ~@2 d#3@3 a#2@3 ~@2 d#3@3 a#2@3",
B: "~@4 d#3 ~ g#3@2 ~@4 d#3 ~ g#3@2, g#2!2, ~@2 g#3@3 d#3@3 ~@2 g#3@3 d#3@3",
C: "[~@4 d#3 ~ g#3@2 ~@4 d#3 ~@3 c#2@2 ~@2 g#2 ~ c#3@2 ~@4 g#2 ~ c#3@2, g#2@8 g#2@10 ~@3 g#2@3 c#2@8, ~@2 g#3@3 d#3@3 ~@2 g#3@3 d#3@5 c#3@4 ~@4 c#3@4 ~@2, ~@14 g#3@4 ~@11 g#2@3]/2",
D: "~@4 g#2 ~ c#3@2 ~@4 g#2 ~ c#3@2, c#2!2, ~@2 c#3@3 g#2@3 ~@2 c#3@3 g#2@3",
E: "~@4 a#2 ~ d#3@2 ~@4 a#2@2 d#3 ~, d#2@8 d#2@7 ~, ~@2 d#3@3 a#2@3 ~@2 d#3@4 ~@2",
F: "[c#3,f3,g#3]@3 [d#3,f#3,a#3]@5", G: "[d#3,f#3,a#3,c#4]@3 [g#3,c4,d#4]@5", H: "[d#3,f#3,a#3,c#4]@3 [f3,g#3,c#4]@5",
I: "[d#3,f#3,a#3,c#4]@3 [c#3,f3,g#3,c#4]@4 ~", J: "[d#3,f#3,a#3] [d#3,f#3,b3]", K: "[c#3,f3,g#3] [a#2,f3,g#3]",
L: "[c#3,f3,g#3] [a#2,c#3,f3,g#3]", M: "[c#3,f3,g#3]@8 [a#2,c#3,f3,g#3]@7 ~", N: "[d#3,g#3,c4,d#4]@3 ~",
O: "~@3 [d#3,g#3,c4,d#4]", P: "[[d#3,g#3,b3,d#4]@28 [d#3,g#3,b3,d#4] ~@3]/2",
Q: "d#2@2 d#3 ~ a#2!2 d#3 ~@5 a#2 ~ d#3@2, ~ d#2, ~@10 d#3@3 a#2@3", R: "[c4,d#4,g4]/2", S: "[[f4,a4], c4@15 ~]/2",
T: "[c4,d#4,g#4]/2", U: "[[a#3,d#4,g4]@24 [c4,f4,a4]@7 ~]/2", V: "[[g#3,c4,d#4]@31 ~]/2",
W: "~@3 f#5 ~@3 c#5, b4@8 ~@3 d#5@5, ~@3 c#5@5 f5@8", X: "~@3 f#5 f5@2 c#5@2, b4 ~, ~@3 c#5@5 ~@8",
Y: "~@6 f#5@2 ~@4 c#5@3 ~, b4 ~, ~@3 c#5@5 f5@7 ~",
Z: "~@6 f#5@2 ~@4 [f3,g#3,c#4,c#5]@2 [f3,g#3,c#4] ~, b4 ~, ~@3 c#5@5 f5@7 ~", // C#
AA: "[f3,g#3,c#4] ~ [f#3,a#3,d#4]@9 ~ [f#3,a#3,d#4]@2 ~@2", // C# D#m
AB: "[[d#3,g#3,b3,d#4]@28 [d#3,g#3,b3,c#4,d#4,f4,g#4] ~ [c#4,f4,g#4] ~]/2", // G#m C#7 C#
AC: "[c#4,f4]@2 [d#4,f#4,a#4]@10 ~ d#4 ~@2, g#4 ~@11 [f#4,a#4]@2 ~@2", // C# D#m F#
})).s("gm_piano").gain(0.46)
// chords · sitar
const sitar = note("<~@87 A B A C A B A C ~@38>".pickRestart({
A: "~@3 f#5 ~@3 c#5, b4@8 ~@3 d#5@5, ~@3 c#5@5 f5@8", B: "~@3 f#5 f5@2 c#5@2, b4 ~, ~@3 c#5@5 ~@8",
C: "~@6 f#5@2 ~@4 c#5@3 ~, b4 ~, ~@3 c#5@5 f5@7 ~",
})).s("gm_sitar").gain(0.26)
// other · string ensemble 2 · "Strings"
const string_ensemble_2 = note("<~@89 A B C D@2 E F ~@37>".pickRestart({
A: "b4@2 ~ c#5@2 ~ f#5 ~ f5@2 ~ d#5@2 ~ c#5@2", B: "b4@2 ~ c#5@2 ~ f#5 ~ f5@2 ~@2 c#5@2 ~@2",
C: "[b3,b4]@2 ~ [c#4,c#5]@2 ~ f#5@2 [f4,f5]@2 ~ [d#4,d#5]@2 ~ c#5 ~, ~@6 f#4 ~@6 c#4@2 ~", // B C# F D#
D: "[[b3,b4]@2 ~ c#5@2 [f#4,f#5]@2 ~ [f4,f5]@3 ~ [c#4,c#5]@2 ~@2 b4 ~@2 c#4@2 [f#4,f#5]@3 [f4,f5]@2 ~ d#4@2 [c#4,c#5]@3, ~@2 c#4@3 ~@10 b3@3 c#5@2 ~@6 d#5@3 ~@3]/2", // B F# F C# F# F C#
E: "[b3,b4]@2 ~ [c#4,c#5]@2 [f#4,f#5]@2 ~ [f4,f5]@2 ~@2 [g#4,c#5] ~ [g#4,c#5] ~", // B C# F# F C#5
F: "[g#4,c#5]@2 [a#4,d#5]@9 ~ [a#4,d#5]@2 ~@2", // C#5 D#5
})).s("gm_string_ensemble_2").gain(0.51)
// other · epiano2 · "lead"
const epiano2 = note(`<
~@5 A B C D E F G H I J K D L M G N O P Q R S T U ~ V W X Y Z AA AB W AC ~@3 I AD AE AF AG AH G AI AJ P AK R AL AM AN
~ V W V AO AP AA AB W AQ AR@2 ~@8 AS AT AU AV AW AX AY AZ BA BB BC BD ~@8 A BE AE D AG BF BG BH BI P BJ BK BL BM BN ~
V BO AB BP BQ AA BR BS AB BO AB BT Z BU AB BV BW BX@2 ~@2
>`.pickRestart({
A: "~@6 d#3 ~ d#3 ~ d#3 d#3@3 c#3@2", B: "d#3@4 f3@3 d#3@2 c#3 a#2@3 ~@3", C: "~@6 f#3@2 g#3 ~ g#3 ~ g#3@2 f#3 ~",
D: "g#3@3 ~ a#3@2 ~ g#3@2 f#3 d#3@3 ~@3", E: "~@6 g#3 ~ g#3 ~ f#3 ~@2 f#3 f3@2", F: "d#3@2 ~@2 d#3@2 ~ d#3 ~@8",
G: "~@6 a#2 c#3 d#3 ~ d#3@4 ~@2", H: "c#3 ~ d#3 ~ c#3 ~ d#3@3 ~@7", I: "~@6 a#2@2 c#3 ~ d#3 ~ d#3 ~ c#3 ~",
J: "d#3@3 ~ f3@2 ~ d#3@2 c#3 a#2@3 ~@3", K: "~@6 f#3@2 g#3 ~ g#3 ~ g#3@2 f#3@2",
L: "~@6 g#3 ~ g#3@2 f#3 ~ f#3@2 f3 ~", M: "d#3@2 ~ d#3@2 ~ d#3@2 ~@8", N: "c#3 ~ d#3 ~ c#3 ~ d#3@2 ~@6 d#3@2",
O: "c#3 ~ c#3 ~ c#3 ~ d#3 ~ d#3@4 ~@4", P: "f#3 ~ f#3 ~ f#3 ~ g#3 ~ g#3@3 ~ f#3 ~ g#3 ~",
Q: "a#3@2 g#3@2 d#3@2 f#3@4 d#3@5 ~", R: "~@6 d#3@2 g#3@3 ~ g#3@3 ~", S: "f#3@2 f3 d#3 ~@2 d#3@3 c#3 a#2 ~@5",
T: "~@4 g#3 ~ g#3 ~ g#3 ~ g#3 ~ f#3 ~ g#3 ~", U: "a#3@2 g#3 ~ d#3 ~ f#3@3 ~ d#3@2 d#3@4", V: "~@3 d#3 f#3@2 f3 d#3",
W: "c#3 f3 a#2 c#3", X: "~@6 d#3@2 f#3@3 ~ f3@2 d#3 ~", Y: "c#3@4 f3@3 ~ f3@3 ~ a#2@3 ~",
Z: "~@8 a#3@2 ~ g#3@3 f#3@2", AA: "f3@4 c#3@4 a#2@4 c#3@3 ~", AB: "~@6 d#3@2 f#3@3 f3@3 d#3@2", AC: "d#3@3 ~",
AD: "d#3@2 ~@2 f3@2 ~ d#3@2 c#3 a#2@4 ~@2", AE: "~@6 f#3@2 g#3 ~ g#3 ~ g#3 ~ f#3 ~",
AF: "g#3@3 ~ a#3@3 g#3@2 f#3 d#3@3 ~@3", AG: "~@6 g#3 ~ g#3 ~ f#3 ~ f#3 ~ f3 ~", AH: "d#3@2 ~@2 d#3@2 ~ d#3@2 ~@7",
AI: "c#3@2 ~ d#3@2 ~ c#3 ~ f#3@2 ~ d#3@2 ~ d#3 ~", AJ: "c#3 ~ c#3 ~ c#3 ~ d#3@5 ~ d#3 ~ d#3@2",
AK: "a#3@2 g#3@2 d#3 ~ f#3@3 ~ d#3@4 ~@2", AL: "f#3@2 f3 d#3@2 ~ d#3@3 c#3 a#2 ~@5",
AM: "~@2 d#3@2 f#3 ~ g#3 ~ g#3@4 f#3 ~ g#3 ~", AN: "a#3@2 g#3@2 d#3 ~ f#3@4 d#3@4 ~@2", AO: "c#3@4 f3@4 f3@4 a#2@3 ~",
AP: "~@4 a#3@2 g#3 f#3", AQ: "d#3@11 ~@5", AR: "[~@12 g#3@2 ~ g#3@2 f#3 d#3@3 ~@11]/2",
AS: "~@2 c3 ~ c3 ~ c3@2 f3@3 f3@3 f3@2", AT: "~ d#3 c3@4 ~@10", AU: "~@10 c3 ~ d#3 ~ f3@2",
AV: "g3@2 c3 d#3@2 f3 ~@2", AW: "~@6 c3 d#3", AX: "g3@3 ~ f3 ~ f3@3 ~ d#3@5 ~",
AY: "f3@3 ~ f3@2 d#3 ~ d#3@4 ~@2 d#3@2", AZ: "g3@2 ~ g3@2 ~ f3 ~ f3@4 d#3@4", BA: "~@4 c3 ~ c3@2 f3@3 ~ f3@4",
BB: "d#3 d3 c3@14", BC: "~@8 c3@2 ~ c3@2 ~ c3@2", BD: "b2", BE: "d#3@3 ~ f3@2 ~ d#3@2 c#3 a#2@4 ~@2",
BF: "d#3@2 ~ d#3@2 ~ d#3@3 c#3 a#2@2 ~@4", BG: "~@6 a#2 c#3 d#3 a#2 c#3 d#3 ~ a#2 c#3 d#3",
BH: "c#3 d#3 c#3@2 c#3@2 ~ d#3@3 ~@4 d#3 ~", BI: "c#3 ~ c#3 ~ c#3 ~ d#3 ~ d#3@4 ~@2 d#3 ~",
BJ: "a#3 g#3 d#3 f#3@2 d#3@2 ~", BK: "~@6 d#3 ~ g#3@3 ~ g#3@3 ~", BL: "f#3@2 f3 d#3 ~@2 d#3@3 c#3 a#2@2 ~@4",
BM: "~@2 g#3 ~ g#3 ~ g#3 ~ g#3@4 f#3@2 g#3@2", BN: "a#3 g#3 d#3 f#3@2 d#3 ~@2", BO: "c#3@4 f3@4 a#2@4 c#3@3 ~",
BP: "c#3@4 f3@3 ~ f3@4 a#2@3 ~", BQ: "~@8 a#3@3 g#3@3 f#3@2", BR: "~@6 c#3@2 f#3@3 f3@3 d#3@2",
BS: "c#3@3 ~ f3@4 a#2@4 c#3@3 ~", BT: "c#3@3 ~ f3@3 f3@4 a#2@4 ~", BU: "f3@4 c#3@3 ~ a#2@4 c#3@3 ~",
BV: "c#3@4 f3@3 ~ f3@4 a#2 ~@3", BW: "d#3", BX: "[~@12 g#3@2 ~ g#3@2 f#3 d#3@10 ~@4]/2",
})).s("gm_epiano2").gain(0.8)
// drums · rim
const rim = s("rim").struct(`<
A B@3 C B@7 C B@7 C B@7 C B@7 C B@3 C B@7 C B@7 C B@7 C B@3 C ~@27 B@7 C B@7 C B@7 C B@7 C B@3 C D
>`.pickRestart({
A: "~@8 x ~@2 x ~@2 x ~", B: "~ x ~ x", C: "~@4 x ~@3 x ~@2 x ~@2 x ~", D: "x ~@2 x",
})).gain(0.32)
// drums · kick
const kick = s("bd").struct(`<
~ A@3 B A@7 C A@7 C A@7 C A@7 C A@3 C A@7 C A@7 C A@7 C A@3 C D E D@2 E D E F D E D@2 E D E F E G H@4 I J I@2 K A@7 C
A@7 C A@7 C A@7 C A@3 C K
>`.pickRestart({
A: "x!2 ~@4 x ~ x!2 ~@6", B: "x!2 ~@4 x ~ x ~ x!2 ~@4", C: "x!2 ~@4 x ~@9", D: "x ~@3 x!2 ~@2", E: "x ~@3 x!2 ~ x",
F: "x", G: "x ~@7 x ~@4 x!2 ~", H: "x!4", I: "x!2", J: "x ~@2 x!2 ~@3", K: "x ~@2 x",
})).gain(0.32)
// drums · snare
const snare = s("sd").struct(`<
A B@3 C B@7 D B@7 D B@7 D B@7 D B@3 D B@7 D B@7 D B@7 D B@3 D B@7 E B@7 E B F ~ G ~@2 B@3 H I B@7 D B@7 D B@7 D B@7 D
B@3 D J
>`.pickRestart({
A: "~@8 x ~ x!2 ~ x!2 ~", B: "~ x ~ x", C: "~@4 x ~@5 x ~@2 x ~@2", D: "~@4 x ~@3 x ~ x!2 ~ x!2 ~", E: "~ x ~@2",
F: "~@4 x ~@6 x!2 ~@3", G: "~@7 x", H: "~@2 x ~@2 x!3", I: "x ~@7 x!6 ~@2", J: "x ~@2 x",
})).gain(0.32)
// drums · low tom
const low_tom = s("lt").struct("<~@69 A B A@2 B A B C A B A@2 B A B C ~@48>".pickRestart({
A: "x ~@3 x!2 ~@2", B: "x ~@3 x!2 ~ x", C: "x ~@12 x!2 ~",
})).gain(0.32)
// drums · hihat
const hihat = s("hh").struct(`<
~ A B C D A B A B A B A E A B A B A B A E A B A B A B A E A B A B A B A E A B A E A B A B A B A E A B A B A B A E A B
A B A B A E A B A E F G F@2 G F G F@2 G F@2 G F G F ~@2 H I J K L J K M ~ A B A B A B A E A B A B A B A E A B A B A B
A E A B A B A B A E A B A E ~
>`.pickRestart({
A: "x!5 ~ x ~ x ~ x!3 ~ x ~", B: "x!3 ~ x ~ x ~ x ~ x ~ x ~ x ~", C: "x!3 ~ x ~ x ~ x ~ x!3 ~ x ~", D: "x!4 ~@4",
E: "x!3 ~ x ~ x ~@9", F: "x!8", G: "x!7 ~", H: "~@2 x!3 ~ x!3 ~ x!6", I: "~@2 x!3 ~ x!3 ~ x!3 ~ x!2",
J: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", K: "x ~ x!2 ~@2 x!2 ~@2 x!3 ~ x!2", L: "x ~ x!6 ~@2 x!3 ~ x!2",
M: "x ~ x!3 ~ x!3 ~ x ~ x ~@3",
})).gain(0.32)
// … 24 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.