Strudelify

Roze Bril

Tim Immers

KeyF majorTempo150 bpm
0:00/0:00
// Roze Bril — Tim Immers
// 150 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 130 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/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 · electric guitar clean · "+CHORUS GT"
const electric_guitar_clean = note(`<
  ~@2 A@2 B@2 A@2 C@2 A B A@3 B D B A B A E F D B G A B A@3 B D B A B A E F D B G A@2 B@2 A@2 C@2 A H B I C J K@2 A B
  A@3 B D B A B A E F D B G A@2 B@2 A@2 C@2 A H B I C J L M@2 C@2 M@2 N@2 M I C O N P Q@2 N@2 Q@2 R@2 Q O N S R T U Q R
  T U ~@6 U ~
>`.pickRestart({
  A: "~@2 [a3,c4,f4,a4] ~@3 [a3,c4,f4,a4] ~", B: "~@2 [bb3,d4,f4,bb4] ~@3 [bb3,d4,f4,bb4] ~",
  C: "~@2 [c4,e4,g4,c5] ~@3 [c4,e4,g4,c5] ~", D: "~@2 [bb3,eb4,g4,bb4] ~@3 [bb3,eb4,g4,bb4] ~",
  E: "~@2 [a3,d4,f4,a4] ~@3 [a3,d4,f4,a4] ~", F: "~@2 [bb3,d4,g4,bb4] ~@3 [bb3,d4,g4,bb4] ~", G: "[c4,e4,g4,c5] ~@7",
  H: "~@2 [a3,c4,eb4,a4] ~@3 [a3,c4,eb4,a4] ~", I: "~@2 [b3,d4,f4,b4] ~@3 [b3,d4,f4,b4] ~",
  J: "~@2 [bb3,d4,f4,bb4] ~@3 [c4,e4,g4,c5] ~", // Bb C
  K: "[~@4 [a3,c4,f4,a4]@2 ~@6 [bb3,d4,bb4]@3 [a3,c4,a4]@14 ~@3, ~@3 f4@4 ~]/2", // F Bb Am
  L: "~@4 [a3,c4,f4,a4]@2 ~@6 [bb3,d4,f4,bb4]@3 [b3,g4,b4]", M: "~@2 [b3,d4,g4,b4] ~@3 [b3,d4,g4,b4] ~",
  N: "~@2 [d4,gb4,a4,d5] ~@3 [d4,gb4,a4,d5] ~", O: "~@2 [db4,e4,g4,db5] ~@3 [db4,e4,g4,db5] ~",
  P: "~@2 [c4,e4,g4,c5] ~@3 [d4,gb4,a4,d5] ~", Q: "~@2 [db4,e4,a4,db5] ~@3 [db4,e4,a4,db5] ~",
  R: "~@2 [e4,ab4,b4,e5] ~@3 [e4,ab4,b4,e5] ~", S: "~@2 [eb4,gb4,a4,eb5] ~@3 [eb4,gb4,a4,eb5] ~",
  T: "~@2 [d4,gb4,a4,d5] ~@3 [e4,ab4,b4,e5] ~", U: "~@4 [db4,e4,a4,db5]@2 ~@6 [d4,gb4,a4,d5]@3 [db4,e4,db5]",
})).s("gm_electric_guitar_clean").gain(0.28).pan(0.4)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~ A B C D E F G H I J K L@3 M N O P M Q R S T U V J K L@3 M N O P M Q R S W X Y B Z D E F AA AB AC AD AE AF AG AH AI
  AJ AK J K L@3 M N O P M Q R S W X AL B Z D E F AA AB AC AD AE AF AG AH AI AA AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ
  BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BO BS BT@4 ~ BU@2
