Strudelify

Fuoco nel fuoco

Ramazzotti

KeyA majorTempo127 bpm
0:00/0:00
// Fuoco nel fuoco — Ramazzotti
// 127 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 128 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 25.
setcpm(127/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(`<
  ~@20 A B C B C B C B D E@2 F@2 G H I J K L M N K O P Q K R S T U V W X Y@2 ~ Z B C B C B C B D E@2 F@2 G H I J K L M N
  K O P Q K R S T U V W X B C B C AA@2 AB@2 AC@2 AD AE K L M N K O P AF K R S T U V W X B C B C B C B C Y@2 ~
>`.pickRestart({
  A: "~@3 e1!2 c#2 a1@2", B: "f#1@3 f#1 a1 c#2 a1 b1", C: "~ b1 ~ e1@2 e1 a1 e1", D: "~ b1 ~ e1@2 e1 g#1 b1",
  E: "[a1@3 a1@2 a1 c#2 d2@2 d2 c#2 e1@2 e1@2 e1]/2", F: "[f#1@3 f#1 a1 c#2 a1 d2@2 d2 ~ e1@2 e1@2 e1]/2",
  G: "f#1@3 f#1@2 f#1 ~ f#1", H: "b1@3 e1@2 a1 b1 c#2", I: "d2 a1 d1 d1@4 d1", J: "d1@3 d1@3 e1@2",
  K: "a1@5 ~ a1@4 a1@2 c#2@2 b1@2", L: "e1@5 ~ e1@4 f#1@2 a1@2 f#1@2", M: "d1@5 ~ d1@4 d2@2 a1@2 e1@2",
  N: "f#1@4 ~@2 e1@4 e1@3 ~ e1@2", O: "e1@5 ~ e1@4 e1@2 a1@2 c#1@2", P: "d1@2 ~ d1@2 d1 ~ d1",
  Q: "f#1@2 ~ e1@2 e1 ~ e1", R: "e1@5 ~ e1@4 e1@2 a1@2 e1@2", S: "d1@5 ~ d1@4 a1@2 b1@2 c#2@2",
  T: "d2 a1 d1 d1@2 d1 ~ d1", U: "e1@5 ~ e1@4 e1@4 e1@2", V: "d#1@5 ~ d#1@4 d#1@4 d#1@2", W: "d1@5 ~ d1@4 d1@4 d1@2",
  X: "f#1@2 ~ e1@2 e1@2 e1", Y: "f#1/2", Z: "~@5 c#2 b1 a1",
  AA: "[g1@4 ~@2 g1@4 a#1@2 b1@2 c2@6 ~@2 c2 ~ c2@4 a#1@4]/2", AB: "[f1@2 ~ f1@2 g1 a1 a#1@3 ~ a#1 a1@2 ~ a1]/2",
  AC: "[g1@4 ~@2 g1@2 a#1@2 d2@2 a#1@2 c2@6 ~@2 c2 ~ c2@4 a#1@4]/2", AD: "d2 a1 d1 d1@2 d2 c2 d2",
  AE: "d#2@2 d#1 d#1@2 d#2 d#1@2", AF: "f#1 c#1 f#1 e1@2 e1 c#1 e1",
})).s("gm_electric_bass_finger").gain(0.8)

// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~@101 A B C@2 D E F ~@13 G@3 ~@4>".pickRestart({
  A: "~@2 c#5!2 c#5@2 c#5 ~ c#5@2 d5@3 c#5@2 ~", B: "b4@6 b4 a4 g#4@2 ~ a4@2 b4@3",
  C: "[f#4@8 ~@2 f#4@2 g#4@2 a4@4 e5@3 d5@3 c#5@3 b4@2 a4@3]/2", D: "c#5@6 a4!2 a4@2 ~ b4@2 c#5@2 ~",
  E: "b4@5 ~ b4 a4 g#4@3 a4@2 b4@3", F: "f#4@4 e4@2 e4@9 ~", G: "[~@5 g#4 a4 b4@2 a4 g#4 f#4@2 e4 f#4@5 ~@5]/3",
})).s("gm_acoustic_guitar_steel").gain(0.8)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  ~@37 A B A C@2 B A D A B A E A B E F ~@20 A B A C@2 B A D A B A E A B E F ~@12 A B A C@2 B A D A B A E A B E F ~@8 G@3
>`.pickRestart({
  A: "c#4!2 ~ c#4!3 ~ c#4", B: "b3!2 ~ b3@2 b3 ~ b3", C: "[a3!2 ~ g#3@2 g#3 ~ c#4@2 c#4 ~ c#4!3 ~ c#4]/2",
  D: "a3@2 a3@2 ~@2 g#3@4 g#3@2 b3 ~ [g3,b3]@2", E: "d4!2 ~ d4@2 d4 ~ d4", F: "a3!2 ~ g#3@2 g#3 ~ g#3", G: "[a3@3 ~]/3",
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note(`<
  ~ A B A B A B A B A B A C D B A B E F A B A B A B A B A C D B A B G H I J K L M N@2 L M O K L M P K Q R S A B A B A B
  A B A B A C D B A B G H I J K L M N@2 L M O K L M P K Q R S A B A B T@2 U@4 V@2 K L M N@2 L M O K L M P K Q R S A B A
  B A B A B W@3
