Strudelify

Baby I'm A Want You

Bread

KeyA♭ majorTempo72 bpm
0:00/0:00
// Baby I'm A Want You — Bread
// 72 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 6 "DISTORTION" distortion guitar (copy of ch 1 "NYLON GTR" acoustic guitar nylon)
// note: Full arrangement: all 43 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(72/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 nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  A B C D E F G H I J K L M H N O P Q R S T U V W X Y Z P AA AB AC AD AE AF AG AH AI AJ AK AL AM AN ~
>`.pickRestart({
  A: "[ab3,c4,eb4,g4]@3 ab3 [ab3,c4,eb4,g4]@2 [ab3,c4,eb4,g4]@3 ab3 [ab3,c4,eb4,g4]@3 ab3 [ab3,c4,eb4,g4]@2", // Abmaj7
  B: "[ab3,bb3]@3 ab3 [ab3,bb3]@2 [ab3,bb3,db4,f4]@3 ~ [bb3,db4,f4]@3 ab3 [ab3,bb3,db4,f4]@2, [db4,f4]@6 ~@3 ab3@4 ~@3", // Absus2 Bbm7 Bbm Bbm7 Db
  C: "[ab3,c4,eb4]@3 ab3 [ab3,c4,eb4]@2 [ab3,c4,eb4,g4]@3 ab3 [ab3,c4,eb4]@3 ab3 [ab3,c4,eb4]@2, g4@3 ~@2 g4@3", // Ab Abmaj7 Ab
  D: "[ab3,bb3,db4,f4]@3 ab3 [ab3,bb3,db4,f4]@2 [ab3,bb3,db4,f4]@6 [ab3,db4,f4]@3 ~", // Bbm7 Db
  E: "[ab3,c4,eb4]@3 ab3 [c4,eb4]@2 [c4,eb4]@3 ~ [c4,eb4]@3 ~ [c4,eb4]@2, ~@4 ab3@5 ab3@4 ab3@3", // Ab Cm
  F: "[ab3,bb3,f4]@3 ~ [bb3,f4]@2 [bb3,db4,f4]@3 ab3 [ab3,bb3,db4,f4]@3 ~@2 ab3, db4@3 ~@4 [bb3,db4,f4], ~@3 ab3@6 ~@4 ab3@2 ~", // Bb7 Bb5 Bbm Bbm7 Bbm
  G: "[ab3,c4,eb4,g4]@3 ~ [c4,eb4,g4]@2 [ab3,c4,eb4,g4]@3 ab3 [ab3,c4,eb4,g4]@3 ~@2 ab3, ~@3 ab3@3 ~@7 ab3@2 ~, ~@7 [c4,eb4,g4]", // Abmaj7 Cm Abmaj7 Cm
  H: "[ab3,db4,f4]@3 ab3 [ab3,db4,f4]@2 [ab3,db4,f4]@2 [ab3,db4,f4]@4 [ab3,c4,eb4]@4", // Db Ab
  I: "[ab3,bb3,db4,f4]@3 ~ [bb3,db4,f4]@2 [ab3,bb3,db4,f4]@3 ab3 [ab3,bb3,db4,f4]@3 ~@2 ab3, ~@3 ab3@3 ~@7 ab3@2 ~, ~@7 [bb3,db4,f4]", // Bbm7 Bbm Bbm7 Bbm
  J: "[ab3,db4,f4]@3 ab3 [ab3,db4,f4]@2 [ab3,db4,f4]@3 ab3 [ab3,db4,f4]@3 ab3 ~ ab3, ~@7 [ab3,db4,f4]", // Db
  K: "[c4,eb4]@3 ab3 [ab3,c4,eb4]@2 [ab3,c4,eb4]@3 ab3 [ab3,c4,eb4]@3 ~@2 ab3, ab3 ~@12 ab3@2 ~, ~@7 [c4,eb4]", // Cm Ab Cm
  L: "[ab3,bb3,db4,f4]@3 ab3 [ab3,bb3,db4,f4]@2 [ab3,bb3,db4,f4]@3 ab3 [ab3,bb3,db4,f4]@3 ~@2 ab3, ~@13 ab3@2 ~, ~@7 [bb3,db4,f4]", // Bbm7 Bbm
  M: "[ab3,c4,g4]@3 ab3 [ab3,c4,g4]@2 [ab3,c4,eb4,g4]@3 ab3 [ab3,c4,eb4,g4]@3 ~@2 ab3, eb4@6 ~@7 ab3@2 ~, ~@7 [c4,eb4,g4]", // Abmaj7 Cm
  N: "[ab3,bb3]@3 ab3 [ab3,bb3]@2 [ab3,bb3,db4,f4]@3 ab3 [ab3,bb3,f4]@3 ab3 [ab3,bb3,f4]@2, [db4,f4]@3 ~@2 db4@3", // Absus2 Bbm7 Bb7 Db
  O: "[ab3,f4]@3 ab3 [ab3,f4]@2 [ab3,db4,f4]@3 ab3 [ab3,db4,f4]@3 ab3 [ab3,db4,f4]@2, db4@3 ~@5", // Db
  P: "[ab3,c4,eb4]@3 ab3 [ab3,c4,eb4]@2 [ab3,c4,eb4]@2 [ab3,eb4]@3 [ab3,eb4]@5, ~ c4", // Ab Ab5
  Q: "[bb3,c4,eb4,g4]@3 [bb3,c4] [bb3,c4,eb4,g4]@2 bb3 [bb3,c4,eb4,g4]@2 [bb3,c4] [bb3,eb4]@3 [bb3,eb4,ab4]@3, ~@5 [c4,g4]@3", // Cm7 Bbsus2 Cm7 Bbsus2 Eb5 Ebsus4 C5
  R: "[bb3,eb4,g4]@3 [db4,f4,ab4]@3 [ab3,db4,f4]@10", // Eb Db
  S: "[bb3,c4,eb4,g4]@3 bb3 [bb3,c4,eb4,g4]@2 bb3 [bb3,c4,eb4,g4]@2 [bb3,c4] [bb3,eb4]@3 [bb3,eb4,ab4]@3, ~@5 [c4,g4]@3", // Cm7 Bbsus2 Eb5 Ebsus4 C5
  T: "[bb3,eb4,g4]@3 [db4,f4,ab4]@3 [ab3,db4,f4]@8 ~@2", // Eb Db
  U: "[ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~@2 ab3 [ab3,c4,eb4]@3 ~ [c4,eb4]@2, ~@7 ab3@2 ~@4 ab3@3, ~@4 [c4,eb4] ~@3", // Ab Cm
  V: "ab3@3 ab3@3 [ab3,bb3,f4]@3 ab3 [ab3,bb3]@3 ~@2 ab3, [bb3,db4,f4]@6 db4@7 ab3@2 ~, ~@5 f4@3, ~@7 [bb3,db4]", // Bb7 Absus2 Bbm
  W: "[ab3,c4,eb4,g4]@3 ab3 [ab3,c4,eb4,g4]@2 [ab3,c4,eb4,g4]@3 ab3 [ab3,c4,eb4,g4]@3 ab3 ~ ab3, ~@7 [ab3,c4,eb4,g4]", // Abmaj7
  X: "[ab3,db4,f4]@3 ab3 [ab3,db4,f4]@2 [ab3,db4,f4]@3 ab3 [ab3,db4,f4]@2 [ab3,c4,eb4]@4", // Db Ab
  Y: "[ab3,bb3,db4,f4]@3 ab3 [ab3,bb3,db4,f4]@2 [ab3,bb3,db4,f4]@3 ab3 [ab3,bb3,db4,f4]@3 ab3 [ab3,bb3,db4,f4]@2", // Bbm7
  Z: "[ab3,db4,f4]@3 ab3 [ab3,db4,f4]@2 [ab3,db4,f4]@3 ab3 [ab3,db4,f4]@3 ab3 [ab3,db4,f4]@2", // Db
  AA: "[bb3,c4,eb4,g4]@3 bb3 [bb3,c4,eb4,g4]@2 bb3 [bb3,c4,eb4,g4]@2 bb3 [bb3,eb4]@3 [bb3,eb4,ab4]@3, ~@5 [c4,g4]@3", // Cm7 Eb5 Ebsus4 C5
  AB: "[bb3,eb4,g4]@3 [db4,f4,ab4]@3 ab3@6 ab3@4, ~@3 [db4,f4]@5", // Eb Db
  AC: "[bb3,c4,eb4,g4]@3 bb3 [c4,eb4,g4]@2 bb3 [c4,eb4,g4]@2 bb3 [bb3,eb4]@3 [bb3,eb4,ab4]@3, ~@4 bb3 ~@2 bb3 ~@2 [c4,g4]@6", // Cm7 Cm Eb5 Ebsus4 C5
  AD: "[bb3,eb4,g4]@3 [db4,f4,ab4]@3 [ab3,db4,f4]@8 [a3,c4,eb4]@2", // Eb Db Adim
  AE: "[a3,c4,eb4]@3 [bb3,db4,f4]@3 ~@6 f3@4, ~@3 [ab3,db4]@5", // Adim Bbm Db5
  AF: "[ab3,eb4]@4 [ab3,eb4]@4 [ab3,c4,eb4]@2 ab3@3 ~@2 eb4, c4@4 ~ [c4,eb4]@2 c4, ~@13 ab3@3", // Ab5 Ab Cm
  AG: "ab3@3 ab3@3 [ab3,bb3,f4]@3 ~ [bb3,db4,f4]@3 ~@2 ab3, db4@5 ~@2 [bb3,db4,f4], [bb3,f4]@6 ~@3 ab3@4 ab3@2 ~", // Bb7 Bbm Bb5
  AH: "ab3!2 [ab3,c4,eb4,g4] ab3!4 [ab3,c4,eb4,g4], [c4,eb4,g4]@2 ~ [c4,eb4,g4]@2 [c4,eb4,g4]@2 ~", // Abmaj7 Cm
  AI: "[gb3,bb3,db4,f4]@5 gb3 [gb3,bb3,db4,f4]@3 gb3 [gb3,bb3,db4,f4]@3 ~@2 gb3, ~@13 gb3@2 ~, ~@7 [bb3,db4,f4]", // Gbmaj7 Bbm
  AJ: "[c4,eb4,g4]@3 ab3 [ab3,c4,eb4,g4]@2 [ab3,c4,eb4,g4]@3 ab3 [ab3,c4,eb4,g4]@3 ~@2 ab3, ~@13 ab3@2 ~, ~@7 [c4,eb4,g4]", // Cm Abmaj7 Cm
  AK: "[bb3,f4]@3 ab3 [ab3,bb3,f4]@2 [ab3,bb3,db4,f4]@2 ab3 [ab3,bb3,db4,f4]@2 ab3 ab3@2 ab3@2, db4@3 ~@3 [bb3,db4,f4]@2", // Bb5 Bb7 Bbm7 Bbm
  AL: "c4 c4@2 ab3 [ab3,c4,eb4,g4]@2 [ab3,c4,eb4,g4]@3 ab3 [ab3,c4,eb4,g4]@3 ab3 [ab3,c4,eb4,g4]@2, [ab3,eb4,g4] ~@3", // Abmaj7
  AM: "[gb3,bb3,f4]@3 ~ [bb3,f4]@2 [gb3,bb3,db4,f4]@3 gb3 [gb3,bb3,db4,f4]@3 gb3 [gb3,bb3,db4,f4]@2, db4@3 ~@5, ~@3 gb3@3 ~@10", // Gbmaj7 Bb5 Gbmaj7
  AN: "[ab3,bb3,c4,eb4]", // Ab
})).s("gm_acoustic_guitar_nylon").gain(0.33).pan(0.2)

// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  A B C D E F G H I J K L M N O P Q R S R T U V W X Y Z AA R S AB AC AD AE AF AG AH AI AJ AK AL AM ~
>`.pickRestart({
  A: "g3@13 ~ g3 ab3", B: "f3@12 ~ f3 eb3 f3", C: "ab2@15 ~", D: "ab2@12 db2@3 ~", E: "ab1@5 ~@2 ab1!2 ~ ab1@4 ~@2",
  F: "ab1@5 ~@2 ab1!2 ~ ab1@3 ~@3", G: "ab1@4 ~@3 ab1!2 ~ ab1@4 c2@2", H: "db2@7 ~ db2@4 c2@3 ~",
  I: "bb1@4 ~@3 bb1!2 ~ bb1@4 ~@2", J: "eb2@4 ~@3 eb2!2 ~ eb2@2 ~ eb2 f2@2", K: "ab1@6 ~ ab2 ab1 ~ ab1@4 ~ eb1",
  L: "ab1@6 ~ ab1 ab2 ~ ab2@4 eb2@2", M: "ab1@6 ~ ab2 ab1 ~ ab1 ~ ab1@2 bb1 c2", N: "db2@6 ~ ab1 db2@2 ~ ab1 c2@2 ~@2",
  O: "bb1@6 bb1 ~ bb1 ~ bb1@3 ~ bb1@2", P: "eb2@7 ~ eb2 ~ eb2@2 ~ eb2 eb2@2", Q: "ab1@7 ~ ab1@3 bb1@3 b1@2",
  R: "c2!3 eb2 g2 ~ bb1 c2@2 eb2 g2@3 db2@2 ~", S: "db2@2 ~ db2@3 db2@9 ~", T: "db2@3 db2@3 db2@8 eb2@2",
  U: "ab1@6 ~ ab1!2 ~ ab1 c2@2 eb2 f2@2", V: "ab1@6 ab2@3 ~ ab2 f2@2 eb2 c2@2", W: "ab1@7 ab2 ab1 ~ ab1@2 bb1@2 c2@2",
  X: "db2@7 db3 db2@2 ~ db2 c2@2 ~ c2", Y: "bb1@6 bb1 ~ bb1 ~ bb1@2 ~ bb1 c2 db2",
  Z: "eb2@6 ~ eb2!2 ~ eb2 ~ eb2 f2 ab2 ~", AA: "ab1@6 ~ ab1 ab1@3 bb1@3 b1@2",
  AB: "c2!3 eb2 g2 ~ bb1 c2@2 eb2 g2@3 db2 ~@2", AC: "db2@2 ~ db2@3 db2@6 ~@2 a1 ~", AD: "a1@3 bb1@3 eb1@9 ~",
  AE: "ab1@7 ab2 ab1 ~ ab1@2 ~ ab1 eb2 f2", AF: "ab2@7 eb2 ab2 ~ ab2@2 eb2 f2 ~ f2",
  AG: "ab1@6 ~ ab1 ab2 ~ ab2@3 eb2 f2 ab2", AH: "ab1@6 ~ ab1 ab2@2 ab2@2 ~ ab2 eb2 ab2",
  AI: "ab1@6 ~ ab1 eb2 ~ ab2@2 eb2!2 f2 ab2", AJ: "ab1@6 ~ ab1 ab2@2 f2@3 eb2 f2 ab2",
  AK: "ab1@6 ~ ab1 ab2 ~ ab2@3 eb2@2 ab2", AL: "ab1@6 ~ ab1 ab2 ~ ab2@2 eb2 f2 ab2@2", AM: "ab1",
})).s("gm_synth_bass_2").gain(0.49)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  A B C D E ~@2 F G@8 H I J K L M N@2 O@2 P Q R S T U V W@2 X@2 Y@2 Z@2 AA ~
>`.pickRestart({
  A: "g4@13 ~ g4 ab4", B: "f4@7 ~", C: "g4@4 g4 ab4 bb4 [b4,c5]", D: "f4@3 [ab3,db4,f4]", E: "[ab3,c4,eb4,ab4]@9 ~@7",
  F: "~@8 eb3@2 gb3 bb2@2 db3 bb2 ab2",
  G: "[bb2@6 ~@10 [db4,f4]@14 ~@2 [c4,eb4]@14 ~@2 [db4,f4]@14 ~@2 [c4,eb4,g4]@14 ~@2 [db4,f4]@11 ~ eb4@3 ~ [bb3,db4,f4]@14 ~@2 [db4,eb4,f4]@13 ~@3, ~@15 ab3@14 ~@2 ab3@14 ~@2 [ab3,bb3]@15 ~ ab3@14 ~@2 ab3@11 ~ c4@3 ~ ab3@15 ~ ab3@14 ~@3]/8", // Db Cm Db Cm Db Bbm Db Absus2
  H: "[ab3,c4,eb4]@9 ~@7, bb3 ~@15", // Ab
  I: "~@3 g3 [c4,eb4,g4]@2 g3 [c4,eb4,g4]@2 g3 [g3,c4,eb4,g4]@3 [bb3,ab4]@3, [c4,eb4,g4]@2 [c4,eb4,g4]@2 ~@9 eb4 ~@2, ~ g3@2 ~ g3 ~@2 g3 ~@8", // Cm Bb7 Cm
  J: "[bb3,eb4,g4]@3 [db4,f4,ab4]@3 [ab3,db4,f4]@10", // Eb Db
  K: "[c4,eb4,g4] ~@2 g3 [g3,c4,eb4,g4]@2 g3 [c4,eb4,g4]@2 g3 [g3,c4,eb4,g4]@3 [bb3,eb4,ab4] ~@2, ~ g3@2 ~@4 g3 ~@8, ~ [c4,eb4,g4] ~@6", // Cm Ebsus4 Cm
  L: "[bb3,eb4,g4]@3 [db4,f4,ab4]@3 [ab3,db4,f4]@9 ~", M: "~ eb3!4 f3 ab3@6 ~@4",
  N: "[~@2 c4 ~ c4 bb3 ab3 f3 ab3@2 ~ bb3 c4 eb4 ~ f4@4 ~ eb4 c4 eb4 bb4@2 ab4@2 f4@2 eb4@2 c4]/2",
  O: "[bb3@2 c4 bb3 ab3@2 f3 eb3 f3 ab3 f3 eb3 db3 c3 bb2 c3@6 ~@11]/2", P: "[ab3,db4,f4]",
  Q: "[ab3,bb3,c4,eb4]@11 ~@5", // Ab
  R: "[c4,eb4,g4] ~@2 g3 [g3,c4,eb4,g4] ~ g3 [c4,eb4,g4]@2 g3 [g3,c4,eb4,g4]@3 [bb3,eb4,ab4] ~@2, ~ g3@2 ~@4 g3 ~@8, ~ [c4,eb4,g4] ~@6", // Cm Ebsus4 Cm
  S: "[bb3,eb4,g4]@3 [db4,f4,ab4]@3 [ab3,f4]@10, ~@3 db4@4 ~", // Eb Db
  T: "~@3 g3 [c4,eb4,g4]@2 g3 [c4,eb4,g4]@2 g3 [g3,c4,eb4,g4]@3 [bb3,eb4,ab4]@3, [c4,eb4,g4]!2 ~@6, ~ g3@2 ~ g3 ~@2 g3 ~@8", // Cm Ebsus4 Cm
  U: "[bb3,eb4,g4]@3 [db4,f4,ab4]@3 [ab3,db4,f4]@8 [a3,c4,eb4]@2", V: "[a3,c4,eb4]@3 [bb3,db4,f4]@3 [ab3,db4,f4]@10",
  W: "[~@9 eb3!4 f3 ab3@4 ~@6 bb3 ~ bb3 ab3 c4@2 ab3 bb3]/2",
  X: "[c4@2 eb4 f4@7 ~@2 eb4 f4 ab4 bb4@8 ab4 ab4@7 [gb4,ab4], ~@24 bb4 ~@7]/2", // Gbsus2
  Y: "[gb4@9 ~ eb4!3 f4 ab4@6 ~@5 bb4 ~ bb4@3 ab4 bb4]/2",
  Z: "[c5@2 eb5 f5 eb5@4 ~@4 eb5 f5 ab5 bb5@8 [ab5,bb5] ab5@8]/2", AA: "gb5@15 ~",
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.9)

// other · synth brass 2 · "SYNBRASS 2"
const synth_brass_2 = note("<~@25 A@2 B ~@15>".pickRestart({
  A: "[~@13 db5 eb5 f5@3 eb5 ab5@3 eb5 c5 db5@2 c5@3 ab4 bb4 db5]/2", B: "eb5 c5 db5 ab4 c5 db5 c5@4 ~@6",
})).s("gm_synth_brass_2").gain(0.28)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note("<~@16 A B C B C D ~@5 E B C F ~@12>".pickRestart({
  A: "~@8 [ab1,ab2]@2 ~ [bb1,bb2]@2 ~ [b1,b2]@2", B: "[c2,c3]@3 ~@13",
  C: "~@10 [ab1,ab2] ~ [ab1,ab2] [bb1,bb2] [db2,db3]@2", D: "[ab1,ab2] ~@7",
  E: "~@8 [ab1,ab2]@2 ~ [bb1,bb2]@3 [b1,b2]@2", F: "[c2,c3] ~@7",
})).s("gm_electric_guitar_muted").gain(0.44).pan(0.8)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@2 A B ~@5 C D E F G H@2 ~@8 I@2 J@2 K L M N ~ O@3 P Q R S T U ~>".pickRestart({
  A: "[g5,g6]@7 ~ [g5,g6]@2 [ab5,ab6]@2 [bb5,bb6]@2 [c6,c7]@2", B: "[f5,f6]@13 ~@3", C: "~ eb4@13 ~@2, [ab3,db4,f4]",
  D: "~ bb3@14 ~, [ab3,c4,eb4]", E: "[bb3,db4,f4], ab3@7 ~", F: "[ab3,c4,eb4,g4]", G: "[ab3,bb3,db4,f4]@3 [ab3,c4,eb4]",
  H: "[bb3@8 [ab3,ab4]@7 ~, [db4,f4]@15 ~]/2", I: "[~ [c4,db4,ab4,c5], ~@15 f4@16 ~]/2",
  J: "[f4@4 [ab3,bb3,c4,eb4]@3 ~, ab4@7 ~, db4@7 ~@9]/2", // Ab
  K: "~@6 [g5,ab5] ~ [g5,ab5] ~ [f5,g5] ~ [c5,eb5] ~ [ab4,bb4] ~", L: "g4@2 ab4@3 ~ f4@6 ~@4",
  M: "~@6 [g5,ab5] ~ g5 ~ [g5,ab5] ~ [eb5,f5] ~ [bb4,c5] ~", N: "g4@2 ab4@3 ~ f4@8 ~@2, ab4 ~@15",
  O: "[[bb3,c4,eb4]@15 ~ [bb3,f4]@15 ~ [eb4,g4]@16, ab3, ~@16 db4@13 ~@2 c4@15 ~@2]/3", P: "[gb3,db4,f4], bb3@7 ~",
  Q: "~ g4, [ab3,c4,eb4]", R: "[ab3,bb3,db4,f4]", S: "[eb4,g4]@2 ~ [ab3,eb4], c4@7 ~, ab3@11 ~@5, ~ g4",
  T: "[gb3,bb3]@7 ~ [gb3,bb3]@7 ~, [db4,f4]", U: "[ab3,bb3,c4,eb4]",
})).s("gm_string_ensemble_2").gain(0.33)

// drums · kick
const kick = s("bd").struct("<~@10 A@6 B C D C D A@6 B C D A D ~ A@3 E A@2 E A F ~>".pickRestart({
  A: "x!2", B: "x ~@7 x ~@2 x ~@2 x ~", C: "x ~@7 x ~@4 x ~@2", D: "x ~@2 x ~@4", E: "x ~@3 x ~@2 x", F: "x",
})).gain(0.44)

// drums · rim
const rim = s("rim").struct("<~@10 [~ x ~ x]!6 [~ x ~@2] ~@26>").gain(0.44)

// drums · snare
const snare = s("sd").struct("<~@17 A B A B A@6 B A B A C ~ A@8 ~@2>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@4 x!2 ~@10",
})).gain(0.44)

// drums · low tom
const low_tom = s("lt").struct("<~@9 A ~@6 B ~ C ~ B ~@3 D ~@2 B ~ B ~@2 B ~@3 B ~ B ~ A ~@2>".pickRestart({
  A: "~@13 x!2 ~", B: "~@7 x", C: "~@12 x!3 ~", D: "~@14 x!2",
})).gain(0.38)

// drums · hihat
const hihat = s("hh").struct("<~@10 A B A C A C D ~@26>".pickRestart({
  A: "x!8", B: "x!4 ~ x!3", C: "x!7 ~", D: "x!4 ~@4",
})).gain(0.22)

// drums · mid tom
const mid_tom = s("mt").struct("<~@9 A ~@6 B ~ C ~ D ~@3 E ~@2 F ~ D ~@2 E ~@3 D ~ E ~ G ~@2>".pickRestart({
  A: "~@11 x!2 ~@3", B: "~@11 x ~@4", C: "~@5 x ~@2", D: "~@12 x!2 ~@2", E: "~@13 x ~@2", F: "~@8 x ~@2 x ~@4",
  G: "~@9 x!2 ~@5",
})).gain(0.38)

// drums · open hat
const open_hat = s("oh").struct("<~@13 A ~ A B C D E D ~@6 B F D F D ~@11>".pickRestart({
  A: "~@7 x", B: "~@8 x ~@2 x ~@2 x ~", C: "x ~@3 x ~@8 x ~@2", D: "x ~@2 x ~@2 x ~@9", E: "x ~@12 x ~@2",
  F: "x ~@3 x ~@3 x ~@3 x!2 ~@2",
})).gain(0.22)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@17 [~@2 x!2] ~ [~ x!3] ~@23>").gain(0.16)

// drums · high tom
const high_tom = s("ht").struct("<~@9 A ~@6 B ~@3 C ~@3 D ~@2 E ~ F ~@2 D ~@3 F ~@6>".pickRestart({
  A: "~@7 x!2 ~@7", B: "~ x", C: "~@5 x ~@2", D: "~@9 x!2 ~@5", E: "~@11 x ~@4", F: "~@9 x ~ x ~@4",
})).gain(0.38)

// drums · crash
const crash = s("cr").struct("<~@10 A ~@5 B A C A C A ~@2 D A ~ E A C A C ~ A F A ~ A G A H A ~>".pickRestart({
  A: "x", B: "~@11 x ~@2 x ~", C: "x ~@2 x ~@2 x ~@9", D: "~@3 x", E: "x ~@7 x ~@2 x ~ x ~@2", F: "~@7 x",
  G: "~@5 x ~ x", H: "x ~@2 x",
})).gain(0.16)

// drums · ride
const ride = s("rd").struct("<~@21 A@3 B C D E ~@5 D A C F A@4 G ~>".pickRestart({
  A: "x ~ x!6", B: "x ~ x!4 ~@2", C: "x!7 ~", D: "x ~ x ~ x!4", E: "x ~ x!2 ~@4", F: "x!8", G: "x",
})).gain(0.38)

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@21 A@4 B C A ~@5 C A B ~ A@4 ~@2>".pickRestart({
  A: "~ x ~@6", B: "~@7 x", C: "~ x ~ x ~@4",
})).gain(0.22)

stack(
  acoustic_guitar_nylon, bass, electric_guitar_clean, synth_brass_2, electric_guitar_muted, string_ensemble_2, kick,
  rim, snare, low_tom, hihat, mid_tom, open_hat, open_hat_soft, high_tom, crash, ride, ride_soft
)

More by Bread