Strudelify

Baby Baby

Corona

KeyB minorTempo134 bpm
0:00/0:00
// Baby Baby — Corona
// 133.6 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 125 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(133.6/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 · "A.Piano"
const piano = note("<~@33 A B A B A B ~@26 A B A B A B ~@54>".pickRestart({
  A: "~@3 [b3,d4,f#4]@2 ~@2 [b3,d4,f#4]@3 ~@2 [b3,d4,g4]@3 ~ [b3,d4,g4]@2 ~@3 [b3,d4,g4]@3", // Bm G
  B: "~@3 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@3 ~@2 [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~@2 [a3,c#4,e4]@2 ~", // D A
})).s("gm_piano").gain(0.44).pan(0.6)

// bass · synth bass 1 · "Synth.Bas"
const bass = note(`<
  ~@9 A B C D C B E ~ F@2 G H F@2 G H F I F I F I F I J K J K J K ~@2 J K J K J K J K F@2 G H F@2 G H F I F I F I F I J
  K J K J K ~@2 J K J K J K J K J K J K J K J K ~@10 F@2 G H F@2 G H J K J K J K J K J K J K J L@3 ~@2
>`.pickRestart({
  A: "b1@8 ~ a1 ~@2 b1@7 ~@2 a1 ~@2", B: "b1@7 ~@2 a1@2 ~ b1@3 ~ b1 ~@4 a1 ~@2", C: "b1@7 ~@2 a1 ~@2 b1@7 ~@2 a1 ~@2",
  D: "b1@7 ~@2 a1 ~@2 b1@3 ~ b1 ~@4 a1 ~@2", E: "b1@6 ~@3 a1 ~@2 b1@7 ~@2 a1@2 ~",
  F: "b0@2 ~ b1!2 ~ b0!2 ~ b1!2 ~ b0@2 ~ b1!2 ~ b0!2 ~ b1!2 ~",
  G: "g0@2 ~ g1!2 ~ g0!2 ~ g1!2 ~ g0@2 ~ g1!2 ~ g0!2 ~ g1!2 ~",
  H: "a0@2 ~ a1!2 ~ a0!2 ~ a1!2 ~ a0@2 ~ a1!2 ~ a0!2 ~ a1!2 ~",
  I: "b0@2 ~ b1!2 ~ b0!2 ~ b1!2 ~ a0@2 ~ a1!2 ~ a0!2 ~ a1!2 ~",
  J: "b0@2 ~ b1!2 ~ b0!2 ~ b1!2 ~ g0@2 ~ g1!2 ~ g0!2 ~ g1!2 ~",
  K: "d1@2 ~ d2!2 ~ d1!2 ~ d2!2 ~ a0@2 ~ a1!2 ~ a0!2 ~ a1!2 ~",
  L: "[d1@2 ~ d2!2 ~ d1!2 ~ d2!2 ~ a0@2 ~ a1!2 ~ a0!2 a1 ~ a1 b0@2 ~ b1 ~ b1 b0 ~ b0 b1 ~ b1 g0@2 ~ g1 ~ g1 g0 ~ g0 g1 ~ g1 d1@2 ~ d2 ~ d2 d1 ~ d1 d2 ~ d2 a0@2 ~ a1 ~ a1 a0 ~ a0 a1 ~ a1 ~]/3",
})).s("gm_synth_bass_1").gain(0.25)

// chords · pad warm · "#Horn Pad"
const pad_warm = note("<~@9 A@7 ~@75 B@7 ~@27>".pickRestart({
  A: "[~@48 b4@23 ~ [b4,f#5]@24 ~@48 b6@22 ~@2, b3@48 [b4,f#5,b5]@35 ~, ~@12 f#4@45 ~@3 f#6@23 ~]/7", // B5
  B: "[~@96 f#5@47 ~ [b4,f#5,b5]@24, b3, ~@48 b4@95 ~@25]/7", // B5
})).s("gm_pad_warm").gain(0.2).pan(0.4)

