Strudelify
Night Birds cover art

Night Birds

Night Birds

Shakatak

KeyC minorTempo116 bpm
0:00/0:00
// Night Birds — Shakatak
// 116 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 153 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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.

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A@2 B@2 C D E F G H I J K L M N G H I J K L M O P Q R S T U V W G H I J K L M O P Q R S T U V O P Q R S T U V W X@2
  Y@2 Z AA AB AC G H I J K L M N G H I J K L M O P Q R S T U V O P Q R S T U V W G H I J K L M O P Q R S T U V O P Q R S
  T U V O P Q R S T U V W ~@16 X@2 Y@2 Z AA AB AC ~
>`.pickRestart({
  A: "[~ bb4@14 ~ [eb4,a4]@16, [c3,c4,eb4]@15 [c3,c4]@16 ~]/2", // Ebdim Cm C
  B: "[~ ab4@14 ~ [eb4,g4]@15 ~, [c3,c4,eb4]@15 [c3,c4]@16 ~]/2", C: "[ab3,c4,eb4,g4]@15 ~", D: "[f3,c4,eb4,ab4]@15 ~",
  E: "[d3,c4,f4,ab4]@7 ~ [g3,c4,d4,f4,g4]@8", F: "[c3,c4,eb4,g4] ~@7", G: "[c3,bb3,eb4,g4]@12 ~ [c3,bb3,f4,a4] ~@2",
  H: "[c3,bb3,eb4,g4]@15 ~", I: "[ab2,c4,eb4,g4]@12 ~ [ab2,c4,d4,f4] ~@2", J: "[ab2,c4,eb4,g4]@15 ~",
  K: "[f2,ab3,c4,eb4,f4]@15 ~", L: "[d3,a3,c4,f4]@15 ~", M: "[c3,bb3,c4,eb4,g4]@13 [c3,bb3,c4,eb4,ab4] ~@2",
  N: "[c3,bb3,c4,eb4,g4]@15 ~", O: "[c3,bb3,e4,g4]@7 ~", P: "[f3,ab3,c4,eb4,g4]@15 ~", Q: "[bb2,ab3,d4,f4]@15 ~",
  R: "[eb3,g3,bb3,d4,f4]@15 ~", S: "[ab2,g3,c4,eb4]@15 ~", T: "[d3,ab3,c4,eb4]@15 ~",
  U: "[f2,ab3,c4]@8 [g2,b3]@7 ~, [f3,d4]@15 ~", V: "[c3,eb3,g3,c4]@3 ~", W: "[c3,eb4,g4] ~@15, c5 ~@7",
  X: "[[ab2,ab3,c4,eb4,g4]@3 [ab2,ab3,c4,eb4,g4] ~@11 [eb3,g3,bb3,d4]@15 ~@2]/2", // Abmaj7 Ebmaj7
  Y: "[[ab2,ab3,c4,eb4,g4]@2 ~ [ab2,ab3,c4,eb4,g4] ~@11 [eb3,g3,bb3,d4]@14 ~@3]/2", Z: "[ab2,ab3,c4,eb4,g4]@15 ~",
  AA: "[g2,g3,bb3,d4,g4]@7 ~", AB: "[f2,f3,ab3,c4,f4]@3 ~", AC: "[g2,g3,bb3,d4,g4] ~@15",
})).s("gm_piano").gain(0.56)

// other · piano · "A.PIANO 1"
const piano_2 = note("<~@56 A@2 B@2 C D E F ~@80 A@2 B@2 C D E G ~>".pickRestart({
  A: "[g5@3 g5 ~@8 bb5 ~ eb5 d5@12 ~ c5 d5 eb5 f5]/2", B: "[g5@2 ~ g5 ~@6 c6 bb5 ~@2 eb5 d5@12 ~ c5 d5 ~@2]/2",
  C: "g5@10 c6@3 d6@3", D: "bb5@10 c6@3 d6@2 ~", E: "eb6@10 d6@3 c6@3", F: "g6 ~@3", G: "g6 ~@7",
})).s("gm_piano").gain(0.48)

// other · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<~@59 [~@14 eb5 f5] ~@87 [~@14 eb5 f5] ~@5>").s("gm_piano").gain(0.32)

// chords · piano · "A.PIANO 1"
const piano_3 = note(`<
  A B C D E F G H I J K J L M N O I J K J L M N P Q R S T Q U T V I J K J L M N P Q R S T Q U T P Q R S T Q U T V W@2
  X@2 Y Z AA AB I J K J L M N O I J K J L M N P Q R S T Q U T P Q R S T Q U T V I J K J L M N P Q R S T Q U T P Q R S T
  Q U T P Q R S T Q U T V ~@16 W@2 X@2 Y Z AA AC ~
