Strudelify
KeyE♭ majorTempo120 bpm
0:00/0:00
// Scotland The Brave — of Scotland the Brave is unknown. This
// 120 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Alto Flute" named as a pipe, played on flute (its tremolo strings patch is not one); ch 2 "Oboe" named as a reed, played on oboe (its string ensemble 1 patch is not one); ch 3 "English Horn" named as a brass, played on brass section (its pizzicato strings patch is not one); ch 4 "Bass Clarinet" named as a reed, played on clarinet (its tremolo strings patch is not one); ch 5 "Bassoon" named as a reed, played on bassoon (its string ensemble 1 patch is not one); ch 6 "Bb Trumpet" named as a brass, played on trumpet (its pizzicato strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/198431; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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.

// other · flute · "Alto Flute"
const flute = note(`<
  ~@12 A B C D A B E D ~@8 A B C D A B E D ~@32 F G H I J K L M N O P Q R S T U ~@8 F G H I J K L M V@5
>`.pickRestart({
  A: "c5 c4", B: "f4 a4", C: "c5 a4", D: "d5 c4", E: "d5 a4", F: "a3@4 a3@3 bb3", G: "c4 a3 c4 f4", H: "a4@4 c5@3 bb4",
  I: "a4 f4 d4 c4", J: "d4@2 f4 d4", K: "c4 f4 c4 a3", L: "bb3@4 g3@3 a3", M: "c4", N: "g4@4 g4@3 g4", O: "g4 e4 c4@2",
  P: "f4@4 a4@3 g4", Q: "f4 c4 a3@2", R: "bb3@2 d4 bb3", S: "a3 c4!2 a3", T: "g3@4 g3@3 a3", U: "g3", V: "d5/5",
})).s("gm_flute").gain(0.25)

// chords · oboe
const oboe = note(`<
  A B@6 A B@6 A B@4 C@2 D E@2 F@2 G@2 A B@6 H@2 I@2 J@2 K@2 L M I@2 J@2 N@2 O P Q R@2 S@2 T U M I@2 J@2 N@2 O V I@2 J@2
  N@2 O B@8 M W X Y Z AA AB AC@2 I@2 J@2 AD AE O AF@2 AG@3
>`.pickRestart({
  A: "a3", B: "f3/2", C: "[~@2 c5 c4, f3]/2", D: "f4 a4, a3", E: "[c5 a4 d5 c4, f3]/2", F: "[c5 c4 f4 a4, f3]/2",
  G: "[d5 a4 d5 c4, f3]/2", H: "[~@8 f4@4 f4@3 g4, f3]/2", I: "[a4@2 f4@2 a4@2 c5@2 f5@4 a5@3 g5, f3]/2",
  J: "[f5 c5 a4 f4 bb4@2 d5 bb4, f3]/2", K: "[a4@2 c5@2 a4@2 f4@2 g4@4 g4@3 a4, f3]/2", L: "[f3,g4]",
  M: "f4@4 f4@3 g4, a3", N: "[a4@2 c5@2 a4@2 f4@2 g4@4 f4@3 e4, f3]/2", O: "[a3,f4]", P: "g5@4 g5@3 g5, g3",
  Q: "g5 e5 c5@2, g3", R: "[f5@4 a5@3 g5 f5@2 c5@2 a4@4, f3]/2", S: "[bb4@2 d5 bb4 a4 c5!2 a4, f3]/2",
  T: "g4@4 g4@3 a4, f3", U: "[c3,g4]", V: "f4@4 f4@3 g4, f3", W: "a4 f4 a4 c5, f3", X: "f5@4 a5@3 g5, a3",
  Y: "f5 c5 a4 f4, f3", Z: "bb4@2 d5 bb4, bb3", AA: "a4 c5 a4 f4, a3", AB: "g4@4 f4@3 e4, g3",
  AC: "[f4@8 f4@4 f4@3 g4, f3]/2", AD: "a4 c5 a4 f4, f3", AE: "g4@4 f4@3 e4, c4", AF: "[f3,f5]/2",
  AG: "[f3@2 f3, f5]/3",
})).s("gm_oboe").gain(0.2)

