Strudelify

Nunca es Suficiente Orquesta

Los Angeles Azules

KeyD minorTempo190 bpm
0:00/0:00
// Nunca es Suficiente Orquesta — Los Angeles Azules
// 190 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Oboe" named as a reed, played on oboe (its acoustic bass patch is not one)
// note: duplicate parts dropped: ch 16 "Contrabajo" contrabass (copy of ch 13 "Violonchelo" cello)
// note: Transcription provider: pdmx. https://musescore.com/score/5946248; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 191 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(190/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 · oboe
const oboe = note(`<
  ~@14 A B C@2 ~@16 D E F@2 G H I@2 D E F@2 J K L@2 ~@5 M N O P Q@2 R@4 S@2 T@4 U@2 V W X@2 Y@4 Z@2 T@4 ~@3 AA@3 ~ AB@3
  ~ AC@3 ~ AD@2 AE AF AG AH@2 AI AJ AK AL AF AG AM AN AI AJ AO@2 AP@2 AQ@2 AR AS AT@2 O P Q@2 R@4 S@2 T@4 U@2 V W X@2
  Y@4 Z@2 AU@3 N O P Q@2 R@4 S@2 T@4 ~@16 AV AS
>`.pickRestart({
  A: "d5 c5 d5@6", B: "c5 a4 c5@6", C: "[a4 g4 a4@10 ~@4]/2", D: "g4 a4", E: "bb4@3 d5@3 f5@2", F: "[e5@3 ~]/2",
  G: "f4 g4", H: "a4@3 c5@3 e5@2", I: "[f5@3 ~]/2", J: "g5 f5", K: "e5@3 d5@3 c5@2", L: "[a4@3 ~]/2",
  M: "a5 ~ g5 ~ f5 ~ e5 d5", N: "d5!2", O: "f5 a5", P: "bb5@6 ~ bb5", Q: "[bb5@2 a5@2 g5@2 a5 bb5@7 ~ bb5]/2",
  R: "[bb5@2 a5@2 g5@2 bb5 a5@3 g5@2 f5@2 g5 a5@3 g5@2 f5@2 g5 a5@7 ~@2]/4", S: "[~@2 d5@2 f5@2 a5 g5@7 ~ g5]/2",
  T: "[g5@2 f5@2 e5@2 f5 a5@3 a4@2 db5@2 e5 a5@3 a4@2 f5@2 e5 d5@9]/4", U: "[a5 ~ g5 ~ f5 ~ e5 d5@5 d4@4]/2",
  V: "f4 a4", W: "bb4@6 ~ bb4", X: "[bb4@2 a4@2 g4@2 a4 bb4@7 ~ bb4]/2",
  Y: "[bb4@2 a4@2 g4@2 bb4 a4@3 g4@2 f4@2 g4 a4@3 g4@2 f4@2 g4 a4@7 ~@2]/4", Z: "[~@2 d4@2 f4@2 a4 g4@7 ~ g5]/2",
  AA: "[f5@2 f5@2 f5@2 f5 f5@3 d5@2 c5@2 c5 d5@5 ~@4]/3", AB: "[e5@2 e5@2 e5@2 e5 e5@3 db5@2 a4@2 g4 a4@5 ~@4]/3",
  AC: "[f5@2 e5@2 f5@2 e5 f5@3 d5@2 c5@2 c5 d5@5 ~@4]/3", AD: "[e5@2 e5@2 e5@2 e5 e5@3 db5@2 f5@2 e5@2]/2", AE: "d5 ~",
  AF: "~ d5 e5 f5", AG: "bb4@2 ~ a5", AH: "[a5@2 f5@2 a5@2 f5 e5@5 ~@4]/2", AI: "~ c5 d5 e5", AJ: "a4@3 g5",
  AK: "g5 e5 g5 e5", AL: "f5 ~", AM: "a5 f5 a5 f5", AN: "e5 ~", AO: "[g5@2 e5@2 g5@2 e5 f5@5 ~@3 f5]/2",
  AP: "[f5@2 e5@2 d5@2 c5 bb4@5 ~@3 bb4]/2", AQ: "[bb4@2 c5@2 d5@2 e5 f5@3 e5@2 f5@2 g5@2]/2", AR: "a5 g5 f5 e5",
  AS: "d5", AT: "[a5 ~ g5 ~ f5 ~ e5 d5@5 d5@4]/2", AU: "[g5@2 f5@2 e5@2 f5 a5@3 a4@2 db5@2 e5 a5@3 a4@2 f5@2 e5 d5]/3",
  AV: "a5 ~ g5 ~ f5 ~ e5@2",
})).s("gm_oboe").gain(0.4)