>`.pickRestart({
  A: "~@3 c2", B: "f1@4 ~@3 f1 c2@2 ~ c2 f1@2 ~ f1", C: "f1@4 ~@4 c2@3 ~ f2@4", D: "bb1@4 ~@3 bb1 f2@2 ~ f2 f1@2 ~ g1",
  E: "bb1@4 ~@3 bb1 f2@2 ~ f2 bb1@2 ~ c2", F: "f1@4 ~@3 f1 c2@2 ~ c2 c2@2 ~ f1", G: "f1@4 ~@3 f1 c2@3 ~ f2@2 ~ bb1",
  H: "c2@4 ~@3 c2 g2@2 ~ g2 bb1@2 ~ b1", I: "c2@4 ~@3 c2 c2@2 ~ c3 c2@4", J: "f1@4 ~@3 f1 c2@2 ~ c2 f1@2 ~@2",
  K: "bb1@4 ~@3 bb1 f2@2 ~ f2 bb1@2 ~@2", L: "f1@4 ~@3 f1 c2@2 ~ c2 f2@3 ~", M: "bb1@4 ~@3 bb1 f1@2 ~ f1 bb1@2 ~@2",
  N: "eb1@4 ~@3 bb1 eb2@2 ~ eb2 eb1@3 ~", O: "d1@4 ~@3 d2 d1@3 ~ eb1@3 ~", P: "f1@4 ~@3 f1 c2@2 ~ c2 f2@2 ~@2",
  Q: "f1@4 ~@3 f1 a1@3 ~ c2@2 ~ f2", R: "d2@3 ~ d1@3 ~ d1@7 ~", S: "g1@4 ~@3 g1 d2@2 ~ d2 g1@2 ~@2",
  T: "eb1@4 ~@3 bb1 eb2@4 ~@4", U: "c2@4 ~@3 c2 g1@5 ~@3", V: "c1 ~@3", W: "eb1@4 ~@3 bb1 eb2@2 ~ eb2 bb1@2 ~@2",
  X: "c2@4 ~@3 c2 g1@3 ~ c1@3 ~", Y: "c1@4 ~@4 c1@3 ~ d1@3 ~", Z: "f1@4 ~@3 f1 c2@2 ~@2 f2@3 ~",
  AA: "f1@4 ~@3 f1 c2@3 ~ f2@3 ~", AB: "c2@4 ~@3 c3 g2@4 ~@3 b2", AC: "c3@3 ~ c2@2 ~@2 bb1@3 ~ bb2@3 ~",
  AD: "a1@4 ~@3 a1 a2@3 ~ a1@3 ~", AE: "f1@4 ~@3 f1 c2@2 ~ f2 c2@3 ~", AF: "bb1@4 ~@3 bb1 f2@2 ~@2 bb2@3 ~",
  AG: "b1@4 ~@3 b1 g2@2 ~ g2 b1@3 ~", AH: "c2@4 ~@3 c2 c3@3 ~ c2@3 ~", AI: "bb1@4 ~@3 bb1 c2@4 ~@4",
  AJ: "f1@4 ~@3 f1 c2@2 ~@2 c2@3 ~", AK: "f1@4 ~ b1 ~@2 c2@2 ~@2 f2@2 ~@2", AL: "c2@4 ~@4 d1@3 ~ e1@3 ~",
  AM: "g1@4 ~@3 g1 d2@2 ~ d2 g1@2 ~ g1", AN: "g1@4 ~@3 g1 b1@2 ~@2 g1@3 ~", AO: "c2@2 ~@2 g1@3 ~ c1@4 ~@3 g1",
  AP: "c2@4 ~@3 c1 f1@3 ~ gb1@3 ~", AQ: "g1@4 ~@3 g1 d2@2 ~ d2 d1@2 ~ e1", AR: "g1@4 ~@3 g1 d2@3 ~ g2@2 ~ c2",
  AS: "d2@4 ~@3 d2 a1@3 ~ d1@3 ~", AT: "d1@3 ~ a1@2 ~@2 c2@6 ~@2", AU: "g1@4 ~@3 g1 b1@2 ~@2 a1@3 ~",
  AV: "g1@4 ~@3 g1 b1@3 ~ g1@3 ~", AW: "c1@4 ~@3 c1 e1@3 ~ g1@3 ~", AX: "db1@4 ~@3 db1 a1@3 ~ db1@3 ~",
  AY: "d1@4 ~@3 d1 d2@2 ~@2 d2@2 ~@2", AZ: "c2@3 ~ c2@3 ~ d2@3 ~ gb2@2 ~@2", BA: "a1@4 ~@3 a1 e2@2 ~ e2 e1@2 ~ e1",
  BB: "a1@4 ~@3 a1 db2@2 ~@2 a1@3 ~", BC: "d2@4 ~@3 d2 a1@2 ~ a1 gb1@2 ~ gb1", BD: "d1@4 ~@3 gb1 gb1@3 ~ g1@3 ~",
  BE: "a1@4 ~@3 a1 e1@2 ~ e1 ab1@3 ~", BF: "a1@4 ~@3 a1 d2@3 ~ eb2@3 ~", BG: "e2@4 ~@3 e2 b1@4 ~@3 g2",
  BH: "ab2@2 ~ e2@2 ~@3 d1@3 ~ d2@3 ~", BI: "db1@4 ~@3 db1 db2@3 ~ b1@3 ~", BJ: "a1@4 ~@3 a1 e1@2 ~ e1 a1@3 ~",
  BK: "d1@4 ~@3 d1 a1@2 ~@2 d1@3 ~", BL: "eb1@4 ~@3 eb1 b1@2 ~ b1 eb1@3 ~", BM: "e1@4 ~@3 e1 e2@3 ~ e1@3 ~",
  BN: "d2@4 ~@3 d2 e2@3 ~ e1@3 ~", BO: "a1@4 ~@3 a1 e2@2 ~@2 e1@3 ~", BP: "a1@4 ~@3 c3 db3@2 ~@2 a2@3 ~",
  BQ: "e1@4 ~@3 e1 e1@3 ~ b1@3 ~", BR: "d2@4 ~@3 d2 e2@3 ~ e2@3 ~", BS: "a1@4 ~@3 a1 e1@3 ~ b1@3 ~",
  BT: "[e1@21 ~ d1@14 ~@2 e1@25 ~]/4", BU: "[a1@4 ~@3 a1 e2@2 ~ e1 e1@2 ~ a1@3 ~@14]/2",
})).s("gm_electric_bass_finger").gain(0.33)

// bass · electric bass finger · "FINGERDBAS" · soft notes
const bass_soft = note(`<
  ~@10 A B ~@3 C ~@2 A B ~@2 D E ~@2 A B ~@3 C ~@2 A B ~@2 D@2 ~@3 F ~@8 G ~@2 B F B A B ~@3 C ~@2 A B ~@2 D@2 ~ H ~ F
  ~@8 G ~@2 B ~@2 I J ~@5 I ~@3 K L ~ M ~@8 N ~@3 O P ~@2 O ~@8