// other · brass section · "English Horn"
const brass_section = note(`<
  ~@22 A B C D A B E D ~@22 F G H I J K L M ~@8 N O P Q R S T M F G H I J K L M ~@8 N O P Q R S T M U@2 V@3
>`.pickRestart({
  A: "c5 c4", B: "f4 a4", C: "c5 a4", D: "d5 c4", E: "d5 a4", F: "g4@4 g4@3 g4", G: "g4 e4 c4@2", H: "f4@4 a4@3 g4",
  I: "f4 c4 a3@2", J: "bb3@2 d4 bb3", K: "a3 c4!2 a3", L: "g3@4 g3@3 a3", M: "g3", N: "a3@4 a3@3 bb3", O: "c4 a3 c4 f4",
  P: "a4@4 c5@3 bb4", Q: "a4 f4 d4 c4", R: "d4@2 f4 d4", S: "c4 f4 c4 a3", T: "bb3@4 g3@3 a3", U: "f4/2", V: "f4/3",
})).s("gm_brass_section").gain(0.25)

// other · clarinet · "Bass Clarinet"
const clarinet = note(`<
  ~@24 A B C D A B E D ~@20 F G H I J K L M ~@8 N O P Q R S T U V W P X R Y Z AA ~@8 N O P Q R S T U AB@2 AC@3
>`.pickRestart({
  A: "c4 c3", B: "f3 a3", C: "c4 a3", D: "d4 c3", E: "d4 a3", F: "g3@4 g3@3 g3", G: "g3 e3 c3@2", H: "f3@4 a3@3 g3",
  I: "f3 c3 a2@2", J: "bb2@2 d3 bb2", K: "a2 c3!2 a2", L: "g2@4 g2@3 a2", M: "g2", N: "f3@4 f3@3 g3", O: "a3 f3 a3 c4",
  P: "f4@4 a4@3 g4", Q: "f4 c4 a3 f3", R: "bb3@2 d4 bb3", S: "a3 c4 a3 f3", T: "g3@4 f3@3 e3", U: "f3",
  V: "g4@4 g4@3 g4", W: "g4 e4 c4@2", X: "f4 c4 a3@2", Y: "a3 c4!2 a3", Z: "g3@4 g3@3 a3", AA: "g3", AB: "f4/2",
  AC: "f4/3",
})).s("gm_clarinet").gain(0.25)

// other · bassoon
const bassoon = note(`<
  ~@6 A B A B A B A B ~@6 A B A B A B C D E F G H I F J@16 A K@3 L@2 M@2 N O P@4 Q R S T P@4 Q R S T P@4 Q R S T P@4 Q R
  S T P@6 U V@6
>`.pickRestart({
  A: "f1", B: "c2", C: "c4 c3, f1", D: "f3 a3, c2", E: "c4 a3", F: "d4 c3", G: "c4 c3", H: "f3 a3", I: "d4 a3",
  J: "f1/2", K: "[~@8 g3@4 g3@3 g3 g3@2 e3@2 c3@4, c2]/3", L: "[f3@4 a3@3 g3 f3@2 c3@2 a2@4, f1]/2",
  M: "[bb2@2 d3 bb2 a2 c3!2 a2, f1]/2", N: "g2@4 g2@3 a2, f1", O: "[c2,g2]", P: "[f3 f3, f1]/2", Q: "[bb1,f3]",
  R: "[a1,f3]", S: "[g1,f3]", T: "[f1,f3]", U: "[c2,f3]", V: "[f3 ~@3 f1 f1, f1 f1 ~, ~ f3@2 f3@3]/6",
})).s("gm_bassoon").gain(0.25)

// other · trumpet · "Bb Trumpet"
const trumpet = note("<~@28 A B C D A B E D ~@16 F G H I J K L M ~@40 N@2 O@3>".pickRestart({
  A: "c5 c4", B: "f4 a4", C: "c5 a4", D: "d5 c4", E: "d5 a4", F: "e5@4 e5@3 e5", G: "e5 c5 bb4@2", H: "f5@4 f5@3 e5",
  I: "d5 a4 f4@2", J: "g4@2 d5 g4", K: "f4 a4!2 f4", L: "g4@4 g4@3 a4", M: "g4", N: "c4/2", O: "c4/3",
})).s("gm_trumpet").gain(0.2)