// other · tremolo strings · "Flauta"
const tremolo_strings = note(`<
  ~@14 A B C@2 D@3 ~ E@3 ~ F@3 ~ G@2 H I J K@2 L M N O I J P Q L M R@2 S@2 T@2 U V W@2 ~ X ~ Y@2 ~@9 Z@2 AA AB AC@2 AD@4
  AE@2 AF@4 ~@19 AG AH AI@2 AJ AK AL@2 AG AH AI@2 AM AN AO@2 ~@5 Z@2 AA AB AC@2 AD@4 AE@2 AF@4 Z@2 AA AB AC@2 AD@4 AE@2
  AP@3 AQ AA AB AC@2 AD@4 AE@2 AF@4 ~@16 AR V
>`.pickRestart({
  A: "d5@2 c5@2 d5@11 ~", B: "c5@2 a4@2 c5@11 ~", C: "[a4 g4 a4@10 ~@4]/2",
  D: "[f5@4 f5@4 f5@4 f5@2 f5@6 d5@4 c5@4 c5@2 d5@9 ~@9]/3", E: "[e5@4 e5@4 e5@4 e5@2 e5@6 db5@4 a4@4 g4@2 a4@9 ~@9]/3",
  F: "[f5@4 e5@4 f5@4 e5@2 f5@6 d5@4 c5@4 c5@2 d5@9 ~@9]/3", G: "[e5@2 e5@2 e5@2 e5 e5@3 db5@2 f5@2 e5@2]/2", H: "d5 ~",
  I: "~ d5 e5 f5", J: "bb4@2 ~ a5", K: "[a5@4 f5@4 a5@4 f5@2 e5@9 ~@9]/2", L: "~ c5 d5 e5", M: "a4@11 ~ g5@4",
  N: "g5 e5 g5 e5", O: "f5 ~", P: "a5 f5 a5 f5", Q: "e5 ~", R: "[g5@4 e5@4 g5@4 e5@2 f5@9 ~@7 f5@2]/2",
  S: "[f5@4 e5@4 d5@4 c5@2 bb4@9 ~@7 bb4@2]/2", T: "[bb4@2 c5@2 d5@2 e5 f5@3 e5@2 f5@2 g5@2]/2", U: "a5 g5 f5 e5",
  V: "d5@15 ~", W: "[a5@2 ~@2 g5@2 ~@2 f5@2 ~@2 e5@2 d5@9 ~@9]/2", X: "~@3 bb4 ~ a4 bb4 ~", Y: "bb4@15 ~",
  Z: "[a5@2 ~@2 g5@2 ~@2 f5@2 ~@2 e5@2 d5@9 ~ d5@8]/2", AA: "f5 a5", AB: "bb5@11 ~@3 bb5@2",
  AC: "[bb5@4 a5@4 g5@4 a5@2 bb5@13 ~@3 bb5@2]/2",
  AD: "[bb5@4 a5@4 g5@4 bb5@2 a5@6 g5@4 f5@4 g5@2 a5@6 g5@4 f5@4 g5@2 a5@13 ~@5]/4",
  AE: "[~@4 d5@4 f5@4 a5@2 g5@13 ~@3 g5@2]/2",
  AF: "[g5@4 f5@4 e5@4 f5@2 a5@6 a4@4 db5@4 e5@2 a5@6 a4@4 f5@4 e5@2 d5@17 ~]/4", AG: "g4 a4", AH: "bb4@3 d5@3 f5@2",
  AI: "[e5@23 ~@9]/2", AJ: "f4 g4", AK: "a4@3 c5@3 e5@2", AL: "[f5@23 ~@9]/2", AM: "g5 f5", AN: "e5@3 d5@3 c5@2",
  AO: "[a4@23 ~@9]/2", AP: "[g5@2 f5@2 e5@2 f5 a5@3 a4@2 db5@2 e5 a5@3 a4@2 f5@2 e5 d5]/3", AQ: "d5!2",
  AR: "a5 ~ g5 ~ f5 ~ e5@2",
})).s("gm_tremolo_strings").gain(0.4)

