Strudelify

From the Ground Up Trombone Quartet

Brant Luevano

KeyG majorTempo100 bpm
0:00/0:00
// From the Ground Up Trombone Quartet — Brant Luevano
// 100 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1311931; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 76 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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
const trombone = note(`<
  A B C D E F E G E H I J K L M N K L M N K L O P ~@3 J K L M N K L M N E Q R ~ S T ~ J K L M N K L M K U V W X Y Z AA
  AB@2 B C D AC AD AE X AF AG AH AI AJ AK AL I
>`.pickRestart({
  A: "~@2 d4 c4 d4@3 f#4@2 e4 ~ d4 ~ e4@3", B: "~@2 c4 b3 c4@3 e4@2 d4 ~ c4 ~ d4@3",
  C: "~@2 b3 a3 b3@3 d4@2 c4 ~ b3 ~ c4@3", D: "a3@3 g3 f#3@12", E: "f#4@2 ~@8 f#4!2 ~ f#4!2 ~",
  F: "g4@2 ~@6 b4 a4 ~ g4 ~ a4@3", G: "e4 ~@3 d4@2 e4@2", H: "g4 a4", I: "d5 ~@7", J: "~ d5", K: "d4", L: "c4", M: "b3",
  N: "a3", O: "d4 ~@7", P: "a4@3 g4 f4 g4@2 f4 ~ f4 ~ f4 e4!3 ~", Q: "g4@2 ~@6 g4!2 ~ g4 ~ g4@3", R: "g4 ~@7",
  S: "f#4@3 ~@13", T: "~@2 a4@3 g4 f#4 g4 f#4@5 ~@3", U: "f#4!2 d4 f#4", V: "g4 a4 g4 f#4", W: "g4 d5 c5 b4",
  X: "a4@3 g4 f#4@12", Y: "a4!2 b4 a4", Z: "g4!2 f#4 e4", AA: "d4@4 d4@4 f4@2 d4 f4@2 d4 f4@2",
  AB: "[f#4@8 d5@10 d4 c4 d4@3 f#4@2 e4 ~ d4 ~ e4@3]/2", AC: "~@2 d4 c4 d4@3 f#4@2 f#4 ~ f#4 ~ f#4@3",
  AD: "~@2 f#4!2 f#4@3 a4@2 a4 ~ a4 ~ a4@3", AE: "~@2 b4 a4 g4@3 f4@2 g4 ~ g4 ~ g4@3",
  AF: "f#4 e4 d4 c4 d4@2 f#4 e4 d4 c4 d4@2 f#4!4", AG: "a4@2 f#4 e4@2 d4 e4 f#4 a4@2 f#4 e4@2 d4 e4 f#4",
  AH: "a4 g4 f4!2", AI: "f#4@3 e4 d4@12", AJ: "d4 e4 f#4 g4", AK: "a4 b4 c#5@2",
  AL: "~@2 d5 c5 d5@3 f#5@2 e5 ~ d5 ~ e5@3",
})).s("gm_trombone").gain(0.35)

// other · trombone
const trombone_2 = note(`<
  A B C D E F E G E H I J D@2 K L D@2 K L D K M ~@2 N ~ J D@2 K L D@2 K L O P Q R S T U V W X Y Z AA AB AC D A B C D A B
  C AD@2 X Y Z AE AF AG R A B C A AH@2 A F
>`.pickRestart({
  A: "d4", B: "c4", C: "b3", D: "a3", E: "d4@2 ~@8 d4!2 ~ d4!2 ~", F: "d4 ~@7", G: "c#4 ~@3 f#3@2 g3@2", H: "d4 f4",
  I: "f#4 ~@7", J: "~ f#4", K: "g3", L: "f#3", M: "a3 ~@7", N: "g4 f4 d4 g4 f4 d4 g4 f4@7 ~@2",
  O: "~ d4@2 a3 d4@2 f#4@2", P: "e4@3 d4 c4@6 ~@4 c4 d4", Q: "b3@2 b3@2 d4 b3@2 g4@2 g4 ~ g4 ~ a4@3",
  R: "f#4@3 e4 d4@12", S: "d4@3 a3@2 b3 d4 f#4@2 d4 f#4 a4@5", T: "~@2 f#4@3 e4 d4 e4 d4@5 a3 b3 c#4",
  U: "d4@3 f#4@2 e4 f#4@2 g4!2 ~ g4 a4!2 ~ a4", V: "f#4@3 e4 f#4@12", W: "~@2 d4 c4 d4@3 f#4@2 e4 ~ d4 ~ e4@3",
  X: "~@2 c4 b3 c4@3 e4@2 d4 ~ c4 ~ d4@3", Y: "~@2 b3 a3 b3@3 d4@2 c4 ~ b3 ~ c4@3", Z: "a3@3 g3 f#3@12",
  AA: "~ d4 a3 d4", AB: "c4@2 c4 c4@2 c4!2 d4 e4@2 d4 c4@5", AC: "~@5 b3!2 c4 d4@2 c4 b3@2 c4@3",
  AD: "[d4@8 f#4@10 d4 c4 d4@3 f#4@2 e4 ~ d4 ~ e4@3]/2", AE: "~@2 d4 c4 d4@3 d4@2 d4 ~ d4 ~ d4@3",
  AF: "~@2 f#4!2 f#4@3 f#4@2 f#4 ~ f#4 ~ f#4@3", AG: "~@2 g4 f#4 g4@3 f4@2 g4 ~ g4 ~ g4@3", AH: "[d4@3 c#4]/2",
})).s("gm_trombone").gain(0.4)

