Strudelify
Itsy Bits V Teeny Weeny Yellow Polka Dot Bikini cover art

Itsy Bits V Teeny Weeny Yellow Polka Dot Bikini

Bombalurina

KeyD majorTempo120 bpm
0:00/0:00
// Itsy Bits V Teeny Weeny Yellow Polka Dot Bikini — Bombalurina
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 99 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 · [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.

// bass · synth bass 1 · "SYN BASS 1"
const bass = note(`<
  ~@10 A B A B A B A C ~ D E F G H I J C ~@2 K L M L M L M N O ~@3 H F@2 H@2 P Q O ~@2 A B A B A B A R ~@11 S A B A B A
  B A C ~ D E F G H I J C ~@2 K L M L M L M N T
>`.pickRestart({
  A: "[a1,a2]@2 ~ [e1,e2]@2 ~ [g1,g2] ~ [a1,a2]@2 ~ [e1,e2]@2 ~ [a1,a2] ~", // A E G A E A
  B: "[d1,d2]@2 ~ [f#1,f#2]@2 ~ [a1,a2] ~ [d1,d2]@2 ~ [f#1,f#2]@2 ~ [g1,g2] ~", // D F# A D F# G
  C: "[g1,g2]@2 ~ [f#1,f#2]@2 ~ [e1,e2] ~ [d1,d2]@2 ~@6", D: "~@8 [d1,d2]@2 ~ [f#1,f#2]@2 ~ [a1,a2] ~",
  E: "[d1,d2]@2 ~ [f#1,f#2]@2 ~ [a1,a2] ~ [e1,e2]@2 ~ [g1,g2]@2 ~ [a1,a2] ~", // D F# A E G A
  F: "[e1,e2]@2 ~ [g1,g2]@2 ~ [a1,a2] ~ [e1,e2]@2 ~ [g1,g2]@2 ~ [a1,a2] ~", // E G A E G A
  G: "[e1,e2]@2 ~ [g1,g2]@2 ~ [a1,a2] ~ [d1,d2]@2 ~ [f#1,f#2]@2 ~ [a1,a2] ~", // E G A D F# A
  H: "[d1,d2]@2 ~ [f#1,f#2]@2 ~ [a1,a2] ~ [d1,d2]@2 ~ [f#1,f#2]@2 ~ [a1,a2] ~", // D F# A D F# A
  I: "[d1,d2]@2 ~ [f#1,f#2]@2 ~ [a1,a2] ~ [g1,g2]@2 ~ [d1,d2]@2 ~ [e1,e2] ~", // D F# A G D E
  J: "[g1,g2]@2 ~ [d1,d2]@2 ~ [g1,g2] ~ [d1,d2]@2 ~ [f#1,f#2]@2 ~ [a1,a2] ~", // G D G D F# A
  K: "~@8 [a1,a2]@2 ~ [e1,e2]@2 ~ [g1,g2] ~", // A E G
  L: "[a1,a2]@2 ~ [e1,e2]@2 ~ [a1,a2] ~ [d1,d2]@2 ~ [f#1,f#2]@2 ~ [a1,a2] ~", // A E A D F# A
  M: "[d1,d2]@2 ~ [f#1,f#2]@2 ~ [g1,g2] ~ [a1,a2]@2 ~ [e1,e2]@2 ~ [g1,g2] ~", // D F# G A E G
  N: "[a1,a2]@2 ~ [e1,e2]@2 ~ [a1,a2] ~ [g1,g2]@2 ~ [f#1,f#2]@2 ~ [e1,e2] ~", O: "[d1,d2] ~@7",
  P: "[g1,g2]@2 ~ [d1,d2]@2 ~ [e1,e2] ~ [g1,g2]@2 ~ [d1,d2]@2 ~ [g1,g2] ~", // G D E G D G
  Q: "[d1,d2]@2 ~ [f#1,f#2]@2 ~ [a1,a2] ~ [g1,g2]@2 ~ [f#1,f#2]@2 ~ [e1,e2] ~", // D F# A G F# E
  R: "[g1,g2]@2 ~ [f#1,f#2]@2 ~ [e1,e2] ~ [d1,d2]@2 ~@2 d3 ~@3", S: "~@12 d3 ~@3",
  T: "[d1,d2]@2 ~@2 d3 [g#2,a2,a#2,b2,c3,c#3] [d2,d#2,e2,f2,f#2,g2] [c2,c#2] ~@8", // D C#maj7
})).s("gm_synth_bass_1").gain(0.42)

// bass · synth bass 1 · "SYN BASS 1"
const bass_2 = note(`<
  ~@2 A@8 B A B A B A B C ~ D E B F A G H C ~@2 I F E F E F E B J ~@3 A B@2 A@2 K E J ~@2 B A B A B A B C ~@8 B A B L B
  A B A B A B C ~ D E B F A G H C ~@2 I F E F E F E B J
>`.pickRestart({
  A: "[a3,d4] ~ [a3,d4] ~ d3 [a3,d4] ~ d3 [a3,d4] ~ [a3,d4] ~ d3 [a3,d4] ~ d3", // D5
  B: "[a3,e4] ~ [a3,e4] ~ e3 [a3,e4] ~ e3 [a3,e4] ~ [a3,e4] ~ e3 [a3,e4] ~ e3", // A5
  C: "[a3,e4] ~ [a3,e4] ~ e3 [a3,e4] ~ e3 [a3,d4] ~@7", D: "~@8 [a3,d4] ~ [a3,d4] ~ d3 [a3,d4] ~ d3",
  E: "[a3,d4] ~ [a3,d4] ~ d3 [a3,d4] ~ d3 [a3,e4] ~ [a3,e4] ~ e3 [a3,e4] ~ e3", // D5 A5
  F: "[a3,e4] ~ [a3,e4] ~ e3 [a3,e4] ~ e3 [a3,d4] ~ [a3,d4] ~ d3 [a3,d4] ~ d3", // A5 D5
  G: "[a3,d4] ~ [a3,d4] ~ d3 [a3,d4] ~ d3 [g3,d4] ~ [g3,d4] ~ d3 [g3,d4] ~ d3", // D5 G5
  H: "[g3,d4] ~ [g3,d4] ~ d3 [g3,d4] ~ d3 [a3,d4] ~ [a3,d4] ~ d3 [a3,d4] ~ d3", // G5 D5
  I: "~@8 [a3,e4] ~ [a3,e4] ~ e3 [a3,e4] ~ e3", J: "[a3,d4] ~@15",
  K: "[g3,d4] ~ [g3,d4] ~ d3 [g3,d4] ~ d3 [g3,d4] ~ [g3,d4] ~ d3 [g3,d4] ~ d3", // G5
  L: "[a3,d4] ~ [a3,d4] ~ d3 [a3,d4] ~ d3 [a3,d4] ~@7", // D5
})).s("gm_synth_bass_1").gain(0.32)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  ~@3 A ~ B ~ A ~@2 C D E F C D E G H I ~@8 J K L M N O L M P Q ~ R S ~ T ~ U ~ V ~@3 W X Y Z AA X Y AB AC ~@5 B ~ A ~ B
  ~@2 C D E AD C D E G H I AE AF AE AG AH AI ~@2 J K L M N AJ L M P Q
>`.pickRestart({
  A: "~@6 d3@2 d3@2 d3@3 ~@3", B: "~@5 g3 d4@2",
  C: "[g4,g5] ~ [g4,g5]@2 [e4,e5] ~ [e4,e5]@2 [g4,g5] ~ [g4,g5]@2 [e4,e5] ~ [e4,e5]@2", // G E G E
  D: "[f#4,f#5] ~ [f#4,f#5]@2 [e4,e5]@2 [d4,d5]@2 [f#4,f#5] ~ [f#4,f#5]@2 [e4,e5]@2 [d4,d5] ~", // F# E D F# E D
  E: "~@2 [g4,g5] ~ [g4,g5]@2 [f#4,f#5]@2 [e4,e5]@2 ~ [e4,e5]@2 ~ [e4,e5]@2", // G F# E
  F: "[f#4,f#5]@2 ~ [f#4,f#5]@3 [e4,e5]@2 [d4,d5]@3 ~@3 [f#4,f#5]@2", // F# E D F#
  G: "[g4,g5]@2 ~ [f#4,f#5]@3 [e4,e5]@2 [d4,d5]@2 ~@2 f#4@2 ~@2", H: "a4@2 ~@2 d5@2 ~ d5 e5 ~ d5 ~ c#5 ~ b4 ~",
  I: "a4 ~@7", J: "~@12 [d5,a5]@3 ~", K: "[e5,b5]@4 [f5,c6]@4 [g5,c#6] ~ [g5,c#6]@2 b5@2 [e5,a5]@2, ~@12 e5 ~@3",
  L: "[g5,c#6] ~ [g5,c#6]@2 b5@2 [e5,a5]@2 [f#5,d6] ~ [f#5,d6]@2 [e5,b5]@2 [d5,a5]@2, ~@4 e5 ~@11", // Gdim A5 D E5 D5
  M: "[f#5,d6] ~ [f#5,d6]@2 [e5,b5]@2 a5@2 ~@2 [g5,c#6] ~ [g5,c#6]@2 [f#5,b5]@2, ~@6 d5 ~@9", // D E5 Gdim B5
  N: "[e5,a5]@3 [e5,b5]@3 e5@2 [f#5,a5]@3 [f#5,b5]@3 [e5,a5]@2, ~@6 a5 ~@9", // A5 E5 F#m B5 A5
  O: "[d5,f#5]@4 ~@2 [f#5,a5]@2 [g5,c#6] ~ [g5,c#6]@2 b5@2 [e5,a5]@2, ~@12 e5 ~@3", // D F#m Gdim A5
  P: "[e5,a5]@3 [e5,b5]@3 [e5,a5]@2 g5@3 f#5@3 e5@2", Q: "d5 ~@7", R: "d4@2 ~@2 f#4@2 ~@2 a4@2 ~@2 d5@2 ~ d5",
  S: "e5 ~ d5 ~ c#5 ~ b4 ~ a4@2 ~@6", T: "~@6 [d5,a5,d6]!2 [c#5,a5,c#6] ~@7", U: "~@6 [d5,a5,d6]!3 ~@7",
  V: "~@6 [d5,g5,b5]!3 ~@7", W: "~@4 [d5,a5]@3 ~ [e5,b5]@4 [f5,c6]@4",
  X: "[g5,c#6] ~ [g5,c#6]@2 b5@2 [e5,a5]@2 [g5,c#6] ~ [g5,c#6]@2 b5@2 [e5,a5]@2, ~@4 e5 ~@7 e5 ~@3", // Gdim A5 Gdim A5
  Y: "[f#5,d6] ~ [f#5,d6]@2 [e5,b5]@2 [d5,a5]@2 [f#5,d6] ~ [f#5,d6]@2 [e5,b5]@2 a5@2, ~@14 d5 ~", // D E5 D5 D E5
  Z: "~@2 [g5,c#6] ~ [g5,c#6]@2 [f#5,b5]@2 [e5,a5]@3 [e5,b5]@3 e5@2, ~@14 a5 ~", // Gdim B5 A5 E5
  AA: "[f#5,a5]@3 [f#5,b5]@3 [e5,a5]@2 [d5,f#5]@4 ~@2 [f#5,a5]@2", // F#m B5 A5 D F#m
  AB: "~@2 [g5,c#6] ~ [g5,c#6]@2 [f#5,b5]@2 [e5,a5]@3 [e5,b5]@3 [e5,a5]@2", AC: "g5@3 f#5@3 e5@2 d5@2 ~@6",
  AD: "[f#4,f#5]@2 ~ [f#4,f#5]@3 [e4,e5]@2 [d4,d5]@2 g3@2 ~@2 [f#4,f#5]@2, ~@3 d4", AE: "~@14 [d5,a5,d6]!2",
  AF: "[c#5,a5,c#6] ~@15", AG: "[d5,a5,d6] ~@15", AH: "~@14 [d5,g5,b5]!2", AI: "[d5,g5,b5] ~@15",
  AJ: "~@2 g3@2 ~@2 [f#5,a5]@2 [g5,c#6] ~ [g5,c#6]@2 b5@2 [e5,a5]@2, [d5,f#5]@4 d4@4 ~@4 e5 ~@3", // F#m Gdim A5 D
})).s("gm_brass_section").gain(0.28)

// chords · accordion
const accordion = note(`<
  ~@10 A B A B A B C D ~@11 E F G F G F G H I ~@13 A B A B A B C D ~@4 A B A B A B A J A B A B A B C D ~@11 E F G F G F
  G H I
>`.pickRestart({
  A: "~ [a4,c#5,e5] ~@2 [a4,c#5,e5]@2 ~@3 [a4,c#5,e5] ~@2 [a4,c#5,e5] ~ [a4,c#5,e5]@2", // A
  B: "~ [a4,d5,f#5] ~@2 [a4,d5,f#5]@2 ~@3 [a4,d5,f#5] ~@2 [a4,d5,f#5] ~ [a4,d5,f#5]@2", // D
  C: "~ [a4,c#5,e5] ~@2 [a4,c#5,e5]@2 ~@3 [a4,c#5,e5] ~@2 [a4,c#5,e5]@2 a5@2", D: "g5 f#5 ~ e5 d5 ~@3",
  E: "~@9 [a4,c#5,e5] ~@2 [a4,c#5,e5]@2 ~@2", // A
  F: "~ [a4,c#5,e5] ~@2 [a4,c#5,e5] ~ [a4,c#5,e5]@2 ~ [a4,d5,f#5] ~@2 [a4,d5,f#5]@2 ~@2", // A D
  G: "~ [a4,d5,f#5] ~@2 [a4,d5,f#5] ~ [a4,d5,f#5]@2 ~ [a4,c#5,e5] ~@2 [a4,c#5,e5]@2 ~@2", // D A
  H: "~ [a4,c#5,e5] ~@2 [a4,c#5,e5]@2 a5@2 g5@2 f#5@2 ~@2 e5@2", I: "d5 ~@7",
  J: "~ [a4,d5,f#5] ~@2 [a4,d5,f#5]@2 ~@2 [a4,d5,f#5] ~@7", // D
})).s("gm_accordion").gain(0.33).pan(0.6)

// other · orchestra hit · "ORCH.HIT"
const orchestra_hit = note("<~@17 A B C ~@19 D E ~@37 A B C ~@18>".pickRestart({
  A: "~@8 d4 ~@3 f#4 ~@3", B: "a4 ~@3 d5 ~@2 d5 e5 ~ d5 ~ c#5 ~ b4 ~", C: "a4@3 ~@13",
  D: "d4 ~@3 f#4 ~@3 a4 ~@3 d5 ~@2 d5", E: "e5 ~ d5 ~ c#5 ~ b4 ~ a4@3 ~@5",
})).s("gm_orchestra_hit").gain(0.36)

// other · ocarina
const ocarina = note("<~ A@2 ~@67 B ~@28>".pickRestart({
  A: "[g4 ~ g3 g3@2 ~@3, ~@4 g4@7 ~@21]/2", B: "~@2 d#6 c7 d7 g5@3",
})).s("gm_ocarina").gain(0.09)

// other · ocarina · soft notes
const ocarina_soft = note("<[~@15 a7] [~@3 a7 ~@3 a6 ~@3 g6 ~@4] ~@68 [~@4 a4 ~ f#5 ~ g5 ~@7] ~@28>")
  .s("gm_ocarina").gain(0.02)

// drums · kick
const kick = s("bd").struct("<~@2 [x!4]!38 [x!3 ~] [x!4]!57 [x!2 ~@2]>").gain(0.54)

// drums · snare
const snare = s("sd").struct(`<
  ~@9 A B@3 C B@3 D E F G@6 H I J F G@3 K G@3 ~@2 L M B@7 ~ N@2 B@3 C B@3 O ~@4 B@7 O B@3 C B@3 D E F G@6 H I J F G@3 K
  G@3 ~
>`.pickRestart({
  A: "x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!4", B: "~@4 x ~@2 x ~@4 x ~@3", C: "~@4 x ~@2 x ~ x ~@2 x ~ x!2",
  D: "~@4 x ~@2 x!2 ~@3 x ~@3", E: "x ~@3 x ~@2 x!3 ~ x!2 ~ x!2", F: "~ x!2 ~ x ~ x!2 ~@4 x ~@2 x",
  G: "~@4 x ~@7 x ~@2 x", H: "~ x ~@2", I: "~@8 x!2 ~ x!2 ~ x!2", J: "~ x!2 ~ x ~ x!4 ~ x!2 ~ x!2",
  K: "~ x ~@2 x ~ x!2 ~@4 x ~@2 x", L: "x ~@3 x ~@3 x ~@3 x ~@2 x", M: "x!5 ~@3", N: "x!2 ~ x!2 ~ x!2 ~ x!2 ~ x ~ x!2",
  O: "~@4 x ~@2 x ~@8",
})).gain(0.36)

// drums · clap
const clap = s("cp").struct("<~@10 A@7 B ~@11 C A@7 ~@14 A@7 B A@11 B A@7 B ~@11 C A@7 ~>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@3 x",
})).gain(0.48)

// drums · clap · soft notes
const clap_soft = s("cp").struct("<[x!2] [x!4] ~@97>").gain(0.24)

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@2 A B A C A B A C A B A C A B A ~@3 B D@2 E B D@2 ~@3 B D@2 E B D@2 ~@4 A B A C A B A ~@3 A B A C A B A ~ A B A C A
  B A C A B A ~ A B A C A B A ~@3 B D@2 E B D@2 ~@3 B D@2 E B D@2 ~
>`.pickRestart({
  A: "~@14 x!2", B: "~@6 x!2 ~@6 x!2", C: "~@7 x", D: "~@6 x!2 ~@8", E: "~@3 x ~@4",
})).gain(0.24)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@2 A@15 B ~ C A@6 B ~@2 C A@7 ~@4 A@7 ~@3 A@7 D A@11 D A@7 B ~ C A@6 B ~@2 C A@7 E
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~@4", C: "~@5 x ~ x", D: "~ x ~ x ~ x ~@2", E: "~ x ~@6",
})).gain(0.36)