// chords · string ensemble 1 · "#Choir St"
const string_ensemble_1 = note(`<
  ~ A B A B A B A B C@7 ~ D@2 E F D@2 E F ~@8 G H G H G H G H A B A B A B A B D@2 E F D@2 E F ~@8 G H G H G H G H A B A
  B A B A B A B A B A B A B ~@2 I@7 ~ D@2 E F D@2 E F A B A B A B A B A B A B A J@3 ~@2
>`.pickRestart({
  A: "[b0,b1,b3,d4,f#4] [g1,g3,b3,d4]", B: "[b0,b1,a3,d4,f#4] [a1,a3,c#4,e4]", C: "[b1,b2,f#3,b3]/7",
  D: "[d3,f#3,b3,d4,f#4]/2", E: "[d3,g3,b3,d4,g4]", F: "[e3,a3,c#4,e4,a4]", G: "[d3,f#3,b3] [d3,g3,b3]",
  H: "[d3,f#3,a3] [c#3,e3,a3]", I: "[b2,b3]/7",
  J: "[[b0,b1,a3,d4,f#4]@12 [a1,a3,c#4,e4]@11 [b0,b1,b3,d4,f#4]@12 [g1,g3,b3,d4]@12 [b0,b1,a3,d4,f#4]@12 [a1,a3,c#4,e4]@12 ~]/3", // Bm7 A Bm G Bm7 A
})).s("gm_string_ensemble_1").gain(0.15)

// other · lead 8 bass lead · "Saw Wave"
const lead_8_bass_lead = note(`<
  ~@9 A@7 ~ A@2 B C A@2 B C ~@16 D E D E D E D E A@2 B C A@2 B C ~@16 D E D E D E D E D E D E D E D E F ~ G@7 ~ A@2 B C
  A@2 B C D E D E D E D E D E D E D H I J ~@2
>`.pickRestart({
  A: "b2!2 ~ b1!2 ~ b2!2 ~ b1!2 ~ b2!2 ~ b1!2 ~ b2!2 ~ b1!2 ~",
  B: "g2!2 ~ g1!2 ~ g2!2 ~ g1!2 ~ g2!2 ~ g1!2 ~ g2!2 ~ g1!2 ~",
  C: "a2!2 ~ a1!2 ~ a2!2 ~ a1!2 ~ a2!2 ~ a1!2 ~ a2!2 ~ a1!2 ~",
  D: "b2!2 ~ b1!2 ~ b2!2 ~ b1!2 ~ g2!2 ~ g1!2 ~ g2!2 ~ g1!2 ~",
  E: "d3!2 ~ d2!2 ~ d3!2 ~ d2!2 ~ a2!2 ~ a1!2 ~ a2!2 ~ a1!2 ~", F: "a3!2 ~ a3!2 ~ a3!2 ~@16",
  G: "b1 b2 ~ b2 b1 ~ b2!2 ~ b1 b2 ~ b1 b2 ~ b2 b1 ~ b2!2 ~ b1 b2 ~",
  H: "d3!2 ~ d2!2 ~ d3!2 ~ d2!2 ~ a2!2 ~ a1!2 ~ a2!2 a1 ~ a1 b2",
  I: "~ b2 b1 ~ b1 b2 ~ b2 b1 ~ b1 g2 ~ g2 g1 ~ g1 g2 ~ g2 g1 ~ g1 d3",
  J: "~ d3 d2 ~ d2 d3 ~ d3 d2 ~ d2 a2 ~ a2 a1 ~ a1 a2 ~ a2 a1 ~ a1 ~",
})).s("gm_lead_8_bass_lead").gain(0.17).pan(0.8)

// other · lead 8 bass lead · "Saw Wave" · soft notes
const lead_8_bass_lead_soft = note(`<
  ~@89
  [~@9 a3!2 ~ a3!2 ~ a3!2 ~ a3!2 ~ a3!2 ~]
  ~
  [b2 b3 ~ b3 b2 ~ b3!2 ~ b2 b3 ~ b2 b3 ~ b3 b2 ~ b3!2 ~ b2 b3 ~]!7
  ~@27
>`).s("gm_lead_8_bass_lead").gain(0.1).pan(0.8)

