Strudelify

Here We Are

Miami Sound Machine

KeyE majorTempo74 bpm
0:00/0:00
// Here We Are — Miami Sound Machine
// 74 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: track names are the Roland MT-32 patch names at their program numbers ("SLAP BASS" on 69, "GUITAR RHYTHM" on 62), so with no bank select the whole file is read through the MT-32 patch table: ch 2 "SLAP BASS" Slap Bass 2 -> slap bass 2; ch 11 "ROUND BASS" Pipe Org 1 -> church organ; ch 4 "SYNTH BRASS LINE" Syn Brass 1 -> synth brass 1; ch 5 "DAMPED GUITAR" Guitar 2 -> acoustic guitar steel; ch 6 "GUITAR RHYTHM" Elec Gtr 2 -> overdriven guitar; ch 12 "FANTASY PAD" Slap Bass 1 -> slap bass 1; ch 8 "VOCAL "AHHS"" Shakuhachi -> shakuhachi; ch 1 "STRINGS" Glasses -> fx crystal
// note: "ROUND BASS" named as a bass, played on electric bass finger (neither patch table reads its program as one); "STRINGS" named as a string part, played on string ensemble 1 (neither patch table reads its program as one)
// note: Full arrangement: all 87 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(74/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 · slap bass 2 · "SLAP BASS"
const bass = note(`<
  ~@5 A@5 B C@4 D E F G H I J G K L@2 M@4 B C@4 D E F G H I J G K N O P Q R S T U@2 V W@4 X Y Z AA AB AA AC AD AE AF@2
  AG@7 AH@8 AI AJ@2
>`.pickRestart({
  A: "[~@12 b2 a2 g#2 f#2@3 f#2!2 ~@2 f#2@5 ~ f#2 g#2 a2 b2@2 ~ b2 ~@2 b2 ~ b2@4 ~ b2 a2 g#2 f#2@3 f#2!2 ~@2 f#2@5 ~ f#2 g#2 a2 b2@3 b2 ~@3 b2@10]/5",
  B: "e3@2 ~ e3 ~@2 e2@7 ~ b2 c#3", C: "e3@3 e3 ~@2 e2@8 b2 c#3", D: "e3@3 e3 ~@2 e2@7 ~ f#3 g#3",
  E: "e3@3 e3 ~@2 e2@7 ~ b2 c#3", F: "e3@2 ~ e3 ~@2 b2@9 g#2", G: "a2@3 a2 ~@2 a2@8 ~ a2",
  H: "g#2@3 g#2 ~@2 g#2@7 ~ f#2 g#2", I: "a2@2 ~ a2 ~@2 a2@3 e3 a3 b3 a3@2 a2@2",
  J: "g#2@2 ~ g#2 ~@2 g#2@2 c#3@3 c#3 b2@3 g#2", K: "g#2@2 ~ g#2 ~@2 g#2@6 g#3@4",
  L: "[f#2@2 ~ f#2 ~@2 f#2@3 f#2 g#2 a2 ~ a#2 ~ b2@16 ~]/2",
  M: "[f#2@2 f#2!2 ~@2 f#2@5 ~ f#2 g#2 a2 b2@2 ~ b2 ~@2 b2 ~ b2@4 ~ b2 a2 g#2 f#2@3 f#2!2 ~@2 f#2@5 ~ f#2 g#2 a2 b2@3 b2@14]/4",
  N: "f#2@3 f#2 ~@2 f#2@9 f#2", O: "b2@3 b2 ~ a2 b2@8 c#3@2", P: "e2@3 e2 ~@2 e2@4 e2@2 e2@4", Q: "a2@5 e2 a2@2 b2@8",
  R: "e3 b3 f#4 d#4@2 c#3 g#3@9 ~", S: "c3@5 g3 c3@2 b2@8", T: "c3@5 g3 c3@2 b2@4 g3@4",
  U: "[a2@3 a2@2 ~ a2@6 ~ b2 c3 d3@4 a3 e4 ~ d4@4 d3@3 d3@3]/2", V: "g3@2 ~ g3 ~@2 g2@7 ~ d3 e3",
  W: "g3@3 g3 ~@2 g2@8 d3 e3", X: "g3@3 g3 ~@2 g2@7 ~ a3 b3", Y: "g3@3 g3 ~@2 g2@7 ~ d3 e3", Z: "g3@2 ~ g3 ~@2 d3@9 b2",
  AA: "d2@3 d2 ~@2 d2@5 a3 d4!2 d4@2", AB: "d2@3 d2 ~@2 d2@8 a2 b2", AC: "d2@2 ~ d2 ~@2 d2 ~ d2@3 f#2 g2@4",
  AD: "c3@2 ~ c3 ~@2 c3@7 ~ c3@2", AE: "b2@3 b2@2 ~ b2@7 ~ b2@2",
  AF: "[a2@2 ~ a2 ~@2 a2@2 ~ a2 b2 c3 ~ c#3 ~ d3@9 ~@8]/2",
  AG: "[a2@3 a2@3 a2@5 ~ a2 b2 c3 d3@4 d3@3 d3@5 ~ d3 ~ b2 a2@4 a2@3 a2@5 ~ a2 b2 c3 d3@4 d3@3 d3@5 ~ [d3,e3] c3 b2 a2@4 a2@3 a2@5 ~ a2 b2 c3 d3@4 d3@3 d3@5 ~ d3 ~ b2 a2@4 a2@3 a2@5 ~ a2 b2 c3 d3, ~@29 c3@2 ~@62 c3@2 ~@17]/7", // Dsus2
  AH: "[~@3 d3@3 d3@5 ~ d3 c3 b2 a2@4 a2@3 a2@5 ~ a2 b2 c3 d3@4 d3@3 d3@5 ~ d3 c3 b2 a2@4 a2@3 a2@5 ~ a2 b2 c3 d3@4 d3@3 d3@5 ~ d3 c3 b2 a2@4 a2@3 a2@6 a2 b2 c3 d3@4 d3@3 d3@5 ~ d3 c3 b2 a2@4 a2@3 a2@5 ~ a2 b2 c3 d3]/8",
  AI: "~@3 d3@3 d3@5 ~ d3 c3 b2 e2", AJ: "[a2@9 ~@7]/2",
})).s("gm_slap_bass_2").gain(0.48)

