Strudelify
True Blue cover art

1986 · True Blue

True Blue

Madonna

KeyB♭ majorTempo116 bpm
0:00/0:00
// True Blue — Madonna
// 116 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 5 "BASS" named as a bass, played on electric bass finger (its electric guitar jazz patch is not one)
// note: Full arrangement: all 106 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(116/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, A@4 for four bars: edit a riff to change every repeat.

// chords · synth strings 1 · "SYN STRING"
const synth_strings_1 = note(`<
  ~ A@7 B@7 C@8 D@2 E@6 F@2 G@6 H@2 I@8 G@6 J@4 K@8 L@2 M@2 N O@8 P G@6 D@2 Q@8 R@8 S
>`.pickRestart({
  A: "[f4@47 ~@26 eb4@21 ~ f4@48 g4@24 eb4, bb4, d4@73 ~@22 d4@69 ~@4, ~@47 g4@48 ~@73]/7",
  B: "[~@23 f4@49 ~@48 eb4@46 ~@2, ~@23 d4@97 ~@48, ~@3 g4@4]/7",
  C: "[[f4,a4]@47 f4@49 ~@48 eb4@46 ~@2, c4@46 ~ bb4@143 ~@2, ~@47 d4@97 ~@48, ~ g4]/8", D: "[[f4,a4], c4@23 ~]/2",
  E: "[f4@48 ~@47 eb4@47 ~@2, bb4@143 ~, d4@2 ~, ~ g4@2]/6", F: "[[c4,f4]@15 ~, a4]/2",
  G: "[f4@24 ~@24 eb4@23 ~, bb4@143 ~, d4@2 ~, ~ g4@2]/6", H: "[c4,f4,a4]/2",
  I: "[~@95 eb4@47 ~@2 c4@47 ~, bb4@143 a4@49, d4@97 ~@46 f4@47 ~@2, ~ g4@2 ~]/8",
  J: "[[f4,a4]@47 ~ [d4,bb4]@46 ~@2, c4@46 ~ f4@47 ~@2]/4", // F Gm
  K: "[d4@47 eb4@47 ~@2 f4@47 ~ eb4@23 ~ a3@24, [g4,bb4]@96 a4@46 ~ g4@24 c4@22 ~@3, ~@96 c4@44 ~@3 [bb3,d4]@22 ~@2 [d4,f4]@24 ~]/8", // Gm Bb Dm
  L: "[[bb3,eb4,g4] [a3,f4], d4@23 ~, ~@12 c4@11 ~]/2", // Eb Dm
  M: "[[bb3,g4]@11 f4@12 [bb3,eb4,g4]@25, d4@9 ~@2 c4@11 ~@26, ~@11 a3@8 ~@29]/2", N: "[a3,c4,f4]",
  O: "[~@24 f4@48 ~@23 eb4@22 ~@3 f4@48 g4@24, ~@23 bb4@169, ~@24 d4@73 ~@23 d4@72, ~@3 g4@2 ~@3]/8", P: "eb4@19 ~@5",
  Q: "[f4@48 ~@48 eb4@46 ~ [c4,f4]@47 ~@2, bb4@143 a4@49, d4 ~, ~ g4@2 ~]/8", // F5
  R: "[f4@48 ~@24 eb4@23 ~ f4@48 ~@24 eb4@23 ~, bb4, d4@73 ~@23 d4@73 ~@23, ~ g4 ~ g4]/8", S: "[d4,f4]",
})).s("gm_synth_strings_1").gain(0.25)

// other · pad new age · "FANTASIA"
const pad_new_age = note(`<
  ~@26 A B C B D E F G ~@16 H I D B D J K ~ H L M L D N K ~@17 O B D P D E Q R H L D L D N S ~ O L T G H L T R
>`.pickRestart({
  A: "f4@2 ~@4 d5 ~@5 c5@2 ~@4 d5@2 ~@4", B: "g4@7 ~@17", C: "g4 ~@2 d5 ~@2 c5 ~@2 d5 ~@2",
  D: "g4@2 ~@4 d5 ~@5 c5@2 ~@4 d5 ~@5", E: "bb4 ~@5 a4 ~@5 a4@2 ~@4 a4@2 ~@4", F: "~@6 a4@2 ~@4 a4@2 ~@4 g4 ~@5",
  G: "f4 ~@23", H: "f4 ~@5 d5 ~@5 c5 ~@5 d5 ~@5", I: "g4@5 ~@7", J: "bb4 ~@5 a4 ~@5 a4 ~@11",
  K: "a4 ~@5 a4 ~@5 g4 ~@5 f4 ~@5", L: "g4 ~@23", M: "g4 ~@5 d5 ~@5 c5 ~@5 d5 ~@5", N: "bb4 ~@5 a4 ~@5 a4 ~@5 a4 ~@5",
  O: "f4@2 ~@4 d5@2 ~@4 c5 ~@5 d5 ~@5", P: "g4 ~@7", Q: "~@6 a4@2 ~@4 g4 ~@5 f4 ~@5", R: "f5 ~@23",
  S: "~@6 a4 ~@5 g4 ~@5 f4 ~@5", T: "g4 ~@5 d5 ~@5 c5 ~@5 bb4 ~@5",
})).s("gm_pad_new_age").gain(0.29)

