Strudelify

What Kind Of Man Would I Be?

Chicago

KeyC majorTempo94 bpm
0:00/0:00
// What Kind Of Man Would I Be? — Chicago
// 94 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 104 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(94/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.

// chords · piano · "tk1"
const piano = note(`<
  A@4 B C D E F G H I B C D E F J K L M N O P Q R S T U V@2 B C D E F G H I B C D E F J K L M N O P Q R S T U W X Y Z AA
  X Y AB AC M N O P Q R S T U W M N O P Q R S T AD@16 AE@2 ~@3
>`.pickRestart({
  A: "[~@2 f3@2 g3@2 f3@2 e4@3 c4 c4@3 ~@3 f3@2 g3@2 f3@2 c4@3 g3 ~@2 c2@2, [f2,f4,g4,c5]@15 g3@3 ~@10 g3@4, ~ [f4,g4,c5], ~@8 f2@4 f2@3 ~]/2", // Fsus2
  B: "[d4,g4] c4 [d4,g4] c4 [d4,g4] c4 [d4,g4] c4, c2", C: "[d4,g4] c4 [d4,g4] c4 [d4,g4] c4 [d4,g4] c4, e2",
  D: "[d4,g4] c4 [d4,g4] c4 [d4,g4] c4 [d4,g4] c4, f2", E: "[d4,g4] c4 [d4,g4] c4 [d4,g4] b3 [d4,g4] b3, g2 f2",
  F: "[g4,b4] d4 [g4,b4] d4 [g4,b4] d4 [g4,d5] d4, e2", G: "[g4,c5] c4 [g4,d5] c4 [g4,c5] c4!3, a2",
  H: "~ a#3 f4 c4 [d4,f4] c4 a3 a#3, a#2", I: "~ c4 d4 g4 [b3,d4]@4, g2",
  J: "[g4,c5] c4 [g4,d5] c4 [g4,c5] d4 e4 c4, a2", K: "a#2@3 a#2 a#2@4, [a#3,c4,f4]",
  L: "g2@6 g2@2 g2@3 ~ [e4,g4,b4,e5]@2 [g2,f4,a4,f5]@2, d4, [g3,c4] [g3,b3], ~@11 g2@3 ~@2", // Em Dm C5 G
  M: "c4@2 ~ c2 c4@2 ~ f2, [g3,e4,g4] [a3,e4,g4], c2@3 ~ f2@3 ~, ~ c4 ~ c4", // C A7
  N: "c4@2 ~ g2 c4@2 c4@2, [d4,g4] ~, g2@3 ~ [f2,a3,f4,g4]@4, ~ c4 ~@2", // G5 F
  O: "c4@2 ~ e2 c4@2 ~ a2, [e4,g4] [f4,a4], e2@3 ~ a2@3 ~, ~ c4 ~ c4", // Em F
  P: "~@3 d2 ~@3 g2, [c4,d4,g4] [b3,d4,g4], g2@3 ~ g2@3 ~, ~ g3 ~ c4", Q: "c2@3 c2 d2@3 d2, [g3,c4,e4] [a3,c4,f4]",
  R: "e2@6 e2@2 f#2@2 f#2@3 ~ f#2@2, [c4,e4,g4] [c4,d4,f#4,a4]", // C D7
  S: "g2@2 g2@2 g2@2 g2@2 g2@2 g2@3 ~ g2@2, [c4,d4,e4,g4]", T: "g2!8, [c4,d4,f#4,a4]",
  U: "[f2,f4,g4,a4,c5]@4 [f2,f4,g4,a4,c5]@3 [c2,c4,d4,e4,g4]", V: "[[c2,c4,d4,e4,g4]@3 ~]/2", W: "[c2,c4,d4,e4,g4]",
  X: "a#2!8, [a#3,d4,f4]", Y: "g2!8, [a#3,d4,f4,a4]", Z: "[c3,c4,e4,g4]@3 [c4,f4,g4] [f3,c4,f4,g4,c5]@4",
  AA: "[c4,g4]@3 [c4,f4,g4] [f3,c4,f4,g4,c5]@4, [c3,e4] ~", AB: "~@3 [g2,d4,g4,b4] [g2,d4,g4,b4,d5]@4, [f2,f4,a4,c5] ~",
  AC: "[f2,f4,a4,c5]@3 [g2,d4,g4,b4] [g2,d4,g4,b4,d5]@2 [e2,e3,e4,g4,b4,e5] [f2,f3,f4,a4,f5]", // F G Em F
  AD: "[~@2 f3@2 g3@2 f3@2 e4@3 c4 c4@2 ~@4 f3@2 g3@2 f3@2 c4@3 g3 ~@2 c2@2, [f2,f4,g4,c5]@15 g3@3 ~@10 g3@4, ~ [f4,g4,c5], ~@8 f2@4 f2@3 ~]/2", // Fsus2
  AE: "[~@2 f3@2 g3@2 f3@2 e4@3 c4 c4@2 ~ g3@3 ~@14, [f2,f4,g4,c5] ~]/2", // Fsus2
})).s("gm_piano").gain(0.5)

