Strudelify

Non e

Carboni

KeyF majorTempo125 bpm
0:00/0:00
// Non e — Carboni
// 125 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 119 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(125/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 · clavinet
const clavinet = note(`<
  ~@2 A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C B D E F B D A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C B D E F B D E
  F B D G@2 D H G@2 D H G@2 D H G@2 D H D I J K D I J K D I J K D I J K D I J K D I J K D I J K D I J K D I J K D I J K
  ~
>`.pickRestart({
  A: "~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]", // Eb
  B: "~@2 [c4,eb4,ab4] ~@2 [c4,eb4,ab4] ~@2 [c4,eb4,ab4] ~@2 [c4,eb4,ab4]", // Ab
  C: "~@2 [b3,eb4,ab4] ~@2 [b3,eb4,ab4] ~@2 [b3,eb4,ab4] ~@2 [b3,eb4,ab4]", // Abm
  D: "~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4] ~@2 [d4,f4,bb4]", // Bb
  E: "~@2 [bb3,eb4,g4,bb4] ~@2 [bb3,eb4,g4,bb4] ~@2 [bb3,eb4,g4,bb4] ~@2 [bb3,eb4,g4,bb4]", // Eb
  F: "~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4]", // Cm
  G: "~@2 [c4,f4,a4] ~@2 [c4,f4,a4] ~@2 [c4,f4,a4] ~@2 [c4,f4,a4]", // F
  H: "~@2 [db4,f4,bb4] ~@2 [db4,f4,bb4] ~@2 [db4,f4,bb4] ~@2 [db4,f4,bb4]", // Bbm
  I: "~@2 [e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [e4,g4,c5]", // C
  J: "~@2 [c4,f4,a4,c5] ~@2 [c4,f4,a4,c5] ~@2 [c4,f4,a4,c5] ~@2 [c4,f4,a4,c5]", // F
  K: "~@2 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [d4,f4,a4]", // Dm
})).s("gm_clavinet").gain(0.2).pan(0.6)

// bass · fretless bass
const bass = note(`<
  ~@2 A B C D E F G D H I J K E F G D H I J K E F G D L M N O P Q E F G D H I J K E F G D H I J K E F G D L M N O L M N
  O P Q R S T U V W X Y R S T U V W X Y Z AA AB AC Z AA AB AC Z AA AB AC Z AA AB AC Z AA AB AC Z AA AB AC Z AA AB AC Z
  AA AB AC Z AA AB AC Z AA AB AC ~
>`.pickRestart({
  A: "eb2@4 ~@2 g1@4 ~@2 bb1@4 ~@2 eb2@3 ~@3", B: "~@3 eb2@2 ~ g2@2 ~@3 eb2", C: "ab1@2 ~ c2@2 ~ eb2@2 ~@4",
  D: "ab1@3 ~@3 b1@3 ~@13 bb1 ~", E: "eb2 ~ g1 ~ bb1 ~ eb2 ~", F: "~@6 eb2@3 ~@3 g2@3 ~@7 eb2@2",
  G: "ab1@4 ~@2 c2@3 ~@3 eb2@3 ~@9", H: "eb2@4 ~@2 bb1@3 ~@3 g1@4 ~@8", I: "g1@3 ~@3 bb1@3 ~@13 eb2 ~",
  J: "ab2@3 ~@3 f2@3 ~@3 eb2@4 ~@8", K: "ab1@3 ~@9 eb2@3 ~@7 bb1 ~", L: "eb3@4 ~@2 c3@4 ~@2 ab2@5 ~@7",
  M: "bb1@4 ~@2 bb1@4 ~@2 f2@5 ~@7", N: "eb2@4 ~@2 eb2@5 ~ bb2@4 ~@6 eb2 ~", O: "c2@4 ~@2 c2@5 ~ g2@5 ~@5 ab2 ~",
  P: "ab1@6 c2@6 eb2@4 ~@6 f2 ~", Q: "bb1@6 d2@6 f2@5 ~@7", R: "f2 ~ a1 ~ c2 ~ f2 ~", S: "~@6 f2@3 ~@3 a2@3 ~@7 f2@2",
  T: "bb1@4 ~@2 d2@3 ~@3 f2@3 ~@9", U: "bb1@3 ~@3 db2@3 ~@13 c2 ~", V: "f2@4 ~@2 c2@3 ~@3 a1@4 ~@8",
  W: "a1@3 ~@3 c2@3 ~@13 f2 ~", X: "bb2@3 ~@3 g2@3 ~@3 f2@4 ~@8", Y: "bb1@3 ~@9 f2@3 ~@7 c2 ~",
  Z: "f3@4 ~@2 d3@4 ~@2 bb2@5 ~@7", AA: "c2@4 ~@2 c2@4 ~@2 g2@5 ~@7", AB: "f2@4 ~@2 f2@5 ~ c3@4 ~@6 f2 ~",
  AC: "d2@4 ~@2 d2@5 ~ a2@5 ~@5 bb2 ~",
})).s("gm_fretless_bass").gain(0.25)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@2 A B C ~ D E@2 F G H@2 I@2 J K L@2 M@2 N@2 O P Q@2 R S T U V W X@2 ~ Y@3 Z@4 AA AB@3 AC@4 AD U R AE@2 U R AF AG U V
  AH@2 AI AJ AK@3 AL AM@3 AN@4 AO@3 AP AQ AR@2 AS AT AU@2 AV AW AX AY@2 AZ@2 ~@15 AX BA BB BC BD ~@4
