Strudelify

dances with wolves Ùع تØÙØت ÙØÙØ ØÙغÙØÙ

maherrashadel

KeyC majorTempo120 bpm
0:00/0:00
// dances with wolves Ùع تØÙØت ÙØÙØ ØÙغÙØÙ — maherrashadel
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5875977; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 114 bars on a 32-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 · [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.

// other · violin · "Violin, DancesWithWolves-MG153k"
const violin = note(`<
  ~@2 A@6 B@4 C D@3 E@6 F@3 G@3 H I@3 J@2 K@5 L@7 M@7 N@4 O@4 P@7 Q@6 R@2 S@3 T@3 U@8 V@3 W@5 X@3 Y@3 Z AA@3 AB@4 ~@2
>`.pickRestart({
  A: "[~@13 c4@43 ~@8 c4@13 e4@32 c4@29 ~ c5@37 ~@3 c5 ~@8 c5@4, ~@56 g3@16 ~@5 c4 ~@98 d5@16]/6",
  B: "[~@5 g4@43 ~@8 a4@33 ~@2 g4@8 f4@11 g4@18]/4", C: "~@5 c4@19 ~@8", D: "[f4@24 ~@5 d4@8 c4@11 d4@40 ~@8]/3",
  E: "[~@40 c4@11 ~@2 c4@3 ~@21 c4@24 c5@32 d5@9 ~@7 g4@43, ~@3 c4@37 ~@11 e4@27 ~@23 c4@3 ~@38 c5@10 ~@40, ~@35 g3@13 ~@144]/6",
  F: "[~@34 b4@9 c5@5 ~@5 c5@23 ~ g5@19, ~@5 a4@32 ~@59]/3", G: "[g5@4 ~@33 d5@9 c5@6 ~@4 c5@32 ~@8, e5@5 ~@7]/3",
  H: "~@5 a4@27", I: "[~@3 b4@7 c5@6 ~@3 c5@21 g5@19 ~@2 g5@3 ~@32, ~@59 e5@37]/3", J: "[d5@8 c5@8 ~@3 c5@37 ~@8]/2",
  K: "[~@48 g4@4 ~@41 g5@11 ~@3 g5 ~@41 g5@11, ~@19 g4@29 ~@112, ~@45 g5@43 ~@16 f5@40 ~@16]/5",
  L: "[~@3 e5@24 e5 ~@4 e5@17 ~@20 d5@35 ~@21 c5@43 e5@16 c5@40, ~@27 f5@13 ~@11 g4@21 ~@40 e5@16 ~@96]/7",
  M: "[~@61 g4@16 g5@35 ~@24 g5@32 ~@11 g5@11 ~@2 g5@4 ~@28, ~@3 e5@21 ~@8 g5@40 ~@48 g4@24 ~@80, ~@9 a5@11 ~@75 f5@17]/7",
  N: "[~@11 g5@17 ~@2 e5@21 ~@5 e5@16 ~@13 d5@35 ~@8, ~@51 f5@13 ~@8 g4@16 ~@40]/4", O: "[e5@2 c5@5 e5@2 c5@5 e5@2]/4",
  P: "[~@3 c5@69 ~@16 g4@19 ~@32 a4 ~@12 e5@13 d5@43 ~@5 f5@11, ~@107 a4@32 ~@85, ~@17 d5@2 ~@7 e5 ~]/7",
  Q: "[g5@38 g4@13 g5@29 ~@21 a4@32 a5@5 ~@10 f5@6 ~@6 d5@32, ~@88 g4@16 ~@35 g5@13 ~@3 e5@9 ~@28]/6",
  R: "[~ e5 f5 g5@5]/2", S: "[~@27 g4@5 ~@64, ~@8 g4@19 ~@69, ~@3 g5@7 ~@2]/3",
  T: "[~@3 c4@42 g3@9 c4@13 e4@29, ~@67 c4@5 ~@24]/3",
  U: "[~@31 c5@40 ~ d5@9 ~@10 g4@42 ~@14 a4@33 g4@9 f4@10 ~ g4@28 c4@28, ~@3 c4@39 ~@30 c5 ~@8 c5@13 ~@162]/8",
  V: "[~@15 d4@4 ~@6 d4@14 ~@9, f4@33 ~@5 c4@15 ~@43]/3",
  W: "[~@4 c4@33 g3@9 c4@8 ~@3 c4@4 ~@21 c4@27 c4 ~@30 d5@8 c5@11 ~, ~@54 e4@28 ~@27 c5@39 ~@12]/5",
  X: "[g4@47 ~@30 b4@9 c5@6 ~@4, ~@50 a4@31 ~@15]/3", Y: "[~ c5@25 g5@22 g5@3 ~@36 d5@8 ~, ~@8 e5@7 ~]/3",
  Z: "c5@11 c5@13 ~@8", AA: "[~@23 a4@31 b4@9 c5@5 ~@2 c5@26]/3",
  AB: "[~@19 g5@4 ~@35 d5@9 c5@8 ~ c5@40 ~@12, g5@19 ~@109, ~@4 e5@9 ~@19]/4",
})).s("gm_violin").gain(0.2)

// chords · string ensemble 2 · "Strings"
const string_ensemble_2 = note(`<
  A@8 B@8 C@6 D@3 E@3 F@7 G@4 H@2 I@5 J@6 K@7 L@5 M@4 N@5 O@6 ~@2 P@2 Q@5 R@5 S@5 T@3 U@6 V@7
>`.pickRestart({
  A: "[[c3,e3,g3]@141 ~@2 [a3,e4]@60 [f3,a3,c4]@53, ~@141 c4@61 ~@54]/8", // C A5 F
  B: "[~@28 [f3,a3,c4]@26 [c3,e3,g3]@25 [d3,f3,a3]@25 [g3,b3,d4]@24, ~@5 [g3,d4]@59 ~@192, ~@7 b3@57 ~@192]/8", // F C Dm G G5
  C: "[~ [c3,e3,g3]@24 [a3,c4,e4]@26 [f3,a3,c4]@25 [g3,b3,d4]@20]/6", // C Am F G
  D: "[~@5 [f3,a3,c4]@48 ~@2 [e3,g3]@41, ~@53 c3@43]/3", E: "[[d3,f3,a3]@7 [g3,b3,d4]@7 [c3,e3,g3]@10]/3",
  F: "[~@4 [f3,a3,c4]@47 [c3,e3,g3]@40 [d3,f3,a3]@27 [g3,b3,d4]@29 [c3,e3,g3] ~ g3@51 ~@24, ~@37 [c3,e3]@12 ~@7]/7", // F C Dm G C
  G: "[~@8 [c3,e3,g3]@31 [f3,a3,c4]@25]/4", H: "[~@3 [c4,e4] [c3,e3,g3]@60]/2",
  I: "[~@3 [g3,b3,d4]@28 [f3,a3]@29 [d3,f3,a3]@20, ~@31 c4@33 ~@16, ~@62 f4 ~@97]/5", // G F Dm
  J: "[~@9 [g3,b3,d4]@59 [c3,e3,g3]@28, ~@18 [a3,f#4] ~@173]/6", // G C D
  K: "[~@3 [f3,a3,c4]@58 [c3,e3,g3]@57 [g3,b3,d4]@58 [f3,a3,c4]@48, ~@61 [c4,e4] ~@162]/7", // F C G F C
  L: "[~@2 [d3,f3,a3]@15 [c3,e3,g3]@17 ~@6]/5", M: "[~@5 [f3,a3,c4]@30 [g3,b3,d4]@29]/4",
  N: "[[c3,e3,g3]@13 [f3,a3,c4]@7]/5", O: "[~@2 [g3,b3,d4]@54 [c3,e3,g3]@63 [g3,b3,d4]@57 ~@16, ~@119 [a3,f#4] ~@72]/6",
  P: "[a3,c4,e4]/2", Q: "[~ [f3,a3,c4]@58 [g3,b3,d4]@56 [f3,a3,c4]@45]/5",
  R: "[~@8 [c3,e3,g3]@53 [d3,f3,a3]@51 [g3,b3,d4]@48]/5", S: "[~@4 [c3,e3,g3]@50 [a3,c4,e4]@54 ~ [f3,a3,c4]@51]/5",
  T: "[[g3,b3,d4]@49 [f3,a3,c4]@47]/3", // G F
  U: "[~ [c3,e3,g3]@44 [d3,f3,a3]@31 [g3,b3,d4]@29 [c3,e3,g3]@46 [f3,a3,c4]@41]/6", // C Dm G C F
  V: "[~@9 [c3,e3,g3]@42 [d3,f3,a3]@27 [g3,b3,d4]@33 ~@11 [c3,e3,g3]@81 ~@21]/7", // C Dm G C
})).s("gm_string_ensemble_2").gain(0.15)

// other · french horn · "High C Horn"
const french_horn = note("<~@79 A@3 B C@6 D@4 E@5 F@3 G@3 H@8 ~@2>".pickRestart({
  A: "[~@3 c4@41 g3@9 ~@13 e4@30, ~@53 c4@19 ~@24]/3", B: "~ c4@15",
  C: "[~@38 d5@10 c5@11 g4@56 a4@34 g4@8 ~@11 g4@24, ~ c5@42 ~@114 f4@19 ~@16]/6",
  D: "[~@4 c4@25 f4@33 d4@8 c4@10 d4@48]/4",
  E: "[~@4 c4@33 g3@7 ~@10 e4@27 ~@59 d5@8 c5@11 ~, ~@44 c4@13 ~@25 c4@33 ~@45, ~@109 c5@39 ~@12]/5",
  F: "[g4@49 a4@31 b4@6 c5@6 ~@4]/3", G: "[~ c5@25 ~@19 e5@41 d5@8 ~ c5, ~@26 g5@25 ~@45]/3",
  H: "[~@9 c5@46 a4@31 b4@8 c5@9 c5@23 g5@19 ~@48 c5@11 c5@52, ~@145 e5@44 ~@67, ~@185 d5@13 ~@58]/8",
})).s("gm_french_horn").gain(0.25)

// other · flute
const flute = note("<~@93 A B C D@2 E ~ F G@2 H@3 ~@8>".pickRestart({
  A: "~@19 c6@13", B: "~ e6@6 c6@9", C: "~@6 e6@13 ~ g6@12", D: "[~@2 e6@12 ~@2 c7@32 d7@6 c7@9 ~]/2", E: "g6@21 ~@11",
  F: "~@25 c6@4 ~@3, ~@9 b5@7", G: "[~@18 g6@24 ~ e6@8 ~@13, ~ c6@24 ~@39]/2", H: "[~@18 d6@10 ~ c6@8 c6@32 ~@27]/3",
})).s("gm_flute").gain(0.3)

stack(violin, string_ensemble_2, french_horn, flute)