>`.pickRestart({
  A: "~@3 [eb4,g4,bb4,c5] ~ eb4 [eb4,g4,bb4,c5]@3 [eb4,g4,bb4,c5] ~@2 [eb4,g4,bb4,c5] ~ [eb4,g4,bb4,c5] ~", // Cm7
  B: "[eb4,g4,a4,c5]@2 ~ [eb4,g4,a4,c5] ~ eb4 [eb4,g4,a4,c5]@2 ~ [eb4,g4,a4,c5] ~ [eb4,c5] [eb4,g4,a4,c5] ~ [eb4,g4,a4,c5] ~", // Am7b5 Cm Am7b5
  C: "[eb4,ab4,c5]@2 ~ [eb4,ab4,c5] ~@2 [eb4,ab4,c5]@3 [eb4,ab4,c5] ~ [eb4,c5] [eb4,ab4,c5] ~ [eb4,ab4,c5] ~", // Ab Cm Ab
  D: "[eb4,g4,c5]@2 ~ [eb4,g4,c5] ~ [eb4,c5] [eb4,g4,c5]@3 [eb4,g4,c5] ~ eb4 [eb4,g4,c5] ~ [eb4,g4,c5] ~", // Cm
  E: "[eb4,g4,c5]@2 ~ [eb4,g4,c5] ~ [eb4,c5] [eb4,g4,c5]@2 ~ [eb4,g4,c5] ~@2 [eb4,g4,c5] ~ [eb4,g4,c5] ~", // Cm
  F: "[eb4,ab4,c5]@2 ~ [eb4,ab4,c5] ~ eb4 [eb4,ab4,c5]@2 ~ [eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~ [eb4,ab4,c5] ~", // Ab
  G: "[d4,f4,ab4,c5]@2 ~ [d4,f4,ab4,c5] ~ [d4,f4,ab4,c5] [d4,f4,g4,c5]@2 ~ [d4,f4,g4,c5] ~ g4 [d4,f4,g4,c5] ~ [d4,f4,g4,c5] ~, ~@6 d5 ~@9", // Dm7b5 Dm7
  H: "[eb4,g4,c5] ~@15", // Cm
  I: "[eb4,g4,bb4,c5]@2 ~ [eb4,g4,c5] ~ eb4 [eb4,g4,c5] ~@2 [eb4,g4,c5] ~@2 [eb4,g4,c5] ~ [eb4,g4,c5] ~", // Cm7 Cm
  J: "[eb4,g4,c5]@2 ~ [eb4,g4,c5] ~ [eb4,c5] [eb4,g4,c5] ~@2 [eb4,g4,c5] ~@2 [eb4,g4,c5] ~ [eb4,g4,c5] ~", // Cm
  K: "[eb4,g4,c5]@2 ~ [eb4,g4,c5] ~ [eb4,g4,c5]!2 ~@2 [eb4,g4,c5] ~@2 [eb4,g4,c5] ~ [eb4,g4,c5] ~", // Cm
  L: "[eb4,ab4,c5]@2 ~ [eb4,ab4,c5] ~ c5 [eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~ [eb4,ab4,c5] ~", // Ab
  M: "[d4,ab4,c5]@2 ~ [d4,ab4,c5] ~@2 [d4,ab4,c5]@2 ~ [ab4,c5]@2 ~ [d4,ab4,c5] ~ [d4,ab4,c5] ~, ~@9 d4 ~@6", // Dm7b5 Ab Dm7b5
  N: "[eb4,g4,c5]@2 ~ [eb4,g4,c5] ~@2 [eb4,g4,c5] ~@2 [eb4,g4,c5] ~ g4 [eb4,g4,c5] ~ [eb4,g4,c5] ~", // Cm
  O: "[eb4,g4,c5]@2 ~ [eb4,g4,c5] ~@2 [eb4,g4,c5]@2 ~ [g4,c5]@2 g4 [eb4,g4] g4 [eb4,g4,c5] ~, ~@9 eb4 ~ c5@2 ~@3", // Cm C5 Eb Cm
  P: "[e4,g4,bb4,c5]@2 ~ [e4,g4,bb4,c5] ~@2 [e4,g4,bb4,c5]@2 ~ [e4,g4,bb4,c5] ~@2 [e4,g4,bb4,c5]!2 ~@2", // C7
  Q: "~@2 [ab3,c4,eb4,f4] ~@2 [ab3,c4,eb4,f4] ~@2 [ab3,c4,eb4,f4] ~@2 [ab3,c4,eb4,f4] ~@2 [ab3,c4,eb4,f4] ~", // Fm7
  R: "~@2 [ab3,d4,f4] ~@2 [ab3,d4,f4] ~@2 [ab3,d4,f4] ~@2 [ab3,d4,f4] ~@2 [ab3,d4,f4] ~", // Ddim
  S: "~@2 [g3,bb3,d4,f4] ~@2 [g3,bb3,d4,f4] ~@2 [g3,bb3,d4,f4] ~@2 [g3,bb3,d4,f4] ~@2 [g3,bb3,d4,f4] ~", // Gm7
  T: "~@2 [g3,c4,eb4] ~@2 [g3,c4,eb4] ~@2 [g3,c4,eb4] ~@2 [g3,c4,eb4] ~@2 [g3,c4,eb4] ~", // Cm
  U: "~@2 [ab3,c4,f4] ~@2 [ab3,c4,f4] ~@2 [ab3,c4,f4] ~@2 [ab3,c4,f4] ~@2 [ab3,c4,f4] ~", V: "[g3,c4,eb4] ~@15",
  W: "[[c4,eb4,g4]@2 ~ [c4,eb4,g4] ~@11 [g3,bb3,d4]@14 ~@3]/2", // Cm Gm
  X: "[[c4,eb4,g4]@3 [c4,eb4,g4] ~@11 [g3,bb3,d4]@14 ~@3]/2", // Cm Gm
  Y: "[c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@3 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2", // Cm
  Z: "[bb3,d4,g4] ~@2 [bb3,d4,g4] ~@2 [bb3,d4,g4] ~@2 [bb3,d4,g4] ~@2 [bb3,d4,g4] ~ [bb3,d4,g4] ~", // Gm
  AA: "[ab3,c4,f4] ~@2 [ab3,c4,f4] ~@2 [ab3,c4,f4] ~@2 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@2", AB: "[bb3,d4,g4] ~@15",
  AC: "[bb3,d4,g4]@15 ~", // Gm
})).s("gm_piano").gain(0.48)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft_2 = note(`<
  A B C ~ D E F ~ G H I J K L M N G H I J K L M ~@9 G H I J K L M ~@25 G H I J K L M N G H I J K L M ~@17 G H I J K L M
  ~@50