// other · clarinet · "Clarinete en Si♭"
const clarinet = note(`<
  ~@14 A B C@2 ~@16 D E F@2 G H I@2 D E F@2 J K L@2 ~@5 M@2 N O P@2 Q@4 R@2 S@4 M@2 N O P@2 Q@4 R@2 S@4 ~@3 T@3 ~ U@3 ~
  V@3 ~ W@2 X Y Z AA@2 AB AC AD AE Y Z AF AG AB AC AH@2 AI@2 AJ@2 AK AL AM@2 AN AO AP@2 AQ@4 AR@2 AS@4 M@2 N O P@2 Q@4
  R@2 AT@3 AU AN AO AP@2 AQ@4 AR@2 AS@4 ~@16 AV AL
>`.pickRestart({
  A: "d5 c5 d5@6", B: "c5 a4 c5@6", C: "[a4 g4 a4@10 ~@4]/2", D: "g4 a4", E: "bb4@3 d5@3 f5@2", F: "[e5@3 ~]/2",
  G: "f4 g4", H: "a4@3 c5@3 e5@2", I: "[f5@3 ~]/2", J: "g5 f5", K: "e5@3 d5@3 c5@2", L: "[a4@3 ~]/2",
  M: "[a5 ~ g5 ~ f5 ~ e5 d5@5 d4@4]/2", N: "f4 a4", O: "bb4@6 ~ bb4", P: "[bb4@2 a4@2 g4@2 a4 bb4@7 ~ bb4]/2",
  Q: "[bb4@2 a4@2 g4@2 bb4 a4@3 g4@2 f4@2 g4 a4@3 g4@2 f4@2 g4 a4@7 ~@2]/4", R: "[~@2 d4@2 f4@2 a4 g4@7 ~ g4]/2",
  S: "[g4@2 f4@2 e4@2 f4 a4@3 a3@2 db4@2 e4 a4@3 a3@2 f4@2 e4 d4@9]/4",
  T: "[f5@2 f5@2 f5@2 f5 f5@3 d5@2 c5@2 c5 d5@5 ~@4]/3", U: "[e5@2 e5@2 e5@2 e5 e5@3 db5@2 a4@2 g4 a4@5 ~@4]/3",
  V: "[f5@2 e5@2 f5@2 e5 f5@3 d5@2 c5@2 c5 d5@5 ~@4]/3", W: "[e5@2 e5@2 e5@2 e5 e5@3 db5@2 f5@2 e5@2]/2", X: "d5 ~",
  Y: "~ d5 e5 f5", Z: "bb4@2 ~ a5", AA: "[a5@2 f5@2 a5@2 f5 e5@5 ~@4]/2", AB: "~ c5 d5 e5", AC: "a4@3 g5",
  AD: "g5 e5 g5 e5", AE: "f5 ~", AF: "a5 f5 a5 f5", AG: "e5 ~", AH: "[g5@2 e5@2 g5@2 e5 f5@5 ~@3 f5]/2",
  AI: "[f5@2 e5@2 d5@2 c5 bb4@5 ~@3 bb4]/2", AJ: "[bb4@2 c5@2 d5@2 e5 f5@3 e5@2 f5@2 g5@2]/2", AK: "a5 g5 f5 e5",
  AL: "d5", AM: "[a5 ~ g5 ~ f5 ~ e5 d5@5 d5@4]/2", AN: "f5 a5", AO: "bb5@6 ~ bb5",
  AP: "[bb5@2 a5@2 g5@2 a5 bb5@7 ~ bb5]/2", AQ: "[bb5@2 a5@2 g5@2 bb5 a5@3 g5@2 f5@2 g5 a5@3 g5@2 f5@2 g5 a5@7 ~@2]/4",
  AR: "[~@2 d5@2 f5@2 a5 g5@7 ~ g5]/2", AS: "[g5@2 f5@2 e5@2 f5 a5@3 a4@2 db5@2 e5 a5@3 a4@2 f5@2 e5 d5@9]/4",
  AT: "[g4@2 f4@2 e4@2 f4 a4@3 a3@2 db4@2 e4 a4@3 a3@2 f4@2 e4 d4]/3", AU: "d5!2", AV: "a5 ~ g5 ~ f5 ~ e5@2",
})).s("gm_clarinet").gain(0.4)

