Strudelify

Amazing Grace - Trombone Quartet

Caleb Schmurr

KeyE♭ majorTempo80 bpm
0:00/0:00
// Amazing Grace - Trombone Quartet — Caleb Schmurr
// 80 bpm, 3/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3887281; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 32 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/3)

// 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@2 C F G H I J K L M ~ N O D H N P Q R S C D T U V B W>".pickRestart({
  A: "~@2 bb3", B: "bb3@2 eb4", C: "eb4@2 d4", D: "c4@2 ab3", E: "g3@2 bb3", F: "eb4@2 bb3", G: "bb3 ab3 g3",
  H: "bb3@2 bb3", I: "ab3@2 ab3", J: "g3@2 g3", K: "ab3 g3 f3", L: "eb3@2 ab3", M: "g3", N: "bb3@2 d4", O: "db4@2 c4",
  P: "db4@2 ~", Q: "d4@2 eb4", R: "f4@2 ~", S: "g4@2 g4", T: "g3@3 ab3 g3@4 bb3@2 ab3@2", U: "g3@2 ab3@2 bb3 c4",
  V: "eb4 db4 d4", W: "eb4",
})).s("gm_trombone").gain(0.3)

// other · trombone
const trombone_2 = note("<A B C D E B C F@2 G H I J K@2 ~ L M D E L N O P Q R S T U M V W>".pickRestart({
  A: "~@2 bb3", B: "bb3@2 g3", C: "bb3@2 bb3", D: "ab3 g3 f3", E: "eb3@2 eb3", F: "[bb3 g3 eb3@4]/2", G: "g3@2 d3",
  H: "c3@2 eb3", I: "f3 eb3 bb2", J: "c3@2 bb2", K: "bb2", L: "g3@2 bb3", M: "bb3@2 ab3", N: "eb3 f3 bb3",
  O: "bb3@2 c4", P: "d4@2 ~", Q: "~@3 bb3@2 c4@3 db4@8 eb4@8", R: "db4@2 ab3", S: "gb3@2 gb3",
  T: "eb3@3 f3 eb3@4 d3@2 c3@2", U: "bb2@2 eb3", V: "g3@2 ab3", W: "bb3",
})).s("gm_trombone").gain(0.3)

// bass · trombone · "Bass Trombone"
const bass = note("<~@15 A B C D E F G H I J K D I L M N@2>".pickRestart({
  A: "~@2 bb2", B: "eb2", C: "g2@2 eb3", D: "ab2@2 ab2", E: "g2@2 c3", F: "bb2@2 eb3", G: "bb2 ab2 g2", H: "f2@2 a2",
  I: "bb2@2 ~", J: "eb3@2 bb3", K: "bb2@3 ab2@2 f2@3 g2@8 bb2@8", L: "eb3@2 bb2", M: "g2@2 bb2", N: "eb2/2",
})).s("gm_trombone").gain(0.3)

stack(trombone, trombone_2, bass)