Strudelify

nunca es suficiente

Los Angeles Azules

KeyF majorTempo188 bpm
0:00/0:00
// nunca es suficiente — Los Angeles Azules
// 188 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "B♭ Clarinet" named as a reed, played on clarinet (its piano patch is not one); ch 1 "Guitar (Treble Clef)" named as a guitar, played on electric guitar clean (its slap bass 2 patch is not one)
// note: duplicate parts dropped: ch 2 "B♭ Clarinet" clarinet (copy of ch 13 "Flute" flute); ch 11 "Tuba" tuba (copy of ch 15 "Bass Guitar" electric bass pick)
// note: Transcription provider: pdmx. https://musescore.com/score/5932816; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 202 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(188/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 · flute
const flute = 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 ~@14 M@2 ~@13 A B N@2 ~@16 D E F@2 G H I@2 D E F@2 J K L@2
  ~@5 M@2 ~@14 M@2 ~@13 A B C@2 D E O@2 G H P@2 D E O@2 Q M@2 ~@13 A B N@2 ~@5 R S@2
>`.pickRestart({
  A: "d5@2 c5@2 d5@11 ~", B: "c5@2 a4@2 c5@11 ~", C: "[a4 g4 a4@10 ~@4]/2", D: "g4 a4", E: "bb4@3 d5@3 f5@2",
  F: "[e5@23 ~@9]/2", G: "f4 g4", H: "a4@3 c5@3 e5@2", I: "[f5@23 ~@9]/2", J: "g5 f5", K: "e5@3 d5@3 c5@2",
  L: "[a4@23 ~@9]/2", M: "[a5@2 ~@2 g5@2 ~@2 f5@2 ~@2 e5@2 d5@17 ~]/2", N: "[a4@2 g4@2 a4@19 ~@9]/2", O: "[e5@15 ~]/2",
  P: "[f5@15 ~]/2", Q: "f5@15 ~", R: "a5 ~ g5 ~ f5 ~ e5 ~", S: "[d5@15 ~]/2",
})).s("gm_flute").gain(0.4)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  ~@14 A B C@2 ~@37 D@2 ~ E ~@2 F G ~@2 H I ~@4 D@2 ~ E ~@2 F G ~@2 H I ~@3 A B C@2 ~@37 D@2 ~ E ~@2 F G ~@2 H I ~@4 D@2
  ~ E ~@2 F G ~@2 H I ~@3 A B C@2 J@2 K@2 L@2 M@2 J@2 N@2 M D@2 ~ E ~@2 F G ~@2 H I ~@3 A B C@2 I ~@4 O P@2
>`.pickRestart({
  A: "a4 g4 a4@6", B: "g4 e4 g4@6", C: "[f4 e4 f4@10 ~@4]/2", D: "[a4 ~ g4 ~ f4 ~ e4 d4@9]/2", E: "~@3 d4 ~ c4 d4 ~",
  F: "d4", G: "~@3 f4 ~ e4 f4 ~", H: "f4", I: "~@3 bb3 ~ a3 bb3 ~", J: "~@2 d4 ~@3 d4 ~", K: "~@2 g4 ~@3 g4 ~",
  L: "~@2 c4 ~@3 c4 ~", M: "~@2 f4 ~@3 f4 ~", N: "~@2 e4 ~@3 e4 ~", O: "a4 ~ g4 ~ f4 ~ e4 ~", P: "d4/2",
})).s("gm_alto_sax").gain(0.3)

// other · alto sax · "Alto Saxophone" · soft notes
const alto_sax_soft = note("<~@60 A ~@3 B ~@11 A ~@3 B ~@51 A ~@3 B ~@11 A ~@3 B ~@27 A ~@3 B ~@17>".pickRestart({
  A: "d4", B: "f4",
})).s("gm_alto_sax").gain(0.2)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@20 A B ~@2 C D ~@2 A B ~@2 C D ~@21 E@2 ~ F ~@2 G H ~@2 I J ~@4 E@2 ~ F ~@2 G H ~@2 I J ~@9 A B ~@2 C D ~@2 A B ~@2
  C D ~@21 E@2 ~ F ~@2 G H ~@2 I J ~@4 E@2 ~ F ~@2 G H ~@2 I J ~@7 K@2 L@2 M@2 N@2 K@2 O@2 M E@2 ~ F ~@2 G H ~@2 I J ~@7
  J ~@4 P Q@2
