Strudelify

Have You Ever

Brandy

KeyF♯ minorTempo136 bpm
0:00/0:00
// Have You Ever — Brandy
// 136 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 141 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(136/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.

// bass · electric bass finger
const bass = note(`<
  ~@19 A B C D E F G H I J K D L F M N O P Q@2 R S T U V W X Y Z@2 AA AB AC AD AE AF AG AH AI AJ A B C D E F AK H I J K
  AL L F M N O P Q@2 R S T U V W X Y Z@2 AA AB AC AD AE AF AG AH AI AJ AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA@2 BB
  ~ V W X Y Z@2 AA AB AC AD AE AF AG AH AI AJ BC@2 BD@5 ~
>`.pickRestart({
  A: "a1@9 ~@3 a1 ~@3", B: "a1 ~@3 a1@11 ~", C: "f#1@12 f#1 ~@3", D: "f#1 ~@3 f#1@12", E: "d1@10 ~@2 d1 ~@3",
  F: "d1 ~@3 d1@12", G: "d2@10 ~@2 d2 ~@3", H: "d2@4 b1@3 ~", I: "a1@11 ~ a1 ~@3", J: "a1 ~@3 a1@8 e1@4",
  K: "f#1@11 ~ f#1 ~@3", L: "d1@11 ~ d1 ~@3", M: "d2@11 ~ d2 ~@3", N: "d2@3 c#2", O: "b1@11 ~ b1@2 ~@2",
  P: "b1 ~@3 b1@12", Q: "[c#2@8 e1@4 f#1@11 ~ f#1@8]/2", R: "g1@11 ~ g1 ~@3", S: "g1@11 ~ f#1@4", T: "e1@3 b1",
  U: "e2@8 d2@2 e2@2 b1@3 ~", V: "a1 ~@3 a1@6 a1@4 ~@2", W: "a1@2 e1 a1", X: "f#1 ~@3 f#1@5 ~ f#1@4 ~@2",
  Y: "f#1@7 ~ f#1@3 ~ f#1@2 e1@2", Z: "[d1@7 ~ d1@2 ~@2 d1@7 ~ d1@2 ~@2 d1@2 e1@2 f#1@2 ~@2]/2", AA: "d1@10 ~@2 d1@3 ~",
  AB: "d1@2 d2 c#2", AC: "b1@2 ~@2 b1@5 ~ b1@3 ~ f#1@2", AD: "b1@2 ~@2 b1@7 ~ b1@4", AE: "a1@3 ~ a1@8 f#1@4",
  AF: "a1 ~ a1@4 f#1@2", AG: "g1@5 ~ g1 ~", AH: "g1 ~ g1@4 f#1@2", AI: "e1@11 ~ b1@2 d2 ~", AJ: "e2@8 e1@5 ~@3",
  AK: "d1@10 ~@2 d2 ~@3", AL: "f#1 ~@3 f#1@4 e1@8", AM: "c#2@6 g#1 b1", AN: "c#2 ~ c#2@4 e1@2", AO: "f#1@11 ~ e2@3 ~",
  AP: "f#2@2 e2 ~ e2@2 d2 ~ d2@2 e2 ~ e2@2 f#2@2", AQ: "c#2@11 ~ g#1@2 b1@2", AR: "c#2 e1", AS: "f#1@6 c#2 e2",
  AT: "f#2 ~ f#2 ~ a2 ~ a2@2 f#2 ~ f#2@2 e2@2 f#2 ~", AU: "b1@15 ~", AV: "b1@4 f#1 a1 b1@2", AW: "a1",
  AX: "a2@4 f#2@2 e2@2 d2@2 a1@2 d2@3 ~", AY: "g1@10 ~@2 g1@3 ~", AZ: "g1@4 e2@2 d2@2 b1 ~ g1 ~ f#1@4",
  BA: "[e1@20 b1@3 ~ d2@2 f#2@3 ~ d2@2]/2", BB: "e2 ~@3", BC: "e1/2", BD: "[a1@33 ~@7]/5",
})).s("gm_electric_bass_finger").gain(0.45).pan(0.4)

