Strudelify

Gabriel's Oboe

Ennio Morricone

KeyD majorTempo60 bpm
0:00/0:00
// Gabriel's Oboe — Ennio Morricone
// 60 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5338907; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 49 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/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 B C D E F G H I F J K L M N O P Q R@2 S T@2 U V W X Y Z AA AB@2 AC AD AE AF AG AH AI AJ AK AL AM@2 AN AO AP AQ@2
>`.pickRestart({
  A: "[a1,a3]@4 [a1,b3]@2 a2 a1, ~ a3, ~@3 c#4", B: "[a1,b3,d4]@2 [a2,c#4,e4]@2 [a1,d4,f#4]@2 a2 a1, ~@3 [e4,g4]",
  C: "[d2,d4,f#4,a4]!2 [e2,c#4,g4,a4]!2", D: "[f#2,a3,d4,a4]!2 [g2,b3,d4,g4]!2", E: "[a2,a3,c#4,g4]!2 [f#2,a3,d4,a4]!2",
  F: "[g2,b3,d4,g4]!4", G: "[e2,b3,d4,a4]!2 [a2,c#4,g4,a4]!2", H: "[d2,d4,f#4,a4]!2 [c#3,d4,f#4,a4]!2",
  I: "[b2,d4,f#4,a4]!2 [a2,d4,f#4,a4]!2", J: "[d2,d4,f#4,a4] [c#3,d4,f#4,a4] [b2,d4,f#4,a4] [a2,d4,f#4,a4]",
  K: "[g2,d4,g4,b4]!2 [e2,d4,g4,b4]!2", L: "[a2,d4,e4,a4]!4", M: "[f#2,a3,e4,a4]!2 [g2,d4,g4,b4]!2",
  N: "[a2,d4,e4,a4]!2 [a2,c#4,e4,a4]!2", O: "[a#2,c#4,e4,f#4]!4", P: "[b2,b3,d4,f#4] [a2,b3,d4,f#4] [g2,d4,g4,b4]!2",
  Q: "[a2,d4,e4,a4]!2 [a2,c#4,g4,a4]!2", R: "[d2,d4,f#4,a4]!4",
  S: "a4@2 [a4,b4] g4 [d3,f#3,a3]@4 [c#3,g3,a3]@4 ~@2 a4@2, [d3,f#3,a3] a4@2 [c#3,g3,a3]", // Asus2 D A7 D A7
  T: "[d5@2 e5 d5 c#5 d5 c#5 b4 b4@2 a4@2 [b2,d3,g3]@4 [a2,c#3,g3]@4 ~@2 a4@2 d5@2 e5 d5 c#5@2 d5 c#5, [a2,d3,a3]!2 [b2,d3,g3] a4@2 [a2,c#3,g3] [a2,d3,a3]!2]/2", // G A7 D5 G A7 D5
  U: "[b2,d3,g3]@2 [b2,d3,g3]@2 ~ d5 c#5 b4, b4@2 [b2,d3,g3]!2", // G
  V: "a4 g4 ~@2 [b2,d3,a3]@4 [c#3,g3,a3]@4 ~@2 a4@2, [b2,d3,a3]@3 a4@11 ~@2, ~@3 [c#3,g3,a3]", // Bm7 A7 Bm7 A7
  W: "f#5 e5!2 d5 [d3,f#3,a3]@2 ~ a4, [d3,f#3,a3]@2 [d3,f#3,a3]@2 d5@3 ~, ~@3 [d3,f#3,a3]", // D
  X: "f#5 e5!2 d5 [d3,f#3,a3]@4 [d3,f#3,a3]@4 c#5 d5 c#5 d5, [d3,f#3,a3] d5@2 [d3,f#3,a3]", // D
  Y: "[b2,d3,g3]@2 [b2,d3,g3]@2 ~ b4 d5 g5, b4@2 [b2,d3,g3]!2", // G
  Z: "g5 f#5 [d3,f#3,a3]@2 [d3,f#3,a3]@2 d5 b5, [d3,f#3,a3] f#5@2 [d3,f#3,a3]", // D
  AA: "[d3,g3,b3]@2 [d3,g3,b3]@2 [d3,g3,b3]@2 ~ a5, b5@3 [d3,g3,b3]", // G
  AB: "[[d3,e3,a3]@2 [d3,e3,a3]@2 [d3,e3,a3]@2 [d3,e3,a3]@2 [c#3,e3,a3]@2 [c#3,e3,a3]@2 f#4 g4 a4 g4, a5@23 ~ [c#3,e3,a3]@4 [c#3,e3,a3]@4]/2", // Dsus2 A
  AC: "[d3,f#3,a3]@2 [d3,f#3,a3]@2 [c#3,g3,a3]@2 ~ e4, f#4@4 g4@3 ~, ~@3 [c#3,g3,a3]", // D A7
  AD: "[a2,d3,a3]!2 [d3,g3,b3]!2, a4 b4", AE: "[c#3,g3,a3]!2 [a2,d3,a3,d5] [a2,d3,a3,c#5], c#5 ~",
  AF: "[b2,d3,g3]@2 ~ f#4 [b2,d3,g3]@2 [b2,d3,g3]@2, g4@3 ~ g4@4, ~ [b2,d3,g3] ~@2", // G
  AG: "[d3,e3,a3]@2 ~ f#4 [c#3,e3,a3]@2 [c#3,e3,a3]@2, g4@3 ~ e4@4, ~ [d3,e3,a3] ~@2", // Dsus2 A Dsus2
  AH: "[d3,f#3,a3]@4 ~@2 d5 e5 f#5@2 e5@2 e5@2 d5@2, ~ [d3,f#3,a3]!3", // D
  AI: "[d3,f#3,b3]@4 ~@2 d5 e5 f#5@2 e5@2 e5@2 d5@2, d5@3 ~@5, ~ [d3,f#3,b3] [d3,f#3,a3]!2", // Bm D
  AJ: "[b2,d3,g3]!4, b4@15 ~", AK: "[d3,f#3,a3]!4, a5 b5",
  AL: "b5 a5 g5 f#5 [c#3,e3,g3]@2 [c#3,e3,g3]@2, [b2,d3,g3]!2 e5@2", // C#dim G
  AM: "[[a2,e3,a3]!2 [d3,g3,b3]!2 [d3,e3,a3]!2 [c#3,e3,a3]!2, a5@15 ~]/2", AN: "[c#3,e3,f#3]!4, a#5@15 ~",
  AO: "[b2,d3,f#3,b5] [b2,d3,f#3,a5] [d3,g3,b3]!2, ~ g5", AP: "[d3,e3,a3]!2 [c#3,g3,a3]!2, a5@15 ~",
  AQ: "[[d3,f#3,a3]@4 [d3,f#3,a3]@4 [d3,f#3,a3]@4 [d3,f#3,a3]@4 [d3,f#3,a3]@15 ~, d5@15 ~]/2", // D
})).s("gm_piano").gain(0.2)

stack(piano)

More by Ennio Morricone