Strudelify

Marciapiedi

Zero

KeyF♯ majorTempo72 bpm
0:00/0:00
// Marciapiedi — Zero
// 72 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 6/4 at bar 50, 4/4 at bar 51) are rendered on a constant 4/4 grid of one bar per cycle
// note: duplicate parts dropped: ch 6 "Music Box" music box (copy of ch 5 "Bowed glas" pad bowed)
// note: Full arrangement: all 83 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(72/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 · epiano1 · "El. Piano"
const epiano1 = note("<A@7 B C@6 ~@27 D E@2 F@2 ~@27 G H G H I J K L@3>".pickRestart({
  A: "[~@7 [f#2,e3,c#4]@16 ~ b2@16 [e2,g#3]@16 [a2,a3,c#4]@16 ~ [f3,g#3,c#4]@16 b3@8 ~ a3@8 [b2,a3,b3,d4]@8 [a2,a3,b3,d4]@8 f#4@18 f4@18 [a3,c#4,f#4]@8 ~ [a3,c#4,f#4]@8 [f#3,a3,b3,d4]@8 [f#3,a3,b3,d4]@8 [e3,g#3,b3]@8 [e3,g#3,b3]@8 ~ [e3,a3,c#4]@8 [e3,a3,c#4]@8, ~@7 [f#3,a3]@33 e3@33 c#3@33 ~@69 b2@16 ~@17 a2@16, ~@24 [b3,d4]@33 ~@32 f#3@33 ~@102, ~@89 f#2@16 ~@17 [c#2,c#3,c#4,g#4]@36 f#2@16 ~@17 e2@16 ~@17]/7", // F#7 E A C# Bm7 F#m Bm7 E …
  B: "[f3,g#3,d4]@8 [f3,g#3,c#4]@8 ~ [c#3,f#3,b3]@8 [c#3,f#3,a3]@7, c#2@16 ~ f#2@15", // Ddim C# F#sus4 F#m
  C: "[~ [b2,f#3,b3,d4]@8 [a2,f#3,a3,b3,d4]@8 [g#3,c#4,f#4]@9 [g#3,c#4,f4]@9 [f#3,a3,c#4]@8 ~ [f#3,a3,c#4]@8 [f#3,a3,b3,d4]@8 [f#3,a3,b3,d4]@8 [e3,g#3,b3]@8 ~ [e3,g#3,b3]@8 [e3,a3,c#4]@8 [e3,a3,c#4]@8 [f3,g#3,d4]@8 ~ [f3,g#3,c#4]@8 [f#3,a3,c#4]@8 [f#3,c#4]@8 [c#2,f3,g#3,c#4]@34 ~@24, ~@17 c#2@18 f#2@16 ~ b2@16 e2@16 ~ a2@16 g#2@16 ~ f#2@16 ~@58]/6", // Bm Bm7 C#sus4 C# F#m Bm7 E A …
  D: "~@3 a4, ~ [f#2,a3,c#4,f#4]", // F#m
  E: "[[f#3,b3,d4] [b3,d4,f#4] ~@3 a4 f#4 f4, b2 [e2,g#3,b3] [a2,a3,c#4] [c#2,g#3,c#4], ~@3 e4@3 ~@2]/2", // Bm E A C#5
  F: "[b3 a3 b2 [a2,a3] ~ f3 ~@2, [f#2,c#3,f#3]@2 f#3@3 ~@3, ~ [b3,d4] [c#2,g#3,c#4] ~]/2", // A F#5 Bm C#5
  G: "[a#3,c#4,f#4] [a#3,c#4,f#4]@3 [a#3,c#4,f4] [a#3,c#4,f4]@3", // F# A#m
  H: "[b3,d#4,f#4] [b3,d#4,f#4]@3 [b3,c#4,f#4]@2 [b3,c#4,f4]@2", I: "[b3,d#4,f#4] [g#3,c#4,f#4]",
  J: "[a#3,c#4,f4] [a#3,d#4,f#4]", K: "[g#3,c4,d#4,f#4]!2", L: "[~@2 [g#3,b3,d#4,f#4]@25 [g#3,c#4,f#4]@63 ~@6]/3",
})).s("gm_epiano1").gain(0.35).pan(0.4)

