Strudelify

Papa Was a Rollin' Stone

The Temptations

KeyD♭ majorTempo122 bpm
0:00/0:00
// Papa Was a Rollin' Stone — The Temptations
// 122 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 12 trumpet (copy of ch 9 trumpet, 0.5 beats late); ch 14 trumpet (copy of ch 13 trumpet, 0.5 beats late)
// note: Full arrangement: all 149 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/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.

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@19 A B C@2 D E F G@2 H@2 I J K L M N O ~@2 P Q R ~@7 S T U V W@2 X@2 ~@10 Y Z@2 ~ AA@2 AB AC AD AE AF ~@2 AG AH AI
  AJ AK AL AM AN AO AP AQ AR AS AT AS AU AV AW ~@5 AX AY AZ@2 BA BB ~@3 BC BD BE BF ~@3 BG BH BI BJ BK BL BM BN BM BO BP
  BQ BR BS BT BU AR BV BM BV BT BW BX BY BZ CA CB CC CD ~
>`.pickRestart({
  A: "~@2 eb4@2 ab4@2 eb4@2 db4@2 ~@2 eb4 ~ db4@2", B: "bb3@3 g3 ~@8 ab3@2 db4@2", C: "[bb3@2 ~@12 a4@4 ab4 ~@13]/2",
  D: "~ db5@3 f4 ~ ab4@2 eb4@2 bb3 ~ db4 ~ db4 ~", E: "bb3@3 ~ ab3 ~@3 bb3@3 ~ ab3 f3@3, ~@8 db4 ~@7", F: "db3@3 ~@13",
  G: "[~@2 ab4 f4 ~@2 ab4 f4 ~@2 ab4 f4 ~@2 ab4 ~ bb4 ~ bb4@2 ~@12, ~@15 f4@2 ~@15]/2",
  H: "[~@8 bb4 [db4,f4]@3 ab3 f3@2 eb3@3 ~@14]/2", I: "~@2 a4@4 ab4 ~@9", J: "~@4 eb5@2 ~@2 db5@2 ~@2 bb4 ab4@2 ~",
  K: "~@8 eb4@2 eb4 db4 bb3 ~ [eb4,g4]@2", L: "[db4,f4] ~@7", M: "~@6 eb4@4 bb4 ~ db4@2 bb3@2", N: "eb4 ~@7",
  O: "~ bb4", P: "~@4 [ab4,bb4,db5] ~@3 e4@2 db4@2 [eb4,g4]@2 db4 ~",
  Q: "[db4,f4]@2 eb4 ~ [eb4,g4]@4 db4@2 bb3 ~ [eb4,g4]@2 eb4@2", R: "bb3@3 ~@13, db4 ~@15",
  S: "bb3@4 ~@2 ab3 bb3 [db4,f4] ~@7", T: "bb3@5 ~@3 db4 ~@3 [db4,f4]@2 bb3 ~", U: "~@6 ab3 bb3 [db4,f4] ~@7",
  V: "bb3@4 ~@2 ab3 bb3 [db4,f4] ~@3 [db4,f4]@2 bb3 ~", // Db
  W: "[~@7 bb3 [db4,f4] ~@5 bb3@6 ~@2 ab3 bb3 [db4,f4] ~ bb3 ~ db4@2 ~@2, ~@3 ab3 ~@12]/2", // Db
  X: "[~@6 ab3 ~ [db4,f4] ~@5 bb3@6 ~@4 [db4,f4] ~@3 [db4,f4]@2 bb3 ~]/2", // Db
  Y: "~ eb4@2 ~ e4 ~ eb4 ~ eb4@2 bb3 ~ ab3@2 ~@2", Z: "[~@2 eb4 ~ eb4@3 ~ [db4,eb4] db4 bb3 ~ ab4@11 ~@9]/2",
  AA: "[~@2 bb3 ~@3 eb4@14 ~@6 eb4@4 [bb3,eb4] db4]/2", // Eb5
  AB: "[ab3,db4] ~ [f3,bb3] ~ [eb3,ab3] ~@2 bb3 ~ bb3 ~ a3 [db4,f4]@2 bb3 ~", // Db5 Bb5 Ab5 Db
  AC: "[db4,f4]@2 bb3 ~ [eb3,ab3] ~@2 bb3 ~ bb3 ~ bb3 [db4,f4]@2 [eb4,g4] ~", // Db Ab5 Db Eb
  AD: "db4@2 bb3 ~ [eb3,ab3] ~@2 bb3 ~@4 f4@2 [eb4,g4] ~, ~@11 db4@2 ~@3", // Ab5 Eb
  AE: "~ f3 [bb3,eb4]@2 [ab3,db4] ~@2 f3 ~ f3 ~ f3 [db4,f4]@2 eb4 ~", AF: "[db4,f4] ~@3 eb4@3 db4@7 ~@2",
  AG: "~@12 bb3@2 ab3 ~", AH: "bb3 ~@15", AI: "~@2 bb3@2 bb3 ~ bb3 ~ [c4,e4] [db4,f4] ab3 ~ [c4,db4,e4,f4] ~ ab3@2",
  AJ: "bb3@2 ~@12 ab3 ~", AK: "bb3 ~@3 bb3@3 ~ [db4,f4]@3 ~ [c4,db4,e4,f4]@2 ab3@2, ~@8 [c4,e4] ~@7",
  AL: "bb3 ~ ab3 ~ bb3@3 ~ [c4,db4,f4]@2 ~@4 ab3@2", AM: "bb3 ~ ab3 ~ bb3@4 [c4,e4] [db4,f4]@3 [c4,db4,f4]@2 ab3@2",
  AN: "bb3 ~ ab3@2 bb3@4 [c4,db4] ~@5 ab3@2", AO: "bb3 ~ ab3@2 bb3@3 ~ [db4,f4]@3 ~ [db4,f4]@2 ab3@2, ~@8 c4 ~@7",
  AP: "bb3 ~ ab3!2 bb3@3 ~ [c4,db4,e4,f4]@2 ~@4 ab3@2", // Dbmaj7
  AQ: "ab3 ~ ab3!2 bb3@3 ~ [db4,f4]@3 ~ [c4,db4]@2 ab3@2, ~@8 c4 ~@7", // Db Dbmaj7
  AR: "bb3 ~ ab3 ~ bb3@4 [c4,e4] [db4,f4]@2 ~@3 ab3@2", // C Db
  AS: "bb3 ~ ab3@2 bb3@4 [db4,f4]@3 ~ [c4,db4,f4]@2 ab3@2, ~@8 [c4,e4] ~@7", // Db Dbmaj7 C
  AT: "ab3 ~ ab3@2 ab3@3 bb3 [c4,e4] [db4,f4]@2 ~@3 ab3@2", AU: "ab3 ~ ab3@2 bb3@4 [c4,e4] [db4,f4]@2 ~@3 ab3@2",
  AV: "bb3 ~ ab3@2 bb3@3 ~ [db4,f4]@3 ~ [c4,db4,f4]@2 ~@2, ~@8 [c4,e4] ~@7", AW: "[bb3,db4]@3 ~@13",
  AX: "~@4 eb4@4 ~@2 f4@5 ~", AY: "gb4@5 ~ ab4@8 ~@2", AZ: "[~@2 bb4@9 ~@5]/2", BA: "~@4 f4@5 ~ g4@4 ~@2",
  BB: "ab4@15 ~", BC: "~@4 gb4@8 eb5@2 db5 ~", BD: "~ bb4 ~@2", BE: "~@4 f4@5 ~ g4@5 ~", BF: "ab4@7 ~",
  BG: "~@2 ab3 ~ bb3@3 bb3 db4 ~@7", BH: "~@7 bb3 [db4,f4] ~@3 [db4,f4]@2 bb3 ~", BI: "~@4 bb3@4 [db4,f4] ~@5 ab3@2",
  BJ: "ab3 ~@3 bb3@4 [db4,f4]@2 bb3 ~ [db4,f4]@2 ab3@2", BK: "~@2 ab3 ~ bb3@4 db4 ~@5 ab3@2",
  BL: "bb3 ~ ab3 ~ bb3@3 ~ [eb4,g4] ~@3 [db4,f4]@2 ab3@2", BM: "bb3 ~ ab3 ~ bb3@4 [db4,f4]@2 ~@4 ab3@2",
  BN: "bb3 ~ ab3 ~ bb3@3 ~ db4@2 ~@2 [db4,f4]@2 ab3@2", BO: "ab3 ~ ab3 ~ bb3@4 [db4,f4]@2 ~@2 [db4,f4]@2 ab3 ~",
  BP: "bb3 ~ ab3 ~ bb3@4 [c4,db4,e4,f4]@2 ~@6", BQ: "[ab3,bb3] ~ ab3 ~ bb3@2 ~@2 [c4,e4] [db4,f4] ~@2 [db4,f4]@2 ab3 ~",
  BR: "bb3 ~ ab3 ~ bb3@4 [c4,db4,e4] f4 ~@4 ab3@2", BS: "bb3 ~ ab3 ~ bb3@3 ~ [c4,e4] [db4,f4]@2 ~ [db4,f4]@2 ab3 ~",
  BT: "bb3 ~ ab3 ~ bb3@4 [c4,e4] [db4,f4] ~@4 ab3@2", BU: "ab3 ~ ab3 ~ bb3@3 ~ [c4,db4,f4] ~@3 [db4,f4]@2 ab3 ~",
  BV: "bb3 ~ ab3 ~ bb3@3 ~ [c4,db4,e4,f4]@2 ~@2 [db4,f4]@2 ab3@2", // Dbmaj7 Db
  BW: "~@2 ab3 ~ bb3@3 ~ [c4,db4,e4,f4] ~@3 [db4,f4]@2 ab3@2", // Dbmaj7 Db
  BX: "ab3 ~ ab3 ~ bb3@3 ~@2 db4@2 ~@3 ab3@2, ~@4 [c4,f4] ~@3", // F5
  BY: "bb3 ~ ab3 ~ bb3@2 ~@2 [c4,db4,e4,f4] ~@3 [db4,f4]@2 ab3@2", BZ: "ab3 ~ ab3 ~ bb3@4 [c4,e4] [db4,f4]@2 ~@3 ab3@2",
  CA: "bb3 ~ ab3 ~ bb3@3 ~ [c4,e4,f4] db4 ~@2 [db4,f4]@2 ab3@2", CB: "bb3 ~ ab3 ~ bb3@3 ~ [c4,e4] [db4,f4]@2 ~@3 ab3@2",
  CC: "~@2 ab3 ~ bb3@3 ~ [c4,e4] [db4,f4]@2 ~ [db4,f4]@2 ab3@2", CD: "bb3 ~ ab3 ~ bb3@3 ~ [c4,e4,f4] db4@2 ~@3 ab3@2",
})).s("gm_electric_guitar_jazz").gain(0.09).pan(0)

// other · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@20 A ~@11 B ~ C ~@5 D ~@9 E F G H I J E ~@10 K ~@3 L ~@3 M N ~@7 O ~@2 P ~@2 Q ~ R ~@20 S@2 ~@5 T O@2 U ~@9 V ~@12 W
  ~@2
>`.pickRestart({
  A: "~@5 eb3 ~@2", B: "bb4 ~@7", C: "~@5 d3@2 ~", D: "~@4 f4 ~@3", E: "~@6 ab3 bb3 ~@2 bb3 ~@5",
  F: "bb3@4 ~@8 bb3 ~@3", G: "~@10 bb3 ~@5", H: "bb3 ~@3", I: "~@12 f4@2 bb3 ~", J: "bb3@5 ~@2 bb3 ~@8",
  K: "~@14 bb3 ~", L: "~@4 db4 ~@11", M: "f4@2 ~@7 bb3 ~ a3@2 ~@3", N: "~@14 g4 ~", O: "~@2 ab3 ~@13",
  P: "~@8 [e4,f4,b5] ~@7", Q: "~@6 f4 b3", R: "~@7 db4", S: "[~@8 c5@11 ~@13]/2", T: "~@6 bb3 ~@3 bb3 ~@5",
  U: "bb3 ~@7 f4 ~@7", V: "~@12 ab3 ~@3", W: "~@10 g3 ~@5",
})).s("gm_electric_guitar_jazz").gain(0.05).pan(0)

