Strudelify

Sincerita

Cocciante

KeyD minorTempo68 bpm
0:00/0:00
// Sincerita — Cocciante
// 68 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 60 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(68/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 · fretless bass
const bass = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W H X Y Z AA AB AC AD AE AF AG AH AI AJ O AK AL AM AN AO AP AQ AR AS AT AU
  AV AW AX AY AZ BA BB BC BD@3
>`.pickRestart({
  A: "d1", B: "d2!2 ~@5 d2 bb1!2 ~@4 bb2 bb1", C: "g1!2 ~@5 g1 a1!2 ~ a1 ~ a1 a2 a1",
  D: "d2!2 ~@4 d3 d2 bb1!2 ~@3 bb2 ~ bb1", E: "g1!2 ~@4 bb1 g1 a1!2 ~@3 a1 db2 a1", F: "d2!2 ~@5 d2 a1!2 ~ a1 ~@3 a1",
  G: "d2!2 ~@3 d2 ~ d2 g1!2 ~ g1 ~ g1 bb1 g1", H: "c2!2 ~@5 c2 bb1!2 ~ bb1 ~@3 bb1",
  I: "a1!2 ~@2 a1!2 a2 a1 d2!2 ~@5 d2", J: "a1!2 ~ a1 ~@3 a1 d2!2 ~ d2 ~@3 [d2,e2]", K: "g1!2 ~@5 g1 c2!2 ~@5 c2",
  L: "bb1@2 ~ bb1 ~@4 a1!2 ~ a1 ~@2 a1@2", M: "f1@3 ~ a1@3 ~ bb1@4 ~ d2 f1 g1",
  N: "a1@3 a1 db2@2 ~ db2 d2@3 d3 c3 a2 f2 d2", O: "f1@2 ~ f1 a1@2 ~ a1 bb1@4 ~ d2 f1 g1",
  P: "a1@2 ~ a1 db2@2 ~@2 d2!2 ~@5 c2, g1 ~@15", Q: "bb1@2 ~@5 a1 g1!2 ~ g1 ~ g2 g1 ab1",
  R: "a1!2 ~@3 a1 db2 a1 d2!2 ~@5 d2", S: "a1!2 ~ a1 ~@2 a2 a1 d2!2 ~@3 d2 d1@2", T: "g1!2 ~@3 bb1 g1 bb1 c2!2 ~@5 c2",
  U: "[bb1,b1] bb1 ~ bb1 ~@3 bb1 a1!2 ~ a1 a2 a1 db2 a1", V: "d2!2 ~@3 d2 a1 f1 a1!2 ~@5 a1",
  W: "d2!2 ~@3 d1 gb1 d1 g1!2 ~@4 bb1 g1", X: "a1 [g1,a1] ~ a1@2 a2 db2 a1 f1@2 ~ f1 a1@2 ~ a1",
  Y: "bb1@4 ~ d2 f1 g1 a1@3 a1 db2@2 ~ db2", Z: "d2@2 a2 e2 f2 d2 ~ [g1,a1] f1@3 f1 a1@2 ~ a1",
  AA: "bb1@6 f1 g1 a1@2 ~ a1 db2@2 ~ db2", AB: "d2!2 ~@5 c2 bb1!2 ~@4 g1 a1",
  AC: "g1!2 ~@5 [g1,ab1] a1!2 ~ a1 db2!2 ~@2", AD: "d2!2 ~@5 d2 a1!2 ~ a1 ~@2 a2 a1",
  AE: "d2!2 ~@3 d2 d1@2 g1!2 ~@3 bb1 g1 bb1", AF: "c2!2 ~@5 c2 [bb1,b1] bb1 ~ bb1 ~@3 bb1",
  AG: "a1!2 ~ a1 a2 a1 db2 a1 d2!2 ~@3 d2 a1 f1", AH: "a1!2 ~@5 a1 d2!2 ~@3 d1 gb1 d1",
  AI: "g1!2 ~@4 bb1 g1 c2!2 ~@5 c2", AJ: "bb1!2 ~ bb1 ~@3 bb1 a1 [g1,a1] ~ a1@2 a2 db2 a1",
  AK: "a1@3 a1 db2@2 ~ db2 d2@2 a2 e2 f2 d2 ~ [g1,a1]", AL: "f1@3 f1 a1@2 ~ a1 bb1@6 f1 g1",
  AM: "a1@2 ~ a1 db2@2 ~ db2 d2!2 ~@4 d2 c2", AN: "bb1!2 ~@5 bb1 a1!2 ~@5 a1", AO: "d2!2 ~ d2 d1@3 ~ g1!2 ~@5 g1",
  AP: "d2!2 ~@5 a1 g1!2 ~@3 f2 ~ b1", AQ: "c2!2 ~@3 c2 g1 c2 f1!2 ~@5 f1",
  AR: "eb1!2 ~@5 eb1 d1!2 ~ gb1 ~ a1 ~ [gb1,g1]", AS: "g1!2 ~@5 g1 d2!2 ~@5 d2",
  AT: "g1!2 ~@3 g1 b1 g1 c2!2 ~@3 c3 c2 b1", AU: "f1!2 ~@5 f1 eb1!2 ~@5 eb1",
  AV: "d1!2 ~ d1 gb1 d1 gb1 a1 bb1@3 ~ d2@4", AW: "eb2 eb1 d1 gb1", AX: "g1@3 g2 db2 d2 bb1 g1 bb1@4 d2@3 ~",
  AY: "eb2 g1 eb1@2 d1@2 gb1@2, db2 ~@15", AZ: "g1@4 bb1@3 ~ bb1@4 d2@3 ~", BA: "eb2@4 g1@2 eb1@2 d1@4 gb1@3 ~",
  BB: "g1!2 ~ g1!2 ~@2 g1!3 ~ g1!3 ~ g1", BC: "g1!2 ~ g1!3 ~ g1!3 ~ g1!3 ~ g2", BD: "[g1@11 ~@5]/3",
})).s("gm_fretless_bass").gain(0.33)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  A@2 B C D@2 ~@9 E F G ~@6 H@2 I@2 J@3 ~@6 K L@2 M@2 N ~@3 O P Q R@2 S@4 T@4 ~
>`.pickRestart({
  A: "[d2@3 bb2]/2", B: "g2 a2", C: "d3 bb2", D: "[g2@2 a2@3 ~@3]/2", E: "~ d3", F: "bb2 g2", G: "a2 ~",
  H: "[~@3 eb4 ~ bb3 [g3,db4,e4]@2, ~ f4@2 ~, ~@2 a3@3 ~@3, ~@2 d4 ~]/2", // Dbdim
  I: "[[f3,d4]@4 ~@2 eb4@2 [bb3,d4]@4 ~@3 a3, ~ f4@2 ~, ~ a3 ~ [g3,db4,e4]]/2", J: "[d4@3 ~]/3", K: "[c4,a4] [d4,bb4]",
  L: "[db4@2 [d4,f4]@2 ~ eb4 [d4,f4,bb4]@2, a4@3 ~, ~@2 [c4,f4] ~]/2", M: "[~ e4 d4@4 db4@2, [db4,a4] ~@3]/2", N: "d4",
  O: "[g3,g4] [gb3,gb4]", P: "[g3,g4] [f3,f4] [eb3,eb4]@2", Q: "[f3,f4] [eb3,eb4]",
  R: "[d3@4 ~@3 ab4 eb4@4 [a3,gb4,a4]@4, d4 ~, ~ [bb3,bb4]@2 ~]/2", // D Bb
  S: "[[g3,d4]@2 ~ ab4 g4@2 [a3,gb4,a4]@2, bb4@3 ~, ~ bb3@2 ~, ~ d4 ~@2]/2", T: "[bb4 g4, [g3,d4]]/4",
})).s("gm_string_ensemble_1").gain(0.17).pan(0.2)

