Strudelify
Calling All Stations cover art

1997 · Calling All Stations

Calling All Stations

Genesis

KeyE minorTempo88 bpm
0:00/0:00
// Calling All Stations — Genesis
// 88.3 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 128 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): LEAD 2, LEAD 2.
// note: The whole transcription plays 26 ms behind the beat; the grid follows it, so its parts stay together.
setcpm(88.3/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, A@4 for four bars: edit a riff to change every repeat.

// chords · synth brass 2 · "pad"
const synth_brass_2 = note(`<
  ~ A@3 B@8 C D E F G@7 H@4 I@2 J@8 K L@2 M@2 N O P Q R@2 S@2 T@4 U@2 V@2 W@2 I@2 X@2 ~@7 Y Z Y Z Y AA@3 AB AC AB AC AB
  M@2 AD AE E F AF@7 AG@2 AH@2 AI@2 AJ AK AL@2 AM@2 AH@2 AN@2 AO AP AQ@2 AR@4 AI@2 AS AT ~@3
>`.pickRestart({
  A: "[e1,e2]/3", B: "[~ [d3,g3,b3] [c3,f3,a3]@4 [d3,g3,b3]@4 [f3,a3,d4]@4 [f3,a3,e4]@4 [g3,b3,e4]@14]/8",
  C: "[g3,b3,e4,g4]", D: "[g#3,b3,e4,g#4]", E: "[c4,e4,a4]", F: "[c4,e4,f#4,b4]",
  G: "[[b3,e4,f#4,b4] [b3,d4,f#4,b4] [f#4,a4] [d4,f#4,g#4] [d4,f#4,a4] [d4,f#4,g#4] [d4,f#4,a4], b2, ~@32 d4 ~@79]/7", // Bsus4 Bm F#m G#m7b5 D G#m7b5 D
  H: "[[d4,f#4,b4] [d4,f#4,a4] [d4,f#4,b4] [d4,f#4,a4], g2]/4", I: "[a4 g4, [a2,c4,e4]]/2",
  J: "[[g3,b3,e4]@2 [c3,e3,a3] [e3,g3,b3] [c3,e3,a3] [e3,g3,b3] [c3,e3,a3] [e3,g3,b3], e2]/8", K: "[c3,e3,a3]",
  L: "[b3@6 b4 a4, e3@31 ~, g3@7 ~]/2", M: "[[a2,c4,e4] [d3,d4,f#4], a3]/2", N: "[g3,d4,g4,b4]", O: "[e3,c#4,e4,g4]",
  P: "[f3,c4,f4,a4]", Q: "[d3,d4,f#4,a4]", R: "[d5 d4, [g3,g4,b4]]/2",
  S: "[[b3,e4,g4] [a3,d4,f#4] [g3,c4,e4] [a3,d4,f#4], e3]/2", // Em D C D
  T: "[d4 e4 f#4 ~@2 [c4,e4,f#4] [c4,e4,g4] [c4,e4,a4], g2 a2, [g3,b3]@3 [c4,e4,g4]@2 ~@3]/4", // F#m7b5 C Am G C
  U: "[[e4,g4,b4] [e4,f#4,a4] [e4,g4,b4] [e4,f#4,a4], e3]/2", // Em F#m7 Em F#m7
  V: "[[e4,g4,b4] [e4,f#4,a4] [e4,g4,b4] [e4,f#4,a4], c3]/2", // Em F#m7 Em F#m7
  W: "[[e4,g4,b4] [e4,f#4,a4] [e4,g4] [f#4,a4], d3, ~ d4]/2", X: "[[e2,g3,b3,e4]@5 ~@3]/2", Y: "[f3,a3,c4]",
  Z: "[e3,g3,b3]", AA: "[a3 g#3 [c3,g3,c4], e4, b3@2 ~]/3", AB: "[g2,f#3,b3,d4]", AC: "[c3,g3,c4,e4]", AD: "[b3,e4,g4]",
  AE: "[b3,e4,g#4]", // E
  AF: "[[b3,e4,f#4,b4] [b3,d4,f#4,b4] [f#4,a4] [d4,f#4,g#4] [d4,f#4,a4] [d4,f#4,b4] [d4,f#4,a4], b2, ~@32 d4 ~@47 g2@32]/7", // Bsus4 Bm F#m G#m7b5 D Bm D
  AG: "[[c4,e4,a4] [c4,e4,g4], a2]/2", AH: "[e4 d#4 c#4 d#4, b2, [f#4,b4]@15 ~]/2",
  AI: "[[e4,g4] [d4,f#4] [e4,g4] [d4,f#4], c5@15 ~]/2", AJ: "g3@3 ~ f#3@4, [b3,d4]", AK: "a3@3 ~ g3@4, [c4,e4]@7 ~",
  AL: "[b4 a4 [e4,g4] [f#4,a4], [d3,d4], f#4 ~]/2", AM: "[[e4,a4] [e4,g4], [a2,c4]]/2",
  AN: "[[e4,g4] f#4 [e4,g4] [d4,f#4], c3, c5@15 ~, ~@4 d4@3 ~@9]/2", AO: "g3 f#3, [b3,d4]", AP: "a3 g3, [c4,e4]@7 ~",
  AQ: "[b4 a4 [e4,g4] [f#4,a4], d4, f#4 ~]/2", AR: "[a4@8 g4@7 ~@5 d#4@4 c#4@4 d#4@4, e4@5 ~@3, [a2,c4] [b2,f#4,b4]]/4",
  AS: "g2 [f#2,f#3], [b3,d4], g3@3 ~@5", AT: "[a2,a3] [g2,g3], [c4,e4]@7 ~",
})).s("gm_synth_brass_2").gain(0.35)

// other · synth strings 1 · "SYN LOW"
const synth_strings_1 = note("<~ A@7 B@5 C@3 D@7 ~@8 E@8 ~@23 E@8 ~ A@7 F G F G F H I J K@4 L@5 ~@33>".pickRestart({
  A: "[e1,e2]/7", B: "[~ [e1,e2]@9]/5", C: "[e1,e2]/3", D: "b1/7", E: "[e1,e2]/8", F: "[c1,c2]", G: "g1", H: "[g1,g2]",
  I: "[a1,a2]", J: "[d1,d2]", K: "[e1,e2]/4", L: "b1/5",
})).s("gm_synth_strings_1").gain(0.4)

// other · pad new age · "PATINA"
const pad_new_age = note("<~@31 A B C D E F E F G ~@88>".pickRestart({
  A: "c4 e4 f#4 a4 c5 a4 f#4 e4 c4 e4 f#4 e4 a4 f#4 e4 c4", B: "b3 e4 g4 e4 b4 g4 e4 b3!2 e4 g4 e4 g4 e4 b3 e4",
  C: "c4 e4 f#4 a4 c5 a4 f#4 e4 c4 e4 f#4 a4 c5 a4 f#4 e4", D: "b3 e4 g4 e4 b4 g4 e4 b3!2 e4 g4 e4 b4 g4 e4 b3",
  E: "c4 e4 f#4 e4 a4 f#4 e4 c4!2 e4 f#4 e4 a4 f#4 e4 c4", F: "b3 e4 g4 e4 b4 g4 e4 b3!2 e4 g4 e4 b3 g4 e4 b3",
  G: "b3 e4 g4 e4 b4 g4 e4 ~@9",
})).s("gm_pad_new_age").gain(0.24).pan(0.4)

// other · pad new age · "PATINA" · soft notes
const pad_new_age_soft = note("<~@39 [~@7 b3!2 e4 g4 e4 b3 g4 e4 b3] ~@88>").s("gm_pad_new_age").gain(0.12).pan(0.4)

// chords · pad new age · "DIGALOG"
const pad_new_age_2 = note("<~@40 A B C D E F G@2 ~@80>".pickRestart({
  A: "[a5,e6]", B: "[d6,f#6,a6]", C: "[b5,d6,g6]", D: "[g5,b5,c#6,e6]", E: "[f5,a5,c6]", F: "[a5,d6,f#6]",
  G: "[b5,d6,g6]/2", // G
})).s("gm_pad_new_age").gain(0.21)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@48 A B C D E F G@5 H ~@41 I@2 J K L@6 I@2 M K N@6 O@2 P Q R@2 ~>".pickRestart({
  A: "[b3,e4,g4] a3 [b3,e4,g4] ~ [b3,e4,g4] ~ [b3,e4,g4] a3 [d4,f#4] a3 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] a3", // Em D
  B: "[c4,e4] a3 [c4,e4] ~ [c4,e4] ~ [c4,e4] a3 [d4,f#4] a3 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] a3", // C D
  C: "[g3,b3,d4] a3 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] a3 [g3,b3,e4] a3 [g3,b3,e4] ~ [g3,b3,e4] ~ [g3,b3,e4] a3", // G Em
  D: "[g3,b3,f#4] a3 [g3,b3,f#4] ~ [g3,b3,f#4] ~ [g3,b3,f#4] a3 [c4,e4,g4] a3 [c4,e4,g4] a3 [c4,e4,g4] a3 [c4,e4,g4] a3", // Gmaj7 C
  E: "g4 e4 c4 e4 g4 e4 g4 e4 f#4 d4 a3 d4 f#4 d4 f#4 d4", F: "g4 e4 c4 e4 g4 e4 g4 e4 f#4 d4 a3 d4 f#4 d4 a3 d4",
  G: "b4 g4 e4 g4 b4 g4 b4 g4 a4 f#4 d4 f#4 a4 f#4 a4 f#4", H: "b4 g4 e4 g4 b4 g4 b4 g4 a4 f#4 d4 f#4 a4 f#4 d4 f#4",
  I: "[[e4,g4]@8 [d4,f#4]@8 [e4,g4]@8 [d4,f#4]@7 ~, [c3,c5]]/2", J: "g3@7 ~ f#3@7 ~, [b3,d4]@15 ~",
  K: "a3@7 ~ g3@7 ~, [c4,e4]@15 ~", // C
  L: "[b4@4 a4@4 [e4,g4]@4 f#4@4 ~@8 g4@7 ~@5 d#4@4 c#4@4 d#4@3 ~, [d3,d4] [a2,c4] [b2,f#4,b4], f#4@2 ~@2 e4@5 ~@3, a4 ~@23 a4@25 ~@47]/6", // Em D Am B5
  M: "[g2,g3]@8 f#3@7 ~, [b3,d4]@15 ~", // G Bm
  N: "[b4@4 a4@4 [e4,g4]@4 f#4@4 ~@8 g4@7 ~@5 d#4@4 c#4@4 d#4@3 ~, d4@4 e4@5 ~@3, f#4@15 ~@9 a4@25 ~@47, ~ [a2,c4] [b2,f#4,b4]]/6", // Em Am B5
  O: "[[e4,g4]@8 [d4,f#4]@8 [e4,g4]@8 [d4,f#4]@7 ~, c5@31 ~]/2", P: "[g2,g3]@7 ~ [f#2,f#3]@8, [b3,d4]@15 ~",
  Q: "[a2,a3] g2, [c4,e4]@15 ~, ~@4 g3@3 ~", R: "[[d3,d4], f#4 ~, b4 ~@3]/2",
})).s("gm_string_ensemble_1").gain(0.24)