>`.pickRestart({
  A: "~@6 [g3,g4]@3 ~@2 g4@2 [g3,g4]@2 ~ [f3,f4]@2 ~@4 eb4 ~, ~@5 g3 ~@6", // G F
  B: "~@4 eb4@3 [g3,g4]@3 ~ g3 ~ [g3,g4]@3 f3@2 eb4@3 ~@3, ~@5 g4 ~@6", C: "~@3 eb4@10 ~@11",
  D: "~@6 g4@3 ~ [g3,g4]@2 ~ [g3,g4]@3 [f3,f4]@3 ~@3 [eb3,eb4]@2", // G F Eb
  E: "[~@6 [g3,g4]@2 ~@2 [g3,g4]@2 ~ [g3,g4]@3 [f3,f4]@2 eb4@3 ~ f3@6 ~@14 eb4@3 ~ f4@2]/2", // G F
  F: "~ gb4@3 ~ gb4@3 ~ gb4@3 f4@6 eb4@3 ~ eb4@2", G: "~@6 g4@3 ~ g4@2 ~ g4@3 f4@3 eb4@2 ~ eb4@2",
  H: "[~@3 g4 ~@2 g4@2 ~@2 g4@2 ~ g4@2 f4@3 eb4@3 ~ f4@5 eb4@9 ~@6 eb4@3 ~ f4@2]/2",
  I: "[~ gb4@4 ~ gb4@5 ~ f4@4 ~@2 eb4@2 ~@2 eb4@8 g4@3 ~ g4@2 ~ g4@2 ~ f4@2 ~@6]/2",
  J: "~@6 g4@3 ~ g4@2 ~ g4@3 f4@2 eb4@2 ~@2 f4@2", K: "~@4 eb4@10 ~@4 eb4@3 ~ f4@2",
  L: "[~ gb4@2 ~ gb4@2 ~ gb4@3 f4@6 ~@6 eb4@4 ~@4 g4@3 ~ g4@2 ~ g4@2 ~ f4@2 eb4@3 ~ eb4@2]/2",
  M: "[~@4 c4 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ f4@2 ~@4 f4@6 ~@14 eb4@4 f4 ~]/2",
  N: "[~ gb4@2 ~ gb4@2 gb4@2 ~@2 f4@5 ~ eb4@4 ~@2 eb4@6 ~@2 g4@2 ~@2 g4@2 ~ g4@2 ~@2 f4@2 eb4@2 ~ eb4@2]/2",
  O: "~@6 g4@3 ~ g4@2 ~ g4@2 ~ f4@2 eb4@3 ~ f4@2", P: "~@4 eb4@9 ~@5 eb4@3 ~ f4@2",
  Q: "[~ gb4@2 ~ gb4@2 gb4@3 ~ f4@6 eb4@5 ~ eb4@6 ~@8 [c4,eb4]@10 [d4,f4]@2]/2", R: "~@6 [d4,f4]@5 [eb4,g4]",
  S: "~@4 [eb4,g4]@4 ~@2 [eb4,g4]@2 eb4 g4@2 ~ [f4,ab4]@2 [g4,bb4]@3 ~ eb4@2", // Eb Fm Gm
  T: "~@4 [c4,eb4]@3 ~@3 [c4,eb4] ~ [c4,eb4]@4 [d4,f4]@2 [eb4,g4]@3 ~ [c4,eb4]@2", U: "~@6 [c4,eb4]@5 [d4,f4]",
  V: "~@6 [d4,f4]@5 ~", W: "~@4 g4 ~ g4 ~ g4 ~ g4 ~ g4@3 ~ f4@2 eb4@3 ~@3",
  X: "[~@6 g4@3 ~ g4@2 ~ g4@3 f4@2 ~ eb4@2 ~ f4@6 eb4@8 ~@12]/2",
  Y: "[~@4 g4 ~ g4 ~ g4 ~ g4 ~ g4@3 ~ f4@2 ~ eb4@3 f4@5 ~@3 g4@3 ~ g4@2 ~ g4@2 ~ f4@2 ~ eb4@2 ~ f4@6 ~@14 f4@3 ~ eb4@2]/3",
  Z: "[~ gb4@3 gb4@2 ~ gb4@2 ~@2 f4@4 ~@2 eb4@3 ~@2 eb4@5 ~@4 g4@2 ~ g4@2 ~ g4@2 ~ f4@2 ~ eb4@3 f4@6 eb4@2 ~ g4@3 g4@2 ~ g4@2 ~ f4@2 ~ eb4@2 ~ f4@6 eb4@11 ~ eb4@2 f4@3 ~ eb4@2]/4",
  AA: "gb4@3 ~ gb4@2 ~ gb4@2 ~ f4@6 eb4@5 ~ eb4@2",
  AB: "[~@4 c4 ~ g4@3 ~ g4@2 ~ g4@2 ~ f4@2 ~ eb4@2 ~ eb4@5 ~@3 g4@3 ~ g4@2 ~ g4@2 ~ f4@2 ~ eb4@3 ~ f4@5 eb4@7 ~@7 f4@3 eb4 ~@2]/3",
  AC: "[gb4@2 ~@2 gb4@2 ~ gb4@2 ~ f4@5 ~ eb4@5 ~ eb4@4 ~@4 g4@2 ~@2 g4@2 ~@2 g4@2 f4@2 ~ eb4@3 ~ eb4@2 ~@3 g4 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ f4@2 ~ eb4@3 ~ f4@5 eb4@8 ~@4 eb4@2 f4@2 ~@2 eb4 ~]/4",
  AD: "gb4@3 ~ gb4 ~@2 gb4@2 ~ f4@5 ~ eb4@5 ~ eb4@2",
  AE: "[~@4 [eb4,g4]@3 ~@3 [eb4,g4] ~ [eb4,g4]@3 ~ [f4,ab4]@2 [g4,bb4]@3 ~@2 [c4,eb4]@3 ~@2 [c4,eb4]@3 ~@3 [c4,eb4] ~ [c4,eb4]@4 [d4,f4]@2 [eb4,g4]@4 [c4,eb4]@2]/2", // Eb Fm Gm Cm Dm Eb Cm
  AF: "~@4 [eb4,g4]@2 ~@4 [eb4,g4] ~ [eb4,g4]@3 ~ [f4,ab4]@2 [g4,bb4]@3 ~ [c4,eb4]@2", // Eb Fm Gm Cm
  AG: "~@4 [c4,eb4]@2 ~@4 [c4,eb4] ~ [c4,eb4]@4 [d4,f4]@2 [eb4,g4]@3 ~ [c4,eb4]@2", // Cm Dm Eb Cm
  AH: "[~@6 a4@2 ~@2 a4@2 ~ a4@2 ~ g4@2 ~ f4@3 g4@6 f4@2 ~ a4@3 ~ a4 ~ a4@2 ~ g4@2 f4@3 ~ g4@2]/2",
  AI: "~@4 f4@7 ~@5 f5@3 ~ d5@2 ~@2", AJ: "c5@3 ~ d5@3 ~@2 ab4@3 g4@2 ~@2 f4@4 ~@4",
  AK: "[~@6 a4@3 ~ a4@2 ~ a4@2 ~ g4@2 ~ f4@3 ~ f4@2 ~@5 a4@2 ~@2 a4@2 ~ a4@2 ~ g4 ~@2 f4@3 ~ g4@4 ~ f4@3 ~@11 g4@2 ~@2 f4@2]/3",
  AL: "ab4@3 ~ ab4 ~@2 ab4@2 ~@2 g4@3 ~@2 f4@4 ~@2 f4@2",
  AM: "[~@6 a4@3 ~@2 a4@2 a4@2 ~ g4@2 ~ f4@3 ~ f4@3 ~@4 a4@2 ~@2 a4@2 ~ a4@2 ~ g4 ~@2 f4@2 ~@2 g4@5 ~@14 g4@3 ~@3]/3",
  AN: "[ab4@3 ~@2 ab4@3 ~@2 g4@5 ~@2 f4@3 ~@2 f4@8 a4@2 ~@2 a4@2 ~ a4@2 ~ g4@2 ~ f4@2 ~@2 f4@2 ~@5 a4@2 ~@2 a4@2 ~@2 a4@2 ~ g4@2 f4@2 ~@2 g4@5 f4@3 ~@11 g4@3 ~ f4 ~]/4",
  AO: "[ab4@3 ~ ab4@3 ~@2 g4@7 ~@7 f4@2 ~@11 f4@10 ~ [e4,g4]@2 ~@11 [e4,g4]@10 [f4,a4]@2]/3", // Em F
  AP: "~@5 a4@2 ~@3 f4 a4 [f4,a4]@3 ~ [g4,bb4]@2 [a4,c5]@3 ~ [d4,f4]@2, ~@2 f4 ~@9", // F Gm Am Dm
  AQ: "~@4 [d4,f4]@2 ~@4 f4 d4 [d4,f4]@4 [e4,g4]@2 [f4,a4]@4 f4@2, ~@22 d4 ~", // Dm Em F
  AR: "[~@12 [d4,f4]@10 ~ [e4,g4]@2 ~@4 g4@2 ~@5 [e4,g4]@10 [f4,a4]@2]/2", // Dm Em F
  AS: "~@5 a4 ~@4 [f4,a4] ~ [f4,a4]@4 [g4,bb4]@2 [a4,c5]@4 d4 f4, ~@2 f4 ~@9", // F Gm Am
  AT: "~@4 [d4,f4]@2 ~@4 [d4,f4] ~ [d4,f4]@4 [e4,g4]@2 [f4,a4]@4 [d4,f4]@2", // Dm Em F Dm
  AU: "[~@12 [d4,f4]@11 [e4,g4]@2 ~@11 [e4,g4]@10 [f4,a4]@2]/2", // Dm Em F
  AV: "~@4 [f4,a4]@2 ~@4 [f4,a4] ~ [f4,a4]@4 [g4,bb4]@2 [a4,c5]@4 [d4,f4]@2", // F Gm Am Dm
  AW: "~@4 [d4,f4]@2 ~@4 f4 d4 [d4,f4]@4 [e4,g4]@2 [f4,a4]@4 [d4,f4]@2", AX: "~@6 [d4,f4]@5 [e4,g4]",
  AY: "[~@12 [e4,g4]@10 ~ f4@2 ~@4 [f4,a4] ~@4 f4 a4 [f4,a4]@4 [g4,bb4]@2 [a4,c5]@4 [d4,f4] ~, ~@11 a4 ~@12]/2", // Em F Gm Am Dm
  AZ: "[~@4 [d4,f4]@2 ~@4 [d4,f4] ~ [d4,f4]@4 [e4,g4]@2 [f4,a4]@4 f4@13 ~ [d4,f4]@10 ~ [e4,g4], ~@22 d4@3 ~@23]/2", // Dm Em F Dm Em
  BA: "~@12 g4@10 [f4,a4] ~, ~@3 e4@2 ~", BB: "~@4 [f4,a4]@2 ~@4 [f4,a4] ~ [f4,a4]@4 [g4,bb4]@2 [a4,c5]@3 ~ [d4,f4] ~",
  BC: "~@4 [d4,f4] ~@5 [d4,f4] ~ [d4,f4]@4 [e4,g4]@2 [f4,a4]@4 [d4,f4] ~", BD: "~@12 d4@11 ~, ~@4 f4@3 ~",
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.4)

// chords · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@2 A@3 ~ B C@2 ~@5 D E ~ F ~ G H ~@7 I ~@3 J@2 ~@3 K L ~@7 M ~@24 N O ~@2 P Q R ~@36 S T U V ~
>`.pickRestart({
  A: "[~@19 eb4@3 eb3@5 ~ eb3@3 ~@9 f4@2 eb3@3 ~ [f3,f4]@5 ~ eb3@9 ~@11, ~@6 eb3 ~@17]/3", // F
  B: "~@6 g3@3 ~@10 [eb3,eb4]@2 ~@3", C: "[~@19 eb3@3 f4@6 [eb3,eb4]@7 ~@13]/2", D: "~@19 eb4@2 ~@2 eb4",
  E: "~@4 c4 ~@19", F: "~@4 eb4 ~", G: "~@9 eb4 ~@2", H: "~@4 eb4@7 ~@13", I: "~@11 c4",
  J: "[~@22 f4@5 ~ eb4@2 ~@18]/2", K: "~@2 eb4 ~@9", L: "~@2 eb4@5 ~@5", M: "~@16 eb4 ~@7", N: "~@2 f4 ~@9",
  O: "~@2 f4@2 ~@7 f4", P: "~@4 f4 ~@19", Q: "~@17 f4 ~@6", R: "~@16 f4@5 ~@3", S: "~@11 [e4,g4]",
  T: "~@6 [e4,g4]@5 [f4,a4]", U: "~@4 [f4,a4]@2 ~@4 [f4,a4] ~ [f4,a4]@4 [g4,bb4]@2 [a4,c5]@4 [d4,f4] ~",
  V: "~@4 [d4,f4]@2 ~@4 [d4,f4] ~ f4@4 [e4,g4]@2 a4@4 [d4,f4]@2, ~@4 d4 ~ f4 ~", // Dm Em Dm
})).s("gm_electric_guitar_jazz").gain(0.13).pan(0.4)