// bass · acoustic bass · "Basso"
const bass = note("<A@3 B@2 ~@78>".pickRestart({
  A: "[~@11 f#2@4 a2@4 c#3@4 ~ d3@16 ~@4 e2@4 g#2@4 b2@4 c#3@16 ~@5 c#2@4 f2@4 g#2@4 b2@7]/3",
  B: "[~ a2@4 b2@4 a2@4 c#2@18 ~]/2",
})).s("gm_acoustic_bass").gain(0.3)

// bass · fretless bass · "Basso"
const bass_2 = note(`<
  ~@19 A@2 B C D E F@2 G H I C D E F@2 G H J K L M@2 N O P Q R S T U V W V X Y Z AA AB V W V X Y Z AA U V AC V X Y Z AA
  AB V AC V X Y AD@4
>`.pickRestart({
  A: "[~@31 c#2@16 f#1@14 f#1 ~@2]/2", B: "f#1 ~@3 f#1@12 f#2@13 ~ f#2 ~",
  C: "f#2 ~@3 f#2@6 ~@2 f#2 ~ f#2 ~ b1@9 ~ b1 ~ b1 ~@3", D: "c#2 ~@3 c#2@5 ~ c#2 ~ c#2 ~@3 f#2@12 ~@2 f#2 ~",
  E: "f#2 ~@3 f#2@8 ~@2 f#2 ~ b1@9 ~ b1 ~ b1 ~@3",
  F: "[c#2 ~@3 c#2@5 ~ c#2 ~ c#2 ~@3 b1@12 f#2@3 ~ b2@16 a#2@12 f2@4, ~@31 a#2@2 ~@31]/2",
  G: "d#2@10 ~@2 d#2@2 a#1@2 g#1@12 ~@2 g#1 ~", H: "g#1 ~@3 g#1@5 ~ g#1@6 g#1@11 ~ b1@2 c2 ~",
  I: "c#2@16 f#1@13 ~ f#2 ~", J: "c#2 f#1", K: "b1 e1", L: "a1@6 b1 c#2 d2@8",
  M: "[g1@12 a1@2 b1@2 c#2@32 f#1@12 ~@2 f#1 ~]/2", N: "b1@16 e1@13 ~ e1 ~", O: "a1@13 ~ a1@2 c#2@11 ~ c#2@2 f2@2",
  P: "f#2@2 b2 a2", Q: "c#2@16 e1@13 ~ e1@2", R: "a1@11 ~ a1 ~ a1@2 c#2@13 ~ c#2@2", S: "f#2@8 e2@8 d#2@11 ~ d#2@4",
  T: "c#2@13 ~ c#2@2 c#2@11 ~ c#2 ~ c#2@2", U: "f#2@13 ~ f#2 ~ f#2 ~@3 f#2@6 ~@2 f#2 ~ f#2 ~",
  V: "b1@9 ~ b1 ~ b1 ~@3 c#2 ~@3 c#2@5 ~ c#2 ~ c#2 ~@3", W: "f#2@12 ~@2 f#2 ~ f#2 ~@3 f#2@8 ~@2 f#2 ~",
  X: "b1@12 f#2@3 ~ b2@16, ~@15 a#2@2 ~@15", Y: "a#2@6 f2@2 d#2@5 ~ d#2 a#1",
  Z: "g#1@12 ~@2 g#1 ~ g#1 ~@3 g#1@5 ~ g#1@6", AA: "g#1@11 ~ b1@2 c2 ~ c#2@16",
  AB: "f#1@13 ~ f#2 ~ f#2 ~@3 f#2@6 ~@2 f#2 ~ f#2 ~", AC: "f#2@13 ~ f#2 ~ f#2 ~@3 f#2@8 ~@2 f#2 ~",
  AD: "[g#1@12 ~@2 g#1 ~ g#1@2 ~@2 g#1@5 g#1 ~ g#1 ~ g#1@5 b1@25 c#2@69]/4",
})).s("gm_fretless_bass").gain(0.42)

// other · electric guitar jazz · "Gtr. Jazz"
const electric_guitar_jazz = note("<~@65 A@4 ~@4 A@2 B@2 ~@6>".pickRestart({
  A: "[a#4@3 a#4 a#4@5 b4@3 c#5@4]/2", B: "[a#4@3 a#4 a#4@5 b4 a#4 c#4 c#5@4]/2",
})).s("gm_electric_guitar_jazz").gain(0.36).pan(0.7)

