Strudelify

This Girl - The Kungs for Pep band

Jack Powers

KeyB♭ majorTempo130 bpm
0:00/0:00
// This Girl - The Kungs for Pep band — Jack Powers
// 130 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3920761; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 38 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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.

// other · clarinet · "B♭ Clarinet"
const clarinet = note("<~@4 A@10 ~@2 B C D C E F E ~@5 G H G H G H G H I J>".pickRestart({
  A: "[f4@4 ~@4 eb5@2 c5@2 ~@2 g4@8 ~ g4 f4 ~ eb4@2 bb3 c4 eb4@2]/2", B: "f5@2 ~@2 f5@2 ~@2 f5 ~ f5 ~ f5 ~ eb5@2",
  C: "~@4 f5 ~ f5 ~ g5@2 eb5 ~ f5@4", D: "f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ eb5@2", E: "~@3 f4!2 c4@3",
  F: "~@3 c4 f4 bb4 g4 ~", G: "f4@2 ~@2 c5 ~ f4@2 f4 ~ f4 ~ f4 ~ eb4@2", H: "~@4 f4 ~ f4 ~ g4@2 eb4 ~ f4@4",
  I: "f5@2 ~@6 f5 ~ f5 ~ f5 ~ eb5@2", J: "~@4 f4 ~ f4 ~ g4@2 bb4 ~ c5@2 ~@2",
})).s("gm_clarinet").gain(0.45)

// other · clarinet · "B♭ Clarinet" · soft notes
const clarinet_soft = note("<~@23 A B@2 C@2 ~@10>".pickRestart({
  A: "~@3 c4 f4 bb4 g4 ~", B: "[f4@4 ~@4 eb5@2 c5@2 ~@2 g4@8 ~ g4 f4 ~ eb4@2 bb3 c4 eb4@2]/2",
  C: "[f4@2 ~@2 eb5 c5 ~ g4@5 ~@4]/2",
})).s("gm_clarinet").gain(0.2)

// other · alto sax · "Alto Saxophone"
const alto_sax = note("<~@4 A@4 B@2 C@2 B@2 ~@2 D E F E G E G E ~@4 H@4 I J K@2 L M>".pickRestart({
  A: "[~@4 ab4 ~@3 c5@2 c5@2 ~@2 bb4@8 ~@10]/2", B: "[~@4 ab4 ~ f4@2 c5@2 c5@2 ~@2 bb4@8 ~@10]/2",
  C: "[c5!2 ~ bb4@4 g4@4 ~@5]/2", D: "f4@2 ~@2 f4@2 ~@2 f4 ~ f4 ~ f4 ~ eb4@2", E: "~@4 f4 ~ f4 ~ g4@2 eb4 ~ f4@4",
  F: "f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ eb4@2", G: "f4@2 ~@2 c5 ~ f4@2 f4 ~ f4 ~ f4 ~ eb4@2",
  H: "[f4@4 ab4@2 c4@2 eb5@2 c5@2 bb4@2 g4@4 c4@2 eb4@2 f4@2 f4 ~ g4@2 bb4@2 c5@2]/2", I: "f4@2 ab4 c4 eb5 c5 bb4 g4",
  J: "g4@2 c4@2 c5@2 bb4@2 g4 ~ f4@2 f4 g4 bb4@2", K: "[f4@2 ab4 c4 eb5 c5 bb4 g4@9]/2",
  L: "f4@2 ~@6 f4 ~ f4 ~ f4 ~ eb4@2", M: "~@4 f4 ~ f4 ~ g4@2 bb4 ~ c5@2 ~@2",
})).s("gm_alto_sax").gain(0.3)

