Strudelify
She's A Woman cover art

1964 · Past Masters

She's A Woman

The Beatles

KeyA♭ majorTempo161 bpm
0:00/0:00
// She's A Woman — The Beatles
// 161 bpm, 4/4, key Ab major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 139 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(161/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 · lead 1 square · "Hollow"
const lead_1_square = note(`<
  ~@8 A B C@2 D@2 E@2 F@4 G B H@2 I J K@2 L M N O@2 P ~@17 Q R S@2 T@2 U@2 V@2 W@2 X Y Z@2 AA AB AC@2 AD@2 AE O@2 AF
  ~@16 AG AH AI@3 AJ@2 AK@2 AL@2 AM AN@2 AO ~@31
>`.pickRestart({
  A: "bb4 ~ bb4@6 ~@8", B: "~@4 bb4 ~ bb4 ~", C: "[bb4@2 ~@2 bb4@2 ~@2 c5@3 ~ ab4@7 ~@13]/2",
  D: "[~@4 g4@3 ~ g4@2 ~@2 g4 ~ g4@5 ~ g4@3 ~ g4@2 ~@2 g4@3 ~]/2", E: "[~@4 g4@3 ~ ab4@3 ~ f4@8 ~@12]/2",
  F: "[~@8 eb5@3 ~ eb5 ~ eb5@7 ~@3 eb5@2 ~@2 eb5@2 d5@5 ~ c5@3 ~ bb4@2 c5@3 ~ c5@6 bb4@8 g4@4]/4", G: "bb4 ~ bb4@5 ~@9",
  H: "[bb4@3 ~ eb5@3 ~ bb4@2 ~@2 bb4@17 ~@3]/2", I: "~@4 g4@3 ~ g4@3 ~ g4@3 ~", J: "g4 ~ g4@3 ~ g4@2",
  K: "[~@4 g4@3 ~ ab4@3 ~ f4@10 ~@10]/2", L: "~@4 eb5@3 ~ eb5@3 ~ eb5@3 ~", M: "eb5@9 ~@3 eb5@4",
  N: "d5@4 c5@4 bb4@4 c5@3 ~", O: "[eb4@27 ~@3 eb4@2, c5@25 ~@3 [f4,d5]@2 ~@2, ~@29 c5@2 ~]/2",
  P: "d4@13 ~@3, bb4@5 ~@3", Q: "bb4 ~ bb4@8 ~@6", R: "~@4 bb4@3 ~ bb4@3 ~ bb4@2 ~@2",
  S: "[bb4@3 ~ c5@7 ~ ab4@10 ~@10]/2", T: "[~@4 g4@3 ~ g4@3 ~ g4 ~ g4@11 ~@3 g4@2 ~@2]/2",
  U: "[g4@7 ~ ab4@2 ~@2 f4@9 ~@11]/2", V: "[~@8 eb5@3 ~ eb5 ~ eb5@5 ~ eb5@7 ~ eb5@3 ~]/2",
  W: "[d5@3 ~ c5@3 bb4@2 c5@3 ~ c5@6 bb4@8 ~ g4@3 ~]/2", X: "bb4 ~ bb4@4 ~@10", Y: "~@8 bb4@3 ~ bb4@3 ~",
  Z: "[bb4@3 ~ bb4@3 ~ d5@2 ~@2 ab4@9 ~@11]/2", AA: "~@4 g4@3 ~ g4@3 ~ g4@2 ~@2", AB: "g4@3 ~ g4@4 ~@4 g4@2 ~@2",
  AC: "[g4@2 ~@2 bb4@3 ~ ab4@4 f4@9 ~@11]/2", AD: "[~@8 eb5@3 ~ eb5 ~ eb5@8 ~@2 eb5@3 ~ eb5@3 ~]/2",
  AE: "d5@3 ~ c5@4 bb4@4 c5@3 ~", AF: "d4@3 ~, bb4@5 ~@3", AG: "~@4 g4@3 f4@2 ~@2 d4 ~@4, ~@5 eb4 ~@2",
  AH: "b4 ~ b4@7 ~@7", AI: "[~@12 b4@2 ~ b4@4 ~ e5@3 ~ b4@2 ~ b4 db5@7 ~ b4@8 ~@4]/3",
  AJ: "[~@4 [e4,ab4]@3 ~ [e4,ab4]@3 ~ e4@2 ~@2 e4@3 ~ [e4,ab4]@3 ~ [e4,ab4]@3 ~ [e4,ab4]@2 ~@2, ~@12 ab4 ~ ab4@5 ~@13]/2", // E
  AK: "[[e4,ab4]@4 [ab4,b4]@4 [gb4,a4]@3 ~ gb4@8 ~@12, ~@3 eb4 ~@4]/2", // E Abm Gbm
  AL: "[~@4 e5@3 ~ e5@3 ~ e5 ~ e5@5 ~ e5@7 ~ e5@4]/2", AM: "eb5@2 db5@2 b4@3 eb5@3 db5@2 b4@3 ~",
  AN: "[[e4,db5]@14 ~ e4, ~@14 [gb4,eb5] ~, ~@29 db5@2 ~]/2", AO: "eb4@3 ~, b4@5 ~@3",
})).s("gm_lead_1_square").gain(0.25)