// other · guitar harmonics
const guitar_harmonics = note(`<
  ~@8 A ~@5 B ~ C ~@5 B ~ C ~@14 D ~@3 E@2 ~@2 F ~@2 G@2 ~@12 H I ~@2 J ~@5 K L M ~@42
>`.pickRestart({
  A: "c3@5 ~ ab2@6 f2@6 eb2@6", B: "g3@5 ~ eb3@6 a2@6 bb2@6", C: "c3@5 ~ ab2@6 d2@6 eb2@6", D: "~@6 ab3@2 ~ eb3@2 ~",
  E: "[eb3@17 ~@7]/2", F: "eb3", G: "[c3@6 ab2@5 ~ d2@5 eb2@10 ~@21]/2", H: "~@17 a2@3 bb2@4",
  I: "f5@5 ~ d5@6 f4@5 ~ eb3@6", J: "d5@5 ~ bb4@5 ~ e3@6 f3@6",
  K: "g5 ~@11 c3@6 f4@3 ~@3, f3@4 c5@3 ~, f4 a3@2 ~, ~ f5@10 ~, ~@2 d5@5 ~", L: "~@23 bb2", M: "d3@6 bb2@5 ~ e2@6 f2@6",
})).s("gm_guitar_harmonics").gain(0.2)