>`.pickRestart({
  A: "~@15 a1", B: "~@15 c2", C: "~@15 bb1", D: "~@15 g1", E: "~@15 d2", F: "~@11 c2 ~@4", G: "~@11 f2 ~@4",
  H: "~@7 c1 ~@8", I: "~@11 b1 ~@4", J: "~@3 c2 ~@12", K: "~@11 d2 ~@3 d1", L: "~@15 b1", M: "~@11 db2 ~@4",
  N: "~@11 a1 ~@4", O: "~@11 e2 ~@4", P: "~@11 a2 ~@4",
})).s("gm_electric_bass_finger").gain(0.22)

// chords · pad warm · "WARM PAD"
const pad_warm = note("<~@26 A@4 B@4 C@4 D@3 E ~@16 A@4 B@4 C@4 D@3 E ~@56>".pickRestart({
  A: "[[a3,c4]@16 [bb3,d4]@16 [a3,c4]@31 ~, f4]/4", // Am Bb Am
  B: "[[a3,c4]@16 d4@16 [eb4,g4]@16 [d4,f4]@15 ~, f4 ~, ~@16 bb3@47 ~]/4", // Am Eb Dm
  C: "[[a3,c4] [bb3,d4] c4 d4, f4, ~@32 a3@31 ~]/4", D: "[d4 eb4 [d4,f4], bb3, g4@11 ~@5]/3", E: "[c4,e4,g4] ~@7",
})).s("gm_pad_warm").gain(0.07)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  ~ A B C D@2 B E F@3 ~@22 G H ~@5 I J ~@2 K L ~@3 M ~@2 N@2 ~@3 O ~@7 G H ~@2 P Q@2 R S ~@2 K L ~@3 M ~@2 N@2 ~@2 T
  ~@14 U ~ V W U ~@2 X U ~ Y@2 ~@2 Z ~@3 Z ~@6 Z ~
>`.pickRestart({
  A: "~@8 c4@3 d4 f4@2 ~@2", B: "a4@3 ~@5 a4@2 ~@6", C: "a4@3 ~@5 a4@4 g4@3 f4",
  D: "[g4@3 f4@18 ~@2 g4 c4@3 d4 f4 ~@3, ~@24 f4 ~@7]/2", E: "a4@3 ~@5 a4@3 a4 g4@3 f4",
  F: "[g4@20 ~@4 [d4,d5]@2 ~ [f4,f5] ~@3 f5@2 ~@15, ~@31 f4 ~@16]/3", G: "c4@4 d3 ~@3 d4@4 d3 ~@3", H: "f4, e4 ~@15",
  I: "[c3,f4,g4,c5]", J: "[c3,c5]@2 ~@6 [f4,f5]@3 [f4,g4,f5,g5] [d4,d5]@2 [f4,f5] ~, [e4,g4] ~@15",
  K: "~@8 ab4 ~@2 ab4 g4@3 f4", L: "g4@3 f4@11 ~@2", M: "d5 ~@3 c5 ~@3 a4@3 bb4 g4@2 ~ f4, ~@11 a4@2 ~@3",
  N: "[~@8 ab4 ~@2 ab4 g4 f4 g4@14 ~@4]/2",
  O: "[a3,a4] ~@2 [bb3,bb4] ~ [b3,b4] ~@2 [c4,c5] ~@3 [f3,bb4,c5,f5]@2 ~ [f3,a4,c5,f5]", P: "~@3 a4",
  Q: "[[f4,g4,bb4]@31 e5]/2", R: "[g4,c5,f5], b4 ~@15",
  S: "[g4,c5] ~@6 [d4,d5] [a4,a5] [g4,g5] ~@2 [d4,d5]@2 ~ [c4,c5], e5 ~@7", T: "~@12 [g4,g5]@2 ~ [g4,g5]",
  U: "~@4 [a4,a5]@3 [d4,e4,f4,d5,e5,f5] ~@4 [a4,a5]@3 [d4,e4,f4,d5,e5,f5]", V: "~@8 [c4,c5] ~@2 [c4,c5] [b3,b4]@3 a4",
  W: "[b3,b4]@3 [a3,a4]@11 ~@2", // B A
  X: "[gb4,gb5] ~@3 [e4,e5] ~@3 [db4,db5]@3 d5 [b3,b4]@2 ~ [a3,a4], ~@11 [db4,db5]@2 ~@3", // Gb E Db B A Db
  Y: "[~@8 [c4,c5] ~@2 [c4,c5] [b3,b4] [a3,a4] [b3,b4]@14 ~@4]/2", Z: "~@12 [gb4,d5,gb5,a5]@2 ~ [e4,db5,e5,a5]",
})).s("gm_brass_section").gain(0.35).pan(0.8)