// bass · electric bass finger · "Finger"
const bass = note(`<
  A@2 B C D@3 E F G H I J K L M N O H P Q R H S J T L U N O H P V W@2 X@2 Y@2 Z@2 AA AB X@2 Y@2 Z@2 AA AC F G H I J K L
  U N O H P Q R H S J T L U N O H P V W@2 X@2 Y@2 Z@2 AA AB X@2 Y@2 Z@2 AA AC AD AE AF AG AH AI AJ AK AL AM AF AN AO
  AP@2 AQ@2 AR@2 AS@2 AT AU AQ@2 AR@2 AS@2 AT AV AQ@2 AR@2 AS@2 AT AV AQ@2 AR@2 AS@2
>`.pickRestart({
  A: "[eb3@27 ~ eb3 ~ eb3 ~]/2", B: "eb3@12 eb3@3 ~", C: "eb3 bb3", D: "[eb4@7 ~]/3", E: "~ bb3", F: "eb3@5 ~ eb3 ~",
  G: "f3@13 ~@3", H: "g3", I: "ab3@11 ~ bb2@4", J: "eb3@11 ~ d3@2 ~@2", K: "c3@11 ~ c3@3 ~", L: "f3@11 ~ f3@3 ~",
  M: "bb3@7 ~", N: "ab3@15 ~", O: "f3@15 ~", P: "bb3@15 ~", Q: "eb3@11 ~ eb3@2 ~@2", R: "f3@3 ~",
  S: "f3@11 ~ bb2@2 d3@2", T: "c3", U: "bb3!2", V: "bb3 ~ bb3@6", W: "[bb2@7 ~]/2",
  X: "[eb3@7 ~ eb3@2 g3@2 bb3@18 ~@2]/2", Y: "[c3 ~ c3 ~ c3 eb3 g3@9 ~]/2", Z: "[f3 ~ f3 ~ f3 c4 f4@9 ~]/2", AA: "bb3",
  AB: "c4@2 bb3 g3", AC: "bb2 d3", AD: "e3@11 ~ e3@2 ~@2", AE: "gb3@3 ~", AF: "ab3", AG: "gb3@11 ~ b2@2 eb3@2",
  AH: "e3@11 ~ eb3@2 ~@2", AI: "db3", AJ: "gb3@11 ~ gb3@3 ~", AK: "b3!2", AL: "a3@15 ~", AM: "gb3@15 ~", AN: "b3@15 ~",
  AO: "b3 ~ b3@6", AP: "[b2@7 ~]/2", AQ: "[e3@7 ~ e3@2 ab3@2 b3@18 ~@2]/2", AR: "[db3 ~ db3 ~ db3 e3 ab3@9 ~]/2",
  AS: "[gb3 ~ gb3 ~ gb3 db4 gb4@9 ~]/2", AT: "b3", AU: "db4@2 b3 ab3", AV: "b2 eb3",
})).s("gm_electric_bass_finger").gain(0.48)