// chords · epiano1
const epiano1 = note(`<
  ~@14 A B@2 C@2 D@2 E@2 F G@3 H@2 I@2 J@4 K@4 L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 D@2 E@2 F G@3 H@2 I@2 J@4 K@4 L@2
  M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 ~@18 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 ~@8
>`.pickRestart({
  A: "~@3 f#5, a3@15 ~, ~@4 d4@11 ~, ~@8 a4@7 ~", B: "[~@4 a5@2 g5@2 e5@2 d5@5 ~, g3@15 ~, ~@4 e5@11 ~@17]/2",
  C: "[~@8 b5@4 a5@2 g#5 ~ f#5@4 e5@8 ~@4, ~ [b3,e4,b4]@6 ~, ~@4 e5@15 ~@13]/2", // E5
  D: "[[e3,a3,b3,c#4,e4]@10 ~@6 [e4,a4]@7 ~ [a3,c#4,e4]@7 ~, a2@7 ~, ~@12 b3@11 ~@9, ~@14 c#4@9 ~@9, ~@4 e3@3 ~]/2", // A A5 A
  E: "[[e3,a3]@8 ~@4 a4@3 ~, [c#4,f#4]@9 b3@6 ~, ~@4 e3@3 ~, ~@10 c#4@5 ~, ~@11 f#4@4 ~]/2", // A5 F#5
  F: "[d3,f#3,a3,c#4,f#4]@12 [d3,f#3,a3,c#4] ~@3", // Dmaj7
  G: "[[f#3,a3]@5 ~@5 b3@2, c#4@7 f#4@5, d3@19 ~ d3@23 ~@5, ~@24 f#3@19 ~@5, ~@2 c#4]/3", // F#m
  H: "[~@4 [b3,c#4,e4]@8 ~@2 c#4 e4, a2@29 ~@3, ~@4 e3@25 ~@3, ~@3 a3, ~@13 b3@3]/2", // C#m7
  I: "[~@7 a4, [c#4,f#4]@24 f#3@7 ~, f#3@10 c#3@5 ~, ~@2 a3@25 ~@5]/2", // F#5
  J: "[[a3,c#4,f#4]@21 ~@7 a4@2 ~@2 a4@20 ~@4 [f#4,a4]@6 ~@2, [d3,f#3]@15 ~, ~@12 e4@19 ~, ~@13 f#4@3 a3@14 ~@2, ~@15 c#5@11 ~@6]/4", // F#m D
  K: "[[d4,f#4,a4]@19 ~@9 a4@2 d5@2 [c#3,g#3,b3,g#4,c#5]@10 ~@4 a3@13 ~@5, [b2,f#3,a3]@7 ~@4 [f#3,e4,a4,c#5]@4 ~, ~@24 e4@19 ~@21, ~@13 f#4@2 ~@17]/4", // D C#7 B7 F#m7
  L: "[~@8 f#4@14 ~@2 [d4,f#4]@7 ~, b3@31 ~, g2@4 e4@2 b4@25 ~, ~@2 d3@25 ~@5, ~@2 g3@11 ~@3]/2", // D
  M: "[~@4 a3 ~@3 d5@4 ~@4 a4@3 ~ g#4@4 f#4@4 e4@3 ~, e3@31 ~, ~@2 f#3@29 ~, ~ e4@5 ~@2, ~@3 f#4@3 b4@9 ~]/2",
  N: "[[b3,c#4,e4]@8 ~@10 [e4,a4]@13 ~, a2@29 ~@3, ~@8 [e3,a3]@21 ~@3, ~@12 b3@19 ~, ~@14 c#4@17 ~]/2", // C#m7 A5
  O: "[~@6 e4@9 ~, c#3@3 a3@12 ~, ~@2 f#3@13 ~, ~@4 b3@11 ~, ~@10 c#4@19 ~@3]/2",
  P: "[~@4 [c#4,e4,f#4,a4] ~ [c#4,e4,f#4]@10, d3@31 ~, [c#4,f#4]@7 ~@25, ~@4 a3@27 ~]/2", // F#m7 F#7 F#5
  Q: "[~@3 [f#4,a4]@5, f#3@7 ~, ~ a3@6 ~, ~ [e4,c#5]@3]/2", // F#m C#m
  R: "[~@12 [f#4,a4]@11 ~ e4@4 f#4@3 ~, f#3@27 ~@5, ~@4 b3@23 ~@5, ~@8 d4@15 ~ [d4,a4]@6 ~@2]/2", // F#m D5
  S: "[d4@4 ~@8 a4@13 ~@7, [f#3,f#4]@25 ~@7, a2@23 ~@9, ~ a3@5 ~@2, ~@8 e4@17 ~@7]/2", // F#
  T: "[~@4 a5@2 g5@2 e5@2 d5@5 ~, ~@2 [f#3,b3,d4,b4]@13 ~]/2", // Bm
  U: "[~@8 b5@4 a5@2 g#5 ~ f#5@2 e5@8 ~@6, [b3,e4]@27 ~@5, ~@2 b4@11 ~@3, ~ e5@3 ~@4]/2", // E5
})).s("gm_epiano1").gain(0.3).pan(0.4)

