Strudelify

bad boy leroy brown

Jim Croce

KeyF majorTempo186 bpm
0:00/0:00
// bad boy leroy brown — Jim Croce
// 186 bpm, 12/8, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3410971; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 63 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(186/6)

// 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 · "B♭ Trumpet"
const trumpet = note(`<
  A B@2 C D E F G H I@2 J K L M N@2 O@2 C D E F G H I@2 J K L M N@2 O@2 P@2 Q@2 R S T U P@2 Q@2 R S T V J K L M N@2 W X
  W X W Y
>`.pickRestart({
  A: "~@8 c4 d4@2 f4", B: "[a4@6 a4@6 f4 g4@3 g4@6 f4@4 ~@2 c4@2 c4@4 c4@2 c4@4 c4@2 c4@4 c4@2]/2",
  C: "f4@2 ~@3 f4@3 ~@3 e4", D: "f4@2 ~@3 f4@2 ~@4 f4", E: "g4@2 ~@3 g4@3 ~@3 e4", F: "f4@2 ~@3 f4@3 ~@3 g4",
  G: "a4@2 ~@3 a4@3 ~@3 a4", H: "bb4@2 ~@3 bb4@3 ~@4",
  I: "[a4@2 a4@3 ~ g4@2 g4@2 ~ f4@2 ~ c5 c5@2 c5 c5@2 c5 c5@2 c5]/2", J: "f5 ~@2 f5 ~@2", K: "a5@2 g5@2 ~ f5@3 ~@4",
  L: "g5@2 g5@2 ~ g5@3 ~ g5@2 f5", M: "a5@2 a5@2 ~ g5@3 f5 d5@2 ~",
  N: "[a5@2 a5 a5@2 a5 a5@2 a5@3 g5@3 f5 d5@3 ~@5 c4]/2",
  O: "[a4@2 a4 a4@2 a4 g4@2 g4@3 f4@3 c5 c5@2 c5 c5@2 c5 c5@2 c5]/2", P: "a4 ~ g4 f4 ~ a4@2 ~@5",
  Q: "b4 ~ a4 g4 ~ b4@2 ~@5", R: "db5 ~ db5!2 ~ db5!4 ~@2 db5", S: "d5@2 d5 d5@2 d5@3 ~@3 g4",
  T: "c5@2 c5 bb4@2 bb4 a4@2 a4@3 f4", U: "~@5 c5 ~@6", V: "~@2 c5 c5@2 c5 c5@2 c5 c5@2 c5",
  W: "a4@2 a4 a4@2 a4 g4@2 g4@3 f4", X: "~@11 c4", Y: "~@5 f5@7",
})).s("gm_trumpet").gain(0.3).pan(0.9)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note(`<
  ~ A@2 B C D E F G H@2 I J K L M@2 N@2 B C D E F G H@2 I J K L M@2 N@2 O@2 P@2 Q R S T O@2 P@2 Q R S U I J K L M@2 V W
  V W V X
>`.pickRestart({
  A: "[c5@2 c5@2 ~@2 bb4@2 bb4@2 ~ a4@2 ~@11]/2", B: "a4@2 ~@3 a4@3 ~@3 g4", C: "a4@2 ~@3 a4@3 ~@3 a4",
  D: "b4@2 ~@3 b4@3 ~@3 a4", E: "b4@2 ~@3 b4@3 ~@3 f4", F: "g4@2 ~@3 g4@3 ~@3 c5", G: "d5@2 ~@3 d5@3 ~@4",
  H: "[e4@2 e4@3 ~ d4@2 d4@2 ~ f4@2 ~ c5 c5@2 c5 c5@2 c5 c5@2 c5]/2", I: "a4 ~@2 a4 ~@2", J: "c5@2 bb4@2 ~ a4@3 ~@4",
  K: "b4@2 b4@2 ~ b4@3 ~ b4@2 c5", L: "f5@2 f5@2 ~ d5@3 f5 d5@2 ~",
  M: "[db5@2 db5 db5@2 db5 db5@2 db5@3 d5@3 f5 d5@3 ~@6]/2",
  N: "[c5@2 c5 ~@3 bb4@2 bb4 ~@2 a4@3 c4 c4@2 c4 c4@2 c4 c4@2 c4]/2", O: "f4 ~ f4!2 ~ f4@2 ~@5",
  P: "g4 ~ g4!2 ~ g4@2 ~@5", Q: "a4 ~ a4!2 ~ a4!4 ~@2 a4", R: "bb4@2 bb4 bb4@2 bb4@3 ~@3 bb4",
  S: "a4@2 a4 g4@2 g4 f4@2 f4@3 f4", T: "~@5 g4 ~@6", U: "~@2 c5 c5@2 c5 c5@2 c5 c5@2 c5",
  V: "c5@2 c5 ~@3 bb4@2 bb4 ~@2 a4", W: "~@11 c4", X: "~@5 d5@7",
})).s("gm_trumpet").gain(0.3).pan(0.9)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~ A@2 B@2 C@2 D C E@2 F@2 G@2 H I J@2 B@2 C@2 D C E@2 F@2 G@2 H I J@2 K@2 L@2 M N O P K@2 L@2 M N O ~ F@2 G@2 H I O ~
  O ~ O Q