// bass · fretless bass · "tk2"
const bass = note(`<
  A@4 B C A D C E F G B C A D C E F G H I J K L M N O P Q@2 R C A D C E F G B C A D C E F G H I J K L M N O S@2 T U V@2
  T U W X H I J K L M N O S@2 H I J K L M N O A@17 ~@4
>`.pickRestart({
  A: "f2@3 f2 f2@3 ~", B: "c2@3 c2 c2@3 ~", C: "e2@3 e2 e2@3 ~", D: "g2@3 g2 f2@3 ~", E: "a2@3 a2 a2@3 ~",
  F: "a#2@3 a#2 a#2@3 ~", G: "g2@6 g2@2 g2@2 d3 e3 d3@2 d2@2", H: "c2@3 c2 f2 f2@2 c3", I: "g2@3 g2 f2 f2@2 c3",
  J: "e2@3 e2 a2 a2@2 c3", K: "g2@3 g2!2 g2@2 d3", L: "c2@3 c2 d2 d2@2 a2", M: "e2@3 e2 f#2 f#2@2 a2",
  N: "g2@3 g2!2 g2@2 g3", O: "g2@3 g2!2 g2@2 a2", P: "f2@3 f2 f2@3 c2", Q: "[c2@9 ~@7]/2", R: "c2@3 c2 c2@4",
  S: "[f2@3 f2 f2@3 c2@4 c2 c2@3 ~]/2", T: "a#1@3 a#1!2 a#1@2 f2", U: "g1@3 g1!2 g1@2 d2", V: "c2@5 ~ e2@2 f2@6 d2@2",
  W: "f2@3 g2!2 f2@2 d3", X: "f2@6 g2@2 g2@2 b2 d3 g3@2 d2@2",
})).s("gm_fretless_bass").gain(0.4)

// other · tremolo strings · "tk5"
const tremolo_strings = note(`<
  A@4 ~@8 A@2 B A C D E ~@9 F G H ~@8 A@2 B A C D E ~@9 F G ~@2 I@2 ~@12 F G ~@8 A@17 ~@4
>`.pickRestart({
  A: "c5!16", B: "f5!16", C: "e5!16", D: "a5!16", E: "a#5!16", F: "c5!14 c5@2", G: "~ c5!15", H: "c5 ~@15",
  I: "[c4,e5] ~ [c4,e5]@2 ~@4", // C
})).s("gm_tremolo_strings").gain(0.25)

// other · pad new age · "tk5"
const pad_new_age = note("<~@11 A ~@7 A ~@18 A ~@7 A ~@17 B ~@39>".pickRestart({
  A: "f5!8 g5 b4 d5 g5 b5 d6 g6 g5", B: "d5!8 e5 g4 b4 e5 b5 d6 g6 g5",
})).s("gm_pad_new_age").gain(0.15)

// other · string ensemble 1 · "tk5"
const string_ensemble_1 = note(`<
  ~@20 A B A C D E F G@8 ~@12 A B A C D H@2 I@8 ~ J ~ A B A C D K F ~@3 A B A C D K F ~@22
>`.pickRestart({
  A: "e5 a5", B: "b5 a5", C: "e5 b5", D: "e5 f5", E: "e5 f#5", F: "e5", G: "f#5/8", H: "[e5 ~ e5@2, ~ f#5@3]/2",
  I: "[~@3 d6 ~@3 d6, f#5, ~ a#5]/8", J: "f5 ~", K: "e5 ~",
})).s("gm_string_ensemble_1").gain(0.25)