// bass · electric bass finger · "ROUND BASS"
const bass_2 = note(`<
  ~@5 A@5 B C@4 D E F G H I J G K L@2 M@4 B C@4 D E F G H I J G K N O P Q R S T U@2 V W@4 X Y Z AA AB AA AC AD AE AF@2
  AG@7 AH@8 AI AJ@2
>`.pickRestart({
  A: "[~@12 b3 a3 g#3 f#3@3 f#3!2 ~@2 f#3@5 ~ f#3 g#3 a3 b3@2 ~ b3 ~@2 b3 ~ b3@4 ~ b3 a3 g#3 f#3@3 f#3!2 ~@2 f#3@5 ~ f#3 g#3 a3 b3@3 b3 ~@3 b3@10]/5",
  B: "e4@2 ~ e4 ~@2 e3@7 ~ b3 c#4", C: "e4@3 e4 ~@2 e3@8 b3 c#4", D: "e4@3 e4 ~@2 e3@7 ~ f#4 g#4",
  E: "e4@3 e4 ~@2 e3@7 ~ b3 c#4", F: "e4@2 ~ e4 ~@2 b3@9 g#3", G: "a3@3 a3 ~@2 a3@8 ~ a3",
  H: "g#3@3 g#3 ~@2 g#3@7 ~ f#3 g#3", I: "a3@2 ~ a3 ~@2 a3@3 e4 a4 b4 a4@2 a3@2",
  J: "g#3@2 ~ g#3 ~@2 g#3@2 c#4@3 c#4 b3@3 g#3", K: "g#3@2 ~ g#3 ~@2 g#3@6 g#4@4",
  L: "[f#3@2 ~ f#3 ~@2 f#3@3 f#3 g#3 a3 ~ a#3 ~ b3@16 ~]/2",
  M: "[f#3@2 f#3!2 ~@2 f#3@5 ~ f#3 g#3 a3 b3@2 ~ b3 ~@2 b3 ~ b3@4 ~ b3 a3 g#3 f#3@3 f#3!2 ~@2 f#3@5 ~ f#3 g#3 a3 b3@3 b3@14]/4",
  N: "f#3@3 f#3 ~@2 f#3@9 f#3", O: "b3@3 b3 ~ a3 b3@8 c#4@2", P: "e3@3 e3 ~@2 e3@4 e3@2 e3@4", Q: "a3@5 e3 a3@2 b3@8",
  R: "e4 b4 f#5 d#5@2 c#4 g#4@9 ~", S: "c4@5 g4 c4@2 b3@8", T: "c4@5 g4 c4@2 b3@4 g4@4",
  U: "[a3@3 a3@2 ~ a3@6 ~ b3 c4 d4@4 a4 e5 ~ d5@4 d4@3 d4@3]/2", V: "g4@2 ~ g4 ~@2 g3@7 ~ d4 e4",
  W: "g4@3 g4 ~@2 g3@8 d4 e4", X: "g4@3 g4 ~@2 g3@7 ~ a4 b4", Y: "g4@3 g4 ~@2 g3@7 ~ d4 e4", Z: "g4@2 ~ g4 ~@2 d4@9 b3",
  AA: "d3@3 d3 ~@2 d3@5 a4 d5!2 d5@2", AB: "d3@3 d3 ~@2 d3@8 a3 b3", AC: "d3@2 ~ d3 ~@2 d3 ~ d3@3 f#3 g3@4",
  AD: "c4@2 ~ c4 ~@2 c4@7 ~ c4@2", AE: "b3@3 b3@2 ~ b3@7 ~ b3@2",
  AF: "[a3@2 ~ a3 ~@2 a3@2 ~ a3 b3 c4 ~ c#4 ~ d4@9 ~@8]/2",
  AG: "[a3@3 a3@3 a3@5 ~ a3 b3 c4 d4@4 d4@3 d4@5 ~ d4 ~ b3 a3@4 a3@3 a3@5 ~ a3 b3 c4 d4@4 d4@3 d4@5 ~ [d4,e4] c4 b3 a3@4 a3@3 a3@5 ~ a3 b3 c4 d4@4 d4@3 d4@5 ~ d4 ~ b3 a3@4 a3@3 a3@5 ~ a3 b3 c4 d4, ~@29 c4@2 ~@62 c4@2 ~@17]/7", // Dsus2
  AH: "[~@3 d4@3 d4@5 ~ d4 c4 b3 a3@4 a3@3 a3@5 ~ a3 b3 c4 d4@4 d4@3 d4@5 ~ d4 c4 b3 a3@4 a3@3 a3@5 ~ a3 b3 c4 d4@4 d4@3 d4@5 ~ d4 c4 b3 a3@4 a3@3 a3@6 a3 b3 c4 d4@4 d4@3 d4@5 ~ d4 c4 b3 a3@4 a3@3 a3@5 ~ a3 b3 c4 d4]/8",
  AI: "~@3 d4@3 d4@5 ~ d4 c4 b3 e3", AJ: "[a3@9 ~@7]/2",
})).s("gm_electric_bass_finger").gain(0.48)

