Strudelify

mr saxobeat

HC pour curares

KeyD majorTempo125 bpm
0:00/0:00
// mr saxobeat — HC pour curares
// 125 bpm, 4/4, key D 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/5971199; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 123 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/4)

// 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 · trumpet · "Trompette en Si♭"
const trumpet = note(`<
  ~@6 A B C B C ~@2 B C ~@2 B C ~@2 D E ~@6 F@4 ~@6 B C ~@2 B C ~@2 D E ~@6 G ~ G ~ G ~ H@2 F@6 I J@2 K L M N O P Q ~@5
  R S@3 T@2 U V@3 W@3 X@7 Y Z AA AB Z AC AD AE AF AG AH AF AG AH AI@2 AJ@3
>`.pickRestart({
  A: "c5", B: "c5!2 a#4 c5 ~ g4 ~ g4", C: "c5 f5 e5 c5 ~@4", D: "g4!2 f4 g4 ~ d4 ~ d4", E: "g4 c5 b4 g4 ~@4",
  F: "c5@6 c5 ~ c5@3 ~@21", G: "f5 f5@2 f5@2 f5@2 d#5 f5@2 ~@6", H: "[f5 f5@2 f5@2 f5@2 d#5 f5@24]/2",
  I: "c5@5 c5 c5@2 ~@4 c5@5 c5 c5@2 ~@4 c5@4 ~@4", J: "[~@22 a#4@3 a4@3 a#4@3 a4@3 a#4@3 a4@3 a#4@2 ~@22]/2",
  K: "~@6 a#4@3 a4@3 a#4@3 a4@3 a#4@3 a4@3 a#4@2 ~@6", L: "~@23 a4@3 g#4@3 a4@3", M: "g#4@3 a4@3 g#4@3 a4@2 ~@21",
  N: "~@7 a#4@3 a4@3 a#4@3 a4@3 a#4@3 a4@3 a#4@2 ~@5", O: "~@23 b4@2 ~@4 b4@2 ~", P: "~@15 a4@3 ~@3 a4@3 ~@8",
  Q: "~@4 c4@3 ~@3 e4@3 ~@3 g4@3 ~@3 a#4@3 ~@3 d5@2 ~@2", R: "~@8 c4@3 ~@6 a#3@3 ~@6 c4@3 ~@3",
  S: "[~ a#3 c4@2 d#4@2 g4 ~ a#3 ~ c4@2 d#4 f4 ~ f4 ~ d#4 f4 d#4 f4 d#4 g4 ~ c4!2 d#4 ~ f4 d#4 ~ a#3]/3",
  T: "[a#3@3 a#3@3 c4@3 d#4@3 f4@3 d#4@3 ~ g4@3 ~@3 c4@3 ~@3 d#4@6 g4@3 f4@3 ~@3 f4@3 ~@3 d#4@3 f4@3 d#4@3 f4@3]/2",
  U: "d#4@3 g4@3 c4@3 c4!2 ~@4 d#4@3 c4@3 d#4@3 c4@3 ~@3 c4@2",
  V: "[~ c4@3 c4@3 d#4@3 f4@3 g4@3 d#4@3 g#4@3 ~@3 g#4@3 g#4@3 g#4@3 g4@3 ~@3 f4@3 ~@3 f4@3 ~@3 f4@3 d#4@6 f4@6 g4@3 ~@3 g4@3 g4@3 g4@3 f4@3 ~@3 d#4@3 ~@3 d#4@2]/3",
  W: "[~@4 d#4@3 d#4@3 f4@3 g4@3 d#4@3 g#4@3 ~@3 g#4@3 g#4@3 g#4@3 g4@3 ~@3 f4@3 ~@3 f4@3 ~@3 f4@3 d#4@6 f4@6 g4@6 g4@6 ~ g4@6 g4@6 f4@4]/3",
  X: "[d#4 ~ c4@4 a#3 ~ d#4@6 c4@6 d#5@48 d#5@48 d#5@48 d#5@48 ~@6 a#4@3 a4@3]/7",
  Y: "a#4@3 a4@3 ~ a#4@3 a4@3 a#4@2 ~@17", Z: "~@11 a#4@3 a4@3 a#4@3 a4@3 a#4@3 a4@3 a#4@2 ~", AA: "~@27 a4@3 g#4@2",
  AB: "~ a4@3 g#4@3 a4@3 g#4@3 a4@2 ~@17", AC: "~@27 b4@2 ~@3", AD: "~ b4@2 ~@16 a4@3 ~@3 a4@3 ~@4",
  AE: "~@8 c4@3 ~@3 e4@3 ~@3 g4@3 ~@3 a#4@3 ~@3", AF: "~ d5@2 ~@25 b4@2 ~@2", AG: "~@2 b4@2 ~@16 a4@3 ~@3 a4@3 ~@3",
  AH: "~@9 c4@3 ~@3 e4@3 ~@3 g4@3 ~@3 a#4@3 ~@2", AI: "[~ d5@2 ~@4 c5@3 ~@3 a#4@3 ~@3 g4@3 ~@3 f4@3 ~@3 c4@12 ~@21]/2",
  AJ: "[~ c5@12 e5@3 f5@3 c5@18 e5@3 f5@3 c5@30 ~@23]/3",
})).s("gm_trumpet").gain(0.3)