// chords · acoustic guitar steel · "tk6"
const acoustic_guitar_steel = note(`<
  A@4 ~@7 B C@2 D E F G H B ~@8 I@2 ~@8 B C@2 D E F G H B ~@8 J@2 ~@2 K@2 ~@3 L ~@8 J@2 ~@8 A@17 ~@4
>`.pickRestart({
  A: "~@7 c4, e3, ~ g3@2 g3@3 g3@2, ~@2 c4@3 c4@2 ~, ~@8 e4@7 ~",
  B: "~@3 c4 ~@3 b4, a3@2 ~ g4, ~ c4@2 ~ b3@4, ~@2 f4@2 ~ d4@3",
  C: "~@7 c4, d3, ~ g3@2 g3@3 g3@2, ~@2 c4@3 c4@2 ~, ~@8 d4@7 ~",
  D: "~@7 f4, a3, ~ e4@2 e4@3 e4@2, ~@2 f4@3 f4@2 ~, ~@8 a4@7 ~",
  E: "~@3 g3 c4 ~@2 c4, d3 [d3,d4], ~ g3@2 ~ g3@2 g3@2, ~@2 c4@2 ~ c4@2 ~", // D
  F: "~@7 e4, g3, ~ b3@2 b3@3 b3@2, ~@2 e4@3 e4@2 ~, ~@8 g4@7 ~",
  G: "~@7 a4, c4, ~ e4@2 e4@3 e4@2, ~@2 a4@3 a4@2 ~, ~@8 c5@7 ~",
  H: "~@7 a#4, d4, ~ f4@2 f4@3 f4@2, ~@2 a#4@3 a#4@2 ~, ~@8 d5@7 ~",
  I: "[~@7 e3@9, e3@7 ~@9, ~ g3@2 g3@3 g3@2 ~@8, ~@2 c4@3 c4@2 ~@9, ~@8 e4@7 ~@17]/2",
  J: "[~@15 c4, e3@7 e3@9, ~ g3@2 g3@3 g3@2 ~ g3@2 g3@3 g3@2, ~@2 c4@3 c4@2 ~@3 c4@3 c4@2 ~, ~@8 e4@7 ~@9 e4@7 ~]/2",
  K: "[c2@8 ~@3 [f2,f4]@2 [f3,f5] ~ [a3,a5] c2@8 ~@3 [f2,f4]@2 ~@2 [a3,a5], ~ d2 ~@2, ~@9 f3@4 ~ [f3,f5]@16 ~@2]/2", // F A F A F
  L: "~@3 a3 ~ b3 ~ b4, f#3@2 g3 ~, ~ a3@2 ~@3 [b3,d4,g4]@2, ~ d4 ~@2", // G
})).s("gm_acoustic_guitar_steel").gain(0.35)

// chords · lead 5 charang · "tk6"
const lead_5_charang = note(`<
  ~@20 A B A C D E F G ~@19 A B A C D E F G ~@2 H I ~@2 H J K ~ A B A C D E F G ~@2 A B A C D E F G ~@21
>`.pickRestart({
  A: "[g3,c4,e4]!4 [c4,f4,a4]!3 [c4,a4]", B: "[d4,g4,b4]!4 [c4,f4,a4]!3 [c4,a4]",
  C: "[g3,c4,e4]!4 [d4,g4,b4]!3 [d4,b4]", D: "[g3,c4,e4]!4 [a3,d4,f4]!3 [a3,f4]",
  E: "[g3,c4,e4]!4 [a3,d4,f#4]!3 [a3,f#4]", F: "[g3,c4,e4]!7 [g3,e4]", G: "[a3,d4,f#4]!7 [a3,f#4]",
  H: "[f4,a#4,d5]!7 [f4,d5]", I: "[d4,g4,a#4,f5]!7 [d4,a#4,a5]", J: "[d4,g4,a#4]!7 [d4,a#4]",
  K: "[a3,d4,f#4]!4 [b3,e4,g4]!3 [b3,g4]", // D Em
})).s("gm_lead_5_charang").gain(0.2)

// chords · epiano2 · "tk7"
const epiano2 = note("<~@4 A@2 B A C D E ~@20 A@2 B A C D E ~@66>".pickRestart({
  A: "~ [d3,g3,c4,e4] ~ [d3,g3,c4,e4]", B: "~ [c4,f4,g4,a4] ~ [c4,f4,g4,a4]", C: "~ [b3,d4,e4,g4] ~ [b3,d4,e4,g4]",
  D: "~ [e4,a4,c5,g5] ~ [e4,a4,c5,g5]", E: "~ [f4,a#4,c5,d5] ~ [f4,a#4,c5,d5]",
})).s("gm_epiano2").gain(0.3)

// other · tremolo strings · "tk11"
const tremolo_strings_2 = note(`<
  A@4 ~@8 A@2 B A C D E ~@9 F G H ~@8 A@2 B A C D E ~@9 F G ~@2 I@2 ~@12 F G ~@8 A@17 ~@4
>`.pickRestart({
  A: "c3!16", B: "f3!16", C: "e3!16", D: "a3!16", E: "a#3!16", F: "c3!14 c3@2", G: "~ c3!15", H: "c3 ~@15",
  I: "[c2,e3] ~ [c2,e3]@2 ~@4", // C
})).s("gm_tremolo_strings").gain(0.4).pan(0.4)

