Strudelify
KeyE minorTempo130 bpm
0:00/0:00
// Corcovado — Jobim Antonio Carlos
// 130 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 116 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  A@2 B C D E F G H I J K L M N O P Q R S T U V W J X I Y Z AA AB AC AD AE AF AC AG AH B AI AJ E F G H I J K L AK N O P
  Q R S T U V W J X I Y Z AA AB AC AD AE AF AC AG AH B C D E F G H I J K L M N O P Q R S T U V W J X I Y Z AA AB AC AD
  AE AF AC ~ AL@2 AM@2 AN AO ~
>`.pickRestart({
  A: "[a2@3 ~ g2 ~@2 a2@2 ~@7]/2", B: "e2@2 ~ e2 b2@2 ~ b2", C: "e2@5 ~ e2@2 b2@5 ~ b2 ~",
  D: "a#2@4 ~@2 a#2@2 e2@5 ~ e2@2", E: "a#2@5 ~ a#2 ~ e2@4 a#2 ~ e2@2", F: "a2@4 ~@2 a2@2 e2@5 ~ e2@2",
  G: "a2@4 ~@2 a2 ~ e2@3 ~ g#2@3 ~", H: "g2@4 ~@2 g2 ~ d2@4 ~@2 d2@2", I: "g2@4 ~@2 g2@2 d2@5 ~ d2@2",
  J: "g2@2 ~ g2 d2@2 ~ d2", K: "g2@4 ~@2 g2@2 d2@3 ~ g2@3 ~", L: "f#2@4 ~@2 f#2 ~ c#2@3 ~ f#2@3 ~",
  M: "b2@5 ~ b2@2 f#2@3 ~ b2@2 f#2 ~", N: "e2@4 ~@2 e2@2 b2@4 ~@2 b2 ~", O: "e2@4 ~@2 e2 ~ b2@4 ~@2 b2 ~",
  P: "e2@4 ~@2 e2@2 b2@4 b2@3 ~", Q: "a#2@4 ~@2 a#2 ~ a#2@3 ~ a#2@3 ~", R: "e2@2 ~ b2 b2@2 ~ e2",
  S: "e2@4 ~@2 b2@2 b2@3 ~ e2@3 ~", T: "a#2@4 ~@2 a#2 ~ a#2@4 ~@2 e2@2", U: "e2@4 ~@2 a#2@2 a#2@3 ~ a#2@3 ~",
  V: "a2@2 ~ a2 e2@2 ~ a2", W: "a2@4 ~@2 a2 ~ a2@2 ~@2 g#2@3 ~", X: "g2@4 ~@2 g2@2 d2@3 ~ d2@2 ~@2",
  Y: "g2@4 ~@2 g2@2 d2@4 g2@3 ~", Z: "f#2@4 ~@2 f#2@2 c#2@4 f#2@3 ~", AA: "b2@4 ~@2 b2 ~ f#2@3 ~ b2 ~ f#2 ~",
  AB: "e2@4 ~@2 e2@2 b2@3 ~ e2@3 ~", AC: "a2@4 ~@2 a2@2 e2@3 ~ a2@3 ~", AD: "f#2@5 ~ f#2@2 c#2@3 ~ f#2@3 ~",
  AE: "b2@2 ~ b2 ~ b2 ~ b2", AF: "e2@4 ~@2 e2@2 g2 ~ b2@2 g2 ~ e2 ~", AG: "d2@2 ~ d2 a2@2 ~ a2",
  AH: "d2@4 ~@2 d2@2 a2@3 ~ a2@3 ~", AI: "e2@5 ~ e2@2 b2@5 ~ b2@2", AJ: "a#2@4 ~@2 a#2 ~ e2@5 ~ e2 ~",
  AK: "b2@5 ~ b2@2 f#2@3 ~ b2@2 f#2@2", AL: "[~@14 g2@7 ~@11]/2", AM: "[~@7 d2@4 ~@5]/2", AN: "d2@3 ~@5", AO: "d2 ~@7",
})).s("gm_acoustic_bass").gain(0.64)

// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note("<A B ~@106 C@2 D@2 E F ~ G>".pickRestart({
  A: "~@10 e2@2 g2 ~@3", B: "~@2 e2 ~ g2@2 a2@3 ~ g2@2 e2@3 ~",
  C: "[d2@7 ~ a2 ~ f#2 ~ d2 ~ d2@4 a2 ~ d2 ~ d2@4 a2 ~ f#2 ~@3]/2",
  D: "[~@6 a#2@2 g2 ~ d2 ~ g2 ~ d#2@7 ~ a#2 ~ g2 ~ d#2@2 g2 ~@3]/2", E: "~@6 a2@2 f#2 ~ d2 ~ f#2 ~ a2 ~",
  F: "~@6 f#2 ~ a2 ~ f#2@2 d2 ~ f#2@2", G: "d2 ~@7",
})).s("gm_acoustic_bass").gain(0.36)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  A B C@2 D@2 E F@2 G@4 H I J@3 K L@3 M N O P Q R@3 S@3 T U V@3 W@2 D@2 E X@2 G@4 H I J@3 K L@3 M N O P Y R@3 S@3 T U
  V@3 Z AA AB AC AD AE@2 AF AG AH AI AJ AK@4 AL AM AN AO@3 AP AQ AR@2 AS AT AU@8 AV@4 AW AX
>`.pickRestart({
  A: "~@4 [a2,c#3,e3]@4 ~@2 a2@2 c#3@2 e3 ~", B: "g3@4 e3 [e3,g3] c#3 a2 g2@2 e2@2 g2@2 ~@2",
  C: "[e2@2 ~@2 [e3,g#3,b3,d4]@4 e3 ~ [g#3,b3,d4,d#4,f#4] ~@3 [g#3,b3,d4,f#4]@10 ~ [g#3,b3,d4,f#4] ~ [g#3,b3,d4,f#4] [g#3,b3,d4,f#4]@2 [g#3,b3,d4,f#4] ~]/2", // E7 G#m7 G#m7b5
  D: "[[g3,a#3,c#4,e4]@10 [a#3,c#4,e4] ~@3 [g3,a#3,c#4,e4]@4 [a#3,c#4,e4] ~@3 [a#3,e4]@2 [a#3,e4]@2 [a#3,c#4]@2 [g3,a#3,c#4,e4] ~@3, ~@22 [g3,c#4]@5 ~@5]/2", // Gdim A#dim Gdim A#dim A#m Gdim
  E: "[c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4] ~@5 [c4,e4,g4]@2 [c4,e4,g4] ~ [c4,e4,g4]@2, a3@5 ~@5 a3@5 ~", // C
  F: "[~@2 [a3,c4,e4,g4]@5 ~ [g#3,c4,d#4,f#4]@7 [g3,b3,f#4]@6 ~ [g3,b3,e4]@9 ~, ~@15 d#4 ~@16]/2", // Am7 G#7 Gmaj7 Em
  G: "[[d#4,e4]@2 d4@2 b3 ~ g3@6 e4 d4 b3 ~@5 [a#3,d4,f4]@4 g3@2 [a#3,d4,f4] ~ g3 ~ [g3,a#3,d4,f4]@9 ~ [g3,a#3,d4,f4] ~ [g3,a#3,d4,f4] ~ [g3,a#3,d4,f4] ~ [f#3,a3,c#4,e4]@10 ~ [f#3,a3,c#4,e4] ~ [f#3,a3,c#4,e4] [f#3,a3,c#4,e4]@2 [f#3,a3,c#4,e4] ~, ~@15 g3@8 ~@41]/4", // Emaj7 A# Gm7 F#m7
  H: "[g3,b3]@11 ~ [d#3,f#3]@3 ~", I: "~@6 g#3@2 [d4,f#4]@2 [d4,f#4] ~@3 g#3@2, ~@2 b3 ~",
  J: "[[b3,d4,f#4]@2 [b3,d4,f#4]@2 g#3 ~ [b3,d4,f#4]@2 ~@2 [g#3,b3,d4,f#4]@2 ~@2 [g3,b3,d4]@6 [g3,b3,e4]@2 ~@2 [g3,b3,d4]@2 [g3,b3,e4] ~ [g3,b3,c4,d4] ~ [g3,a#3,c#4]@14 e4 c#4 a#3 g3]/3", // Bm G#m7b5 G Em G Em G Gdim
  K: "g#3@4 [b3,d4,f#4]@2 g#3@4 [b3,d4,f#4] ~@5", // Bm
  L: "[~@3 b3 d4@2 b3@2 [g#3,d4]@2 b3@2 g#3@2 ~@2 a#3@9 ~ g3@2 ~@2 [g3,a#3] ~@3 [g3,a#3]@6 ~ [g3,a#3] ~ [g3,a#3] [g3,a#3]@2 [g3,a#3] ~, ~@2 e3@8 ~@4 e3@12 ~@2 e3@13 ~@2 e3@4 ~, ~@3 g#3@4 ~@41]/3", // G#dim Gm
  M: "~@4 [g3,c4,e4,f4,g4] ~ [g3,c4,e4,g4] ~ [g3,c4,e4,g4] ~ [g3,c4,e4,g4] ~ [a3,c4,e4,g4] ~ [g3,c4,e4,g4] ~", // C Am7 C
  N: "[a3,c4,e4,g4] ~@2 [g3,c4,e4,g4] ~@2 [a3,c4,e4,g4] ~@3 [g#3,c4,d#4,f#4]@5 ~, ~@10 c#4 ~@5", // Am7 C Am7 G#7
  O: "[g3,b3,f#4]@5 ~ [g3,b3,e4]@8 [g3,b3,d4] ~", // Gmaj7 Em G
  P: "e4@2 [b3,e4]@2 [b3,d4] ~ [g3,b3,e4] ~@3 [g3,b3,d4]@5 ~, g3@3 ~@5, b3 ~@15", // E5 Bm Em G
  Q: "~@3 [g3,a#3,d4,f4]@3 [g3,a#3,d4,f4]@2 [g3,a#3,d4,f4]@2 ~ [g3,a#3,d4] ~ [g3,a#3,d4] ~@2", // Gm7 Gm
  R: "[[d4,f#4]@4 [a#3,d4] ~ [a#3,e4]@3 ~ [g3,a#3,d4]@4 [f#3,a3,c#4]@8 ~@2 [f#3,a3,c#4,e4]!2 ~ [f#3,a3,c#4,e4] ~ [f#3,a3,c#4,e4] ~ [f#3,a3,b3,d4]@9 ~@2 d3@2 f#3@2 a3@2, g3@3 ~@13, a#3@3 ~@3 f4 ~@41]/3", // D A# A#dim Gm F#m F#m7 Bm7
  S: "[e3@4 [g3,b3,d4]@2 e3@4 [g3,b3,d4]@2 ~@2 [g3,a#3]@5 ~ c#4@2 a#3@2 g3@2 e3@3 ~@7 [a3,c#4,e4]!2 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~@2 [a3,c#4,e4] ~ [a3,c#4,e4] ~, ~@12 e3@8 ~@9 f#3@17 ~@2]/3", // G Gm A
  T: "~@3 g3@9 [b2,d#3,g3] ~@3, ~ [b2,d#3]@5 ~@2", // Baug B
  U: "[e3,g3,b3,d4]@3 ~ [g3,b3,d4] ~@3 [g3,b3]@2 [g3,b3]@2 ~@2 [e3,g3,a#3] ~, ~@8 e3@5 ~@3", // Em7 G Edim
  V: "[~@2 [e3,g3]@5 ~ [e3,g3]@6 ~ [d3,f#3,a3]@10 ~ [f#3,a3]@2 ~@2 [f#3,a3]@13 ~@5, ~@2 a#3@3 ~@3 a#3@7 ~@13 d3@15 ~@5]/3", // Em D F#m
  W: "[~@4 [e3,g#3,b3,d4]@4 e3 ~ [g#3,b3,d4,f#4] ~@3 [g#3,b3,d4,f#4]@10 ~ [g#3,b3,d4,f#4] ~ [g#3,b3,d4,f#4] [g#3,b3,d4,f#4]@2 [g#3,b3,d4,f#4] ~]/2", // E7 G#m7b5
  X: "[~@2 [a3,c4,e4,g4]@5 ~ [g#3,c4,d#4,f#4]@7 [g3,b3,f#4]@5 ~@2 [g3,b3,e4]@9 ~]/2", // Am7 G#7 Gmaj7 Em
  Y: "~@3 [a#3,d4,f4]@2 ~ [g3,a#3,d4,f4]@2 [g3,a#3,d4,f4]@2 ~ [g3,a#3,d4] ~ [g3,a#3,d4] ~@2, ~@2 g3@3 ~@11", // A# Gm7 Gm
  Z: "~@4 [g#3,d4,f#4] ~ [g#3,d4,f#4] ~ [g#3,d4,f#4] ~ [g#3,d4,f#4] ~@3 [g#3,b3,d4,f#4] ~, ~@4 b3@7 ~@5", // G#m7b5
  AA: "~@2 [g#3,b3,d4,f#4]@6 e3@2 [g#3,b3,d4,f#4]@5 ~", // G#m7b5
  AB: "~@4 [a#3,c#4] ~ [a#3,c#4] ~ [a#3,c#4] ~ [g3,a#3,c#4]@2 a#2 ~ [g3,a#3,c#4] ~, ~@2 g3@3 ~@3", // A#m Gdim
  AC: "~@6 a#2 ~@3 a#2 ~@5, ~@2 [g3,a#3,c#4]@13 ~", // Gdim
  AD: "a2@3 ~ [a3,c4,e4,g4]@2 [a3,c4,e4,g4] ~ [a3,c4,e4,g4] ~@2 [g3,c4,e4,g4] ~@2 [a3,c4,e4,g4]@2", // Am7 C Am7
  AE: "[~@2 [g3,c4,e4,g4] ~ [a3,c4,e4,g4] ~ [a3,c4,e4,g4] ~@2 [g#3,c4,d#4,f#4]@5 ~ [g3,b3,f#4]@5 ~ [g3,b3,e4]@11]/2", // C Am7 G#7 Gmaj7 Em
  AF: "~ g3@2 b3@2 [g3,d4]@2 [g3,b3,e4]@2 ~ [g3,d4]@2 ~ [g3,b3] ~@2", // G5 Em G5 G
  AG: "~@2 g3 ~ [g3,a#3,d4,f4] [a#3,d4,f4] ~ [g3,a#3,d4,f4] ~ [g3,a#3,d4,f4] ~@2 [a#3,d4,f4]@2 [a#3,d4,f4] ~, ~@11 g3@4 ~", // Gm7 A# Gm7 A#
  AH: "~@2 g3 ~ [g3,a#3,d4,f4] [a#3,d4,f4] ~ [g3,a#3,d4,f4] ~ [g3,a#3,d4,f4] ~@2 [a#3,d4,f4] ~ [g3,a#3,d4,f4] ~, ~@11 g3@2 ~@3", // Gm7 A# Gm7 A# Gm7
  AI: "~@2 f#3 ~ [f#3,a3,c#4,e4]!2 ~ [f#3,a3,c#4,e4] ~ [f#3,a3,c#4,e4] ~@2 [f#3,a3,c#4,e4,f4] ~@3", // F#m7
  AJ: "[b2,d#3]@10 [b2,d#3]@2 [b2,g3]@2 [d#3,g3] ~, g3@12 d#3 ~@3", // B Em D#
  AK: "[~@2 g#3 ~ [g#3,b3,d4,f#4] ~ g#3 ~ [g#3,b3,d4,f#4]@2 [g#3,b3,d4,f#4] ~ g#3 ~ [g#3,b3,d4,f#4]@4 [g#3,d4,f#4] ~@3 [g#3,b3]@4 [g#3,d4,f#4] ~@3 [g3,b3,d4]@4 [b3,d4] ~@3 [g3,b3,d4]@4 [g3,b3,d4] ~@3 [g3,a#3,c#4]@4 [a#3,c#4] ~@3 [g3,a#3,c#4]@3 ~ [g3,a#3,c#4] ~@5, ~@22 [d4,f#4]@3 ~@39]/4", // G#m7b5 G#m G#m7b5 G Bm G Gdim A#m …
  AL: "[g#3,f#4] ~ [g#3,f#4] ~ [g#3,b3,d4,f#4] ~@3 [g#3,b3,d4]@2 [g#3,f#4] ~@3 [e3,g#3,b3,d4] ~, [b3,d4]@4 ~@4 f#4 ~@7", // G#7 G#m7b5 G#dim G#7 E7 Bm
  AM: "~@2 [e3,g#3,b3,d4]@9 ~ [e3,g#3,b3,d4] ~@3", // E7
  AN: "[g3,a#3]@2 [g3,a#3] ~ [g3,a#3] ~ [e3,g3,a#3] ~ [e3,g3,a#3] ~ [e3,g3,a#3] ~@3 [e3,g3,a#3] ~, e3@5 ~@11", // Gm Edim
  AO: "[~ [g3,a#3]@11 e3 g3 a#3 a3@5 [c4,e4,g4]@2 ~@4 [c4,e4,g4] ~@3 g4@4 g4@3 ~ [a3,c4,e4,g4] ~@3 [g#3,c4,d#4,f#4]@6, ~ e3@9 ~@12 a3@15 ~@11, ~@30 [c4,e4]@7 ~@11]/3", // Gm C Am7 G#7 C
  AP: "[b3,f#4]@5 ~ [b3,e4]@8 g3@2, g3@7 ~", AQ: "b3@2 [g3,b3,e4]@2 ~@2 b3@3 ~ [g3,b3,e4]@4 ~@2, ~@4 g3@5 ~@7",
  AR: "[g3@2 ~@2 [a#3,d4,f4]@3 [g3,a#3,d4] g3 ~ [a#3,d4,f4]@2 ~@2 g3@4 g3 ~ [a#3,d4,f4] ~ g3 ~ [a#3,f#4]@2 g3 ~ [a#3,e4] ~ [f#3,a3,c4]@2]/2", // A# Gm A# D#m A#dim F#dim
  AS: "~@2 [f#3,a3,c#4]@6 ~@2 [f#3,a3,e4] ~ [f#3,c#4] ~ [f#3,a3,b3]@2", // F#m F#m7 F#5 B7
  AT: "~@2 [f#3,d4]@4 ~ [f#3,b3]@2 ~ [d3,f#3]@3 ~ [e3,g3]@2", // D B5 D Em
  AU: "[~@4 [g3,b3,d4]@2 e3 ~ [g3,b3,d4] ~ [g3,b3,d4]@2 e3 ~ [e3,g3,a#3]@8 e3 g3 a#3 c#4 a#3 g3 e3 ~ g3 f#3@5 [a3,c#4,e4]@2 f#3@4 [a3,c#4,e4] ~@3 [b2,d#3,g3]@12 ~@2 d#3@2 e3@6 [g3,b3,d4]@2 ~@4 [g3,b3,d4]@2 ~@3 [e3,g3,b3]@2 ~ [c#3,e3,g3,b3]@2 [e3,g3,b3] c#3 ~ g3 a#3@2 [c#3,a#3]@2 ~ [c#3,a#3]@2 ~ a3@12 d3 ~ a3 [d3,d4]@8 d3 [f#3,a3]@2 f#3 ~ d3 f#3 g3@2, ~@70 e3@6 ~@2 c#3@3 ~@5 c#3@4 ~@5 d3@10 ~@23, ~@87 e3@3 e3@3 ~@2 f#3@12 ~@2 f#3@10 ~@9]/8", // G Edim A Baug G Em C#m7b5 Em …
  AV: "[~@4 [a#3,d4]@2 ~@4 [a#3,d4]@3 ~ [d#3,g3,a#3,d4]@7 d#3 ~ [d#3,d4]@3 [d#3,g3,a#3,d4]@2 [d#3,g3,a#3,d4] ~@2 b3@5 [f#3,b3] ~@3 d3 ~ [d3,f#3,a#3,b3] ~@3 [d3,f#3,b3]@17 ~, ~@6 g3@6 ~@10 [g3,a#3]@3 ~@5 d3@8 ~@26, ~@30 f#3@5 ~@29]/4", // A# D#maj7 B5 Bm Gm
  AW: "[d3,f#3,b3] ~@15", AX: "[f#3,b3,e4] ~@15",
})).s("gm_acoustic_guitar_nylon").gain(0.38).pan(0.2)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  A@2 B@2 C@8 D@5 E B@2 F@6 G@8 H@4 B@2 C@8 D@5 E B@2 F@6 G@8 H@4 I@2 J@6 K L M@2 N@3 O P@2 Q@4 R@2 S T@3 U@4 V@2 W@3
  X@4 Y
