Strudelify

Paskong Anong Saya

Anna Abeleda

KeyG majorTempo120 bpm
0:00/0:00
// Paskong Anong Saya — Anna Abeleda
// 120 bpm, 2/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 7 "Bass" named as a bass, played on electric bass finger (its piano patch is not one); ch 8 "Bass" named as a bass, played on electric bass finger (its piano patch is not one)
// note: duplicate parts dropped: ch 2 "Soprano" piano (copy of ch 1 "Soprano" piano); ch 6 "Tenor" piano (copy of ch 5 "Tenor" piano); ch 8 "Bass" electric bass finger (copy of ch 7 "Bass" electric bass finger)
// note: Transcription provider: pdmx. https://musescore.com/score/5852270; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 104 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/2)

// 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.

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

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

// other · piano · "Alto"
const piano_3 = note(`<
  ~ A B C D E@2 F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD L AE AF AG AH T U V W X Y Z AA AB AC AD L AE AF AI
  AJ AK AL AM AN AO AK AP AQ AB AC AD L AE AF AG AR E@2 AS AT AU AV AW K L M N O P Q AX AY AZ@2 BA BB BC@2 BD BE BF BG
  BH BI BJ BK BL BM@2 BN BO
>`.pickRestart({
  A: "d4!2 b4@2 g4@4", B: "b4!2 d5@2 b4@4", C: "a4!8", D: "f#4!2 ~@2", E: "~@2 g4 f#4 g4@2 ~@2",
  F: "~@2 g4 a4 g4 a4 g4 b4", G: "c5 ~@3", H: "~@2 c5 b4 a4@2 ~@2", I: "~@2 f#4 g4 f#4@2 ~@2",
  J: "~@2 a4 g4 f#4@2 f#4 a4", K: "b4 d4", L: "g4!2 g4@2", M: "d4@3 d4 g4@2 b4@2", N: "g4@2 a4 g4", O: "e4 g4",
  P: "~ a4!2 ~", Q: "~@2 g4 a4 g4@2 b4@2", R: "g4@3 g4 g4@2 f#4@2", S: "d4 ~", T: "~@2 b4!2 g4@2 g4 ~",
  U: "~@2 b4!2 g4@2 g4@2", V: "d4@3 ~@3 d4@2 f4@3 ~@3 f4@2", W: "e4@2 d#4 e4@2 d#4 e4@2", X: "~@2 f#4!2 a4@2 f#4@2",
  Y: "f#4!4 a4@2 f#4@2", Z: "a4 a4@2 a4 g#4@2 a4@2", AA: "g4@2 a4 g4@2 a4 g4@2", AB: "~@2 g4!2 g4@2 a4 g4",
  AC: "a4 g4 d4!2", AD: "f4@2 a4 g#4 a4@2 g4@2", AE: "a4!2 f#4!2", AF: "g4!2 b4@2", AG: "g4@3 g4 e4@3 f#4",
  AH: "e4@2 f4 f#4@2 f4 f#4@2", AI: "g4@3 g4 a4@3 c5", AJ: "b4 a4 g4 c5", AK: "~@4 a4!4", AL: "~@2 a4!2 ~@2 a4!2",
  AM: "[b4,d5] [a4,b4]!3 [b4,d5] [a4,b4]!3", AN: "d4 d#4 [e4,f4] f#4 g4 g#4 [a4,a#4] b4 c5@4 c5@4", AO: "~@2 a4!2",
  AP: "d4 a4!3 d4 a4!3", AQ: "b4 d5!2 c5 b4@2 ~@2", AR: "g4@2 a4 g#4 a4@2 ~@2", AS: "~@2 g4 f#4 g4 f#4 g4!2",
  AT: "f#4 ~@3", AU: "~@2 a4 g4 f#4@2 ~@2", AV: "~@2 d4 e4 d4@2 ~@2", AW: "~@2 f#4 e4 d4@2 d4 f#4",
  AX: "g4@3 g4 a4@2 c5@2", AY: "a#4 c#5", AZ: "c5!4 g#4@2 g#4@2", BA: "d#4@3 d#4 f#4@3 f#4", BB: "f4@2 e4 f4@2 e4 f4@2",
  BC: "g4!4 a#4@2 g4@2", BD: "a#4 a#4@2 a#4 a4@2 a#4@2", BE: "g#4@2 a#4 g#4@2 a#4 g#4@2", BF: "~@2 g#4!2 g#4@2 a#4 g#4",
  BG: "a#4 g#4 d#4!2", BH: "f#4@2 a#4 a4 a#4@2 g#4@2", BI: "g#4!2 g#4@2", BJ: "a#4!2 g4!2", BK: "g#4!2 c5@2",
  BL: "g#4@3 g#4 a#4@3 c#5", BM: "c5!4 g#4!4", BN: "b4!8", BO: "c5 c5@3",
})).s("gm_piano").gain(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A B C D E@2 F G H I J K E L M N O P Q R S T U V I@2 W X Y Z E AA AB AC AD AE S T U V I@2 W X Y Z E AA AB AC AD AF AG
  AH AI AJ D AK AI AL Y Z E AM AN AO AP AQ E@2 F G@2 I J K E AR M N O P AS AT AU AV AW AX AY@2 AZ BA BB BC BD BE BF BG
  BH BI@2 BJ BK
>`.pickRestart({
  A: "~@4 d3!2 b3@2", B: "g3@2 ~@2 d3!4",
  C: "[d3,d#3] e3 [f3,f#3,g3] [g#3,a3] a#3 [b3,c4,c#4] d4@2 d4@2 d4@2 d4@2 d4@2", D: "a3!2 ~@2", E: "g3 d3", F: "g2!2",
  G: "a2 d3", H: "d3 a2", I: "d3 a3", J: "d3!2", K: "g3 d3 e3 f#3", L: "g3@3 g3 b3@2 g3@2", M: "f3@2 f3!2", N: "e3!2",
  O: "c3!2", P: "d3 b3", Q: "c4@3 b3 a3@2 d3@2", R: "g3@4 ~@2 d3!2", S: "g3 ~@3 d3@2 d3!2", T: "g2 ~@3 b2@2 d3@2",
  U: "g3 ~ e3 ~", V: "a2@2 e3 a3@2 g#3 a3@2", W: "d3 d3@2 d3 c4@2 f#3@2", X: "g3@2 g3 e3@2 e3 d3@2", Y: "g3@4 d3@3 d3",
  Z: "g2!2 b2 d3", AA: "a2@2 g3!2", AB: "a2 ~ a2 ~", AC: "b2@2 g3!2", AD: "a3@3 a3 d3@3 d3",
  AE: "g3@2 g3 c4@2 c4 f#3@2", AF: "g3 f#3 e3 d3", AG: "g3!3 d3", AH: "g3!3 ~", AI: "d3 ~ d3 ~",
  AJ: "d3 [d#3,e3] f3 [f#3,g3] g#3 [a3,a#3] b3 [c4,c#4] d4@4 d4@4", AK: "a3!4 ~@4", AL: "g3!4 g3@2 ~@2",
  AM: "c3@2 g3!2", AN: "c3 ~ c3 ~", AO: "d3@2 g3!2", AP: "a3@3 a3 e3@3 e3", AQ: "g3@2 c4!2 c4@2 ~@2",
  AR: "g3@3 g3 a3@2 g3@2", AS: "a3@3 a3 d3@2 d3@2", AT: "d#3@4 a#3@2 a#3!2", AU: "g#3@2 ~@2 d#3@2 d#3!2",
  AV: "g#2 ~ c3 d#3", AW: "g#3 f3", AX: "a#2@2 f3 a#3@2 a3 a#3@2", AY: "d#3 a#3", AZ: "d#3 d#3@2 d#3 c#4@2 g3@2",
  BA: "g#3@2 g#3 f3@2 f3 d#3@2", BB: "g#3@4 d#3@3 d#3", BC: "g#2!2 c3 d#3", BD: "g#3 d#3", BE: "c#3@2 g#3!2",
  BF: "c#3 ~ c#3 ~", BG: "d#3@2 g#3!2", BH: "a#3@3 a#3 d#3@3 d#3", BI: "g#3!4 c4!4", BJ: "d#3@3 d#4!5", BK: "g#3 g#3@3",
})).s("gm_electric_bass_finger").gain(0.3)

stack(piano, piano_2, piano_3, bass)