Strudelify

Bint El Shalabiya

Fairuz

KeyA minorTempo80 bpm
0:00/0:00
// Bint El Shalabiya — Fairuz
// 80 bpm, 2/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/8 at bar 1, 2/4 at bar 2) are rendered on a constant 2/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5974896; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 126 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/2)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · violin
const violin = note(`<
  A B C D E F G H I J K L M N K L O F G H I J K L M N K L P Q R S T U V W X Y Z AA AB Y Z AA AC F G H I J K L M N K L O
  AD AE AF AG AH Q R S AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AS AT AW AN AO AP AQ AR AS AT AU AV AS AT AX AY AZ BA
  BB BC AB BD BE BF BG BH BI BF BG BH BJ AN AO AP AQ AR AS AT AU AV AS AT BK AJ AK AL AM
>`.pickRestart({
  A: "~@6 a3 b3", B: "c4@2 d4 e4 f4@2 g#4 a4", C: "b4@2 g#4@4 c5 b4", D: "a4@2 g#4 f4 e4 d4 c4 b3", E: "a3 ~",
  F: "~ e5!3", G: "f5 e5 d5 f5 e5@4", H: "~ e5 f5 a5", I: "g#5@2 f5 e5 d5@4", J: "~ f5!2 e5",
  K: "e5@2 d5 c5 e5 d5 c5 b4", L: "a4@2 b4@2 d5 c5!2 b4", M: "b4 a4!2 g#4 a4 b4 c5 d5", N: "e5!2 f5 e5",
  O: "b4 a4!2 g#4 a4@4", P: "b4 a4!2 g#4 a4@2 d5 e5", Q: "f5@2 a5 g#5", R: "f5@2 e5 d5", S: "d5 c5 b4 c5", T: "a4@3 a4",
  U: "c5@3 a4", V: "b4@3 a4", W: "c5@3 b4", X: "d5@3 c5", Y: "f5 e5 d5 c5", Z: "e5 d5 c5 b4", AA: "d5 c5 b4 a4",
  AB: "e5@3 d5", AC: "b4", AD: "~@6 a5 b5", AE: "c6@2 b5 a5", AF: "b5@2 a5 g#5", AG: "a5@2 g#5 f5", AH: "e5@2 d5 e5",
  AI: "a4@6 d4 e4", AJ: "f4@2 g4 a4 a#4@2 c#5 d5", AK: "e5@2 c#5@4 f5 e5", AL: "d5@2 c#5 a#4 a4 g4 f4 e4", AM: "d4 ~@3",
  AN: "~ a5!3", AO: "a#5 a5 g5 a#5 a5@4", AP: "~ a5 a#5 d6", AQ: "c#6@2 a#5 a5 g5@4", AR: "~ a#5!2 a5",
  AS: "a5@2 g5 f5 a5 g5 f5 e5", AT: "d5@2 e5@2 g5 f5!2 e5", AU: "e5 d5!2 c#5 d5 e5 f5 g5", AV: "a5!2 a#5 a5",
  AW: "e5 d5!2 c#5 d5@4", AX: "e5 d5!2 c#5 d5@2 g4 a4", AY: "a#4@2 d5 c#5", AZ: "a#5@2 a5 g5", BA: "g5 f5 e5 f5",
  BB: "d5@2 ~ d5", BC: "f5@3 d5", BD: "f5@3 e5", BE: "g5@3 f5", BF: "a#5 a5 g5 f5", BG: "a5 g5 f5 e5",
  BH: "g5 f5 e5 d5", BI: "a5@3 g5", BJ: "e5", BK: "e5 d5!2 c#5 d5@2 d4 e4",
})).s("gm_violin").gain(0.2)

stack(violin)