// bass · fretless bass
const bass = note(`<
  A B C B D B C B D B C B D B E B D B C B D B C B D B C B D B C B D B C B D B C B D B C B D B C B D B C B D B C B D B E
  B D B E B D B C B D B E B D B C B D B C B D B C B D B E B D B C B D B C B D B F ~ D B C B D B G ~ A B C B D B C B D B
  C B D B E B D B C B D B C B D B C B D B C B D B C B D B C B ~
>`.pickRestart({
  A: "~@14 ab1 ~", B: "bb1 ~@7", C: "~@4 db2 ~ db2@2 ~@2 ab1@2 ~@4", D: "~@7 ab1", E: "~@2 db2!2 ~ ab1 ~@2",
  F: "db2 ~ db2@2 ~@2 ab1@2 ~@4 bb1@2 ~@2", G: "db2 ~ db2 ~@3 ab1@2 ~@4 bb1@2 ~@2",
})).s("gm_fretless_bass").gain(0.44)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  ~@9 A B A C A D A C A B E C A B A C A B A C A B A C A B A ~ A B E C A D A C A B A C A B A C A B A C A B A C A B A ~ A
  B A C A D A C A B A C A B E C A B A C A B A C A B A ~ A B A C A D E C A B A C A B A C A B A C A B A C A B A ~ A B A C
  A D A C A B A C A B A C A B E C A B A C A B A ~