>`.pickRestart({
  A: "~@3 db5 ~@7 eb4 ~@4", B: "~@9 ab4 ~ a4 ~ [eb4,c5] ~@2", C: "~@3 b4 ~ eb4 ~@10", D: "~@11 [eb4,c5] ~@4",
  E: "~@11 [eb4,ab4,c5] ~@4", F: "~@11 d4 ~@4", G: "~@5 [g4,c5] ~@5 [eb4,c5] ~@4", H: "~@5 g4 ~@5 [eb4,g4] ~@2 db5 ~",
  I: "~@11 eb4 ~@2 db5 ~", J: "~@5 g4 ~@5 eb4 ~@4", K: "~@5 eb4 ~@5 eb4 ~@4", L: "~@5 d4 ~@5 [d4,ab4,c5] ~@4",
  M: "~@11 eb4 ~@4", N: "~@5 [eb4,g4,c5] ~@5 eb4 ~ [eb4,c5] ~@2",
})).s("gm_piano").gain(0.08)

// other · piano · "A.PIANO 1"
const piano_4 = note(`<
  ~@23 A B@2 C@2 D E@2 ~@8 A B@2 C@2 D F@3 B@2 C@2 D E@2 ~@48 A B@2 C@2 D F@3 B@2 C@2 D G@3 ~@33
>`.pickRestart({
  A: "~@8 c4@2 b3 c4@3 bb4@2", B: "[ab4@23 ~ c4@2 bb3 c4@3 ab4@2]/2", C: "[g4@24 c4@2 bb3 c4@3 g4@2]/2",
  D: "f4@3 [eb4,g4]", E: "[[d4,f4]@8 f4@2 g4@2 eb4@2 d4 c4@17]/2",
  F: "[[d4,f4]@8 f4@2 g4@2 eb4@2 d4 c4@21 ~@4 c4@2 b3 c4@3 bb4@2]/3", G: "[[d4,f4]@8 f4@2 g4@2 eb4@2 d4 c4@21 ~@12]/3",
})).s("gm_piano").gain(0.48)

// bass · piano · "A.PIANO 1"
const bass = note(`<
  A B C D E F G H I J K L M N O P I J K L M N O Q R S T U V W X H I J K L M N O Q R S T U V W X Q R S T U V W X H Y@2
  Z@2 AA AB AC AD I J K L M N O P I J K L M N O Q R S T U V W X Q R S T U V W X H I J K L M N O Q R S T U V W X Q R S T
  U V W X Q R S T U V W X H ~@16 Y@2 Z@2 AA AB AC AE AF