// bass · electric bass finger · "BASS"
const bass = note(`<
  ~ A B C D A B C E A F C G H I J K A L C G H I J K A B C G H M N K A F C O H P J Q A F C R H P S K A T C U H P S K A@2
  C O H V J W M X Y Z AA AB S AC A F O E A F AD AE A F C AF H P N K A AG C AF H P S K A AH G AI A AJ AF AI AK
>`.pickRestart({
  A: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~",
  B: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1@2 f2@4 a1@2",
  C: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~",
  D: "eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 f1@2 g1@2",
  E: "eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1@2 f1@2 eb1@2 f1@2",
  F: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1@2 f2@2 bb1 ~ a1@2",
  G: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@3 ~ f1@2",
  H: "eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~",
  I: "eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 d1@2 eb1@2 ~@2 eb1@2",
  J: "f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~",
  K: "f1@2 ~@2 f1 ~ f1@2 ~@2 f1@2 g1@2 ~@2 g1@2 a1@2 ~@2 a1@2",
  L: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1@2 g2@2 f2 ~ bb1@2",
  M: "eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1@2",
  N: "f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 eb1@2",
  O: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 ~@2 g1@2 bb1@2 c2@2 bb1@2",
  P: "eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 d1@2 eb1@2",
  Q: "f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1@2 g1 ~ a1@2 f1@2",
  R: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1@2 g1@2 ~@2 g1@2 c2@2 bb1@2 g1@2",
  S: "f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 eb1@2 e1@2",
  T: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 f2 ~ a1@2",
  U: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 ~@2 g1@2 bb1@2 g1@2 f1@2",
  V: "eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1 ~ eb1@2 e1@2",
  W: "f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 bb1@2 c2@2",
  X: "f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 d1@2 f1@2",
  Y: "eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1@2 eb2@2 eb1 ~ eb2@2",
  Z: "f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1@2",
  AA: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1@2 f1@2 ~@2 f1 ~ f1@2 ~@2 f1@2",
  AB: "eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1@2 eb2@2 eb1@3 ~",
  AC: "f1@2 ~@2 f1 ~ f1@2 ~@2 f1 ~ f1@2 ~@2 f1@2 g1@2 ~@2 a1@2",
  AD: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 bb1@2 c2@2",
  AE: "eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1@2 f1@2 g1@2 a1@2",
  AF: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1 ~ g1@2 ~@2 g1@2 bb1@2 c2@2 f1@2",
  AG: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1@2 g2@2 f2 ~ a1@2",
  AH: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1@2 bb1@2 ~@2 bb1@2 bb2@2 bb1 ~ a1@2",
  AI: "eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1 ~ eb1@2 ~@2 eb1@2 bb1@2 c2@2 eb2@2",
  AJ: "bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1@2 f2@2 bb1@2 a1@2", AK: "bb1@19 ~@5",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · piano · "A.PIANO"
const piano = note(`<
  ~@5 A B C D E@2 F@2 G@2 H@2 I@2 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q@2 F@2 G@2 R@2 S@2 F@2 G@2 T@2 I@2 U@2 V@2 W@2 I@2 X@2
  Y@2 Z@2 AA AB AC@2 AD AE P@2 AF@2 AG D AH AI AG AJ AK@2 AL@2 AM@2 AN@2 I@2 F@2 G@2 AO@2 AP@2 AG D AQ@2 AG D AH
>`.pickRestart({
  A: "[f3,bb3,d4]@7 ~", B: "~@12 [f3,bb3,d4]@5 ~ [f3,a3,c4]@5 ~", C: "[d3,g3,bb3]@19 ~@5", D: "[eb3,g3,bb3,eb4]@19 ~@5",
  E: "[[f3,bb3,d4]@37 ~@11]/2", F: "[[g3,bb3,d4]@43 ~@5]/2", G: "[[eb3,g3,bb3,eb4]@11 ~]/2", H: "[[f3,a3,c4,f4]@2 ~]/2",
  I: "[[f3,bb3,d4]@11 ~]/2", J: "[[g3,bb3,d4]@43 ~@5, g2@13 ~@11]/2", K: "[[eb3,g3,bb3,eb4]@7 ~]/2",
  L: "[[a3,c4,f4]@7 ~, f3@37 ~@11]/2", M: "[[f3,bb3,d4]@33 ~@3 [f3,bb3,d4]@10 ~@2]/2",
  N: "[[g3,bb3,d4]@37 ~@5 [g3,bb3,d4]@4 ~@2]/2", O: "[[g3,bb3,eb4]@19 ~@5, eb3@31 ~@17]/2",
  P: "[[f3,a3,c4,f4]@36 ~@6 [f3,a3,c4]@5 ~]/2", Q: "[[f3,bb3,d4]@13 ~@3]/2", R: "[[a3,c4,f4]@7 ~, f3@2 ~]/2",
  S: "[[f3,bb3,d4]@23 ~]/2", T: "[[f3,a3,c4,f4]@20 ~ [f3,a3,c4]@2 ~, ~@21 f4 ~@2]/2", U: "[[g3,bb3,d4]@5 ~]/2",
  V: "[[eb3,g3,bb3,eb4]@19 ~@5]/2", W: "[[f3,a3,c4,f4]@7 ~]/2", X: "[[g3,bb3,d4]@15 ~]/2",
  Y: "[[eb3,g3,bb3,eb4]@15 ~]/2", Z: "[[f3,a3,c4]@37 ~@11, f4@13 ~@3]/2", AA: "[c2,c3,bb3,d4,eb4,g4]@19 ~@5",
  AB: "~ c3 ~@22, [d2,d3,a3,c4,f4]@19 ~@5", // Dm7
  AC: "[~ c3@20 ~@3 [a3,f4]@21 ~@3, [c2,bb3,eb4,g4]@19 ~@3 d2@15 ~@11, ~@24 c4@19 ~@5, ~@24 d3@17 ~@7]/2", // Dm Cm7
  AD: "[g3,bb3,g4]@10 c4 ~@2 f3@7 ~@4, d4@2 ~ [a3,c4,f4]@2 ~", AE: "[eb3,g3,bb3,eb4]@19 ~@5, eb2@2 ~",
  AF: "[[f3,bb3,d4]@33 ~@3 [f3,bb3,d4]@5 ~ [f3,a3,c4]@5 ~, bb2@5 ~@3]/2", AG: "[d3,g3,bb3]@11 ~",
  AH: "[bb2,f3,bb3,d4]@23 ~", AI: "[bb2,f3,bb3,d4]@10 ~@2 [f3,bb3,d4]@5 ~ [f3,a3,c4]@5 ~", AJ: "[eb3,g3,bb3,eb4]@5 ~",
  AK: "[[f3,bb3,d4]@41 ~@7]/2", AL: "[[g3,bb3,d4]@15 ~, g4@43 ~@5]/2", AM: "[[eb3,bb3,eb4,g4]@11 ~, g3 ~@5]/2",
  AN: "[[f3,a3,c4]@11 ~, f4@7 ~]/2", AO: "[[f3,a3,c4]@37 ~@5 [f3,a3,c4]@4 ~@2, f4@13 ~@3]/2",
  AP: "[[f3,bb3,d4]@33 ~@3 [bb3,d4]@5 ~ [a3,c4]@5 ~]/2", AQ: "[[f3,bb3,d4]@32 ~@4 [f3,bb3,d4]@6 [a3,c4]@5 ~]/2",
})).s("gm_piano").gain(0.4)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~ A@2 B C A@2 B C D@2 E@2 F@2 G@2 D@2 E@2 F@2 H I D@2 E J F K L@2 D@2 E@2 F@2 M L D N E@2 F K H L N D E J F K M H N O
  P Q K@2 H R S H S T U C V I A@2 B C A@2 W C D@2 E X F K H Y D@2 E Q F K L@2 Z A B C A@2 B C ~
>`.pickRestart({
  A: "~@6 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@7 [f4,bb4,d5] ~@5", B: "~@6 [g4,bb4,d5] ~@3 [g4,bb4,d5] ~@7 [g4,bb4,d5] ~@5",
  C: "~@6 [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~@7 [g4,bb4,eb5] ~@5", D: "~@6 [f4,bb4,d5] ~@11 [f4,bb4,d5] ~@5",
  E: "~@6 [g4,bb4,d5] ~@11 [g4,bb4,d5] ~@5", F: "~@6 [g4,bb4,eb5] ~@11 [g4,bb4,eb5] ~@5",
  G: "~@6 [a4,c5,f5] ~@11 [c5,f5]@2 ~@4", H: "~@3 [a4,c5,f5] ~@5 [a4,c5,f5] ~@2", I: "~@3 [c5,f5] ~@5 [c5,f5] ~@2",
  J: "~@6 [g4,bb4,d5] ~@11 [g4,bb4,d5] ~@3 [g4,bb4,d5]@2", K: "~@6 [g4,bb4,eb5] ~@11 [g4,bb4,eb5]@2 ~@4",
  L: "~@3 [a4,c5,f5] ~@5 [c5,f5] ~@2", M: "~@6 [a4,c5,f5]@2 ~@10 [a4,c5,f5] ~@5",
  N: "~@3 [f4,bb4,d5] ~@5 [f4,bb4,d5] ~@2", O: "~@6 [f4,bb4,d5] ~@11 [f4,bb4,d5]@2 ~@4",
  P: "~@6 [g4,bb4,d5] ~@11 [g4,bb4,d5]@2 ~@4", Q: "~@6 [g4,bb4,d5]@2 ~@10 [g4,bb4,d5] ~@3 [g4,bb4,d5] ~",
  R: "~@6 [a4,c5,f5] ~@11 [c5,f5]@2 ~@2 [c5,f5]@2", S: "~@6 [bb4,d5,g5] ~@3 [bb4,d5,g5] ~@7 [bb4,d5,g5]@2 ~@4",
  T: "~@6 [a4,c5,f5] ~@3 [a4,c5,f5]@2 ~@6 [a4,c5,f5]@2 ~@4", U: "~@6 [bb4,d5,g5] ~@3 [bb4,d5,g5] ~@7 [a4,c5,f5]@2 ~@4",
  V: "~@6 [a4,c5,f5] ~@3 [a4,c5,f5] ~@7 [c5,f5] ~@5", W: "~@6 [g4,bb4,d5] ~@3 [g4,bb4,d5] ~@7 [g4,bb4,d5]@2 ~@4",
  X: "~@6 [g4,bb4,d5] ~@11 [g4,bb4,d5] ~@3 [g4,bb4,d5] ~", Y: "~@3 [a4,c5,f5] ~@5 [c5,f5] ~ [c5,f5]",
  Z: "~@6 [f4,bb4,d5] ~@3 [f4,bb4,d5]@2 ~@6 [f4,bb4,d5]@2 ~@4", // Bb
})).s("gm_electric_guitar_muted").gain(0.4)

// chords · pizzicato strings · "PIZZICATO"
const pizzicato_strings = note(`<
  ~@9 A@2 B@2 C D E@2 A@2 B@2 F@2 E@2 A@2 B@2 G D E@2 A@2 B@2 D@2 E@2 A@2 H@2 F@2 E@2 A@2 B@2 D@2 E@2 A@2 B@2 I D E@2 J
  E J E K D E@2 A@2 B D A@2 B D L A B@2 I D E M N A B@2 D@2 E O A@2 B D A@2 B D P
>`.pickRestart({
  A: "[d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~", // Bb
  B: "[bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~", // Gm
  C: "[g3,bb3] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~", // Gm Eb
  D: "[g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~", // Eb
  E: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  F: "[bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~", // Eb
  G: "[g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~", // Eb Eb5 Eb
  H: "[d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~", // Gm
  I: "[bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~", // Eb5 Eb
  J: "[bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~", // Ebmaj7
  K: "[bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [bb3,d4,g4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // Gm F
  L: "[d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4] ~", // Bb Dm
  M: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4] ~, ~@11 f4", // F Am
  N: "[bb3,d4,bb4] ~ [bb3,d4,f4,bb4] ~ [bb3,d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~", // Bb
  O: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F Dm F
  P: "[f3,bb3,d4] ~@23", // Bb
})).s("gm_pizzicato_strings").gain(0.2).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~
  [x ~@4 x!2 ~@5]!69
  [x ~@4 x!2 ~@4 x]
  [x ~@4 x!2 ~@5]
  [x ~@4 x!2 ~@4 x]
  [x ~@4 x!2 ~@5]!32
  x
>`).gain(0.55)

// drums · snare
const snare = s("sd").struct(`<
  A B@7 C B@15 C B@3 D B@3 E B@7 C B@7 C B@3 D B@3 F B@3 D B@3 G B@3 C B@3 C B@3 H B@3 C B@3 D B@3 I B@3 D B@3 F B@3 D
  B@3 C ~
>`.pickRestart({
  A: "~@8 x!4", B: "~ x ~ x", C: "~@3 x ~@4 x!4", D: "~@3 x ~@5 x!3", E: "~@3 x ~@4 x!2 ~ x", F: "~@3 x ~@3 x ~ x ~ x",
  G: "~@3 x ~@3 x!5", H: "~@3 x ~@5 x ~ x", I: "~@3 x ~@3 x ~ x!3",
})).gain(0.55)

// drums · hihat
const hihat = s("hh").struct("<~ [x!12]!104 x>").gain(0.22)

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

stack(synth_strings_1, pad_new_age, bass, piano, electric_guitar_muted, pizzicato_strings, kick, snare, hihat, crash)

More by Madonna