// other · alto sax · "Alto Saxophone" · soft notes
const alto_sax_soft = note("<~@24 A@2 B@2 ~@10>".pickRestart({
  A: "[~@4 ab4 ~@3 c5@2 c5@2 ~@2 bb4@8 ~@10]/2", B: "[~@4 ab4 ~@3 c5@2 c5@2 ~@2 bb4@10 ~@8]/2",
})).s("gm_alto_sax").gain(0.2)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<~@4 A@4 B@2 C@2 B@2 ~@2 D E F E G H G I ~@10 J@2 K L>".pickRestart({
  A: "[~@4 c4 ~@3 c4@2 c4@2 ~@2 bb3@8 ~@10]/2", B: "[~@4 c4 ~ c4@2 c4@2 c4@2 ~@2 bb3@8 ~@10]/2",
  C: "[c4!2 ~ bb3@4 g3@4 ~@5]/2", D: "f3@2 ~@2 f3@2 ~@2 f3 ~ f3 ~ f3 ~ eb3@2", E: "~@4 f3 ~ f3 ~ g3@2 eb3 ~ f3@4",
  F: "f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ eb3@2", G: "~@3 f4!2 c4@3", H: "~@3 c4 f4 bb4 g4 ~", I: "~@3 c4 f4 ~@3",
  J: "[~@7 eb3@9]/2", K: "f3@2 ~@6 f3 ~ f3 ~ f3 ~ eb3@2", L: "~@4 f3 ~ f3 ~ g3@2 bb3 ~ c4@2 ~@2",
})).s("gm_tenor_sax").gain(0.4)

// other · tenor sax · "Tenor Saxophone" · soft notes
const tenor_sax_soft = note("<~@23 A B@2 C@2 D@6 E ~@3>".pickRestart({
  A: "~@5 bb4 g4 ~", B: "[~@4 c4 ~@3 c4@2 c4@2 ~@2 bb3@8 ~@10]/2", C: "[~@4 c4 ~@3 c4@2 c4@2 ~@2 bb3@10 ~@8]/2",
  D: "[f3@7 eb3@4 ~@5]/2", E: "f3@7 ~",
})).s("gm_tenor_sax").gain(0.2)

// bass · baritone sax · "Baritone Saxophone"
const bass = note("<~@16 A B C B D B D E ~@10 F@2 G H>".pickRestart({
  A: "f2@2 ~@2 f2@2 ~@2 f2 ~ f2 ~ f2 ~ eb2@2", B: "~@4 f2 ~ f2 ~ g2@2 eb2 ~ f2@4",
  C: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ eb2@2", D: "f2@2 ~@2 c3 ~ f2@2 f2 ~ f2 ~ f2 ~ eb2@2", E: "~@4 f2 ~@11",
  F: "[~@7 bb2@9]/2", G: "f2@2 ~@6 f2 ~ f2 ~ f2 ~ eb2@2", H: "~@4 f2 ~ f2 ~ g2@2 bb2 ~ c3@2 ~@2",
})).s("gm_baritone_sax").gain(0.45)

// bass · baritone sax · "Baritone Saxophone" · soft notes
const bass_soft = note("<~@4 A@4 B@6 ~@9 C A@2 D@2 E@6 F ~@3>".pickRestart({
  A: "[f2@2 ~@2 f2@3 eb2@4 ~@5]/2", B: "[f2@2 ~ f2 f2@2 ~ eb2@4 ~@5]/2", C: "~@6 f2 ~ g2@2 eb2 ~ f2@4",
  D: "[f2@2 ~@2 f2@3 eb2@5 ~@4]/2", E: "[c3@7 bb2@4 ~@5]/2", F: "c3@7 ~",
})).s("gm_baritone_sax").gain(0.2)

// other · trumpet · "B♭ Trumpet"
const trumpet = note("<~@8 A B A B C B D B A B C B E B E B ~@4 E B E B E B E B F G>".pickRestart({
  A: "f4@2 ~@2 f4@2 ~@2 f4 ~ f4 ~ f4 ~ eb4@2", B: "~@4 f4 ~ f4 ~ g4@2 eb4 ~ f4@4",
  C: "f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ eb4@2", D: "f4 ~@5 f4@2 f4 ~ f4 ~ f4 ~ eb4@2",
  E: "f4@2 ~@2 c5 ~ f4@2 f4 ~ f4 ~ f4 ~ eb4@2", F: "f4@2 ~@6 f4 ~ f4 ~ f4 ~ eb4@2",
  G: "~@4 f4 ~ f4 ~ g4@2 bb4 ~ c5@2 ~@2",
})).s("gm_trumpet").gain(0.45)