// chords · french horn
const french_horn = note(`<
  ~ A B C D E F G H I J K L M N O P Q R S T U V W X@2 Y Z AA AB E AC AD AE AF AG K AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV@2 AW AX AY AZ BA@2 ~
>`.pickRestart({
  A: "[d4,f4] e4 ~ [d4,f4]!2 e4 ~ [d4,f4]!2 [bb3,d4] ~ [bb3,f4]!2 d4 ~@2", // Dm Bb Bb5
  B: "[bb3,f4] d4 ~ [bb3,f4]!2 d4 ~ d4 [d4,f4] db4 ~ [d4,f4]!2 db4 ~@2", // Bb5 Dm
  C: "[d4,f4] e4 ~ [d4,f4]!2 e4 ~ [d4,f4]!2 [bb3,d4] ~ [d4,f4]!2 [bb3,d4] ~ d4", // Dm Bb Dm Bb
  D: "[bb3,f4] d4 ~ [bb3,f4]!2 d4 ~ bb3 [d4,f4] [db4,e4] ~ [d4,f4]!2 db4 ~@2", // Bb5 Dm Dbm Dm
  E: "[f4,a4] [e4,g4] ~ [f4,a4]!2 [e4,g4] ~ [f4,a4]!2 [e4,g4] ~ [f4,a4]!2 [e4,g4] ~@2", // F Em F Em F Em F Em
  F: "[e4,g4] [d4,gb4] ~ [e4,g4]!2 [d4,gb4] ~@2 [d4,a4] g4 ~ [d4,a4]!2 g4 ~ d4", // Em D Em D D5
  G: "[d4,f4] [c4,e4] ~ [d4,f4]!2 [c4,e4] ~ c4 [d4,g4] f4 ~ [d4,g4]!2 f4 ~@2", // Dm C Dm C G5
  H: "[d4,f4] [db4,e4] ~ [d4,f4]!2 [db4,e4] ~@2 [f4,a4] [e4,g4] ~ [f4,a4]!2 [e4,g4] ~@2", // Dm Dbm Dm Dbm F Em F Em
  I: "[f4,a4] [e4,g4] ~ [f4,a4]!2 [e4,g4] ~@2 [e4,g4] [d4,gb4] ~ [e4,g4]!2 [d4,gb4] ~@2", // F Em F Em D Em D
  J: "[d4,a4] g4 d4 [d4,a4]!2 g4 ~@2 [d4,f4] [c4,e4] ~ [d4,f4]!2 [c4,e4] ~@2", // D5 Dm C Dm C
  K: "[d4,g4] f4 ~ [d4,g4]!2 f4 ~@2 [d4,f4] db4 ~ [d4,f4]!2 [db4,e4] ~@2", L: "[c4,a4] [d4,bb4], f4",
  M: "~@6 e4 d4, a4, db4 f4, ~ e4@2 a3, ~@4 d4@3 ~", N: "[c4,f4,a4]@8 ~@4 f4@3 ~, ~ [d4,bb4]",
  O: "[db4,a4]@8 [d4,g4] f4 ~ [d4,g4]!2 f4 ~ [d4,g4]", // Gbm G5
  P: "[d4,g4] f4 ~ [d4,g4]!2 f4 ~ f4 [d4,f4] [bb3,d4] ~ [bb3,f4]!2 d4 ~ [d4,f4]", // G5 Dm Bb Bb5 Dm
  Q: "[d4,f4] [db4,e4] ~ [d4,f4]!2 [db4,e4] ~@2 [f4,a4] [e4,g4] ~ [f4,a4]!2 [e4,g4] ~ [f4,a4]", // Dm Dbm Dm Dbm F Em F Em …
  R: "[f4,a4] [e4,g4] ~ [f4,a4]!2 [e4,g4] ~@2 [e4,g4] [d4,gb4] ~ [e4,g4]!2 [d4,gb4] ~ [d4,a4]", // F Em F Em D Em D D5
  S: "[d4,a4] g4 ~ [d4,a4]!2 g4 ~@2 [d4,f4] [c4,e4] ~ [d4,f4] [d4,e4,f4] e4 ~ c4", // D5 Dm C Dm
  T: "[d4,g4] f4 ~ [d4,g4]!2 f4 ~@2 [d4,f4] [db4,e4] ~ [d4,f4]!2 [db4,e4] ~@2", // G5 Dm Dbm Dm Dbm
  U: "[f4,a4] [e4,g4] ~ [f4,a4]!2 [e4,g4] ~ f4 [f4,a4] [e4,g4] ~ [f4,a4]!2 [e4,g4] ~ [e4,g4]", // F Em F Em F Em F Em
  V: "[e4,g4] [d4,gb4] ~ [e4,g4]!2 d4 ~@2 [d4,a4] g4 ~ [d4,a4]!2 g4 ~ d4", // Em D Em D5
  W: "[d4,f4] [c4,e4] ~ [d4,f4]!2 [c4,e4] ~@2 [d4,g4] f4 ~ [d4,g4]!2 f4 ~@2", // Dm C Dm C G5
  X: "[[d4,f4] db4 ~ [d4,f4]!2 [db4,e4] ~@2 [c4,a4]@8 [d4,bb4]@8 ~@4 e4@4, ~ f4@2 [db4,a4]]/2", // Dm Dbm F Gm Gbm
  Y: "[a3,f4] [c4,f4], ~@4 a4 ~@3", Z: "[d4,bb4] db4",
  AA: "[d4,g4] f4 ~ [d4,g4]!2 f4 ~ [d4,g4]!2 f4 ~ [d4,g4]!2 f4 ~ f4", // G5
  AB: "[d4,f4] [bb3,d4] ~ [bb3,f4]!2 d4 ~ [d4,f4]!2 [db4,e4] ~ [d4,f4]!2 [db4,e4] ~@2", // Dm Bb Bb5 Dm Dbm Dm Dbm
  AC: "[e4,g4] [d4,gb4] ~ [e4,g4]!2 [d4,gb4] ~ [d4,a4]!2 g4 ~ [d4,a4]!2 g4 ~@2", // Em D Em D D5
  AD: "[d4,f4] [c4,e4] ~ [d4,f4] [d4,e4,f4] e4 ~ c4 [d4,g4] f4 ~ [d4,g4]!2 f4 ~@2", // Dm C Dm G5
  AE: "[d4,f4] [db4,e4] ~ [d4,f4]!2 [db4,e4] ~@2 [f4,a4] [e4,g4] ~ [f4,a4]!2 [e4,g4] ~ f4", // Dm Dbm Dm Dbm F Em F Em
  AF: "[f4,a4] [e4,g4] ~ [f4,a4]!2 [e4,g4] ~ [e4,g4]!2 [d4,gb4] ~ [e4,g4]!2 d4 ~@2", // F Em F Em D Em
  AG: "[d4,a4] g4 ~ [d4,a4]!2 g4 ~ d4 [d4,f4] [c4,e4] ~ [d4,f4]!2 [c4,e4] ~@2", AH: "[c4,a4] [d4,bb4], f4@7 ~",
  AI: "~ e4 [a3,f4]@2, [db4,a4] ~", AJ: "[c4,f4] [d4,bb4], a4 ~@7", AK: "db4@8 [d4,g4] f4 ~ [d4,g4]!2 f4 ~ [d4,g4]",
  AL: "[d4,g4] [bb3,f4] ~ [bb3,g4]!2 f4 ~ [d4,f4]!2 [db4,e4] ~@2 [db4,e4] ~@2 [db4,e4]", // G5 Bb5 Eb Dm Dbm
  AM: "[g4,a4]!2 ~ [g4,a4] [gb4,a4]@2 ~ [gb4,a4] [a4,c5] [g4,bb4] ~ [a4,c5]!2 [g4,bb4] ~ [g4,bb4]", // Gsus2 Gbm Am Gm Am Gm
  AN: "[bb4,d5] [a4,c5] ~ [bb4,d5]!2 [a4,c5] ~ [a4,c5]!2 [g4,b4] ~ [a4,c5]!2 [g4,b4] ~ [g4,b4]", // Bb Am Bb Am G Am G
  AO: "[g4,b4,d5] c5 ~ [g4,d5]!2 c5 ~ [g4,c5] [g4,bb4] [f4,a4] ~ [g4,bb4]!2 [f4,a4] ~ [f4,a4]", // G G5 C5 Gm F Gm F
  AP: "[a4,c5] [g4,bb4] ~ [g4,c5]!2 bb4 ~ [g4,bb4]!2 [gb4,a4] ~ [gb4,bb4]!2 a4 ~ [gb4,a4]", // Am Gm C5 Gm Gbm Gb Gbm
  AQ: "[a4,c5] [g4,bb4] ~ [a4,c5]!2 [g4,bb4] ~ [g4,bb4] [bb4,d5] [a4,c5] ~ [a4,c5] [bb4,d5] [a4,c5] ~ [a4,c5]", // Am Gm Am Gm Bb Am Bb Am
  AR: "[a4,c5] [g4,b4] ~ [g4,c5]!2 b4 ~ [g4,b4] [g4,d5] c5 ~ [g4,d5]!2 c5 ~ [g4,c5]", // Am G C5 G G5 C5
  AS: "[g4,bb4] [f4,a4] ~ [g4,bb4]!2 [f4,a4] ~ [f4,a4] [g4,c5] bb4 ~ [g4,c5]!2 bb4 ~ [g4,bb4]", // Gm F Gm F C5 Gm
  AT: "[g4,bb4] [gb4,a4] ~ [gb4,bb4]!2 a4 ~ a4 ~@4 d4@4, ~ [f4,bb4]", AU: "eb4!2 c4 [c4,a4], g4 gb4, ~@2 bb3 ~@5",
  AV: "[~ d4 ~ f4 [eb4,g4]@2 [c4,a4] [c4,gb4], [bb3,g4] bb4@2 ~, ~ d4 ~@2]/2", // Eb F Cdim Eb
  AW: "bb3 ~@3 d4 d4@3 [d4,bb4]@4 [f4,d5]@4, g4 ~", AX: "~ g4 a4 gb4, [eb4,bb4] c4",
  AY: "[a4,c5] g4 ~ [a4,c5]!2 [g4,bb4] ~ [a4,c5]!2 [g4,bb4] ~ [a4,c5]!2 [g4,bb4] ~ [a4,c5]", // Am Gm Am Gm Am Gm Am
  AZ: "[a4,c5] [g4,bb4] ~ [a4,c5]!2 g4 ~ [a4,c5]!2 [g4,bb4] ~ [a4,c5]!2 [g4,bb4] ~ bb4", BA: "[bb3,g4]/2",
})).s("gm_french_horn").gain(0.26).pan(0.8)