// chords · piano
const piano = note(`<
  ~@5 A@4 ~@11 B ~ B C@3 ~ D@3 E F G H I J G K L M B N B O@3 P Q R S T U@2 V W X Y V W Z@2 AA AB AC AD AE AF@3 ~@3 AG@2
  AH@2 AG@2 AI@2 AG@2 AI@2 AJ@3
>`.pickRestart({
  A: "[~@9 [d6,b6]@2 [c#6,a6]@2 [b5,g#6]@2 [a5,f#6]@23 ~@6 [d6,b6] [c#6,a6] [b5,g#6] [a5,f#6]@17]/4", // G F#m E D G F#m E D
  B: "~@3 [c#5,c#6]@2 [f#5,f#6]@2 [g#5,g#6]@7 ~@2", // C# F# G#
  C: "[~@10 [f#4,f#5] [g#4,g#5]@2 [b4,b5]@2 [c#5,c#6]@8 ~@2 [a5,a6] [g#5,g#6] [c#5,c#6]@2 [e5,e6]@2 [f#5,f#6]@14 ~@3]/3", // F# G# B C# A G# C# E …
  D: "[~@9 [d#6,b6]@2 [c#6,a6]@2 [b5,g#6]@2 [a5,f#6]@14 ~@2 e5@10 ~ [e5,e6]@3 [d#5,d#6]@3, ~@29 g#4@8 ~@11, ~@15 a4@7 ~@2, ~@31 c#5@13 ~@4]/3", // G#m F#m E D E D#
  E: "[e4,e5,g#5,b5]@15 ~", F: "[e4,d#5,f#5,b5]@15 ~", G: "[e4,c#5,e5,a5]@15 ~", H: "a5@8 g#5@4 a5@3 ~, [e4,c#5,e5]",
  I: "[e4,e5,g#5,b5]", J: "[e4,d#5,f#5,b5]", K: "[a4,c#5,e5,b5]@5 ~ [a4,c#5,e5,b5]@3 ~ [b4,d#5,f#5,b5]@6",
  L: "[a4,c#5,e5,g#5]@15 ~", M: "[g#4,b4,d#5,f#5]", N: "[b4,d#5,f#5]@7 ~ [c#5,e5,g#5]@3 ~ [d#5,f#5,b5]@4",
  O: "[~@10 [f#4,f#5] [g#4,g#5]@2 [b4,b5]@2 [c#5,c#6]@8 ~@2 [a5,a6] [g#5,g#6] [c#5,c#6]@2 [e5,e6]@2 [f#5,f#6]@16 ~]/3", // F# G# B C# A G# C# E …
  P: "[g#4,b4,e5]@2 e4 [f#4,b4,e5]@2 [g#4,b4,e5]@2 ~ [b4,e5,b5]@3 ~ [e5,e6] [f#5,f#6] [g5,g6] [a5,a6], b5@7 e4@4 ~@5", // E Esus2 E E5 E F# G A
  Q: "[a3,c5,e5,g5,b5] [b3,b4,d#5,f#5,a5], a6@5 ~@11", // Am7 B7
  R: "[e4,b4]@7 ~@2 e4 ~@2 b4@3 ~, [e5,g#5]@15 ~, ~@7 b4@3 g#4@5 ~", // E5 E
  S: "[c4,c5,e5,g5,b5]@7 ~ [b4,e5,g#5]@4 [c#5,e5,a5]@3 ~, ~ b3", T: "[c4,c5,e5,g5,b5] [b3,b4,d5,g5,b5]",
  U: "[[a3,a4,c5,e5,g5]@5 [b4,b5] [c5,g5,c6] [g5,g6]@6 [b4,b5] [c5,c6] [g5,a5,a6]@11 [g5,g6]@3 [f#5,f#6]@3, ~@6 [a3,a4,e5]@9 [d4,c5,e5]@16 ~]/2", // Am7 B C5 G B C Gsus2 G …
  V: "[g4,g5,b5,d6]", W: "[g4,f#5,b5,d6]@15 ~", X: "[g4,e5,g5,c6]", Y: "[e5,g5,c6]@7 ~ [e5,g5,b5]@4 [e5,g5,c6]@4, g4",
  Z: "[[e5,g5,c6]@8 [e5,g5,c6]@3 [d4,c5,e5,g5]@2 [d4,d5,f#5,a5]@3, g4@11 ~@5]/2", // C D
  AA: "[c5,e5,g5,b5]@12 [c5,e5,g5,b5]@3 ~", AB: "[d5,f#5,a5]@12 [d5,f#5,a5]@3 ~",
  AC: "[c5,e5,g5,b5]@2 ~ [e5,e6]@2 [a5,a6]@2 [b5,b6]@2 [e5,e6]@2 [c5,c6]@5", // Cmaj7 E A B E C
  AD: "[b4,b5]@6 ~@2 [c5,e5,g5]@3 ~ [d5,f#5,a5]@4", AE: "~@3 [e5,e6]@2 [a5,a6]@2 [b5,b6]@7 ~@2",
  AF: "[~@10 [a4,a5] [b4,b5]@2 [d5,d6]@2 [e5,e6]@8 ~@2 [c6,c7] [b5,b6] [e5,e6]@2 [g5,g6]@2 [a5,a6]@10 ~@7]/3", // A B D E C B E G …
  AG: "[~@9 [f#5,d6]@2 [e5,c6]@2 [d5,b5]@2 [c5,a5]@17]/2", AH: "[~@12 [d5,d6] [c5,c6] [b4,b5] [a4,a5]@15 ~@2]/2",
  AI: "[~@12 [d5,d6] [c5,c6] [b4,b5] [a4,a5]@17]/2", AJ: "[~@9 [f#5,d6]@2 [e5,c6]@2 [d5,b5]@2 [c5,a5]@18 ~@15]/3",
})).s("gm_piano").gain(0.47)

