Strudelify

Flying Free

Pont aeri

KeyD majorTempo120 bpm
0:00/0:00
// Flying Free — Pont aeri
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Clarinet en Si♭" named as a reed, played on clarinet (its piano patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5898358; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 105 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 · "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.

// other · clarinet · "Clarinet en Si♭"
const clarinet = note(`<
  ~@4 A B C D E F B G E F B H I@7 ~@8 J K L M@2 N O P@2 Q R S T Q R S T Q@2 T Q@3 T Q U@2 V@2 U@2 W@2 X@2 Y@2 X@2 Z@2 AA
  AB AC AD AA AE AF AG AH AI AJ AK AH AL AM AN AA AB AC AD AA AE AF AG AH AI AJ AK AH AL AM AN AO
>`.pickRestart({
  A: "d5@3 c#5@3 d5@3 c#5@3 d5@2 e5@2", B: "d5@3 c#5@3 d5@3 c#5@3 d5@2 c#5@2", C: "a4@3 g#4@3 a4@3 g#4@3 a4@2 b4@2",
  D: "c#5@3 a4@3 c#5@3 a4@3 c#5@2 a4@2", E: "g4@3 f#4@3 g4@3 f#4@3 g4@2 a4@2", F: "b4@3 a4@3 b4@3 a4@3 b4@2 c#5@2",
  G: "c#5@3 b4@3 c#5@3 b4@3 c#5@2 b4@2", H: "c#5@3 b4@3 c#5@3 b4@3 c#5@2 d5@2", I: "f#4/7",
  J: "d5@2 e5@2 f#5@3 d5@3 f#5@3 d5@3", K: "f#5@2 g5@2 f#5@3 d5@3 f#5@3 d5@3", L: "f#5@2 g5@2 a5@3 e5@3 a5@3 e5@3",
  M: "[a5@2 e5@2 a5@3 e5@3 a5@3 e5@2 g5@3 d5@2 g5@3 d5@3 g5@3 d5@3]/2", N: "g5@2 a5@2 g5@3 d5@3 g5@3 d5@3",
  O: "g5@2 d5@2 f#5@3 d5@3 f#5@3 d5@3", P: "[f#5@2 g5@2 f#5@3 d5@3 f#5@3 d5@19]/2", Q: "d5", R: "a#4", S: "f5", T: "c5",
  U: "[c5!2 d5@2 a4 a4@2 c5@2 a#4@7]/2", V: "[c5@2 c5@2 f5@3 f5@2 f5@2 g5@3 e5@6 d5@2 c5@10]/2",
  W: "[c5@2 c5@2 f5@3 f5@4 d5@3 e5@18]/2", X: "[f5!2 a5@2 f5 f5@2 g5@2 f5@7]/2", Y: "[a5@2 a5@3 a#5@2 g5@3 f5 e5@5]/2",
  Z: "[f5@2 f5@2 a5@3 a5@4 a#5@2 a5@2 g5@2 g5@8 f5@4 e5@3]/2", AA: "f5@6 e5@2 f5@3 g5@3 e5@2", AB: "f5@10 f5@3 e5@3",
  AC: "f5@3 g5", AD: "e5@10 f5@3 e5@3", AE: "f5@10 f5@3 f5@3", AF: "c6 a#5 a5 g5", AG: "g5@6 f4 e4",
  AH: "f4@6 e4@2 f4@3 g4@3 e4@2", AI: "f4@10 f4@3 e4@3", AJ: "f4@3 g4", AK: "e4@10 f4@3 e4@3", AL: "f4@10 f4@3 f4@3",
  AM: "c5 a#4 a4 g4", AN: "g4@6 f4 e4", AO: "f4",
})).s("gm_clarinet").gain(0.3)