// other · french horn · "Horn"
const french_horn = note("<~@52 A B C D E F G H ~@45>".pickRestart({
  A: "g4@4 g4@3 g4", B: "g4 e4 c4@2", C: "f4@4 a4@3 g4", D: "f4 c4 a3@2", E: "bb3@2 d4 bb3", F: "a3 c4!2 a3",
  G: "g3@4 g3@3 a3", H: "g3",
})).s("gm_french_horn").gain(0.2)

// other · bagpipe
const bagpipe = note(`<
  ~@52 A@2 B@2 C B A@2 D E F G H I J K D E F G H I J K L M F N H O P A D E F G H I J K D E F G H I J K Q@5
>`.pickRestart({
  A: "g4", B: "a4", C: "bb4", D: "f4@4 f4@3 g4", E: "a4 f4 a4 c5", F: "f5@4 a5@3 g5", G: "f5 c5 a4 f4",
  H: "bb4@2 d5 bb4", I: "a4 c5 a4 f4", J: "g4@4 f4@3 e4", K: "f4", L: "g5@4 g5@3 g5", M: "g5 e5 c5@2", N: "f5 c5 a4@2",
  O: "a4 c5!2 a4", P: "g4@4 g4@3 a4", Q: "f4/5",
})).s("gm_bagpipe").gain(0.4)

// other · timpani
const timpani = note(`<
  ~@8 A B A B C D@2 C D C D C D@2 C D C D C D@2 C D C D C D@18 C D C D C D C D C D C D C D C D C D C D C D C D E@2 F@2
  E@2 F@2 E F E F E F E F E@2 F@2 E@6 B@2 D
>`.pickRestart({
  A: "c3!2", B: "f2!2", C: "c3 ~", D: "f2 ~", E: "c3 f2", F: "f2 c3",
})).s("gm_timpani").gain(0.2)

// other · timpani · soft notes
const timpani_soft = note("<[~ f2] [c3!2] [f2!2] [c3!2] [f2!2] [c3!2] [f2!2]!2 ~@97>").s("gm_timpani").gain(0.13)

// other · string ensemble 1 · "Violins 2"
const string_ensemble_1 = note(`<
  ~@7 A B C D E F G ~@7 A B C D E H G ~@16 A B C D E F G ~@9 A B C I J F G ~ A K L M N O G P Q@2 R@2 S T U V A B C D E F
  G ~ A K L M N O G P@2 W@3 R
>`.pickRestart({
  A: "c4 d4 f4 a4", B: "[c4,c5] [a4,f5] [f4,c5] a4", C: "[c4,c5] [a4,f5] [e4,bb4] a4", D: "[c4,c5] [g4,c5] [e4,a4] g4",
  E: "[c4,c5] [d4,a4] [e4,a4] g4", F: "[c4,c5] [d4,g4] [e4,g4] a4", G: "c4 e4 f4 c4", H: "[c4,c5] [d4,g4] [e4,g4] g4",
  I: "[c4,c5] [g4,c5] [f4,a4] g4", J: "[c4,c5] [d4,a4] [f4,a4] a4", K: "c5 f5 c5 a4", L: "c5 f5 bb4 a4",
  M: "c5!2 a4 g4", N: "c5 a4!2 g4", O: "c5 g4!2 a4", P: "f4 g4 a4 f4", Q: "g4", R: "f4", S: "d4", T: "c4", U: "b3",
  V: "bb3", W: "[f4 g4 a4 f4 f4 g4 a4 c4 f4@4, ~ f5@3]/3",
})).s("gm_string_ensemble_1").gain(0.15)

stack(
  flute, oboe, brass_section, clarinet, bassoon, trumpet, french_horn, bagpipe, timpani, timpani_soft, string_ensemble_1
)