>`.pickRestart({
  A: "c2@3 g1 ~ bb1 ~@2 c2@4 ~@2 g1 ~", B: "c2@2 ~ g1 ~ bb1 ~@2 c2@2 ~ eb2@2 ~@3", C: "c2@3 g1 ~ bb1 ~@2 c2@5 ~ g1 ~",
  D: "c2@3 g1 ~ bb1 ~@2 c2@3 ~ bb1@3 ~", E: "ab1@4 ~@2 ab1 ~ ab1@5 ~ g1 ~", F: "f1@4 ~@2 f1 ~ f1@6 ~@2",
  G: "d1@7 ~ g1@8", H: "c2 ~@15", I: "c2@2 ~ g1 ~ g1 bb1 ~ c2@4 ~ g1 bb1 ~", J: "c2@2 ~ g1 ~ g1 bb1 ~ c2@4 ~ c2 bb1 ~",
  K: "ab1@2 ~ eb1 ~ eb1 f1 ~ ab1@4 ~ ab1 eb1 ~", L: "ab1@2 ~ eb1 ~ eb1 f1 ~ ab1@5 ~ g1 ~",
  M: "f1@2 ~ f1 ~@2 f1@6 ~ c2 f2 ~", N: "d2@3 d2 ~@2 d2@7 ~ d2 db2", O: "c2@2 ~ g1 ~ g1 bb1 ~ c2@3 ~@2 c2 bb1 ~",
  P: "c2@3 g1 ~ g1 bb1 ~ c2@4 ~ c2 bb1 ~", Q: "c2@2 ~ g1 ~ g1 a1 ~ c2@4 ~@2 c2 ~",
  R: "f2@2 ~ f2 ~ f2!2 ~ f2 ~@4 eb2 f2 ~", S: "bb1@2 ~ bb1 ~ bb1!2 ~ bb1 ~@4 bb1 d2 ~",
  T: "eb2@2 ~ eb2 ~ eb2!2 ~ eb2 ~@4 d2 eb2 ~", U: "ab1@2 ~ ab1 ~ ab1!2 ~ ab1 ~@5 c2 db2",
  V: "d2@2 ~ d2 ~ db2 d2 ~ d2 ~@4 db2 d2 ~", W: "f1@2 ~ f1 ~ f1 gb1 ~ g1@2 ~ g1 ~ g1 b1 ~",
  X: "c2@2 ~ c2 ~ c2!2 ~ c2@2 ~ c2 ~ c2!2 ~", Y: "[ab1@2 ~ ab1 ~@10 d2 eb2@13 ~@2 d2 eb2]/2",
  Z: "[ab1@2 ~ ab1 ~@10 d2 eb2@14 ~ d2 eb2]/2", AA: "ab1@2 ~ ab1 ~@2 ab1@7 ~ eb2 ab2", AB: "g1@2 ~ g1 ~@2 g1@7 ~ g2 d2",
  AC: "f1@3 f1 ~@2 f1@8 c2 f2", AD: "g1 ~@7", AE: "~ g1@14 ~", AF: "c2 ~@7",
})).s("gm_piano").gain(0.56)

// chords · piano · "A.PIANO 1"
const piano_5 = note(`<
  ~@8 A B A B A B A B A B A B A B A C D E F G H I J K A B A B A B A C D E F G H I J L D E F G H I J K M@4 N O P Q A B A
  B A B A B A B A B A B A C D E F G H I J L D E F G H I J K A B A B A B A C D E F G H I J L D E F G H I J L D E F G H I
  J K ~@16 M@4 N O P R ~