// chords · french horn · soft notes
const french_horn_soft = note(`<
  ~ A B C D ~ E F G F@2 H ~ I J ~ K ~ L M ~ N O P Q ~ R S F ~ G ~ T U V W H X ~ Y Z AA ~@5 AB AC AD AE ~ W AF ~ AG AH
  ~@3
>`.pickRestart({
  A: "~@15 bb3", B: "~@2 bb3 ~@3 bb3 [bb3,f4] ~ e4 ~@3 e4 ~ d4", C: "~@4 e4 ~@11", D: "~@7 [d4,f4] ~@5 e4 ~@2",
  E: "~@10 d4 ~@5", F: "~@15 d4", G: "~@15 e4", H: "~@9 e4 ~@6", I: "~@7 e4", J: "~@4 eb4@4 ~@7 f4", K: "~@7 d4 ~@8",
  L: "~@7 e4 ~@8", M: "~@13 c4 ~@2", N: "~@7 a4 ~@8", O: "~@5 gb4 ~@10", P: "~@7 c4 ~@8", Q: "~ e4 ~@14", R: "~@5 a4@3",
  S: "~ a4", T: "~@5 c4 ~@10", U: "~@15 a4", V: "~@13 gb4 ~@2", W: "~@15 c4", X: "~@7 f4", Y: "~ a4@3 ~@4", Z: "a4 ~",
  AA: "~@11 [db4,e4] ~@2 db4 ~", AB: "~@13 g4 ~@2", AC: "~ ab4 ~@14", AD: "~@7 gb4 ~@8", AE: "~@6 [a3,bb3] ~@9",
  AF: "~ bb3@5 bb3@2 ~@8", AG: "~ bb4 ~@14", AH: "~@5 bb4 ~@10",
})).s("gm_french_horn").gain(0.16).pan(0.8)

