Strudelify

Querida

Juan Gabriel

KeyD majorTempo87 bpm
0:00/0:00
// Querida — Juan Gabriel
// 87 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Piano" named as a piano, played on piano (its pizzicato strings patch is not one); ch 2 "Violines" named as a string part, played on violin (its vibraphone patch is not one); ch 14 "Guitarra clásica" named as a guitar, played on electric guitar clean (its french horn patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5963856; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 119 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(87/4)

// 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 · pizzicato strings · "Flauta" · Asus2
const pizzicato_strings = note("<~@3 [~@6 b5@2 [a5,b5]!8] [[a5,b5]!16] ~@2 [~@6 b5@2 [a5,b5]!8] [[a5,b5]!16] ~@110>")
  .s("gm_pizzicato_strings").gain(0.3)

// other · violin · "Violines"
const violin = note(`<
  ~ A B C D E F@3 ~@14 G H@3 ~ I ~@6 J K ~@6 L M N O P Q@3 R S ~@4 G H@3 T I ~@3 U V@4 ~@11 U V@34 ~@2
>`.pickRestart({
  A: "~@2 b4 a5", B: "a5@2 f#5@2 c#6@2 a5 f#5", C: "d5", D: "d5@2 b4 d5 e5@2 b5@2", E: "f#5 [g5,g#5] a5@14", F: "a5/3",
  G: "~@4 f#4 g4 a4 d4", H: "b4/3", I: "c#5", J: "[g5,c6]", K: "[a5,c#6]", L: "~@3 a5@2 f#5 c#5 e5",
  M: "b4@2 d5 c#5@2 b4 a4@2", N: "~@3 f#5@2 a5 c#6 e6", O: "d6@2 b5 c#6@2 d6 e6@2", P: "~@3 f#5@2 g5 a5 f#5", Q: "b5",
  R: "c6", S: "c#6", T: "c5", U: "~@12 [a4,b4] [c#5,d5] [e5,f#5] [g5,a5]", V: "a5/2",
})).s("gm_violin").gain(0.3)

// other · violin · "Violines" · soft notes
const violin_soft = note("<~ A ~@25 B ~ C D E F G H ~@82 I@2>".pickRestart({
  A: "~ a4 ~@2", B: "c5", C: "[f#4,d5] [g4,c#5]", D: "[a4,d5] [c#5,e5]", E: "[d5,f#5] [c#5,e5]", F: "[e5,g5] [d5,a5]",
  G: "[d5,a5]", H: "[g5,b5]", I: "a5/2",
})).s("gm_violin").gain(0.2)

// other · muted trumpet
const muted_trumpet = note("<~ A@2 B@2 A@2 C@2 ~@110>".pickRestart({
  A: "c#4/2", B: "[b3,d4]/2", C: "d4/2",
})).s("gm_muted_trumpet").gain(0.2)