// other · piano · "Trompeta en Si♭"
const piano = note(`<
  ~@8 A B C D ~@4 E@7 F@2 G@2 H@2 F I F@2 G@2 H@2 F I J ~@8 K L M N K L M N ~@15 O P Q R S P T U V W X Y Z W AA AB AC P
  Q R S P T U V W X Y Z W AA AB AC L
>`.pickRestart({
  A: "g4@3 f#4@3 g4@3 f#4@3 g4@2 a4@2", B: "b4@3 a4@3 b4@3 a4@3 b4@2 c#5@2", C: "d5@3 c#5@3 d5@3 c#5@3 d5@2 c#5@2",
  D: "c#5@3 b4@3 c#5@3 b4@3 c#5@2 b4@2", E: "d5@4 c#5@2 d5@3 c#5@3 d5@2 e5@2", F: "~ f#4 ~ f#4 ~ f#4 ~ f#4",
  G: "~ e4 ~ e4 ~ e4 ~ e4", H: "~ d4 ~ d4 ~ d4 ~ d4", I: "~ f#4 ~ f#4!5", J: "f#4", K: "f4@3 f4@3 e4@3 f4@3 g4@2 e4@2",
  L: "f4", M: "a4@3 a4@3 g4@3 a4@3 a#4@2 c5@2", N: "g4", O: "~@9 f5@4 e5@3", P: "f5@6 e5@2 f5@3 g5@3 e5@2",
  Q: "f5@10 f5@3 e5@3", R: "f5@3 g5", S: "e5@10 f5@3 e5@3", T: "f5@10 f5@3 f5@3", U: "c6 a#5 a5 g5", V: "g5@6 f4 e4",
  W: "f4@6 e4@2 f4@3 g4@3 e4@2", X: "f4@10 f4@3 e4@3", Y: "f4@3 g4", Z: "e4@10 f4@3 e4@3", AA: "f4@10 f4@3 f4@3",
  AB: "c5 a#4 a4 g4", AC: "g4@6 f4 e4",
})).s("gm_piano").gain(0.3)

// other · accordion · "Acordió"
const accordion = note(`<
  A B C D A B C E F G B H F G B I ~@7 J K L M@2 N O K J K L M@2 N O P@2 ~@8 Q R S T Q R S T ~@15 U V W X Y V Z AA AB AC
  AD AE AF AC AG AH AI V W X Y V Z AA AB AC AD AE AF AC AG AH AI AJ
>`.pickRestart({
  A: "d5@3 c#5@3 d5@3 c#5@3 d5@2 e5@2", B: "d5@3 c#5@3 d5@3 c#5@3 d5@2 c#5@2", C: "a4@3 g#4@3 a4@3 g#4@3 a4@2 b4@2",
  D: "c#5@3 a4@3 c#5@3 a4@3 c#5@2 e5@2", E: "c#5@3 a4@3 c#5@3 a4@3 c#5@2 a4@2", F: "g4@3 f#4@3 g4@3 f#4@3 g4@2 a4@2",
  G: "b4@3 a4@3 b4@3 a4@3 b4@2 c#5@2", H: "c#5@3 b4@3 c#5@3 b4@3 c#5@2 b4@2", I: "c#5@3 b4@3 c#5@3 b4@3 c#5@2 d5@2",
  J: "d5@2 e5@2 f#5@3 d5@3 f#5@3 d5@3", K: "f#5@2 g5@2 f#5@3 d5@3 f#5@3 d5@3", L: "f#5@2 g5@2 a5@3 e5@3 a5@3 e5@3",
  M: "[a5@2 e5@2 a5@3 e5@3 a5@3 e5@2 g5@3 d5@2 g5@3 d5@3 g5@3 d5@3]/2", N: "g5@2 a5@2 g5@3 d5@3 g5@3 d5@3",
  O: "g5@2 d5@2 f#5@3 d5@3 f#5@3 d5@3", P: "[f#5@2 g5@2 f#5@3 d5@3 f#5@3 d5@19]/2", Q: "d5", R: "a#4", S: "f5", T: "c5",
  U: "~@9 f5@4 e5@3", V: "f5@6 e5@2 f5@3 g5@3 e5@2", W: "f5@10 f5@3 e5@3", X: "f5@3 g5", Y: "e5@10 f5@3 e5@3",
  Z: "f5@10 f5@3 f5@3", AA: "c6 a#5 a5 g5", AB: "g5@6 f4 e4", AC: "f4@6 e4@2 f4@3 g4@3 e4@2", AD: "f4@10 f4@3 e4@3",
  AE: "f4@3 g4", AF: "e4@10 f4@3 e4@3", AG: "f4@10 f4@3 f4@3", AH: "c5 a#4 a4 g4", AI: "g4@6 f4 e4", AJ: "f4",
})).s("gm_accordion").gain(0.3)