>`.pickRestart({
  A: "ab3 ~@15", B: "~@4 bb3 ~ bb3 ~@3 ab3 ~@5", C: "~@14 ab3 ~", D: "~@4 bb3@2 bb3 ~@3 ab3 ~@5", E: "ab3 ~@7",
})).s("gm_electric_guitar_muted").gain(0.15).pan(0.6)

// chords · electric guitar muted · soft notes
const electric_guitar_muted_2 = note(`<
  ~@8 A B C B D B C B D B C E D B C B D B C B D B C B D B C B A B C E D B C B D B C B D B C B D B C B D B C B D B C B A
  B C B D B C B D B C B D B C E D B C B D B C B D B C B A B C B D B C E D B C B D B C B D B C B D B C B D B C B A B C B
  D B C B D B C B D B C B D B C E D B C B D B C B ~
>`.pickRestart({
  A: "~@14 [ab3,bb3] ~", B: "bb3 ~@15", C: "~@10 bb3 ~@5", D: "~@14 bb3 ~", E: "bb3 ~@7",
})).s("gm_electric_guitar_muted").gain(0.07).pan(0.6)

// chords · lead 3 calliope
const lead_3_calliope = note(`<
  ~@33 A@2 B C D ~ E@2 A@2 B C D ~ E@2 ~@32 A@2 B C D ~ E@2 A@2 B C D ~ E@2 ~@28 A@2 B C D ~ E@2 A@2 B C D ~ F@2 A@2 B C
  D ~ E@2