// bass · synth bass 2 · "Synth.Bas"
const bass_2 = note("<~@25 A B A B A B A B ~@24 A B A B A B A B ~@60>".pickRestart({
  A: "b1@2 ~@4 b1@2 ~@2 b1@2 ~@3 b1@2 ~@2 b1@2 ~@3", B: "b1@2 ~@4 b1@2 ~@2 a1@2 ~@3 a1@2 ~@2 a1@2 ~@3",
})).s("gm_synth_bass_2").gain(0.28)

// chords · string ensemble 1 · "#St.Strin"
const string_ensemble_1_2 = note(`<
  ~@33 A B A B A B A B C@8 ~@16 A B A B A B A B C@16 ~@2 A B A B A B A ~@9 C@16 ~@2
>`.pickRestart({
  A: "[b3,d4,f#4] [g3,b3,d4]", B: "[a3,d4,f#4] [a3,c#4,e4]", C: "[b4,b5,b6]/8",
})).s("gm_string_ensemble_1").gain(0.3)

// other · lead 8 bass lead · "#Pulse Sa"
const lead_8_bass_lead_2 = note(`<
  ~@41 A B A B A B A B ~@24 A B A B A B A B A B A B A B A B ~@18 A B A B A B A B A B A B A C D E ~@2
>`.pickRestart({
  A: "f#4 ~@2 a4 ~@2 b4 ~@2 a4 d5 ~@2 a4 ~ b4 ~@2 a4 ~@2 b4 ~@2",
  B: "e4 ~@2 a4 ~@2 b4 ~@2 a4 d5 ~@2 a4 ~ b4 ~@2 a4 ~@2 b4 ~@2",
  C: "e4 ~@2 a4 ~@2 b4 ~@2 a4 d5 ~@2 a4 ~ b4 ~@2 a4 ~ b4 ~@2 f#4",
  D: "~@2 a4 ~@2 b4 ~@2 a4 ~ d5 ~@2 a4 b4 ~@2 a4 ~@2 b4 ~@2 e4",
  E: "~@2 a4 ~@2 b4 ~@2 a4 ~ d5 ~@2 a4 b4 ~@2 a4 ~@2 b4 ~@3",
})).s("gm_lead_8_bass_lead").gain(0.3).pan(1)

// bass · slap bass 2 · "Slap Bass" · A
const bass_3 = note("<~@89 [[a1,a2]@2 ~@2 [a1,a2]@2 ~@3 [a1,a2]@2 ~@4 [a1,a2]@2 ~ [a1,a2]@2 ~@4]!2 ~@34>")
  .s("gm_slap_bass_2").gain(0.1).pan(0.2)

// other · lead 1 square · "#Sine Wav"
const lead_1_square = note("<~@3 A@5 ~ B C D E ~@3 F ~@81 F ~@26>".pickRestart({
  A: "[c8@37 ~@3]/5", B: "~@5 b7@7 ~@12", C: "~@8 b7@7 ~@9", D: "~@11 b7@7 ~@6", E: "~@14 b7@7 ~@3", F: "b3@18 e5 ~@5",
})).s("gm_lead_1_square").gain(0.05).pan(1)

// drums · kick
const kick = s("bd").struct("<~@16 A B@7 A B@23 C B@7 A B@31 C B@2 A ~@6 A B@7 A B@13 D E F ~@2>".pickRestart({
  A: "x", B: "x!4", C: "x ~@5 x ~@5 x!2 ~ x ~@2 x ~@2 x ~@2", D: "x ~@5 x ~@5 x ~@5 x ~@4 x",
  E: "~@5 x ~@5 x ~@5 x ~@5 x", F: "~@5 x ~@5 x ~ x!2 ~@2 x ~@2 x ~@2 x",
})).gain(0.71)