// other · trombone · "Trombó"
const trombone = note(`<
  ~@4 A B C D E F G H E F G H I@7 ~@8 J K L M@2 N O P@2 ~@8 Q R S T Q R S T U V W X Y V W X U V Z X U AA@2 AB AC AD AE
  AF AC AD AG AF AC AD AE AF AC AD AG AH@2 AD AE AF AC AD AG AF AC AD AE AF AC AD AG AI@2
>`.pickRestart({
  A: "a3 d4 f#4 d4", B: "b3 d4 f#4 d4", C: "a3 c#4 f#4 c#4", D: "a3 c#4 a3 c#4", E: "e4 b3 e4!2", F: "d4 b3 d4!2",
  G: "f#4 d4 f#4 d4", H: "e4 c#4 e4!2", I: "d4@4 c#4@2 d4@3 c#4@3 d4@2 e4@2", J: "d3@2 e3@2 f#3@3 d3@3 f#3@3 d3@3",
  K: "f#3@2 g3@2 f#3@3 d3@3 f#3@3 d3@3", L: "f#3@2 g3@2 a3@3 e3@3 a3@3 e3@3",
  M: "[a3@2 e3@2 a3@3 e3@3 a3@3 e3@2 g3@3 d3@2 g3@3 d3@3 g3@3 d3@3]/2", N: "g3@2 a3@2 g3@3 d3@3 g3@3 d3@3",
  O: "g3@2 d3@2 f#3@3 d3@3 f#3@3 d3@3", P: "[f#3@2 g3@2 f#3@3 d3@3 f#3@3 d3@19]/2", Q: "d3!4", R: "a#2!4", S: "f2!4",
  T: "c3!4", U: "a3@2 d4 f4", V: "a#3 d4 f4 d4", W: "a3@2 c4 f4", X: "g3 c4 e4 c4", Y: "a3 d4 f4@2", Z: "a3 c4 f4@2",
  AA: "[a#3 d4 f4 d4@5]/2", AB: "g3 c4 e4@2", AC: "a3 d4 f4 ~", AD: "a#3 d4 f4 ~", AE: "a3 c4 f4 ~", AF: "g3 c4 e4 ~",
  AG: "a#3 c4 f4 ~", AH: "[g3 c4 e4 ~ a3 d4 f4 ~, ~@3 a4@5]/2", AI: "[g3 c4 e4 a4@5]/2",
})).s("gm_trombone").gain(0.3)

// bass · electric bass finger · "Baix elèctric"
const bass = note(`<
  A B C D A B C D E F G H E F G H I@7 J@4 K@2 J L J@4 K@2 J L M N O P Q N O P Q R@2 M R@3 M R S T U V W T U V S T X V S
  Y@2 Z AA AB AC AD AA AB AE AD AA AB AC AD AA AB AE Z AA AB AC AD AA AB AE AD AA AB AC AD AA AB AE Z AF
>`.pickRestart({
  A: "a2 d3 f#3 d3", B: "b2 d3 f#3 d3", C: "a2 c#3 f#3 c#3", D: "a2 c#3 a2 c#3", E: "g2 b2 e3 g2", F: "g2 b2 d3 g2",
  G: "b2 d3 f#3 b2", H: "a2 c#3 e3 a2", I: "d3/7", J: "a2 ~ a2 ~ a2 ~ a2 ~", K: "g2 ~ g2 ~ g2 ~ g2 ~",
  L: "a2 ~ a2 ~ a2!4", M: "a2", N: "d3!4", O: "a#2!4", P: "f2!4", Q: "c3!4", R: "a#2", S: "a2@2 d3 f3",
  T: "a#2 d3 f3 a#2", U: "a2@2 c3 f3", V: "g2 c3 e3 g2", W: "a2 d3 f3@2", X: "a2 c3 f3@2", Y: "[a#2 d3 f3 a#2@5]/2",
  Z: "g2 c3 e3@2", AA: "a2 d3 f3 ~", AB: "a#2 d3 f3 ~", AC: "a2 c3 f3 ~", AD: "g2 c3 e3 ~", AE: "a#2 c3 f3 ~", AF: "c3",
})).s("gm_electric_bass_finger").gain(0.3)

stack(clarinet, piano, accordion, trombone, bass)