Strudelify

Why Worry?

Mouskouri Nana

KeyF majorTempo96 bpm
0:00/0:00
// Why Worry? — Mouskouri Nana
// 96 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 86 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(96/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B A B A B A B@2 C@2 D@2 E F G H E I J K L M G F N I O H P B A B A B A B A B A B A B A B A B@2 Q R S H A T A T A I U
  T A T A T A I V H E B A B A B A B A B D@5 W@2 M
>`.pickRestart({
  A: "f3@8 ~@2 f3 ~ f3@9 ~ f3 ~", B: "bb2@8 ~@2 bb2 ~ c3@8 ~@2 c3 ~", C: "bb2@8 ~@2 bb2 ~ bb2@9 ~ bb2 ~",
  D: "c3@8 ~@2 c3 ~ c3@8 g2@2 a2@2", E: "f3@9 ~ f3 ~ f3@9 ~ f3 ~", F: "c3@9 ~ c3 ~ c3@7 ~ d3 ~ e3 ~",
  G: "f3@8 ~@2 f3 ~ f3@8 c3@2 d3 ~", H: "c3@9 ~ c3 ~ c3@9 ~ c3 ~", I: "bb2@8 ~@2 bb2 ~ g3@8 ~@2 g3 ~",
  J: "c3@9 ~ e3 ~ d3@9 ~ f3 ~", K: "c3@9 ~ c3 ~ c3@7 ~ d3 ~ g3 ~", L: "f3@9 ~ f3 ~ f3@7 ~ e3 ~ a2 ~",
  M: "c3@8 ~@2 c3 ~ c3@8 g2@2 a2 ~", N: "f3@9 ~ f3 ~ f3@7 ~ d3 ~ c3 ~", O: "c3@9 ~ db3 ~ d3@8 ~@2 d3 ~",
  P: "f3@9 ~ f3 ~ f3@7 ~ d3 ~ a2 ~", Q: "bb2@8 ~@2 bb2 ~ bb2@7 ~ f2 ~ g2@2", R: "bb2@9 ~ bb2 ~ bb2@9 ~ bb2 ~",
  S: "c3@8 ~@2 c3 ~ c3@7 ~ g2 ~ a2@2", T: "c3@8 ~@2 c3 ~ c3@9 ~ c3 ~", U: "c3@8 ~@2 c3 ~ d3@8 ~@2 d3 ~",
  V: "c3@9 ~ e3 ~ d3@8 ~@2 d3 ~", W: "c3@9 ~ c3 ~ c3@7 ~ a2 ~ b2 ~",
})).s("gm_acoustic_bass").gain(0.38)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  A B C B C D C E F G H I J A K C L M N O P A Q M Q M N R S C E A E C E A F C B C B C F C E C B E T U V@2 A L A L C W X
  Y C L C K C W Z S C F A F C D C B A B I J AA AB I J Y P
>`.pickRestart({
  A: "~@20 a4@2 f4 ~, [f2,c4]@11 f2@12 ~, ~ f4@4 f4@2 f4@4 ~, ~@4 a4@4 a4@8 a4@2 c5@5 ~, ~@6 c5@5 ~ c4@11 ~", // F5
  B: "~@8 d5@2 bb4 ~@9 g4@2 e4 ~, bb2 c3, f4@5 ~ c4@5 ~, ~ bb4@4 ~@2 e4@4 ~, ~@2 d5 f5@2 ~@3 g4 c5@2 ~",
  C: "~@10 f4@2 ~@10 f4 ~, c4@11 ~ [f2,c4]@12, ~ f4@4 ~@2 f4@4 ~, ~ a4!2 ~ a4!2, ~@6 c5@5 ~@7 c5@6", // F5
  D: "~@10 f4 ~@9 g4@2 e4 ~, [bb1,f4]@9 bb2@2 ~ c3@12, bb2@8 d5@3 ~@3 e4@8 ~@2, ~@2 bb4@9 ~ c4@10 ~@2, ~@4 d5@2 f5@5 ~@5 g4@2 c5@4 ~@2", // Bb5
  E: "~@10 f4 ~@11 c4 ~, [bb1,f4]@9 bb2@2 ~ [c2,c4]@9 c3@2 ~, bb2@8 d5@3 ~@3 e4@9 ~, ~@2 bb4@9 ~ c3@8 g4@3 ~, ~@4 d5@2 f5@5 ~@5 g4@2 c5@5 ~", // Bb5 C
  F: "~@8 d5@2 bb4 ~@11 c4 ~, bb2@12 [c2,c4]@9 c3@2 ~, f4@10 ~@2 c3@8 g4@3 ~, ~@2 bb4@8 ~@4 e4@9 ~, ~@4 d5@2 f5@4 ~@6 g4@2 c5@5 ~", // C
  G: "~@20 d5@2 bb4 ~, [bb2,f4]@11 bb2@12 ~, ~ bb4@4 bb4@2 bb4@4 ~, ~@4 d5@4 d5@8 d5@2 f5@5 ~, ~@6 f5@5 ~ [bb1,f4]@11 ~", // Bb5
  H: "~@10 bb4@2 ~@10 bb4 ~, f4@11 ~ [bb2,f4]@12, ~ bb4@4 ~@2 bb4@4 ~, ~ d5!2 ~ d5!2, ~@6 f5@5 ~@7 f5@6", // Bb5
  I: "~@21 g4@2 e4, c3@14 ~ c3@9, c4@5 g4@15 c5@4, ~@2 e4@14 e4@7 ~, ~ c4@3",
  J: "~@6 [g3,e4,g4] ~, c4@7 ~, c3@10 g3@6 c3@5 ~@3, ~@2 c2@19 ~@3, ~@2 g3 [e4,g4]@6 ~@3", // C Em
  K: "~@10 e4@2 ~@10 e4 ~, c4@11 ~ [c3,c4]@12, ~ e4@4 ~@2 e4@4 ~, ~ g4!2 ~ g4!2, ~@6 bb4@5 ~@7 bb4@6", // C
  L: "~@20 g4@2 e4 ~, [c3,c4]@11 c3@12 ~, ~ e4@4 e4@2 e4@4 ~, ~@4 g4@4 g4@8 g4@2 bb4@5 ~, ~@6 bb4@5 ~ [c2,c4]@11 ~", // C
  M: "~@6 c4@2 ~@3 f4, f2@2 f2, f4@2 f4@2 a4@5 c5@3, ~ c4@4 f4@5 a4@2, ~@6 c5@11 c4@7",
  N: "f4@6 ~@4 [bb4,d5] ~@9 b4@2 g4 ~, [bb1,d5,f5]@11 ~@7 d5@5 ~, [bb2,bb4]@4 bb4 ~@3 b4@2 ~@2, ~@6 f4@5 ~@3 g4@8 ~@2, ~@9 bb2@2 ~ [g2,d4]@11 ~", // Bb G5
  O: "c4@6 ~@4 [e4,g4] ~@9 a4@2 f4 ~, [c2,g4,c5]@11 ~@7 d5@5 ~, [c3,e4]@4 e4 ~@2 f4@4 ~, ~@6 c4@5 ~@5 a4@4 ~@4, ~@9 c3@2 ~ [d3,d4]@11 ~", // Em C5 C D
  P: "~@20 g4@2 e4 ~, [c3,c4]@11 c3@12 ~, ~ e4@4 e4@2 e4@4 ~, ~@4 g4@4 g4@8 g4@2 c5@5 ~, ~@6 c5@5 ~ [c2,c4]@11 ~", // C
  Q: "~@6 c4@2 ~@3 e4, c2@5 g4, c3@5 e4@4 bb4@3, e4@2 e4 bb4@5 c3@4, ~@2 c4@6 g4@9 c4@7",
  R: "~@8 g4@2 e4 ~@9 a4@2 f4 ~, [c3,c4]@11 ~ [d3,d4]@11 ~, ~ e4@4 ~@2 f4@4 ~, ~ g4 ~@2 a4 ~, ~@6 c5@5 ~@7 d5@5 ~", // C D
  S: "~@6 c4@2 ~@3 e4, c2@5 g4, c3@5 e4@4 c5@3, e4@2 e4 c5@5 c3@4, ~@2 c4@6 g4@9 c4@7",
  T: "~@2 d5 f5 ~ bb4 ~@2 d5 f5 ~ bb4, f4@11 ~ f4@9 ~@3, ~@3 bb4@4 ~ d5@4 ~@2 bb4@4 ~@2 d5@4",
  U: "~@4 d5@2 f5@2 ~@2 bb4@2 ~@4 d5@2 f5@2 d5@2 bb4 ~, f4@9 ~@3 f4@8 ~@4, ~@2 bb4@5 ~ d5@4 ~@2 bb4@5 ~@5",
  V: "[~@10 e4@2 ~@20 g4@2 ~ g2 ~@8 g4@2 e4 ~, c4@11 ~ c4@11 c3@11 g4@6 g4@2 c5@4 ~@2, ~@2 e4@8 ~@4 e4@8 e4@2 c2@23 ~, ~@4 g4@4 g4@4 ~@4 g4@4 g4@4 c4@10 e4@2 [c3,c4]@11 ~, ~@6 c5@5 ~@7 c5@6 ~@2 e4@2 g4@2 c5@6 ~@2 e4@8 ~@2]/2", // C
  W: "~@8 d5@2 bb4 ~@9 b4@2 g4 ~, bb2 g2, f4@5 ~ d4@5 ~, ~ bb4@4 ~@2 g4@4 ~, ~@2 d5 f5@2 ~@3 b4 d5@2 ~",
  X: "~@10 c4 ~@11 d4 ~, [c2,c4]@9 c3@2 ~ [d2,d4]@9 d3@2 ~, c3@8 g4@3 ~@3 f4@9 ~, ~@2 e4@9 ~ d3@8 a4@3 ~, ~@4 g4@2 c5@5 ~@5 a4@2 d5@5 ~", // C D
  Y: "~@10 e4@2 ~@10 e4 ~, c4@11 ~ [c3,c4]@12, ~ e4@4 ~@2 e4@4 ~, ~ g4!2 ~ g4!2, ~@6 c5@5 ~@7 c5@6", // C
  Z: "~@8 g4@2 e4 ~ d4@6 ~@4 [f4,a4] ~, [c3,c4]@11 ~ [d2,a4,d5]@11 ~, ~@2 e4@8 ~@2 [d3,f4]@9 d3@2 ~, ~@4 g4@4 ~@10 d4@5 ~, ~@6 c5@5 ~@9 f4@2 ~@2", // F C D5 Dm
  AA: "~@2 g4 c5 ~ e4 ~@2 g4 c5 ~ e4, c4@11 ~ c4@9 ~@3, ~@3 e4@4 ~ g4@4 ~@2 e4@4 ~@2 g4@4",
  AB: "~@4 g4@2 c5@2 ~@2 e4@2 ~@4 g4@2 c5@2 g4@2 e4 ~, c4@9 ~@3 c4@8 ~@4, ~@2 e4@5 ~ g4@4 ~@2 e4@5 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.3)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon_2 = note(`<
  A B A C A B A C@2 D@2 ~@25 E F G A B A C A B A C@2 D@2 ~@25 E F G ~@8
>`.pickRestart({
  A: "f4 c4 f4 g4 a4 g4 f4 e4", B: "[d4,f4]@3 [e4,g4]@5", C: "[bb3,d4] [c4,e4] [d4,f4] [c4,e4]@5",
  D: "[[bb3,d4] [c4,e4] [d4,f4]@8 ~@6]/2", E: "~ d4 [d4,bb4]@2 [c4,a4]@2 [c4,a4] [bb3,g4]", F: "[a3,f4] ~@3",
  G: "~@2 [d4,bb4]@2 [c4,a4]@2 [c4,a4] [bb3,g4]", // Gm F Eb
})).s("gm_acoustic_guitar_nylon").gain(0.48)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@11 A@7 B@6 C@8 D@5 ~@13 A@7 B@6 C@8 D@5 ~@2 E@8>".pickRestart({
  A: "[~@25 g4 ~@2 bb4!2 ~ a4 f4@6 ~@3 g4 ~@2 bb4!2 ~ a4 a4@6 ~ g4, ~@3 f6@15 c6@5 a5@10 c6@3 bb5@12 a4@6 g4@3 f4@39 a4@30 g4@36 a4@6, ~@2 e6@5 g5@3 e6@5 g5@12 a4@3 bb4@13 a4@3 bb4@10, ~@3 c6@2 d6@4 f6@5 c6@12 g4@14 e4@16, ~@4 bb5@4 bb6@5 d6@11 e4@14 f4@10 c5@8]/7",
  B: "[bb4 ~@15 e4@4 ~@13 g4 ~@2 bb4!2 ~ a4 f4@6 f4@2, f4@4 b4@12 g4@4 e4@6 g4 f4@13 a4@8, ~ bb4@4 g4@2 f4 g3@8 c4@4 c5@14 g4@14, ~ c5@3 [c4,e4]@2 [a3,d4]@6 a4@4 e4@8, ~@3 d5@9 f4@10 c4@13 a4@3 bb4@10]/6", // C D5
  C: "[~ g4 ~@2 bb4!2 ~ a4 a4@6 ~@3 bb4 ~@14 e4@4 ~@13 bb4!2 ~ g4 ~@9 e4@2, e4@15 g4@4 c5@5 [c4,e4]@4 [a3,d4]@12 a4@13 g4 f4 g4@9, ~@2 g4@12 a4@7 b4@11 c4@10 g4@6 d4@16, ~@3 a4@4 ~ c5@10 bb4@4 g4 f4 g3@8 g4@4 [e4,c5]@15 bb4@13, ~@6 bb4@10 f4@4 d5@8 f4@10 bb4@5 f4@9 e4@4 [f4,a4]@8]/8", // C D5 C F
  D: "[~ bb4!2 ~ g4 ~@12 bb4!2 ~@5 [f4,a4]@16, d4 a4 d4@2 ~, ~@3 bb4@11 e4@16 ~@10, ~@4 e4@4 f4@12 a4 g4 f4 g4@16 ~, ~@5 g4 f4 g4@12 bb4@16 ~@5]/5", // F
  E: "[~@55 g6@8 ~, ~@3 f6@15 c6@5 a5@16 d6@3 c6@3 g5@27 g6@36 d6@12 f6@6 c6@3 bb5@30 d6@3 f6@6 ~@24, ~@2 e6@5 g5@3 e6@12 d6@12 c6 bb5@4 bb6@13 c6@4 ~@8, ~@9 c6@6 d6@12 f6@6 c6@3 bb5@33 f6@27 f6@15 c6@5 a5@16 d6@3 c6@3 g5@30 ~@24, ~@4 bb5@4 bb6@13 c6@12 e6@5 g5@3 e6@15 ~@8]/8",
})).s("gm_epiano1").gain(0.4)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  A B A B A B A B@2 C@4 A D A D A E F G A D A D A E F G A B A H A B A B A B I B A B A B A B@2 C@4 A D A D A E F G A D A
  D A E F G A B A H A B A B A B G@8
>`.pickRestart({
  A: "[f5,a5,c6]", B: "[f5,bb5,d6] [c5,e5,g5]", C: "[f5,bb5,d6]", D: "[g5,bb5,c6,e6]", E: "[f5,bb5,d6] [g5,b5,d6]",
  F: "[c5,e5,g5] [d5,f5,a5]", G: "[c5,e5,g5]", H: "[f5,bb5,d6] [e5,g5]", I: "[c5,e5,f5,g5,a5,c6]",
})).s("gm_string_ensemble_2").gain(0.07)

// drums · kick
const kick = s("bd").struct("x!2").gain(0.29)

// drums · kick · soft notes
const kick_soft = s("bd").struct("~@5 x ~@6").gain(0.19)

// drums · rim
const rim = s("rim").struct("<A@11 ~@18 A@37 ~@2 A@10 ~@3 A ~@3 A>".pickRestart({
  A: "~ x ~ x",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct("<~@10 A B@18 A ~@19 A ~@15 A B@2 A ~@8 A B@3 A B@3 A>".pickRestart({
  A: "~@8 x!2 ~ x", B: "~ x ~ x",
})).gain(0.33)

// drums · hihat
const hihat = s("hh").struct("<A@11 ~@18 A@37 ~@2 A@10 ~@3 A ~@3 A>".pickRestart({
  A: "x!12",
})).gain(0.33)

// drums · ride
const ride = s("rd").struct("<~@10 A B@18 A ~@19 A ~@15 A B@2 A ~@8 A B@3 A B@3 A>".pickRestart({
  A: "x!2 ~@2", B: "x!12",
})).gain(0.33)

stack(
  bass, acoustic_guitar_nylon, acoustic_guitar_nylon_2, epiano1, string_ensemble_2, kick, kick_soft, rim, snare, hihat,
  ride
)

More by Mouskouri Nana