Strudelify

I was made for lovin you

C. Mancuso

KeyB♭ majorTempo120 bpm
0:00/0:00
// I was made for lovin you — C. Mancuso
// 120 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5628007; license: https://creativecommons.org/publicdomain/zero/1.0/
// 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.

// chords · flute · "Flauto"
const flute = note(`<
  ~@2 A@2 B@2 C D E F G@2 H@2 I@2 J@2 K@2 L@2 M@2 N@2 K@2 L@2 O@2 P@2 G@2 H@2 Q@2 H@2 R S T U V W X@2 R S T U V W Y Z
  AA@2 AB@2 AA@2 AB@2 AC AD AE AF AG AH AI@2 AC AJ AK AL AM AN AO@2 AA@2 AB@2 AA@2 AB@2 G@2 H@2 I@2 J@2 AP
>`.pickRestart({
  A: "[~@2 c6@2 bb5@3 c6@2 c6 bb5@4 ~@2]/2", B: "[~@2 f5@2 eb5@3 bb5@2 bb5 a5@4 ~@2]/2", C: "g5@15 ~",
  D: "~@8 g5 f5 d5 ~ c5 bb4 g4 ~", E: "c5 ~@3", F: "g6@2 f6 d6 c6@2 d6 bb5 c6@2 d6 bb5 g5@2 d5@2",
  G: "[[d4,g4]@2 [d4,a4]@2 [d4,bb4]@2 [d4,c5] [d4,d5]@2 [d4,d5] [d4,c5]@2 [d4,bb4]@2 [d4,a4]@2]/2", // G5 D5 Gm D7 D D7 Gm D5
  H: "[[eb4,g4]@2 [eb4,a4]@2 [eb4,bb4]@2 [eb4,c5] [g4,d5]@2 [g4,d5] [f4,c5]@4 ~@2]/2", // Eb Ebdim Eb5 Cm G5 F5
  I: "[[g4,g5]@2 [g4,a5]@2 [g4,bb5]@2 [g4,c6] [g4,d6]@2 [g4,d6] [g4,c6]@2 [g4,bb5]@2 [g4,a5]@2]/2", // G Gsus2 Gm C5 G5 C5 Gm Gsus2
  J: "[[c5,g5]@2 [c5,a5]@2 [c5,bb5]@2 [c5,c6] [bb4,d6]@2 [bb4,d6] [a4,c6]@4 ~@2]/2", K: "[g4@6 d4@25 ~]/2",
  L: "[bb4@6 f4@25 ~]/2", M: "[d4@6 a4@25 ~]/2", N: "[g4@6 d5@25 ~]/2", O: "[d5@6 a4@25 ~]/2",
  P: "[c5@6 g4@17 ~ [gb5,g5] [eb5,e5,f5] [c5,db5,d5] [a4,bb4,b4] g4@4, ~@28 ab4 ~@3]/2", // Gmaj7
  Q: "[[d4,g4]@2 [d4,a4]@2 [g4,bb4]@2 [a4,c5] [bb4,d5]@2 [bb4,d5] [a4,c5]@2 [g4,bb4]@2 [d4,a4]@2]/2", // G5 D5 Gm Am Bb Am Gm D5
  R: "~ bb4 d5 g5 bb5 g5 d5 bb4", S: "g4 bb4 d5 g5 bb5 g5 d5 bb4", T: "~ bb4 d5 f5 bb5 f5 d5 bb4",
  U: "f4 bb4 d5 f5 bb5 f5 d5 bb4", V: "~ a4 d5 f5 a5 f5 d5 a4", W: "f4 a4 d5 f5 a5 f5 d5 a4",
  X: "~ g4 bb4 d5 g5 d5 bb4 g4", Y: "~ c5 e5 g5 c6 g5 e5 c5", Z: "g4 c5 e5 g5 c6 g5 e5 ~",
  AA: "[[g4,d5]@2 [a4,d5]@2 [bb4,d5]@2 c5 d5@2 d5 [bb4,c5]@2 [bb4,d5]@2 [a4,d5]@2]/2", // G5 D5 Bb Bbsus2 Bb D5
  AB: "[[g4,eb5]@2 [a4,eb5]@2 [bb4,eb5]@2 [c5,eb5] [d5,g5]@2 [d5,g5] [c5,f5]@4 ~@2]/2", AC: "~@8 f5 g5 bb5 ~ c6@2 d6@2",
  AD: "~@8 d6 bb5 g5 f5 d5 c5 bb4 ~", AE: "~@2 g5 f5 g5@2 bb5@2 d6 c6 bb5 ~ c6 bb5 f5@2",
  AF: "~@4 g5 d5 bb4 d5 g4@4 ~@4", AG: "~@4 c5 f5 a5 ~@9", AH: "~@8 d5 f5 g5 bb5 d6 f6 d6 ~",
  AI: "[~@4 f6 d6 c6 bb5 f5 d5 c5 bb4 ~@2 f5@4 f5@2 g5@8 ~@4]/2", AJ: "~@6 f6 d6 g6@2 f6 d6 c6@2 bb5@2",
  AK: "~@4 f5 g5 bb5 c6 d6@2 c6@2 bb5@2 ~@2", AL: "~ g5 d5 bb4", AM: "~@4 f5 g5 a5 c6 g5@4 ~@2 f5@2",
  AN: "d5@8 ~@4 d5 f5 a5 c6", AO: "[f6 d6 c6 ~ a5 g5 f5 ~ d5 c5 a4 ~@3 f5@4 f5@2 g5@8 ~@4]/2", AP: "f5@2 g5@13 ~",
})).s("gm_flute").gain(0.3)