// other · pad new age
const pad_new_age = note(`<
  ~@26 A B ~@2 C B ~@20 A B ~@2 A B ~@2 C B ~@16 D E ~@2 D E ~@2 D E ~@2 D E ~@2 D E ~@2 D E ~@2 D E ~@2 D E ~@2 D E ~@2
  F ~@4
>`.pickRestart({
  A: "eb6 ~@5 c6 ~@5 bb5 ~@5 eb5 ~@5", B: "f5 ~@11 f6 ~@11", C: "eb6 ~@5 c6 ~@5 bb5 ~@5 eb5@2 ~@4",
  D: "f6 ~@5 d6 ~@5 c6 ~@5 f5 ~@5", E: "g5 ~@11 g6 ~@11", F: "f6 ~@23",
})).s("gm_pad_new_age").gain(0.22).pan(0.4)

// other · pad new age · soft notes
const pad_new_age_soft = note("<~@114 [~@6 d6 ~@5 c6 ~@5 f5 ~@5] [g5 ~@11 g6 ~@11] ~@3>")
  .s("gm_pad_new_age").gain(0.13).pan(0.4)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@26 A B C D E B F@2 G H F I J K F@2 L H F I M K F@2 L H A B C D A B C D E B N O P Q R S T U N O P Q R S T U V W X Y V
  W X Y V W X Y V W X Y V W X Y V W X Y V W X Y V W X Y V W X Z ~@5