// other · electric guitar clean
const electric_guitar_clean = note("<~@12 A B A C@2 ~@7 D E F G@2 ~@8 A B A H@2 ~@7 I J K J L M@5 ~>".pickRestart({
  A: "f3 c4 bb3 f3", B: "e3@4 a3@4 d3@3 d4@2 a3@3",
  C: "[e3@4 a3@3 ~ a4@18 ~@6, ~@7 d3@19 ~@6, ~@7 a3@16 ~@9, ~ d4@2 ~]/2", D: "~@2 f3 c4", E: "bb3 f3 e3 a3",
  F: "d3@3 d4@2 a3@3 f3@4 c4@4", G: "[bb3@4 f3@4 e3@4 a3@3 ~ [d4,a4]@16, ~@15 [d3,a3]@17]/2",
  H: "[e3@4 a3@3 ~ d4@16 ~@8, ~@7 [d3,a3]@17 ~@8]/2", I: "~@2 bb3 f4", J: "eb4 bb3 a3 d4",
  K: "~@5 d4@2 ~@5 f4@3 ~, g3@4 bb3@3 ~, ~@3 g4@6 ~@7", L: "g3@8 ~@4 f4@3 ~, ~ bb3",
  M: "[~@4 bb3@4 a3@4 d4@3 ~ g4@28 ~@4 [d4,g4]@18 ~@14, eb4@8 ~@7 [g3,bb3,d4]@29 ~@3 bb3@18 ~@15, ~@47 g3@12 ~@21]/5", // G5 Gm
})).s("gm_electric_guitar_clean").gain(0.54).pan(0.4)

