Strudelify

Mi General Augusto Pinochet

Unknown

KeyE majorTempo180 bpm
0:00/0:00
// Mi General Augusto Pinochet — Unknown
// 180 bpm, 6/8, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 3 "B♭ Clarinet" clarinet (copy of ch 2 "Flute" flute)
// note: Transcription provider: pdmx. https://musescore.com/score/5863649; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 166 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/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 · piccolo
const piccolo = note(`<
  A B C D A B E F@2 G H G H G@2 I J ~@2 K L ~@10 M N B O P@2 Q R S@2 T@2 U@2 V W X@2 T@2 U@2 V Y Z@2 ~@2 K L ~@10 M N B
  O P@2 Q R S@2 T@2 U@2 V W X@2 T@2 U@2 V Y Z@2 ~@3 A B C D A B E F@2 G H G H G@2 I J ~@2 K AA ~@10 M N AB@2 AC@2 Q R
  S@2 T@2 U@2 V W X@2 T@2 AD@2 V Y AE@2 AF@2 AG@2 AH AI AJ@2 AK
>`.pickRestart({
  A: "~@3 b5@2 c#6@3 d#6@3 e6@2 f#6@3", B: "g6@13 f#6@3", C: "e6@5 d#6@3 e6@5 c6@3", D: "b5", E: "e6@5 d#6@3 e6@5 b5@3",
  F: "[a5@21 ~@11]/2", G: "~@5 d#6@3 f#6@3 d#6@2 f#6@3",
  H: "b6 [b6,c#7] c#7 [b6,c#7] b6 [b6,c#7] c#7 [b6,c#7] b6 [b6,c#7] c#7 ~@5", I: "~@3 b6@2 c7@3 c#7@3 d7@2 d#7@3",
  J: "e7 ~", K: "~@3 e6 ~ g6 ~@2 b6@3 ~@2 g6 ~@2", L: "e6 [e6,f#6] f#6 [e6,f#6] e6 [e6,f#6] f#6 [e6,f#6] ~@8",
  M: "~@3 d#6@2 f#6@3 a6@3 c7@2 a6@3", N: "b6@5 e6@3 e6@5 f#6@3", O: "a6@5 g6@3 f#6@5 g6@3",
  P: "[e6@21 e6@3 g#6@5 a6@3]/2", Q: "b6@8 b6@5 b6@3", R: "d7@8 c7@5 b6@3", S: "[c7@21 e7@3 e7@5 e7@3]/2",
  T: "[e7@8 c7@13 e7@3 e7@5 e7@3]/2", U: "[e7@8 b6@13 b6@3 d7@5 c7@3]/2", V: "b6@8 f#6@5 g6@3", W: "a6@8 g6@5 a6@3",
  X: "[b6@21 e7@3 e7@5 e7@3]/2", Y: "a6@8 g6@5 f#6@3", Z: "[e6@21 ~@11]/2", AA: "e6@5 ~@11",
  AB: "[g6@8 g6@13 f#6@3 a6@5 g6@3]/2", AC: "[f#6@8 e6@13 e6@3 g#6@5 a6@3]/2",
  AD: "[e7@8 b6@13 b6@3 d7@4 e7 c7@3, ~@29 d7 ~@2]/2", AE: "[e6@21 e6@3 e6@5 e6@3]/2",
  AF: "[e6@8 c6@13 f#6@3 g6@5 f#6@3]/2", AG: "[e6@21 b5@3 d6@5 c6@3]/2", AH: "b5@13 b5@3",
  AI: "c#6@5 c#6@3 d#6@5 d#6@3", AJ: "e6/2", AK: "e6 ~",
})).s("gm_piccolo").gain(0.4)