// other · synth drum · "sonar"
const synth_drum = note("<~@64 A B C ~ D E F G ~@56>".pickRestart({
  A: "~@4 [a3,e6]@3 ~, [e1,e4] ~, ~@2 e5@5 ~", B: "~@8 [a3,e6]@3 ~@2 e5 b5 e5, [e1,e4]@3 ~, ~@4 e5@7 ~@5",
  C: "~@3 e5 [a3,e6]@2 ~@2, [e1,e4]@5 ~@3", D: "~@13 f6 b5 e5", E: "[e1,e4]@2 ~ [a3,e6] ~@4",
  F: "d5 ~ d6@2 ~@4 a4 b4 a5 b5 ~@2 d6@2, ~ f5@2 ~@13", G: "[e1,e4]@5 ~@3",
})).s("gm_synth_drum").gain(0.45)

// other · pad halo · "sonar"
const pad_halo = note("<~@64 A B C ~ D E F G ~@56>".pickRestart({
  A: "~@4 e5@3 ~, e3 ~, ~@2 e4@5 ~", B: "~@8 e5@3 ~@2 e4 b4 e4, e3@3 ~, ~@4 e4@7 ~@5", C: "~@3 e4 e5@2 ~@2, e3@5 ~@3",
  D: "~@13 f5 b4 e4", E: "e3@2 ~ e5 ~@4", F: "d4 ~ d5@2 ~@4 a3 b3 a4 b4 ~@2 d5@2, ~ f4@2 ~@13", G: "e3@5 ~@3",
})).s("gm_pad_halo").gain(0.14)