>`.pickRestart({
  A: "d4 ~ g3 ~", B: "d4 ~@3", C: "d4 ~ a3 ~", D: "d3 ~@3", E: "[a3 ~ g3 ~ f3 ~ e3 d3@9]/2", F: "~@3 bb3 ~ a3 bb3 ~",
  G: "g3", H: "~@3 a3 ~ g3 a3 ~", I: "a3", J: "~@3 g3 ~ f3 g3 ~", K: "~@2 bb3 ~@3 bb3 ~", L: "~@2 e4 ~@3 e4 ~",
  M: "~@2 a3 ~@3 a3 ~", N: "~@2 d4 ~@3 d4 ~", O: "~@2 db4 ~@3 db4 ~", P: "a3 ~ g3 ~ f3 ~ e3 ~", Q: "d3/2",
})).s("gm_tenor_sax").gain(0.4)

// other · tenor sax · "Tenor Saxophone" · soft notes
const tenor_sax_soft = note("<~@60 A ~@3 B ~@11 A ~@3 B ~@51 A ~@3 B ~@11 A ~@3 B ~@27 A ~@3 B ~@17>".pickRestart({
  A: "g3", B: "a3",
})).s("gm_tenor_sax").gain(0.2)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  ~@20 A B ~@2 C D ~@2 A B ~@2 C D ~@21 E@2 ~ F ~@2 G H ~@2 I J ~@4 E@2 ~ F ~@2 G H ~@2 I J ~@9 A B ~@2 C D ~@2 A B ~@2
  C D ~@21 E@2 ~ F ~@2 G H ~@2 I J ~@4 E@2 ~ F ~@2 G H ~@2 I J ~@6 K L@2 M@2 N@2 O@2 L@2 P@2 Q E@2 ~ F ~@2 G H ~@2 I J
  ~@7 J ~@4 R S@2
>`.pickRestart({
  A: "d3 ~ g2 ~", B: "d3 ~@3", C: "d3 ~ a2 ~", D: "d2 ~@3", E: "[a3 ~ g3 ~ f3 ~ e3 d3@9]/2", F: "~@3 g3 ~ f3 g3 ~",
  G: "bb2", H: "~@3 f3 ~ e3 f3 ~", I: "a2", J: "~@3 e3 ~ d3 e3 ~", K: "~ d3 c3 bb2", L: "g2 ~@3 g2 ~@3",
  M: "c3 ~@3 c3 ~@3", N: "f2 ~@3 f2 ~@3", O: "bb2 ~@3 bb2 ~@3", P: "a2 ~@3 a2 ~@3", Q: "d3 ~@3 d3 ~@3",
  R: "a3 ~ g3 ~ f3 ~ e3 ~", S: "d3/2",
})).s("gm_baritone_sax").gain(0.4)

// other · baritone sax · "Baritone Saxophone" · soft notes
const baritone_sax_soft = note("<~@60 A ~@3 B ~@11 A ~@3 B ~@51 A ~@3 B ~@11 A ~@3 B ~@27 A ~@3 B ~@17>".pickRestart({
  A: "bb2", B: "a2",
})).s("gm_baritone_sax").gain(0.2)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@55 A@2 ~ B ~@2 C D ~@2 E F ~@4 A@2 ~ B ~@2 C D ~@2 E F ~@44 A@2 ~ B ~@2 C D ~@2 E F ~@4 A@2 ~ B ~@2 C D ~@2 E F ~@6
  G@2 H@2 I@2 J@2 K@2 L@4 A@2 ~ B ~@2 C D ~@2 E F ~@7 F ~@4 M N@2
>`.pickRestart({
  A: "[a4 ~ g4 ~ f4 ~ e4 d4@9]/2", B: "~@3 g4 ~ f4 g4 ~", C: "g4", D: "~@3 f4 ~ e4 f4 ~", E: "f4",
  F: "~@3 e4 ~ d4 e4 ~", G: "[~@2 d4@2 f4@2 a4 f4@7 ~ g4]/2", H: "[g4@2 f4@2 e4@2 f4 g4@7 ~ g4]/2",
  I: "[g4@2 f4@2 e4@2 g4 f4@7 ~ f4]/2", J: "[f4@2 e4@2 d4@2 e4 f4@9]/2", K: "[~@2 d4@2 f4@2 f4 e4@7 ~ e4]/2",
  L: "[e4@2 d4@2 db4@2 db4 e4@3 d4@2 db4@2 db4 f4@3 a3@2 f4@2 e4 d4@7 ~@2]/4", M: "a4 ~ g4 ~ f4 ~ e4 ~", N: "d4/2",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B♭ Trumpet" · soft notes
const trumpet_soft = note("<~@60 A ~@3 B ~@11 A ~@3 B ~@51 A ~@3 B ~@11 A ~@3 B ~@27 A ~@3 B ~@17>".pickRestart({
  A: "g4", B: "f4",
})).s("gm_trumpet").gain(0.2)

// chords · electric guitar clean · "Guitar (Treble Clef)"
const electric_guitar_clean = note(`<
  ~@2 A@2 B@2 C@2 D@2 A@2 E@2 F@6 A@2 E@2 F@4 A@2 E@2 F@2 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 A@2 E@2 F@4 A@2 E@2 F@2 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@3 G@2 H@2 I@2 J@2 K@2 L@4 F@3 A@2 B@2 C@2 D@2 A@2 E@2 F@4 A@2 E@2 F@2 M
  ~