// drums · tambourine
const tambourine = s("tb").struct("<~@10 A@7 B ~@11 C A@7 ~@14 A@7 D A@11 D A@7 B ~@11 C A@7 E>".pickRestart({
  A: "x!16", B: "x!8 ~@8", C: "~@8 x!8", D: "x!13 ~@3", E: "x!5 ~@11",
})).gain(0.24)

// drums · splash
const splash = s("cr").struct("<~@98 [~ x ~@2]>").gain(0.42)

// drums · bongos
const bongos = s("bongo:4").struct("<[x!4 ~ x!3 ~ x ~ x ~ x ~ x] [~@2 x!2 ~@3 x ~ x!2 ~@2 x ~ x] ~@97>").gain(0.63)

// drums · bongos · soft notes
const bongos_soft = s("bongo:4").struct("<[~@2 x ~ x!4] [x!2 ~@2 x!3 ~ x ~@2 x!2 ~ x ~] ~@97>").gain(0.47)

// drums · bongos
const bongos_2 = s("bongo:18").struct(`<
  A B C@15 D ~ E C@6 D ~@2 E C@7 ~@4 C@7 ~@3 C@7 D ~@8 C@3 D C@7 D ~ E C@6 D ~@2 E C@7 ~
>`.pickRestart({
  A: "~ x ~@2 x!2 ~@2 x!8", B: "x!2 ~ x!3 ~@6 x!3 ~", C: "x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~", D: "x ~@2 x ~@2 x ~@9",
  E: "~@8 x ~@2 x ~@2 x ~",
})).gain(0.63)

// drums · bongos · soft notes
const bongos_soft_2 = s("bongo:18").struct("<A B ~@56 C D@8 ~@3 C ~@27 E>".pickRestart({
  A: "x ~ x!2 ~@2 x!2 ~@8", B: "~@2 x ~@3 x!6 ~@3 x", C: "~@8 x ~@2 x ~@4", D: "x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~",
  E: "x ~@2 x ~@12",
})).gain(0.47)

// drums · congas
const congas = s("conga:13").struct(`<
  [~@5 x!2 ~ x ~ x!2 ~@4]
  [~ x!3 ~ x!2 ~@3 x ~@2 x ~ x]
  ~@57
  [~@3 x ~@3 x]!11
  [~@3 x ~@4]
  ~@28
>`).gain(0.96)

// drums · congas · soft notes
const congas_soft = s("conga:13").struct("<[x!5 ~@2 x ~ x ~@2 x!4] [x ~@3 x ~@2 x!3 ~ x!2 ~ x ~] ~@97>").gain(0.58)

// drums · congas
const congas_2 = s("conga:33").struct("<~@59 [~@2 x!2 ~@6 x!2 ~@4]!11 [~@2 x!2 ~@12] ~@28>").gain(0.96)

// … 42 more lines