>`.pickRestart({
  A: "[a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [c#4,f#4] ~ [a3,d4,f#4]@2", // F#m F#5 F#m F#5 D
  B: "[a3,d4,f#4]@2 [a3,d4,f#4]@2 [d4,f#4] ~ [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [b3,e4] ~ [a3,c#4,f#4]@2", // D E E5 F#m
  C: "[a3,d4,f#4]@2 [a3,d4,f#4]@2 [d4,f#4] ~ [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [b3,e4] ~ [c#4,e4,a4]@2", // D E E5 A
  D: "[c#4,e4,a4]@2 [c#4,e4,a4]@2 [e4,a4] ~ [c#4,e4,a4]@2 [c#4,e4,a4]@2 [c#4,e4,a4]@2 [e4,a4] ~ [a3,d4,f#4]@2", // A A5 A A5 D
  E: "[a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [c#4,f#4] ~ [g#3,b3,d4,f#4]@2", // F#m F#5 F#m F#5 G#m7b5
  F: "[g#3,b3,d4,f#4]@2 [g#3,b3,d4,f#4]@2 [d4,f#4] ~ [b3,c#4,f4]@2 [b3,c#4,f4]@2 [b3,c#4,f4]@2 [b3,c#4,f4] ~ [a3,c#4,f#4]@2", // G#m7b5 D C#7 F#m
  G: "[a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [c#4,f#4] ~ [b3,d4,f#4]@2", // F#m F#5 F#m F#5 Bm
  H: "[b3,d4,f#4]@2 [b3,d4,f#4]@2 [d4,f#4] ~ [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4] ~ [a3,c#4,f#4]@2", // Bm D E F#m
  I: "[a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4]@2", // F#m F#5 F#m F#5 F#m
  J: "[a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [c#4,f#4] ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@4 [b3,e4,g#4]@4", // F#m F#5 F#m E
  K: "[e4,a4]@2 [e4,a4]@2 [e4,a4] ~ [e4,a4]@2 [e4,a4]@2 [e4,a4]@2 [e4,a4] ~ [e4,a4]@2", // A5
  L: "[e4,a4]@2 [e4,a4]@2 [e4,a4] ~ [e4,g#4]@4 [e4,g#4]@2 [e4,g#4] ~ [e4,g#4]@2", // A5 E
  M: "[f#4,a4]@2 [f#4,a4]@2 [f#4,a4] ~ [f#4,a4]@2 [f#4,a4]@2 [f#4,a4]@2 [f#4,a4] ~ [f#4,a4]@2", // F#m
  N: "[[c#4,f#4]@2 [c#4,f#4]@2 [c#4,f#4] ~ [b3,e4]@4 [b3,e4]@2 [b3,e4] ~ [e4,a4]@4 [e4,a4]@2 [e4,a4] ~ [e4,a4]@2 [e4,a4]@2 [e4,a4]@2 [e4,a4] ~ [e4,a4]@2, ~@5 a4@2 ~@9]/2", // F#5 E5 A5
  O: "[c#4,f#4]@2 [c#4,f#4]@2 [c#4,f#4] ~ [b3,e4]@4 [b3,e4]@2 e4 ~ [e4,a4]@2, ~@5 a4@2 ~", // F#5 E5 A5
  P: "[f4,a4]@2 [f4,a4]@2 [f4,a4] ~ [f4,a4]@4 [f4,a4]@2 [f4,a4] ~ [f4,a4]@2", // F
  Q: "[d#4,f#4]@2 [d#4,f#4]@2 [d#4,f#4] ~ [d#4,f#4]@4 [d#4,f#4]@2 [d#4,f#4] ~ [d#4,f#4]@2", // D#m
  R: "[e4,a4]@2 [e4,a4]@2 [e4,a4] ~ [e4,a4]@4 [e4,a4]@2 [e4,a4] ~ [e4,a4]@2", // A5
  S: "[c#4,f#4]@2 [c#4,f#4]@2 [c#4,f#4] ~ [b3,e4]@4 [b3,e4]@2 [b3,e4] ~ [b3,e4]@2", // F#5 E5
  T: "[[g3,a#3,d4]@4 [a#3,d4] ~ [g3,a#3,d4]@4 [g3,a#3,d4]@2 [a#3,d4] ~ [g3,c4,d#4]@4 [g3,c4,d#4]@2 [c4,d#4] ~ [g3,c4]@2 [g3,c4]@4 [a#3,d4,f4]@4, ~@11 d#4@3 ~@2]/2", // Gm A# Gm A# Cm C5 A#
  U: "[[a3,c4,f4]@4 [c4,f4] ~ [a3,c4,f4]@4 [a3,c4,f4]@2 [c4,f4] ~ [a#3,d4,f4]@4 [a#3,d4,f4]@2 [d4,f4] ~ [a3,c4,f4]@4 [a3,c4,f4]@2 [c4,f4] ~ [g3,a#3,d4]@4 [g3,a#3,d4]@2 [a#3,d4] ~ [g3,a#3,d4]@4 [g3,a#3,d4]@2 [a#3,d4] ~ [g3,c4,d#4]@4 [g3,c4,d#4]@2 [c4,d#4] ~ [g3,c4]@2 [g3,c4]@4 [a#3,d4]@4, ~@27 d#4@3 ~@2]/4", // F F5 F F5 A# Dm F F5 …
  V: "[[a3,c4,f#4]@4 [c4,f#4] ~ [a3,c4,f#4]@4 [a3,c4,f#4]@2 [c4,f#4] ~ [a#3,d4,g4]@4 [a#3,d4,g4]@2 [d4,g4] ~ [a#3,d4,g4]@4 [a#3,d4,g4]@2 [d4,g4] ~ [a#3,d4,g4]@2]/2", // F#dim Cdim F#dim Cdim Gm G5 Gm G5 …
  W: "[[c#4,f#4]@15 ~]/3", // F#5
})).s("gm_acoustic_guitar_steel").gain(0.23).pan(0.9)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@36 A B C D E F G H I F J D K F L M N ~@12 O@2 P@2 Q R ~ A B C D E F G H I F J D K F L M N ~@4 S@2 T@4 U V B C D E F
  G H I F J D K F L M N W@2 X@2 Y Z AA@2 AB@3
>`.pickRestart({
  A: "[d5,a5,c#6]", B: "[c#5,e5,a5]", C: "[b4,f#5,a5]@3 [b4,e5,g#5]@5", D: "[c#5,f#5,a5]",
  E: "[c#5,f#5,a5]@3 g#5@2 a5@3, ~@3 [b4,e5]@5", F: "[e5,a5,c#6]", G: "[a5,c#6]@3 [g#5,b5]@5, e5", H: "[f#5,a5,c#6]",
  I: "[f#5,a5,c#6]@3 g#5@2 a5@3, ~@3 [e5,b5]@5", J: "[f#5,a5,b5]@3 [e5,g#5,b5]@5", K: "[d5,f5,a5]", L: "[f#5,b5,d#6]",
  M: "[f#5,c#6,e6]", N: "[f#5,a5,c#6]@3 [e5,g#5,b5]@5", O: "[[e5,a5]@9 ~ [e5,a5] ~@3 [f#5,a5]@8 [e5,b5]@10]/2",
  P: "[[a5,c#6]@7 [d5,a5]@4 [e5,b5]@5]/2", Q: "[f#5,c#6]@7 ~", R: "[f#5,b5]@3 [e5,b5]@5",
  S: "[[g4,a#4,d5]@7 [g4,c5,d#5]@5 [g4,c5,d#5]@2 [f4,a#4,d5]@2]/2", // Gm Cm A#
  T: "[[f4,a4,c5]@7 [a#4,d5]@4 [a4,c5]@4 [g4,a#4,d5]@8 [g4,c5,d#5]@7 [f4,a#4,d5]@2, ~@7 f4@8 ~@17]/4", U: "[f#4,a4,d5]",
  V: "[g4,a#4,d5]", W: "[[a5,c#6]@11 [g#5,b5]@5]/2", X: "[c#6@22 f#6@9 ~, a5@31 ~]/2", Y: "[a5,f#6]@15 ~",
  Z: "[a5,f#6]@3 [g#5,b5]@5", AA: "[a5@4 c#6@7 b5@5, f#6]/2", AB: "[[c#5,f#5]@15 ~]/3",
})).s("gm_string_ensemble_1").gain(0.48)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~ A@10 B@7 C@3 D@2 E@4 D@2 F@2 G@2 H@4 ~@16 A@4 D@8 ~@5 I@3 ~@16 J@4 ~@35
>`.pickRestart({
  A: "[f#2@7 b2@4 e2@4 ~]/2",
  B: "[f#2@7 b2@4 e2@4 [a2,a3,c#4,e4]@8 [d2,a3,d4,f#4]@4 [e2,g#3,b3,e4]@4 [f#2,a3,c#4,f#4]@8 [d2,a3,d4,f#4]@4 [e2,g#3,b3,e4]@4 f#2@8 g#2]/7", // A D E F#m D E
  C: "[~@3 f2@4 f#2@8 b2@4 e2@4 ~]/3", D: "[[a3,c#4]@7 [b3,d4]@4 [g#3,b3]@5]/2",
  E: "[[a3,c#4]@14 [b3,d4]@8 [g#3,b3]@9 ~ [a3,c#4,a4,c#5]@14 [b3,d4]@8 [g#3,b3]@10, ~@31 f#4@14 ~@19]/4", // A Bm G#m A Bm G#m
  F: "[[a3,c#4]@7 [a3,d4]@4 [g#3,b3,e4]@5, a4@29 ~@3, e4@3 ~@5]/2", G: "[[a3,c#4]@7 [a3,d4]@4 [g#3,b3]@5]/2",
  H: "[[a3,c#4]@14 [b3,d4]@8 [g#3,b3,e4]@9 ~ [a4,c#5]@27 ~@5, f#4@19 ~@12 d2@27 ~@6]/4", // A Bm E A
  I: "[~@16 [a4,c#5]@27 ~@5, ~@5 d2@9 ~@2]/3", J: "[[f#2,c#4,f#4]@14 ~@2 [d4,f#4]@5 ~ [e2,b3,e4]@9 ~, ~@7 b2@4 ~@5]/2",
})).s("gm_string_ensemble_2").gain(0.4)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@16 A@4 ~@108>".pickRestart({
  A: "[~@14 [a3,c#4]@16 [g#3,b3]@6 ~@2 [g#3,b3]@7 ~ [f#3,a3]@10 ~@8]/4", // A G#m F#m
})).s("gm_string_ensemble_2").gain(0.24)

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

// drums · clap
const clap = s("cp").struct("<~ [~ x ~ x]!20 ~@32 [~ x ~ x]!4 ~@36 [~@2 x ~ x!3 ~]!8 ~@27>").gain(0.56)

// drums · snare
const snare = s("sd").struct(`<
  ~@20 A B@15 C B@7 D B@3 D B@3 E ~@3 F B@7 D B@7 C B@7 D B@3 D B@3 G B@3 D B@15 H B@3 D B@3 I B@3 D B@3 D ~@3