>`.pickRestart({
  A: "~ [g3,bb3,d4,g4] ~ [g3,bb3,d4,g4]", B: "~ [c3,e3,g3,bb3] ~ [c3,e3,g3,bb3]", C: "~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4]",
  D: "~ [bb2,d3,f3,bb3] ~ [bb2,d3,f3,bb3]", E: "~ [a3,db4,e4,g4] ~ [a3,db4,e4,g4]",
  F: "~ [d3,f3,a3,d4] ~ [d3,f3,a3,d4]", G: "[~@4 d4@4 f4@4 a4@2 a4 bb4@13 ~@2 bb4@2]/2",
  H: "[bb4@4 a4@4 g4@4 a4@2 a4 bb4@13 ~@2 bb4@2]/2", I: "[bb4@2 a4@2 g4@2 bb4 a4@7 ~ a4]/2",
  J: "[a4@2 g4@2 f4@2 g4 a4@9]/2", K: "[~@2 d4@2 f4@2 a4 g4@7 ~ g4]/2",
  L: "[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@18]/4", M: "[d3,f3,a3,d4] ~@3",
})).s("gm_electric_guitar_clean").gain(0.3)

// bass · electric bass pick · "Bass Guitar"
const bass = note(`<
  ~@2 A@2 B@2 C@2 D@2 A@2 E@2 F@6 A@2 E@2 F@4 A@2 E@2 F@2 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 A@2 E@2 F@4 A@2 E@2 F@2 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@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@4 A@2 E@2 F@2
  G@2
>`.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: "d2/2",
})).s("gm_electric_bass_pick").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@2 A@55 B C@7 A@8 B C@7 A@48 B C@7 A@8 B C@7 A@8 B C@8 A@8 C@8 A@14 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 A ~@15 A ~@55 A ~@15 A ~@15 A ~@40>".pickRestart({
  A: "~@3 x",
})).gain(0.4)

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

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@2 A@55 B ~@7 A@8 B ~@7 A@48 B ~@7 A@8 B ~@7 A@8 B ~@8 A@8 ~@8 A@14 ~@2
>`.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@8 B ~@7 A@48 B ~@7 A@8 B ~@7 A@8 B ~@8 A@8 ~@8 A@14 ~@2
>`.pickRestart({
  A: "~ x ~@2", B: "x!4 ~@12",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@58 A ~@15 A ~@55 A ~@15 A ~@15 A ~@15 A ~@21 A ~>".pickRestart({
  A: "x",
})).gain(0.3)

// drums · ride
const ride = s("rd").struct("<~@58 A@7 ~@9 A@7 ~@49 A@7 ~@9 A@7 ~@9 A@8 ~@8 A@8 ~@8 A@3 ~@5>".pickRestart({
  A: "~ x ~ x",
})).gain(0.3)

// drums · cowbell
const cowbell = s("cb").struct("<~@58 A@7 ~@9 A@7 ~@49 A@7 ~@9 A@7 ~@9 A@8 ~@8 A@8 ~@16>".pickRestart({
  A: "x ~ x!3 ~ x!2",
})).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@12 F B@3 A@15 B A@4 B A@9 C D@2 E A@13 B A@7 F B@3 A@12 F B@3 A@11 B G
  A@5 B G A@6 G A@20 H ~
>`.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!5 ~ x ~ x ~@3 x ~ x ~", H: "x",
})).gain(1.51)

stack(
  flute, alto_sax, alto_sax_soft, tenor_sax, tenor_sax_soft, baritone_sax, baritone_sax_soft, trumpet, trumpet_soft,
  electric_guitar_clean, bass, kick, low_tom, hihat, mid_tom, high_tom, crash, ride, cowbell, cabasa
)

More by Los Angeles Azules