>`.pickRestart({
  A: "[a3@2 a3@2 ~@2 bb3@2 bb3@2 ~ c4@2 ~@11]/2", B: "c4@2 ~@3 c4@3 ~@4", C: "d4@2 ~@3 d4@3 ~@4",
  D: "e4@2 ~@3 e4@3 ~@4", E: "[c4@2 c4@3 ~ c4@2 c4@2 ~ c4@2 ~@11]/2", F: "f4@4 ~@2 d4@3 ~@3 c4@4 ~@2 d4@3 ~@3",
  G: "g4@4 ~@2 e4@3 ~@3 d4@4 ~@2 e4@3 ~@3", H: "a4 gb4 e4 gb4", I: "f4 ~ f4!2 ~ f4@2 ~@5",
  J: "[c4@2 c4 ~@3 c4@2 c4 ~@2 c4@3 ~ bb3@2 ~ bb3@2 ~ bb3@2 ~]/2", K: "f4 ~ f4 e4 ~ f4@2 ~@5",
  L: "g4 ~ g4 f4 ~ g4@2 ~@5", M: "e4 ~ e4!2 ~ e4!4 ~@3", N: "f4@2 f4 f4@2 f4@3 ~@4", O: "c4@2 c4 ~@3 c4@2 c4 ~@2 c4",
  P: "~@5 e4 ~@6", Q: "~@5 a3@7",
})).s("gm_tenor_sax").gain(0.3).pan(0.1)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax_2 = note(`<
  ~ A@2 B C D@2 E F G@2 H I J@2 K L M@2 B C D@2 E F G@2 H I J@2 K L M@2 N@2 O@2 P Q R S N@2 O@2 P Q R ~ H I J@2 K L R ~
  R ~ R T
>`.pickRestart({
  A: "[d4@2 d4@2 ~@2 d4@2 d4@2 ~ d4@2 ~@11]/2", B: "a3@2 ~@3 g3@3 ~@4", C: "a3@2 ~@3 a3@3 ~@4", D: "b3@2 ~@3 b3@3 ~@4",
  E: "db4@2 ~@3 db4@3 ~@4", F: "bb3@2 ~@3 bb3@3 ~@4", G: "[a3@2 a3@3 ~ g3@2 g3@2 ~ a3@2 ~@11]/2",
  H: "f3@4 ~@2 a3@3 ~@3 c4@3 ~@3 d4@3 ~@3", I: "f3@4 ~@2 a3@3 ~@3 c4@4 ~@2 d4@3 ~@3",
  J: "g3@4 ~@2 b3@3 ~@3 d4@4 ~@2 e4@3 ~@3", K: "a3 db4 e4 gb4", L: "d4 ~ d4!2 ~ d4@2 ~@5",
  M: "[e4@2 e4 ~@3 d4@2 d4 ~@2 d4@3 ~ bb3@2 ~ bb3@2 ~ bb3@2 ~]/2", N: "a3 ~ c4!2 ~ c4@2 ~@5", O: "b3 ~ d4!2 ~ d4@2 ~@5",
  P: "e4 ~ e4!2 ~ e4!4 ~@3", Q: "f4@2 f4 f4@2 f4@3 ~@4", R: "e4@2 e4 ~@3 d4@2 d4 ~@2 d4", S: "~@5 c4 ~@6",
  T: "~@5 e4@7",
})).s("gm_tenor_sax").gain(0.3).pan(0.1)

// other · tuba · "Euphonium"
const tuba = note(`<
  ~ A@2 B@2 C D E F G@2 H@2 I@2 J K L@2 B@2 C D E F G@2 H@2 I@2 J K L@2 M@2 N@2 O P Q R M@2 N@2 O P Q ~ H@2 I@2 J K Q S
  Q S Q T