// other · french horn · "Mellophone"
const french_horn = note("<~@11 A ~ A ~ A B A C A D E D E ~@4 F@4 G@2 H@2 I J>".pickRestart({
  A: "~@4 f4 ~ f4 ~ g4@2 eb4 ~ f4@4", B: "f4@2 ~@2 f4@2 ~@2 f4 ~ f4 ~ f4 ~ eb4@2",
  C: "f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ f4 ~ eb4@2", D: "~@3 f4!2 c4@3", E: "~@3 c4 f4 bb4 g4 ~",
  F: "[f4@2 ab4 c4 eb5 c5 bb4 g4@2 c4 eb4 f4!2 g4 bb4 c5]/2",
  G: "[f4@4 ab4@2 c4@2 eb5@2 c5@2 bb4@2 g4@4 c4@2 c5@2 bb4@2 g4 ~ f4@2 g4@2 bb4@2]/2",
  H: "[f4@4 ab4@2 c4@2 eb5@2 c5@2 bb4@2 g4@4 c4@2 c5@2 bb4@2 g4 ~ f4@2 f4 g4 bb4@2]/2",
  I: "f4@2 ~@6 f4 ~ f4 ~ f4 ~ eb4@2", J: "~@4 f4 ~ f4 ~ g4@2 bb4 ~ c5@2 ~@2",
})).s("gm_french_horn").gain(0.3)

// other · trombone
const trombone = note("<~@11 A B A C A D E F E G E G E ~@4 G E G E G E G E H I>".pickRestart({
  A: "~@4 f3 ~ f3 ~ g3@2 eb3 ~ f3@4", B: "[f2,f3]@2 ~ [f2,f3] [f2,f3]@2 ~ [eb2,eb3]",
  C: "[f2,f3]@3 ~@3 [f2,f3]@2 [f2,f3]@4 ~@2 [eb2,eb3]@2", D: "f2@2 ~@2 f2@2 ~@2 f2 ~ f2 ~ f2 ~ eb2@2",
  E: "~@4 f2 ~ f2 ~ g2@2 eb2 ~ f2@4", F: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ eb2@2",
  G: "f2@2 ~@2 c3 ~ f2@2 f2 ~ f2 ~ f2 ~ eb2@2", H: "f2@2 ~@6 f2 ~ f2 ~ f2 ~ eb2@2",
  I: "~@4 f2 ~ f2 ~ g2@2 bb2 ~ c3@2 ~@2",
})).s("gm_trombone").gain(0.45)

// other · trombone · soft notes
const trombone_soft = note("<~@4 A@4 B ~ B ~@27>".pickRestart({
  A: "[[f2,f3]@2 ~@2 [f2,f3]@3 [eb2,eb3]@4 ~@5]/2", B: "[f2,f3]@2 ~ [f2,f3] [f2,f3]@2 ~ [eb2,eb3]",
})).s("gm_trombone").gain(0.2)

// bass · tuba · "B♭ Tuba"
const bass_2 = note("<~@16 A B C B D B D B ~@4 D B D B D B D B E F>".pickRestart({
  A: "f2@2 ~@2 f2@2 ~@2 f2 ~ f2 ~ f2 ~ eb2@2", B: "~@4 f2 ~ f2 ~ g2@2 eb2 ~ f2@4",
  C: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ eb2@2", D: "f2@2 ~@2 c3 ~ f2@2 f2 ~ f2 ~ f2 ~ eb2@2",
  E: "f2@2 ~@6 f2 ~ f2 ~ f2 ~ eb2@2", F: "~@4 f2 ~ f2 ~ g2@2 bb2 ~ c3@2 ~@2",
})).s("gm_tuba").gain(0.45)

// bass · tuba · "B♭ Tuba" · soft notes
const bass_soft_2 = note("<~@4 A@4 B ~ B ~ B ~ B ~@23>".pickRestart({
  A: "[f2@2 ~@2 f2@3 eb2@4 ~@5]/2", B: "f2@2 ~ f2 f2@2 ~ eb2",
})).s("gm_tuba").gain(0.2)

