Strudelify

who you say i am

James Shaw

KeyG majorTempo86 bpm
0:00/0:00
// who you say i am — James Shaw
// 86 bpm, 6/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 13 "B♭ Tuba (Treble Clef)" tuba (copy of ch 12 "E♭ Tuba (Treble Clef)" tuba)
// note: Transcription provider: pdmx. https://musescore.com/score/5276364; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 84 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(86/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 · trumpet · "B♭ Cornet"
const trumpet = note(`<
  ~@25 A B ~@2 C D E F E G H D I@3 F E G H D J@3 ~@4 K@3 L K@3 L K@3 L K M N@3 E G H D I@3 F E G O P Q@3
>`.pickRestart({
  A: "~@2 c5@2 c5@2 a#4@3 c5@3", B: "a4 ~", C: "~@4 f4 a4", D: "a4 g4", E: "f4@3 ~ d4 f4", F: "f4!2", G: "g4!2",
  H: "g4@3 ~ f4 a4", I: "[f4@3 a#4 a4@3 f4@8 ~ d4 f4]/3", J: "[f4@3 a#4 a4@3 f4@8 ~@3]/3", K: "~ f4 g4 c5@3",
  L: "a#4 a4 f4 a#4 a4 f4", M: "f4@4 d4 f4", N: "[a4!3 g4 f4 c5@10 f4@3]/3", O: "f4 a#4", P: "c5",
  Q: "[f4@3 a#4 c5@3 c5@11]/3",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "B♭ Cornet" · soft notes
const trumpet_soft = note("<A@2 B C ~@9 D E F G H B I@3 ~@62>".pickRestart({
  A: "f4/2", B: "a4 g4", C: "f4", D: "~@4 d4 f4", E: "f4!2", F: "f4@3 ~ d4 f4", G: "g4!2", H: "g4@3 ~ f4 a4",
  I: "[f4@3 a#4 a4@3 f4@11]/3",
})).s("gm_trumpet").gain(0.2)

// other · trumpet · "B♭ Cornet"
const trumpet_2 = note(`<
  ~@25 A B ~@2 C D E F E G H D I@3 F E G H J K@3 ~@4 L@3 M L@3 M L@3 M L N O@3 E P Q J R@3 S E G T U V@3
>`.pickRestart({
  A: "~@2 a4@2 a4@2 g4@3 a4@3", B: "f4 ~", C: "~@4 f4 a4", D: "a4 g4", E: "f4@3 ~ d4 f4", F: "f4!2", G: "e4!2",
  H: "e4@3 ~ f4 a4", I: "[f4@3 a#4 a4@3 f4@8 ~ d4 f4]/3", J: "~@2 a4 a4@2 a4 ~@2 g4 g4@2 g4",
  K: "[~ f4 a4 a#4 a4@3 c5@8 ~@3]/3", L: "~ f4 g4 c5@3", M: "a#4 a4 f4 a#4 a4 f4", N: "f4@4 d4 f4",
  O: "[a4!3 g4 f4 a4@10 f4@3]/3", P: "e4 f4", Q: "e4@3 ~ f4 e4", R: "[d4@3 g4 f4@3 c4@8 d4 f4 a4]/3", S: "c5 a4",
  T: "~@2 a4 a4@2 a4 ~@2 a#4 a#4@2 a#4", U: "f4", V: "[c5@3 a#4 a4@3 a4@11]/3",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "B♭ Cornet" · soft notes
const trumpet_soft_2 = note("<A@2 B C ~@9 D E F G H B I@3 ~@62>".pickRestart({
  A: "c4/2", B: "f4 e4", C: "d4", D: "~@4 d4 f4", E: "f4!2", F: "f4@3 ~ d4 f4", G: "g4!2", H: "g4@3 ~ f4 a4",
  I: "[d4@3 a#4 a4@3 f4@11]/3",
})).s("gm_trumpet").gain(0.2)

// other · french horn · "E♭ Alto Horn"
const french_horn = note(`<
  ~@18 A B C@2 D E F G D E F H F H I J K L F M@3 I J K L F N@3 O@7 P Q R S@2 T@3 U ~ V W@2 I J K L F X@3 I J K F Y Z@3
>`.pickRestart({
  A: "~ e4", B: "d4@3 f4 f4@2", C: "c4/2", D: "~ c4 f4!2 c4 f4", E: "f4@3 f4@3 c4@2 c4@2 f4@2", F: "f4 e4", G: "c4",
  H: "d4", I: "c4!2", J: "c4@3 ~ a3 c4", K: "e4!2", L: "e4@3 ~ c4 e4", M: "[d4@3 a#3 c4@3 c4@8 ~ a3 c4]/3",
  N: "[d4@3 a#3 c4@3 c4@8 ~@3]/3", O: "~ c4!2 f3@3", P: "~@4 f4 g4", Q: "g4@2 f4@2 f4 g4", R: "g4@2 f4@2 ~ f4",
  S: "[a4!3 g4 f4 f4@4 ~@3]/2", T: "~ f3 g3 c4@3", U: "a#3 a3 f3 a#3 a3 f3", V: "~@4 d4 f4",
  W: "[a4!3 g4 f4 f4@4 ~ a3 c4]/2", X: "[d4@3 a#3 c4@3 c4@8 ~ a3 f3]/3", Y: "d4@3 a#3 c4@2",
  Z: "[d4@3 a#3 c4@3 c4@11]/3",
})).s("gm_french_horn").gain(0.3)

// other · french horn · "E♭ Alto Horn" · soft notes
const french_horn_soft = note("<A@2 B C ~@2 B D ~@2 B C B C E F G H I ~@65>".pickRestart({
  A: "c4/2", B: "f4 e4", C: "d4", D: "c4", E: "c4!2", F: "c4@3 ~ a3 c4", G: "e4!2", H: "e4@3 ~ d4 f4", I: "f4 ~",
})).s("gm_french_horn").gain(0.2)

// other · french horn · "Baritone Horn (Treble Clef)"
const french_horn_2 = note(`<
  A@2 B C D E F G H I J C J K@3 L M J C K N H I J K H I J O J K P@2 Q R J C K@2 P@2 Q R J C K S T@2 U@2 V W X Y Z AA
  AB@2 Z AA AC@2 AD AE AF AG P@2 AH R J C AI K P@2 AH J C@2 K G
>`.pickRestart({
  A: "a3/2", B: "a3 c4", C: "a#3", D: "~ a3!2 f3 a3 f3", E: "f3@3 f3@3 f3@4 a3@2", F: "f3 c4", G: "a3",
  H: "~ a3 c4!2 a3 c4", I: "c4@3 c4@3 f3@2 f3@2 a3@2", J: "a3 g3", K: "f3", L: "g3 c4", M: "g3", N: "f3@3 a3 a#3 c4",
  O: "f3@3 ~ f3 a3", P: "f3!2", Q: "g3 a3", R: "c4@3 ~ f3 g3", S: "a3@3 ~ f3 g3", T: "~ c4!2 f3@3",
  U: "[f3!3 g3 f3 a#3@4 ~ a3 g3]/2", V: "g3@2 a3@2 a3 g3", W: "g3@2 a3@2 ~ c4", X: "a3!3 a#3 a3 c4", Y: "d4@3 ~ f3 g3",
  Z: "g3@2 f3@2 f3 g3", AA: "g3@2 f3@2 ~ f3", AB: "[a3!3 g3 f3 f3@4 ~ f3 g3]/2", AC: "[a3!3 g3 f3 f3@5 ~ f3]/2",
  AD: "a3!3 g3 f3 e3", AE: "d3@3 ~ a#2 d3", AF: "f3 a3 c4 f3 c4 a3", AG: "a#3@3 ~ d3 f3", AH: "g3!2", AI: "f3@5 c4",
})).s("gm_french_horn").gain(0.3)

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

// other · trombone · "Trombone (Treble Clef)"
const trombone = note(`<
  ~@28 A B C D E F G H I J@3 E F G H K L@3 M N O@2 P@2 O@2 M N O@2 M N Q@2 R@4 E F G H K J@3 E F G S T U@3
>`.pickRestart({
  A: "~ c4", B: "a#3@3 ~ f3 a3", C: "a3 c4", D: "d4@3 ~ d3 f3", E: "f3!2", F: "f3@3 ~ d3 f3", G: "g3!2",
  H: "g3@3 ~ f3 a3", I: "a3 g3", J: "[f3@3 a#3 a3@3 f3@8 ~ d3 f3]/3", K: "~@2 a3 a3@2 a3 ~@2 g3 g3@2 g3",
  L: "[f3@3 a#3 a3@3 f3@8 ~ f3 g3]/3", M: "g3@2 f3@2 f3 g3", N: "g3@2 f3@2 ~ f3", O: "[a3!3 g3 f3 f3@4 ~ f3 g3]/2",
  P: "~ c4!2 f3@3", Q: "[a3!3 g3 f3 f3@5 ~ f3]/2", R: "[a3!3 g3 f3 f3@4 ~ d3 f3]/2",
  S: "~@2 a3 a3@2 a3 ~@2 a#3 a#3@2 a#3", T: "f3@3 a#3 a3@2", U: "[f3@3 a#3 a3@3 f3@11]/3",
})).s("gm_trombone").gain(0.3)

// other · trombone · "Trombone (Treble Clef)" · soft notes
const trombone_soft = note("<A@2 B C ~@2 D E ~@2 B F B G C@2 H I J K C@2 ~@2 L E ~@2 M ~@55>".pickRestart({
  A: "a3/2", B: "a3 g3", C: "f3", D: "d4 c4", E: "a3", F: "a#3", G: "d4", H: "c3 g3", I: "c3", J: "d3 c3", K: "a#2",
  L: "a3 c4", M: "d4 ~",
})).s("gm_trombone").gain(0.2)

// bass · trombone · "Bass Trombone"
const bass = note(`<
  A@2 B C A@2 B D A@2 B C B C ~@4 B C D@2 E@2 B F E@2 B G B H E@2 I@2 J K E L E@2 I@2 J K E D M N D O M P Q O M R D O S
  T Q O U O V W E@2 I@2 J K E L E@2 I J K@2 E D
>`.pickRestart({
  A: "f2/2", B: "d2 c2", C: "a#1", D: "f2", E: "f2@3 f2@2 ~ f2@6", F: "f2@3 f2@2 c2 f2 ~ g2 ~ a2 ~",
  G: "a#2@3 f2@3 a#1@2 f2@2 a#2@2", H: "a#2 ~ a#2 ~ a#2 ~ a#2@2 a#2@2 a#2@2", I: "c2@3 c2@2 ~ c2@6",
  J: "d2@3 d2@2 ~ f2@3 f2@2 ~", K: "a#2@3 a#2@2 ~ a#2@6", L: "f2@3 f2@2 ~ f2@4 d2 c2", M: "d2", N: "c2", O: "a#2",
  P: "e2", Q: "f2@3 ~ g2 a2", R: "~@2 c2 c2@2 c2 c2@2 c2@4", S: "~@2 d2 d2@2 d2 d2@2 d2@4",
  T: "~@2 e2 e2@2 e2 e2@2 e2@4", U: "~@2 d2!2 d2@2 ~@2 c2 c2@2 c2", V: "d2!3 c2!3", W: "a#1!6",
})).s("gm_trombone").gain(0.2)

// bass · tuba · "E♭ Tuba (Treble Clef)"
const bass_2 = note(`<
  A@2 B C A@2 B D A@2 B C B C ~@4 B C D E F@2 B G F@2 B H B I F@2 J@2 K L F M F@2 J@2 K L F D N O D P N Q R P N S D P T
  U R P V P W X F@2 J@2 K L F M F@2 J K L@2 F D
>`.pickRestart({
  A: "f2/2", B: "d2 c2", C: "a#1", D: "f2", E: "f2!6", F: "f2@3 f2@2 ~ f2@6", G: "f2@3 f2@2 c2 f2 ~ g2 ~ a2 ~",
  H: "a#2@3 f2@3 a#1@2 f2@2 a#2@2", I: "a#1 ~ a#1 ~ a#1 ~ a#1@2 a#1@2 a#1@2", J: "c2@3 c2@2 ~ c2@6",
  K: "d2@3 d2@2 ~ c2@3 c2@2 ~", L: "a#1@3 a#1@2 ~ a#1@6", M: "f2@3 f2@2 ~ f2@4 d2 c2", N: "d2", O: "c2", P: "a#2",
  Q: "e2", R: "f2@3 ~ g2 a2", S: "~@2 c2 c2@2 c2 c2@2 c2@4", T: "~@2 d2 d2@2 d2 d2@2 d2@4",
  U: "~@2 e2 e2@2 e2 e2@2 e2@4", V: "~@2 d2!2 d2@2 ~@2 c2 c2@2 c2", W: "d2!3 c2!3", X: "a#1!6",
})).s("gm_tuba").gain(0.3)

stack(
  trumpet, trumpet_soft, trumpet_2, trumpet_soft_2, french_horn, french_horn_soft, french_horn_2, tuba, trombone,
  trombone_soft, bass, bass_2
)