Strudelify

ëêµê ëìí êëíë - Someone is Praying for You

Vn Duet

KeyF majorTempo72 bpm
0:00/0:00
// ëêµê ëìí êëíë - Someone is Praying for You — Vn Duet
// 72 bpm, 3/4, key F 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/5941637; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(72/3)

// 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
const violin = note("<~@21 A B C@2 A D E@2 F G H I J K L@2 ~@7 M@4 N@4 O P@3 Q@2 R@5 S@2 T@3 U@5>".pickRestart({
  A: "a4@11 a4@16 a4@5", B: "g4@8 f4@3 f4@16 g4@5", C: "[a4@53 ~@11]/2", D: "a4@8 g4@3 g4@16 f4@5",
  E: "[g4@43 ~@5 a4@5 a4@5 ~ bb4@5]/2", F: "c5@16 c5@5 c5@5 ~ c5@5", G: "c5@5 bb4@16 bb4@5 ~ bb4@5",
  H: "a4@16 bb4@5 a4@5 ~ g4@5", I: "f4@16 f4@5 f4@5 ~ g4@5", J: "a4@5 a4@21 ~ a4@5", K: "bb4@11 a4@10 g4@11",
  L: "[f4@51 ~@13]/2",
  M: "[~@9 b4@4 ~ a4@4 gb4@2 ~ e4@2 d4@18 d4@4 ~ d4@4 e4@4 ~ e4@22 gb4@14 g4@4 a4@4 ~ c5@4 b4@4 ~ a4@14 ~@5]/4",
  N: "[~@3 g4@27 ~ d4@27 c4@27 e4@27 d4@16]/4", O: "~@6 d4@4 ~ a3@9 b3@12",
  P: "[~@2 c4@4 b3@45 ~@9 b3@9 b3@14 b3@4 a3@7 g3@2]/3", Q: "[g3@14 a3@4 b3@45 ~]/2",
  R: "[b3@4 c4@2 d4@2 ~ e4@9 e4@13 e4@4 ~ e4@9 gb4@9 g4@9 a4@32 g4@4 gb4@4 ~ e4@4 d4@4 ~ c4@4 d4@9 g4@9 b4@9 d5@16]/5",
  S: "[~@2 gb4@9 b4@18 d5@9 e5@14 db5@4 db5@4 ~ db5@3]/2", T: "[~@2 d5@9 d5@13 d5@4 ~ e5@9 d5@9 c5@9 b4@38 ~@2]/3",
  U: "[~@3 g3@5 g3@5 ~ a3@5 b3@11 b3@16 b3@5 c4@11 d4@10 gb4@11 g4@53 ~@24]/5",
})).s("gm_violin").gain(0.3)

// other · pizzicato strings
const pizzicato_strings = note("<~@4 A B C D E ~@3 F G H I J K H L@2 ~@52>".pickRestart({
  A: "~@21 c4@5 ~ c4@5", B: "c4@21 c4@5 ~ c4@5", C: "d4@21 d4@5 ~ d4@5", D: "e4@11 f4@16 g4@5", E: "c4@21 ~@11",
  F: "~@21 c5@5 ~ bb4@5", G: "a4@21 a4@5 ~ c5@5", H: "bb4@11 a4@16 g4@5", I: "g4@21 f4@5 ~ g4@5",
  J: "d4@11 ~@5 g4@5 g4@5 ~ f4@5", K: "e4@21 ~@6 c4@5", L: "[f4@53 ~@11]/2",
})).s("gm_pizzicato_strings").gain(0.3)

// other · pizzicato strings
const pizzicato_strings_2 = note("<~@8 A B C D E F G F H I J K@2 ~@52>".pickRestart({
  A: "~@21 c4@5 ~ c4@5", B: "c4@21 c4@5 ~ c4@5", C: "d4@5 d4@27", D: "e4@16 f4@5 g4@5 ~ g4@5", E: "f4@21 ~@11", F: "g4",
  G: "eb4@11 f4@10 f4@11", H: "g3@11 bb3@10 d4@11", I: "c4", J: "d4@11 c4@10 bb3@11", K: "[c4@53 ~@11]/2",
})).s("gm_pizzicato_strings").gain(0.3)