// other · electric guitar jazz · "Gtr. Jazz" · soft notes
const electric_guitar_jazz_2 = note("<~@66 A ~ A ~@5 A ~ A ~@6>".pickRestart({
  A: "~@3 c#4",
})).s("gm_electric_guitar_jazz").gain(0.21).pan(0.7)

// other · pad bowed · "Bowed glas"
const pad_bowed = note("<A B C D@2 ~@12 E F G@2 ~@16 H I J K ~@42>".pickRestart({
  A: "~@11 c#5@3 ~ f#5@3 ~ c#6@3 ~@2 d6@6 ~@2", B: "a6@8 g#6@3 ~ a6@3 ~ b6@3 ~ g#6@3 ~ e6@8",
  C: "~@9 d6@3 ~ c#6@3 ~ b5@3 ~ c#6@2 ~@2 b5@6 ~", D: "[~@2 a5@3 ~ c#6@3 ~ d6@3 ~ c#7@4 b6@4 a6@4 g#6@18 g#6@18 ~@2]/2",
  E: "~@3 c#5 d5 e5 f#5@6 ~@4", F: "~@7 b4@2 c#5@2 d5@2 e5@12 ~@7",
  G: "[~@14 c#6@6 ~@2 f#6@6 ~@3 g#6@6 ~@10 c#7@6 ~@11]/2", H: "~@8 f#5@4 c#6@3 ~",
  I: "d6@2 f#6@2 g#6@3 ~ g#6@2 a6@2 b6@2 g#6@2", J: "d6@4 c#6@3 ~ f#6@2 g#6@2 a6@2 f#6@2", K: "c6@7 ~ d7@8 c#7@16",
})).s("gm_pad_bowed").gain(0.18)

// chords · epiano1 · "El. Piano"
const epiano1_2 = note(`<
  ~@13 A@2 B@7 C D C E F G H I C D C E F G H J K L M@2 ~@3 N O P Q R S R S T U V W R S R S T U V W R S R S T U V W ~@10
>`.pickRestart({
  A: "[~@9 [g#3,b3,e4]@8 [g#3,b3,e4]@8 [e3,d4]@8 c#4@8 ~ [c#4,f4,b4]@8 [c#4,f4,g#4]@8 [f#2,a3,c#4,f#4]@6, ~@9 e2@16 [a2,a3]@16 ~ c#3@16 ~@6]/2", // E E7 C#7 C# F#m A
  B: "[~@2 [e2,a3,c#4,e4,f#4]@8 ~ [d#2,d#3,c#4,d#4,f#4]@16 [g#3,f#4]@16 [g#3,f4]@16 ~ [f#3,a3,c#4]@8 [f#3,a3,c#4]@8 [f#3,a3,b3,d4]@8 ~ [f#3,a3,b3,d4]@8 [e3,g#3,b3]@8 [e3,g#3,b3]@8 [e3,a3,c#4]@8 [e3,a3,c#4]@8 ~ [f3,g#3,d4]@8 [f3,g#3,c#4]@8 [f#3,a3,c#4]@8 [f#3,a3,c#4]@8 ~@9 c#5@8 [c#3,f#3,a#3]@8 a#3@8 ~ b3@8 a#3@8 [a#3,c#4,f#4]@16, ~@27 [c#2,c#4]@33 f#2@16 b2@16 ~ e2@16 a2@16 ~ g#2@16 f#2@16 ~ [c#2,c#4,f4,g#4]@16 f#2@33 ~@16, ~@183 [c#3,f#3]@25 ~@16]/7", // F#m7 D#m7 G#7 C# F#m Bm7 E A …
  C: "[a#3,c#4,f4] [b3,d#4,f#4]", D: "[b3,c#4,f#4] [b3,c#4,f4] [a#3,c#4,f#4]@2",
  E: "[b3,c#4,f#4] [b3,c#4,f4] [b3,d#4,f#4]@2", F: "[g#3,c#4,f#4] [a#3,c#4,f4]", G: "[a#3,d#4,f#4] [g#3,c4,d#4,f#4]",
  H: "[g#3,c4,d#4,f#4] [g#3,b3,d#4,f#4]", I: "[g#3,c#4,f#4] [g#3,c#4,f4] [a#3,c#4,f#4]@2",
  J: "[g#3,c#4,f#4] [g#3,c#4,f4] [f#2,f#3,a3,c#4]@2", K: "[b2,f#3,a3,b3,d4] [e2,e3,g#3,b3]",
  L: "d4 c#4 [d2,f#3,a3,c#4]@2, [a2,e3,g#3] ~", M: "[[g2,g3,b3,d4] [c#3,f#4] [c#2,f4] ~, ~ [g#3,c#4]@2 ~]/2",
  N: "~@2 [g#3,b3,e4]!2, ~ e2", O: "[e3,d4] c#4 [c#4,f4,b4] [c#4,f4,g#4], [a2,a3] c#3",
  P: "[f#2,a3,c#4,f#4] [e2,a3,c#4,e4,f#4] [d#2,d#3,c#4,d#4,f#4]@2", Q: "[g#3,f#4] [g#3,f4], [c#2,c#4]",
  R: "[a#3,c#4,f#4] [a#3,c#4,f4]", S: "[b3,d#4,f#4]@2 [b3,c#4,f#4] [b3,c#4,f4]", T: "[b3,d#4,f#4] [g#3,c#4,f#4]",
  U: "[a#3,c#4,f4] [a#3,d#4,f#4]", V: "[g#3,c4,d#4,f#4]!2", W: "[g#3,b3,d#4,f#4]@2 [g#3,c#4,f#4] [g#3,c#4,f4]",
})).s("gm_epiano1").gain(0.41).pan(0.4)

