Strudelify

mount wroclai

Beirut

KeyD♭ majorTempo111 bpm
0:00/0:00
// mount wroclai — Beirut
// 111 bpm, 6/8, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5984837; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 114 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(111/3)

// 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 · accordion
const accordion = note(`<
  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 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 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 B C D A B C D A B C D A B C D A@2
>`.pickRestart({
  A: "bb2@3 [f4,bb4,db5]@2 [f4,bb4,db5]@3 bb2@3 [f4,bb4,db5]@2 [f4,bb4,db5]@3", // Bbm
  B: "db3@3 [f4,ab4,db5]@2 [f4,ab4,db5]@3 db3@3 [f4,ab4,db5]@2 [f4,ab4,db5]@3", // Db
  C: "ab2@3 [eb4,ab4,c5]@2 [eb4,ab4,c5]@3 ab2@3 [eb4,ab4,c5]@2 [eb4,ab4,c5]@3", // Ab
  D: "eb3@3 [gb4,bb4,eb5]@2 [gb4,bb4,eb5]@3 eb3@3 [gb4,bb4,eb5]@2 [gb4,bb4,eb5]@3", // Ebm
})).s("gm_accordion").gain(0.3)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@20 A B C D E B C D E B C D E B C D E B C D F G H I@2 G H I@2 G H I@2 G H J@2 ~@23 A B C D E B C D E B C D E B C D K
  ~@17
>`.pickRestart({
  A: "~@8 f4@3 ab4@2 bb4@3", B: "ab4@8 f4@3 eb4@2 db4@3", C: "eb4@8 eb4@3 f4@2 ab4@3", D: "f4@8 eb4@3 db4@2 eb4@3",
  E: "f4@5 ~@3 f4@3 ab4@2 bb4@3", F: "f4@5 ab4@3 bb4@8", G: "~@5 ab4@3 bb4@8", H: "~@5 ab4@3 bb4@5 c5@3",
  I: "[db5@8 c5@5 bb4@5 ~@3 ab4@3 bb4@8]/2", J: "[db5@8 c5@5 bb4@5 ~@14]/2", K: "f4@5 ~@11",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note("<~@32 A@2 B C@2 A B C@2 D E F G D E F G D E F G D E F H A B C@2 A B I@2 ~@49>".pickRestart({
  A: "~@5 ab4@3 bb4@8", B: "~@5 ab4@3 bb4@5 c5@3", C: "[db5@8 c5@5 bb4@5 ~@3 ab4@3 bb4@8]/2", D: "~@5 ab4@3 f4@8",
  E: "~@5 f4@3 eb4@5 db4@3", F: "eb4@5 f4@11", G: "f4@5 ab4@3 f4@8", H: "f4@5 ab4@3 bb4@8",
  I: "[db5@8 c5@5 bb4@5 ~@14]/2",
})).s("gm_trumpet").gain(0.3)

// other · french horn · "E♭ Alto Horn"
const french_horn = note("<~@32 A@2 B C@2 A B D@2 ~@73>".pickRestart({
  A: "~@5 ab4@3 bb4@8", B: "~@5 ab4@3 bb4@5 c5@3", C: "[db5@8 c5@5 bb4@5 ~@3 ab4@3 bb4@8]/2",
  D: "[db5@8 c5@5 bb4@5 ~@14]/2",
})).s("gm_french_horn").gain(0.3)

// other · french horn · "Horn in F"
const french_horn_2 = note(`<
  ~@21 A B@2 C A B@2 C A B@2 C A B@2 C ~@32 A B@2 C A B@2 C A B@2 C ~@16 A B@2 C A B@2 C A B@2 C A B@2 C ~
>`.pickRestart({
  A: "f3@3 ab3@13", B: "[f3@3 ab3@10 f3@5 ~ eb3@8 ab3@2 f3@3]/2", C: "f3",
})).s("gm_french_horn").gain(0.3)

// other · french horn · "Horn in F"
const french_horn_3 = note(`<
  ~@21 A B C D A B C D A B C D A B C D ~@24 A E F D A E F D A B C D A B C D G H F I ~@16 G H J I G H J I G H J I G H J I
  ~
>`.pickRestart({
  A: "db4@3 eb4@10 db4@3", B: "c4@11 db4@2 c4@3", C: "db4", D: "bb3@11 ~@5", E: "eb4@11 db4@2 c4@3",
  F: "db4@11 c4@2 bb3@3", G: "f4@13 eb4@3", H: "c4@11 bb3@2 c4@3", I: "bb3", J: "db4@11 eb4@5",
})).s("gm_french_horn").gain(0.3)

stack(accordion, trumpet, trumpet_2, french_horn, french_horn_2, french_horn_3)

More by Beirut