Strudelify

the trroper

i dunno

KeyF majorTempo160 bpm
0:00/0:00
// the trroper — i dunno
// 160 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3908056; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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.

// other · trombone · "Sacabuche Alto, SmartMusic SoftSynth"
const trombone = note(`<
  A B@6 C D E@6 F D E@6 G ~ H ~ I ~ H ~ J@2 K@2 L@2 M@2 N@8 H O E@6 F ~ H ~ I ~ H ~ J@2 K@2 L@2 M@2 N@8 H O E@6 F A B@6
  C
>`.pickRestart({
  A: "d5@2 d5@2 d5 c5 a4@2 c5@2 c5@2 c5 bb4 g4@2",
  B: "[bb4@2 bb4@2 bb4 a4 f4@2 c5@2 f5@2 c5@2 d5@4 d5@2 d5 c5 a4@2 c5@2 c5@2 c5 bb4 g4@2]/2",
  C: "bb4@2 bb4@2 bb4 a4 f4@2 c5@2 f5@2 c5@2 d5@2", D: "d4@2 f4@2 e4 f4 e4 f4 a4@2 f4@2 e4 f4 e4 f4",
  E: "[f4@2 d4@2 d4@4 c4@2 f4@2 c4@2 d4@4 f4@2 e4 f4 e4 f4 a4@2 f4@2 e4 f4 e4 f4]/2", F: "f4 d4 d4@2 c4 f4 c4 d4",
  G: "f5 d5 d5@2 c5 f5 c5 d5", H: "~@4 g4 c5 g4 a4", I: "~@4 g4 c5 g4 f4", J: "[~@4 c5 f5 c5 d5@3 d5@2 d5@2 d5@2]/2",
  K: "[d5@2 d5@2 c5 f5 c5 d5@3 d5@2 d5@2 d5@2]/2", L: "[d5@2 d5@2 c5 f5 c5 bb4@3 bb4@2 bb4@2 bb4@2]/2",
  M: "[bb4@2 bb4@2 c5 f5 c5 d5@3 d5@2 d5@2 d5@2]/2", N: "[d5@2 d5@2 c5 f5 c5 c5@16 d5@15 ~ c5@16 d5@9]/8",
  O: "~@2 f4@2 e4 f4 e4 f4 a4@2 f4@2 e4 f4 e4 f4",
})).s("gm_trombone").gain(0.25)

// other · trombone · "Trombón soprano, SmartMusic SoftSynth"
const trombone_2 = note(`<
  ~@4 A B@2 C D E@6 F D E@6 G ~ H ~ I ~ H ~ J@2 K@2 L@2 M@2 N@8 O P E@6 F ~ H ~ I ~ H ~ J@2 K@2 L@2 M@2 N@8 O P E@6 F Q
  R@2 S@2 B@2 C
>`.pickRestart({
  A: "~@2 f5@2 f5 e5 c5@2 e5@2 e5@2 e5 d5 bb4@2",
  B: "[d5@2 d5@2 d5 c5 a4@2 e5@2 a5@2 e5@2 f5@4 f5@2 f5 e5 c5@2 e5@2 e5@2 e5 d5 bb4@2]/2",
  C: "d5@2 d5@2 d5 c5 a4@2 e5@2 a5@2 e5@2 f5@2", D: "f4@2 a4@2 g4 a4 g4 a4 c5@2 a4@2 g4 a4 g4 a4",
  E: "[a4@2 f4@2 f4@4 e4@2 f4@2 e4@2 f4@4 a4@2 g4 a4 g4 a4 c5@2 a4@2 g4 a4 g4 a4]/2", F: "a4 f4 f4@2 e4 f4 e4 f4",
  G: "a5 f5 f5@2 e5 f5 e5 f5", H: "~@4 c4 f4 c4 d4", I: "~@4 c4 f4 c4 bb3", J: "[~@4 c4 f4 c4 d4@3 d4@2 d4@2 d4@2]/2",
  K: "[d4@2 d4@2 g4 c5 g4 a4@3 a4@2 a4@2 a4@2]/2", L: "[a4@2 a4@2 g4 c5 g4 f4@3 f4@2 f4@2 f4@2]/2",
  M: "[f4@2 f4@2 g4 c5 g4 a4@3 a4@2 a4@2 a4@2]/2", N: "[a4@2 a4@2 g4 c5 g4 g4@16 a4@15 ~ g4@16 a4@9]/8",
  O: "~@4 g4 c5 g4 a4", P: "~@2 a4@2 g4 a4 g4 a4 c5@2 a4@2 g4 a4 g4 a4",
  Q: "d5@2 d5@2 d5 c5 a4@2 c5@2 c5@2 c5 bb4 g4@2",
  R: "[bb4@2 bb4@2 bb4 a4 f4@2 c5@2 f5@2 c5@2 d5@4 d5@2 d5 c5 a4@2 c5@2 c5@2 c5 bb4 g4@2]/2",
  S: "[bb4@2 bb4@2 bb4 a4 f4@2 c5@2 f5@2 c5@2 d5@4 f5@2 f5 e5 c5@2 e5@2 e5@2 e5 d5 bb4@2]/2",
})).s("gm_trombone").gain(0.25)