// other · string ensemble 1 · "Archi 1"
const string_ensemble_1 = note(`<
  ~@13 A B C@2 ~@4 D E F G H I J K L E F G H I J M N O P Q@2 ~@6 R S T S U V W X Y S T S U V W Z AA AB U AC AD AE AF AG
  AH AI AJ AI AK AL AM AN@4
>`.pickRestart({
  A: "~@9 b3@4 e4@4 g#4@4 b4@4 d5@7", B: "~ c#5@9 f3@4 g#3@4 c#4@4 f4@4 f#4@6", C: "[~@2 a4@8 ~ g#4@16 f#4@17 ~@20]/2",
  D: "[f#2,f#4,c#5,f#5] a#5", E: "c#6 b5", F: "c#6 a#5", G: "c#6@4 b5@3 c#6", H: "g#5@8 b5@6 a#5 b5",
  I: "c#6@4 g#6@2 f#6 f6 a#5@6 g#6@2", J: "f#6@2 c6 c#6", K: "d#6 f#6 g#5 a#5", L: "b5 c#6 a#5@2",
  M: "d#6@4 f#6@4 b5@3 ~ c#6@3 ~", N: "d#6@3 ~ f6@3 ~ g#5@2 g#4@2 a4@2 e5@2",
  O: "e5@4 d5@2 c#5 d5 f#5@2 f#4@2 g#4@2 e5@2", P: "d5@2 c#5@2 e5 e4 f#4 d5", Q: "[c5 b4 c#5@4 ~@2]/2",
  R: "~ [f#2,f#4,c#5,f#5]", S: "a#5 c#6", T: "b5 c#6", U: "b5@3 c#6 g#5@4", V: "b5@6 a#5 b5 c#6@4 g#6@2 f#6 f6",
  W: "a#5@3 g#6 f#6@4", X: "c6 c#6 d#6 f#6", Y: "g#5 a#5 b5 c#6", Z: "d#6@6 c#6 c6 a#5@2 g#5@6",
  AA: "c#6@13 b5 a#5 g#5 f#5@4 f5@12", AB: "~ c#5 g#5 c#6 c#6@3 a#5", AC: "~ f#5 c#6 f#6 f#6@2 f6@2",
  AD: "d#6@6 f6 d#6 c#6@8", AE: "b4@2 d#5 f#5 f5@4", AF: "a#4@2 c#5 f5 f#5@4", AG: "d#5 f5 f#5 g#5",
  AH: "g#5 b5 c#6 f6", AI: "f#5@6 a#5@2 a#5@6 b5 a#5", AJ: "f#5 b5 a#5 g#5 c#6@4", AK: "f#5 b5 a#5 g#5 c#5@4",
  AL: "d#5@6 f5 f#5 f5@6 f#5 g#5", AM: "c#6@3 a#5 f#5@4", AN: "[d#5@8 f5@8 f#5@9 g#5@9 b5@25 c#6@69]/4",
})).s("gm_string_ensemble_1").gain(0.3).pan(0)