// chords · synth brass 1 · "SYNTH BRASS LINE"
const synth_brass_1 = note("<~@54 A B@2 C@2 D@2 E F G H I J K@2 ~@18>".pickRestart({
  A: "~@8 a4@3 g4@3 f#4@2", B: "[e4@20 g3 a3 b3@6 [a3,c4]@4]/2", C: "[[b3,d4]@12 ~@4 d5@14 c5 b4, ~@6 b4@9 ~]/2",
  D: "[~@8 g4@5 [a4,d5]@3, c5@13 ~@3]/2", E: "g4", F: "a4", G: "b4", H: "a4@2 g4 a4", I: "[g4,b4]", J: "[f#4,a4]",
  K: "[[e4,g4]@15 [a4,d5]@9 ~@8]/2", // Em D5
})).s("gm_synth_brass_1").gain(0.43)

// chords · overdriven guitar · "GUITAR RHYTHM"
const overdriven_guitar = note(`<
  ~@7 A B C ~@17 A B D E F G H I J K L M N O P Q R S@2 T ~@6 U V W X Y Z AA AB AC AD AE AF AG AH AI@2 AJ AK AL AM AJ AK
  AL AM AJ AK AL AM AJ AK AL AM AN ~
>`.pickRestart({
  A: "b2 ~ b2 ~@2 b2 ~ b2@5 ~@4", B: "~@12 f#2 b2 c#3 f#2", C: "b2@2 b2 ~@2 b2 ~ b2@3 ~@6", D: "b2@2 b2 ~@13",
  E: "~@2 e3!2 ~ e3 e2 e3@7 ~@2", F: "~@2 e3 e2 ~@2 e2 e3@2 e3 ~@3 e3!2 ~", G: "e3 ~ e3 e2 ~@2 e2 e3@8 ~",
  H: "e3 ~ e3 e2 ~@2 e2 e3@2 e3 ~@3 f#3 e3 c#3", I: "e3!3 e2 ~@2 e2 e3 ~ e3 ~@3 f#3 e3 c#3",
  J: "e3 ~ e3 e2 ~@2 e2 e3@2 c#3!2 e3@3 ~@2", K: "e3 ~ e3 e2 ~@2 e2 e3@2 e3 ~@4 b2 c#3",
  L: "~@2 e3 e2 e3!2 e2!2 b2!2 ~@6", M: "~@3 [c#4,e4,g#4] ~@3 e3 ~ e3 c#3@3 [c#4,e4,g#4] ~@2, ~@6 [c#4,e4,g#4]@7 ~@3",
  N: "~@3 [b3,d#4,f#4] ~ b2 c#3 e3 ~ e3 b2@4 ~@2, ~@6 [b3,d#4,f#4]@9 ~", // B
  O: "[c#4,e4,g#4] ~@2 [c#4,e4,g#4] ~@2 [c#4,e4,g#4]@7 [c#4,e4,g#4] ~@2", // C#m
  P: "[b3,d#4,f#4] ~@2 [b3,d#4,f#4] ~@3 d#3 ~ d#3 b2@5 ~, ~@3 [c#3,b3,d#4,f#4] ~@4", // B
  Q: "[c#4,e4,g#4] ~@2 [c#4,e4,g#4] ~ b2 c#3 e3 ~@2 [c#4,e4,g#4] ~@5, ~@3 [c#4,e4,g#4]@2 ~@3", // C#m
  R: "[b3,d#4,f#4]@2 [b3,f#4] [b3,d#4,f#4] ~ g#3 ~ d#3 ~ d#3 b2@4 ~@2, ~@3 [b3,d#4,f#4]@3 ~@2", // B B5 B
  S: "[[a3,c#4,e4]@2 [a3,c#4,e4] [c#3,a3,c#4,e4] ~ [c#3,f#3] [a3,c#4,e4]@3 [a3,c#4,e4]!2 ~ [a3,c#4,e4]!2 ~ c#3 b2@12 ~@4, ~@6 a2@8 ~ [a3,c#4,e4,b4]@13 ~@4]/2", // A F#5 A
  T: "[g#3,b3,e4]@5 ~ c#4 [g#3,b3,e4]@5 [g#3,b3,e4]@3 ~, ~@5 g#3@2 ~@9", U: "~@2 g3!2 ~ g3 g2 g3@7 ~@2",
  V: "~@2 g3 g2 ~@2 g2 g3@2 g3 ~@3 g3!2 ~", W: "g3 ~ g3 g2 ~@2 g2 g3@8 ~", X: "g3 ~ g3 g2 ~@2 g2 g3@2 g3 ~@3 a3 g3 e3",
  Y: "g3!3 g2 ~@2 g2 g3 ~ g3 ~@3 a3 g3 e3", Z: "g3 ~ g3 g2 ~@2 g2 g3@2 e3!2 g3@3 ~@2",
  AA: "g3 ~ g3 g2 ~@2 g2 g3@2 g3 ~@4 d3 e3", AB: "~@2 g3 g2 g3!2 g2!2 d3!2 ~@6",
  AC: "~@2 g4 [e4,g4,b4] c4 g4 ~ c4 g4 e4 c4 g4@2 [e4,g4,b4] e4 c4, ~@6 b4@7 ~@3, ~@6 [e4,g4]@3 ~@7", // Em
  AD: "~@2 [g4,a4] [d4,f#4,a4] d4 a4 d4!2 a4 f#4 d4 a4@5, ~@6 [f#4,a4]@3 ~@7", // Gsus2 D F#m
  AE: "[e4,g4,b4] ~ g4 [e4,g4,b4] c4 g4 ~ c4 g4 e4 c4 g4@2 [e4,g4,b4] e4 c4, ~@6 b4@7 ~@3, ~@6 [e4,g4]@3 ~@7", // Em
  AF: "[d4,f#4,a4] ~ a4 [d4,f#4,a4] d4 a4 ~ d4 [e4,g4]@3 [e4,g4] [f#4,a4]@4, ~@3 [d4,f#4,a4] ~@4", // D Em F#m D
  AG: "[e4,g4,b4] ~@2 [e4,g4,b4] ~ d3 e3 g3 ~@2 [e4,g4,b4] ~@5, ~@3 [e4,g4,b4]@2 ~@3", // Em
  AH: "[d4,f#4,a4]@2 [d4,a4] [d4,f#4,a4] ~ b3 ~ f#3 ~ f#3 d3@4 ~@2, ~@3 [d4,f#4,a4]@3 ~@2", // D D5 D
  AI: "[[c4,e4,g4]@2 [c4,e4,g4] [e3,c4,e4,g4] ~ [e3,a3] [c4,e4,g4]@3 [c4,e4,g4]!2 ~ [c4,e4,g4]!2 ~ e3 d3@8 ~@8, ~@6 c3@8 ~ [c4,e4,g4,d5]@10 ~@7]/2", // C A5 C
  AJ: "~@13 b2 c3 d3", AK: "d3@2 d3 ~@2 d3 ~ d3@5 ~@4", AL: "~@12 a2 d3 e3 a2", AM: "d3@2 d3 ~@2 d3 ~ d3@7 ~@2",
  AN: "[a2,e3,a3]", // A5
})).s("gm_overdriven_guitar").gain(0.36)