// drums · clap
const clap = s("cp").struct("<~@9 [~ x ~ x]!7 ~ [~ x ~ x]!81 ~ [~ x ~ x]!22 [~@5 x ~@11 x ~@6]!2 ~@2>").gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@24 A ~@7 A ~@6 B C ~@15 A ~@7 A ~@6 B C ~@7 D ~@9 A ~@15 A ~@7 D ~@10>".pickRestart({
  A: "x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~", B: "~@21 x!2 ~",
  C: "~@3 x ~@2 x!2 ~@2 x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~", D: "~@3 x!2 ~@4 x ~@2 x!2 ~ x!2 ~ x!2 ~ x!2 ~",
})).gain(0.5)

// drums · hihat
const hihat = s("hh").struct("<~@9 A@7 ~ A@74 B@7 C A@21 D E F ~@2>".pickRestart({
  A: "x!2 ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~", B: "x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~", C: "x",
  D: "x!2 ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x!2", E: "~ x ~@2 x!2 ~ x ~@2 x!2 ~ x ~@2 x!2 ~ x ~@2 x!2",
  F: "~ x ~@2 x!2 ~ x ~@2 x!2 ~ x ~@2 x!2 ~ x ~@2 x ~",
})).gain(0.43)

// drums · open hat
const open_hat = s("oh").struct("<~@9 A@7 ~ A@74 ~@8 A@21 B C@2 ~@2>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~@3 x ~@5 x ~@5 x ~@4 x ~@3", C: "~ x ~@2 x ~@2 x ~@2 x ~",
})).gain(0.57)

// drums · crash
const crash = s("cr").struct(`<
  ~@17 A ~@15 A ~@7 A ~@7 A ~@15 A ~@7 A ~@7 A ~@7 A ~@9 A ~@7 A ~@7 A ~@6 B ~@2
>`.pickRestart({
  A: "x", B: "~@23 x",
})).gain(0.71)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@9 A@7 ~ A@81 B A@21 C D E ~@2>".pickRestart({
  A: "x ~@3 x ~ x ~@3 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~", B: "x", C: "x ~@3 x ~ x ~@3 x ~ x!2 ~@2 x ~ x!2 ~@2 x!2",
  D: "~@4 x!2 ~@4 x!2 ~ x ~@2 x!2 ~ x ~@2 x!2", E: "~@4 x!2 ~@4 x!2 ~ x ~@2 x!2 ~ x ~@2 x ~",
})).gain(2.17)

// drums · cabasa · soft notes
const cabasa_soft = s("cabasa:4").struct("<~@9 A@7 ~ A@81 ~ A@21 B C@2 ~@2>".pickRestart({
  A: "~ x ~ x ~@3 x ~ x ~@5 x ~@5 x ~@2", B: "~ x ~ x ~@3 x ~ x ~@5 x ~@4 x ~@3", C: "~ x!2 ~@4 x!2 ~@5 x ~@5 x ~@3",
})).gain(1.45)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@17
  [~ x ~ x ~ x ~ x]!73
  [~@3 x ~@5 x ~@4 x ~@5 x ~@3]
  ~@8
  [~ x ~@2 x ~@2 x ~@2 x ~]!24
  ~@2
>`).gain(0.64)

// drums · rim
const rim = s("rim").struct("<~@9 A@7 ~ A@7 B A@23 C A@7 B A@31 C A@9 B A@7 B A@13 D E F ~@2>".pickRestart({
  A: "x!4", B: "x", C: "x ~@5 x ~@5 x!2 ~ x ~@2 x ~@2 x ~@2", D: "x ~@5 x ~@5 x ~@5 x ~@4 x",
  E: "~@5 x ~@5 x ~@5 x ~@5 x", F: "~@5 x ~@5 x ~ x!2 ~@2 x ~@2 x ~@3",
})).gain(0.64)

stack(
  piano, bass, pad_warm, string_ensemble_1, lead_8_bass_lead, lead_8_bass_lead_soft, bass_2, string_ensemble_1_2,
  lead_8_bass_lead_2, bass_3, lead_1_square, kick, clap, snare, hihat, open_hat, crash, cabasa, cabasa_soft, shaker, rim
)

More by Corona