// other · string ensemble 1 · "Archi 1" · soft notes
const string_ensemble_1_soft = note("<~@4 A@3 B@2 C@5 ~@2 D ~@66>".pickRestart({
  A: "[~@30 c#6@7 ~@2 c#6@8 d6@16 b5@7 ~ b5@9 c#6@16]/3",
  B: "[g#5@7 ~ g#5@9 a5@12 c#6@4 d6@4 c#6@4 b5@4 a5@4 g#5@15]/2",
  C: "[~@3 c#6@7 ~@2 c#6@8 d6@16 b5@7 ~@2 b5@8 c#6@16 g#5@7 ~@2 g#5@8 a5@8 c#6@42 ~@24]/5", D: "~@11 f4@16 ~@5",
})).s("gm_string_ensemble_1").gain(0.1).pan(0)

// other · string ensemble 1 · "Archi 2"
const string_ensemble_1_2 = note(`<
  ~@21 A B C D E F G H C B C D E F G I J K L M@2 ~@7 N O N P Q R S T N O N P Q R U V W P X Y Z AA AB AC AD AE AD AF AG
  AH AI@4
>`.pickRestart({
  A: "~ a#4", B: "c#5 b4", C: "c#5 a#4", D: "c#5@4 b4@3 c#5", E: "g#4@8 b4@6 a#4 b4",
  F: "c#5@4 g#5@2 f#5 f5 a#4@6 g#5@2", G: "f#5@16 ~@4 g#4@4 c5@4 g#4@3 ~", H: "~@2 g#4@2 c5@2 g#4 ~ f#4@4 b4@4",
  I: "~@4 g#4@4 c5@4 g#4@2 ~@2 b4@7 ~ c#5@7 ~", J: "d#5@7 ~ f5@7 ~ f#3@12 g#3@2 a3@2",
  K: "b3@4 d4@2 c#4 d4 e3@6 f#3 g#3", L: "a3@4 c#4@2 b3 c#4 d3@6 e3 f#3", M: "[g3@12 a3@2 b3@2 c#4@31 ~@17]/2",
  N: "a#4 c#5", O: "b4 c#5", P: "b4@3 c#5 g#4@4", Q: "b4@6 a#4 b4 c#5@4 g#5@2 f#5 f5", R: "a#4@3 g#5 f#5@4",
  S: "~@4 g#4@4 c5@4 g#4@3 ~@5 g#4@4 c5@4 g#4@2 ~@2", T: "f#4 b4 c#5@2", U: "d#5@6 c#5 c5 a#4@2 g#4@6",
  V: "c#5@13 b4 a#4 g#4 f#4@4 f4@12", W: "~ c#4 g#4 c#5 c#5@3 a#4", X: "~ f#4 c#5 f#5 f#5@2 f5@2",
  Y: "d#5@6 f5 d#5 c#5@8", Z: "b3@2 d#4 f#4 f4@4", AA: "a#3@2 c#4 f4 f#4@4", AB: "d#4 f4 f#4 g#4", AC: "g#4 b4 c#5 f5",
  AD: "f#4@6 a#4@2 a#4@6 b4 a#4", AE: "f#4 b4 a#4 g#4 c#5@4", AF: "f#4 b4 a#4 g#4 c#4@4",
  AG: "d#4@6 f4 f#4 f4@6 f#4 g#4", AH: "c#5@3 a#4 f#4@4", AI: "[d#4@8 f4@8 f#4@9 g#4@9 b4@25 c#5@69]/4",
})).s("gm_string_ensemble_1").gain(0.3).pan(1)

// other · string ensemble 1 · "Archi 2" · soft notes
const string_ensemble_1_soft_2 = note("<~@4 A@3 B C D@5 ~ E@2 ~@66>".pickRestart({
  A: "[~@30 a4@6 ~@3 a4@8 b4@16 g#4@6 ~@2 g#4@8 ~ a4@16]/3", B: "f4@6 ~@2 f4@8 ~ b4@8 a4@7", C: "~ b4@8 a4@8 g#4@15",
  D: "[~@3 a4@6 ~@3 a4@8 b4@16 g#4@6 ~@3 g#4@8 a4@16 f4@6 ~@3 f4@8 a4@8 f#4@8 f4@32 ~@26]/5", E: "[~@27 c#6@32 ~@5]/2",
})).s("gm_string_ensemble_1").gain(0.1).pan(1)