>`.pickRestart({
  A: "[[a3,c#4,e4]@15 ~]/2", B: "[[b3,d4,f#4]@31 ~]/2",
  C: "[[a#3,c#4]@31 ~@17 g3@7 ~ g#3@7 ~@8 e4@26 ~@3 a4@9 ~ g4@3 ~ a4@9 g4@5, e4@28 f#4@7 ~@29, ~@31 a3@16 ~@16 g3@34 ~@31, ~@32 c4@31 ~ b3@33 ~@3 [a#3,d4]@26 ~@2]/8", // A#m A#
  D: "[~ [a3,e4]@14 ~@47 g4@18, f#4@8 b3@31 ~, ~ c#4@13 ~ [d#4,g4]@16 f#4@30 ~@19, ~@2 d4@3]/5", E: "[a#3,c#4,e4]@15 ~",
  F: "[[a#3,c#4,e4]@25 ~ c#4@2 ~ e4@2 ~@14 g4@10 [g#3,c4,f#4]@7 ~ [b3,f#4]@6 ~ [b3,e4]@23 ~@3, ~@31 a3@23 ~@8 g3@30 ~@4, ~@37 c4@18 ~@41, ~@7 e4@2 ~@7]/6", // A#dim G#7 B5 E5
  G: "[g4@10 ~@4 f#4@9 ~@10 a4@16 b4@10 a4@5 b4@15 a#4 ~@2 a#4@12 ~ [e4,f#4,a4]@16 [b3,d#4,g4]@16 ~, [a#4,d5]@31 ~ f#4@33 ~@14 c#4@31 ~@18, ~@24 e4@24 ~ d4@15 [e4,g4]@30 ~@34, ~@2 c#5 ~@5]/8", // F#m7 Baug A# Em
  H: "[[e4,g4,b4]@15 ~ b4@7 ~ [c#4,g4,a#4]@7 [d4,f#4,a4]@27 ~@6, ~@15 [c#4,e4,g4]@8 ~ e4@6 ~@34]/4", // Em Gdim D C#dim
  I: "[~@23 b4@9, ~@9 f#5@22 ~, ~@13 e5@19, ~@17 d5@14 ~]/2",
  J: "[~@26 g4@5 ~@2 c5@13 ~@2 e5@2 g5@7 g#4@6 ~@7 e5@24 ~@2, ~@3 a#4@27 ~@2 a4@13 ~ a4@10 ~@7 [g4,b4]@31 ~@2, ~@7 c#5@24 ~@16 c5@16 ~@33, ~@11 e5@35 ~@11 f#5@13 ~@26]/6", // G
  K: "~ d5@11 [a#4,d5,g5]@3 ~, [a#4,a5]@3 ~", L: "[a#4,a5]@7 [a#4,g5]@3 ~ [a#4,a5]@5, d5@7 ~",
  M: "[[a4,e5,f#5]@15 ~ b4@11 c5@4 ~, c#5@14 ~ [d#5,g5]@17]/2", // F#m7 D#
  N: "[[b4,d5,f#5]@27 e5@3 ~@6 e5@7 ~@2 e5@3, ~@15 g5@7 ~@2, ~@35 b4@9 ~@4]/3", O: "[a#4,g5]",
  P: "[[b4,d5,f#5]@23 ~ f#5@2 ~ d5@3 b4@2]/2", // Bm
  Q: "[~@16 g4@12 g4 g#4 ~@12 e5@3 g5@10 ~ [g#4,c5,f#5]@7 ~, a#4@26 ~@5 a4@24 ~@9, ~@16 e4@9 ~@13 c5@17 ~@9]/4", // G#7
  R: "[[g4,b4,f#5]@5 ~ [g4,b4,e5]@26]/2", S: "d5",
  T: "[~@3 f#5@7 ~@7 [a4,c#5]@15 [b4,d5]@10 [b4,d5]@6, ~@5 e5@11 ~@8, ~@17 f#5@26 ~@5]/3", // A Bm
  U: "[~ [b4,e5]@14 [e4,a#4]@16 [f#4,a4]@15 ~@4 c5@13 ~, ~ g4@29 ~ e4@13 ~@3 [b3,d#4]@15 ~@2, ~@31 b4 ~@17 g4@14 ~]/4", // E5 Edim F#m B
  V: "[~ [e4,g4,b4]@14 ~ e4@8 [c#4,a#4]@7 ~, ~@15 [c#4,g4]@8 ~@9]/2", W: "[[d4,f#4,a4]@28 ~ f#4@2 g4@14 a#4 d5@2]/3",
  X: "[~ d#5@14 d5@34 ~@15]/4", Y: "[f#4,b4,e5] ~@15",
})).s("gm_string_ensemble_2").gain(0.51).pan(0.9)

// drums · kick
const kick = s("bd").struct("<A B A@7 B A@7 B A@7 B A@19 B A@7 B A@7 B A@19 B A@7 B A@7 B A@15 B C@2>".pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x!2", C: "x",
})).gain(0.45)

// drums · rim
const rim = s("rim").struct(`<
  A B A C A C A C A B A C A C A C A B A C A C A C A B A C A C A C A D A C A D A C A C A C A B A C A C A C A B A C A C A
  C A B A C A C A C A D A C A D A C A C A C A B A C A C A C A B A C A C A C A B A C A C A C A D A C A C A C A B ~@2
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~", B: "~@2 x ~ x!2 ~@2 x ~@7", C: "~@2 x ~@2 x ~@2", D: "~ x ~ x!2 ~ x ~",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@114 x!2>").gain(0.4)