// other · slap bass 2
const slap_bass_2 = note("<~@19 A B C D A E@3 F G ~@24 A B C D A E@3 F G ~@56>".pickRestart({
  A: "~@4 f#3 g3 a3 d3", B: "b3 a3", C: "~@4 f#3 a3 c#4 e4", D: "d4 c#4", E: "b3/3", F: "c4", G: "c#4",
})).s("gm_slap_bass_2").gain(0.4)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@9 A B C D A E F@2 G H ~@16 G H I J I J ~@2 I J I J ~@6 I J I J ~@6 I J I J ~@5 K L M N O P ~ I J I J ~@36
>`.pickRestart({
  A: "~@4 f#3 g3 a3 d3", B: "b3, a3 ~@15", C: "~@4 f#3 a3 c#4 e4", D: "d4", E: "a3 [d4,g4]@15, [d3,b3]",
  F: "~ [d4,g4]@15, [d3,b3]", G: "~ [c4,e4]@15, [e3,g3]", H: "~ [c#4,e4]@15, [e3,a3]",
  I: "~@4 [f#3,a3,d4,f#4] ~@5 [f#3,a3,d4,f#4] ~@5", J: "~@4 [g3,b3,d4,g4] ~@5 [a3,c#4,e4,a4] ~@5",
  K: "f#4@2 [f#4,g4] [g#4,a4] b4@2 a4@2 f#4@2 e4@2 f#4@2 e4@2", L: "d4@4 a3 b3 a3@8 ~@2", M: "b4 d5 e5 d5 e5 d5 e5 d5",
  N: "f#5 [g5,g#5] a5@4 a5 b5 f5 e5 d5@6", O: "~@2 [a5,a#5] b5 a5 f#5 e5 d5 b4 a4 g4 a4 b4 [d5,d#5,e5] [f5,f#5] e5",
  P: "d5",
})).s("gm_electric_guitar_clean").gain(0.3)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@19 A B A B A C D@2 E F A B A B A C ~@36 G ~@47>".pickRestart({
  A: "~@4 [f#3,a3,d4,f#4] ~@5 [f#3,a3,d4,f#4] ~@5", B: "~@4 [g3,b3,d4,g4] ~@5 [a3,c4,e4,a4] ~@5",
  C: "a3 [d4,g4]@15, [d3,b3]", D: "~ [d4,g4]@15, [d3,b3]", E: "~ [c4,e4]@15, [e3,g3]", F: "~ [c#4,e4]@15, [e3,a3]",
  G: "a4 b4 a4@2 a4 b4 a4@2 a4 b4 a4@2 a4 b4 a4@2",
})).s("gm_electric_guitar_clean").gain(0.2)

// other · distortion guitar
const distortion_guitar = note("<~@78 A ~@8 B C D E F G H ~@25>".pickRestart({
  A: "d5 c#5 c5 b4 ~ a#4 a4 g#4 g4 f#4 f4 ~ e4 d#4 d4@2", B: "~@2 f#5 e5 d5@2 b4 a4", C: "b4 d5@2 b4 f5@2 f#5@2",
  D: "f#5 e5 d5@6 f#4@2 e4@2 d4@2 e4@2", E: "d4 a3", F: "~@2 a3 b3 d4@2 f#4@2 e4@2 f#4@2 e4@2 f#4@2",
  G: "e4 d4 b3 a3 b3 d4 e4 f#4 e4@2 b3@2 d4@2 f#4@2", H: "e4 d4 b3@4 a3 b3 a3@8",
})).s("gm_distortion_guitar").gain(0.45)

// chords · electric guitar clean · "Guitarra clásica"
const electric_guitar_clean_3 = note(`<
  ~ A@2 B@2 C@2 D@2 ~@9 E F G F H I ~@5 F G F H I J K L M N M N M N M N M N M N@3 O P M N M N@5 O P M N M N M N M N M N
  M N M N ~@2 M N M N M N M N M N M N M N M N M N M N M N M N M N M N M N M N M N M N M N M N
>`.pickRestart({
  A: "[f#3,a3,c#4]/2", B: "[d3,g3,a3]/2", C: "[a3,c#4]/2", D: "[f#3,a3]/2", E: "~@2 g4 e4", F: "~ f#4 ~ g4 a4 ~ d4@2",
  G: "~ g4 ~ a4 b4 ~ e4@2", H: "~ g4 ~ a4 b4@2 e5@2", I: "~ d5 ~ g4 a4 ~ c#5@2", J: "a3 [d4,g4]@15, [d3,b3]",
  K: "~ [c4,e4]@15, [e3,g3]", L: "~ [c#4,e4]@15, [e3,a3]", M: "[f#3,a3,d4,f#4]!4 [f#3,a3,d4,a4] [f#3,a3,d4,f#4]!3",
  N: "[g3,b3,d4,g4]!4 [g3,b3,d4,b4] [a3,c#4,e4,a4]!3", O: "[g3,b3,d4,g4]!4 [g3,b3,d4,b4] [a3,c#4,e4,a4]!3, c4",
  P: "[g3,b3,d4,g4]!4 [g3,b3,d4,b4] [a3,c#4,e4,a4]!3, c#4@5 ~@3", // G A
})).s("gm_electric_guitar_clean").gain(0.2)

// bass · electric bass finger · "Bajo eléctrico"
const bass = note(`<
  ~ A B C D A B C E F G F G F H I J K L F G F G F H I J K L F G F G F H K L F G F G F M F G F G F H@3 K L F G F G F H@3
  K L F G F G F N F N F G F G F G O ~ F G F G F N F N F G F G F G F G F G F G F G F G F G F G F G F G F G F G F G F G