// chords · synth strings 2
const synth_strings_2 = note(`<
  ~@67 A@2 B@2 C@4 D@2 E@2 F@2 G@2 H@2 I@2 J@4 K@2 L@2 M@2 N@2 O@2 P@2 Q@2 R@2 D@2 S@2 T@2 U@2 ~@2 H@2 I@2 J@4 K@2 L@2
  M@2 N@2 V@2 W@6
>`.pickRestart({
  A: "[[a3,c#4,e4]@15 ~]/2", B: "[[a3,c#4,f#4]@31 ~]/2", C: "[[c#4,f#4,a4]@61 ~@3]/4", D: "[[d4,f#4,a4]@15 ~]/2",
  E: "[[b3,e4,g#4]@11 ~ [a3,c#4,f#4]@18 ~@2]/2", F: "[[g3,b3,d4,f#4]@15 ~]/2", G: "[[a3,d4,e4,a4]@29 ~@3]/2",
  H: "[[e3,a3,c#4]@15 ~]/2", I: "[[f#3,a3,c#4]@29 ~@3]/2", J: "[[a3,c#4,f#4]@61 ~@3]/4",
  K: "[[a3,b3,d4]@23 ~ [a3,b3,e4]@6 ~@2]/2", L: "[[a3,d4,f#4]@31 ~]/2", M: "[[g3,b3,d4,f#4]@31 ~]/2",
  N: "[[a3,d4,f#4]@29 ~@3]/2", O: "[[g#3,b3,e4]@15 ~]/2", P: "[[a3,c#4,f#4]@29 ~@3]/2", Q: "[[b3,e4,g#4]@29 ~@3]/2",
  R: "[[c#4,e4,a4]@31 ~]/2", S: "[[a3,d4,f#4]@15 ~]/2", T: "[b3,d4,f#4]/2", U: "[[e4,f#4,a4]@15 ~]/2",
  V: "[[e2,e3,a3,d4,f#4]@31 ~]/2", W: "[[a2,e3,b3,c#4,e4]@27 ~@5]/6",
})).s("gm_synth_strings_2").gain(0.28)