// chords · slap bass 1 · "FANTASY PAD"
const slap_bass_1 = note(`<
  ~@6 A@4 B@2 C@4 D@2 E F G H@2 F I@2 J@4 B@2 C@4 D@2 E F G H@2 F I@2 K L@4 M@2 N@2 O@4 P@2 Q R S T@2 R U@2 V@4 W@4 X@4
  V@4 Y ~
>`.pickRestart({
  A: "[[a4,c#5,f#5]@29 ~@3]/4", B: "[e5 d#5, [g#5,b5]]/2", C: "[a5@6 g#5 a5 ~@4 d#5@4, e5@3 ~, c#5 [g#5,b5]]/4",
  D: "[[c#5,e5,a5]@13 [d#5,f#5,b5]@3]/2", E: "[a4,c#5,e5]", F: "[b4,d#5,f#5]", G: "[c#5,e5,g#5]",
  H: "[[b4,d#5,f#5]@2 c#5 b5 [a4,c#5]@4, ~ e5@3, ~ g#5 ~@2]/2", I: "[[a4,c#5,e5]@29 ~@3]/2",
  J: "[[a4,c#5,f#5]@55 ~@9]/4", K: "[e4,b4,e5]",
  L: "[[c5,e5,g5]@2 [d#5,f#5]@2 g#5@4 [c5,g5]@2 [b4,g#5] [c#5,a5] c5@2 [b4,d5]@2, ~ b4@3 ~@2 g5@2, ~@2 e5@5 ~]/4", // C D#m C5 E F#m Bm
  M: "[[c5,e5,g5]@15 ~]/2", N: "[g5 f#5, [b5,d6]]/2", O: "[c6@6 b5 c6 ~@4 f#5@4, g5@3 ~, e5 [b5,d6]]/4",
  P: "[[e5,g5,c6]@13 [f#5,a5,d6]@3]/2", Q: "[c5,e5,g5]", R: "[d5,f#5,a5]", S: "[e5,g5,b5]",
  T: "[[d5,f#5,a5]@2 e5 d6 [c5,e5]@4, ~ g5@3, ~ b5 ~@2]/2", U: "[[c5,e5,g5]@3 ~]/2", V: "[[c5,e5,a5]@63 ~]/4",
  W: "[c5 c5, [e5,a5]]/2", X: "[c5,e5,a5]/2", Y: "[a4,c5,e5]",
})).s("gm_slap_bass_1").gain(0.3)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@6 A@4 B@2 C@4 D@2 E F G H@2 F I@2 J K L@2 B@2 C@4 D@2 E F G H@2 F M@3 N K O@2 P@2 Q@2 R@4 S@2 T U V W@2 U X@2 ~@4 Y
  Z Y Z Y Z Y Z Y Z Y Z AA ~