// other · pad new age · "tk11"
const pad_new_age_2 = note("<~@11 A ~@7 A ~@18 A ~@7 A ~@17 B ~@39>".pickRestart({
  A: "f3!8 g3 b2 d3 g3 b3 d4 g4 g3", B: "d3!8 e3 g2 b2 e3 b3 d4 g4 g3",
})).s("gm_pad_new_age").gain(0.24).pan(0.4)

// other · string ensemble 1 · "tk11"
const string_ensemble_1_2 = note(`<
  ~@20 A B A C D E F G@8 ~@12 A B A C D H@2 I@8 ~ J ~ A B A C D K F ~@3 A B A C D K F ~@22
>`.pickRestart({
  A: "e3 a3", B: "b3 a3", C: "e3 b3", D: "e3 f3", E: "e3 f#3", F: "e3", G: "f#3/8", H: "[e3 ~ e3@2, ~ f#3@3]/2",
  I: "[~@3 d4 ~@3 d4, f#3, ~ a#3]/8", J: "f3 ~", K: "e3 ~",
})).s("gm_string_ensemble_1").gain(0.4).pan(0.4)

// drums · kick
const kick = s("bd").struct("<A@11 B A@7 B A@9 ~@2 A@7 B A@7 B A@9 C A@2 D@2 A@3 B A@9 C A@25 ~@4>".pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x!2", C: "~@3 x!2 ~@2 x", D: "x ~@5 x ~ x ~@5 x!2",
})).gain(0.36)

// drums · rim
const rim = s("rim").struct("<A@11 B A@7 B ~@8 A ~@2 A@7 B A@7 B ~@8 A@2 ~@7 B ~@8 A@2 ~@8 A@17 ~@4>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.36)

// drums · snare
const snare = s("sd").struct("<~@20 A@8 ~@19 A@8 ~@2 A@2 ~@2 A@3 ~ A@8 ~@2 A@8 ~@21>".pickRestart({
  A: "~ x ~ x",
})).gain(0.36)

// drums · low tom
const low_tom = s("lt").struct("<~@11 A ~@7 A ~@18 A ~@7 A ~@12 B@2 ~@3 A ~@39>".pickRestart({
  A: "~@12 x!4", B: "~@12 x!3 ~",
})).gain(0.2)

// drums · hihat
const hihat = s("hh").struct(`<
  A@11 B A@7 B ~@8 A ~@2 A@7 B A@7 B ~@8 A C ~@2 D@2 ~@3 B ~@8 A C ~@8 A@17 ~@4
>`.pickRestart({
  A: "x!8", B: "x!3 ~ x ~@3", C: "~ x!7", D: "~@3 x ~@12",
})).gain(0.28)

// drums · mid tom
const mid_tom = s("mt").struct("<~@11 A ~@7 A ~@18 A ~@7 A ~@12 A@2 ~@3 A ~@39>".pickRestart({
  A: "~@10 x!2 ~@4",
})).gain(0.2)

// drums · open hat
const open_hat = s("oh").struct("<~@11 A ~@7 A ~@18 A ~@7 A ~@12 B@2 ~@3 A ~@39>".pickRestart({
  A: "~@3 x ~@4", B: "x!2 ~@2",
})).gain(0.32)

// drums · high tom
const high_tom = s("ht").struct("<~@59 [~@6 x ~ x!2 ~@6]!2 ~@43>").gain(0.36)

// drums · crash
const crash = s("cr").struct("<~@11 A ~@7 A ~@9 B ~@8 A ~@7 A ~@17 A ~@39>".pickRestart({
  A: "~ x", B: "x",
})).gain(0.2)

// drums · ride
const ride = s("rd").struct("<~@20 A@8 ~@19 A@8 ~@2 A@2 ~@2 A@3 ~ A@8 ~@2 A@8 ~@21>".pickRestart({
  A: "x!8",
})).gain(0.28)

// drums · tambourine
const tambourine = s("tb").struct("<~@20 A@8 ~@19 A@8 ~@2 A@2 ~@2 A@3 ~ A@8 ~@2 A@8 ~@21>".pickRestart({
  A: "~@3 x",
})).gain(0.4)

stack(
  piano, bass, tremolo_strings, pad_new_age, string_ensemble_1, acoustic_guitar_steel, lead_5_charang, epiano2,
  tremolo_strings_2, pad_new_age_2, string_ensemble_1_2, kick, rim, snare, low_tom, hihat, mid_tom, open_hat, high_tom,
  crash, ride, tambourine
)

More by Chicago