>`.pickRestart({
  A: "[f3@2 f3@2 ~@2 c4@2 c4@2 ~ f3@2 ~@7 c3 d3@2 c3]/2", B: "f2@2 ~@3 f2@2 ~ c3 d3@2 c3",
  C: "g2@2 ~@3 g2@2 ~ c3 d3@2 c3", D: "g3@2 ~@3 g3@2 ~ c3 d3@2 c3", E: "a3@2 ~@3 a3@2 ~ db3 d3@2 db3",
  F: "bb3@2 ~@3 bb3@2 ~ c3 d3@2 c3", G: "[f3@2 f3@3 ~ e3@2 e3@3 f3@2 ~@11]/2", H: "f3 ~ f3 a3 ~ a3 c4 ~ c4 a3 ~ c4",
  I: "g3 ~ g3 b3 ~ b3 d4 ~ d4 b3 ~ d4", J: "a3 ~ a3 db4 ~ db4 e4 ~ e4 db4 ~ e4", K: "d4 ~ d4 c4 ~ d4@2 ~ c3 d3@2 c3",
  L: "[bb3@2 bb3 ~@3 bb3@2 bb3 ~@2 f3@3 ~ e3@2 ~ e3@2 ~ e3@2 ~]/2", M: "c4@2 c4 c4@2 a3@3 ~@4",
  N: "d4@2 d4 d4@2 b3@3 ~@4", O: "a3 ~ a3!2 ~ a3!4 ~@3", P: "bb3@2 bb3 bb3@2 bb3@3 ~@4",
  Q: "bb3@2 bb3 ~@3 bb3@2 bb3 ~@2 f3", R: "~@5 g3 ~@6", S: "~@8 c3 d3@2 c3", T: "~@5 a3@7",
})).s("gm_tuba").gain(0.3).pan(0.2)

// bass · tuba
const bass = note(`<
  ~ A@2 B@2 C@2 D E F@2 G@2 H@2 I J K@2 B@2 C@2 D E F@2 G@2 H@2 I J K@2 L@2 M@2 N O P Q L@2 M@2 N O P R G@2 H@2 S J T U
  T U T V
>`.pickRestart({
  A: "[f3@2 f3@2 ~@2 c3@2 c3@2 ~ f2@2 ~@7 c2 d2@2 c2]/2", B: "f2@2 ~@3 f2@2 ~ c2 d2@2 c2",
  C: "g2@2 ~@3 g2@2 ~ c2 d2@2 c2", D: "a2@2 ~@3 a2@2 ~ db2 d2@2 db2", E: "bb2@2 ~@3 bb2@2 ~ c2 d2@2 c2",
  F: "[c3@2 c3@3 ~ c3@2 c3@3 f2@2 ~ c2 c2@2 c2 c2@2 c2 c2@2 c2]/2", G: "f2@3 a2@3 c3@2 c3 d3@2 c3",
  H: "g2@3 b2@3 d3@2 d3 e3@2 d3", I: "a2@3 db3@3 e3@2 e3 gb3@2 e3", J: "bb2@2 bb2 a2@2 bb2@2 ~ c2 d2@2 c2",
  K: "[c2@2 c2 ~@3 g2@2 g2 ~@2 f2@3 ~ c3@2 ~ c3@2 ~ c3@2 ~]/2", L: "f2@3 a2@3 c3@3 d3@2 c3",
  M: "g2@3 b2@3 d3@3 e3@2 d3", N: "a2@3 db3@3 e3@3 gb3@2 e3", O: "bb1@3 d2@3 f2@3 g2@2 f2",
  P: "f2@2 f2 ~@3 g2@2 g2 ~@2 f2", Q: "~@5 c3 ~@6", R: "~@2 c2 c2@2 c2 c2@2 c2 c2@2 c2",
  S: "a2@2 ~ db3@3 e3@2 e3 gb3@2 e3", T: "c2@2 c2 ~@3 g2@2 g2 ~@2 f2", U: "~@8 c3 d3@2 c3", V: "~@5 f2@7",
})).s("gm_tuba").gain(0.3)

stack(trumpet, trumpet_2, tenor_sax, tenor_sax_2, tuba, bass)

More by Jim Croce