// other · viola · "Viole"
const viola = note("<~@13 A B C@2 ~ D@4 ~@15 E@5 ~@3 F G H I ~@34>".pickRestart({
  A: "~@9 g#3@4 b3@4 e4@4 b3@4 d4@7", B: "~ c#4@8 ~ f3@4 g#3@4 c#4@4 b3@4 a3@6",
  C: "[~@2 c#4@8 ~ g#3@16 f#3@16 f3@16 ~@5]/2", D: "[~@30 g#3@16 f#3@17 f3@16 f#3@33 ~@16]/4",
  E: "[~@8 f#3@10 b3 c#4 d4@2 c#4 d4 e3@10 f#3 g#3 a3@2 b3 c#4 d4@10 e3 f#3 g3@2 a3 b3 c#4@16 ~@8]/5", F: "~ g#3",
  G: "a3 f3", H: "f#3 g#3", I: "c#4@15 ~",
})).s("gm_viola").gain(0.3).pan(0.4)

// chords · string ensemble 2 · "Archi slow"
const string_ensemble_2 = note(`<
  ~@4 A@3 B C D E F@4 G@2 H I@4 J K J L M N@2 O P Q P R S T@2 U V W X@2 ~@3 Y Z AA AB AC AD AC AD AE@4 AC AD AC AD AE@4
  AF AG AF AG AH@4 AC AD AC AD AI@6
>`.pickRestart({
  A: "[~@30 [a3,c#4]@4 ~@5 [a3,c#4]@6 ~@2 [b3,d4]@12 ~@4 [g#3,b3]@4 ~@4 [g#3,b3]@6 ~@3 [a3,c#4]@12 ~@4]/3", // A Bm G#m A
  B: "[f3,g#3]@4 ~@4 [f3,g#3]@6 ~@3 b3@8 a3@7, ~@17 f#3@15", C: "~ [b2,b3]@8 [a2,a3]@8 [c#2,g#3]@14 ~",
  D: "~@3 [a3,c#4]@4 ~@5 [a3,c#4]@6 ~@2 [b3,d4]@12", E: "~@4 [g#3,b3]@4 ~@5 [g#3,b3]@6 ~@2 [a3,c#4]@11",
  F: "[~@5 [f3,g#3]@4 ~@5 [f3,g#3]@6 ~@2 a3@8 f#3@8 [c#2,c#4]@33 ~@2 [g#3,b3]@6 ~@2 [g#3,b3]@6 ~@2 d4@8 c#4@8 ~ [f3,g#3]@6 ~@2 [f3,g#3]@6 ~@2 [f#2,a3]@6, ~@73 e2@16 [a2,a3]@17 c#2@16 ~@6]/4", // Fm C# G#m Fm F#m A
  G: "[~@2 [e2,a3]@8 ~ [d#2,g#3]@16 f#3@16 f3@15 ~@2 [a3,c#4]@4, ~@27 c#2@31 ~@6]/2", // A5 G#5 A
  H: "~@4 [a3,c#4]@6 ~@2 [b3,d4]@12 ~@5 [g#3,b3]@3", // A Bm G#m
  I: "[~@5 [g#3,b3]@6 ~@2 [a3,c#4]@12 ~@5 [f3,g#3]@4 ~@4 [f3,g#3]@6 ~@2 b3@8 a3@8 ~ [c#2,g#3]@16 [f#2,f#3,a#3]@25 ~@8 f#4@11 a#4@4 ~, ~@23 f#3@8 ~@33]/4", // G#m A Fm C#5 F#
  J: "f4@11 a#4@4 ~ d#4@16", K: "f#4@8 f4@8 f#4@11 a#4@4 ~", L: "f#4 f4 [b3,d#4]@2", M: "[c#4,f4]",
  N: "[f#4 c4@2 b3, d#4]/2", O: "f#4@8 f4@8 f#4@11 a#4@4 ~, c#4 f#2", P: "f4@11 a#4@4 ~ [b2,d#4]@16, a#2 ~",
  Q: "f#4@8 f4@8 f#4@11 a#4@4 ~, c#3 f#2", R: "f#4 f4 [b2,b3,d#4]@2, c#3 ~", S: "c#3 a#2, [c#4,f4]",
  T: "[[d#3,f#4] [g#2,c4]@2 [b2,b3], d#4]/2", U: "f#4@8 f4@8 f#2@11 g#2@2 ~ a2@2, [c#3,c#4] ~",
  V: "b2@8 d3@4 ~@2 d3@2 e2@11 f#2@2 ~ g#2@2, ~@13 c#3@2 ~@17",
  W: "a2@8 c#3@4 ~@2 c#3@2 d2@11 e2@2 f#2@2 ~, ~@13 b2@2 ~@17", X: "[g2@11 a2@2 ~ b2@2 c#3@32 ~@16]/2",
  Y: "~@8 [g#3,b3]@3 ~ [g#3,b3]@3 ~, ~ e2", Z: "d4@4 c#4@4 [f3,g#3]@3 ~ [f3,g#3]@3 ~, [a2,a3] c#2",
  AA: "[f#2,a3] [e2,a3] [d#2,g#3]@2", AB: "f#3@8 f3@7 ~, c#2@15 ~", AC: "f#4@11 a#4@4 ~ f4@11 a#4@4 ~, f#2 a#2",
  AD: "[b2,d#4]@2 f#4 f4, ~ c#3", // B
  AE: "[[b2,b3,d#4]@2 c#3@2 a#2@2 [d#3,f#4]@2 [g#2,c4]@4 [b2,b3]@2 f#4 f4, ~ [c#4,f4]@2 d#4@4 [c#3,c#4]]/4", // B D#m G# B C#
  AF: "f#4@11 a#4@4 ~ f4@11 a#4@4 ~", AG: "d#4@2 f#4 f4",
  AH: "[[b3,d#4]@2 [c#4,f4]@4 f#4@2 c4@4 b3@2 f#4 f4, ~@3 d#4@4 c#4]/4", // B C#
  AI: "[[b2,b3,d#4]@16 c#3@16 a#2@16 [d#3,f#4]@16 [g#2,c4]@34 [b2,b3]@25 [c#3,c#4,f4]@69, ~@4 [c#4,f4]@8 d#4@19 ~@17]/6", // B D#m G# B C#
})).s("gm_string_ensemble_2").gain(0.3).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  ~@20 A B@8 C@6 D B@2 ~@3 E D@5 F@2 G@9 H G@3 I G@2 H I G@2 J I J K L I G@3 I G M ~@2
>`.pickRestart({
  A: "~@15 x ~@13 x ~@2", B: "x!2 ~@2 x ~@3", C: "x ~ x ~@5 x ~@6 x", D: "x ~@7 x ~@6 x", E: "~@8 x ~@6 x", F: "x!2",
  G: "x ~@6 x!2 ~ x ~@5", H: "x ~@6 x!2 ~@2 x ~@4", I: "x ~@6 x!2 ~@7", J: "x ~@6 x!2 ~ x ~@3 x ~", K: "x ~@3 x!2 ~@2",
  L: "x ~@6 x!2 ~ x ~@4 x", M: "~@2 x ~@24 x ~@4",
})).gain(0.56)

// drums · rim
const rim = s("rim").struct("<~@41 [~@3 x] [~ x ~ x]!6 [~ x ~@2] ~@34>").gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~@21 A B C B D B C B E B C B D B@3 F ~@11 B G B@5 H B G B G I G B J B K B J I G I L B M B N B G O ~@3
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~ x!2 ~@4 x ~@3", D: "~@2 x!3 ~@7 x ~@3", E: "~@2 x!2 ~@8 x ~@3",
  F: "~@3 x!2 ~ x!2 ~@8", G: "~@4 x ~@7 x ~ x!2", H: "~@4 x ~@4 x!3 ~@4", I: "~@4 x ~@7 x ~@2 x",
  J: "~@4 x ~@4 x!4 ~@3", K: "~@8 x ~@11 x!2 ~ x ~@8", L: "~@8 x ~@9 x!3 ~ x ~ x ~@7", M: "~@4 x ~@6 x!2 ~ x!2",
  N: "~@4 x ~@7 x!3 ~", O: "~@8 x ~@16 x ~@6",
})).gain(0.72)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@21 A ~@26 B ~@7 C ~@15 D ~@7 E ~@2>".pickRestart({
  A: "~@4 x!4 ~@8", B: "~@11 x!2 ~ x ~", C: "~@12 x!4", D: "~@15 x", E: "~@2 x ~@24 x ~@4",
})).gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@25 A ~@3 B ~@3 A ~@14 C ~@3 D ~@3 D ~ E ~@5 C E F ~@5 D ~@10>".pickRestart({
// … 47 more lines

More by Zero