Strudelify
KeyA majorTempo120 bpm
0:00/0:00
// stand by me — Jaguar Perlas 2Seventeen
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Tenor Saxophone" named as a reed, played on tenor sax (its acoustic bass patch is not one); ch 2 "Alto Saxophone" named as a reed, played on alto sax (its tremolo strings patch is not one); ch 16 "Double Bass" named as a bass, played on acoustic bass (its contrabass patch is not one)
// note: duplicate parts dropped: ch 12 "Violoncello" cello (copy of ch 11 "Tenor Saxophone" tenor sax); ch 15 "Baritone Saxophone" baritone sax (copy of ch 16 "Double Bass" acoustic bass)
// note: Transcription provider: pdmx. https://musescore.com/score/4588091; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 84 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  ~@24 A B C D E F A G H@2 I@2 J K L@2 H@2 I@2 J K L ~ A B C D E F A G M N O P Q R S T U V W X Y Z AA AB A B C D E F A
  AC ~@4
>`.pickRestart({
  A: "b4 ~@2 b4@3 f#4 a4", B: "b4 ~@2 b4@3 b4 a4", C: "g4 ~@2 g4@3 f#4@2", D: "g4 ~@2 g4@3 g4 f#4",
  E: "e4 ~@2 e4@3 e4 g4", F: "f#4 ~@2 f#4@3 f#4 a4", G: "b4 ~@2 b4@3 d4 f#4", H: "g4/2", I: "e4/2", J: "c4", K: "d4",
  L: "g4", M: "g4@10 a4@3 b4@3", N: "b4@3 a4@2 g4@3 g4@3 f#4@2 e4@3", O: "g4@3 f#4", P: "g4@4 g4 f#4!2 e4",
  Q: "e4@4 e4 f#4 g4 b4", R: "f#4@2 g4 b4", S: "c5@3 d5 d5@4", T: "~@3 d5", U: "g5@12 f#5 g5 f#5 e5",
  V: "d5@8 d5 ~@2 d5 ~ d5 ~@2", W: "~@4 e5@2 d5@2 b4@3 b4@2 b4@3", X: "g4@4 ~@2 e4 d4", Y: "c4@2 ~ e4@3 g4 b4",
  Z: "b4@2 a4 b4@2 d5@3", AA: "g5", AB: "~@6 f#4 a4", AC: "b4 ~@2 b4@4 ~",
})).s("gm_alto_sax").gain(0.3)

// other · alto sax · "Alto Saxophone" · soft notes
const alto_sax_soft = note("<~@8 A@2 B@2 C D A@4 B@2 C D A ~@61>".pickRestart({
  A: "g3 ~@5 g3 ~@9", B: "e3 ~@5 e3 ~@9", C: "c4 ~@5 c4 ~@9", D: "d3 ~@5 d3 ~@9",
})).s("gm_alto_sax").gain(0.2)

// other · trumpet · "Flugelhorn"
const trumpet = note(`<
  ~@24 A B C D E F A G H@2 I@2 J K L@2 H@2 I@2 J K L ~ A B C D E F A G M N O P Q R S T U V W X Y Z AA AB A B C D E F A
  AC ~@4
