Strudelify

(We Have) No Secrets

Carly Simon

KeyD♭ majorTempo114 bpm
0:00/0:00
// (We Have) No Secrets — Carly Simon
// 114.3 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 20, 4/4 at bar 21, 3/4 at bar 49, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 7 "Guitar Steel" acoustic guitar steel (copy of ch 1 "Guitar Steel" acoustic guitar steel)
// note: Full arrangement: all 113 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Guitar Nylon, Muted Guitar.
setcpm(114.3/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 · acoustic guitar steel · "Guitar Steel"
const acoustic_guitar_steel = note(`<
  A@8 B C@2 D@2 E@7 F@2 G@4 H@8 I@2 J@2 K@2 L M N O@2 P@2 Q@2 R S@2 T@4 U V W X Y Z@2 AA AB AC@2 W@4 AD AE@2 AF AG@2 AH
  AI AJ AK@2 AL@7 AM@2 AN@2 AO AP@3 AQ AR AS@3 AT@3 AQ@6 AR ~
>`.pickRestart({
  A: "[~@6 [db2,ab2,db3,bb3,db4,f4,db5] ~@5 [db3,ab3]!2 [ab2,db3,bb3,db4,f4,db5] ab4@2 ~@3 ab3 [db3,ab3] [ab2,db3,bb3,db4,f4,db5] ~@5 ab3 [db3,ab3] [ab2,db3,bb3,db4,f4,db5] ~@5 ab3 [db3,ab3] [ab2,db3,bb3,db4,f4,db5] ab3@2 ~@3 ab3 [db3,db4] [ab2,db3,bb3,db4,f4,db5] ~@2 bb3@3 f3 [db3,f3] [ab2,db3,bb3,db4,f4,db5] [ab3,db4]@2 ~@2 f3@2 db4 [ab2,db3,bb3,db4,f4,db5] [ab2,db3,ab3,db4,ab4,db5], ~@14 db5@13 ~@3 db5@13 ~@7 bb3@6 ~@10 f4@9 ~@7 f4@10 ~@6 f4@10 ~@2 [ab4,db5]@10 ~@8, ~@14 [ab2,db3,db4,ab4]@8 f3@4 ~@4 [ab2,db3,ab3,db4]@8 f3@4 ~@4 [ab2,db5]@13 ~@3 [ab2,db5]@14 ~@2 [ab2,db5]@13 ~@3 [ab2,db5]@13 ~@3 [ab2,db3]@13 ~@5, ~@14 ab3@4 bb3@6 ~@10 bb3@6 ~@6 [db3,db4,ab4]@10 ~@6 [db3,ab3,db4,ab4]@8 f3@4 ~@4 [db3,db4,ab4]@8 f3@4 f3@12 ~@12 [bb3,f4]@9 ~@5, ~@18 f4@9 ~@7 f4@9 ~@3 ab3@6 ~@2 f3@4 ~@8 bb3@6 ~@10 bb3@6 ~@2 ab3@4 [db3,ab3,db4,ab4]@10 ~@18 [f3,ab3]@4 ~@2]/8", // Bbm7 Db5 Bbm7 Db5 Bbm7 Db5 Bbm7 Db5 …
  B: "~@2 bb3@4 [bb2,db3,gb3,bb3,db4,bb4]@5 ~ [bb2,db3,gb3,bb3,db4,bb4]@2 ~@2, ~ f4@3 ~@4", // Gb
  C: "[[bb2,db3,gb3,a3,db4,bb4]!3 bb3 [bb2,eb3,ab3,c4,f4,bb4] [bb2,eb3,ab3,c4,f4,bb4]@2 [bb2,eb3,ab3,db4,f4,bb4]@2 [bb2,ab3,c4,f4,bb4]@2 [gb3,bb3]@3 [bb2,eb3,gb3,bb3,f4,bb4]@2]/2", // Gb Fm7 Bbm7 Fm Gb Ebm
  D: "[[bb2,eb3,gb3,bb3,f4,bb4] [eb3,gb3,bb3,db4,f4]@3 [gb3,bb3,db4,f4] eb4 eb3@2 [bb2,gb4,bb4]@2 [c3,eb3,f3,bb3,eb4,ab4]@4 [eb3,f3,ab3,bb3,db4,ab4] ~, ~ [bb2,bb4]@4 ~ [gb3,bb3,db4,eb4]@4 db4@3 ~@3]/2", // Ebm Ebm7 Gbmaj7 Ebm Fm7 Bbm7 Bb Ebm7
  E: "[[ab3,bb3,db4]@2 [eb3,f3,ab3,bb3,db4,ab4] [ab3,bb3,db4,f4]@3 [eb3,f3,ab3,bb3,db4,ab4] [ab3,bb3,db4]@2 bb3 [ab3,bb3,db4,f4]@2 bb3 db4 bb3 [ab3,bb3,db4,f4]@5 ~@2 eb4 [c4,c5] [c4,c5] eb4 [bb3,c4,f4,bb4,c5] eb4 [a3,c4,gb4,a4,c5] eb4 [a3,c4,f4,a4,c5]@6 ~@2 f4 [bb3,db4,f4,ab4,bb4,db5]@3 f4 [c4,f4,bb4,c5]@2 ab4@2 [bb3,db4,f4,bb4,db5]@2 [ab3,bb3,db4,ab4,bb4,db5]@3 f4@2 f4 [bb3,eb4,f4,bb4], ~@3 [eb3,f3,ab4] ~@19 [bb3,f4,bb4]@2 ~@27 [bb3,eb4,bb4]@3 ~]/7", // Bbm7 C Bbsus2 Gbdim F Bbm7 Fsus4 Bbm …
  F: "[~ f4 [ab3,ab4]@8 [gb3,bb3,gb4,bb4]@3 [gb3,bb3,db4,gb4,bb4,db5]@3, [bb3,eb4,bb4] ~@7]/2", // Ab Gb Eb5
  G: "[[bb3,bb4] [gb3,bb3,db4,f4,gb4,bb4,db5]@9 ~ [gb3,bb3,gb4,bb4]@2 [gb3,bb3,db4,gb4,bb4,db5]@2 [bb3,bb4]@2 [gb3,bb3,db4,f4,gb4,bb4,db5]@9 ~ [gb3,bb3,gb4,bb4]!2 [gb3,bb3,db4,gb4,bb4,db5]@2 [bb3,bb4]]/4", // Bb Gbmaj7 Gb Bb Gbmaj7 Gb Bb
  H: "[~ [gb3,bb3,db4,f4,gb4,bb4,db5]@9 [db4,db5]!3 [gb3,gb4]!2 [f3,db4,f4,db5] [f3,db4,f4,db5]@2 [ab3,ab4]@2 [bb3,f4,bb4] [db4,db5]@2 [bb3,f4,bb4]@3 [ab3,ab4]@2 [b3,gb4,b4] [ab3,eb4,ab4]@2 [b3,gb4,b4]@3 [db4,db5]@2 [db4,f4,ab4,db5] bb4@2 [db4,f4,ab4,db5]@3 [b3,b4]@2 [b3,eb4,gb4,b4] ab4!2 [b3,eb4,gb4,b4]@3 [gb3,bb3,db4,gb4,bb4,db5]@3 [gb3,bb3,db4,gb4,bb4,db5]@2 [e3,ab3,db4,e4,ab4,db5]@3 ab4@2 [ab3,db4,f4,ab4,db5] [db4,f4,ab4,db5]@2 ab4, ~@10 [gb3,bb3,gb4,bb4]@3 [bb3,bb4]@3 ~@48, ~@13 [db4,db5]@2 [ab3,ab4]@3 ~@46]/8", // Gbmaj7 Db Gb Db Ab Bb5 Db Bb5 …
  I: "[f4 [ab3,db4,f4,ab4,db5]@9 ~@2 [ab3,db4,f4,ab4,db5] [db4,f4,ab4,db5]@3]/2", // Db
  J: "[f4 [ab3,eb4,ab4]@2 [f3,ab3,db4,f4,ab4,db5]@2 [ab3,db4,f4,ab4,db5]@2 [ab3,ab4]@2 [gb3,bb3,gb4,bb4]@5 ~ [bb3,bb4], ~ [bb3,bb4] ~@14]/2", // Ab5 Db Ab Gb Bb
  K: "[[db4,db5] [bb3,bb4] [eb3,ab3,c4,eb4,ab4,c5] [eb3,ab3,c4,eb4,ab4,c5]@2 [eb3,ab3,db4,eb4,ab4,db5]@2 [eb3,ab3,c4,eb4,ab4,c5]@2 [gb3,bb3,gb4,bb4]@5 [gb3,bb3,db4,gb4,bb4,db5] eb4]/2", // Db Bb Ab Dbsus2 Ab Gb
  L: "eb4 [gb3,bb3,db4,f4,gb4,bb4,db5]@2 gb4 f4 [gb3,bb3,eb4,gb4,bb4]@3", // Gbmaj7 Ebm
  M: "[ab3,bb3,db4,f4,ab4,bb4,db5]@4 [db4,f4,ab4,db5]@3 f4", // Bbm7 Db
  N: "eb4 [ab3,bb3,db4,f4,ab4,bb4,db5]@3 [bb3,bb4] [ab3,bb3,db4,ab4,bb4,db5]@2 [bb3,bb4]", // Bbm7 Bb Bbm7 Bb
  O: "[[ab3,bb3,db4,f4,ab4,bb4,db5]@2 [bb3,bb4] [db4,db5] [bb3,bb4] [ab3,bb3,db4,f4,ab4,bb4,db5]@5 ~@2 eb4 [bb3,c4,f4,bb4,c5]@2 eb4]/2", // Bbm7 Bb Db Bb Bbm7 Bbsus2
  P: "[[bb3,c4,f4,bb4,c5]@2 f4 gb4 eb4 [a3,c4,f4,a4,c5]@5 ~@2 [ab3,db4,f4,ab4,db5] [bb3,db4,f4,ab4,bb4,db5]@3, ~@2 [a3,c4,a4,c5]@3 ~@11]/2", // Bbsus2 F Db Bbm7 Am
  Q: "[ab4 [c4,f4,bb4,c5]@2 ab4@2 [bb3,db4,f4,bb4,db5]@2 [db4,db5]@2 [ab3,bb3,db4,ab4,bb4,db5] f4@2 f4 [bb3,eb4,bb4] ~ f4, ~@10 [bb3,eb4,bb4]@3 f4@2 ~, ~@7 [bb3,eb4,bb4]]/2", // Fsus4 Bbm Db Bbm7 Eb5
  R: "[ab3,ab4]", S: "[[gb3,bb3,gb4,bb4]@3 [gb3,bb3,db4,gb4,bb4,db5]@3 [bb3,bb4] [gb3,bb3,db4,f4,gb4,bb4,db5]@9]/2",
  T: "[~ [gb3,bb3,gb4,bb4]@2 [gb3,bb3,db4,gb4,bb4,db5]@2 [bb3,bb4]@2 [gb3,bb3,db4,f4,gb4,bb4,db5]@5 gb4 f4@2 [bb3,db4,gb4,bb4,db5]@2 f4@2 [bb3,db4,gb4,bb4,db5]@2 f4@2 [gb3,bb3,eb4,gb4,bb4]@9]/4", // Gb Bb Gbmaj7 Gb Ebm
  U: "f4 [db4,db5]!2 [gb3,db4,gb4,db5]!2 [f3,ab3,db4,f4,ab4,db5]@3, [gb3,bb3,gb4,bb4]@3 [bb3,bb4]@3 ~@2", // Db Gb5 Db Gb Bb
  V: "[db4,db5]@2 [bb3,f4,bb4] [db4,db5]@2 [bb3,f4,bb4]@3", W: "[ab3,ab4]@2 [bb3,f4,bb4] [db4,db5]@2 [bb3,f4,bb4]@3",
  X: "~@2 [d4,d5]!2 [f3,a3,d4,f4,a4,d5]@2 [f3,a3,d4,f4,a4,d5]@2, [f3,a3,f4,a4] ~", // D Dm F
  Y: "[ab3,db4,f4,ab4,db5] [ab3,db4,f4,ab4,db5]@2 [ab3,db4,f4,ab4,db5]@2 f4 f4@2", // Db
  Z: "[[bb3,db4,gb4,bb4,db5]@2 [bb3,db4,f4,bb4,db5]@2 [bb3,db4,bb4,db5] [bb3,bb4]@2 [ab3,db4,f4,ab4,db5]@7 ~ [ab3,ab4]]/2", // Gb Bbm Bb Db Ab
  AA: "[gb3,bb3,gb4,bb4] [gb3,bb3,db4,gb4,bb4,db5]@2 [gb3,bb3,db4,gb4,bb4,db5]@2 [bb3,bb4] [ab3,ab4]@2", // Gb Bb Ab
  AB: "[bb3,bb4]@2 [f3,ab3,db4,f4,ab4,db5]@4 ~ [db4,db5]", // Bb Db
  AC: "[[bb3,db4,f4,bb4,db5]@3 [bb3,db4,gb4,bb4,db5]@3 [bb3,db4,f4,bb4,db5]@3 [bb3,db4,gb4,bb4,db5]@3 f4 gb4 ~ ab4, ~@3 [bb3,db4,db5], ~@6 bb4!2]/2", // Bbm Gb Bbm Gb Bbm
  AD: "~@5 [db4,db5]!2 [bb3,bb4]", // Db Bb
  AE: "[[eb3,ab3,c4,eb4,ab4,c5] [eb3,ab3,c4,eb4,ab4,c5]@2 [eb3,ab3,db4,eb4,ab4,db5]@2 [eb3,ab3,c4,eb4,ab4,c5]@2 [gb3,bb3,gb4,bb4]@5 [gb3,bb3,gb4,bb4]@2 [gb3,bb3,db4,gb4,bb4,db5]@2]/2", // Ab Dbsus2 Ab Gb
  AF: "[gb3,bb3,db4,f4,gb4,bb4,db5] eb4 [gb3,bb3,db4,eb4,gb4,bb4,db5]@6", // Gbmaj7 Ebm7
  AG: "[~@2 [bb3,bb4]@2 [ab3,bb3,db4,ab4,bb4,db5]@2 [bb3,bb4] [ab3,bb3,db4,f4,ab4,bb4,db5]@3 [bb3,bb4] [ab3,bb3,db4,ab4,bb4,db5]@2 [bb3,bb4] [ab3,bb3,db4,f4,ab4,bb4,db5]@2]/2", // Bb Bbm7 Bb Bbm7 Bb Bbm7 Bb Bbm7
  AH: "[bb3,bb4] [db4,db5] [bb3,bb4] [ab3,bb3,db4,f4,ab4,bb4,db5]@5", // Bb Db Bb Bbm7
  AI: "~@2 eb4 [c4,c5]!2 eb4 [bb3,c4,f4,bb4,c5] eb4, ~@3 [bb3,f4,bb4]@2 ~@3", // C Bbsus2 Bb5
  AJ: "[a3,c4,gb4,a4,c5] eb4 [a3,c4,f4,a4,c5]@6", // Gbdim F
  AK: "[~@2 f4 [bb3,db4,f4,ab4,bb4,db5]@3 f4 [c4,f4,bb4,c5]@2 ab4@2 [bb3,db4,f4,bb4,db5]@2 [ab3,bb3,db4,ab4,bb4,db5]@3]/2", // Bbm7 Fsus4 Bbm Bbm7
  AL: "[f4@2 f4 [bb3,eb4,bb4] ~ f4 [ab3,ab4]@8 [gb3,bb3,gb4,bb4]@3 [gb3,bb3,db4,gb4,bb4,db5]@3 [bb3,bb4] [gb3,bb3,db4,f4,gb4,bb4,db5]@9 ~ [gb3,bb3,gb4,bb4]@2 [gb3,bb3,db4,gb4,bb4,db5]@2 [bb3,bb4]@2 [gb3,bb3,db4,f4,gb4,bb4,db5]@5 gb4 f4@2 [bb3,db4,gb4,bb4,db5]@2 f4@2 [bb3,db4,gb4,bb4,db5]@2 f4@2 [bb3,db4,gb4,bb4,db5]@2 ab4, [bb3,eb4,bb4]@3 f4@2 ~@51, ~@2 [bb3,eb4,bb4] ~@25]/7", // Eb5 Ab Gb Bb Gbmaj7 Gb Bb Gbmaj7 …
  AM: "[f4 [gb3,bb3,eb4,gb4,bb4]@5 [db4,db5]!2 [db4,db5] [gb3,bb3,db4,gb4,bb4,db5] [gb3,db4,gb4,db5] [f3,ab3,db4,f4,ab4,db5]@3 [db4,db5]@2, ~@6 [gb3,bb3,gb4,bb4]@3 ~ [bb3,bb4]@2 ~@4]/2", // Ebm Db Gb Gb5 Db Gb Bb
  AN: "[[bb3,f4,bb4] [db4,db5]@2 [bb3,f4,bb4]@3 e4 [db4,db5] [db4,db5] [gb3,gb4]!2 [e3,ab3,b3,e4,ab4,b4]@3 [db4,db5]@2, ~@6 [gb3,bb3,gb4,bb4]@3 [bb3,bb4]@3 ~@4, ~@9 [db4,db5]@2 ~@5]/2", // Bb5 Db Bb5 Db Gb E Db Gb …
  AO: "[bb3,f4,bb4] [db4,db5]@2 [bb3,f4,bb4]@3 [gb3,bb3,db4,gb4,bb4,db5] [b3,b4]", // Bb5 Db Bb5 Gb B
  AP: "[[ab3,ab4] [gb3,gb4]!2 [e3,e4]@3 [db3,db4]@16 [ab3,ab4]@2]/3", // Ab Gb E Db Ab
  AQ: "[bb3,f4,bb4] [db4,db5]@2 [bb3,f4,bb4]@3 [ab3,ab4]@2", AR: "[bb3,f4,bb4] [db4,db5]@2 [bb3,f4,bb4]@3 ~@2",
  AS: "[[ab3,db4,f4,ab4,db5] [db4,ab4,db5]@3 [ab3,db4,f4,ab4,db5] [ab3,bb3,eb4,ab4,bb4]@2 [ab3,db4,ab4,db5] ~@6 [f3,ab3,db4,f4,ab4,db5]@3 [ab3,db4,f4,ab4,db5] [db4,f4,ab4,db5] [db4,f4,ab4,db5]@2 [ab3,db4,f4,ab4,db5]@2 f4, ~ f4 ~@5 [f3,f4]@7 ~@10]/3", // Db Db5 Db Absus2 Db5 Db F
  AT: "[[ab3,db4,f4,ab4,db5]@2 [ab3,db4,f4,ab4,db5]@2 f4 [f3,ab3,db4,f4,ab4,db5]@2 [f3,ab3,db4,f4,ab4,db5]@5 [ab3,ab4] [bb3,bb4] [db4,db5] [ab3,db4,f4,ab4,db5]@7 [ab3,ab4]@2]/3", // Db Ab Bb Db Ab
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(1)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@12 A B@2 C D E F G@6 H@3 I@5 J@8 K L@2 M@2 N@3 O P Q P Q P Q R S@2 T U V W P X Y@2 S@4 Z AA Z Q B@3 AB AC F@2 AD@8
  AE@4 AF@5 ~@14
>`.pickRestart({
  A: "~@4 ab2 bb2 ~@2", B: "ab2 bb2 ~@2 ab2 bb2 ~@2", C: "ab2 bb2 ~@2 c3@4", D: "c2@4 f2@3 f2", E: "f2!2 db2@2",
  F: "db2!2",
  G: "[db2@4 [b2,gb3]@3 [b2,gb3]@3 [bb2,f3]@8 eb2@3 eb2 eb2@4 ab2@3 ab2 ab2@4 eb2@3 eb2 eb2@4 ab2@3 ab2 ab2@2]/6", // B5 Bb5
  H: "[bb2@2 eb2@3 eb2 eb2@4 ab2@3 ab2 ab2@4 db3 bb2 ab2 gb2@2 e2]/3",
  I: "[db2 c2 db2@8 db2@8 db2@8 db2@8 db3 bb2 ab2 gb2@2 e2]/5",
  J: "[eb2@2 c2@2 db2@8 db2@8 db2@6 db2@2 db2@8 db2@8 db2@8 db2@6 db2@2 db2@8 gb2@6 gb2@2 gb2@8 ab2@6 ab2@2 ab2@8 gb2@6 gb2@2 gb2@8 ab2@6 ab2@3 ab2@3]/8",
  K: "~ bb2@3 ab2@2 bb2@2 ~@4 ab2@2 bb2@2", L: "~@2 ab2 bb2 ~@2 ab2 bb2", M: "[~@4 c3@8 c2@8 f2@6 f2@3 f2@3]/2",
  N: "[~ f2@3 db2@8 db2@8 db2@8 db2@8 [b2,gb3]@6 [b2,gb3]@6]/3", O: "[bb2,f3]", P: "eb2@3 eb2 eb2@4",
  Q: "ab2@3 ab2 ab2@4", R: "db3 bb2 ab2 gb2@2 e2 eb2 c2", S: "db2/2", T: "d2", U: "db2", V: "gb2@3 gb2@5",
  W: "db2@3 db2@3 db2@2", X: "db2@3 db2 db2@4",
  Y: "[[ab2,gb3]@3 [ab2,gb3]@3 [ab2,gb3]@3 [ab2,gb3]@3 ab2@2 ab2@2, ~@3 gb3]/2", Z: "gb2@3 gb2 gb2@4", AA: "ab2!2",
  AB: "c3 c2", AC: "f2@3 f2 f2@2 f2@2",
  AD: "[[b2,gb3]@3 [b2,gb3]@3 [bb2,f3]@8 eb2@3 eb2 eb2@4 ab2@3 ab2 ab2@4 eb2@3 eb2 eb2@4 ab2@3 ab2 ab2@4 eb2@3 eb2 eb2@4 ab2@3 ab2 ab2@2 ab2@2 db3 b2]/8", // B5 Bb5
  AE: "[ab2 gb2@2 e2 eb2 b1 db2@8 db3 b2]/2", AF: "[ab2 gb2@2 e2@3 db2@3 db2 db2@4 db2@3 db2 db2@4 db2@16 ~@2]/5",
})).s("gm_electric_bass_finger").gain(0.4).pan(0.3)

// chords · acoustic guitar nylon · "Guitar Nylon"
const acoustic_guitar_nylon = note("<~@3 A B@2 C D@2 ~ E F ~@101>".pickRestart({
  A: "~ f5@3 ~@4", B: "[~@7 f5@3 [ab4,db5,f5] [ab4,bb4,eb5]@2 ~@3]/2", C: "~@7 f5",
  D: "[f5@2 [ab4,db5,f5] [ab4,bb4,eb5]@2 ~@2 f5@2 ab4@2 ~@5]/2", E: "~ eb4@2 ~@5", F: "~ [gb4,bb4,db5] ~@2",
})).s("gm_acoustic_guitar_nylon").gain(0.2).pan(0.3)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@28 A@4 ~ B@5 C@2 D E@2 F@4 G@2 H ~@3 I@3 ~@5 J@4 K@2 L@2 M@2 N@3 O@3 P@3 Q@2 R@7 S@2 T@2 U V@3 ~@4 W@2 ~@5 X@3 ~@2
>`.pickRestart({
  A: "[~@7 [bb4,bb5]@20 ~@5, ~@5 db5@27]/4", // Bb
  B: "[~@2 ab5@3 ab5@2 ~@2 [db3,f3,ab3]@9 [db3,f3,ab3]@8 c6@7 bb4@6 bb4, ~@7 ab5@3 ~@23 bb5@4 ~@3]/5", // Db
  C: "[db5 bb4 [eb3,ab3,c4] [eb3,ab3,c4]@2 [eb3,ab3,db4]@2 [eb3,ab3,c4]@2 [gb3,bb3]@5 [gb3,bb3,db4] eb4]/2", // Ab Dbsus2 Ab Gb
  D: "eb4 f4@2 gb4 f4 [gb3,bb3,eb4]@3, ~ [gb3,bb3,db4]@4 ~@3", // Ebm Gb
  E: "[[ab3,bb3,db4,f4]@4 f4@3 f4 eb4 [ab3,bb3,db4,f4]@3 bb3 [ab3,bb3,db4]@2 bb3, ~@4 [db4,ab4]@5 ~@7]/2", // Bbm7 Db5
  F: "[[ab3,bb3,db4]@4 bb3@2 db5@2 bb4@2 [ab4,bb4,f5]@17 ab4@24 ~@5 [ab3,db4,f4]@2 [bb3,f4,ab4]@6, f4@9 ~ db5@23 ~@31]/4", // Bbm7 Bb7 Db Bb7
  G: "[ab4 [c4,bb4]@2 ab4@2 [bb3,f4]@2 db4@2 [ab3,bb3,db4] f4@2 f4 [bb3,eb4] ~ f4, ~@10 [bb3,eb4]@3 f4@2 ~, ~@7 [bb3,eb4]]/2", // C7 Bb5 Bbm7 Eb5
  H: "ab3", I: "[~@4 gb4 f4@2 [bb3,db4,gb4]@2 f4@2 [bb3,db4,gb4]@2 f4@2 [gb3,bb3,eb4]@9]/3",
  J: "[[bb3,db4,gb4]@2 [bb3,db4,f4]@2 [bb3,db4] bb3@2 [db4,f4]@7 ~@17 db5, ~@7 ab3@24 ~]/4", // Gb Bbm Db
  K: "[[bb4,db5,f5]@3 [bb4,db5,gb5]@3 [bb4,db5,f5]@3 [bb4,db5,gb5]@3 f5 gb5 bb5 ab5, ~@3 [bb4,db5]]/2", // Bbm Gb Bbm Gb Bbm
  L: "[ab4@2 ~@3 f5@8 f5@3]/2", M: "f5/2", N: "[~@2 gb2@27 ~ [gb2,bb2]@10 [gb2,bb2]@4 [gb2,bb2,db3]@4]/3",
  O: "[[gb2,bb2,db3,f3] eb3 [bb2,eb3]@11 ~@11, ~ bb3@11, ~ eb2@9 ~@2]/3", // Gbmaj7 Eb5
  P: "[[bb2,f3,bb4]@5 [db3,bb3,db5]@3 ~ [f3,f4]@38 ~, ~@4 [db5,f5]@19 ~]/3", // Bb5 Gb F Db
  Q: "[~@2 f4 [bb3,db4,f4,ab4]@3 f4 bb4@2 ab4@2 [bb3,db4,f4]@2 [ab3,bb3,db4]@3, ~@7 [c4,f4]@4 ~@5]/2", // Bbm7 Bbm Bbm7 F5
  R: "[f4@2 f4 [bb3,eb4] ~ f4 ab3@8 [gb3,bb3]@3 [bb3,db4]@3 bb3 [gb3,bb3,db4,f4]@9 ~ [gb3,bb3]@2 [gb3,bb3]@2 bb3@2 [gb3,f4]@5 gb4 f4@2 [bb3,db4,gb4]@2 [db4,f4]@2 [db4,gb4]@2 f4@2 [bb3,gb4]@2 ab4, [bb3,eb4]@6 f4@4 ~@56 db4@8 [bb3,db4]@15 ~@9 bb3@8 db4@6, ~@4 [bb3,eb4]@2 ~@11 gb3@4 ~@35]/7", // Eb5 Gb Bbm Gbmaj7 Gb Gbmaj7 Gb Db …
  S: "[f4 [gb3,bb3,eb4]@5 db4!2 db4 [gb3,bb3,db4] [gb3,db4] [f3,ab3,db4]@3 db4@2, ~@6 [gb3,bb3]@3 ~ bb3@2 ~@4]/2", // Ebm Gb Gb5 Db Gb
  T: "[[bb3,f4] db4@2 [bb3,f4]@3 e4 db4 db4 gb3!2 [e3,ab3,b3]@3 db4@2, ~@6 [gb3,bb3]@3 bb3@3 ~@4, ~@9 db4@2 ~@5]/2", // Bb5 E Gb
  U: "[bb3,f4] db4@2 [bb3,f4]@3 [gb3,bb3,db4] b3", V: "[ab3 gb3!2 e3@3 db3@16 ~@2]/3", W: "[~@4 g5 [f4,ab5]@21 ~@6]/2",
  X: "[~@12 ab5@23 ~@13, ~@3 eb4@4 ~@5]/3",
})).s("gm_string_ensemble_1").gain(0.12).pan(0.3)

// chords · electric guitar muted · "Muted Guitar" · Ab
const electric_guitar_muted = note("<~@58 [~@2 [ab3,ab4] ~@13] ~@54>").s("gm_electric_guitar_muted").gain(0.14).pan(0.3)

// other · electric guitar jazz · "Lead Guitar"
const electric_guitar_jazz = note("<~@22 A@6 ~@4 B@3 ~@16 C@6 ~@28 D ~ D ~@25>".pickRestart({
  A: "[~ c4@2 ~]/2", B: "[~@2 d5@3 b4@2 a4@2 d4 eb4@8 ~@6]/3", C: "[~ c4@4 ~@3]/2", D: "c4",
})).s("gm_electric_guitar_jazz").gain(0.52).pan(0)

// other · pad metallic · "Lead Guitar"
const pad_metallic = note("<~@69 A B@2 C@2 D@2 E@4 ~@33>".pickRestart({
  A: "f4", B: "[~ f4@2 ~]/2", C: "[~ ab4@2 ~]/2", D: "[~@3 eb4@4 ~]/2", E: "[~@3 f4@4 ~]/2",
})).s("gm_pad_metallic").gain(0.52).pan(0)

// drums · kick
const kick = s("bd").struct(`<
  ~@12 A B@6 C D E@6 F G ~@3 H I E@14 F J B@6 K G ~ B@6 K L B@15 K M E@6 N E N E N ~@18
>`.pickRestart({
  A: "~ x", B: "x!2", C: "x ~@3 x ~@2 x", D: "~ x ~@2", E: "~ x ~ x", F: "~@2 x ~@2 x ~@2", G: "x",
  H: "x ~ x ~@2 x ~@2", I: "x!2 ~ x", J: "x ~@4 x ~@2", K: "x ~@2 x ~@2 x ~", L: "~ x ~@2 x!2 ~@2", M: "~@3 x",
  N: "~ x ~@2 x ~ x ~",
})).gain(0.29).pan(0.3)

// drums · rim
const rim = s("rim").struct("<~@95 A@2 B C ~ B D B E@2 F G H A C A ~@2>".pickRestart({
  A: "~@3 x", B: "x ~@2 x", C: "~@2 x!2", D: "x", E: "~ x ~@2", F: "x!2 ~@2", G: "~ x", H: "~ x!2 ~",
})).gain(0.24).pan(0.3)

// drums · snare
const snare = s("sd").struct(`<
  ~@12 A B@3 C D B E F G H@5 I J ~@2 K L H@12 M N H I O B@6 P ~@2 B@6 Q R B@12 S T B P ~ H@5 U V U V U W ~@18
>`.pickRestart({
  A: "~@3 x ~@2 x ~", B: "~ x ~ x", C: "~@2 x ~@3 x!2", D: "x ~ x ~ x ~ x!3 ~@3 x ~@3", E: "~@2 x ~@2 x!2 ~",
  F: "x!3 ~@5", G: "~ x", H: "x!2", I: "x ~@2 x!2 ~ x!2", J: "x", K: "~@7 x", L: "~@3 x!2 ~ x!2", M: "x ~@3 x!4",
  N: "x ~ x!3 ~@3 x ~@7", O: "x ~@2 x", P: "~ x!2 ~ x!3 ~", Q: "x ~@2 x ~@2 x ~", R: "~ x ~@2 x!3 ~",
  S: "~@4 x ~ x ~ x ~ x ~ x ~ x!2", T: "x!2 ~ x", U: "x ~@3 x ~@2 x", V: "x ~ x!3 ~@3", W: "x ~ x!3 ~ x ~",
})).gain(0.29).pan(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@32 x ~@50 [~ x] ~@29>").gain(0.29).pan(0.3)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 A B ~@2 A@2 C D@2 E F D@2 E F D@2 G H I J K L M J N O P J Q R S J O T P U P T P J K L M J O T V W X U Y Z AA AB Z
  D Y T W T W T AC AD AE AF Z D Y T W T W T Y AA W T W Q AG J AH AI AJ AK U AL AH AJ AH AJ AL J AH AI AM J AM AJ J AH AI
  AJ AK U AH AI AN ~
>`.pickRestart({
  A: "~@4 x!3 ~@9", B: "~ x!2 ~", C: "~@8 x!3 ~ x ~@3", D: "x!3 ~ x!3 ~", E: "x ~@2 x!4 ~", F: "x ~@5 x ~ x!3 ~ x ~@3",
  G: "x ~@2 x!2 ~ x!2", H: "x!3 ~@5", I: "~@4 x!3 ~ x ~@3 x ~ x ~", J: "x ~ x!3 ~ x!2", K: "x ~ x!3 ~ x ~",
  L: "~ x!6 ~", M: "~@2 x ~ x!3 ~ x ~@3 x ~ x ~", N: "x ~ x ~ x!4", O: "x ~@3 x!3 ~ x ~@3 x ~ x ~",
  P: "x ~ x ~ x!3 ~ x ~@3 x ~ x ~", Q: "x!7 ~", R: "~ x!2 ~ x!4", S: "x!2 ~@2 x!3 ~ x ~@3 x ~ x ~", T: "x!8",
  U: "x!5 ~ x!2", V: "x", W: "x!3 ~ x ~@3 x ~ x ~ x ~ x ~", X: "x ~ x ~ x!3 ~ x ~ x ~ x ~ x ~",
  Y: "x!3 ~ x ~ x ~ x ~ x ~ x ~ x ~", Z: "x!3 ~ x ~@3 x ~ x ~ x ~@3", AA: "x!3 ~ x!4", AB: "x ~ x!5 ~",
  AC: "x ~@2 x ~@2 x ~", AD: "~ x ~@2 x!2 ~@2", AE: "x!3 ~ x ~@2 x", AF: "x!5 ~@2 x", AG: "~@12 x!3 ~", AH: "x ~ x!6",
  AI: "x ~ x ~ x ~@5 x ~ x!3 ~", AJ: "x ~ x ~ x ~ x ~ x ~ x ~ x!3 ~", AK: "x ~@3 x ~ x ~ x ~@3 x!3 ~",
  AL: "x ~ x ~ x ~ x ~ x ~@3 x!3 ~", AM: "x ~@3 x ~ x ~ x ~ x ~ x!3 ~", AN: "x!6 ~@2",
})).gain(0.29).pan(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<~@12 A ~@13 B C ~@3 D ~@17 E ~@5 F ~@27 G ~@5 H ~@23>".pickRestart({
  A: "~ x ~@2", B: "~@6 x!2", C: "x!2 ~@6", D: "~@5 x ~@2", E: "~@3 x ~@4", F: "~@4 x!4", G: "~ x ~@6",
  H: "~@2 x!4 ~@2",
})).gain(0.29).pan(0.3)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@3 A ~@4 B@11 ~@2 C@6 ~ C@4 ~ C@16 ~ D E@2 D@3 ~ D@8 ~@2 D@16 ~ F@28 ~
>`.pickRestart({
  A: "~@5 x!2 ~@9", B: "~@7 x", C: "~@5 x ~@2", D: "~@3 x ~@4", E: "~@3 x ~ x ~@2", F: "~ x ~@6",
})).gain(0.29).pan(0.3)

// drums · crash
const crash = s("cr").struct("<~@17 [~ x] ~@28 [~ x ~@2] ~@33 x ~@32>").gain(0.29).pan(0.3)

// drums · agogo bells
const agogo_bells = s("agogo:4").struct("<~@66 [~@7 x] ~@46>").gain(1.5).pan(0.3)

// drums · shaker
const shaker = s("sh").struct("<~@66 [~@3 x] ~@46>").gain(0.21).pan(0.3)

stack(
  acoustic_guitar_steel, bass, acoustic_guitar_nylon, string_ensemble_1, electric_guitar_muted, electric_guitar_jazz,
  pad_metallic, kick, rim, snare, low_tom, hihat, mid_tom, open_hat, crash, agogo_bells, shaker
)

More by Carly Simon