// chords · string ensemble 1
const string_ensemble_1_2 = note("<~@17 A B C D E F G H ~@3 I J K L M N O P Q ~@5 R S T U V W X Y ~@10>".pickRestart({
  A: "~@8 [f5,a5] g5 ~ [f5,a5]!2 g5 ~ [f5,a5]", // F
  B: "[f5,a5] [e5,g5] ~ [f5,a5]!2 [e5,g5] ~ [e5,g5]!2 [d5,gb5] ~ [e5,g5]!2 [d5,gb5] ~@2", // F Em F Em D Em D
  C: "[d5,a5] g5 ~ [d5,a5]!2 g5 ~@2 [d5,f5] [c5,e5] ~ [d5,f5]!2 [c5,e5] ~@2", // D5 Dm C Dm C
  D: "[d5,g5] f5 ~ [d5,g5]!2 f5 ~ d5 [d5,f5] [db5,e5] ~ [d5,f5]!2 [db5,e5] ~@2", // G5 Dm Dbm Dm Dbm
  E: "[f5,a5] [e5,g5] ~ [f5,a5]!2 [e5,g5] ~ [f5,a5]!2 [e5,g5] ~ [f5,a5]!2 [e5,g5] ~@2", // F Em F Em F Em F Em
  F: "[e5,g5] d5 ~ [e5,g5]!2 d5 ~@2 [d5,a5] g5 ~ [d5,a5]!2 g5 ~@2", // Em D5
  G: "f5 ~@2 [d5,f5]!2 [c5,e5] ~@2 [d5,g5] f5 ~ [d5,g5]!2 f5 ~ d5", H: "f5 e5 ~ [db5,f5]!2 e5 ~@10", I: "d3 bb2",
  J: "g2@8 a2@7 ~", K: "[f5,a5] [e5,g5] ~ [f5,a5]!2 [e5,g5] ~@2 [f5,a5] [e5,g5] ~ [f5,a5]!2 [e5,g5] ~@2",
  L: "[e5,g5] [d5,gb5] ~ [e5,g5]!2 [d5,gb5] ~@2 [d5,a5] g5 ~ [d5,a5]!2 g5 ~@2", // Em D Em D D5
  M: "[d5,f5] [c5,e5] ~ [d5,f5]!2 [c5,e5] ~@2 [d5,g5] f5 ~ [d5,g5]!2 f5 ~@2", // Dm C Dm C G5
  N: "[d5,f5] ~@2 [d5,f5]!2 e5 ~@2 [e5,f5,a5] g5 ~ [f5,a5]!2 [e5,g5] ~@2", // Dm Fmaj7 F Em
  O: "[f5,a5] [e5,g5] ~ [f5,a5]!2 [e5,g5] ~ e5 [e5,g5] [d5,gb5] ~ e5 [e5,g5] d5 ~@2", // F Em F Em D Em
  P: "[d5,a5] g5 ~ [d5,a5]!2 g5 ~ d5 [d5,f5] [c5,e5] ~ [d5,f5]!2 [c5,e5] ~@2", // D5 Dm C Dm C
  Q: "[d5,g5] f5 ~ [d5,g5]!2 f5 ~@2 [db5,f5] e5 ~ [db5,f5]!2 [db5,e5] ~@2", // G5 Db Dbm
  R: "~@8 [a5,c6] [g5,bb5] ~ [a5,c6]!2 [g5,bb5] ~ d6", // Am Gm Am Gm
  S: "[bb5,d6] [a5,c6] ~ [bb5,d6]!2 [a5,c6] ~@2 [a5,c6] [g5,b5] ~ a5 [a5,c6] [g5,b5] ~ b5", // Bb Am Bb Am G Am G
  T: "[g5,d6] c6 ~ [g5,d6]!2 c6 ~ g5 [g5,bb5] [f5,a5] ~ [g5,bb5]!2 [f5,a5] ~@2", // G5 Gm F Gm F
  U: "[g5,c6] bb5 ~ [g5,c6]!2 bb5 ~@2 [g5,bb5] [gb5,a5] ~ [gb5,bb5]!2 [gb5,a5] ~@2", // C5 Gm Gbm Gb Gbm
  V: "[a5,c6] [g5,bb5] ~ [a5,c6]!2 [g5,bb5] ~ [g5,bb5] [bb5,d6] [a5,c6] ~ a5 [bb5,d6] [a5,c6] ~ [a5,c6]", // Am Gm Am Gm Bb Am Bb Am
  W: "[a5,c6] [g5,b5] ~@2 [a5,c6] [g5,b5] ~ b5 [g5,d6] c6 ~ [g5,c6] [g5,d6] [g5,c6] ~@2", // Am G Am G G5 C5 G5 C5
  X: "[g5,bb5] [f5,a5] ~ f5 [g5,bb5] [f5,a5] ~ [f5,a5] [g5,c6] [g5,bb5] ~ [g5,c6]!2 bb5 ~@2", // Gm F Gm F C5 Gm C5
  Y: "[g5,bb5] [gb5,a5] ~ bb5 [gb5,bb5] [gb5,a5] ~@10", // Gm Gbm Gb Gbm
})).s("gm_string_ensemble_1").gain(0.25).pan(0.2)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@18 A B ~@2 C D E ~@6 F ~ G H B I ~@5 J K ~@2 L M N O ~@10>".pickRestart({
  A: "~@15 d5", B: "~@15 c5", C: "~ [e5,gb5] ~@3 gb5 ~ d5 ~@7 d5", D: "~ [d5,e5] ~@14", E: "~ db5 ~@3 db5 ~@10",
  F: "~@13 d5 ~@2", G: "~ [db5,e5] ~@3 db5 ~@3 e5 ~@6", H: "~@11 g5 ~ gb5 ~@2", I: "~@7 d5 ~@2 db5 ~@5",
  J: "~@15 [g5,bb5]", K: "~@11 c6 ~@3 g5", L: "~@11 c6 ~@4", M: "~@3 [g5,b5] ~@3 g5 ~@7 g5", N: "~@3 a5 ~@9 g5 ~@2",
  O: "~@3 gb5 ~@12",
})).s("gm_string_ensemble_1").gain(0.12).pan(0.2)

