Strudelify

spanish anthem - marcha real

Manuel de Espinosa

KeyB♭ majorTempo98 bpm
0:00/0:00
// spanish anthem - marcha real — Manuel de Espinosa
// 98 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "Bb Cornet" trumpet (copy of ch 1 "Voice" trumpet)
// note: Transcription provider: pdmx. https://musescore.com/score/377636; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 50 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(98/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · "Bb Cornet"
const trumpet = note("<A B C D A B C D E F G H E F G H ~@16 A B C D A B C D E F G H E F G I@3>".pickRestart({
  A: "d4 f4", B: "f4 eb4 c4@2", C: "d4 eb4 f4 bb4", D: "bb4 g4 a4@2", E: "d4 c4", F: "bb3@2 a3 c4",
  G: "d4@2 eb4@2 f4@2 d4 c4", H: "bb3 a3 d4@2", I: "[bb3@13 a3@13 d4@16 ~@6]/3",
})).s("gm_trumpet").gain(0.24)

// bass · tuba · "Bb Tuba"
const bass = note(`<
  A B C D A B C D E F C G E F C G ~@8 H I J K H I J K A B C D A B C D E F C G E F C L@3
>`.pickRestart({
  A: "bb2 bb3 a3 g3", B: "f3 g3 f3 eb3", C: "d3 c3 bb2 d3", D: "c3 g3 f3 f2", E: "bb3 g3 a3 f3", F: "g3 eb3 f3 eb3",
  G: "f3 f2 bb2 f2", H: "eb3 c3 d3 bb2", I: "c3 ab2 bb2 ab2", J: "g2 f2 eb2 g2", K: "bb2 bb1 eb2 bb1",
  L: "[f3@13 f2@13 bb2@16 ~@6]/3",
})).s("gm_tuba").gain(0.25)

// bass · tuba · "Bb Tuba" · soft notes
const bass_soft = note("<~@16 A B C D A B C D ~@26>".pickRestart({
  A: "eb2 eb3 d3 c3", B: "bb2 c3 bb2 ab2", C: "g2 f2 eb2 g2", D: "f2 c3 bb2 bb1",
})).s("gm_tuba").gain(0.13)

// bass · tuba · "Bb Tuba"
const bass_2 = note(`<
  A B C D A B C D E F C G E F C G ~@8 H I J K H I J K A B C D A B C D E F C G E F C L@3
>`.pickRestart({
  A: "bb1 bb2 a2 g2", B: "f2 g2 f2 eb2", C: "d2 c2 bb1 d2", D: "c2 g2 f2 f1", E: "bb2 g2 a2 f2", F: "g2 eb2 f2 eb2",
  G: "f2 f1 bb1 f1", H: "eb2 c2 d2 bb1", I: "c2 ab1 bb1 ab1", J: "g1 f1 eb2 g1", K: "bb1!2 eb2 bb1",
  L: "[f2@13 f1@13 bb1@16 ~@6]/3",
})).s("gm_tuba").gain(0.22)

// bass · tuba · "Bb Tuba" · soft notes
const bass_soft_2 = note("<~@16 A B C D A B C D ~@26>".pickRestart({
  A: "eb2!2 d2 c2", B: "bb1 c2 bb1 ab1", C: "g1 f1 eb2 g1", D: "f1 c2 bb1!2",
})).s("gm_tuba").gain(0.11)

// drums · snare
const snare = s("sd").struct("<A B@2 C A B@2 C D E F G D E F G ~@16 A B@2 C A B@2 C D E F G D E F H I J>".pickRestart({
  A: "x!2", B: "x ~ x ~ x ~ x!2", C: "x ~@7 x ~@7 x ~@7 x ~@2 x ~ x ~@2", D: "x ~@3 x ~@3 x!9 ~@3 x ~@3 x!8",
  E: "x ~@3 x ~@3 x!9 ~@7 x ~@7", F: "x ~@7 x!9 ~@7 x ~@3 x ~@3", G: "x!3 ~", H: "x ~@12 x ~@2", I: "~@20 x!12",
  J: "x!21 ~@11",
})).gain(0.22)

stack(trumpet, bass, bass_soft, bass_2, bass_soft_2, snare)