// chords · brass section · "BRASS 1" · soft notes
const brass_section_soft = note("<~@69 A ~ B ~@31 C D E ~ C D ~ F C D ~@17>".pickRestart({
  A: "~@14 bb4 ab4", B: "~@14 eb5 [a4,bb4]", C: "~@6 [g4,g5] ~ [c4,c5] ~@5 [g4,g5] ~", D: "[c4,c5] ~@15", E: "~@15 a3",
  F: "~@11 d4 ~@4",
})).s("gm_brass_section").gain(0.2).pan(0.8)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean_2 = note(`<
  ~@42 A B C D A B E F A G C H I J K ~@17 A B C D A B E F A G C H I J K L M E F L M N O L P E Q R S T U N O T U V W T X
  N Y Z AA AB ~ Z AA AB ~@6 AC@2
>`.pickRestart({
  A: "~@4 [f4,a4,c5]@2 ~@2 [a4,c5,f5]@2 ~@2 [f4,a4,c5]@2 ~ [f4,a4,c5]", // F
  B: "[a4,c5,f5] ~ [f4,a4,c5] ~ [a4,c5,f5] ~ [f4,a4,c5] ~", // F
  C: "~@4 [f4,bb4,d5]@2 ~@2 [bb4,d5,f5]@2 ~@2 [f4,bb4,d5]@2 ~ [f4,bb4,d5]", // Bb
  D: "[bb4,d5,f5] ~ [f4,bb4,d5] ~ [bb4,d5,f5] ~ [f4,bb4,d5] ~", // Bb
  E: "~@4 [g4,c5,e5]@2 ~@2 [c5,e5,g5]@2 ~@2 [g4,c5,e5]@2 ~ [g4,c5,e5]", // C
  F: "[c5,e5,g5] ~ [g4,c5,e5] ~ [c5,e5,g5] ~ [g4,c5,e5] ~", G: "[a4,c5,f5] ~ [eb4,a4,c5] ~ [a4,c5,f5] ~ [eb4,a4,c5] ~",
  H: "[b4,d5,f5] ~ [f4,b4,d5] ~ [b4,d5,f5] ~ [f4,b4,d5] ~", // Bdim
  I: "~@4 [g4,c5,e5]@2 ~@2 [c5,e5,g5]@2 ~@2 [g4,c5,e5]@2 ~ [c5,e5,g5]", // C
  J: "~@4 [bb4,d5,f5]@2 ~ [bb4,d5,f5] [c5,e5,g5]@2 ~@2 [g4,c5,e5]@2 ~ [c5,e5,g5]", // Bb C
  K: "~@4 [f4,c5,f5] ~@3 [f4,c5,f5] ~@7", L: "~@4 [g4,b4,d5]@2 ~@2 [b4,d5,g5]@2 ~@2 [g4,b4,d5]@2 ~ [g4,b4,d5]",
  M: "[b4,d5,g5] ~ [g4,b4,d5] ~ [b4,d5,g5] ~ [g4,b4,d5] ~", // G
  N: "~@4 [a4,d5,gb5]@2 ~@2 [d5,gb5,a5]@2 ~@2 [a4,d5,gb5]@2 ~ [a4,d5,gb5]", // D
  O: "[d5,gb5,a5] ~ [a4,d5,gb5] ~ [d5,gb5,a5] ~ [a4,d5,gb5] ~", // D
  P: "[b4,d5,g5] ~ [f4,b4,d5] ~ [b4,d5,g5] ~ [f4,b4,d5] ~", // G Bdim G Bdim
  Q: "[db5,e5,g5] ~ [g4,db5,e5] ~ [db5,e5,g5] ~ [g4,db5,e5] ~", // Dbdim
  R: "~@4 [a4,d5,gb5]@2 ~@2 [d5,gb5,a5]@2 ~@2 [a4,d5,gb5]@2 ~ [d5,gb5,a5]", // D
  S: "~@4 [c5,e5,g5]@2 ~ [c5,e5,g5] [d5,gb5,a5]@2 ~@2 [a4,d5,gb5]@2 ~ [d5,gb5,a5]", // C D
  T: "~@4 [a4,db5,e5]@2 ~@2 [db5,e5,a5]@2 ~@2 [a4,db5,e5]@2 ~ [a4,db5,e5]", // A
  U: "[db5,e5,a5] ~ [a4,db5,e5] ~ [db5,e5,a5] ~ [a4,db5,e5] ~", // A
  V: "~@4 [b4,e5,ab5]@2 ~@2 [e5,ab5,b5]@2 ~@2 [b4,e5,ab5]@2 ~ [b4,e5,ab5]", // E
  W: "[e5,ab5,b5] ~ [b4,e5,ab5] ~ [e5,ab5,b5] ~ [b4,e5,ab5] ~", // E
  X: "[db5,e5,a5] ~ [g4,db5,e5] ~ [db5,e5,a5] ~ [g4,db5,e5] ~", // A Dbdim A Dbdim
  Y: "[eb5,gb5,a5] ~ [a4,eb5,gb5] ~ [eb5,gb5,a5] ~ [a4,eb5,gb5] ~", // Ebdim
  Z: "~@4 [b4,e5,ab5]@2 ~@2 [e5,ab5,b5]@2 ~@2 [b4,e5,ab5]@2 ~ [e5,ab5,b5]", // E
  AA: "~@4 [d5,gb5,a5]@2 ~ [d5,gb5,a5] [e5,ab5,b5]@2 ~@2 [b4,e5,ab5]@2 ~ [e5,ab5,b5]", // D E
  AB: "~@4 [a4,e5,a5] ~@3 [a4,e5,a5] ~@7", AC: "[~@4 [a4,db5,e5]@2 ~@2 [db5,e5,a5]@2 ~@5 [a4,db5,e5]@2 ~@15]/2",
})).s("gm_electric_guitar_clean").gain(0.11).pan(0.7)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@26 A B C D E F G H A F I J K L M N ~@16 A B C D E F G H A F I J K L M N ~@56
>`.pickRestart({
  A: "~@4 f3 ~@2 f3 ~@3 c3 f3 ~@2 f3", B: "~@4 bb2 ~@2 bb2 f3 ~@2 f3 ~@4", C: "f3 ~@2 f3!2 ~@2 f3 c3 ~@2 c3 f3 ~@2 f3",
  D: "~@3 f3!2 ~@2 f3 c3 ~@2 c3 f3 ~@2 f3", E: "f3 ~@3 f3 ~@2 f3 ~@3 c3 f3 ~@2 f3",
  F: "~@4 bb2 ~@2 bb2 f3 ~@2 f3 bb2 ~@2 bb2", G: "~@4 eb3 ~@2 eb3 ~@4 eb3 ~@2 eb3", H: "~@4 d3 ~@2 d3 ~@3 d3!2 ~@2 d3",
  I: "~@4 f3 ~@2 f3 a2 ~@2 a2 f3 ~@2 f3", J: "~@4 d3 ~@2 d3 ~@4 d3 ~@2 d3", K: "~@4 g3 ~@2 g3 ~@3 d3 g3 ~@2 g3",
  L: "~@4 eb3 ~@2 eb3 ~@4 eb3 ~@3", M: "~@4 f3 ~@2 f3 ~@4 f3 ~@3", N: "e3 ~@15",
})).s("gm_electric_guitar_muted").gain(0.29).pan(0.7)

// other · steel drums · "STEELDRUMS"
const steel_drums = note(`<
  ~@28 A B C ~@5 D E F ~@17 G ~@4 H I ~@5 J K ~@22 L M N O P Q R S T ~@16 U ~@3 U ~@6 U ~
