Strudelify

Band of Gold

Freda Payne

KeyG majorTempo108 bpm
0:00/0:00
// Band of Gold — Freda Payne
// 108 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 79 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(108/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// bass · electric bass pick
const bass = note(`<
  ~ A@4 B@2 C@2 D@2 E@2 F@2 B@2 C@2 D@2 E@2 F@2 B@2 C@2 D@2 E@2 F@2 B@2 C@2 D@2 E@2 F@2 B@2 C@2 D@2 A@4 B@2 C@2 D@2 E@2
  F@2 B@2 C@2 D@2 E@2 F@2 B@2 G@2
>`.pickRestart({
  A: "g1 g2 f2 d2@2 c2@2 g#1", B: "[g2@2 f#2@2 e2@2 d2@4 b1@2 g1@2 g2@4 f#2@4 d2@4 b1@2 g1@2 d2 e2]/2",
  C: "[f#2 e2 d2 d2@2 a1 f#1 f#2@2 e2@2 d2@2 a1 f#1@2]/2", D: "[b1 a1 g1 g1@2 e1 g1 b1@2 a1@2 g1@2 e1 g1 a1]/2",
  E: "[b1@3 ~ b1@4 ~@2 b1@2 b1@2 c2@4 b1@4 a1@4 g1@2 a1@2 a#1@2]/2",
  F: "[b1@3 ~ b1@4 ~@2 c2@2 c#2@2 d2@4 d2@4 d2@4 d2@2 d2@2 e2 f#2]/2", G: "[f#2 e2 d2 d2@2 a1 f#1 f#2@2 ~@7]/2",
})).s("gm_electric_bass_pick").gain(0.52)

// other · lead 5 charang
const lead_5_charang = note(`<
  ~@3 A@2 B@2 ~@8 B@2 ~@8 B@2 ~@8 B@2 ~@8 C@2 D E F G H ~ A@2 C@2 D E F G I J K J C@2 D E F G I J K J C@2 D ~
>`.pickRestart({
  A: "g2 g3 f3 d3@2 c3@2 g#2", B: "b3 a3 g3 g3@2 ~@3", C: "[a3!2 g3 g3@2 ~@2 b3@2 a3 g3 g3@2 ~ g3!2]/2",
  D: "a3 g3 f#3 f#3@2 ~@3", E: "a3 g3 f#3 f#3@2 ~ d3!2", F: "e3 g3!2 g3@2 ~ g3!2", G: "g3 a3 b3 d3@2 ~ d3!2",
  H: "d3 ~@3", I: "d3!3 d3@2 ~ d3!2", J: "e3 g3@2 g3@2 a3 g3 e3", K: "d3 b3!2 ~@3 d3!2",
})).s("gm_lead_5_charang").gain(0.5).pan(1)

// other · lead 5 charang
const lead_5_charang_2 = note("<~@3 A@2 B@2 ~@8 B@2 ~@8 B@2 ~@8 B@2 ~@8 C@2 D E F G H ~ A@2 ~@24>".pickRestart({
  A: "g2 g3 f3 d3@2 c3@2 g#2", B: "b3 a3 g3 g3@2 ~@3", C: "[a3!2 g3 g3@2 ~@2 b3@2 a3 g3 g3@2 ~ g3!2]/2",
  D: "a3 g3 f#3 f#3@2 ~@3", E: "a3 g3 f#3 f#3@2 ~ d3!2", F: "e3 g3!2 g3@2 ~ g3!2", G: "g3 a3 b3 d3@2 ~ d3!2",
  H: "d3 ~@3",
})).s("gm_lead_5_charang").gain(0.5).pan(0)

// chords · banjo · G
const banjo = note(`<
  ~@3
  [[b3,d4,g4] ~@2 [b3,d4,g4]!2 ~@3 [b3,d4,g4] ~@2 [b3,d4,g4]!2 ~@3]
  [[b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~@3 [b3,d4,g4] ~@2 [b3,d4,g4]!2 ~@3]
  ~@48
  [[b3,d4,g4] ~@2 [b3,d4,g4]!2 ~@3 [b3,d4,g4] ~@2 [b3,d4,g4]!2 ~@3]
  [[b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~@3 [b3,d4,g4] ~@2 [b3,d4,g4]!2 ~@3]
  ~@24
>`).s("gm_banjo").gain(0.19).pan(0.7)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@5 A@2 B@2 C@2 D E D F A@2 B@2 C@2 D E D F A@2 B@2 C@2 D E D F A@2 B@2 C@2 D E D F A@2 B@2 C@2 ~@4 A@2 B@2 C@2 D E D
  F A@2 B@2 C@2 D E D F A@2 B ~