>`.pickRestart({
  A: "c#2@3 c#2@4 a1", B: "c#2", C: "d2 d2@3 d2@3 a1", D: "d2", E: "d2 a2, ~@8 g2 ~@7", F: "d1 f#1", G: "g1@3 g1 a1@4",
  H: "g2@6 d2 b1", I: "g1@3 g1", J: "g2@7 g2", K: "c2@7 g1", L: "a1@3 a1", M: "g2 a2", N: "g1@4 a1!2 a1@2", O: "d1",
})).s("gm_electric_bass_finger").gain(0.45)

// other · orchestral harp · "Trombón"
const orchestral_harp = note(`<
  ~@3 A B@3 ~ C ~@26 D E ~@6 F ~@6 G@2 H ~@7 G@2 H I J I J K L K L ~@8 I J I J K L K L ~@14 M N M N M N M N M N M N M N
  O ~@3
>`.pickRestart({
  A: "~@6 a3@2 b3@4 [b3,c4,c#4,d4,d#4,e4] [f4,f#4,g4,g#4] ~@2, ~@13 a4@3", B: "[a4@9 f#4 c#4 ~]/3",
  C: "~@8 [e3,f#3] [g3,a3] [c#4,e4] [g4,a4] [b4,c#5] [e5,f#5] [g5,a5] [b5,c#6]", D: "c5",
  E: "~@8 [e3,f#3] [g3,a3] [c#4,e4] [g4,a4] [b4,c#5] [e5,f#5] [g5,a5] [b5,c#6], c#5@3 ~", F: "~@4 [a3,d4,f#4] ~@11",
  G: "g3", H: "a3", I: "~@8 [f#3,a3]!2 ~@6", J: "[b3,d4] ~@5 [b3,d4] ~ [c#4,e4] ~@7", K: "~@6 [f#3,a3] ~@7 [f#3,a3] ~",
  L: "~@6 [b3,d4] ~@7 [c#4,e4] ~", M: "d4@2 b3 a3 d4@2 b3 a3", N: "~@2 d4@2 b3@2 a3@2 c#4 ~ c#4 ~ b3@2 a3@2",
  O: "d4@2 b3 a3 ~@4",
})).s("gm_orchestral_harp").gain(0.4)

// other · orchestral harp · "Trombón" · soft notes
const orchestral_harp_soft = note("<~@6 A B@2 ~@20 C D E F G H ~@13 I@2 ~@8 J@2 ~@55 K L M L>".pickRestart({
  A: "~@6 e4 b3", B: "[a3@25 ~@7]/2", C: "~@4 a4@2 f#4 c#4", D: "e4 b3@2 d4 c#4@2 b3 a3", E: "~@3 f#4@2 a4 c#5 e5",
  F: "d5@2 b4 c#5@2 d5 e5@2", G: "~@3 f#4!2 g4 a4 f#4", H: "b4", I: "g3", J: "g3/2", K: "~@4 d4@2 b3 a3",
  L: "~@2 d4@2 b3@2 a3@2 c#4 ~ c#4 ~ b3@2 a3@2", M: "d4@2 b3 a3 d4@2 b3 a3",
})).s("gm_orchestral_harp").gain(0.2)

// other · trumpet · "Trompeta en Do"
const trumpet = note("<~@51 A B ~@8 A B C D C D E@4 ~@8 C D C D E@4 ~@16 F G F G F G F G F G F H ~@4>".pickRestart({
  A: "g4", B: "a4", C: "~@8 a5!2 ~@6", D: "a5 ~@5 a5 ~ a5 ~@7", E: "~@6 a5 ~@7 a5 ~", F: "d5@2 b4 a4 d5@2 b4 a4",
  G: "~@2 d5@2 b4@2 a4@2 c#5 ~ c#5 ~ b4@2 a4@2", H: "~@2 d5@2 b4@2 a4@2 c#5 ~@7",
})).s("gm_trumpet").gain(0.45)

// other · trumpet · "Trompeta en Do" · soft notes
const trumpet_soft = note("<~@48 A@3 ~@7 B@2 A ~@53 C D E D E>".pickRestart({
  A: "g4", B: "g4/2", C: "~@10 c#5 ~ b4@2 a4@2", D: "d5@2 b4 a4 d5@2 b4 a4",
  E: "~@2 d5@2 b4@2 a4@2 c#5 ~ c#5 ~ b4@2 a4@2",
})).s("gm_trumpet").gain(0.2)

// drums · kick
const kick = s("bd").struct("<~@19 x ~@99>").gain(0.2)

// drums · rim
const rim = s("rim").struct("<~@19 A B A B A B A@4 C@13 D ~@20 C@4 ~@12 C@4 ~@36>".pickRestart({
  A: "~ x", B: "x!2", C: "~ x ~ x", D: "~ x ~@2",
})).gain(0.25)

// drums · snare
const snare = s("sd").struct("<~@43 A@9 B A@9 B ~@8 A@6 ~@10 A@27 B ~@4>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.5)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@114 [~@3 x] [~ x ~ x]!4>").gain(0.2)

// drums · hihat
const hihat = s("hh").struct("<~@40 A B C B@9 C B@9 C B@4 ~@4 B@6 ~@2 B@4 ~@4 B@27 C ~@4>".pickRestart({
  A: "~@7 x", B: "x!2 ~ x!3 ~ x", C: "x!2 ~ x ~@4",
})).gain(0.5)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@19
  [x!4]!10
  [x!2 ~ x!3 ~ x]!11
  [x!2 ~ x!3 ~@2]
  ~@73
  [~@4 x!2 ~ x]
  [x!2 ~ x!3 ~ x]!4
>`).gain(0.25)