// other · trumpet · "Trompeta en Si♭"
const trumpet = note(`<
  A B C D@2 E@4 F@2 G@5 ~@39 H@2 ~ I ~@12 H@2 ~@13 J K L@2 ~@37 H@2 ~ I ~@3 M ~@3 N ~@4 H@2 ~@15 I ~@3 M ~@3 O ~@6 P@2
  Q@2 R@2 S@2 F@2 T@4 U V
>`.pickRestart({
  A: "~ d4", B: "f4 a4", C: "bb4@6 ~ bb4", D: "[bb4@2 a4@2 g4@2 a4 bb4@7 ~ bb4]/2",
  E: "[bb4@2 a4@2 g4@2 bb4 a4@3 g4@2 f4@2 g4 a4@3 g4@2 f4@2 g4 a4@9]/4", F: "[~@2 d4@2 f4@2 a4 g4@7 ~ g4]/2",
  G: "[g4@2 f4@2 e4@2 f4 a4@3 a3@2 db4@2 e4 a4@3 a3@2 f4@2 e4 d4@17]/5",
  H: "[[a4,a5] ~ [g4,g5] ~ [f4,f5] ~ [e4,e5] [d4,d5]@5 ~@4]/2", I: "~@3 [g4,bb4] ~ [f4,a4] [g4,bb4] ~", J: "d5 c5 d5@6",
  K: "c5 a4 c5@6", L: "[a4 g4 a4@10 ~@4]/2", M: "~@3 [f4,a4] ~ [e4,g4] [f4,a4] ~", N: "~@3 [e4,g4] ~ [d4,f4] [e4,g4] ~",
  O: "~@3 g4 ~ f4 g4 ~", P: "[~@4 d4@4 f4@4 a4@2 a4 bb4@13 ~@2 bb4@2]/2",
  Q: "[bb4@4 a4@4 g4@4 a4@2 a4 bb4@13 ~@2 bb4@2]/2", R: "[bb4@2 a4@2 g4@2 bb4 a4@7 ~ a4]/2",
  S: "[a4@2 g4@2 f4@2 g4 a4@9]/2", T: "[g4@4 f4@4 e4@4 f4@2 f4 g4@5 f4@4 e4@4 f4@2 a4@6 a3@4 e4 f4@3 e4@2 d4@14 ~@4]/4",
  U: "[a4,a5] ~ [g4,g5] ~ [f4,f5] ~ [e4,e5]@2", V: "[d4,d5]",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "Trompeta en Si♭" · soft notes
const trumpet_soft = note("<~@60 A@2 B ~ C@2 D ~@65 A@2 ~@2 C@2 ~@24 A@2 ~@2 C@2 ~@23>".pickRestart({
  A: "[g4,bb4]", B: "~@3 [f4,a4] ~ [e4,g4] [f4,a4] ~", C: "[f4,a4]", D: "~@3 [e4,g4] ~ [d4,f4] [e4,g4] ~",
})).s("gm_trumpet").gain(0.2)

// other · viola
const viola = note(`<
  ~@14 A B C@2 ~@2 D E ~@2 F G ~@2 D E ~@2 F G ~@21 H@2 ~ I ~@3 J ~ K@2 L ~@4 M ~@14 A B C@2 ~@2 D E ~@2 F G ~@2 D E ~@2
  F G ~@2 N@2 ~@2 O@2 ~@2 N@2 ~@2 P@2 ~@5 H@2 ~ I ~@2 Q J ~ K@2 L ~@4 M ~ R S T@2 U@4 V@2 W@4 ~ L ~ X@2 Y ~ Z@2 AA ~@3
  AB AC AD@2 ~@13 AE K
>`.pickRestart({
  A: "a4 g4 a4@6", B: "g4 e4 g4@6", C: "[f4 e4 f4@10 ~@4]/2", D: "d4 ~ g3 ~", E: "d4 ~@3", F: "d4 ~ a3 ~", G: "d3 ~@3",
  H: "[a4 ~ g4 ~ f4 ~ e4 d4@5 ~@4]/2", I: "~@3 d4 ~ c4 d4 ~", J: "~@3 f3 ~ e3 f3 ~", K: "d4", L: "~@3 bb3 ~ a3 bb3 ~",
  M: "a4 ~ g4 ~ f4 ~ e4 d4", N: "[e4@3 ~]/2", O: "[f4@3 ~]/2", P: "[a4@3 ~]/2", Q: "g3", R: "f4 a4", S: "bb4@6 ~ bb4",
  T: "[bb4@2 a4@2 g4@2 a4 bb4@7 ~ bb4]/2", U: "[bb4@2 a4@2 g4@2 bb4 a4@3 g4@2 f4@2 g4 a4@3 g4@2 f4@2 g4 a4@7 ~@2]/4",
  V: "[~@2 d4@2 f4@2 a4 g4@7 ~ g4]/2", W: "[g4@2 f4@2 e4@2 f4 a4@3 a3@2 db4@2 e4 a4@3 a3@2 f4@2 e4 d4@9]/4", X: "bb3",
  Y: "~@3 a3 ~ g3 a3 ~", Z: "a3", AA: "~@3 g3 ~ f3 g3 ~", AB: "d4 b3 d4@6", AC: "c4 a3 c4@6", AD: "[a3 g3 a3@10 ~@4]/2",
  AE: "a4 ~ g4 ~ f4 ~ e4@2",
})).s("gm_viola").gain(0.4)

// bass · cello · "Violonchelo"
const bass = note(`<
  ~@2 A@2 B@2 C@2 D@2 A@2 E@2 F@6 G H E@2 I J F@2 G H E@2 I J A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 E@2 F@4 A@2 B@2 C@2
  D@2 A@2 E@2 F@4 A@2 B@2 C@2 D@2 A@2 E@2 F@6 G H E@2 F@4 A@2 E@2 I J A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 E@2 F@4 A@2
  B@2 C@2 D@2 A@2 E@2 F@2 ~@2 A@2 B@2 C@2 D@2 A@2 E@2 F@2 A@2 B@2 C@2 D@2 A@2 E@2 F@4 A@2 B@2 C@2 D@2 A@2 E@2 F@2 K
>`.pickRestart({
  A: "g1@2 bb1 d2", B: "c2@2 e2 g2", C: "f1@2 a1 c2", D: "bb1@2 d2 f2", E: "a1@2 db2 e2", F: "d2@2 f2 a2",
  G: "d3 ~ g2 ~", H: "d3 ~@3", I: "d3 ~ a2 ~", J: "d2 ~@3", K: "d2",
})).s("gm_cello").gain(0.4)

// drums · kick
const kick = s("bd").struct("<~@2 A@55 B C@7 A@64 B C@7 A@22 B C@7 A@23 D>".pickRestart({
  A: "x ~ x!2", B: "~@2 x!2", C: "~ x!3", D: "x",
})).gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@57 [~@3 x] ~@71 [~@3 x] ~@29 [~@3 x] ~@31>").gain(0.4)

// drums · hihat
const hihat = s("hh").struct("<~@2 A@56 ~@7 A@65 ~@7 A@23 ~@7 A@23 ~>".pickRestart({
  A: "x!2",
})).gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<~@2 A@55 B ~@7 A@64 B ~@7 A@22 B ~@7 A@23 ~>".pickRestart({
  A: "~@2 x!2", B: "~@2 x!3 ~ x ~",
})).gain(0.3)