>`.pickRestart({
  A: "[[eb3,db4,f4,ab4] [f3,db4,f4,bb4]!2 [f3,bb3,eb4,ab4] [f3,db4,f4,bb4]@2 [f3,bb3,eb4,ab4] [f3,db4,f4,bb4]@2 ~@7]/2", // Db Bbm Fm7 Bbm Fm7 Bbm
  B: "~ [bb3,db4,f4,ab4]!2 [f3,bb3,db4,f4] [bb3,db4,f4,ab4]!2 [f3,bb3,db4,f4] [bb3,db4,f4,ab4]", // Bbm7 Bbm Bbm7 Bbm Bbm7
  C: "~ [f3,bb3,db4,ab4] [f3,bb3,db4,f4] [f3,bb3,db4,ab4] ~@3 [f3,f4]", D: "[bb3,bb4] [bb3,bb4]@2 [bb3,bb4]@3 ~@2",
  E: "[[f3,bb3,db4,f4]@3 ~]/2", F: "[[f3,bb3,db4,f4]@9 ~@7]/2",
})).s("gm_lead_3_calliope").gain(0.07).pan(0.2)

// chords · electric guitar jazz
const electric_guitar_jazz_3 = note(`<
  ~@17 A@3 ~ B@6 C@4 D E F@2 D G H@2 I@2 ~@2 J@3 ~ K@2 L M N O P Q R S T@2 ~ U@4 V@3 W X Y@2 Z AA AB ~ AC AD ~@2 AE@2 L
  M N O P Q R S L M N O P Q R S AF ~@2 AG@3 AH AI@3 ~ AJ@3 AK AL AM@2 AN AO@3 AP AQ AR ~ AS AT AF ~@2 AU@2 ~ AV AW@3 AX
  AY AZ@2 BA BB L M N BC BD BE ~@2