// other · trombone
const trombone = note(`<
  ~@8 A ~ B@2 C@2 D@2 E@2 F G H@2 I J K L M ~@2 N O P Q R@3 S@2 T@2 U@2 V@2 F G H@2 I J K W ~@3 X ~ X ~ X ~ X ~ Y Z AA
  AB AC AD AE AF AG@2 AH AI ~ AJ AK@2 AL ~@23 AM AN@2 AO AP@2 AQ AR@2 AS AT AU AV AW AX@3 AY@3
>`.pickRestart({
  A: "c4@3 ~@9 c4@3 ~@17",
  B: "[c4@3 ~@9 c4@3 ~@13 [c3,e3]@8 [c3,e3]@4 [c3,e3]@4 [c3,e3]@4 [e3,g3]@8 [e3,g3]@4 [e3,g3]@4]/2", // C Em
  C: "[[g3,a#3]!2 ~ [e4,g4] ~ [d4,f4] [c4,e4]@10]/2", // Gm Em Dm C
  D: "[[c4,e4]@3 ~@9 [c4,e4]@3 ~@13 [c3,e3]@8 [c3,e3]@4 [c3,e3]@4 [c3,e3]@4 [e3,g3]@4 [e3,g3]@4 [e3,g3]@4 [e3,g3]@4]/2", // C Em
  E: "[[g3,a#3]@2 [g3,a#3] ~ [g3,a#3]@2 [g3,a#3] ~ [e4,g4]@2 [d4,f4]@2 [c4,e4]@20]/2", F: "e4@3 ~@9 e4@3 ~@5 e4@8 e4@4",
  G: "f4!4 e4!4", H: "[d4!4 c4!3 b3@2 ~@7]/2", I: "~@28 f4@3 ~", J: "~ f4!2 ~ e4!3 ~", K: "d4!3 ~ c4@2 c4@2", L: "c3",
  M: "c4", N: "~@6 c4@2 c4@2 c4@2 c4@2 g3 ~", O: "~@6 c4@2 c4 ~ d#4@4 ~@2",
  P: "~@12 a#3@4 a#3@2 ~@2 a#3@4 a#3@2 ~@2 c4@3 ~", Q: "~@6 a#3@2 a#3 ~ d#3@4 ~@2",
  R: "~@4 c3@3 ~@5 c3@3 ~@5 c3@3 ~@5 c3@3 ~", S: "[~@28 c3@7 ~ c3@4 c3@4 c3@4 e3@8 e3@4 e3@4]/2",
  T: "[g3!2 ~ e4@2 d4 c4@10]/2", U: "[c4@3 ~@9 c4@3 ~@13 e3@8 e3@4 e3@4 e3@4 g3@4 g3@4 g3@4 g3@4]/2",
  V: "[a#3@2 a#3 ~ a#3@2 a#3 ~ g4@2 f4@2 e4@20]/2", W: "c4 ~@7", X: "f3 f3@2 f3@2 f3@2 d#3 f3@2 ~@6",
  Y: "~@8 g3@4 a#3@4 a#3@3 ~ g3@4 f3@4 d#3@4", Z: "~@8 g3@4 a#3@2 c4 ~@5 c4@2 ~@2 g3@4 g3@2 ~@2",
  AA: "~@8 g3@4 a#3@4 a#3 ~@3 g3@4 f3@2 g3@2 f3@4", AB: "~@4 c4!4 d#4 c4 b3@2 c4@4", AC: "~@2 c4!5 g3",
  AD: "~@8 c4@4 c4@4 c4@4 c4@4 d#4@5 ~@3", AE: "~@6 c4@6 ~@6 d#4@6 ~@3 d#4@3 f4@2",
  AF: "~ d#4@3 f4@2 ~ f4@4 ~@2 c4@9 ~@10", AG: "[~@11 c4@6 a#3@3 c4@3 a#3@3 c4@3 e4@6 ~@24 c4 ~@3 c4]/2",
  AH: "~@2 c4 ~@2 g4@3 g4@6 f4@5 ~ d#4@3 ~@9", AI: "~@12 c4 ~@2 c4 ~@2 c4 ~@2 f4@3 f4@3 g4@3 c4@2",
  AJ: "~@11 g4@3 g4@6 ~@12", AK: "[~@3 f4@3 f4@6 ~@9 d#4@3 f4@3 d#4@3 g4@6 ~@28]/2",
  AL: "~@2 g4@3 ~@3 f4 ~ g4 f4@3 d#4@3 c4@6 ~@9", AM: "~@5 g3@3 f4@3 f4@6 c4@3 c4@6 ~@6",
  AN: "[~@16 c4@6 a#3@3 c4@3 a#3@3 c4@3 d#4@6 f4@3 ~@21]/2", AO: "g4@6 ~@3 d4@3 c4@3 a#3@3 c4@9 ~@5",
  AP: "[~@16 c4@3 ~@3 c4 ~@2 f4@3 f4@3 g4@6 c4@2 ~@25]/2", AQ: "g3 ~ a#3 c4@3 c4@3 f4@3 d#4@3 g4@3 g4@6 ~@8",
  AR: "[~@7 f4@3 f4@6 ~@9 d#4@3 f4@3 d#4@3 g4@6 ~@24]/2", AS: "~@16 g4@3 g4@6 ~@7", AT: "~@8 f4@3 f4@6 ~@9 d#4@3 f4@3",
  AU: "d#4@3 g4@6 ~@23", AV: "~@13 c4@3 g4@3 g4@6 ~@7", AW: "~@5 a#3@3 f4@3 f4@6 ~@9 d#4@3 f4@3",
  AX: "[d#4 g4@17 ~@3 d#3@4 ~@7]/3", AY: "[~ c4@18 a#3@3 c4@3 a#3@3 c4@15 a#3@3 c4@3 a#3@3 c4@21 ~@23]/3",
})).s("gm_trombone").gain(0.45)