// chords · woodblock
const woodblock = note("<~@6 A ~ B ~ C ~@8 C ~ D A ~@8 A ~ B ~ C ~@8 E ~ F G ~ H ~@10>".pickRestart({
  A: "~@13 [bb4,b4] [eb4,e4] [ab3,a3]", B: "~@8 f4 ~@7", C: "~@5 [bb4,b4] [eb4,e4] [ab3,a3] ~@8", D: "f4 ~@15",
  E: "~@5 [bb5,b5] [eb5,e5] [ab4,a4] ~@8", F: "f5 ~@15", G: "~@13 [bb5,b5] [eb5,e5] [ab4,a4]", H: "~@8 f5 ~@7",
})).s("gm_woodblock").gain(0.45).pan(0)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C@3 D C@3 E F A B F G E@2 C H F C D C I J K F C@3 L C E M C L N O D A P E F C@5 A Q R J D F S D T ~@2
>`.pickRestart({
  A: "x ~@2 x ~@4 x ~@7", B: "x ~@6 x!2 ~@2 x ~@4", C: "x ~@2 x ~@3 x!2 ~@2 x ~@3 x", D: "x ~@6 x!2 ~@2 x ~@3 x",
  E: "x ~@2 x ~@4 x ~@2 x ~@3 x", F: "x ~@2 x ~@3 x!2 ~@2 x ~@4", G: "x ~ x ~@5 x ~@2 x ~@3 x",
  H: "x ~@2 x ~@2 x ~ x ~@2 x ~@3 x", I: "x ~@2 x ~@2 x ~ x ~@2 x ~@4", J: "x ~@6 x!2 ~@6 x", K: "x ~ x ~@5 x ~@6 x",
  L: "x ~@2 x ~@3 x!2 ~@2 x ~@2 x ~", M: "x ~@2 x ~@3 x!2 ~@6 x", N: "x ~@2 x ~@4 x ~@6 x", O: "x ~@6 x!2 ~ x ~@5",
  P: "x ~@7 x ~@2 x ~@3 x", Q: "x ~@7 x ~@6 x", R: "x ~@7 x ~@2 x ~@4", S: "x ~@2 x!2 ~@3 x ~@6 x", T: "x",
})).gain(0.66)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  A B C ~@3 D ~@4 E@2 D ~@6 E ~ D ~@10 F G ~@5 H D I E ~@6 J C ~ D E K D ~@3
>`.pickRestart({
  A: "x", B: "~@7 x ~@3 x ~@3 x", C: "~@3 x ~@11 x", D: "~@3 x ~@12", E: "~@15 x", F: "~@7 x ~@8", G: "~@11 x ~@4",
  H: "~@11 x ~@3 x", I: "~@4 x ~@2 x ~@8", J: "~@3 x ~@7 x ~@4", K: "~@7 x ~@3 x ~@4",
})).gain(0.37)

// drums · rim
const rim = s("rim").struct("<~ A@11 ~@3 B A@8 ~@4 A@8 C ~@3 B A B A@6 C ~@5 B A ~@3>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~ x ~@2",
})).gain(0.74)

// drums · snare
const snare = s("sd").struct("<~@12 A@3 B ~@8 C A@3 ~@9 A@3 B ~@8 C A@5 ~@5>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@3 x",
})).gain(0.74)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B C D E F G H I J K L M N O P Q R S T F U V W X Y Z AA AB AC AD AE AF AG AH AI AE AJ AK AL AM AN AJ AO AP AQ AR AD
  AS AT AU AV AW AX AY AZ ~@3
// … 108 more lines

More by Cocciante