// chords · piano
const piano = note(`<
  A B C D E F G H I F J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI@8 AJ@3 AK@8 AL@4 AM@7 AN@8
>`.pickRestart({
  A: "[g4,a4]@3 ~@8 c5@10 c5@8 d5@3, c5@11 ~@21, f4@5 f4@25 ~@2, ~@3 a4@28 ~", // Gsus2
  B: "~@3 g4@2 ~@16 f4@8 c4@3, d4@15 ~, a4@11 a4@20 ~, f4@5 f4@16 ~@11",
  C: "[c4,d4]@3 ~@2 f4@5 ~ [d4,f4]@5 d4@5 f4@5 ~ g4@5, bb3@10 ~ [g3,bb3]@10 [d3,g3,bb3]@10 ~, f4@5 ~@27, ~@3 d4@7 ~@22", // Csus2 Dm Gm
  D: "~@5 g3@5 ~@6 d4@5 f4@5 ~ d4@5, c3@15 ~, [d4,g4]@15 ~@17, ~@11 bb3@20 ~", E: "~@3 c5@29, c4, ~ e4@31, ~ g4@15",
  F: "[g4,a4]@5 f4@5 ~ [g4,c5]@20 ~, [f3,c4]@15 ~", G: "[bb4,c5]@5 f4@5 ~ [bb4,d5]@10 [d5,bb5]@10 ~, [f3,d4]@15 ~",
  H: "~@11 [g4,d5]@10 [e4,c5]@10 ~, e3@15 ~, [c5,g5]@5 ~@11, ~@5 c4@25 ~@2", // G5 C C5
  I: "~@11 a4@5 f4@5 e4@5 ~ f4@5, f3@15 ~, [bb4,c5]@5 ~@11, ~@5 c4@25 ~@2", // Bbsus2
  J: "[g4,a4]@5 f4@5 ~ [bb4,d5]@10 [d5,bb5]@10 ~, [f3,d4]@15 ~", // Gsus2 Bb Gm Dm
  K: "~@5 c4@5 ~ [e4,g4,c5]@20 ~, e3@15 ~, [c5,g5]@5 ~@11", // C C5
  L: "[f4,bb4]@5 g4@5 ~ [f4,a4]@10 c5@5 ~ bb4@5, f3@15 ~, d4@10 ~ c4@20 ~", // Bb5 F
  M: "~@11 f4@10 [d4,f4]@10 ~, d3@15 ~, a4@21 ~@11, g4@11 ~@21, ~@5 a3@25 ~@2", // Dm
  N: "[c3,g3,bb3,eb4]@10 ~ [a2,f3,a3,c4,f4]@10 [f2,eb3,a3,db4,f4]@10 ~", // Cm7 F Faug
  O: "~@5 f2@5 ~ c3@5 d3@5 f3@10 ~, [bb1,bb3,d4,g4]@15 ~", // Gm
  P: "~@5 d3@5 ~ f3@5 g3@5 [bb3,d5,f5]@10 ~, g2@15 ~, [g4,bb4]@10 ~ [bb4,d5]@10 ~@11", // Bb Gm Bb
  Q: "~@5 g3@5 ~@6 d4@3 e4@2 c5@10 ~, c3@15 ~, [c5,e5]@15 ~@17, ~@11 bb3@20 ~", // C
  R: "~@5 g2@5 ~ c3@5 d3@5 [e3,bb3,g4]@10 ~, c2@15 ~, [d4,bb4]@10 ~ [c4,a4]@10 ~@11", // Edim Gm F
  S: "f4@5 [c3,g3]@5 ~ [f3,a3]@5 [c3,c4]@5 e4@5 ~ f4@5, f2@15 ~, ~@21 g3@10 ~", // C5 F C
  T: "~@5 d3@5 ~ f3@5 d3@5 f3@5 ~ g3@5, f2@15 ~, [bb3,d4]@10 ~ [e4,c5]@10 [d4,bb4]@10 ~", // Bb C Gm
  U: "~@5 c3@5 ~ [g3,c4]@5 [a3,f4]@5 a4@5 ~ c5@5, f2@15 ~, [c4,f4,g4,a4]@10 ~@11 f3@10 ~", // C5 Dm F
  V: "~@5 b2@5 ~ f3@5 g3@5 ~@6 [db4,g4,bb4]@5, f2@15 ~, [db4,f4,db5]@10 ~ [c4,f4,c5]@15 ~@6, ~@21 f3@10 ~", // Gdim Db F5
  W: "~@5 c3@5 ~ f3@5 g3@5 f3@5 ~ e3@5, f2@15 ~, [c4,f4,a4,c5]@10 ~ [f4,f5]@10 [g4,g5]@10 ~", // F G
  X: "~@5 db3@5 ~ e3@5 g3@5 e3@5 ~ db3@5, e2@15 ~, [a4,db5,a5]@10 ~ [bb4,db5,bb5]@10 [a4,db5,a5]@10 ~", // A Bbm A
  Y: "~@5 a2@5 ~ d3@5 f3@5 [d3,f4,a4,d5]@5 ~ [a2,c5]@5, d2@15 ~, [a4,d5,f5,a5]@10 ~ [d4,f4,a4]@10 ~@11", // Dm Am Dm
  Z: "~@5 g2@5 ~ d3@5 g3@5 ~@6 [f4,d5]@5, b1@15 ~, [c4,g4,b4]@10 ~ [g4,b4,d5]@15 ~@6, ~@21 b3@10 ~", // Dm Cmaj7 G
  AA: "~@5 d3@5 ~ f3@5 g3@5 f3@5 ~ d3@5, g2@15 ~, [f4,bb4,d5]@10 ~ [g4,bb4,e5]@10 [g4,bb4,f5]@10 ~", // Bb Edim Gm7
  AB: "~@8 f4@3 g4@2 c5@3 d5@3 e5@2 f5@3 g5@3 a5@2 bb5@3, c2@15 ~, [c5,e5,g5] ~@3, ~@5 g2@5 ~ c3@5 d3@5 e3@5 ~ g3@5", // C
  AC: "~@5 c3@5 ~ [f3,g5]@5 [g3,f5]@5 c5@5 ~ f4@5, f2@15 ~, [g5,a5,c6]@10 ~@11 [a3,c4]@10 ~", // Fsus2 G7 Am7 Am
  AD: "c5@5 f2@5 ~ c3@5 [d3,bb4]@5 f4@5 ~ d4@5, bb1@15 ~, ~@5 [bb4,d5]@10 ~@6 f3@10 ~", // Gm Bb
  AE: "~@5 a2@5 ~ db3@5 e3@5 g3@5 ~ e3@5, a1@15 ~, [db4,e4]@10 ~ [db4,e4,bb4]@10 [db4,e4,a4]@10 ~", // Dbm Bbdim A
  AF: "~@5 a2@5 ~ [d3,a3,d4,f4]@10 [db2,db3,bb3,db4,f4]@10 ~, d2@15 ~, [d4,f4,a4]@5 ~@11", // Dm Bbm Dm
  AG: "~@11 f3@5 a3@5 c4@5 ~ f4@5, c2@15 ~, [a3,c4,f4]@5 ~@11, ~@5 c3@25 ~@2", // F
  AH: "~@5 g2@5 ~ c3@5 d3@5 e3@10 ~, c2@15 ~, [bb3,d4,f4]@10 ~ [bb3,c4,e4]@20 ~", // Bb C7
  AI: "[g4@2 ~ a4@2 f4@5 c5@10 c5@7 ~ d5@2 ~ a4@2 g4@2 ~ f4@5 a4@10 f4@7 ~ c4@2 c4@2 ~ d4@2 f4@5 [d4,f4]@5 d4@5 f4@5 g4@5 g4@2 a4@2 ~ [c3,f4]@5 g3@4 a3@5 g4@2 ~ a4@2 c5@2 f5@2 ~ g5@2 bb5@2 ~ [c3,f5]@4 g3@5 a3@5 g5@2 a5@2 ~ c6@2 e6@2 [f5,d6]@4 ~ [g2,d5,bb5]@4 [d3,d5,bb5]@4 ~ [f3,bb4,f5]@4 [bb4,f5]@4 ~ [f4,d5]@4 [a4,gb5]@6 ~ d5@2 c5@2 ~ a4@2 gb4@2 d4@2 ~ [e2,e3,c4]@9 [c4,e4]@4 a3@4 ~ [c4,e4]@4 a3@4 ~ [a3,c4,e4]@4 a3@4 ~ [d4,gb4]@4 a3@4 ~ [d4,gb4]@4 a3@4 ~ [a3,d4,gb4]@4 a3@4, [f3,a3,c4]@29 ~@2 [d3,f3,a3]@29 ~ [bb2,d3,f3]@9 ~ [g3,bb3]@9 ~ [d3,g3,bb3]@9 ~ f2@27 ~@2 e2@27 ~ c2@26 ~ [e1,e2]@17 ~@11 [a1,a2]@17 ~ a2@9 [a1,a2]@17 ~ a2@8, ~@101 c5@9 c4@9 ~@10 c6@9 ~ c4@9 ~@18 bb3@9 ~@81]/8", // Dm F5 Dm Gm Bb5 Dm D C …
  AJ: "[~ [g3,e4]@4 b3@4 ~ [g3,e4]@4 b3@4 ~ [g3,d4]@4 e4@4 ~ [c4,e4]@4 a3@4 ~ [c4,e4]@4 a3@4 ~ [c4,e4]@4 b3@4 ~ [c4,e4]@4 a3@4 ~ [c4,e4]@4 ~ a3@4 [a3,c4,e4]@5 a3@4 [d4,gb4]@4 ~ a3@4 [d4,gb4]@4 ~, ~ [a1,a2]@17 ~ [a2,a3]@9 [a1,a2]@17 ~ [a2,a3]@9 [a1,a2]@17 ~ a2@9 [a1,a2]@14]/3", // C G5 C Am D A
  AK: "[a3@4 [a3,d4,gb4]@5 a3@4 [e4,g4]@4 ~ b3@4 [g3,e4]@4 ~ b3@4 [g3,d4]@4 ~ e4@4 [a3,c4]@4 ~ e3@4 [c4,e4]@4 ~ a3@4 e4@4 ~ d4@4 ~@9 g4@9 [e4,g4]@9 ~ [d3,a3,c4,f4]@9 [b2,g3,b3,d4,g4]@9 [g2,f3,b3,eb4,g4]@9 ~@4 g2@4 ~ d3@4 e3@4 ~ g3@9 ~@4 e3@4 ~ g3@4 a3@4 ~ [c4,e5,g5]@9 ~@4 a3@4 ~@5 e4@2 ~ gb4@2 d5@9 ~@4 a2@4 ~ d3@4 e3@4 ~ [gb3,c4,a4]@9 g4@4 ~ [d3,a3]@4 [g3,b3]@4 ~ [d3,d4]@4 gb4@4 ~ g4@3, ~@4 a2@9 [e1,e2]@17 ~ [e2,e3]@9 [a1,a2]@26 ~ e3@26 ~@29 [c2,c4,e4,a4]@26 ~ a2@26 ~ d3@26 ~ d2@26 ~ g2@26, ~@67 b4@18 ~@73 [c5,e5]@9 ~@9 [d5,gb5]@13 ~@67, ~@67 a4@9 ~@73 [a4,c5]@9 ~@98, ~@72 b3@21 ~@92 c4@17 ~ [e4,c5]@9 [d4,b4]@9 ~@27 a3@8]/8", // D Em C G5 Am C Em Dm7 …
  AL: "[~@6 e3@4 g3@4 ~ e3@4 g3@4 ~ a3@4 ~@5 d3@4 [a3,d4]@4 ~ [b3,g4]@4 b4@4 ~ d5@4 ~@5 db3@4 g3@4 ~ a3@4 ~@5 [eb4,a4,c5]@4 ~@5 d3@4 g3@4 ~ a3@4 ~ g3@4 gb3@4 ~@5 eb3@4 ~ gb3@4 a3@4 ~, ~ g2@26 ~ g2@26 ~ g2@26 ~ g2@26 ~@2 gb2@18, ~ [c4,e4]@9 [gb4,d5]@9 [e4,c5]@9 [d4,g4,a4,b4]@9 ~@9 g3@9 [eb4,g4,eb5]@9 [d4,g4,d5]@13 ~@5 [d4,g4,b4,d5]@9 [g4,g5]@9 ~ [a4,a5]@9 [b4,eb5,b5]@9 [c5,eb5,c6]@9, ~@73 g3@9 ~@46]/4", // D5 Em Adim C D C G Eb …
  AM: "[gb3@4 eb3@4 ~@5 b2@4 ~ e3@4 g3@4 ~ [e3,g4,b4,e5]@4 [b2,d5]@4 ~@5 a2@4 ~ e3@4 a3@4 ~@5 [g4,e5]@4 ~@5 e3@4 ~ g3@4 a3@4 ~ g3@4 e3@4 ~ [d5,gb5,a5]@5 ~@2 g4@2 a4@2 d5@2 ~ e5@2 gb5@2 g5@2 a5@2 ~ b5@2 c6@2 ~@5 d3@4 [g3,a5]@4 ~ [a3,g5]@4 d5@4 ~ g4@4 d5@4 ~ g2@4 d3@4 ~ [e3,c5]@4 g4@4 ~ e4@4 ~@5 b2@4 eb3@4 ~ gb3@4 a3@4 ~ gb3@4 ~@5 b2@4 [e3,b3,e4,g4]@9 [eb2,eb3,c4,eb4,g4]@8, [b4,eb5,b5]@9 e2@26 ~ db2@26 ~ a2@26 ~ d2@26 ~ g2@26 ~ c2@26 ~ b1@26 ~ e2@26, ~@9 [b4,e5,g5,b5]@9 [e4,g4,b4]@9 ~@9 [d4,a4,db5]@9 [a4,db5,e5]@13 ~@5 [g4,c5,e5]@9 [a4,c5,gb5]@9 [a4,c5,g5]@9 ~@27 [a5,b5,d6]@9 ~@23 [c5,e5]@9 ~@66, ~@54 db4@9 ~@32 a2@4 d3@4 ~ e3@4 gb3@4 ~ a3@4 ~@18 [b3,d4]@9 ~@18 g3@9 [eb4,gb4]@9 [eb4,gb4,c5]@9 [eb4,gb4,b4]@9 [e4,g4,b4]@9 ~@17]/7", // Em Bm C D Gsus2 A7 C Em …
  AN: "[~@11 g3@4 b3@4 ~ d4@4 g4@4 ~@5 a2@4 ~ d3@4 e3@4 ~ gb3@9 ~@4 c3@4 ~@5 e4@4 ~ g4@4 d5@4 ~ [g4,c5]@15 ~ g4@5 g4@5 ~ a4@5 b4@5 d4@5 ~ d5@5 d4@5 g4@5 ~ d4@5 gb4@5 b3@5 ~ eb4@5 b3@5 gb4@5 ~ b3@5 b3@5 d4@5 ~ g4@5 b4@5 d5@5 ~ g5@5 ~ [d6,g6]@31 ~@13, ~@2 d2@26 ~ d2@26 ~ gb2@26 ~@174, ~@2 [b3,d4,g4]@9 ~@18 [c4,e4,g4]@9 [c4,d4,gb4]@17 ~ [g3,c4,g4]@13 ~@142 g5@32 ~@13, ~@6 d3@21 ~@38 e3@17 ~ [e3,g3,b3]@30 ~@2 [d3,g3,b3]@30 ~@2 [d3,gb3,a3]@30 ~@2 [b2,e3,g3]@30 ~@47]/8", // C5 G5 G C D7 C5 Em G …
})).s("gm_piano").gain(0.3)

stack(violin, pizzicato_strings, pizzicato_strings_2, piano)