>`.pickRestart({
  A: "[f#5@57 ~@7]/4", B: "[[g#5,b5], e5 ~]/2", C: "[~@3 d#5, e5@3 ~, ~ [g#5,b5]]/4",
  D: "[[a4,c#5,e5]@13 [b4,d#5,f#5]@3]/2", E: "[a4,c#5,e5]", F: "[b4,d#5,f#5]", G: "[c#5,e5,g#5]",
  H: "[[b4,d#5,f#5]@2 c#5 b5 [a4,c#5]@4, ~ e5@3, ~ g#5 ~@2]/2", I: "[[a4,c#5,e5]@29 ~@3]/2", J: "[c#5,e5]", K: "b4",
  L: "[[c#5,e5]@3 ~]/2", M: "[[a4,c#5]@31 ~@17, e5]/3", N: "e5 d#5", O: "[e5@3 d5]/2", P: "c5/2",
  Q: "[[b5,d6], g5 ~]/2", R: "[~@3 f#5, g5@3 ~, ~ [b5,d6]]/4", S: "[[c5,e5,g5]@13 [d5,f#5,a5]@3]/2", T: "[c5,e5,g5]",
  U: "[d5,f#5,a5]", V: "[e5,g5,b5]", W: "[[d5,f#5,a5]@2 e5 d6 [c5,e5]@4, ~ g5@3, ~ b5 ~@2]/2", X: "[[c5,e5,g5]@3 ~]/2",
  Y: "g5", Z: "a5", AA: "[a3,b4,e5,a5]",
})).s("gm_string_ensemble_1").gain(0.22)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@11 A B@2 ~@17 A B@2 ~@20 C D@2 ~@30>".pickRestart({
  A: "d#5", B: "[a4,c#5]/2", C: "f#5", D: "[c5,e5]/2",
})).s("gm_string_ensemble_1").gain(0.13)

// drums · kick
const kick = s("bd").struct("<~@6 A@3 B A@15 ~ A@3 ~ A@21 C ~ A@14 C ~ A@16 D ~>".pickRestart({
  A: "x ~@5 x ~@4 x ~@2 x ~", B: "x ~@4 x ~ x ~@8", C: "x ~@5 x ~@4 x ~ x ~ x", D: "x",
})).gain(0.36)

// drums · rim
const rim = s("rim").struct("<~@6 A@3 B A@15 ~ A@3 ~@40 A@16 ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@2 x ~@8",
})).gain(0.36)

// drums · snare
const snare = s("sd").struct("<~@30 A@16 B C@4 D E A@8 C@3 F C@2 D ~@17 G ~>".pickRestart({
  A: "~@3 x", B: "~@5 x!2 ~", C: "~ x ~ x", D: "~@4 x ~@4 x ~@2 x ~@2 x", E: "~ x ~@2", F: "~@4 x ~@6 x!2 ~@3", G: "x",
})).gain(0.36)

// drums · low tom
const low_tom = s("lt").struct("<~@51 [~@11 x ~@4] ~@15 [~@11 x ~@4] ~@19>").gain(0.31)

// drums · hihat
const hihat = s("hh").struct("<~@6 A@3 B A@14 C D A@2 C D A@21 E ~ A@14 E D A@16 F ~>".pickRestart({
  A: "x!4", B: "x ~@3 x ~@2 x ~@8", C: "x ~ x ~ x ~ x!2", D: "~ x ~ x", E: "x ~@3 x ~@3 x ~@3 x ~@2 x", F: "x",
})).gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct("<~@46 [~@7 x] ~@4 [~@5 x ~@2] [~@3 x ~@2 x ~@9] ~@14 [~@5 x ~@2] ~@19>").gain(0.26)

// drums · crash
const crash = s("cr").struct("<~@6 A ~@39 B A ~@3 C ~@15 C ~@17 A ~>".pickRestart({
  A: "x", B: "~@9 x ~@6", C: "~@13 x ~ x",
})).gain(0.2)

// drums · ride
const ride = s("rd").struct("<~@47 [~ x!3] [x!4]!4 ~@35>").gain(0.26)

// drums · bongos
const bongos = s("bongo:4").struct("<~@10 A@15 ~@5 A@15 ~ A ~@2 A@19 ~ A@16 ~@2>".pickRestart({
  A: "~ x ~@2",
})).gain(0.81)

// … 32 more lines

More by Miami Sound Machine