Strudelify

Wings of an Eagle

Classics

KeyG majorTempo125 bpm
0:00/0:00
// Wings of an Eagle — Classics
// 125 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 7 "#Clean Gt" electric guitar clean (copy of ch 6 "Jazz Gtr." electric guitar jazz); ch 12 "Pan Flute" pan flute (copy of ch 9 "Recorder" recorder)
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): #Mtd.Dist.
setcpm(125/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 · epiano1 · "#60's EP"
const epiano1 = note(`<
  A@2 B C@3 D E C@2 D E C F C E C F C F G D C E D C D C E C@3 D E C@2 D E C F C E C F C F G D C E D C D C E C@3 D E C@2
  D E C F C E C F C F H I J K L J K J K L K@9 M ~
>`.pickRestart({
  A: "[b3,d4,g4]@15 ~", B: "[c4,e4,a4]@7 ~ [d4,f#4,b4]@7 ~", C: "~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4]",
  D: "~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4]", // C
  E: "~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4]", // D
  F: "~ [c4,e4,g4] ~ [c4,e4,g4] ~ [a3,d4,f#4] ~ [a3,d4,f#4]", G: "~@2 [b3,d4,g4]@2 ~@2 [b3,d4,g4]@2 [b3,d4,g4] ~@7",
  H: "~ [b3,d4,g4] ~ [b3,d4,g4] ~ [a#3,d#4,g4] ~ [a#3,d#4,g4]", // G D#
  I: "~@2 [c4,d#4,g#4]@2 ~@2 [c4,d#4,g#4]@2 [c4,d#4,g#4] ~@7", // G#
  J: "~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4]", // C#
  K: "~ [c4,d#4,g#4] ~ [c4,d#4,g#4] ~ [c4,d#4,g#4] ~ [c4,d#4,g#4]", // G#
  L: "~ [a#3,d#4,g4] ~ [a#3,d#4,g4] ~ [a#3,d#4,g4] ~ [a#3,d#4,g4]", // D#
  M: "~ [c4,d#4,g#4] ~ [c4,d#4,g#4] ~ [c4,d#4,g#4] ~@2", // G#
})).s("gm_epiano1").gain(0.22).pan(0.6)

// bass · electric bass finger · "Fing.Bass"
const bass = note(`<
  A@2 B C@3 D E C@2 D F G H C F G H C H I J C E K L K C F C@3 D E C@2 D F G H C F G H C H I J C E K L K C F C@3 D E C@2
  D F G H C F G H C H M N O P Q R S R P T P@10 ~
>`.pickRestart({
  A: "g2@15 ~", B: "a2@7 ~ d2@7 ~", C: "g2@2 ~@2 d2@3 ~ g2@2 ~@2 d2@3 ~", D: "c2@2 ~@2 g2@3 ~ c2@2 ~@2 g2@3 ~",
  E: "d2@2 ~@2 a2@3 ~ d2@2 ~@2 a2@3 ~", F: "d2@2 ~@2 a1@3 ~ d2@2 ~@2 a1@3 ~", G: "g2@3 ~ f2@3 ~ e2@3 ~ d2@3 ~",
  H: "c2@2 ~@2 g1@3 ~ d2@2 ~@2 a1@3 ~", I: "g2@2 ~@2 d2@3 ~ g2@2 ~@2 g2@4", J: "c3@2 ~@2 g2@3 ~ c3@2 ~@2 g2@3 ~",
  K: "c2@2 ~@2 g1@3 ~ c2@2 ~@2 g1@3 ~", L: "g2@2 ~@2 d2@3 ~ g2@4 d2@3 ~", M: "g2@2 ~@2 g2@3 ~ d#2@2 ~@2 d#2@3 ~",
  N: "g#2@2 ~@2 d#2@3 ~ g#2@2 ~@2 g#2@4", O: "c#3@2 ~@2 g#2@3 ~ c#3@2 ~@2 g#2@3 ~",
  P: "g#2@2 ~@2 d#2@3 ~ g#2@2 ~@2 d#2@3 ~", Q: "d#2@2 ~@2 a#2@3 ~ d#2@2 ~@2 a#2@3 ~",
  R: "c#2@2 ~@2 g#1@3 ~ c#2@2 ~@2 g#1@3 ~", S: "g#2@2 ~@2 d#2@3 ~ g#2@4 d#2@3 ~",
  T: "d#2@2 ~@2 a#1@3 ~ d#2@2 ~@2 a#1@3 ~",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · string ensemble 1 · "#Vlo.Strn"
const string_ensemble_1 = note(`<
  A@2 B C D ~@3 E@3 F G H@2 I G H@2 J K@2 L@2 M N O P@2 Q ~@4 R@3 F G H@2 I G H@2 J K@2 L@2 M N O P@2 S T ~@3 U V@3 W
  X@4 Y@2 Z AA AB@4 AC@2 AD@3 AE AF AG AF AG AF AG AF AG AF ~
>`.pickRestart({
  A: "[~@12 b5 g5 d5 b4@15 ~@2, ~@15 c5 ~@16]/2", B: "[c4,e4,a4] [a3,c4,f#4]", C: "[d4,g4,b4]@13 ~ [a#4,c#5]@2",
  D: "[b4,d5]", E: "[~@15 b4@16 ~@13 e5@4, ~@15 g4@28 ~@5, ~@2 c5]/3", F: "[a4,d5] [f#4,c5]",
  G: "[g4,b4]@9 ~ [e4,g4]@2 [d#4,f#4]@2 [d4,f4]@2", H: "[[c4,e4]@7 f#4@8 ~@9 b4@8, ~@7 d4@17 ~@8, ~ g4]/2",
  I: "[a4,d5]@9 ~@3 [c4,e4] [d4,f#4] [e4,g4] [f#4,a4]", J: "[g4,c5]@7 [f#4,a4]@8 ~",
  K: "[[d4,g4]@9 ~@3 [g4,b4] [a4,c5] [a#4,d5] [c5,e5]@17, ~@15 b4@2 ~@15, ~@15 d#5 ~@16]/2", L: "[b4 a4, d5]/2",
  M: "g5 c6, e5", N: "[d5,b5]@5 [g4,b4] [a4,c5] [b4,d5]", O: "[c5,e5]",
  P: "[b4@16 a4@8 [c5,e5]@2 [b4,d5]@3 [a4,c5]@3, d5@3 ~]/2", Q: "[g4,b4]",
  R: "[~@2 [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [a#4,c#5]@2 [b4,d5] ~ [b4,d5] ~ [b4,d5] b4@16 ~@13 e5@4, ~@15 g4@28 ~@5, ~@2 c5]/3", // Bm A#m Bm
  S: "[g4,b4]@13 ~ [a#4,c#5]@2", T: "[b4,d5]@15 ~",
  U: "~@2 [b4,d5] ~ [b4,d5] ~ [b4,d5] ~ [a#4,c#5]@2 [b4,d5] ~ [b4,d5] ~ [b4,d5] ~", // Bm A#m Bm
  V: "[[b3,d4]@15 ~ e4@15 d4@8 ~ c4@8, g4@2 ~, ~@15 c4@16 [a3,f#4]@17]/3", // Bm D
  W: "[b3,d4,g4]@9 ~ [e4,g4]@2 [d#4,f#4]@2 [d4,f4]@2", // G Em D#m Dm
  X: "[[g3,c4,e4]@4 [a3,f#4]@4 [b3,g4]@8 ~@7 b3@2 [c4,f#4,a4]@2 [g4,b4]@2 [e4,g4] [d#4,f#4] [d4,f4], ~ d4@6 ~, ~@32 [a3,f#4]@15 ~@17, ~@45 g4@4 ~@15]/4", // C D Em F#dim G Em D#m Dm …
  Y: "[~ a3 b3 [d4,b4], [g3,c4,e4]@9 ~@23, ~@7 d4@16 ~@9, ~@7 f#4@8 ~ g4@16]/2", // G C
  Z: "[e4,g4,c5]@7 ~ d4@8, ~@7 [f#4,a4]@8 ~", AA: "[b3,d4,g4] [d#4,g4,a#4]",
  AB: "[[g#4,c5]@2 [d#4,g#4,c5]@2 [g#4,c5]@2 [d#4,g#4,c5]@2 [d#4,g#4,c5] ~@3 [g#4,c5] [a#4,c#5] [b4,d#5] e5 f3@11 g3@4 ~@11 g#3@2 c4@2 g#3@2 [g3,a#4]@16, d#4 ~@3 d#4 ~@10 [c#5,f5]@17 d#5@32, ~@15 c5@2 ~@14 g#3@10 ~@23, ~@2 c5 ~]/4", // G# A#m B Gm C#
  AC: "[g#5@4 c#6@4 ~@4 g#3 [g#3,g#4,c5] [a#3,a#4,c#5] [c4,c5,d#5], g#3@3 ~, f5@8 [d#5,c6]@5 ~@3]/2", // G# A#m Cm
  AD: "[f3@11 g3@4 ~@11 g#3@2 c4@2 g#3@2 [g3,a#4]@8 [g3,c#5,f5]@2 ~ f3@2 [d#3,a#4,c#5]@3, [c#5,f5]@15 g#3@10 ~@23, ~@2 d#5@3 ~, ~@16 c5@16 ~@10 [c5,d#5]@3 ~@3]/3", // Gm Gm7b5 D#7 C# Cm
  AE: "[d#3,g#4,c5]@12 f5 d#5 c5 a#4", AF: "d#4@2 f4 d#4, g#4@15 ~", AG: "[g#4,c5]@12 f5 d#5 c5 a#4",
})).s("gm_string_ensemble_1").gain(0.43).pan(0.6)

// chords · acoustic guitar steel · "#Nyl/Stee"
const acoustic_guitar_steel = note(`<
  A@2 B C D C E F C@2 E F C G C F C G C G H E C F E C E C F C D C E F C@2 E F C G C F C G C G H E C F E C E C F C D C E
  F C@2 E F C G C F C G C G I J K L M K L K L M L N L N L N L N L O ~
>`.pickRestart({
  A: "[d3,g3,d4,g4,b4]@15 ~", B: "[e3,a3,e4,a4,c5]@7 ~ [d3,a3,d4,f#4,a4]@7 ~",
  C: "[g3,d4,g4,b4]@2 [g3,d4,g4,b4] [d4,g4,b4] [g3,d4,g4,b4] ~ [g3,d4,g4,b4] [d4,g4,b4] [d4,g4]!2 ~ [g4,b4] [g3,d4,g4,b4] ~@2 [d4,g4], d3 ~ d3 ~, ~@4 [g3,b4] [g3,d4,g4,b4] ~ [g3,d4,g4,b4]", // G G5 G G5 G
  D: "[g3,d4,g4,b4]@2 [g3,d4,g4,b4] [d4,g4,b4] [g3,d4,g4,b4] ~ [g3,d4,g4,b4] [d4,g4,b4] [d4,g4]!2 [g3,d4,g4,b4] [d4,g4,b4] [g3,d4,g4,b4] ~@2 [d4,g4], d3 ~ d3 ~, ~@4 [g3,b4] ~@2 [g3,d4,g4,b4]", // G G5 G G5 G
  E: "[g3,c4,e4,g4]@2 [g3,c4,e4,g4] [c4,e4,g4] [g3,c4,e4,g4] ~ [g3,c4,e4,g4] [c4,e4,g4] [c4,e4]!2 [g3,c4,e4,g4] [c4,e4,g4] [g3,c4,e4,g4] ~@2 [c4,e4], c3 ~ c3 ~, ~@4 [g3,g4] ~@2 [g3,c4,e4,g4]", // C G C
  F: "[a3,d4,f#4,a4]@2 [a3,d4,f#4,a4] [d4,f#4,a4] [a3,d4,f#4,a4] ~ [a3,d4,f#4,a4] [d4,f#4,a4] [d4,f#4]!2 [a3,d4,f#4,a4] [d4,f#4,a4] [a3,d4,f#4,a4] ~@2 [d4,f#4], d3 ~ d3 ~, ~@4 [a3,a4] ~@2 [a3,d4,f#4,a4]", // D A D
  G: "[g3,c4,e4,g4]@2 [g3,c4,e4,g4] [c4,e4,g4] [g3,c4,e4,g4] ~ [g3,c4,e4,g4] [c4,e4,g4] [d4,f#4]!2 [a3,d4,f#4,a4] [d4,f#4,a4] [a3,d4,f#4,a4] ~@2 [d4,f#4], c3 ~ d3 ~, ~@4 [a3,a4] ~@2 [a3,d4,f#4,a4]", // C D A D
  H: "[g3,d4,g4,b4]@2 [g3,d4,g4,b4] [d4,g4,b4] [g3,d4,g4,b4] ~ [g3,d4,g4,b4] [d4,g4,b4] [g3,d4,g4,b4] ~@7, d3 ~@3", // G
  I: "[g3,d4,g4,b4]@2 [g3,d4,g4,b4] [d4,g4,b4] [g3,d4,g4,b4] ~ [g3,d4,g4,b4] [d4,g4,b4] [d#4,g4]!2 [a#3,d#4,g4,a#4] [d#4,g4,a#4] [a#3,d#4,g4,a#4] ~@2 [d#4,g4], d3 ~ d#3 ~, ~@4 [a#3,a#4] ~@2 [a#3,d#4,g4,a#4]", // G D# A# D#
  J: "[g#3,d#4,g#4,c5]@2 [g#3,d#4,g#4,c5] [d#4,g#4,c5] [g#3,d#4,g#4,c5] ~ [g#3,d#4,g#4,c5] [d#4,g#4,c5] [g#3,d#4,g#4,c5] ~@7, d#3 ~@3", // G#
  K: "[g#3,c#4,f4,g#4]@2 [g#3,c#4,f4,g#4] [c#4,f4,g#4] [g#3,c#4,f4,g#4] ~ [g#3,c#4,f4,g#4] [c#4,f4,g#4] [c#4,f4]!2 [g#3,c#4,f4,g#4] [c#4,f4,g#4] [g#3,c#4,f4,g#4] ~@2 [c#4,f4], c#3 ~ c#3 ~, ~@4 [g#3,g#4] ~@2 [g#3,c#4,f4,g#4]", // C# G# C#
  L: "[g#3,d#4,g#4,c5]@2 [g#3,d#4,g#4,c5] [d#4,g#4,c5] [g#3,d#4,g#4,c5] ~ [g#3,d#4,g#4,c5] [d#4,g#4,c5] [d#4,g#4]!2 ~ [g#4,c5] [g#3,d#4,g#4,c5] ~@2 [d#4,g#4], d#3 ~ d#3 ~, ~@4 [g#3,c5] [g#3,d#4,g#4,c5] ~ [g#3,d#4,g#4,c5]", // G# G#5 G# G#5 G#
  M: "[a#3,d#4,g4,a#4]@2 [a#3,d#4,g4,a#4] [d#4,g4,a#4] [a#3,d#4,g4,a#4] ~ [a#3,d#4,g4,a#4] [d#4,g4,a#4] [d#4,g4]!2 [a#3,d#4,g4,a#4] [d#4,g4,a#4] [a#3,d#4,g4,a#4] ~@2 [d#4,g4], d#3 ~ d#3 ~, ~@4 [a#3,a#4] ~@2 [a#3,d#4,g4,a#4]", // D# A# D#
  N: "[g#3,d#4,g#4,c5]@2 [g#3,d#4,g#4,c5] [d#4,g#4,c5] [g#3,d#4,g#4,c5] ~ [g#3,d#4,g#4,c5] [d#4,g#4,c5] [d#4,g#4]!2 [g#3,d#4,g#4,c5] [d#4,g#4,c5] [g#3,d#4,g#4,c5] ~@2 [d#4,g#4], d#3 ~ d#3 ~, ~@4 [g#3,c5] ~@2 [g#3,d#4,g#4,c5]", // G# G#5 G# G#5 G#
  O: "[g#3,d#4,g#4,c5]@2 [g#3,d#4,g#4,c5] [d#4,g#4,c5] [g#3,d#4,g#4,c5] ~ [g#3,d#4,g#4,c5] [d#4,g#4,c5] [d#4,g#4]!2 [g#3,d#4,g#4,c5] [d#4,g#4,c5] [g#3,d#4,g#4,c5] ~@3, d#3 ~ d#3 ~, ~@4 [g#3,c5] ~@3", // G# G#5 G#
})).s("gm_acoustic_guitar_steel").gain(0.29).pan(0.3)

// other · electric guitar jazz · "Jazz Gtr."
const electric_guitar_jazz = note("<~ A B C ~@26 D@2 ~@33 E F G@2 E H I J K ~@9 L@8 ~@2>".pickRestart({
  A: "b2@4 b2@2 b2@2 c3@3 ~ b2@4, ~@8 b2 ~@7", B: "a2@2 a2@2 a2@2 a2@2 [a2,b2]@2 ~ b2@2 ~ a2@2", C: "g2",
  D: "[b2@4 b2@2 b2@2 c3@3 ~ b2@12 ~@8, ~@8 b2 ~@23]/2", E: "e3!3 f#3@2 e3@2 f#3", F: "g3@4 e3@2 d3@9 ~",
  G: "[a3@3 a3 a3@2 a3@2 d3@2 e3@2 f#3@2 g3@4 a3@4 b3@9 ~]/2", H: "g3@4 a3@2 b3@9 ~",
  I: "c4@3 ~ c4@2 a3@4 c4@2 b3@2 a3@2", J: "g2@3 ~ g2@3 ~ d#2@3 ~ d#2@3 ~", K: "g#2!5 ~@3",
  L: "[c3@3 c3 c3@2 c3@2 c#3@3 ~ c3@12 ~@8, ~@8 c3 ~@23]/2",
})).s("gm_electric_guitar_jazz").gain(0.48).pan(0.6)

// other · electric guitar jazz · "Jazz Gtr." · soft notes
const electric_guitar_jazz_2 = note("<~@71 [~@3 c4 ~@12] [~@3 g2 ~@3 g2 ~@3 d#2 ~@3 d#2] ~@20>")
  .s("gm_electric_guitar_jazz").gain(0.3).pan(0.6)

// chords · recorder
const recorder = note(`<
  ~@3 A B ~@3 C ~@11 D ~@3 E F ~@3 A B ~@3 C ~@11 B ~@3 E F ~@3 A B G H I J K L M J ~@12 N O ~@14
>`.pickRestart({
  A: "[g5,a5,b5] [g5,b5,c6] [g5,a5,c6] [a5,b5,c6] [g5,b5,c6] [g5,a5,b5] [a5,b5,c6] [g5,a5,c6] [g5,a5,b5] [g5,b5,c6] [g5,a5,c6] [a5,b5,c6] [g5,b5,c6] [g5,a5,b5] [a5,b5,c6] [g5,a5,c6]", // G Cmaj7 Am7 Am Cmaj7 G Am Am7 …
  B: "[g5,a5,b5] [g5,b5,c6] [g5,a5,c6] [a5,b5,c6] [g5,b5,c6] [g5,a5,b5] [a5,b5,c6] [g5,a5,c6] [g5,b5] ~@7", // G Cmaj7 Am7 Am Cmaj7 G Am Am7 …
  C: "~@2 [b5,d6] ~ [b5,d6] ~ [b5,d6] ~ [a#5,c#6]@2 [b5,d6] ~ [b5,d6] ~ [b5,d6] ~", // Bm A#m Bm
  D: "[g5,a5,b5,c6] [g5,b5] [g5,a5,b5,c6]!3 [a5,c6] [g5,a5,b5,c6]!2 [g5,b5] ~@7", // Cmaj7 G Cmaj7 Am Cmaj7 G
  E: "~@4 [e5,g5]@3 ~ [g5,c6]@4 [c6,e6]@4", // Em C5 C
  F: "[b5,c6,d6,e6] [b5,d6] [b5,c6,d6,e6]!3 [c6,e6] [b5,c6,d6,e6]!2 [b5,d6] ~@7", // Cmaj7 Bm Cmaj7 C Cmaj7 Bm
  G: "[b5,d6] ~ [g5,b5]@2 ~@2 [d5,g5]@3 ~ [b5,d6]@2 ~@2 [b5,d6] ~", // Bm G G5 Bm
  H: "[c6,e6] ~ [g5,c6]@2 ~@2 [e5,g5]@6 ~@2 [g5,c6] ~", // C C5 Em C5
  I: "[f#5,a5] ~ [d5,f#5]@3 ~ [e5,g5]@2 ~@2 [f#5,a5]@3 ~ [f#5,a5]@2", J: "[g5,b5]@13 ~@3",
  K: "[b5,d6] ~ [g5,b5]@2 ~@2 [d5,g5]@2 ~@2 [b5,d6]@2 ~@2 [b5,d6] ~", // Bm G G5 Bm
  L: "[c6,e6] ~ [g5,c6]@2 ~@2 [e5,g5]@6 ~@2 [a5,c6] ~", // C C5 Em Am
  M: "[f#5,a5] ~ [d5,f#5]@3 ~ [e5,g5]@2 ~@2 [f#5,a5]@2 ~@2 [f#5,a5]@2", N: "~@4 [f5,g#5]@3 ~ [g#5,c#6]@4 [c#6,f6]@4",
  O: "[c6,c#6,d#6,f6] [c6,d#6] [c6,c#6,d#6,f6]!3 [c#6,f6] [c6,c#6,d#6,f6]!2 [c6,d#6] ~@7", // C#maj7 Cm C#maj7 C# C#maj7 Cm
})).s("gm_recorder").gain(0.24).pan(0.6)

// chords · xylophone · "#Xylophon"
const xylophone = note("<~@21 A ~@4 A ~@20 A ~@4 A ~@21 B ~@4 B ~@13>".pickRestart({
  A: "[c6,e6,c7,e7] [g5,c6,g6,c7] [e5,g5,e6,g6] [g5,c6,g6,c7] [c6,e6,c7,e7] [g5,c6,g6,c7] [e5,g5,e6,g6] [g5,c6,g6,c7] ~@8", // C C5 Em C5 C C5 Em C5
  B: "[c#6,f6,c#7,f7] [g#5,c#6,g#6,c#7] [f5,g#5,f6,g#6] [g#5,c#6,g#6,c#7] [c#6,f6,c#7,f7] [g#5,c#6,g#6,c#7] [f5,g#5,f6,g#6] [g#5,c#6,g#6,c#7] ~@8", // C# C#5 Fm C#5 C# C#5 Fm C#5
})).s("gm_xylophone").gain(0.2).pan(0.3)

// drums · kick
const kick = s("bd").struct("<x!2 [x!2] [x!4]!89 ~>").gain(0.48)

// drums · snare
const snare = s("sd").struct("<A@2 B C@17 D C@25 D C@26 D C@18 ~>".pickRestart({
  A: "x", B: "x!2", C: "~ x ~ x", D: "~ x!3",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct("<~@3 A B@16 C A B@24 C A B@25 C A B@16 D ~>".pickRestart({
  A: "~ x!7", B: "x!8", C: "x!5 ~@3", D: "x!7 ~",
})).gain(0.48)

// drums · crash
const crash = s("cr").struct("<A@2 B A ~@17 A ~@25 A ~@26 A ~@18>".pickRestart({
  A: "x", B: "x!2",
})).gain(0.56)

stack(
  epiano1, bass, string_ensemble_1, acoustic_guitar_steel, electric_guitar_jazz, electric_guitar_jazz_2, recorder,
  xylophone, kick, snare, hihat, crash
)

More by Classics