// bass · fretless bass · "BASS"
const bass = note(`<
  ~ A@15 B@7 C@4 D@2 A@11 D E C A F E C@2 A@2 C@2 D@2 A@2 G@2 E@2 D@2 A@16 G C G C G C D E A@4 B@5 C@2 D@2 B@2 G@2 C D
  E@2 D@2 B@2 G@2 C D E@2 D@2 B@2 G@2 C D ~@3
>`.pickRestart({
  A: "e1!8", B: "b1!8", C: "g1!8", D: "a1!8", E: "d2!8", F: "f1!8", G: "c2!8",
})).s("gm_fretless_bass").gain(0.45)

// other · overdriven guitar · "R GTR"
const overdriven_guitar = note(`<
  ~@3 A B C B C@5 D A B A E F E@2 F E@2 G H@2 G I@2 B A@2 B A@2 B A@2 B A I J H A K L H G C@2 G M N O A B P@2 J L I O
  A@2 ~@7 Q@7 P G P H R H I J A@2 B A E F E@2 F H@2 O I E F P@2 G I L J I@2 F E P@2 G I L J I@2 F E P@2 G I ~@3
>`.pickRestart({
  A: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2!2", B: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~",
  C: "e2 ~ e2 ~ e2 ~ e2!3 ~ e2 ~ e2 ~ e2 ~", D: "e2 ~ e2 ~ e2 ~ e2!3 ~ e2 ~ e2 ~ e2!2",
  E: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2!2", F: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~",
  G: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~", H: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2!2",
  I: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2!2", J: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~",
  K: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~", L: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3!2",
  M: "g2 ~ g2 ~ g2 ~ g2!3 ~ g2 ~ g2 ~ g2 ~", N: "a2 ~ a2 ~ a2 ~ a2!3 ~ a2 ~ a2 ~ a2 ~",
  O: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~", P: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3!2",
  Q: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2!3 ~", R: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~",
})).s("gm_overdriven_guitar").gain(0.32)

