Strudelify

Theme from Up French Horn Viola Duet

ninjaboy2751241

KeyG majorTempo175 bpm
0:00/0:00
// Theme from Up French Horn Viola Duet — ninjaboy2751241
// 175 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5938386; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 75 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(175/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 · french horn · "Horn in F"
const french_horn = note(`<
  ~@3 A B@2 C D E F G H I@2 J K L M N O P@2 Q R P S P T U@2 O V W X Y Z R AA AB AC AD AE U G AF AG W AH B@2 AI AJ AK AL
  G H AF AG AM AN AO O G W AP S AO G AQ AR AS AT AU@2 AV
>`.pickRestart({
  A: "~@8 f4@3 a4@2 f4@3", B: "[e4@21 ~@3 f4@3 a4@2 e4@3]/2", C: "d4@5 ~@3 d4@3 f4@2 d4@3", D: "c4@11 ~@2 c4@3",
  E: "a4@3 ~@2 g4@8 d4@3", F: "a4@5 g4@3 ~@3 f4@5", G: "d4", H: "~@8 f4@3 g4@2 f4@3", I: "[e4@21 ~@3 e4@3 g4@2 e4@3]/2",
  J: "c4@5 ~@3 c4@3 e4@2 c4@3", K: "a#3", L: "~@5 a3@5 ~ a#3@5", M: "c4@8 d4@3 e4@5", N: "~@5 c4@5 ~ d4@5", O: "e4",
  P: "a4", Q: "d3@5 ~@3 f3@3 a3@2 d4@3", R: "a3", S: "a3@5 b3@3 ~@3 d4@5", T: "d4@5 ~@3 f4@3 g4@2 f4@3", U: "g4",
  V: "a#2@3 c3@2 d3@3 e3@3 g3@2 a#3@3", W: "c4", X: "g3@11 ~@2 a3@3", Y: "a#3@5 a3@3 ~@5 g3@3", Z: "d4@5 a3@5 ~ g3@5",
  AA: "f4@11 ~@2 f4@3", AB: "a4@5 g4@3 ~@5 f4@3", AC: "a4@5 f#4@3 ~@3 d4@5", AD: "b3@5 a4@8 a4@3",
  AE: "g4@5 d4@5 ~ f4@5", AF: "e4@5 g4@3 ~@5 d4@3", AG: "e4@5 a#3@5 ~ b3@5", AH: "~@3 d4@2 e4@3 f4@3 g4 a4 f4@3",
  AI: "d4@5 ~@3 d4@3 f4@2 a4@3", AJ: "c5@11 ~@2 f4@3", AK: "a4@5 g4@8 d4@3", AL: "a4@5 g4@5 ~ f4@5",
  AM: "f3@3 f#3@2 g3@3 g#3@3 a3@2 a#3@3", AN: "b3@3 c4@2 c#4@3 d4@3 d#4@2 e4@3", AO: "f4", AP: "b3", AQ: "e4@5 g4@11",
  AR: "d4@5 g4@11", AS: "c4@5 e4@11", AT: "a#3@5 d4@11", AU: "f4/2", AV: "f3",
})).s("gm_french_horn").gain(0.3)

stack(french_horn)