Strudelify

Gerudo Valley

Koji Kondo

KeyA majorTempo120 bpm
0:00/0:00
// Gerudo Valley — Koji Kondo
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 7 "Piano" named as a piano, played on piano (its string ensemble 1 patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5533516; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 86 bars on a 16-step grid, each part at one level. 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.

// chords · piano
const piano = note(`<
  ~ A@2 B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E F G H I J G H E B C D E B C D E
  B C D E B C D E B C D E B C D E F G H I J G H E K A L
>`.pickRestart({
  A: "a#4!7 ~@2 a#4@2 a#4!5, c4@4 c4@3 a#4@2 ~@7, ~@8 c4@3 c4@3 c4@2",
  B: "[f#3,a3,c#4,f#4,a#4] [a3,c#4,f#4,a#4] a#4!5 ~@2 [a3,c#4,f#4] ~ a#4!5, c4@2 c4@2 c4 [a3,c#4,f#4] [f#3,a3,c#4,f#4] [f#3,a3,c4,c#4,f#4], ~@4 [a3,c#4,f#4]@2 ~ [f#3,a3,c#4,f#4,a#4]@2 a#4@2 c4@3 ~@2", // F# F#m F#
  C: "[d3,f#3,a3,d4,a#4] [f#3,a3,d4,a#4] a#4!5 ~@2 [f#3,a3,d4] ~ a#4!5, c4@2 c4@2 c4 [f#3,a3,d4] [d3,f#3,a3,d4] [d3,f#3,a3,c4,d4], ~@4 [d3,f#3,a3,d4]@2 ~ [f#3,a3,d4,a#4]@2 a#4@2 c4@3 ~@2", // D D7 D
  D: "[e3,g#3,b3,e4,a#4] [g#3,b3,e4,a#4] a#4!5 ~@2 [g#3,b3,e4] ~ a#4!5, c4@2 c4@2 c4 [g#3,b3,e4]!2 [g#3,b3,c4,e4], ~@4 [g#3,b3,e4]@2 ~ [g#3,b3,e4,a#4]@2 a#4@2 c4@3 ~@2", // E
  E: "[c#3,f3,g#3,c#4,a#4] [f3,g#3,c#4,a#4] a#4!5 ~@2 [f3,g#3,c#4] ~ a#4!5, c4@2 c4@2 c4 [f3,g#3,c#4]!2 [f3,g#3,c4,c#4], ~@4 [f3,g#3,c#4]@2 ~ [f3,g#3,c#4,a#4]@2 a#4@2 c4@3 ~@2", // A#m7 C# C#maj7 C# A#m7
  F: "[f#2,a2,c#3,f#3,a#4] [a3,c#4,f#4,a#4] a#4!2 [a3,c#4,f#4]@2 ~@2 c4@3 c4@3 c4@2, c4!2 ~@2, ~@4 a#4 ~@11", // F# F#m
  G: "[d3,f#3,a3,d4,a#4] [f#3,a3,d4,a#4] a#4!2 [d3,f#3,a3,d4]@2 ~@2 c4@3 c4@3 c4@2, c4!2 ~@2, ~@4 a#4 ~@11", // D
  H: "[e3,g#3,b3,e4,a#4] [g#3,b3,e4,a#4] a#4!2 [g#3,b3,e4]@2 ~@2 c4@3 c4@3 c4@2, c4!2 ~@2, ~@4 a#4 ~@11", // E
  I: "[c#3,f3,g#3,c#4,a#4] [f3,g#3,c#4,a#4] a#4!2 [f3,g#3,c#4]@2 ~@2 c4@3 c4@3 c4@2, c4!2 ~@2, ~@4 a#4 ~@11", // A#m7 C#
  J: "[f#3,a3,c#4,f#4,a#4] [a3,c#4,f#4,a#4] a#4!2 [a3,c#4,f#4]@2 ~@2 c4@3 c4@3 c4@2, c4!2 ~@2, ~@4 a#4 ~@11", // F# F#m
  K: "[f3,g#3,c#4,f4,a#4] [g#3,c#4,f4,a#4] a#4!5 ~@2 [g#3,c#4,f4] ~ a#4!5, c4@2 c4@2 c4 [g#3,c#4,f4]!2 [g#3,c4,c#4,f4], ~@4 [g#3,c#4,f4]@2 ~ [g#3,c#4,f4,a#4]@2 a#4@2 c4@3 ~@2", // A#m7 C# C#maj7 C# A#m7
  L: "c4 ~@3, a#4 ~@15",
})).s("gm_piano").gain(0.22)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@11 A B C D ~@16 E F G H E F I J ~@4 K L M N K L O J ~@4 A B C D ~@5 P Q R ~@5 P S R K L M N K L O T@2 U ~
>`.pickRestart({
  A: "~ c#4 f#4 g#4 a4@3 c#4 f#4 g#4 a4@6", B: "~ d4 f#4 g#4 a4@3 d4 f#4 g#4 a4@6",
  C: "~ b3 e4 f#4 g#4@3 b3 e4 f#4 g#4@6", D: "~ a4 b4 a4 g#4@12", E: "a4 g#4 a4@8 f#4 g#4 a4 b4 a4 g#4",
  F: "a4 g#4 a4@10 ~@4", G: "g#4 f#4 g#4@8 e4 f#4 g#4 a4 g#4 f#4", H: "g#4 f#4 f4@10 ~@4",
  I: "b4 a4 b4@8 g#4 a4 b4 c#5 d5 e5", J: "c#5 d5 c#5@14", K: "a4 g#4 ~@2 a4@4 ~@2 f#4 g#4 a4 b4 a4 g#4",
  L: "a4 g#4 ~@2 a4@4 ~@8", M: "g#4 f#4 ~@2 g#4@4 ~@2 e4 f#4 g#4 a4 g#4 f#4", N: "g#4 f#4 ~@2 f4@8 ~@4",
  O: "b4 a4 ~@2 b4@4 ~@2 g#4 a4 b4 c#5 d5 e5", P: "~@7 d5", Q: "b4@3 b4 b4@3 g#4", R: "g#4", S: "b4@3 e5 d5@3 g#4",
  T: "[c#5 d5 c#5@30]/2", U: "f#5 ~@7",
})).s("gm_trumpet").gain(0.22)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note("<~@35 A B C D ~@8 E F G D ~@28 E F G H@2 I ~>".pickRestart({
  A: "c#4 b3 c#4@8 a3 b3 c#4 d4 c#4 b3", B: "c#4 b3 c#4@10 ~@4", C: "d4 c#4 d4@8 b3 c#4 d4 e4 f#4 g#4",
  D: "f4 f#4 f4@14", E: "c#4 b3 ~@2 c#4@4 ~@2 a3 b3 c#4 d4 c#4 b3", F: "c#4 b3 ~@2 c#4@4 ~@8",
  G: "d4 c#4 ~@2 d4@4 ~@2 b3 c#4 d4 e4 f#4 g#4", H: "[f4 f#4 f4@30]/2", I: "f#4 ~@7",
})).s("gm_trumpet").gain(0.22)

// other · pan flute
const pan_flute = note(`<
  ~@43 A B C D E F G H I J K L M N O P Q R S T Q U V W X Y Z T AA AB AC W A B C D E F G AD AE AF ~
>`.pickRestart({
  A: "~@8 f#5 a5 c#6 f#6 c#6 b5 a5 g#5", B: "~@8 f#5 a5 c#6 f#6 c#6 b5 a5 b5", C: "g#5@8 c#5 e5 g#5 b5 g#5 e5 c#5 g#5",
  D: "f5@8 c#5!3 b4@3 c#5@2", E: "a5@8 a5 g#5 a5 f#6 c#6 a5 g#5 a5", F: "a5@8 a5 g#5 a5 f#6 a6 g#6 f#6 g#6",
  G: "g#6@8 e6 d#6 e6 b6 g#6 e6 c#6 f#6", H: "g#6 a6 g#6@13 ~",
  I: "~ c#5 f#5 g#5 a5@3 c#5 f#5 g#5 a5 c#6 f#6 c#6 a5 f#5", J: "~ d5 f#5 g#5 a5@3 d5 f#5 g#5 a5 c#6 f#6 a6 g#6 e6",
  K: "g#6 f#6 g#6@6 e6 f#6 g#6 a6 g#6 f#6 g#6 f#6", L: "g#6 f#6 f6@12 ~@2",
  M: "~ c#5 f#5 g#5 a5@3 c#6 f#6 c#6 a5 c#6 f#6 c#6 a5 f#5", N: "~ d5 f#5 g#5 a5@3 d6 a6 g#6 f#6 c#6 f#6 a6 g#6 e6",
  O: "g#6 f#6 g#6@6 e6 f#6 g#6 a6 b6 c#7 d7 e7", P: "c#7 d7 c#7@12 ~@2", Q: "~@2 c#6@3 a6@3 g#6@3 f#6@3 c#6@2",
  R: "e6@4 e6 f#6 e6 d6@9", S: "~@2 b5@3 g#6@3 f#6@3 e6@3 d6@2", T: "c#6@4 d6 e6 d6 c#6@9",
  U: "e6@4 e6 f#6 e6 d6@7 b5@2", V: "g#5@3 f#6 e6@3 d6", W: "c#6", X: "~@2 a6@3 g#6@3 a6@3 g#6@3 c#6@2",
  Y: "e6@5 d6 c#6 d6@9", Z: "~@2 g#6@3 f#6@3 g#6@3 e6@3 d6@2",
  AA: "~@2 f#5 g#5 a5 c#6@2 ~ f#5 g#5 a5 c#6 f#6 c#6 a5 g#5", AB: "~@2 f#5 g#5 a5 d6@2 ~ f#5 g#5 a5 d6@3 b5@2",
  AC: "g#5@3 g#6 f#6@3 b5", AD: "g#6 a6 g#6@14", AE: "c#7@4 c#7 b6 a6 g#6", AF: "f#6 ~@7",
})).s("gm_pan_flute").gain(0.3)

stack(piano, trumpet, trumpet_2, pan_flute)

More by Koji Kondo