>`.pickRestart({
  A: "[b3,d4,g4] ~ [b3,d4,g4]!3 ~ [b3,d4,g4]!3 ~ [b3,d4,g4]!3 ~ [b3,d4,g4]!2", // G
  B: "[a3,d4,f#4] ~ [a3,d4,f#4]!3 ~ [a3,d4,f#4]!3 ~ [a3,d4,f#4]!3 ~ [a3,d4,f#4]!2", // D
  C: "[g3,c4,e4] ~ [g3,c4,e4]!3 ~ [g3,c4,e4]!3 ~ [g3,c4,e4]!3 ~ [g3,c4,e4]!2", // C
  D: "[b3,d4,g4] ~ [b3,d4,g4]!3 ~ [b3,d4,g4]!3 ~ [b3,d4,g4]!3 ~ [c4,e4,g4]!2", // G C
  E: "[c4,e4,g4] ~ [b3,d4,g4]!3 ~ [c4,e4,g4]!3 ~ [c4,e4,g4]!3 ~ [c4,e4,g4]!2", // C G C
  F: "[c4,e4,g4] ~ [c4,e4,g4]!3 ~ [c4,e4,g4]!3 ~ [c4,e4,g4]!3 ~ [c4,e4,g4]!2", // C
})).s("gm_electric_guitar_clean").gain(0.19).pan(0)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@5 A B C@2 D E F@4 A B C@2 D E F@4 G H I@2 J K L@4 G H I@2 J K L@4 G H I@2 J K ~@4 A B C@2 D E F@4 A B C@2 D E F@4 A
  B M@2
>`.pickRestart({
  A: "g5 ~ g5@3 d5!2 g5", B: "~ g5 ~ g5 ~ f#5 d5!2", C: "[~@2 d5@2 ~ d5!2 f#5@2 e5@2 d5@2 e5 f#5@2]/2",
  D: "e5@2 e5@2 ~ e5 g5 b5", E: "~ a5@2 g5@2 a5 g5@2", F: "[b5 ~ b5@3 b5!2 a5@2 g5@2 g5@2 a5 g5@2]/2",
  G: "d6 ~ d6@3 d6!2 g6", H: "~ f#6 ~ g6 ~ f#6 d6 b5",
  I: "[[d5,d6]@3 ~ d6@4 ~@2 d6@2 d6@2 f#6@4 e6@4 d6@4 e6@2 f#6@4]/2", J: "e6@2 e6@2 ~ e6 g6 b6",
  K: "~ a6@2 g6@2 a6 g6@2", L: "[b6 ~ b6@3 b6!2 a6@2 g6@2 g6@2 a6 g6@2]/2", M: "[~@2 d5@2 ~ d5!2 f#5@2 ~@7]/2",
})).s("gm_string_ensemble_1").gain(0.25).pan(1)

// other · string ensemble 1
const string_ensemble_1_2 = note(`<
  ~@5 A B C@2 D E F@2 G@2 A B C@2 H I F@2 G@2 J K L@2 M N O@4 J K L@2 M N O@4 J K L@2 M N ~@4 A B C@2 H I F@2 G@2 A B
  C@2 H I F@2 G@2 A B P@2
>`.pickRestart({
  A: "g4 ~ g4@3 d4!2 g4", B: "~ g4 ~ g4 ~ f#4 d4!2", C: "[~@2 d4@2 ~ d4!2 f#4@2 e4@2 d4@2 e4 f#4@2]/2",
  D: "g4@2 g4@2 ~ e4 g4 b4", E: "~ a4@2 c5@2 a4 g4@2", F: "[g4 ~ g4@3 g4!2 a4@2 g4@2 g4@2 a4 g4@2]/2",
  G: "[g4 ~ g4@3 b4!2 d4@2 e4@2 d4@2 e4 d4@2]/2", H: "e4@2 e4@2 ~ e4 g4 b4", I: "~ a4@2 g4@2 a4 g4@2",
  J: "d5 ~ d5@3 d5!2 g5", K: "~ f#5 ~ g5 ~ f#5 d5 b4", L: "[~@2 d5@2 ~ d5!2 f#5@2 e5@2 d5@2 e5 f#5@2]/2",
  M: "e5@2 e5@2 ~ e5 g5 b5", N: "~ a5@2 g5@2 a5 g5@2", O: "[b5 ~ b5@3 b5!2 a5@2 g5@2 g5@2 a5 g5@2]/2",
  P: "[~@2 d4@2 ~ d4!2 f#4@2 ~@7]/2",
})).s("gm_string_ensemble_1").gain(0.25).pan(0)

// other · trumpet
const trumpet = note("<~@46 d5 [d5 ~@3 d5@8 ~@4] d5 ~@25 d4 ~@4>").s("gm_trumpet").gain(0.1).pan(1)

// other · trombone
const trombone = note("<~@46 d3 [d3 ~@3 d3@8 ~@4] d3 ~@25 d3 ~@4>").s("gm_trombone").gain(0.1).pan(0)

// other · electric guitar muted
const electric_guitar_muted = note("<~@51 [g2 g3 f3 d3@2 c3@2 g#2]!4 ~@24>")
  .s("gm_electric_guitar_muted").gain(0.19).pan(0)

// drums · kick
const kick = s("bd").struct("<~@5 [x!4]!46 ~@4 [x!4]!23 ~>").gain(0.78)

// drums · snare
const snare = s("sd").struct("<A B@3 C B@9 D B@9 D B@9 D B@9 D B@9 C B@9 D B@9 D B@3 ~>".pickRestart({
  A: "~@14 x!2", B: "x!4", C: "x ~@3 x ~@3 x!2 ~ x!2 ~ x ~", D: "x ~@3 x ~@2 x!9",
})).gain(0.78)

// drums · hihat
const hihat = s("hh").struct("<~ A@3 B A@9 C A@9 C A@9 C A@9 C A@9 B A@9 C A@9 C A@3 ~>".pickRestart({
  A: "x!4", B: "x ~ x!2", C: "x!2 ~@2",
})).gain(0.78)

// drums · open hat
const open_hat = s("oh").struct("<~@4 [~ x ~@2] ~@49 [~ x ~@2] ~@24>").gain(0.78)

// drums · tambourine
const tambourine = s("tb").struct("<~ [x!8]!77 ~>").gain(0.78)

stack(
  bass, lead_5_charang, lead_5_charang_2, banjo, electric_guitar_clean, string_ensemble_1, string_ensemble_1_2, trumpet,
  trombone, electric_guitar_muted, kick, snare, hihat, open_hat, tambourine
)