>`.pickRestart({
  A: "~@4 [ab4,c5] ~@5 [ab4,c5] ~@5 [ab4,c5] ~@5 [ab4,c5]@2", // Ab
  B: "~@4 [bb4,d5] ~@5 [bb4,d5] ~@5 [bb4,d5] ~@5 [bb4,d5] ~", // Bb
  C: "~@4 [eb5,g5] ~@5 [eb5,g5] ~@5 [eb5,g5] ~@5 [eb5,g5] ~", // Eb
  D: "~@4 [bb4,eb5] ~@5 [bb4,eb5] ~@5 [bb4,eb5] ~@5 [bb4,eb5] ~", // Eb5
  E: "~@4 [ab4,c5] ~@5 [ab4,c5] ~@5 [ab4,c5] ~@5 [ab4,c5] ~", F: "~@2 [eb4,bb4] ~@3 [eb4,bb4] ~",
  G: "g3@2 ab3 ~ ab3@2 [c4,ab4]@2 ab3 ~ ab3@2 ~@6 [c4,ab4]@3 ~@3, ~@6 g3 ~@17", // Fm
  H: "g3@2 ab3 ~ ab3@2 g3 ~ ab3 ~ ab3 ~@7 [b3,eb4,ab4]@3 ~@3, ~@3 [b3,eb4,ab4]@2 ~@7", // Abm
  I: "~@3 [eb4,bb4]@2 ~@4 [eb4,bb4]@2 ~", // Eb5
  J: "g3@2 ab3 ~ ab3@2 [g3,c4,eb4,ab4]@2 ab3 ~ [c4,eb4,ab4]@2 g3@2 ab3@2 ab3@2 [c4,eb4,ab4]@2 ~@4", // Abmaj7 Ab
  K: "g3 ~@2 [g3,b3,eb4,ab4] ~ [b3,eb4,ab4] g3 ~ ab3 [b3,eb4,ab4] ~@2", L: "~@2 [c4,ab4] ~@3 [c4,ab4] ~",
  M: "~@3 [c4,eb4,ab4] ~ [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@2", N: "~@3 [f4,c5] ~ c4 ~@2 c4 f4 ~ c4",
  O: "~@3 [f4,c5] ~ c4 ~@2 c4 [f4,c5] ~ c4", P: "~@2 bb3 d4 ~ bb3 ~@2 bb3 d4 ~ bb3",
  Q: "~@2 db4 [f4,bb4] ~ db4 ~@2 db4 f4 ~ db4", R: "~@2 c4 f4 ~@5 [f4,c5] ~ c4",
  S: "~@2 c4 [f4,c5] ~ c4 ~@3 [g4,c5] ~ c4", T: "~@2 bb3 [d4,bb4] ~ bb3 ~@2 bb3 [d4,bb4] ~ bb3",
  U: "~@2 db4 [f4,bb4] ~@5 [f4,bb4] ~ db4", V: "~@4 [bb4,d5] ~@5 [bb4,d5] ~@5 [bb4,d5] ~@5 [bb4,d5]@2",
  W: "~@4 [c5,e5] ~@5 [c5,e5] ~@5 [c5,e5] ~@5 [c5,e5] ~", X: "~@4 [f5,a5] ~@5 [f5,a5] ~@5 [f5,a5] ~@5 [f5,a5] ~",
  Y: "~@4 [c5,f5] ~@5 [c5,f5] ~@5 [c5,f5] ~@5 [c5,f5] ~", Z: "~@4 [c5,f5] ~@5 [c5,f5] ~@5 [c5,f5] ~@7",
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.4)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  ~@38 A B ~@7 B ~@14 C@2 D E F G ~ H C@2 D E F G ~ H ~@35 I J K L M ~
>`.pickRestart({
  A: "~@5 ab3 ~@6", B: "~@2 ab3@4 ~@2 ab3@3 ~@3 ab3 ~@9", C: "~@2 c4 ~@9", D: "~@3 bb4 ~@5 bb4 ~@2", E: "~@9 bb4 ~@2",
  F: "~@3 c5 ~ c4 ~@2 c4 ~@3", G: "~@8 c4 ~@3", H: "~@5 db4 ~@2 db4 ~@3", I: "~@22 [c5,f5] ~",
  J: "~@4 [bb4,d5] ~@5 [bb4,d5] ~@5 [bb4,d5] ~@5 [bb4,d5]@2", K: "~@4 [c5,e5] ~@5 [c5,e5] ~@5 [c5,e5] ~@5 [c5,e5] ~",
  L: "~@4 [f5,a5] ~@5 [f5,a5] ~@5 [f5,a5] ~@5 [f5,a5] ~", M: "~@4 [c5,f5] ~@5 [c5,f5] ~@5 [c5,f5] ~@7",
})).s("gm_electric_guitar_clean").gain(0.09).pan(0.4)