// chords · acoustic guitar steel · "Steel Gtr"
const acoustic_guitar_steel = note(`<
  A@2 B@2 C@2 D@2 E F G H E I J K L M N O E F P H E I J K L M N Q R S T U V W@2 X Y Z AA U V W@2 X Y Z AB AC F P H E I J
  K L M N O E F P H E I J K L M N Q R AD AE U V W@2 X Y Z AA U V W@2 X Y Z AF AG AH AI AJ AG AK AL AM AN AO AP AQ AR AS
  AT AU AV AW@2 AX AY AZ BA AU AV AW@2 AX AY AZ BB AU AV AW@2 AX AY AZ BB AU AV AW@2 AX BC
>`.pickRestart({
  A: "[[bb3,eb4,ab4]@2 ~@2 [bb3,eb4,ab4] ~@3 [bb3,eb4,ab4]@2 ~@2 [bb3,eb4,g4]@7 ~ [bb3,eb4,g4]@6 ~@2 [bb3,eb4,g4]@3 ~]/2", // Ebsus4 Eb
  B: "[~@4 f4 ~@5 eb4 ~ [eb4,g4]@2 bb3 ~, c4@9 ~@3 bb3@3 ~ bb3@6 ~@2 bb3@2 ~@6, ~@4 eb4@6 ~@2 eb4@7 ~@13, ~@13 g4@7 ~@12]/2", // Eb
  C: "[[bb3,eb4,ab4]@2 ~@2 [bb3,eb4,ab4]@2 ~@2 [bb3,eb4,ab4]@2 ~@2 [bb3,eb4,g4]@7 ~ bb3@2 ~@2 bb3@2 ~@2 bb3@2 ~@2, ~@24 [eb4,g4]@7 ~]/2", // Ebsus4 Eb
  D: "[~@8 f4@2 ~@2 [eb4,g4]@8 bb3@3 ~@5 bb3@2 ~@2, c4@10 ~@2 bb3@6 ~@5 bb3@2 ~@7, ~@2 eb4@3 ~@7 [eb4,g4]@3 ~]/2", // Eb
  E: "eb4@4 g4@4 eb4@4 g4 ~@3, bb3@7 ~", F: "~@4 f4@3 ~@5 f4@2 ~@2, [ab3,c4]@7 ~ [ab3,c4]@6 ~@2",
  G: "d4@4 g4@4 g4 ~@3 bb4@4, bb3@7 ~, ~@4 d4@3 ~, ~@6 g4 ~", H: "ab4@3 ~ ab4@3 ~ eb4@4 ab4@2 ~@2, c4@7 ~, eb4@3 ~@5",
  I: "~@2 [eb4,g4]@2 ~@2 [eb4,g4] ~, c4@3 ~ c4@3 ~", J: "c4@2 f4@2 c4@2 f4 ~, ab3@7 ~@9",
  K: "[bb3,c4]@3 ~ bb3@3 ~ bb3@2 ~@2 bb3@2 ~@2, [eb4,f4]@3 ~ [d4,f4]@3 ~", L: "eb4@4 ab4@4 eb4@4 ab4 ~@3, c4@13 ~@3",
  M: "c4@4 f4@4 c4@4 f4 ~@3, ab3@7 ~", N: "~@4 g4@4 d4@4 g4 ~@3, bb3@7 ~, d4@3 ~@5",
  O: "f4@4 [eb4,g4]@3 ~ [f4,bb4]@4 [bb3,f4]@4, bb3@7 ~ bb3@2 ~@6, eb4@2 ~@6 d4@7 ~", // Eb Bb5
  P: "d4@4 g4@4 g4@3 ~ bb4@4, bb3@7 ~, ~@4 d4@3 ~, ~@6 g4 ~", Q: "~@4 [f4,bb4] ~ [f4,bb4] ~@5 [f4,bb4] ~@3",
  R: "~@4 [f4,bb4] ~@7 [f4,bb4] ~@3", S: "~@4 [f4,bb4] ~ [f4,bb4] ~@5 bb4 ~@3", T: "~@4 [f4,bb4] ~@7 [f4,bb4,bb5] ~@3",
  U: "~ bb3 eb4 g4", V: "f4 eb4 bb3@2", W: "[~@4 c4@4 eb4@4 ~@4 f4@4 eb4@4 c4@7 ~, ~@3 g4@2 ~@3]/2", X: "~ ab3 c4 f4",
  Y: "eb4@2 c4@5 ~", Z: "~ bb3 d4 f4", AA: "eb4@2 d4@2 c4@2 bb3 ~", AB: "eb4@2 d4@2 c4@2 [bb3,bb4] ~",
  AC: "[eb4,g4]@5 ~@3 eb4@4 g4 ~@3, bb3@7 ~", AD: "~@4 [bb3,f4,bb4] ~ [f4,bb4] ~ [bb3,f4] ~@3 bb4 ~@3",
  AE: "[bb3,f4] ~@3 [f4,bb4] ~@3 [bb3,f4] ~@3 [f4,bb4,bb5] ~@3", AF: "eb4@2 d4@2 c4@2 [bb3,bb4] ~, ~@2 bb4 ~ bb4 ~@3",
  AG: "e4@4 ab4@4 e4@4 ab4 ~@3, b3@7 ~", AH: "~@4 gb4@3 ~@5 gb4@2 ~@2, [a3,db4]@7 ~ [a3,db4]@6 ~@2",
  AI: "eb4@4 ab4@4 ab4@3 ~ b4@4, b3@7 ~, ~@4 eb4@3 ~, ~@6 ab4 ~", AJ: "a4@3 ~ a4@3 ~ e4@4 a4@2 ~@2, db4@7 ~, e4@3 ~@5",
  AK: "~@2 [e4,ab4]@2 ~@2 [e4,ab4] ~, db4@3 ~ db4@3 ~", AL: "db4@2 gb4@2 db4@2 gb4 ~, a3@7 ~@9",
  AM: "[b3,db4]@3 ~ b3@3 ~ b3@2 ~@2 b3@2 ~@2, [e4,gb4]@3 ~ [eb4,gb4]@3 ~", AN: "e4@4 a4@4 e4@4 a4 ~@3, db4@13 ~@3",
  AO: "db4@4 gb4@4 db4@4 gb4 ~@3, a3@7 ~", AP: "~@4 ab4@4 eb4@4 ab4 ~@3, b3@7 ~, eb4@3 ~@5",
  AQ: "~@4 [gb4,b4] ~ [gb4,b4] ~@5 [gb4,b4] ~@3", AR: "~@4 [gb4,b4] ~@7 [gb4,b4] ~@3",
  AS: "~@4 [b3,gb4,b4] ~ [gb4,b4] ~ [b3,gb4] ~@3 b4 ~@3", AT: "[b3,gb4] ~@3 [gb4,b4] ~@3 [b3,gb4] ~@3 [gb4,b4,b5] ~@3",
  AU: "~ b3 e4 ab4", AV: "gb4 e4 b3@2", AW: "[~@4 db4@4 e4@4 ~@4 gb4@4 e4@4 db4@7 ~, ~@3 ab4@2 ~@3]/2",
  AX: "~ a3 db4 gb4", AY: "e4@2 db4@5 ~", AZ: "~ b3 eb4 gb4", BA: "e4@2 eb4@2 db4@2 b3 ~",
  BB: "e4@2 eb4@2 db4@2 [b3,b4] ~, ~@2 b4 ~ b4 ~@3", BC: "e4 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.34).pan(0.3)

// other · pad warm · "Warm pad"
const pad_warm = note("<A@8 ~@23 B@3 C ~@39 B@3 C ~@24 D@2 E F@3 G ~@12 H I J@2 ~@4 H I J@2 ~@6>".pickRestart({
  A: "[eb3,bb3]/4", B: "bb2/3", C: "c3@8 d3@7 ~", D: "a3/2", E: "ab3", F: "[b2@38 ~@2 b2@7 ~]/3", G: "db3@8 eb3@7 ~",
  H: "~@8 gb3@7 ~", I: "ab3@7 ~ a3@7 ~", J: "[ab3@23 ~ gb3@7 ~]/2",
})).s("gm_pad_warm").gain(0.48)

// chords · string ensemble 2 · "Strings"
const string_ensemble_2 = note(`<
  A@8 B C D E F@4 G H I J K C D E L@4 M@2 N O@3 P Q@6 R@2 S@6 T U V W X W V Y Z@2 W AA AB AC AD AE@2 AF AG@2 AH AI ~@3
  AJ@4 AK@6 R@2 S@6 T U AL@2 AM AN AO@2 AP AQ AR@2 AS AT@4 AU@2 AV@2 AW@2 AX@2 AY@2 AV@2 AW@2 AX@2 AY@2 AV@2 AW@2 AX@2
  AY@2 AV@2 AW@2
>`.pickRestart({
  A: "eb5/8", B: "bb3@8 eb4@7 ~", C: "c4 eb4", D: "d4", E: "[ab3,eb4]",
  F: "[g3@32 ~@16 eb4@7 d4@7 ~@2, ~@2 f4 ~, ~@33 f3@30 ~]/4", G: "[ab3,c4]@15 ~", H: "[f3,c4]@15 ~", I: "[g3,d4]@7 ~",
  J: "bb3@7 ~", K: "~@8 eb4@7 ~", L: "[g3@33 ~@15 eb4@7 d4@7 ~@2, ~@33 f3@30 ~]/4", M: "[ab3,ab4]/2", N: "[g3,d4]@15 ~",
  O: "[[bb2,bb3]@5 bb3, f4, ~@40 bb2 ~@7]/3", P: "[c3,c4]@8 [d3,d4]@7 ~", Q: "[d4 c4@2, eb5]/6", R: "[d4,d5]/2",
  S: "eb5/6", T: "~@11 bb2@5, d5", U: "c3@8 d3@7 ~", V: "g3", W: "ab3", X: "bb3", Y: "c4", Z: "[~@16 eb4@7 d4@9, f3]/2",
  AA: "f3", AB: "g3@15 ~", AC: "eb4@4 d4@3 ~", AD: "~ eb4", AE: "[c4@11 eb4@4 d4@17]/2", AF: "eb4@8 f4@7 ~",
  AG: "[g4@31 ~]/2", AH: "f4", AI: "eb4@8 d4@7 ~",
  AJ: "[~@20 bb5 ~ bb5 ~@5 bb5 ~ bb5 ~@4 bb5 ~@2 bb5@2 ~@3 bb5 ~ bb5 ~@5 bb5 ~@2 bb5@2 ~@3 bb5 ~ bb5 ~@2, bb4, ~@40 bb2@7 ~ c3@7 ~ d3@7 ~]/4",
  AK: "[[d4,d5] [c4,c5]@2, eb5]/6", AL: "[ab3@15 ~ a3@16, e5]/2", AM: "[b3,ab5]", AN: "[a3,gb5]",
  AO: "[ab3@15 db4@16 ~, ab5]/2", AP: "[gb3,gb5]", AQ: "b5, b3@7 ~", AR: "a5/2", AS: "ab5",
  AT: "[~@20 b5 ~ b5 ~@5 b5 ~ b5 ~@4 b5 ~@2 b5@2 ~@3 b5 ~ b5 ~@5 b5 ~@2 b5@2 ~@3 b5 ~ b5 ~@2, b4, gb5@32 ~@8 b2@7 ~ db3@7 ~ eb3@7 ~]/4",
  AU: "[b2,e3,e5,b5]/2", AV: "[~ db5@31, [db3,ab5]]/2", AW: "[[gb3,a4,gb5,a5]@31 ~]/2", AX: "[b2,b4,ab5,b5]/2",
  AY: "[e3,e5,b5]/2", // E5
})).s("gm_string_ensemble_2").gain(0.37)

// other · english horn · "Chime"
const english_horn = note("<~@7 A@2 ~@25 B ~@7 B ~@7 B ~@26 C ~@7 B ~@7 B ~@14 C ~@7 B ~@7 B ~@7 B ~@6>".pickRestart({
  A: "[~@6 eb6@3 ~@7]/2", B: "~@4 eb6@3 ~", C: "~@2 eb6 ~",
})).s("gm_english_horn").gain(0.15)

// chords · piano
const piano = note(`<
  ~@78 A@2 B@2 C D E@2 A@2 B@2 C D E@2 ~@15 F@2 G@2 H I J@2 K@2 L@2 M N O@2 K@2 L@2 M N O@2 K@2 L@2 M P
>`.pickRestart({
  A: "[[g3,bb3,d4]@18 ~@6 [g3,bb3,f4]@5 ~@3]/2", B: "[[g3,c4,eb4]@10 ~@2 [g3,c4,eb4] ~@3]/2", C: "[ab3,c4,eb4]@7 ~",
  D: "[ab3,c4,eb4]@7 ~ [ab3,c4,eb4]@5 ~@3", // Ab
  E: "[bb3@4 ~@4 d4@4 f4@6 ~@2 f4 ~ f4@2 d4@4 f4@2 ~@2, bb2@3 ~@5, ~@4 bb3@7 ~@21]/2",
  F: "[[ab3,b3,eb4]@18 ~@6 [ab3,b3,gb4]@5 ~@3]/2", G: "[[ab3,db4,e4]@10 ~@2 [ab3,db4,e4] ~@3]/2", H: "[a3,db4,e4]@7 ~",
  I: "[a3,db4,e4]@7 ~ [a3,db4,e4]@5 ~@3", // A
  J: "[b3@4 ~@4 eb4@4 gb4@6 ~@2 gb4 ~ gb4@2 eb4@4 gb4@2 ~@2, b2@3 ~@5, ~@4 b3@7 ~@21]/2",
  K: "[~@4 b4 ~ b4 ~@5 b4 ~@7 b4 ~ b4 ~ [ab3,b3,gb4]@4 b4 ~@3, [ab3,b3,eb4]@9 ~@7]/2", // Abm7 Abm
  L: "[~@4 b4 ~ b4 ~@5 b4 ~@7 b4!2 ~@6 b4 ~@3, [ab3,db4,e4]@20 ~@4 [ab3,db4,e4]@7 ~]/2", // Dbm
  M: "~@4 db5 ~ db5 ~@5 db5 ~@3, [a3,db4,e4]@7 ~", N: "~@4 db5 ~ db5 ~ [a3,db4,e4]@4 db5 ~@3, [a3,db4,e4]@7 ~@9",
  O: "[b3@4 b4 ~ b4 ~ eb4@4 gb4@6 ~@2 [gb4,b4] ~ gb4@2 eb4@4 gb4@2 b4 ~, b2@12 b4 ~@15 b4 ~@3, ~@2 b3@13 ~]/2", // B5
  P: "[a3,db4,e4] ~@15", // A
})).s("gm_piano").gain(0.21)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A@2 B A B A B A B A B A B A B C D A B A B A B A B
  A B A B A B A B A B A B A B A B A@2 ~ A B A B A B A B A B A B A B A D A B A B A B A B A B A B A B ~ A B A B A B A B A
  B A B A B A D A B A B A B A D A B A B A ~
>`.pickRestart({
  A: "x", B: "x!2 ~@2", C: "x ~@6 x", D: "~ x ~@2",
})).gain(0.38)

// drums · snare
const snare = s("sd").struct("<A@33 ~@2 A@15 ~ A@25 ~@2 A@14 B C A@14 ~ A@14 B C A@6 B C A@5 ~>".pickRestart({
  A: "~ x", B: "~@2 x!2", C: "x",
})).gain(0.43)

// drums · hihat
const hihat = s("hh").struct(`<
  A@9 B A B A B A B A B A B A B A B A B A B A B A B A B A@15 B A@2 B A B A B A B A B A B A B A B A B A B A B A B A B
  A@15 C A@2 B A B A B A B A B A B A B A@15 C A@7 C A@6 ~
>`.pickRestart({
  A: "x!4", B: "~ x!3", C: "x!2 ~ x",
})).gain(0.16)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@18 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@18 A ~
  A ~ A ~ A ~ A ~ A ~ A ~@31
>`.pickRestart({
  A: "x",
})).gain(0.11)

// drums · mid tom
const mid_tom = s("mt").struct("<~@33 A B ~@15 C ~@25 D E ~@15 F ~@14 G ~@15 H ~@7 H ~@6>".pickRestart({
  A: "~@4 x!3 ~", B: "x ~@2 x", C: "x!3 ~@5", D: "~@2 x ~ x ~@2 x", E: "x ~@2 x!2 ~ x ~", F: "~@2 x ~ x ~ x!2",
  G: "x!3 ~ x!2 ~@2", H: "~@2 x!2 ~@4",
})).gain(0.38)

// drums · open hat
const open_hat = s("oh").struct("<~@49 A ~@42 B ~@30 B ~@7 B ~@7>".pickRestart({
  A: "x", B: "~ x",
})).gain(0.32)

// drums · high tom
const high_tom = s("ht").struct("<~@34 A ~@15 B ~@57 C ~@15 D ~@7 D ~@6>".pickRestart({
  A: "~@3 x!3 ~@2", B: "~@3 x!4 ~", C: "~@6 x!2", D: "~@4 x ~ x!2",
})).gain(0.32)

// drums · tambourine
const tambourine = s("tb").struct("<~@8 A@25 ~@2 A@41 ~@2 A@29 ~@2 A@29 ~>".pickRestart({
  A: "~ x",
})).gain(0.27)

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

stack(
  lead_1_square, bass, acoustic_guitar_steel, pad_warm, string_ensemble_2, english_horn, piano, kick, snare, hihat,
  hihat_soft, mid_tom, open_hat, high_tom, tambourine, crash
)

More by The Beatles