>`.pickRestart({
  A: "b4 ~@2 b4@3 f#4 a4", B: "b4 ~@2 b4@3 b4 a4", C: "g4 ~@2 g4@3 f#4@2", D: "g4 ~@2 g4@3 g4 f#4",
  E: "e4 ~@2 e4@3 e4 g4", F: "f#4 ~@2 f#4@3 f#4 a4", G: "b4 ~@2 b4@3 d4 f#4", H: "g4/2", I: "e4/2", J: "c4", K: "d4",
  L: "g4", M: "g4@10 a4@3 b4@3", N: "b4@3 a4@2 g4@3 g4@3 f#4@2 e4@3", O: "g4@3 f#4", P: "g4@4 g4 f#4!2 e4",
  Q: "e4@4 e4 f#4 g4 b4", R: "f#4@2 g4 b4", S: "c5@3 d5 d5@4", T: "~@3 d5", U: "g5@12 f#5 g5 f#5 e5",
  V: "d5@8 d5 ~@2 d5 ~ d5 ~@2", W: "~@4 e5@2 d5@2 b4@3 b4@2 b4@3", X: "g4@4 ~@2 e4 d4", Y: "c4@2 ~ e4@3 g4 b4",
  Z: "b4@2 a4 b4@2 d5@3", AA: "g5", AB: "~@6 f#4 a4", AC: "b4 ~@2 b4@4 ~",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "Flugelhorn" · soft notes
const trumpet_soft = note("<~@8 A@2 B@2 C D A@4 B@2 C D A ~@61>".pickRestart({
  A: "d4 ~@5 d4 ~@9", B: "b3 ~@5 b3 ~@9", C: "g3 ~@5 g3 ~@9", D: "a3 ~@5 a3 ~@9",
})).s("gm_trumpet").gain(0.2)

// other · string ensemble 1 · "Violins"
const string_ensemble_1 = note(`<
  ~@24 A B C D E F A G H@2 I@2 J K L@2 H@2 I@2 J K L ~ A B C D E F A G M N O P Q R S@2 T U V W X Y Z AA A B C D E F A AB
  ~@4
>`.pickRestart({
  A: "b5 ~@2 b5@3 f#5 a5", B: "b5 ~@2 b5@3 b5 a5", C: "g5 ~@2 g5@3 f#5@2", D: "g5 ~@2 g5@3 g5 f#5",
  E: "e5 ~@2 e5@3 e5 g5", F: "f#5 ~@2 f#5@3 f#5 a5", G: "b5 ~@2 b5@3 d5 f#5", H: "g5/2", I: "e5/2", J: "c5", K: "d5",
  L: "g5", M: "g5@9 ~ a5@4 b5@2", N: "b5@3 a5@2 g5@3 g5@3 f#5@2 e5@3", O: "e5@11 ~ f#5@4", P: "f#5@9 ~ e5@2 b4@2 g4@2",
  Q: "e4", R: "f#4@4 a5@11 ~", S: "[a5@6 b5@2 b5@11 ~ d5@4 g5@2 ~ a5@2 b5@2 ~]/2", T: "d6@9 ~ g6@4 a6@2",
  U: "b6@3 a6@2 g6@2 ~ g6@3 f#6@2 e6@3", V: "e6@11 ~ f#6@4", W: "f#6@9 ~ e6@2 b5@2 g5@2", X: "e5@9 ~ g5@4 e5@2",
  Y: "d5@3 a5 a5@4", Z: "a5@3 b5 b5@4", AA: "a5 a4 b4 a4", AB: "b5 ~@2 b5@4 ~",
})).s("gm_string_ensemble_1").gain(0.3)

// other · string ensemble 1 · "Violins" · soft notes
const string_ensemble_1_soft = note("<~@8 A@2 B@2 C D A@4 B@2 C D A ~@61>".pickRestart({
  A: "d5 ~@5 d5 ~@9", B: "b4 ~@5 b4 ~@9", C: "g4 ~@5 g4 ~@9", D: "a4 ~@5 a4 ~@9",
})).s("gm_string_ensemble_1").gain(0.2)

// other · viola
const viola = note(`<
  ~@7 A B@2 C@2 D E F@2 G H I J D E K L M@2 N J D E F@2 B@2 C@2 D E F@2 O P I J D Q K L R@2 N J D E S@2 T U V W X Y Z@2
  T U V W X Y W L R@2 N J D E AA@2 D E AB@2