>`.pickRestart({
  A: "~@3 x!5", B: "~ x ~ x", C: "~@4 x ~@3 x ~@2 x!2 ~@3", D: "~@2 x ~@2 x!2 ~", E: "~@4 x ~@7 x!2 ~@2",
  F: "~@3 x!2 ~ x ~ x ~ x ~ x ~ x ~", G: "~@3 x!2 ~@3 x!2 ~@2 x ~@2 x", H: "~@4 x ~@7 x ~ x!2", I: "~@4 x ~@5 x!5 ~",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct("<~@20 A ~@15 B ~@19 C ~@15 B ~@20 D ~ D ~ D ~ D ~@16 E ~@11>".pickRestart({
  A: "~@4 x!4", B: "~@3 x ~@3 x", C: "~@3 x!5", D: "~@3 x", E: "~@7 x",
})).gain(0.64)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@20 [~@3 x ~@4] ~@35 [~ x ~@2] ~@36 [~ x]!8 ~@27>").gain(0.32)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@21 A B@12 C A D A B@3 A B@2 C A B@3 A B@3 ~@4 A B@6 C A B@4 C A D A B@3 A B@2 C A B@3 A B@3 A B@3 A B@7 A B@3 A B@2
  E A B@3 A B@2 F A B@3 A B@3 ~@3
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x!3 ~", D: "x!2", E: "~ x!2 ~", F: "x!2 ~@2",
})).gain(0.8)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@21 A@3 B A B A B A B A B A B A C A@3 D A B A B A@7 D ~@4 A@7 B A@5 B A C A@3 D A B A B A@7 D B D B C B A B A B A B
  A@4 D A B A C A@7 E B D B C B D B C ~@3
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~ x ~@2", C: "~ x ~@3 x ~@2", D: "~ x ~@3 x ~ x", E: "~ x ~@6",
})).gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  A ~@3 B ~@3 C ~@3 C ~@3 D ~@3 E ~@35 B ~@33 F ~ B ~@3 G ~ H ~ I ~@15 J ~ K ~ L ~ K ~ B ~@3
>`.pickRestart({
  A: "~@10 x!3 ~ x ~", B: "~ x ~@3 x!2 ~", C: "~@9 x!2 ~@5", D: "~@13 x!2 ~", E: "~@7 x ~@4 x ~ x ~",
  F: "~@2 x ~ x ~@3 x ~@2 x ~@4", G: "~ x ~@2 x ~@2 x", H: "~ x!3 ~@4", I: "~@7 x", J: "~ x",
  K: "~@2 x ~@5 x ~@2 x ~@4", L: "~ x ~@3 x ~@2",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@34 A ~@5 B ~ C ~ A ~@7 B ~@11 A ~@5 A ~@5 B ~ C ~ A ~@7 B C B C B C ~ C ~ C ~ C ~@4 B ~ C ~@9 B C B C B C B C B ~@3
>`.pickRestart({
  A: "~@3 x", B: "~@3 x ~@4", C: "~@7 x",
})).gain(0.64)

// drums · high tom
const high_tom = s("ht").struct(`<
  A ~@3 B ~@3 C ~@3 C ~@3 D ~@3 E ~@35 B ~@33 F G B ~ H ~ I J ~ K L ~@15 M ~ N G O ~ N G B ~@3
>`.pickRestart({
  A: "~@3 x", B: "~@4 x ~@2 x!2 ~@3 x ~@3", C: "~@7 x!2 ~@3 x ~@3", D: "~@10 x!3 ~@3", E: "~@7 x!2 ~ x ~@5",
  F: "~@2 x ~ x ~@3 x ~@2 x ~@4", G: "~@10 x!5 ~", H: "~@3 x!4 ~@7 x ~", I: "~ x ~@2 x ~@2 x", J: "~@5 x ~@2",
  K: "~ x ~@3 x ~@2", L: "~@2 x!5 ~@3 x!4 ~@2", M: "~ x", N: "~@2 x ~@5 x ~@2 x ~@4", O: "~ x ~@2",
})).gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@3 A ~@3 A ~@11 A ~@13 A B A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@7 A ~@5 A B A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A C A
  ~ C ~ A ~@3 A ~@2 D A ~@3 A ~@3 A ~@3 A ~@3 A ~@2
>`.pickRestart({
  A: "x", B: "~ x ~@2", C: "~ x ~@3 x ~@2", D: "x ~@2 x ~@2 x ~",
})).gain(0.56)

// drums · bongos
const bongos = s("bongo:18").struct("<~ A@36 ~@16 A@20 ~@16 A@12 ~@16 A@8 ~@3>".pickRestart({
  A: "~ x ~@3 x ~@2",
})).gain(1.26)

// drums · congas
const congas = s("conga:13").struct("<~ A@36 B@16 A@20 B@16 A@4 ~@8 B@16 A@8 ~@3>".pickRestart({
  A: "x!2", B: "~@3 x ~@5 x ~@6",
})).gain(1.79)

// drums · congas
const congas_2 = s("conga:18").struct("<~ A@36 B@16 A@20 B@16 A@12 B@16 A@8 ~@3>".pickRestart({
  A: "~@3 x ~@4", B: "~@5 x ~@2",
})).gain(1.79)

// … 17 more lines

More by Ramazzotti