Strudelify
KeyB♭ majorTempo80 bpm
0:00/0:00
// Girassol — Whindersson Nunes
// 80 bpm, 12/8, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5877244; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 45 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/6)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · flute · "Flauta Transversal"
const flute = note(`<
  ~@3 A B C D E B F D E G H G H G H I J ~@3 A B C D E B F D E G H G H G H I J K L M ~@2
>`.pickRestart({
  A: "~@11 bb5", B: "a5@3 f5!2 d5!2 c5 d5 f5 d5 c5 d5@6 ~@4 bb5@2", C: "a5@3 f5!2 d5!2 c5 d5 f5 d5 c5 d5@6 ~@4 bb4@2",
  D: "c5@3 bb4 c5 bb4 c5 bb4 c5 d5 c5 bb4 g4@8 ~@2 bb4@2", E: "c5@3 bb4 c5 bb4 c5 bb4 c5 d5 eb5 d5 d5@8 ~@2 bb5@2",
  F: "a5@3 f5!2 d5!2 c5 d5 f5 g5 d5 d5@6 ~@4 bb4@2", G: "c6@3 bb5 c6 bb5 c6 bb5 c6 d6 ~ c6 bb5 bb5@6 ~@3 bb5@2",
  H: "c6@3 bb5 c6 bb5 c6 bb5 c6 d6 ~ eb6 d6 d6@6 ~@3 bb5@2", I: "c6@3 bb5 c6 bb5 c6 d6 ~ c6 d6 c6 bb5 g5@6 ~@3 bb5@2",
  J: "c6@3 bb5 c6 bb5 c6 bb5 c6 d6 ~ eb6 d6 d6@6 ~@5", K: "~@14 bb5@2 c6 d6 c6 bb5 bb5@4", L: "~@9 c6!3",
  M: "c6!2 bb5 c6@2 ~@7",
})).s("gm_flute").gain(0.3)

// chords · piano
const piano = note(`<
  A B C D E F G H E I G H J K L M J K N O A B C D E F G H E I G H J K L M J K N O P Q R S T
>`.pickRestart({
  A: "[bb1,bb2] [bb1,bb2,bb3,d4,f4]!3", B: "[a1,a2] [a1,a2,f3,a3,c4]!3", C: "[g1,g2] [g1,g2,g3,bb3,d4]!3",
  D: "[eb1,eb2]@3 [eb1,eb2,eb3,g3,bb3]@3 [eb1,eb2,eb3,g3,bb3]@3 ~@2 bb5, ~@3 [eb1,eb2,eb3,g3,bb3]", // Eb
  E: "a5@3 f5!2 d5!2 c5 d5 f5 d5 c5 [bb1,bb2,bb3,d4,f4,d5]@6 ~@4 bb5@2, [bb1,bb2] [bb1,bb2,bb3,d4,f4] ~ [bb1,bb2,bb3,d4,f4]", // Bb
  F: "a5@3 f5!2 d5!2 c5 d5 f5 d5 c5 [a1,a2,f3,a3,c4,d5]@6 ~@4 bb4@2, [a1,a2] [a1,a2,f3,a3,c4] ~ [a1,a2,f3,a3,c4]", // Dm7 A F
  G: "c5@3 bb4 c5 bb4 c5 bb4 c5 d5 c5 bb4 [g1,g2,g3,bb3,d4]@6 ~@4 bb4@2, [g1,g2]@3 [g1,g2,g3,bb3,d4]@3 g4@4 ~@2, ~@3 [g1,g2,g3,bb3,d4]", // Gm G Gm
  H: "c5@3 bb4 c5 bb4 c5 bb4 c5 d5 eb5 d5 [eb1,eb2,eb3,g3,bb3]@6 ~@4 bb5@2, [eb1,eb2]@3 [eb1,eb2,eb3,g3,bb3]@3 d5@4 ~@2, ~@3 [eb1,eb2,eb3,g3,bb3]", // Eb
  I: "a5@3 f5!2 d5!2 c5 d5 f5 g5 d5 [a1,a2,f3,a3,c4,d5]@6 ~@4 bb4@2, [a1,a2] [a1,a2,f3,a3,c4] ~ [a1,a2,f3,a3,c4]", // Dm7 A F
  J: "c6@3 bb5 c6 bb5 c6 bb5 c6 d6 ~ c6 bb5 bb5@5 ~@4 bb5@2, [bb1,bb2] [bb1,bb2,bb3,d4,f4]!3", // Bb
  K: "c6@3 bb5 c6 bb5 c6 bb5 c6 d6 ~ eb6 d6 d6@5 ~@4 bb5@2, [a1,a2] [a1,a2,f3,a3,c4]!3", // A F
  L: "c6@3 bb5 c6 bb5 c6 bb5 c6 d6 ~ c6 bb5 bb5@5 ~@4 bb5@2, [g1,g2] [g1,g2,g3,bb3,d4]!3", // G Gm
  M: "c6@3 bb5 c6 bb5 c6 bb5 c6 d6 ~ eb6 d6 d6@5 ~@4 bb5@2, [eb1,eb2] [eb1,eb2,eb3,g3,bb3]!3", // Eb
  N: "c6@3 bb5 c6 bb5 c6 d6 ~ c6 d6 c6 bb5 g5@5 ~@4 bb5@2, [g1,g2] [g1,g2,g3,bb3,d4]!3", // G Gm
  O: "c6@3 bb5 c6 bb5 c6 bb5 c6 d6 ~ eb6 d6 d6@5 [eb1,eb2,eb3,g3,bb3]@6, [eb1,eb2] [eb1,eb2,eb3,g3,bb3]!2 ~", // Eb
  P: "[bb1,bb2]@6 [bb1,bb2,bb3,d4,f4]@6 ~@2 bb5@2 c6 d6 c6 bb5 bb5@4, ~@2 [bb1,bb2,bb3,d4,f4]!2", // Bb
  Q: "[a1,a2]@3 [a1,a2,f3,a3,c4]@3 [a1,a2,f3,a3,c4]@3 c6!3, ~@3 [a1,a2,f3,a3,c4]", // A F
  R: "c6!2 bb5 [g1,g2,g3,bb3,d4]@3 [g1,g2,g3,bb3,d4]@3 [g1,g2,g3,bb3,d4]@3, [g1,g2]@3 c6@2 ~@7", // Gm G
  S: "[eb1,eb2] [eb1,eb2,eb3,g3,bb3]!3", T: "[bb1,bb2,bb3,d4,f4]@23 ~",
})).s("gm_piano").gain(0.22)

// other · cello · "Violoncelo"
const cello = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D E
>`.pickRestart({
  A: "bb3", B: "a3", C: "g3", D: "eb3", E: "[bb2,bb3]",
})).s("gm_cello").gain(0.12)

stack(flute, piano, cello)