>`.pickRestart({
  A: "~@6 b3 d4", B: "[e4@5 ~ b3 d4@9]/2", C: "[~@6 g3 a3 b3@4 a3@2 g3@14 g3@2 b3@2]/2", D: "a3 g3@5 g3 b3",
  E: "a3 g3@5 g3 a3", F: "[g3@14 b3 d4]/2", G: "e4@5 ~ b3 d4", H: "d4@3 b3!2 a3 g3 a3", I: "g3@4 ~@2 g3 a3",
  J: "g3@5 ~ g3 b3", K: "g3@7 b3", L: "e4 d4 g4 f#4", M: "[e4 d4@5 c4 d4@9]/2", N: "~@4 b3@3 b3@2 b3@3 b3@2 a3@2",
  O: "e4 ~@5 b3 e4", P: "d4 e4 d4@4 b3@2 b3@2 a3@2 g3@2 a3@2", Q: "a3 g3@5 a3!2", R: "[e4 d4@5 e4 d4@9]/2",
  S: "[g3@7 ~]/2", T: "~ b3 a3 g3", U: "f#3@6 e3@2 b3@3 e4@2 g4@2 ~", V: "a4@4 b4@11 ~", W: "b4@15 ~",
  X: "~@2 g4@2 g3@2 a3 b3", Y: "a3@2 d4@2 e4@2 f#4 a4", Z: "[b4@15 ~]/2", AA: "[g3@14 g3 b3]/2", AB: "[g3@9 ~@7]/2",
})).s("gm_viola").gain(0.45)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@8 A@2 B@2 C D A@4 B@2 C D A ~ E F G H I J E@2 K@2 L@2 M N O@2 K@2 L@2 M N O ~ E F G H I J E@2 P Q H R S T U@2 V S W
  X Y Z AA AB E F G H I J E@2 ~@4
>`.pickRestart({
  A: "g3 ~", B: "e3 ~", C: "c3 ~", D: "d3 ~", E: "d4 ~@2 d4@4 ~", F: "d4 ~@2 d4@3 d4!2", G: "b3 ~@2 b3@4 ~",
  H: "b3 ~@2 b3@3 b3 a3", I: "g3 ~@2 g3@3 g3 b3", J: "a3 ~@2 a3@3 a3!2", K: "b3/2", L: "g3/2", M: "e3", N: "f#3",
  O: "b3", P: "b3 ~@2 b3@3 a3 f#3", Q: "b3 ~@2 b3@3 f#3 a3", R: "g3 ~@2 g3@3 f#3@2", S: "g3 ~@2 g3@3 g3 f#3",
  T: "e3 ~@2 e3@3 e3 g3", U: "g3 ~@2 g3@3 f#3 a3", V: "g3 ~@2 g3@3 d3 f#3", W: "e3 ~@2 e3@3 d3@2",
  X: "e3 ~@2 e3@3 e3 d3", Y: "c3 ~@2 c3@3 c3 e3", Z: "d3 ~@2 d3@3 d3 f#3", AA: "g3 ~@2 g3@3 ~@2", AB: "~@6 d4!2",
})).s("gm_tenor_sax").gain(0.4)

// bass · acoustic bass · "Double Bass"
const bass = note(`<
  A B C D E F A@3 B C D E F A@3 B C D E F A@3 B C D E F A@3 B C D E F A@3 B C D E F A@3 B C D E F A@3 B C D E F A@3 B C
  D E F A@3 B C D E F A G E F A H
>`.pickRestart({
  A: "g2 ~@2 g2@3 d2 f#2", B: "g2 ~@2 g2@3 g2 f#2", C: "e2 ~@2 e2@3 d2@2", D: "e2 ~@2 e2@3 e2 d2",
  E: "c2 ~@2 c2@3 c2 e2", F: "d2 ~@2 d2@3 d2 f#2", G: "g2 ~@2 g2@3 e2 d2", H: "g2 ~@7",
})).s("gm_acoustic_bass").gain(0.4)

stack(alto_sax, alto_sax_soft, trumpet, trumpet_soft, string_ensemble_1, string_ensemble_1_soft, viola, tenor_sax, bass)