Strudelify

Feliz Navidad BB1 edition (original Cantway)

Jose Feliciano

KeyG majorTempo140 bpm
0:00/0:00
// Feliz Navidad BB1 edition (original Cantway) — José Feliciano
// 140 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5847123; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 86 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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 · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A B C D E@2 F@2 G@4 E@2 F@2 G@4 H@2 I@2 J@3 D E@2 F@2 G@4 H@2 I@2 J@3 ~ H@2 I@2 K@3 ~ E@2 F@2 G@4 E@2 F@2 G@4 H@2 I@2
  J@3 ~ H@2 I@2 J@3 ~ L@2
>`.pickRestart({
  A: "a#4@3 a#4 c5 d5@3", B: "a4 a4@2 a4 g4@2 g4@2", C: "f4@3 a#4@2 f4@2 f4", D: "f4 ~@3",
  E: "[f4@2 d5 a#4 g4 f4@2 e4@2 a#4@7]/2", F: "[f4@2 c5 a4 f4 d4@2 c4@2 a4@7]/2",
  G: "[a#4@3 a#4!2 a#4@2 a4@2 a4 a#4 a4 g4@2 g4 f4@11 ~@6]/4", H: "[~@2 a#4 a4 g4 f4@2 e4@2 f4 g4@4 ~@2]/2",
  I: "[~@2 a4 g4 f4 e4@2 d4@2 e4 f4@4 ~@2]/2", J: "[~@2 a#4 a4 g4 f4@2 e4@8 a4@9]/3",
  K: "[~@2 a#4 a4 g4 f4@2 e4@8 a4@7 ~@2]/3", L: "[~ f4@3]/2",
})).s("gm_tenor_sax").gain(0.3)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A B C D A E F G H B I D A E F G H B I J K L M J K E ~ D A E F G H B I J K L M J K E ~ J K L M J K E ~@2 A E F G H B I
  D A E F G H B I J K L M J K E ~ J K L M J K E ~@2 N@2
>`.pickRestart({
  A: "g2@3 d3@3 g2@2", B: "c3@3 c2@3 c3@2", C: "f2@2 c3 a#2@2 a2@2 g2", D: "f2 ~@3", E: "c3@3 g2@3 c3@2",
  F: "f2@3 c3@3 c3@2", G: "f2@3 c3@3 f2@2", H: "g2@3 g3@3 d3@2", I: "f2@2 f3 d3@2 c3@2 a2", J: "f2 f3!3 f3@2 g3 a3",
  K: "a#3@3 f3@3 a#2@2", L: "c3@3 g3@3 c3@2", M: "f2@3 f3@3 c3@2", N: "[~ f3@3]/2",
})).s("gm_baritone_sax").gain(0.3)

// other · trombone
const trombone = note(`<
  A B C D E@2 F@2 G@4 E@2 F@2 G@4 H@2 I@2 J@2 ~ D E@2 F@2 G@4 H@2 I@2 J@2 ~@2 H@2 I@2 J@2 ~@2 E@2 F@2 G@4 E@2 F@2 G@4
  H@2 I@2 J@2 ~@2 H@2 I@2 J@2 ~@2 K@2
>`.pickRestart({
  A: "d4@3 a#3 c4 d4@3", B: "c4 c4@2 c4 a#3@2 a#3@2", C: "a3@3 a#3@2 c4@2 a#3", D: "a3 ~@3",
  E: "[~@2 d4 a#3 g3 f3@2 e3@2 a#3@4 ~@3]/2", F: "[~@2 c4 a3 f3 d3@2 c3@2 a3@4 ~@3]/2",
  G: "[d4@3 a#3 d4 d4@2 c4@2 c4 d4 c4 a#3@2 a#3 a3@11 ~@6]/4", H: "[~@2 a#3 c4 d4 f4@2 e4@2 f4 g4@4 ~@2]/2",
  I: "[~@2 a3 a#3 c4 e4@2 d4@2 e4 f4@4 ~@2]/2", J: "[~@2 a#3 c4 d4 f4@2 e4@9]/2", K: "[~ a4@3]/2",
})).s("gm_trombone").gain(0.3)

// bass · tuba
const bass = note(`<
  A B C D A E F G H B I D A E F G H B I J K L M N K L O D A E F G H B I J K L M N K L O J K L M N K L P ~ A E F G H B I
  D A E F G H B I J K L M N K L O J K L M N K L Q R@3
>`.pickRestart({
  A: "g2@3 d2@3 g2@2", B: "c3@3 c2@3 c3@2", C: "f2@2 c3 a#2@2 a2@2 g2", D: "f2 ~@3", E: "c3@3 g2@3 c3@2",
  F: "f2@3 c3@3 c2@2", G: "f2@3 c2@3 f2@2", H: "g1@3 g2@3 d2@2", I: "f2@2 f3 d3@2 c3@2 a2", J: "f2!4 f2@2 g2 a2",
  K: "a#2@3 f2@3 a#1@2", L: "c2@3 g2@3 c2@2", M: "f2@3 f2@3 c2@2", N: "f1 f2!3 f2@2 g2 a2", O: "f2@3 a2 a#2 a2@2 g2",
  P: "f2@3 ~", Q: "f2@3 a2", R: "[a#2 a2@2 g2@3 f3@6]/3",
})).s("gm_tuba").gain(0.3)

stack(tenor_sax, baritone_sax, trombone, bass)

More by Jose Feliciano