// drums · low tom
const low_tom = s("lt").struct("<~ A ~@7 A ~@7 A ~@7 A ~@19 A ~@7 A ~@7 A ~@19 A ~@7 A ~@7 A ~@15 A ~@2>".pickRestart({
  A: "~@6 x!2",
})).gain(0.35)

// drums · hihat
const hihat = s("hh").struct(`<
  A B A@7 B A@7 B A@7 B A@7 ~ A@3 ~ A@7 B A@7 B A@7 B A@7 ~ A@3 ~ A@7 B A@7 B A@7 B A@7 ~ A@7 B ~@2
>`.pickRestart({
  A: "x!8", B: "x",
})).gain(0.45)

// drums · mid tom
const mid_tom = s("mt").struct("<~ A ~@7 A ~@7 A ~@7 A ~@19 A ~@7 A ~@7 A ~@19 A ~@7 A ~@7 A ~@15 A ~@2>".pickRestart({
  A: "~@8 x!4 ~@4",
})).gain(0.35)

// drums · high tom
const high_tom = s("ht").struct("<~ A ~@7 A ~@7 A ~@7 A ~@19 A ~@7 A ~@7 A ~@19 A ~@7 A ~@7 A ~@15 A B ~>".pickRestart({
  A: "~@4 x!4 ~@4 x!4", B: "~@11 x!2 ~@3",
})).gain(0.4)

// drums · ride bell
const ride_bell = s("rd").struct("<~@33 A ~@3 A ~@31 A ~@3 A ~@31 A ~@10>".pickRestart({
  A: "~@3 x",
})).gain(0.3)

// drums · vibraslap
const vibraslap = s("vibraslap:0").struct(`<
  ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@15 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@15 A ~ A ~ A ~@3 A ~ A ~ A ~@3
  A ~ A ~ A ~@13 A ~ A ~@4
>`.pickRestart({
  A: "~@5 x ~@2",
})).gain(5.25)

// drums · woodblocks
const woodblocks = s("woodblock:5").struct("<~@115 x>").gain(0.5)

stack(
  bass, bass_soft, acoustic_guitar_nylon, string_ensemble_2, kick, rim, snare, low_tom, hihat, mid_tom, high_tom,
  ride_bell, vibraslap, woodblocks
)

More by Jobim Antonio Carlos