// drums · low tom
const low_tom = s("lt").struct("<~@18 [~@3 x] ~@9 [~@6 x!2] ~@90>").gain(0.25)

// drums · mid tom
const mid_tom = s("mt").struct("<~@42 A ~@9 A ~@9 A ~@4 B@3 C ~@6 D E ~@4 B@3 C ~@32>".pickRestart({
  A: "~@6 x!2", B: "x!4", C: "x ~@3 x ~@7 x!3 ~", D: "~@14 x!2", E: "~@6 x!10",
})).gain(0.5)

// drums · high tom
const high_tom = s("ht").struct("<~@42 A ~@9 A ~@9 A ~@7 A ~@6 B C ~@7 A ~@32>".pickRestart({
  A: "~@4 x!2 ~@2", B: "x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~@2", C: "x!7 ~@8 x",
})).gain(0.5)

// drums · crash
const crash = s("cr").struct("<~@43 A ~@9 A ~@9 A ~@7 A ~@7 A ~@7 A ~@15 A ~@15>".pickRestart({
  A: "x",
})).gain(0.5)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@2 A@2 B A ~@4 C ~ C ~ C ~@5 C ~ C ~ C ~@2 A@2 D@8 ~@4 E ~@25 D@3 F ~@6 G ~@5 D@3 F ~@32
>`.pickRestart({
  A: "x!16", B: "~@8 x!8", C: "x", D: "~ x ~ x", E: "~ x!2 ~@2 x!2 ~", F: "~ x ~@2", G: "~@3 x",
})).gain(0.05)

stack(
  pizzicato_strings, violin, violin_soft, muted_trumpet, slap_bass_2, electric_guitar_clean, electric_guitar_clean_2,
  distortion_guitar, electric_guitar_clean_3, bass, orchestral_harp, orchestral_harp_soft, trumpet, trumpet_soft, kick,
  rim, snare, snare_soft, hihat, hihat_soft, low_tom, mid_tom, high_tom, crash, tambourine
)