>`.pickRestart({
  A: "~@2 c4 ~@2 c4 f4 eb4@3 c4 ~ bb3 c4 ~@2", B: "~@2 c4 ~@2 c4 f4 eb4@3 c4 ~@5",
  C: "c4@2 ~ c4 ~@2 c4 ~@2 c4 ~@2 e4@3 ~",
  D: "[c5,eb5,f5] ~ [c5,eb5,f5]@2 ~ [c5,eb5,f5] ~@2 [c5,eb5] ~@2 [c5,eb5,f5] ~ [c5,eb5,f5] ~@2", // F7 Cm F7
  E: "[d5,f5]@2 [ab4,d5]@2 ~ [ab4,d5,f5] ~@2 [d5,f5] d5!2 [ab4,d5,f5] ~ [ab4,d5] ~@2, ab4 ~ f5 ~@10 f5@2 ~", // Dm Abdim Ddim Dm Ddim Abdim
  F: "[g4,bb4] ~ [bb4,d5]@2 ~ [g4,bb4,d5] ~@2 [g4,bb4,d5] [bb4,d5] bb4 [g4,bb4,d5] ~ [bb4,d5] ~@2, d5 ~@7", // Gm Bb Gm Bb Gm Bb
  G: "[eb5,g5]@2 [c5,eb5,g5]@2 ~ [c5,eb5,g5] ~@2 [c5,eb5,g5] ~ c5 [c5,eb5,g5] ~ [c5,eb5,g5] ~@2, c5 ~@15", // Eb Cm
  H: "[c5,f5]@2 [c5,eb5,f5]@2 ~ [c5,eb5,f5] ~@2 [c5,eb5] [eb5,f5] eb5 [c5,eb5,f5] ~ [c5,eb5,f5] ~@2", // F5 F7 Cm Ebsus2 F7
  I: "[c5,f5]@2 [c5,f5] ~@2 [ab4,c5,f5] ~@2 c5 ~ [c5,f5] [ab4,c5,f5] ~ [ab4,c5] ~@2, ab4 ~@12 f5@2 ~", // F5 Fm F5 Fm Ab
  J: "eb5@2 [c5,eb5]@2 ~@2 [g4,c5,eb5] ~ [c5,eb5] eb5 [c5,eb5] [g4,c5,eb5] ~ [g4,c5,eb5] ~@2, c5 ~ g4 ~@13", // Cm
  K: "[g4,c5,eb5] ~@15", L: "c4@2 ~@4 c4 ~@2 c4 ~@2 e4@3 ~", M: "[[c5,eb5,g5]@14 ~ [g4,bb4,d5]@16 ~]/2",
  N: "[c5,eb5,g5]@2 ~ [c5,eb5,g5] ~@2 [c5,eb5,g5] ~@2 [c5,eb5,g5] ~ eb5 [c5,eb5,g5] eb5 ~@2", // Cm
  O: "[bb4,d5,g5] ~ [bb4,d5,g5] ~@4 [bb4,d5] g5 ~ [bb4,d5,g5] ~@2 [bb4,g5] [bb4,d5,g5] ~", // Gm Bb Gm Eb Gm
  P: "[ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~@2 [c5,f5] ~ [ab4,c5,f5] ~ [c5,f5]!2 c5 [c5,f5] ~", // Fm F5 Fm F5
  Q: "[bb4,d5,g5] ~@15", R: "[bb4,d5,g5]@15 ~",
})).s("gm_piano").gain(0.16)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft_3 = note(`<
  ~@24 A B C D E F G ~@9 A B C D E F G H A B C D E F G ~@5 I J K ~@17 A B C D E F G H A B C D E F G ~@9 A B C D E F G H
  A B C D E F G H A B C D E F G ~@21 I J K ~@2