>`.pickRestart({
  A: "~@10 [b4,c5] ~@2 d5 ~@2", B: "d5 ~@2 c5 ~ a4 ~@5 g4!5", C: "f4 ~@15",
  D: "~@3 f4 [f4,c5] c5 [f4,c5] f4 [f4,c5] c5 f4 a4 ~ f4 c5 ~", // F5
  E: "[a4,d5] ~ f4 a4 f4 [f4,a4] a4 [f4,a4] f4 [f4,a4]!2 a4 f4 ~@3", // D5 F
  F: "[bb4,d5] ~@3 [bb4,d5] ~@3 [bb4,d5] ~@3 [bb4,d5] ~@3", // Bb
  G: "~@4 [f4,a4] a4 [f4,a4] f4 [f4,a4] a4 ~@2 bb4 ~ [f4,a4]@2, ~@11 f4@2 ~@3", // F
  H: "~@2 [g4,a4] ~@2 a4 ~@2 a4 ~@2 g4 ~@4", I: "f4!8 ~@8", J: "~@2 a4 c5 ~ [f4,a4] ~@2 [a4,c5] ~@3 [a4,d5] ~@3",
  K: "a4 [a4,d5]!2 d5 [a4,d5] a4 [a4,d5]!2 ~@3 [f4,a4] ~@4", // D5 F
  L: "~@3 g4 [g4,c5] c5 [g4,c5] g4 [g4,c5] c5 ~@2 [g4,e5] ~@3", M: "[g4,d5] ~@9 g4 b4 g4 [g4,b4] b4 [g4,b4]",
  N: "[g4,d5] ~@2 [g4,d5] b4 ~@11", O: "~@3 gb4 [gb4,a4] a4 [gb4,a4] gb4 a4!3 ~ [gb4,d5] ~@2 [gb4,d5]", P: "a4 ~@15",
  Q: "~@3 g4 [g4,b4] b4 [g4,b4] g4 b4!3 ~ [g4,b4] ~@2 [g4,b4]", R: "[g4,d5] ~@3 [g4,b4] ~@11",
  S: "~@3 g4 [g4,c5] c5 [g4,c5] g4 c5!3 ~ [g4,c5] ~@2 [g4,c5]", T: "[g4,e5] ~@3 [g4,db5] ~@11",
  U: "~@4 [a4,db5] db5 [a4,db5] a4 [a4,db5] db5 ~@2 d5 ~ [a4,db5]@2, ~@11 a4@2 ~@3", // A
})).s("gm_steel_drums").gain(0.14)

// other · steel drums · "STEELDRUMS" · soft notes
const steel_drums_soft = note("<~@38 A ~@17 B ~@38 C ~ D ~ D ~@17 E ~@3 E ~@6 E ~>".pickRestart({
  A: "g4 ~@3 g4 ~@3 g4 ~@3 g4 ~@3", B: "~@3 f4 ~@12", C: "~@8 gb4 ~ gb4 ~@5", D: "~@8 g4 ~ g4 ~@5", E: "~@3 a4 ~@12",
})).s("gm_steel_drums").gain(0.11)

// other · trumpet
const trumpet = note(`<
  ~ A B C D@2 B E F@3 ~@22 G H ~@5 I J ~@2 K L ~@3 M ~@2 N@2 ~@3 O ~@7 G H ~@2 P Q@2 R S ~@2 K L ~@3 M ~@2 N@2 ~@2 T U V
  W X Y@2 Z AA AB AC AD AE AF AG AH ~ AI AJ AK ~@2 AL AK ~ AM@2 ~@2 AN ~@3 AN ~@6 AN ~