// chords · distortion guitar
const distortion_guitar = note("<~@12 A B@2 ~@19 C D ~@2 E F ~@30 G ~@48>".pickRestart({
  A: "~@11 c3", B: "[[eb3,ab3,f4]@3 ~@3 [eb3,ab3,f4]@3 ~@3 [eb3,ab3,f4]@3 ~@3 [eb3,ab3,f4]@3 ~ [eb3,g3,eb4]@8 ~@18]/2",
  C: "[ab2,eb3,ab3]@3 ~@3 [ab2,eb3,ab3]@4 ~@14", D: "[ab2,eb3,ab3] ~ [ab2,eb3,ab3] ~@5",
  E: "[ab2,eb3,ab3]@3 ~@3 [ab2,eb3,ab3]@3 ~@3 [ab2,eb3,ab3]@4 ~@8", // Ab5
  F: "[ab2,eb3,ab3] ~ [ab2,eb3,ab3] ~ [ab2,eb3,ab3] ~@3", G: "[f2,f3]@13 ~@11",
})).s("gm_distortion_guitar").gain(0.19)

// chords · pad warm
const pad_warm = note(`<
  ~@26 A B@4 C ~@20 A D@3 E B@4 C F@2 G@4 H ~ F@2 G@4 H ~ C I@3 J I@3 J I@3 J I@3 J I@3 J I@3 J I@3 J I@3 J K@3 ~@5
>`.pickRestart({
  A: "[ab3,c4,eb4]", B: "[[d4,f4]@8 ~@16 ab3@7 ~, bb3@35 ~@13, ~@8 eb4@23 ~, ~ g4@2 ~, ~ c4]/4", C: "[bb3,d4,f4]",
  D: "[[d4,f4] ~ c4, bb3@35 ~, ~ [eb4,g4]@2]/3", E: "[ab3,c4], eb4@7 ~", F: "[a3, c4@15 ~]/2",
  G: "[~@24 db4@25 ~@2 a3@41 ~@4, bb3@49 ~@47]/4", H: "d4", I: "[[e4,g4] ~ d4, c4@35 ~, ~ [f4,a4]@2]/3",
  J: "[bb3,d4], f4@7 ~", K: "[[e4,g4] [f4,a4]@2, c4@35 ~]/3",
})).s("gm_pad_warm").gain(0.16)

// chords · pad warm · soft notes
const pad_warm_soft = note("<~@62 A ~ B ~ C@4 D@8 ~@35 B E F@3 ~>".pickRestart({
  A: "f4 ~@23", B: "d4", C: "[c4@47 ~@25 db4@24, ~@47 bb3@48 ~]/4",
  D: "[~@48 d4@24 ~@24 c4@47 ~@25 db4@24, f4@191 ~, ~@143 bb3@48 ~]/8", E: "[bb3,d4], f4@7 ~",
  F: "[[e4,g4] ~ d4, c4@35 ~, ~ [f4,a4]@2]/3", // Em F
})).s("gm_pad_warm").gain(0.08)

// other · orchestra hit
const orchestra_hit = note("<~@36 [eb3 ~@5] ~@3 [~@3 eb3@2 ~@7] ~@78>").s("gm_orchestra_hit").gain(0.4).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~ [x ~@7 x!2 ~@2] [x!4]!116 ~>").gain(0.31)

// … 73 more lines

More by Carboni