// other · distortion guitar · "lead 1"
const distortion_guitar = note(`<
  A B C D@2 ~@3 E F G@2 H@2 ~@4 I@2 J@2 K@4 ~@2 L M N O@2 P Q ~ R S T U ~@7 V@3 ~@13 W ~@11 X Y@3 Z@2 AA AB AC AD AE AF
  AG AH AI AJ AK AL AJ AM AN AO AP AQ AR@2 AS AT AU ~@4 AV AW@2 AX AY AZ BA BB BC ~ BD BE BF BG@2 ~@5
>`.pickRestart({
  A: "~@13 e3@2 d3", B: "e2@2 e3@2 b2!2 d3@2 ~@5 e3@2 d3", C: "e2@2 [d3,g3]@2 e3@2 b2 e3 ~@5 g2@2 f2",
  D: "[[e2,b2]@11 ~ d3!2 b2 ~ a3 ~@15, ~@15 e3@11 ~@6]/2", E: "~@5 e3@2 d3 e2@2 e3@2 b2!2 d3@2",
  F: "~@5 e3@2 d3 e2@2 [d3,g3]@2 e3@2 b2 e3", // G5
  G: "[~@5 e3@2 d3 e2@2 [g#3,b3]@2 d4@3 e4@6 e3@2 d3 e2@2 a3@2 b3 d4@2 ~]/2", H: "[d#4@3 ~, c4 ~@31]/2",
  I: "[~@3 a4@5]/2", J: "[~@3 d5@5]/2", K: "[~@3 a4@11 ~@2]/4", L: "g4 ~ g4 ~@5 [g#4,b4]@2 ~ a4@3 g4@2", M: "e4 ~@15",
  N: "~@5 e3@2 d3 e2@2 b2 ~ d3 e3@2 d3", O: "[~@7 f#4 b4@7 ~, [e2,b2]@21 ~@11]/2", P: "~@7 f#4",
  Q: "c5@2 b4 ~ a4 b4@7 ~@4", R: "~@4 f#4@11 ~", S: "~@7 g4", T: "~@13 e3@2 d3, b4", U: "e2@2 e3@2 b2!2 d3@10",
  V: "[~@3 a4@7 ~@2]/3", W: "~@6 e2!3 ~ e2!2 e3@2 d3 ~", X: "~@2 a#4@2 ~@9 e3@2 d3",
  Y: "[e2@2 [g#3,b3]@2 d4@3 e4@21 d5@17 ~ e5@2]/3", Z: "[d#5 d5 g4@18 ~ g3 c4 d4@8 c4]/2", AA: "d4@14 b3 [f3,g#3]",
  AB: "~@10 g2 a2 c3 ~ d3 e3", AC: "e3@2 d3 b2 d3@3 d3 ~@8", AD: "~@5 e4 g4 a4 a4@5 a4@3",
  AE: "a4@6 ~@2 f#4 ~@2 g4 ~@2 a4 ~", AF: "b4@7 ~", AG: "g#4@7 ~", AH: "a4", AI: "b4@9 ~ b4@3 b4@3", AJ: "b4",
  AK: "b4@11 ~ b4@4", AL: "a4@13 ~@3", AM: "~@3 d5", AN: "d#5@7 ~", AO: "d5@12 b4 [d#4,f4,g#4] ~@2", AP: "g5 a5@13 ~@2",
  AQ: "~@8 a4@2 ~ a4 ~ g4 ~ a4", AR: "[a4@23 ~ b4@4 b4@4]/2", AS: "c5@14 c5!2", AT: "c5 ~@14 [f#4,a4]", AU: "d#4 ~@15",
  AV: "~ g4 ~ a4!2 g4 ~ a4!2 g4 ~ a4!2 g4 ~ a4", AW: "[a4@9 ~@3 a4@4]/2", AX: "b4@14 c5!2",
  AY: "c5@12 a4 [d#4,f#4] ~@2", AZ: "~@4 g5@11 ~, g4@15 ~", BA: "g4@12 g4@3 ~", BB: "a4!2",
  BC: "d4@11 ~ d4@2 ~ [g#3,b3]", BD: "~@10 d#3@2 g3@3 ~", BE: "a3", BF: "b3@7 ~ b3@2 b3 ~@5",
  BG: "[[b3,b4]@22 ~@6 [d4,c5]@2 [b3,a4] [g#3,f#4]]/2", // B D7 B7 G#7
})).s("gm_distortion_guitar").gain(0.4)