// other · flute
const flute = note(`<
  A B C D A B E F@2 G@2 H@2 I J K L M N O P Q R S@2 T U V W T X Y P M N Z@2 AA AB AC@2 AD@2 AE@2 AF AG AH@2 AD@2 AE@2 AF
  AI AJ@2 M N O P Q R S@2 T U V W T X Y P M N Z@2 AA AB AC@2 AD@2 AE@2 AF AG AH@2 AD@2 AE@2 AF AI AK@2 ~@3 A B C D A B E
  F@2 G@2 H@2 I J K L M N O P Q R S@2 T U V W T X Y P AL@2 AM@2 AA AB AC@2 AD@2 AE@2 AF AG AH@2 AD@2 AN@2 AF AI AO@2
  AP@2 AQ@2 AR AS AT@2 AU
>`.pickRestart({
  A: "~@3 [g4,b4]@2 [a4,c#5]@3 [b4,d#5]@3 [c#5,e5]@2 [d#5,f#5]@3", B: "[e5,g5]@13 [d#5,f#5]@3",
  C: "[c5,e5]@5 [b4,d#5]@3 [c5,e5]@5 [a4,c5]@3", D: "[g4,b4]@15 ~", E: "[c5,e5]@5 [b4,d#5]@3 [c5,e5]@5 [g4,b4]@3",
  F: "[[f#4,a4]@20 ~ [f#5,a5]@3 [f#5,a5]@5 [e5,g5]@3]/2", G: "[[d#5,f#5]@20 ~ [d#5,f#5]@3 [f#5,a5]@5 [a5,c6]@3]/2",
  H: "[[g5,b5]@20 ~ [d#5,f#5]@3 [f#5,a5]@5 [a5,c6]@3]/2", I: "[g5,b5] [f#5,a5]", J: "[e5,g5] [d#5,f#5]",
  K: "e5@3 b5@2 c6@3 c#6@3 d6@2 d#6@3", L: "e6@5 e5@3 e5@5 f#5@3", M: "g5@13 f#5@3", N: "a5@5 g5@3 f#5@5 g5@3",
  O: "e5@5 ~@3", P: "~@5 e5@3 e5@5 f#5@3", Q: "g5 e5", R: "g5@5 b5@3 a5@5 g5@3",
  S: "[g5@8 f#5@10 ~@3 f#5@3 f#5@5 g5@3]/2", T: "a5@8 a5@5 b5@3", U: "c6@5 b5@3 a5@5 g5@3", V: "f#5@15 ~",
  W: "~@5 f#5@3 f#5@5 g5@3", X: "c6@5 b5@3 d6@5 c6@3", Y: "b5@15 ~", Z: "[e5@20 ~ e5@3 g#5@5 a5@3]/2",
  AA: "b5@8 b5@5 b5@3", AB: "d6@8 c6@5 b5@3", AC: "[c6@20 ~ e6@3 e6@5 e6@3]/2", AD: "[e6@8 c6@13 e6@3 e6@5 e6@3]/2",
  AE: "[e6@8 b5@13 b5@3 d6@5 c6@3]/2", AF: "b5@8 f#5@5 g5@3", AG: "a5@8 g5@5 a5@3", AH: "[b5@20 ~ e6@3 e6@5 e6@3]/2",
  AI: "a5@8 g5@5 f#5@3", AJ: "[e5@20 ~ e5@3 e5@5 f#5@3]/2", AK: "[e5@5 ~@3]/2", AL: "[g5@8 g5@13 f#5@3 a5@5 g5@3]/2",
  AM: "[f#5@8 e5@13 e5@3 g#5@5 a5@3]/2", AN: "[e6@8 b5@13 b5@3 d6@4 e6 c6@3, ~@29 d6 ~@2]/2",
  AO: "[e5@20 ~ e5@3 e5@5 e5@3]/2", AP: "[e5@8 c5@13 f#5@3 g5@5 f#5@3]/2", AQ: "[e5@20 ~ b4@3 d5@5 c5@3]/2",
  AR: "b4@13 b4@3", AS: "c#5@5 c#5@3 d#5@5 d#5@3", AT: "[e5@15 ~]/2", AU: "e5 ~",
})).s("gm_flute").gain(0.4)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A B C D A B E F@2 G@2 H@2 I J K ~@9 L M N O ~@2 P Q R S R T U V W X Y Z AA AB AC AD AE AF Y Z AA AB AC AD AG AH ~@8 L
  M N O ~@2 P Q R S R T U V W X Y Z AA AB AC AD AE AF Y Z AA AB AC AD AG AH ~@3 A B C D A B E F@2 G@2 H@2 I J K ~@9 L M
  N O ~@2 P Q R S R T U V W X Y Z AA AB AC AD AE AF Y Z AA AB AC AD AG AI AJ@2 AK@2 AL AM AN@2 AO