// bass · tuba
const bass = note(`<
  ~@5 A@13 B C D@3 E F G H I J K@4 L M N O P@7 B C D@3 E F Q R Q R S ~ S ~ S ~ S ~ K@6 T U@2 V W X Y Z AA AB AC AD AE@2
  AF AG@2 AH AI AJ@2 AK AL@2 AM AN@2 AO AP AQ AR@2 AQ AS@2 AT AU@2 AV AW@2 AX AY AZ BA BB AZ BA BB BC@2 BD@3
>`.pickRestart({
  A: "c2@3 ~ c3@4 c2@3 ~ c3@4 c2@3 ~ c3@4 c2@3 ~ c3@4", B: "~@4 c3@3 ~@5 c3@3 ~@5 c3@3 ~ b2@4 a#2@4",
  C: "a2@4 g2@3 ~@5 g2@3 ~@5 g2@3 ~@5 g2@3 ~", D: "g2@3 ~ g2@4 g2@3 ~ g2@4 g2@3 ~ g2@4 g2@3 ~ g2@4",
  E: "~@4 g2@3 ~@5 g2@3 ~@5 f2@3 ~@5 f2@3 ~", F: "~@4 e2@3 ~@5 e2@3 ~@5 d2@3 ~@5 d2@3 ~",
  G: "c3@2 c3@2 g2@2 g2@2 a#2@2 a#2@2 b2@2 b2 ~", H: "c3@2 c3@2 g2@2 g2@2 a#2@2 a#2@2 b2@2 ~ b2",
  I: "c3!2 g2!2 a#2!2 b2@2", J: "c3!2 g2!2 a#2@2 b2@2", K: "c3@2 c3@2 g2@2 g2@2 a#2@3 a#2 ~@2 b2@2",
  L: "c2 ~@3 c2 ~@3 g2 ~@3 g2 ~@3", M: "g#2 ~@3 g#2 ~@3 g2@2 ~@2 d#2@2 ~@2", N: "c2 c3 g3 ~",
  O: "g#2@2 ~@2 g#2@2 ~@6 g#2@2 ~@2 g2@5 ~@3 d#2@5 ~@3", P: "c2@4 c3@3 ~ c2@4 c3@3 ~ c2@4 c3@3 ~ c2@4 c3@3 ~",
  Q: "c3@4 c3@4 a#2@4 c3@4 ~@4 g2@3 ~@5 f#2@3 ~", R: "~@4 f2@3 ~@5 d2@4 d#2@8 c2@3 ~@5",
  S: "f2 f2@2 f2@2 f2@2 d#2 f2@2 ~@6", T: "c3@3 c3@3 b2@2 ~@4 c3@3 c3@3 b2@2 ~@4 b2@4 ~@4",
  U: "[~@16 c2@6 ~@3 c3@3 ~@3 a#2@3 ~@3 g2@3 c2@6 ~@3 c3@3 ~@3 a#2@3 ~@3 g2@3]/2",
  V: "c2@6 ~@3 c3@3 ~@3 a#2@3 ~@3 g2@3 c2@6 ~@2", W: "~@2 c3@3 ~@3 a#2@3 a2@3 g2@3 f2@6 ~@3 f3@3 ~@3",
  X: "d#3@3 ~@3 c3@3 f2@6 ~@3 f3@3 ~@3 d#3@3 ~@3 c3@2", Y: "~ c2@6 ~@3 c3@3 ~@3 a#2@3 ~@3 g2@3 c2@6 ~",
  Z: "~@2 c3@3 ~@3 a#2@3 a2@3 g2@3 ~@6 g2@2 ~@4 g2@2 ~", AA: "~@15 f2@3 ~@3 f2@3 ~@8",
  AB: "~@4 c2@3 ~@3 e2@3 ~@3 g2@3 ~@3 a#2@3 ~@3 d3@2 ~@2", AC: "~@17 c2@9 c3@6", AD: "a#2@6 g2@3 a#2@3 g2@6 f#2@14",
  AE: "[~@2 c2@9 c3@6 a#2@6 g2@3 a#2@3 g2@6 c#2@15 c2@9 c3@5]/2", AF: "~ a#2@6 g2@3 a#2@3 g2@6 g#2@13",
  AG: "[~@2 c2@5 ~@4 c3@6 a#2@6 g2@3 a#2@3 g2@6 d#2@12 ~@3 g#2@3 ~@3 g#2@3 ~@3 g#2@2]/2",
  AH: "~@4 g#2@3 a#2@3 ~@3 a#2@3 ~@3 a#2@3 a#2@3 ~@3 a#2@3 ~",
  AI: "~@2 d#3@3 ~@3 d#3@3 ~@3 d#3@3 ~@3 d#3@3 c3@3 ~@3 c3@3",
  AJ: "[~@3 c3@3 c3@3 ~@3 c3@3 ~@4 g#2@3 ~@3 g#2@3 ~@3 g#2@3 ~@3 g#2@3 a#2@3 ~@3 a#2@3 ~@3 a#2@3 a#2@3 ~@3 a#2@3]/2",
  AK: "~@3 d#2@3 ~@3 d#2@3 ~@3 d#2@3 ~@3 d#2@3 c2@3 ~@3 c2@2",
  AL: "[~@4 c2@3 c2@3 ~@3 c2@3 ~@3 g#2@3 ~@3 g#2@3 ~@3 g#2@3 ~@3 g#2@3 a#2@3 ~@3 a#2@3 ~@3 a#2@3 a#2@3 ~@3 a#2@3]/2",
  AM: "~@3 b2@3 ~@3 b2@3 ~@3 b2@3 ~@3 b2@3 c3@3 ~@3 c3@2",
  AN: "[~@4 c3@3 c3@3 ~@3 c3@3 ~@3 g#2@3 ~@3 g#2@3 ~@3 g#2@3 ~@3 g#2@3 g2@3 ~@3 g2@3 ~@3 g2@3 g2@3 ~@3 g2@3]/2",
  AO: "~@3 g2@4 ~@9 f2@4 ~@8 d#2@4", AP: "~@8 c2@4 ~@8 c2@6 ~@3 c2@3", AQ: "d#2@6 c2@6 ~@3 c2@3 d#2@6 c2@6 ~@2",
  AR: "[~@4 c2@6 ~@3 c2@3 d#2@6 c2@6 ~@3 c2@3 d#2@6 c2@6 ~@6 c2@6 ~@3 c2@3]/2",
  AS: "[~@4 c2@6 ~@3 c2@3 d#2@6 g2@6 c4@24 c2@6 ~@3 c3@3]/2", AT: "~@3 a#2@3 ~@4 g2@3 c2@6 ~@3 c3@3 ~@3 a#2@3 ~",
  AU: "[~@2 g2@3 c2@6 ~@3 c3@3 ~@3 a#2@3 ~@3 g2@3 c2@6 ~@3 c3@3 ~@3 a#2@3 a2@3 g2@3 f2@6 ~@3 f3@2]/2",
  AV: "~@4 d#3@3 ~@3 c3@3 f2@6 ~@3 f3@3 ~@3 d#3@3 ~",
  AW: "[~@2 c3@3 c2@6 ~@3 c3@3 ~@3 a#2@3 ~@3 g2@3 c2@6 ~@3 c3@3 ~@3 a#2@3 a2@3 g2@3 ~@6 g2@2 ~@3]/2",
  AX: "~ g2@2 ~@16 f2@3 ~@3 f2@3 ~@4", AY: "~@8 c2@3 ~@3 e2@3 ~@3 g2@3 ~@3 a#2@3 ~@3", AZ: "~ d3@2 ~@25 g2@2 ~@2",
  BA: "~@2 g2@2 ~@16 f2@3 ~@3 f2@3 ~@3", BB: "~@9 c2@3 ~@3 e2@3 ~@3 g2@3 ~@3 a#2@3 ~@2",
  BC: "[~ d3@2 ~@4 c3@3 ~@3 a#2@3 ~@3 g2@3 ~@3 f2@3 ~@3 c2@12 ~@21]/2", BD: "[~ c2@30 c3@42 ~@23]/3",
})).s("gm_tuba").gain(0.4)

stack(trumpet, trombone, bass)