// bass · trombone · "Bass Trombone"
const bass = note(`<
  A@2 B C D E F G H I J K L M N O P Q R S C T U ~ V W X K A@2 B C A@2 B C Y Z@2 AA AB AC AD K A@2 B C A@2 B C A AE C@2 A
  AE B AF@2 M N O AG AH AI AJ A@2 B A ~@2 A AK
>`.pickRestart({
  A: "f#3", B: "f3", C: "d3", D: "~ d3@2 a2 d3@2 f#3@2", E: "g3@3 f#3 e3@6 ~@4 d3 e3",
  F: "f#3@2 f#3@2 a3 f#3@2 d4@2 a3 ~ f#3 ~ a3@3", G: "e3@2 d3 e3", H: "d3@2 ~ a2@2 ~ d2@2 ~@2 a2 b2 ~ a2 b2 ~",
  I: "g2 f2", J: "~@2 f#2@2 a2 f#2@2 d3@2 c3 ~ a2 g#2 g2 ~ f2", K: "d2 d3", L: "~@2 d3 c3 d3@3 f#3@2 e3 ~ d3 ~ e3@3",
  M: "~@2 c3 b2 c3@3 e3@2 d3 ~ c3 ~ d3@3", N: "~@2 b2 a2 b2@3 d3@2 c3 ~ b2 ~ c3@3", O: "a2@3 g2 f#2@12",
  P: "~@2 d3 c3 d3@3 f#3@2 f#3 ~ f#3 ~ f#3@3", Q: "~@2 f#3!2 f#3@3 a3@2 a3 ~ a3 ~ a3@3",
  R: "~@2 b3 a3 g3@3 f3@2 g3 ~ g3 ~ g3@3", S: "a3@3 g3 f#3@12", T: "c3", U: "d3 ~@7", V: "~@2 a2@4 g2 ~ f2@3 d2@3 d2@2",
  W: "g2 f2 d2 g2 f2 d2 g2 f2@7 c2@2", X: "d2@3 f#2@2 e2 f#2@2 d3 c3 ~ a2 g#2 g2 ~ f2", Y: "a3@2 ~@8 a3!2 ~ a3!2 ~",
  Z: "g3 ~@7", AA: "~ d2", AB: "d3@3 ~@13", AC: "~@2 f#3@3 e3 d3 e3 d3@5 ~@3",
  AD: "d2@3 f#2@2 e2 f#2@2 g2!2 ~ g2 a2!2 ~ a2", AE: "g3", AF: "[f#3@8 d3@10 d3 c3 d3@3 f#3@2 e3 ~ d3 ~ e3@3]/2",
  AG: "~@2 d3 c3 d3@3 d3@2 d3 ~ d3 ~ d3@3", AH: "~@2 f#3!2 f#3@3 f#3@2 f#3 ~ f#3 ~ f#3@3",
  AI: "~@2 g3 f#3 g3@3 f3@2 g3 ~ g3 ~ g3@3", AJ: "f#3@3 e3 f#3@12", AK: "f#3 ~@7",
})).s("gm_trombone").gain(0.3)

stack(trombone, trombone_2, bass)

More by Brant Luevano