>`.pickRestart({
  A: "~@8 c4@3 d4 f4@2 ~@2", B: "a4@3 ~@5 a4@2 ~@6", C: "a4@3 ~@5 a4@4 g4@3 f4",
  D: "[g4@3 f4@18 ~@2 g4 c4@3 d4 f4 ~@3, ~@24 f4 ~@7]/2", E: "a4@3 ~@5 a4@3 a4 g4@3 f4",
  F: "[g4@20 ~@4 [d4,d5]@2 ~ [f4,f5] ~@3 f5@2 ~@15, ~@31 f4 ~@16]/3", G: "c4@4 d3 ~@3 d4@4 d3 ~@3", H: "f4, e4 ~@15",
  I: "[c3,f4,g4,c5]", J: "[c3,c5]@2 ~@6 [f4,f5]@3 [f4,g4,f5,g5] [d4,d5]@2 [f4,f5] ~, [e4,g4] ~@15",
  K: "~@8 ab4 ~@2 ab4 g4@3 f4", L: "g4@3 f4@11 ~@2", M: "d5 ~@3 c5 ~@3 a4@3 bb4 g4@2 ~ f4, ~@11 a4@2 ~@3",
  N: "[~@8 ab4 ~@2 ab4 g4 f4 g4@14 ~@4]/2",
  O: "[a3,a4] ~@2 [bb3,bb4] ~ [b3,b4] ~@2 [c4,c5] ~@3 [f3,bb4,c5,f5]@2 ~ [f3,a4,c5,f5]", P: "~@3 a4",
  Q: "[[g4,bb4]@31 e5]/2", R: "[g4,c5,f5], b4 ~@15",
  S: "[g4,c5] ~@6 [d4,d5] [a4,a5] [g4,g5] ~@2 [d4,d5]@2 ~ [c4,c5], e5 ~@7", T: "~@12 [g4,g5]@2 ~ [g4,g5]",
  U: "~@4 g4 ~@3 b4@2 ~ c5 d5 ~@3", V: "g5 ~@3 g5@7 ~@2 f5 e5 d5, ~@6 e5 ~", W: "g5@2 g5 ~@7 e5 ~@2 g5 ~ a5",
  X: "~@2 bb5 a5 g5 ~@2 e5 ~ d5 ~ bb4 a4@2 ~@2", Y: "[a4@2 ~ a4 g4 ~@3 a4@2 ~ a4 g4@6 ~@6 d5 ~@3 e5@2 ~ e5]/2",
  Z: "d5@2 ~@2 d5@9 ~@3", AA: "~@8 d5@2 ~ e5 g5@2 ~ g5", AB: "~ b5",
  AC: "~@2 a5 ~@2 g5 ~@2 gb5 f5 ~ a5 ~ e5 [e5,f5] d5", AD: "g5@3 ~ g5@7 ~ e5@2 f5 [d5,e5]",
  AE: "g5@2 ~ g5 ~@6 e5 ~@2 g5 ~ a5", AF: "~ bb5 ~@2 a5 ~@2 ab5 ~ g5 ~@4 f5 ~",
  AG: "d5 ~ db5 ~ c5@2 ~@2 c5@2 d5 c5 bb4 ~@3",
  AH: "~@4 a4@3 [d4,e4,f4,d5,e5,f5] ~@3 [c5,d5,e5] [a4,b4] ~@2 [d4,e4,f4,d5,e5,f5], a5@10 ~@2 a5@3 ~", // Dm C Asus2 Dm
  AI: "~@8 [c4,c5] ~@2 [c4,c5] [b3,b4]@3 a4", AJ: "[b3,b4]@3 [a3,a4]@11 ~@2",
  AK: "~@4 [a4,a5]@3 [d4,e4,f4,d5,e5,f5] ~@4 [a4,a5]@3 [d4,e4,f4,d5,e5,f5]", // A Dm A Dm
  AL: "[gb4,gb5] ~@3 [e4,e5] ~@3 [db4,db5]@3 d5 [b3,b4]@2 ~ [a3,a4], ~@11 [db4,db5]@2 ~@3", // Gb E Db B A Db
  AM: "[~@8 [c4,c5] ~@2 [c4,c5] [b3,b4] [a3,a4] [b3,b4]@14 ~@4]/2", AN: "~@12 [gb4,d5,gb5,a5]@2 ~ [e4,db5,e5,a5]",
})).s("gm_trumpet").gain(0.31).pan(0.3)

// other · trumpet · soft notes
const trumpet_soft = note("<~@69 A B@2 ~@21 C ~@9 D E F ~ G E ~ H G E ~@17>".pickRestart({
// … 101 more lines

More by Tim Immers