// other · string ensemble 1
const string_ensemble_1 = note("<~@114 A B ~ C@2 D@3 E F@2 G@2 H@2 I J K L ~@8>".pickRestart({
  A: "~@4 e5 f#5 a5 b5", B: "a5@3 ~@13", C: "[a5@6 b5 a5]/2", D: "[g#5@12 a5@31 ~ b5@4]/3", E: "c#6@2 b5 a5",
  F: "f#5/2", G: "[b5@7 c#6]/2", H: "[d6@7 e6]/2", I: "f#6@3 d6", J: "b5 a5", K: "b5@3 f#5", L: "e5@13 ~@3",
})).s("gm_string_ensemble_1").gain(0.21).pan(0.6)

// chords · piano
const piano = note("<~@25 A@2 ~@72 B C D E F G H I J@2 K L M@2 N@2 ~@26>".pickRestart({
  A: "[~@12 [d1,d2]@11 ~@9]/2", B: "[e3,g#3,c#4,e4,c#5,e5,g#5,c#6]@7 ~@3 [g#3,c#4,e4,g#4,c#5,e5] ~@5",
  C: "[e3,g#3,c#4,e4,g#4,c#5]@8 ~@2 [g#3,c#4,e4,g#4,b4,e5]@5 ~", D: "[f#3,c#4,e4,a4,c#5,f#5]@15 ~",
  E: "~@2 [f#3,c#4,e4,a4,c#5,e5,a5]@5 ~ [f#3,c#4,e4,a4,c#5,e5]@6 ~@2", F: "[g#3,b3,e4,g#4,b4,e5,g#5]@7 ~",
  G: "~@2 [e3,g#3,e4,b4,e5,g#5,b5]@5 ~ [b3,e4,b4,e5,g#5]@7 ~", H: "[f#3,e4,a4,e5,a5]",
  I: "~@2 [f#3,c#4,e4,a4,c#5,e5] ~@5 [f#3,c#4,e4,a4,c#5,e5]@4 [a4,c#5,e5,a5]@3 ~", // F#m7 A
  J: "[[f#3,a3,d4,a4,d5,f#5,a5]@19 ~ [f#3,a3,d4,a4,d5,e5]@5 ~ [f#3,a3,d4,a4,d5,f#5]@3 ~@3]/2", // D
  K: "[d3,f#3,a3,d4,d5,f#5,a5,d6]", L: "~@4 [f#3,a3,d4,a4,f#5]@5 ~ e5@2 d5@3 ~, ~@5 [f#3,a3,d4,a4]@2 ~",
  M: "[[b3,d4,a4,d5,f#5,a5]@12 [b3,d4,a4,d5,f#5] ~ [b3,d4,a4,d5,f#5]@9 ~ [b3,d4,a4,d5,e5]@4 ~@4]/2", // Bm7
  N: "[[e3,b3,f#5,a5,c#6]@4 [e3,b3,e5,f#5,b5] ~ [e3,b3,e5,f#5,b5]@5 ~ [e3,b3,d5,f#5,a5] ~ [e3,b3,d5,f#5,a5]@17 ~]/2", // F#m7 Esus2 Bm7
})).s("gm_piano").gain(0.31).pan(0.4)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@3 A@2 B@2 C@4 D@2 E@2 F@2 G@2 H@2 I@2 J@4 K@2 J@4 L@2 M@2 N@2 O@4 ~@16 H@2 I@2 J@4 K@2 J@4 L@2 M@2 N@2 O@4 ~@58
>`.pickRestart({
  A: "[[a2,e3,a3,c#4]@15 ~]/2", B: "[[f#2,f#3,a3,c#4]@31 ~]/2", C: "[d2@56 ~@4 c#2@3 ~, [a3,c#4,f#4]@63 ~]/4",
  D: "[b1@24 b2@7 ~, [f#3,a3,d4]@15 ~]/2", E: "[[a2,f#3,a3,d4]@31 ~]/2", F: "[[g2,f#3,b3,d4]@31 ~]/2",
  G: "[[e2,f#3,a3,d4]@29 ~@3]/2", H: "[[a3,c#4,e4]@29 ~@3]/2", I: "[[a3,c#4,f#4]@31 ~]/2", J: "[[a3,c#4,f#4]@61 ~@3]/4",
  K: "[[a3,c#4,e4]@15 ~]/2", L: "[[a3,c#4,f#4]@29 ~@3]/2", M: "[[a3,d4,f#4]@7 ~]/2",
  N: "[[g#3,b3,e4]@10 ~@2 [a3,c#4,f#4]@17 ~@3]/2", // E F#m
  O: "[b3@32 ~@12 f#4@4 e4@11 ~@5, [d4,f#4]@36 b3@23 ~@5, g3@31 ~ f#3@27 ~@5, ~@40 d4@19 ~@5]/4", // D
})).s("gm_synth_strings_1").gain(0.22).pan(0.6)

// chords · pad sweep
const pad_sweep = note("<~@35 A@2 ~@104>".pickRestart({
  A: "[f#4@31 ~, a4@7 ~]/2",
})).s("gm_pad_sweep").gain(0.19).pan(0.4)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@40 A B@2 C D E F G H I J K L M N O P Q R ~@21 A B@2 C D E F G H S T U L M N O P Q R V@2 W@2 X@2 Y@2 Z AA AB@2 AC@2
  AD AE ~@2 C D E F G H S T U L M N O P Q R ~@8
>`.pickRestart({
  A: "[f#4,b4] [e4,a4]", B: "[[d4,f#4]@25 ~@7]/2", C: "a3 ~@3 a3 ~ a3 ~ a3 ~@3 a3 ~ a3 ~",
  D: "~@2 a3 ~ e3@2 f#3 ~ a3 ~@3 a3 ~ a3 ~", E: "a3 ~@3 a3 ~ a3 ~ a3 ~ a3 ~ a3 ~@3",
  F: "a3 ~@3 c#4@2 b3 ~ a3 ~@3 e3@2 f#3 ~", G: "a3 ~@3 a3 ~@3 a3 ~ a3 ~ a3 ~ a3 ~",
  H: "a3 ~@3 a3 ~@3 a3@2 ~@2 e3@2 f#3@2", I: "a3 ~ a3 ~ a3 ~@3 a3@4 b3 ~@3",
  J: "a3@2 b3 ~ a3 ~ b3 ~ c#4@2 b3 ~ a3@2 ~@2", K: "e3@2 f#3 ~ a3 ~@3 a3 ~@3 a3@2 ~@2",
  L: "a3 ~@3 a3 ~@3 e3 ~ f#3 ~ a3@2 b3@2", M: "a3 ~ a3 ~ a3 ~@3 a3@2 ~@2 e3@2 f#3@2", N: "a3 ~@3 a3 ~@3 a3@4 b3@4",
  O: "~@8 d4@7 ~, f#3, ~ b3@3", P: "~@4 [f#4,b4]@9 ~@3", Q: "[d4,f#4]@13 ~@3",
  R: "[f#4,b4]@7 ~ f#4@4 e4@3 ~, ~@8 d4@7 ~", S: "a3 ~ a3 ~ a3 ~@3 a3@4 b3@2 ~@2",
  T: "a3@2 b3 ~ a3 ~ b3 ~ c#4@2 b3 ~ a3 ~@3", U: "e3@2 f#3@2 a3 ~@3 a3 ~@3 a3@2 ~@2",
  V: "[~@28 g#3@3 ~, [b3,c#4,e4]@31 ~]/2", W: "[[a3,c#4]@19 ~@5 [b3,e4]@2 [c#4,f#4]@2 [e4,a4]@2 [c#4,f#4] ~]/2",
  X: "[[b3,c#4,e4]@19 ~@5 [g#3,b3,c#4]@6 ~@2]/2", Y: "[[a3,c#4,f#4]@7 ~]/2", Z: "d4, a3@7 ~",
  AA: "~@2 a4@5 ~, c#4@7 ~, ~ d4@6 ~", AB: "[[d4,f#4]@10 ~@2 a4@3 ~, ~@10 c#4@5 ~, ~@22 d4@9 ~]/2",
  AC: "[[b3,d4,f#4]@23 ~ [b3,d4,e4]@4 f#4@2 ~@2]/2", AD: "~@4 [f#4,b4]@4 [e4,a4] ~@3 [c#4,f#4]@4", AE: "[b3,e4]",
})).s("gm_electric_guitar_jazz").gain(0.25).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@19 A@7 B A@5 B A@5 ~ A@2 B ~ A C D C D C D C A C D C A C A E A@7 B A@5 B A@5 ~ A@2 B ~ A C D C D C D C A C D C A C A
  E A C D C D C D C A C D C A C A E B ~ A@7 ~ A C A F A D A F ~@8