// drums · high tom
const high_tom = s("ht").struct("<A@3 B A@3 C D@4 E@2 F ~ D@3 G H@3 I ~@3 J K@8 L M>".pickRestart({
  A: "x ~@3 x ~@2 x!2 ~ x ~ x ~ x ~", B: "~@2 x!2", C: "~@2 x ~ x ~ x ~ x!4 ~ x ~ x", D: "x!4", E: "x ~ x ~ x!3 ~",
  F: "~@3 x!2 ~ x!9 ~", G: "x ~ x ~ x ~ x ~ x!8", H: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2",
  I: "x ~ x ~ x ~@3 x ~ x ~ x ~@2 x", J: "x ~@4 x ~ x!2 ~ x ~ x!4", K: "x!16", L: "x ~ x!7 ~ x ~ x ~ x ~",
  M: "~@2 x ~@3 x ~ x!5 ~@3",
})).gain(0.45)

// drums · high tom · soft notes
const high_tom_soft = s("ht").struct("<~@3 A ~@8 B@2 C ~@8 D E@3 F ~@10>".pickRestart({
  A: "x ~@3 x!4 ~ x ~ x ~@4", B: "x!8", C: "x!3 ~@2 x ~@10", D: "~@3 x ~ x ~ x", E: "x ~@3 x ~@2 x!2 ~ x ~ x ~ x ~",
  F: "~@3 x!2 ~@11",
})).gain(0.2)

// drums · china
const china = s("cr").struct("<~@3 A ~@3 B@5 ~@3 C ~@11 A@4 ~@6 D>".pickRestart({
  A: "~ x", B: "x!4", C: "~@3 x", D: "x!2 ~ x",
})).gain(0.25)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<A@3 B A@3 C D@6 E ~ D@8 ~@3 F A@8 G H>".pickRestart({
  A: "x ~@6 x!2 ~ x ~@5", B: "~@2 x!3 ~@3 x!2 ~ x!2 ~@3", C: "x!2 ~@6", D: "x!4", E: "x!2 ~@2 x!2 ~@2 x!2 ~@4 x ~",
  F: "x!2 ~@8 x ~ x!4", G: "x ~ x!2 ~@4 x ~ x ~ x ~ x ~", H: "~ x ~ x ~@2 x ~",
})).gain(1.51)

// drums · cabasa · soft notes
const cabasa_soft = s("cabasa:4").struct("<~@3 [x!2 ~@14] ~@20 [x ~@6 x!2 ~ x ~@5]!3 [~@3 x ~@12] ~@10>").gain(1.01)

// drums · whistle
const whistle = s("ballwhistle:1").struct("<~@14 [~@3 x] ~@12 [~ x] ~@10>").gain(0.58)

// drums · whistle
const whistle_2 = s("ballwhistle:0").struct("<A B A C A B A D ~@4 D@2 E ~@5 F@4 ~@4 G@8 H ~>".pickRestart({
  A: "~@5 x ~@2", B: "~@7 x ~@2 x ~@5", C: "~ x", D: "~@2 x!2 ~@4", E: "~@3 x!2 ~@11", F: "~@7 x ~@8",
  G: "~@2 x!2 ~@6 x!2 ~@4", H: "~@3 x ~@12",
})).gain(0.58)

// drums · whistle · soft notes
const whistle_soft = s("ballwhistle:0").struct("<~@3 A ~@10 B ~@9 C D C E ~@10>".pickRestart({
  A: "~@3 x!4 ~@9", B: "~@5 x!2 ~@9", C: "~@5 x ~@2", D: "~@7 x ~@2 x ~@5", E: "~@3 x ~@12",
})).gain(0.32)

// drums · guiro
const guiro = s("guiro:4").struct("<~@16 [x!4]!4 [~ x ~ x]!4 ~@3 [~@2 x!2] [x!4]!8 x [~ x]>").gain(9.43)

// drums · woodblocks
const woodblocks = s("woodblock:5").struct("<A@3 B A@3 C@8 ~@5 D@4 E ~@2 F ~@8 G B>".pickRestart({
  A: "x!8", B: "x!2 ~ x", C: "x!4", D: "x!2", E: "~ x ~ x", F: "x", G: "~@2 x!2",
})).gain(0.43)

stack(
  clarinet, clarinet_soft, alto_sax, alto_sax_soft, tenor_sax, tenor_sax_soft, bass, bass_soft, trumpet, french_horn,
  trombone, trombone_soft, bass_2, bass_soft_2, high_tom, high_tom_soft, china, cabasa, cabasa_soft, whistle, whistle_2,
  whistle_soft, guiro, woodblocks
)