// other · distortion guitar · "lead 1" · soft notes
const distortion_guitar_soft = note("<A@2 ~@6 B@4 ~@18 C ~@7 A ~@21 D E ~ F ~@3 G H G I ~@4 J ~@46 K ~@5>".pickRestart({
  A: "~@15 c3", B: "~@7 c3 ~@8", C: "~@7 c3 ~@7 c3", D: "~@5 g4 ~ a4 g4 a4 ~ a4!2 g4 ~ a4", E: "g4 a4 ~ g4!2 ~@11",
  F: "~@14 c3 ~", G: "[g3,c#4] ~@2 [g3,d4] ~ [d4,g4] ~ [b3,e4]@4 ~ [b3,e4] ~@3",
  H: "[g3,c#4] ~@2 [a3,d4] ~ [a3,d4] ~ [b3,e4]@2 [a#3,d4,d#4] ~@6", // Gdim D5 E5 D#maj7
  I: "[g3,c#4] ~@2 [a3,d4] ~ [a3,d4,g4] ~ [b3,e4]@2 ~ [g#3,a3,a#3,c#4,d4,d#4] ~@5", J: "~@6 a#4@2 ~@2 a#4@2 ~@3 c3",
  K: "~@15 [f#3,e4]", // F#7
})).s("gm_distortion_guitar").gain(0.24)