>`.pickRestart({
  A: "~@8 f5 [c5,eb5,f5]!2 ~@4 [c5,eb5]", B: "~@7 ab4!2 [ab4,f5]!2 ~@4 ab4", C: "~@2 g4 ~@6 g4 [g4,d5] ~@2 g4 ~ g4",
  D: "~@9 [c5,eb5,g5] [eb5,g5] ~@4 c5", E: "eb5@2 ~@6 f5 c5 [c5,f5] ~@5", F: "~@2 ab4 ~@5 [ab4,f5] [ab4,c5,f5] ab4 ~@5",
  G: "g4 ~@4 g4 ~@2 g4 [g4,c5] g4 ~@4 g4", H: "~@3 c4 ~@12", I: "~@5 c5 ~@5 [c5,g5] ~ [c5,g5] [eb5,g5] g5",
  J: "~@4 [bb4,d5,g5] ~@8 d5 ~@2", K: "~@5 [ab4,c5,f5] [c5,f5] ab4 ~@3 ab4!2 [ab4,f5] ab4 ~",
})).s("gm_piano").gain(0.08)

// other · piano · "A.PIANO 1"
const piano_6 = note("<~@63 A B C D E F G H I J K L M N O P Q ~@73>".pickRestart({
  A: "~@4 c5@11 ~", B: "~ c4 eb4 ~ eb4 ~@2 eb4 ~ c4 ~@2 c4 ~@3", C: "~@2 eb4 ~ eb4 ~ eb4 ~ eb4@2 c4!2 ~@4",
  D: "~@2 eb4 ~ eb4 ~@2 g4 ~@2 eb4 ~@2 g4 ~@2", E: "eb4 ~@2 g4 ~ c4 eb4 ~@2 g4 ~@2 c5 ~ c5 ~",
  F: "c5@2 bb4 ~ g4 ~ bb4 ~ g4 bb4 ~ eb4 ~@4", G: "~ c4 d4 eb4 ~@2 d4 eb4 ~ d4 ~ c4 ~ bb3 ~@2",
  H: "bb3 c4 g3 ~ g3 ~@4 c4 d4 eb4 f4 g4 ~@2", I: "g4 ~ c4 ~ c4 ~@8 eb4 ~ c4",
  J: "eb4 ~@2 eb4 ~@2 eb4@2 ~ eb4 ~ c4 eb4 ~ g4 ~", K: "eb4@2 c4 ~ c4 ~@4 bb3 ~ c4 ~ g3 ~ g3",
  L: "~@6 bb4 ~ bb4 ~@2 g4 ~@2 bb4 ~", M: "~ g4 ~@2 g4 bb4 ~@2 c5@2 bb4 ~ g4 bb4 ~@2",
  N: "~ c4 d4 eb4 ~ c4 d4 eb4 ~ c4 d4 eb4 ~ g4 ~@2", O: "g4@2 f4 ~ f4 ~ eb4 ~ eb4 ~ d4 ~ d4 ~ d4 c4, ~@13 eb4@2 ~",
  P: "~@9 c4 ~@2 c4 ~ g4 ~", Q: "~ c4 ~@2 c4@2 g4 ~ c5@2 g4 ~ g4@2 c5 ~",
})).s("gm_piano").gain(0.72)

// other · piano · "A.PIANO 1" · soft notes
const piano_soft_4 = note("<~@65 [~ c4 ~@14] [~@2 c4 ~@6 c4 ~@5 c4] ~@2 [~@5 c4 ~@10] ~@2 [~@6 c4 ~@9] ~@80>")
  .s("gm_piano").gain(0.48)

// other · piano · "A.PIANO 1"
const piano_7 = note("<A@2 B C D E F G ~@145>".pickRestart({
  A: "[c6@29 ~ bb5 ab5]/2", B: "g5@12 ~ ab5 g5 f5", C: "g5@3 eb5@2 ~ c5@7 d5 eb5 f5", D: "g5@10 f5@3 eb5@2 ~",
  E: "c5@13 ~ eb5@2", F: "f5@9 ~ g5@2 eb5@2 d5@2", G: "c5 ~@7",
})).s("gm_piano").gain(0.48)

// drums · kick
const kick = s("bd").struct(`<
  A@7 B A@23 B A@23 B A@7 B A@31 B A@31 B A C A D A E A D A E A D A E A F A@8 B
>`.pickRestart({
  A: "x!4", B: "x", C: "x ~@3 x ~@3 x ~@3 x ~@2 x", D: "x ~@3 x ~@3 x ~@3 x!2 ~@2", E: "x ~@3 x ~@3 x ~@2 x!2 ~@3",
  F: "x!2 ~@2 x ~@3 x!2 ~@2 x ~@3",
})).gain(0.56)

// drums · snare
const snare = s("sd").struct("<~@8 A@23 B A@23 B ~ A ~ A@4 ~ A@31 B A@31 B A@15 C ~ A ~ A@4 ~@2>".pickRestart({
  A: "~ x ~ x", B: "x", C: "~@4 x ~@3 x!8",
})).gain(0.64)

// drums · clap
const clap = s("cp").struct("<~@128 [~ x ~ x]!15 [~@4 x ~@7 x ~ x!2] ~@9>").gain(0.8)

// drums · low tom
const low_tom = s("lt").struct("<[~@5 x ~@2]!6 [~@5 x ~ x] x ~@145>").gain(0.48)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@6 [~@12 x!3 ~] ~@146>").gain(0.4)

// … 59 more lines

More by Shakatak