// other · trombone · "Trombón, SmartMusic SoftSynth"
const trombone_3 = note(`<
  A B@6 C@2 D@2 E@2 F@2 G@2 D@2 E@2 F@2 H ~ I ~ J ~ I ~ C@2 D@2 E@2 F@2 K@2 L@4 M@2 C@2 D@2 E@2 F@2 H ~ I ~ J ~ I ~ C@2
  D@2 E@2 F@2 K@2 L@4 M@2 C@2 D@2 E@2 F@2 H ~ N ~ N O P@2 Q
>`.pickRestart({
  A: "d3 ~@3", B: "[~@4 c3 f3 c3 d3@3 ~@6]/2", C: "[~@8 c3@2 f3@2 c3@2 d3@4 d3@2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2]/2",
  D: "[d3@2 d3!2 d3@2 d3!2 c3@2 f3@2 c3@2 d3@4 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2]/2",
  E: "[d3@2 d3!2 d3@2 d3!2 c3@2 f3@2 c3@2 bb2@4 bb2!2 bb2@2 bb2!2 bb2@2 bb2!2 bb2@2 bb2!2]/2",
  F: "[bb2@2 bb2!2 bb2@2 bb2!2 c3@2 f3@2 c3@2 d3@4 d3!2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2]/2",
  G: "[d3@2 d3!2 d3@2 d3!2 c3@2 f3@2 c3@2 d3@4 d3@2 d3@2 d3!2 d3@2 d3!2 d3@2 d3!2]/2",
  H: "d3@2 d3!2 d3@2 d3!2 c3@2 f3@2 c3@2 d3@2", I: "~@4 c3 f3 c3 d3", J: "~@4 c3 f3 c3 bb2",
  K: "[d3@2 d3!2 d3@2 d3!2 c3@2 f3@2 c3@2 a3@6 g3@4 f3@4 e3@4]/2", L: "[f3@2 e3@2 d3@2 c3 d3@16 a3@3 g3@2 f3@2 e3@2]/4",
  M: "[f3@2 e3@2 f3@2 g3 f3@9]/2", N: "~@4 g3 c4 g3 a3", O: "~@2 f4@2 f4 e4 c4@2 e4@2 e4@2 e4 d4 bb3@2",
  P: "[d4@2 d4@2 d4 c4 a3@2 e4@2 a4@2 e4@2 f4@4 f4@2 f4 e4 c4@2 e4@2 e4@2 e4 d4 bb3@2]/2",
  Q: "d4@2 d4@2 d4 c4 a3@2 e4@2 a4@2 e4@2 f4@2",
})).s("gm_trombone").gain(0.25)

stack(trombone, trombone_2, trombone_3)