// chords · piano
const piano = note(`<
  ~@6 A@2 B@2 A@2 B@2 A@2 B@2 C@2 D@2 E@2 C@4 D@2 E@2 F@2 A@2 B@2 A@2 B@2 G@2 H@2 I@2 G@4 H@2 I@2 J@2 K@2 L@2 K@2 L@2
  M@2 N@2 M@2 N@2 O@2 N@2 O@2 P@2 A@2 B@2 A@2 B@2 K@2 L@2 K@2 L@2 Q
>`.pickRestart({
  A: "[g2 bb2 d3 g3 bb2 d3 g3 d3 g2 [bb2,a4,c5] d3 g3 bb2 d3 g3 d3, ~@4 [d4,a4,c5]@4 [d4,g4,bb4]@6 [d4,a4,c5]@4 [d4,g4]@13 ~, ~@20 bb4@11 ~]/2", // F D7 Gm D7 G5
  B: "[c2 eb2 g2 c3 eb2 g2 c3 g2 f2 [a2,g4,bb4] c3 f3 a2 c3 f3 c3, ~@4 [a3,d4,f4]@4 [bb3,eb4]@6 [d4,g4,bb4]@4 [c4,f4]@13 ~, ~@20 a4@11 ~]/2", // Eb Dm Eb5 Gm F5
  C: "[g2 g3 g2 g3 g2!2 g3 g2 g2 g3 g2 g3 g2!2 g3 g2, [bb3,d4,g4]@15 ~]/2", // Gm
  D: "[bb2 bb3 bb2 bb3 bb2!2 bb3 bb2 bb2 bb3 bb2 bb3 bb2!2 bb3 bb2, [d4,f4,bb4]@15 ~]/2", // Bb
  E: "[d2 d3 d2 d3 d2!2 d3 d2 d2 d3 d2 d3 d2!2 d3 d2, [f3,a3,d4]@15 ~]/2", // Dm
  F: "[c3 c4 c3 c4 c3!2 c4 c3 c3 c4 c3 c4 c3!2 c4 c3, [g3,e4]@15 ~]/2", // C
  G: "[g2 bb2 d3 g3 bb2 d3 g3 d3 g2 bb2 d3 g3 bb2 d3 g3 d3, [bb3,d4,g4]@15 ~]/2", // Gm
  H: "[bb2 d3 f3 bb3 d3 f3 bb3 f3 bb2 d3 f3 bb3 d3 f3 bb3 f3, [d4,f4,bb4]@15 ~]/2", // Bb
  I: "[d2 f2 a2 d3 f2 a2 d3 a2 d2 f2 a2 d3 f2 a2 d3 a2, [f3,a3,d4]@15 ~]/2", // Dm
  J: "[c3 e3 g3 c4 e3 g3 c4 g3 c3 e3 g3 c4 e3 g3 c4 g3, [e4,g4]@15 ~]/2", // Em
  K: "[g2 g3 g2 g3 g2!2 g3 g2 g2 [g3,a4,c5] g2 g3 g2!2 g3 g2, ~@4 [d4,a4,c5]@4 [d4,g4,bb4]@6 [d4,a4,c5]@4 [d4,g4]@13 ~, ~@20 bb4@11 ~]/2", // Am7 D7 Gm D7 G5
  L: "[c2 c3 c2 c3 c2!2 c3 c2 f2 [f3,g4,bb4] f2 f3 f2!2 f3 f2, ~@4 [a3,d4,f4]@4 [bb3,eb4]@6 [d4,g4,bb4]@4 [c4,f4]@13 ~, ~@20 a4@11 ~]/2", // Gm7 Dm Eb5 Gm F5
  M: "[~@2 [a4,c5]@12 [d3,d4,g4,bb4,d5]@17 ~, [c3,c4]@7 ~@9, ~ [d4,f4]@13 ~@18]/2", // Am Gm C Dm
  N: "[~@2 f5@12 [f3,f4,a4,c5,f5]@4 [f3,f4,a4,c5,f5]@2 [g3,g4,bb4,d5,g5]@11 ~, [f3,f4]@7 ~@9, ~ [a4,c5]@13 ~@18]/2", // F Gm F Am
  O: "[~@2 [a4,c5]@12 [f3,d4,f4]@2 [d3,d4]@15 ~, [c3,c4]@7 ~@9, ~ [d4,f4]@13 [g4,bb4,d5]@17 ~]/2", // Am Dm D C Dm Gm
  P: "[~@2 f5@12 [c3,c4,f4,a4,c5,f5]@4 [f4,a4,d5,f5]@2 [g4,bb4,d5,g5]@11 ~, [f3,f4]@14 ~@4 [d3,d4]@13 ~, ~ [a4,c5]@13 ~@18]/2", // F Dm Gm F D Am
  Q: "~ g4@7, [g2,g3,g5], ~ [bb4,d5]@15", // G Bb
})).s("gm_piano").gain(0.3)

// chords · piano · soft notes
const piano_soft = note("<A@2 B@2 C@2 ~@93>".pickRestart({
  A: "[g4 bb4 d5 g5 bb4 d5 g5 d5 g4 bb4 d5 g5 bb4 d5 g5 d5, [g2,g3]@15 ~]/2", // G
  B: "[g2 bb2 d3 g3 bb2 d3 g3 d3 g2 [bb2,a4,c5] d3 g3 bb2 d3 g3 d3, ~@4 [d4,a4,c5]@4 [d4,g4,bb4]@6 [d4,a4,c5]@4 [d4,g4]@13 ~, ~@20 bb4@11 ~]/2", // F D7 Gm D7 G5
  C: "[c2 eb2 g2 c3 eb2 g2 c3 g2 f2 [a2,g4,bb4] c3 f3 a2 c3 f3 c3, ~@4 [a3,d4,f4]@4 [bb3,eb4]@6 [d4,g4,bb4]@4 [c4,f4]@13 ~, ~@20 a4@11 ~]/2", // Eb Dm Eb5 Gm F5
})).s("gm_piano").gain(0.2)

stack(flute, piano, piano_soft)

More by C. Mancuso