// drums · high tom
const high_tom = s("ht").struct("<~@2 A@55 B ~@7 A@64 B ~@7 A@22 B ~@7 A@23 ~>".pickRestart({
  A: "~ x ~@2", B: "x!4 ~@12",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@58 x ~@71 x ~@29 x ~@29 x>").gain(0.3)

// drums · ride
const ride = s("rd").struct("<~@58 A@7 ~@65 A@7 ~@23 A@7 ~@17 A@3 ~@4>".pickRestart({
  A: "~ x ~ x",
})).gain(0.3)

// drums · cowbell
const cowbell = s("cb").struct("<~@58 [x ~ x!3 ~ x!2]!7 ~@65 [x ~ x!3 ~ x!2]!7 ~@23 [x ~ x!3 ~ x!2]!7 ~@24>").gain(0.3)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  ~@2 A@19 B A@7 B A@6 C D@2 E A@13 B A@4 F B@3 A@31 B A@7 B A@6 C D@2 E A@13 B A@4 F B@3 A@26 F B@3 A@26 G
>`.pickRestart({
  A: "x ~ x!3 ~ x!2", B: "x!5 ~@3 x!5 ~@3", C: "x!5 ~ x ~ x ~@3 x!4", D: "x ~@3 x!5 ~@3 x!4",
  E: "x ~@3 x!5 ~@3 x ~ x ~", F: "x ~@3 x ~ x ~ x!5 ~@3", G: "x",
})).gain(1.51)

stack(
  oboe, tremolo_strings, clarinet, trumpet, trumpet_soft, viola, bass, kick, low_tom, hihat, mid_tom, high_tom, crash,
  ride, cowbell, cabasa
)

More by Los Angeles Azules