>`.pickRestart({
  A: "~@3 [b3,b4]@2 [c#4,c#5]@3 [d#4,d#5]@3 [e4,e5]@2 [f#4,f#5]@3", B: "[g4,g5]@13 [f#4,f#5]@3",
  C: "[e4,e5]@5 [d#4,d#5]@3 [e4,e5]@5 [c4,c5]@3", D: "[b3,b4]", E: "[e4,e5]@5 [d#4,d#5]@3 [e4,e5]@5 [b3,b4]@3",
  F: "[[a3,a4]@21 [a3,a4]@3 [a3,a4]@5 [g3,g4]@3]/2", G: "[[f#3,f#4]@21 [f#3,f#4]@3 [a3,a4]@5 [c4,c5]@3]/2",
  H: "[[b3,b4]@21 [f#3,f#4]@3 [a3,a4]@5 [c4,c5]@3]/2", I: "[b3,b4] [a3,a4]", J: "[g3,g4] [f#3,f#4]", K: "[e3,e4] ~",
  L: "~@5 [a3,a4]@3 [a3,a4]@3 [a3,b4]@2 [c4,c5]@3", M: "[e4,e5]@11 ~@5",
  N: "~@5 [b3,b4]@3 [b3,b4]@3 [c4,c5]@2 [d#4,d#5]@3", O: "[f#4,f#5]@11 ~@5",
  P: "~@3 [b3,d#4]@2 [d#4,f#4]@3 [f#4,a4]@3 [a4,c5]@2 [f#4,a4]@3", Q: "[d#4,b4]@5 ~@11", R: "e4@8 g4@5 b4@3",
  S: "a4 f#4", T: "e4 ~", U: "e4@8 g#4@5 b4@3", V: "d5 ~", W: "d5@7 [d5,e5] c5@5 b4@3", X: "c5 ~",
  Y: "a4@8 a4@3 c5@2 e5@3", Z: "a5 ~", AA: "~@5 e4@3 g4@5 a4@3", AB: "b4@11 ~@5", AC: "~@5 d#4@3 f#4@5 g4@3",
  AD: "[e4,a4]@11 ~@5", AE: "~@5 e4@3 g#4@5 a4@3", AF: "[d#4,g#4,b4]@11 ~@5", AG: "[a3,a4]@8 [g3,g4]@5 [f#3,f#4]@3",
  AH: "[e3,e4]@5 ~@11", AI: "[e3,e4]@5 [e4,e5]@3 [e4,e5]@5 [e4,e5]@3",
  AJ: "[[e4,e5]@8 [c4,c5]@13 [f#4,f#5]@3 [g4,g5]@5 [f#4,f#5]@3]/2", AK: "[[e4,e5]@21 [b3,b4]@3 [d4,d5]@5 [c4,c5]@3]/2",
  AL: "[b3,b4]@13 [b3,b4]@3", AM: "[c#4,c#5]@5 [c#4,c#5]@3 [d#4,d#5]@5 [d#4,d#5]@3", AN: "[e4,e5]/2", AO: "[b4,e5] ~",
})).s("gm_trumpet").gain(0.4)

// other · trombone
const trombone = note(`<
  ~ A B C D C B E@4 C@2 F G C H C I C@3 J I@2 K@2 L@2 K@2 L M C A C@3 N K O K P C@2 I@2 A N K P C@2 I@2 C H C I C@3 J
  I@2 K@2 L@2 K@2 L M C A C@3 N K O K P C@2 I@2 A N K P C@2 I@2 C H ~@4 A B C D C B E@4 C@2 F G C H C I C@3 J I@2 K@2
  L@2 K@2 L M C A C@3 N K O K P C@2 I@2 A N K P C@2 I@2 C Q K@2 R@2 S@2 T U H
>`.pickRestart({
  A: "e2 b2", B: "c3 a2", C: "e3 b2", D: "e2@2 b2 d#3", E: "b2 f#3", F: "b3 a3", G: "g3 f#3", H: "e2 ~", I: "f#2 b2",
  J: "c3 g2", K: "a2 e2", L: "b2 f#2", M: "b2@5 ~@11", N: "e2!2 f#2 g#2", O: "a2 e2 f#2 g#2", P: "a2@2 c3 d3",
  Q: "e2@5 ~@3 e2@8", R: "g2 e2", S: "f#2 d#2", T: "b2 a2", U: "g2 f#2",
})).s("gm_trombone").gain(0.3)

// bass · tuba
const bass = note(`<
  ~ A B A C A B D@4 E A F G H I A J A@3 K J@2 L@2 M@2 L@2 M N A H A@3 O L P L Q A@2 J@2 A O L Q A@2 J@2 A I A J A@3 K
  J@2 L@2 M@2 L@2 M N A H A@3 O L P L Q A@2 J@2 A O L Q A@2 J@2 A I ~@4 A B A C A B D@4 E A F G H I A J A@3 K J@2 L@2
  M@2 L@2 M N A H A@3 O L P L Q A@2 J@2 A O L Q A@2 J@2 A R L@2 S@2 T@2 F G I
>`.pickRestart({
  A: "e2 b1", B: "c2 a1", C: "e2@2 b1 d#2", D: "b1 f#2", E: "e2 b2", F: "b1 a1", G: "g1 f#1", H: "e1 b1", I: "e1 ~",
  J: "f#1 b1", K: "c2 g1", L: "a1 e1", M: "b1 f#1", N: "b1@5 ~@11", O: "e1!2 f#1 g#1", P: "a1 e1 f#1 g#1",
  Q: "a1@2 c2 d2", R: "e1@5 ~@3 e1@8", S: "g1 e1", T: "f#1 d#1",
})).s("gm_tuba").gain(0.4)

// drums · kick
const kick = s("bd").struct("<~@17 A@15 B A@23 B A@15 B A@43 B A@15 B A@32 B>".pickRestart({
  A: "x!2", B: "x",
})).gain(0.3)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A B A B A B A B A C A B
  A B A B A B A B A B A B A C A B A B A B A B A B A B A B A B A B A B A B A D A B A E A B A B A B A B A B A B A B A C A
  B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A B A B A B A B A F A B A B A@4 G
>`.pickRestart({
  A: "x ~@4 x ~ x!2 ~@4 x ~@2", B: "x ~@4 x ~@2 x!8", C: "x", D: "x!2", E: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2",
  F: "x ~@7 x!8", G: "x!8 ~@8",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct("<~ A@15 B ~@16 A@23 B ~@16 A@43 B ~@16 A@28 B A@3 B>".pickRestart({
  A: "x!2", B: "x",
})).gain(0.3)

stack(piccolo, flute, trumpet, trombone, bass, kick, snare, crash)

More by Unknown