>`.pickRestart({
  A: "x ~@2 x", B: "x", C: "~ x ~ x", D: "x!2 ~ x", E: "x ~ x!2 ~@4", F: "x!2 ~@2",
})).gain(0.5)

// drums · rim
const rim = s("rim").struct(`<
  ~@20 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@2 B ~ A C D A@15 ~@2 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@2 B ~ A C D A@15 ~ A@15
  ~@27
>`.pickRestart({
  A: "~ x", B: "~@4 x ~ x!2", C: "~@6 x!2", D: "x",
})).gain(0.62)

// drums · clap
const clap = s("cp").struct("<~@24 A ~@7 A ~@31 A ~@7 A ~@68>".pickRestart({
  A: "~ x!2 ~ x!3 ~",
})).gain(0.31)

// drums · snare
const snare = s("sd").struct("<~@19 A@15 B A@7 C A@15 D A@7 D A@7 B A@7 E A@31 D ~@2 A@7 F A@3 G A@6 ~@6>".pickRestart({
  A: "~ x", B: "~@4 x!2 ~ x", C: "~@3 x!2 ~ x!2", D: "~@4 x!3 ~", E: "~@3 x!2 ~@3", F: "~ x ~ x!2 ~@3", G: "~@2 x!2",
})).gain(0.31)

// drums · low tom
const low_tom = s("lt").struct("<~@82 A ~@15 B ~@17 C ~@7 D ~@16>".pickRestart({
  A: "~@4 x!2 ~@2", B: "~@4 x!3 ~", C: "~@7 x", D: "~ x",
})).gain(0.5)

// drums · hihat
const hihat = s("hh").struct(`<
  A ~@17 B C D C E C D C F C D C E C D C F C D C E C D C F C E C G C H C I C D J H J@3 K C D C E C D C F C D C E C D C F
  C D C E C D C F C E C G C H C I C D J H J@3 K C E C G C H C I C D J H J@3 K ~@26
>`.pickRestart({
  A: "x!4", B: "~@4 x!4", C: "x ~ x!3 ~ x!2", D: "x!5 ~ x!2", E: "x!4 ~@2 x!2", F: "x!4 ~@4", G: "x ~ x!5 ~",
  H: "x!3 ~ x ~ x!2", I: "x!2 ~@2 x ~ x!2", J: "x ~ x ~ x ~ x!2", K: "x!3 ~@5",
})).gain(0.31)

// drums · mid tom
const mid_tom = s("mt").struct("<~@82 A ~@33 A ~ B ~ B ~ B ~ C ~@3 B ~ B ~ B ~@8>".pickRestart({
  A: "~@3 x", B: "~ x", C: "~@5 x!3",
})).gain(0.5)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@22 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~@5 B ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~@5 B ~@7 A ~ A ~@5 B ~@7
  A ~@26
>`.pickRestart({
  A: "~ x", B: "~ x ~@2",
})).gain(0.31)

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

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

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@44 A ~@3 A ~@3 A ~@3 A ~@27 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@5 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@8
>`.pickRestart({
  A: "~ x",
})).gain(0.5)
// … 26 more lines

More by Brandy