// other · distortion guitar · "lead 1"
const distortion_guitar_2 = note(`<
  A B C D@2 ~@3 E F G@2 H@2 ~@16 I J@2 ~@5 A K ~@12 L@2 M@2 N@2 O@2 P@2 Q@3 ~@10 A R@2 ~ S@2 ~ T ~@4 U V W X Y Z AA ~@5
  AB@2 AC AD AE AF AG@2 AH@2 AI@2 ~@2 AJ AF AK@2 AH@2 AI@2 ~@7
>`.pickRestart({
  A: "~@13 e3@2 ~", B: "e2@2 e3@2 b2!2 d3@2 ~@5 e3@2 ~", C: "e2@2 [d3,g3]@2 e3@2 b2 e3 ~@5 g2@2 f2",
  D: "[[e2,b2]@11 ~ d3!2 b2 ~ a3 ~@15, ~@15 e3@11 ~@6]/2", E: "~@5 e3@2 ~ e2@2 e3@2 b2!2 d3@2",
  F: "~@5 e3@2 ~ e2@2 [d3,g3]@2 e3@2 b2 e3", G: "[~@5 e3@2 ~ e2@2 [g#3,b3]@2 d4@3 e4@6 e3@2 ~ e2@2 a3@2 b3 d4@2 ~]/2",
  H: "[d#4@3 ~, c4 ~@31]/2", I: "~@5 e3@2 ~ e2@2 b2 ~ d3 e3@2 ~", J: "[[e2,b2]@21 ~@11]/2", K: "e2@2 e3@2 b2!2 d3@10",
  L: "[a2@30 e3 c#3]/2", M: "[e2@29 ~ e3@2, a#2 ~@31]/2", N: "[c3@31 ~]/2", O: "[d3@29 e3 d#3 [c3,d3], c3 ~@31]/2",
  P: "a2/2", Q: "[~@14 e3 ~@9, e2@17 ~@7]/3", R: "[e2@2 [g#3,b3]@2 d4@3 e4@22 ~@3]/2", S: "[~ g5@4 ~@3]/2",
  T: "e4@6 g4 a4@4 b4@2 a4 ~@2", U: "f#4@15 ~", V: "g4@3 g4", W: "a4@10 a4@3 a#4@3", X: "b4", Y: "a4@3 b4",
  Z: "a4@13 ~@3", AA: "b4@7 ~", AB: "[[b2,f#3]@24 a4@3 ~ a4@3 ~]/2", AC: "a#4@14 b4 c5", AD: "c5@14 f#4 [f#4,a4]",
  AE: "[g2,d3], d#4 ~@15", AF: "[a2,e3,a3]@15 [f3,a#3]", AG: "[d3@28 d3@2 g#3 [c3,c#3,g3], a3@15 ~, e2 ~@31]/2",
  AH: "[[a2,e3]@31 ~]/2", AI: "[[b2,f#3]@9 ~@7, f#2 ~@31]/2", AJ: "[g2,d3]",
  AK: "[d3@28 d3@2 ~ [c3,c#3,g3,g#3], a3@15 ~, e2 ~@31]/2", // C#maj7
})).s("gm_distortion_guitar").gain(0.45).pan(1)

// other · distortion guitar · "lead 1" · soft notes
const distortion_guitar_soft_2 = note(`<
  A@2 ~@6 B@4 ~@18 C ~@7 A ~@24 D ~@11 A ~@26 E ~@4 F ~ G ~@7 F ~ G ~@8
>`.pickRestart({
  A: "~@15 [c3,d3]", B: "~@7 [c3,d3] ~@8", C: "~@7 [c3,d3] ~@7 [c3,d3]", D: "~@14 [c3,d3] ~", E: "~@15 f4",
  F: "a3@11 ~@5", G: "g4 ~@15",
})).s("gm_distortion_guitar").gain(0.22).pan(1)

// drums · kick
const kick = s("bd").struct("<~ A@3 B A@5 C@2 D A C D A@14 B A@56 B A@12 E A@5 F A@9 F A@3 E A@4 ~@3>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@4 x!2 ~ x ~@7", C: "x ~@3 x ~@2 x", D: "x!2", E: "x ~@2 x ~@4", F: "x ~@2 x!2 ~@2 x",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@11 B A@26 B A@7 B A@7 C A@3 B A@3 B A@21 B A@7 B@2 A@5 D A B A@5 B A B A@3 B A@5 D A B A@2 ~@3
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~ x!2", C: "~@4 x ~@7 x!4", D: "~@2 x!4 ~@2 x!8",
})).gain(0.36)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@3 B C A C A@2 D E B F A@9 F A@2 C A@4 F A@7 B F A@2 B A@3 G F A@2 B A C A ~@7 A B H A@2 C A@4 C A@4 G ~@8 F C F
  A@2 H A G I F A@2 C F ~ F G F J F A F G F ~ F B F G H B F C F ~ F G F G ~@3
>`.pickRestart({
  A: "x!8", B: "x!7 ~", C: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", D: "x ~ x ~ x!5 ~ x ~ x ~ x ~", E: "x!3 ~ x!4",
  F: "~@2 x!6", G: "x!6 ~@2", H: "~ x!7", I: "~@2 x!4 ~@2", J: "x!6 ~ x",
})).gain(0.31)

// drums · mid tom
const mid_tom = s("mt").struct("<~@77 [~@14 x!2] ~@50>").gain(0.45)
// … 30 more lines

More by Genesis