>`.pickRestart({
  A: "[~@8 [f4,bb4]@27 ~@13, ~@7 [bb3,db4]@29 ~@12]/3", // Bb5 Bbm
  B: "[~@8 bb4@14 ~@24 eb5@19 ~@7 [f4,bb4]@24, ~@6 bb3@39 ~@26 [bb3,db4]@25, ~@7 db4@38 ~@51, ~@7 f4@26 ~@63]/6", // Bb5 Bbm
  C: "[~@14 eb4@11 f4@4 ~ db4@4 ~@6 [f4,bb4]@20 ~@4, ~@39 [bb3,db4]@20 ~@5]/4", D: "~@3 ab3 ~ ab3 ~ ab3",
  E: "~ ab3 ~@2 ab3!2 g3 gb3", F: "[f3@5 ~@4 bb4@16 ~@7, ~@7 bb3@18 ~@7, ~@4 db4@9 ~@3]/2", G: "~ ab3 ~ ab3!3 g3 gb3",
  H: "[f3@4 ~@4 f4@17 ~@7, ~@7 [bb3,db4]@18 ~@7]/2", I: "[~@7 eb4@9]/2", J: "[~@14 eb4@19 ~@15]/3",
  K: "[~@14 eb4@8 f4@4 db4@2 bb3@2 ab3 ~]/2",
  L: "[db4,f4,bb4] ~ f4 ~ [db4,f4,bb4] ~ [db4,f4,bb4]!3 ~ [db4,f4] ~@2 [db4,f4,bb4]!3", // Bbm Db Bbm
  M: "[db4,f4,bb4] ~ [db4,f4] ~ [db4,f4,bb4] bb4 f4 [db4,f4,bb4]!2 ~ [db4,f4] ~ [f4,bb4] ~ [db4,f4,bb4]!2", // Bbm Db Bbm Db Bb5 Bbm
  N: "[db4,f4,bb4] ~ [db4,f4] ~ [db4,f4,bb4] ~ [db4,f4,bb4]!3 ~ [db4,f4] ~ [db4,f4,bb4] bb4 [db4,f4,bb4] [db4,bb4]", // Bbm Db Bbm Db Bbm Gb
  O: "[db4,f4,bb4] ~ [db4,f4] ~ [db4,f4,bb4] [f4,bb4] [db4,f4] [db4,f4,bb4]!2 ~ [db4,f4] ~ [db4,f4,bb4] bb4 [db4,f4,bb4]!2", // Bbm Db Bbm Bb5 Db Bbm Db Bbm
  P: "[db4,f4,bb4] ~ [db4,f4] ~ [db4,f4,bb4] bb4 [db4,f4,bb4]!3 ~ [db4,f4] ~ [db4,f4,bb4] bb4 [db4,f4,bb4]!2", // Bbm Db Bbm Db Bbm
  Q: "[db4,f4,bb4] ~ [db4,f4] ~ [db4,f4,bb4] bb4 [db4,f4,bb4]!3 ~ [db4,f4,bb4] ~ [db4,f4,bb4] [f4,bb4] [db4,f4,bb4]!2", // Bbm Db Bbm Bb5 Bbm
  R: "[db4,f4,bb4] ~ [db4,f4] ~ [db4,f4,bb4] bb4 [db4,f4,bb4] [f4,bb4] [db4,f4,bb4] ~ [db4,f4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] [f4,bb4]", // Bbm Db Bbm Bb5 Bbm Db Bbm Bb5
  S: "[db4,f4,bb4] ~ [db4,f4,bb4] ~ [db4,f4,bb4] [f4,bb4] [db4,f4,bb4] [f4,bb4] [db4,f4,bb4] ~ [db4,f4] ~ [db4,f4,bb4] db4 [db4,f4,bb4] f4", // Bbm Bb5 Bbm Bb5 Bbm Db Bbm
  T: "[[bb3,db4,f4]@29 ~@3, bb4@13 ~@3]/2", U: "[~@4 db4@9 ~@3, ~@15 bb3@37 ~@12]/4",
  V: "[~@8 bb4@11 ~@5, ~@14 bb3@25 ~@9, ~@5 db4@8 ~@3]/3", W: "~@6 bb3 ~ ab3 ~@2 bb3 ~@2 db4 ~",
  X: "~@6 bb3 ~ ab3@2 ~ bb3 ~@2 ab3@2", Y: "[~ bb4@20 ~@11, [bb3,db4,f4]@5 ~@3]/2", Z: "~ bb3 ab3 f3 e3 eb3 ~@2",
  AA: "bb3@2 ab3@2 f3@2 e3@2 eb3@2 db3@5 ~", AB: "bb2 ~@7", AC: "~@2 bb4@2 ~ db5@2 ~ eb5@2 ~ db5@2 ~ f5@2",
  AD: "~@2 f5@2 ~ f5@2 ~ f5 ~ eb5 db5@2 ~@3", AE: "[~@3 eb4!2 e4!2 e4@2 f4 ~ f4 f4@2 ~@2]/2", AF: "[bb3,db4,f4,bb4]",
  AG: "[~@16 [db4,f4,bb4]@27 ~@5, ~@5 bb3@9 ~@2]/3", AH: "~@6 ab3@2 ~ ab3@2 ~@2 ab3@2 ~",
  AI: "[~ ab3@2 ~ ab3@2 ~@2 ab3@2 ~ ab3@2 ~@4 bb4@20 ~@11, ~@15 [bb3,db4]@22 ~@11, ~@16 f4@21 ~@11]/3", // Bbm
  AJ: "[~@16 bb4@19 ~@13, ~@5 [bb3,db4,f4]@8 ~@3]/3", AK: "~@2 e5@2 ~@2 eb5@2 db5@2 ~ f5@2 ~ f5@2",
  AL: "~@2 f5@2 ~ f5@2 ~ e5@3 db5@2 ~ bb4@2", AM: "[~ f4@19 ~@12, db4@3 ~, bb3@11 ~@5]/2",
  AN: "~@2 eb4@3 e4@3 e4@3 f4@3 f4@2", AO: "[f4@5 ~ db4@2 ~@2 db4@4 ~@2 [f4,bb4]@18 ~@14, ~@5 [bb3,db4]@6 ~@5]/3",
  AP: "~@2 ab3 ~ ab3!3 ~ ab3 ~@2 ab3 ~@2 bb3 ~", AQ: "db4@2 bb3 ~ ab3 ~ bb3@4 ~@4 ab3 ~",
  AR: "~ bb4@14 ~, [bb3,db4,f4]@15 ~", AS: "[f4,bb4] ~ [ab4,db5]@13 ~", AT: "eb4@4 f4@2 ~ ab3, ~@3 db4",
  AU: "[~ bb4, ~@15 [bb3,db4,f4]@17]/2", AV: "~@2 db5@4 ~@4 eb5@5 ~",
  AW: "[~@2 eb5@3 f5@2 ~ e5@3 ~@5 bb4@19 ~@13, ~@14 bb3@23 ~@11, ~@15 [db4,f4]@22 ~@11]/3", // Db
  AX: "~ ab3 ~ ab3 ~ ab3 ~ ab3", AY: "~@2 ab3@2 ~@2 eb3@2 ab3!2 ~ ab3!2 ab3@3", AZ: "[[bb3,db4,f4]@5 ~@3]/2",
  BA: "~@2 eb4 f4 ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4 ~", BB: "ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4@2",
  BC: "[db4,f4,bb4] ~ [db4,f4] ~ [db4,f4,bb4] bb4 [db4,f4] [db4,f4,bb4]!2 ~ [db4,f4] ~ [db4,f4,bb4] ~ [f4,bb4]!2", // Bbm Db Bbm Db Bbm Db Bbm Bb5
  BD: "[db4,f4,bb4] ~ [db4,f4] ~ [f4,bb4] ~ [f4,bb4]!2 [db4,f4,bb4] ~ f4 ~ f4 ~@2 bb4", BE: "[f4,bb4] ~ f4 ~@13",
})).s("gm_electric_guitar_jazz").gain(0.09).pan(0.9)

// chords · electric guitar jazz · soft notes
const electric_guitar_jazz_4 = note(`<
  ~@29 A ~@2 B C@2 ~@2 D@2 ~@10 E F G H I J K L ~@4 M@2 ~ N@3 ~@4 O ~@7 P Q R F G H I J K L E F G H I J K L ~@16 S@2 ~ T
  ~@20 U@2 ~@2 E F G V W X Y Z
