Strudelify

ocarina of time

Koji Kondo

KeyA majorTempo120 bpm
0:00/0:00
// ocarina of time — Koji Kondo
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/73357; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 80 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 · [...]/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 · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note(`<
  A@2 ~@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 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
>`.pickRestart({
  A: "[c#3@9 g#3 d#3 d3 c#3@20]/2",
  B: "[f#3,a3,f#4]!3 [f#3,a3,f#4]@2 [f#3,a3,f#4]@2 [f#3,a3,f#4]!4 [f#3,a3,f#4]@2 [f#3,a3,f#4]@2 [f#3,a3,f#4]", // F#m
  C: "[a3,d4,f#4]!3 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]!4 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]", // D
  D: "[e3,b3,e4]!3 [e3,b3,e4]@2 [e3,b3,e4]@2 [e3,b3,e4]!4 [e3,b3,e4]@2 [e3,b3,e4]@2 [e3,b3,e4]", // E5
  E: "[g#3,c#4,f4]!3 [g#3,c#4,f4]@2 [g#3,c#4,f4]@2 [g#3,c#4,f4]!4 [g#3,c#4,f4]@2 [g#3,c#4,f4]@2 [g#3,c#4,f4]", // C#
})).s("gm_acoustic_guitar_nylon").gain(0.3)

// chords · trumpet · "C Trumpet"
const trumpet = note("<~@12 A B C D ~@16 E F G H I J K L ~@8 A B C D ~@16 E F G H I J K L ~@4>".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@14", G: "g#4 f#4 g#4@8 e4 f#4 g#4 a4 g#4 f#4", H: "g#4 f#4 f4@14",
  I: "[c#4,a4] [b3,g#4] [c#4,a4]@8 [a3,f#4] [b3,g#4] [c#4,a4] [d4,b4] [c#4,a4] [b3,g#4]", // F#m E F#m D E F#m G F#m …
  J: "[c#4,a4] [b3,g#4] [c#4,a4]@14", // F#m E F#m
  K: "[d4,b4] [c#4,a4] [d4,b4]@8 [b3,g#4] [c4,a4] [d4,b4] [e4,c#5] [f#4,d5] [g#4,e5]", // G F#m G E F G C#m D …
  L: "[f4,c#5] [f#4,d5] [f4,c#5]@14", // C# D C#
})).s("gm_trumpet").gain(0.3)

// bass · electric bass pick · "Bass Guitar"
const bass = note(`<
  ~@4 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A E C D A B C D A B C D A B C D A B C D A B C D A
  B C D A B C D A B C D A E C D A B C D
>`.pickRestart({
  A: "f#2@2 f#2 ~ f#2@2 f#2 ~", B: "d2@2 d2 ~ d2@2 d2 ~", C: "e2@2 e2 ~ e2@2 e2 ~", D: "c#3@2 c#3 ~ c#3@2 c#3 ~",
  E: "d3@2 d3 ~ d3@2 d3 ~",
})).s("gm_electric_bass_pick").gain(0.3)

// drums · shaker
const shaker = s("sh").struct("<~@2 [x!16]!78>").gain(0.25)

// drums · woodblocks
const woodblocks = s("woodblock:4").struct("<~@2 [x!2 ~ x!2 ~ x ~ x!2 ~ x!2 ~ x ~]!78>").gain(0.36)

stack(acoustic_guitar_nylon, trumpet, bass, shaker, woodblocks)

More by Koji Kondo