>`.pickRestart({
  A: "~@2 bb3@3 ~@11", B: "~@3 ab3 ~@4", C: "[~@4 f4@9 ~@3]/2", D: "[~@8 bb4@15 ~@9]/2",
  E: "~@2 [db4,bb4] ~@2 [db4,f4,bb4] ~@6 [db4,f4,bb4] ~@3", F: "~@5 db4!2 ~@5 db4 [db4,bb4] ~@2",
  G: "~@5 [db4,bb4] ~@7 db4 ~@2", H: "~@5 db4 ~@7 db4 ~@2", I: "~@5 f4 ~@10", J: "~@2 bb4 ~@2 db4 ~@7 db4 ~@2",
  K: "~@5 [db4,f4] ~@7 bb4 ~ db4", L: "~@5 db4 ~ db4 ~@5 f4 ~@2", M: "[~ bb4@11 ~@20, f4@19 ~@13]/2",
  N: "[~@5 f4@8 ~@3]/3", O: "~@6 db3 ~", P: "~@2 eb4 ~@5", Q: "~@4 f4@2 ~@7 db4@2 ~",
  R: "~@2 [db4,bb4] ~@2 [db4,f4,bb4] ~@6 [db4,f4,bb4] ~@3, bb3@3 ~@5", S: "[~ bb4@21 ~@10]/2", T: "~@4 bb3 ~@3",
  U: "[bb4@9 ~@7]/2", V: "~@5 [db4,f4] ~@7 [db4,bb4] db4!2",
  W: "~@4 db4 [f4,bb4] db4!2 ~@2 db4 ~ [db4,bb4] bb4 [db4,f4,bb4] [db4,f4]", // Bb5 Gb Bbm Db
  X: "db4 ~ [db4,bb4] ~ [db4,f4,bb4] [db4,bb4] [db4,f4,bb4]!3 ~ [db4,f4,bb4] ~ [db4,f4,bb4]!4", // Gb Bbm Gb Bbm
  Y: "[db4,f4,bb4] ~ [db4,f4] ~ [db4,f4,bb4]!3 [f4,bb4] [db4,f4,bb4] ~ [db4,f4] ~ [db4,f4,bb4] bb4 [db4,f4,bb4] [f4,bb4]", // Bbm Db Bbm Bb5 Bbm Db Bbm Bb5
  Z: "[db4,f4,bb4] ~@15", // Bbm
})).s("gm_electric_guitar_jazz").gain(0.04).pan(0.9)

// chords · tremolo strings
const tremolo_strings = note("<~@5 A@4 ~@108 B@3 ~@29>".pickRestart({
  A: "[~@8 c6@8 db6@8 eb6@8 c6@8 bb5@23 ~, ~@8 ab5@55 ~, ~@8 f5@24 f5@31 ~]/4",
  B: "[~@7 ab5@5 bb5@4 ~@8, ~@14 db5@19 ~@15]/3",
})).s("gm_tremolo_strings").gain(0.18).pan(0.1)

// other · string ensemble 1
const string_ensemble_1 = note("<~@10 A B C D E ~@34 F G H@2 I J K@2 F G H@2 I J K@2 ~@51 L M@2 ~@30>".pickRestart({
  A: "~@14 [bb2,bb3] bb3", // Bb
  B: "[bb2,bb3] bb3 [bb2,bb3] bb3 [bb2,bb3]!2 [ab2,ab3] [bb2,bb3] [db3,db4] [bb2,bb3] bb3!2 [ab2,ab3] [bb2,bb3] bb3!2", // Bb Ab Bb Db Bb Ab Bb
  C: "[bb2,bb3]!4 [ab2,ab3] [bb2,bb3] [db3,db4] [eb3,eb4] [bb2,bb3]@2 ~@6", // Bb Ab Bb Db Eb Bb
  D: "[bb2,bb3] ~ bb2 ~ bb2 ~ [bb2,bb3] ~ bb2 ~ bb2 ~ [bb2,bb3] ~ [bb2,bb3] ~, ab5@2 ~ g5@2 ~ f5@2", // Bb
  E: "bb3 ~ [bb2,bb3] ~@3 [bb2,bb3] ~ [bb2,bb3] ~ [bb2,bb3] ~ [bb2,bb3] ~@3, ~ eb5@2 ~ db5 eb5 f5 ~", // Bb
  F: "~@2 bb2@4 c3 ~", G: "~@8 eb3@4 ~@2 bb3!2, ~@3 f3",
  H: "[bb3!6 ab3 bb3 db4 bb3!3 ab3 bb3!3 bb3!4 ab3 bb3 db4 eb4 bb3@2 ~@2 db3@2 f3 ~, bb2@3 ~]/2",
  I: "bb3@5 ~ ab3@4 ~@2 f3@4", J: "~@2 eb3@4 ~@2 db3@2 eb3@2 f3@2 bb3!2",
  K: "[bb3!6 ab3 bb3 db4 bb3!3 ab3 bb3!3 bb3!4 ab3 bb3 db4 eb4 bb3@2 ~@6, bb2@3 ~]/2", L: "~@14 eb4 ~",
  M: "[f4 ~ eb4 ~ f4!2 eb4 ~ f4 ~@5 eb4 ~ f4 ~ f4 ~ eb4 ~ f4@3 ~ eb4 ~ db4@2 bb3 ~, ~@3 bb2@12 ~]/2",
})).s("gm_string_ensemble_1").gain(0.25).pan(0.1)

// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@10 A B ~ C D ~@34 E@2 ~@6 E@2 ~@90>".pickRestart({
  A: "~@15 bb2", B: "~ bb2 ~ bb2 ~@6 bb2!2 ~@2 bb2!2", C: "~@2 bb3 ~ bb3 ~@3 bb3 ~ bb3 ~@5",
  D: "bb2 ~@3 [bb2,bb3] ~@11", E: "[~@7 db3@5 ~@4]/2",
})).s("gm_string_ensemble_1").gain(0.14).pan(0.1)

// chords · epiano1
const epiano1 = note("<~@97 A B C D E F G H ~@44>".pickRestart({
  A: "~@2 [f3,ab3,bb3]@3 ~ [f3,ab3,bb3,db4]@2 ~@2 [bb3,eb4] ~@3 [ab3,bb3,db4,f4]@2", // Bb7 Bbm7 Eb5 Bbm7
  B: "~@2 [bb3,db4,eb4] ~@3 [ab3,bb3,db4]@3 ~ [ab3,bb3,db4] ~@3 [f3,bb3]@2, ~@2 ab3@2 ~@10 ab3 ~", // Eb7 Bbm7 Bb5
// … 99 more lines

More by The Temptations