Strudelify

Gli anni piu importanti della nostra vita

Pooh

KeyG majorTempo150 bpm
0:00/0:00
// Gli anni piu importanti della nostra vita — Pooh
// 150 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 156 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/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 · fretless bass
const bass = note(`<
  A B C@2 A D E@2 A F G@2 A B H@2 I J K@2 L M N O P Q R@2 S M T U V@2 W@2 X Y Z AA AB AC AD O P Q R@2 S M T U V@2 W@2 AE
  AF AG AH AI AJ AK AL AE AF AG AH AM AN AO AP AQ@2 AR@2 AS@2 I AT AU@2 AV M AW O AX AY AZ BA S M T U V@2 W@2 I AT AU@2
  AV M AW O AX AY AZ BA S M T U V@2 W@2 AE AF AG AH AI AJ AK AL AE AF AG AH AM AN AO AP AQ@2 AR@2 BB@2 A B BC@2 A F BD@2
  BE@4 BF@2 ~@2
>`.pickRestart({
  A: "[a2,a3]", B: "[f2,f3]", C: "[[g2,g3]@3 d2@3 g1@10]/2", D: "[f2,f3]@3 g3", E: "[g3@23 ~ b3@6 g3@2, g2 ~@31]/2",
  F: "[e2,e3]", G: "[d3@6 [g2,g3]@16 ~@2 g3 ~ d3@6, d2 ~@25 d2 ~@5]/2", H: "[[g2,g3]@24 g#2@7 ~, ~@24 g#3 ~@7]/2",
  I: "a2", J: "f2", K: "[g2@3 d2@3 g1@10]/2", L: "d2", M: "a#1 e2", N: "a1", O: "g2@2 a2@5 ~ b1@8", P: "c2",
  Q: "f2@8 c3@3 ~ f2 ~@3", R: "[g2@6 d2@6 g1@12 g2 ~ g2 ~@3 a1 ~]/2", S: "d2@5 d2@3", T: "a1@10 g2 ~@3 e2 ~",
  U: "g2 a2@7", V: "[g1@3 d2@3 g2@10, ~@6 d3 ~@5 g3 ~@19]/2", W: "[e2@3 b2@3 e3@10]/2", X: "a1@5 c2@3",
  Y: "f1@4 f2@3 ~", Z: "g1@9 ~ g1 ~@3 f1 ~", AA: "f2@2 g2@4 g1 ~ c2@2 d2@3 ~ d2 ~", AB: "d2@10 d2@5 ~",
  AC: "a#1@7 ~ e1@8", AD: "a1@8 ~@2 g2@2 ~@2 e2 ~", AE: "c2@13 ~@3", AF: "g1@9 ~ g2 ~ c2 ~ g1 ~", AG: "d2@7 ~ a2@7 ~",
  AH: "d3@6 d2 ~ g2@2 a2@6, c3 ~@15", AI: "g1@5 ~ g1 ~ g2@8", AJ: "g#1@5 ~ g#1 ~ e3@8", AK: "a2@13 ~@3", AL: "a2 b1",
  AM: "a#1@14 a#1 ~", AN: "e2", AO: "a2@10 g2 ~@3 e2 ~", AP: "g2@15 ~", AQ: "[g1@4 g2@2 d3@2 a3@23 ~]/2",
  AR: "[~@4 f2@2 c3@2 g3@23 ~]/2", AS: "[~@2 g2 d3 a3@8 g#3@4]/2", AT: "f1@9 ~ f2 ~ c2 ~ f1 ~",
  AU: "[g2@8 d2@6 g1@12 g2 ~ d2 ~ g1 ~]/2", AV: "d2@9 ~ d2@6", AW: "a1@10 g2@2 ~@2 e2 ~", AX: "c2@10 c3 ~ g2 ~ c2 ~",
  AY: "f2@8 c3@4 f2@3 ~", AZ: "g2@8 ~@2 c2 ~@3 c2 ~", BA: "c2@4 g1@4 g2@4 g1 ~@3",
  BB: "[~@2 g2 d3 a3@8 g#2@4, ~@24 g#3 ~@7]/2", BC: "[[g2,g3]@6 d2@6 g1@12 b3@5 ~ g3@2]/2",
  BD: "[d3@3 [g2,g3]@8 ~ d3@4, d2 ~@23 d2 ~@7]/2", BE: "a1/4", BF: "[a3@31 ~]/2",
})).s("gm_fretless_bass").gain(0.48)

// chords · synth strings 2
const synth_strings_2 = note(`<
  A@2 B@2 A@2 B@2 A@2 B@2 A@2 C@2 A@2 B@2 D E F@2 A@2 B@2 D E G@2 H@2 I@2 A@2 B@2 D E G@2 J@2 B@2 D E G@2 H@2 I@2 K@2
  L@2 M N O@2 K@2 L@2 P Q R@2 H@2 S@2 T@2 A@2 B@2 D E F@2 G@2 B@2 D E G@2 H@2 I@2 A@2 B@2 D E F@2 G@2 B@2 D E G@2 H@2
  I@2 K@2 L@2 M N O@2 K@2 L@2 P Q R@2 H@2 S@2 T@2 A@2 B@2 A@2 B@2 U@8
>`.pickRestart({
  A: "[a3,c4,e4]/2", B: "[[g3,b3,d4]@31 ~]/2", C: "[[g3,b3,d4]@24 [g#3,b3,e4]@7 ~]/2", D: "[d4,f4]",
  E: "[c4,f4] [g#3,b3,e4]", F: "[[g3,c4,e4]@3 [g3,b3,d4]]/2", G: "[g3,c4,e4]/2", H: "[g3,b3,d4]/2", I: "[e3,g#3,b3]/2",
  J: "[c4,e4]/2", K: "[[c4,e4] [b3,d4], g4]/2", L: "[d4,f4]/2", M: "[g3,d4]", N: "[g#3,e4]",
  O: "[[c4,e4,a4]@24 [b3,d4,g4]@7 ~]/2", P: "[f3,a#3]@15 ~", Q: "[e3,g#3,e4]", R: "[a3,e4]/2", S: "[f3,c4,e4]/2",
  T: "[[g3,b3,d4]@24 [b3,e4]@7 ~]/2", U: "[a3,c4,e4]/8",
})).s("gm_synth_strings_2").gain(0.4)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  A B C@2 D E F@2 D E F@2 A B C@2 ~@8 G@4 H@2 I@2 J@8 K@2 I@2 G@4 H@2 I@2 L@4 ~@30 G@4 H@2 I@2 M@5 ~@7 G@4 H@2 I@2 N@4
  ~@22 A B C@2 D E F@2 ~@8
>`.pickRestart({
  A: "~@3 e4@5, ~@2 a3@13 ~, ~ c4@3", B: "~ a3 c4 e4@5", C: "[~@2 g3@2 b3@2 ~@4 g4@21 ~, ~@6 d4@23 ~@3]/2",
  D: "~@3 a4@5, ~ c4@7, ~ e4@3", E: "~ c4 e4 a4@5", F: "[~@3 g4@12 ~, ~@2 b3@17 ~@13, ~ d4@6 ~]/2",
  G: "[~ [b3,d4], e4@15 a3@17 ~@32, ~@14 f3@16 ~ g3@32 ~, ~@16 c4@17 ~@31]/4", // Bm
  H: "[a3@15 ~ [f3,c4]@8 [e3,g#3,b3]@8, d4 ~@14 d3@9 ~@8]/2", I: "[~ e4@31, c4@7 ~, a3@25 ~@7]/2",
  J: "[[g3,b3,d4]@30 ~@2 e4@31 ~ c4@8 ~@27 g3@3 g3 ~@5 g4@17 ~@3, ~@30 e3@6 ~@28 e4@15 a3@17 [b3,d4]@32, ~@31 [g#3,b3]@32 a3@3 ~@12 f3@16 ~ g3@4 ~@29, ~@80 c4@17 ~@9 c4@11 ~@11]/8", // G Bm G#m
  K: "[[a3,d4]@15 ~ [f3,c4]@8 [e3,g#3,b3]@8, ~@15 d3@9 ~@8]/2", // D5 F5 E
  L: "[[g3,b3,d4]@15 ~ e4@16, ~@15 e3@3 ~@14, ~@31 [g#3,b3]@33]/4", // G G#m
  M: "[[g3,b3,d4]@30 ~@2 e4@31 ~ c4@8 ~@8, ~@15 e3@3 ~@22, ~@31 [g#3,b3]@32 a3@3 ~@14]/5", // G G#m
  N: "[[g3,b3,d4]@30 ~@2 e4@31 ~, ~@15 e3@3 ~@14, ~@31 [g#3,b3]@32 ~]/4", // G G#m
})).s("gm_electric_guitar_jazz").gain(0.48).pan(0.4)

// chords · epiano2
const epiano2 = note(`<
  ~@11 A B@2 ~@2 C D E@2 F G H@2 I@2 J@2 K G L@2 ~@4 C D E@2 F G M@2 I@2 J@2 K G L@2 N@2 O@2 P Q R@2 Q S T@2 P Q R@2 U V
  T@2 W@2 X@2 W@2 C D E@2 F Y Z@2 I@2 J@2 K G L@2 AA@2 ~@2 C D E@2 F Y Z@2 I@2 AB@2 AC G L@2 AA@2 AD@2 P Q R@2 Q S T@2 P
  Q R@2 U V T@2 W@2 X@2 W@2 ~@2 AE@2 ~@2 AF@2 AG@8
>`.pickRestart({
  A: "~ g4", B: "[c4@11 ~@5]/2", C: "e4", D: "c4@15 ~", E: "[~@12 g4@17 ~@3, ~@3 g3@9 ~@4]/2", F: "f4", G: "c4 e4",
  H: "[c4@29 ~@3]/2", I: "[~@8 a3@7 ~, e4]/2", J: "[~@3 g4@5, d4, ~@6 g3@21 ~@5]/2", K: "d4@7 ~", L: "a3/2",
  M: "[~@3 [b3,d4], c4@29 ~@3]/2", N: "[d4@3 ~@3 g4@10, ~@6 g3@19 ~@7]/2", O: "[~@6 b3@6 e4@17 ~@3, e3@3 ~@5]/2",
  P: "[c4,g4]@15 ~", Q: "[g3,d4]", R: "[f4 [f4,a4], d4]/2", S: "[g#3,e4]", T: "[[a3,e4]@31 ~]/2", U: "[d4,f4,a#4]",
  V: "[b3,e4]", W: "[g2@7 ~]/2", X: "f2/2", Y: "[c4,f4] e4", Z: "[~@3 [d4,g4], c4@29 ~@3]/2",
  AA: "[~@12 g4@19 ~, d4@29 ~@3, ~@6 g3@11 ~@15]/2", AB: "[~@12 g4@19 ~, d4, ~@6 g3@21 ~@5]/2", AC: "[a3,d4,f4]@15 ~",
  AD: "[b3@31 ~]/2", AE: "[~@12 g4@19 ~, d4@5 ~@11, ~@3 g3@11 ~@2]/2", AF: "[~@3 g4@2 ~@3]/2", AG: "[c4,g4]/8",
})).s("gm_epiano2").gain(0.56).pan(0.4)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A B C@2 D E F@2 G H@3 I@4 ~@26 J K ~@2 L@2 ~@2 M@2 ~@4 N O P@2 Q@4 N O P@2 R@2 S@4 T@2 U@2 ~@4 V@2 W@2 ~@11 X Y Z AA@2
  AB AC AD@2 AE@2 AF AG AH@2 AI@2 AJ@2 AK@2 N O P@2 Q@4 N O P@2 R@2 S@4 T@2 U@2 AL AM AN@2 AO@3 AP AQ@3 AR AS@3 ~
>`.pickRestart({
  A: "~@2 g3 ~@3 c4 ~@3 d4 ~@3 e4 ~", B: "~@2 g4@2 ~@2 a4 ~@3 c5@4 b4@2", C: "[~@2 a4@2 ~@2 b4@2 ~@2 a4@3 ~ e6@18]/2",
  D: "~ d5@2 e5 ~ d5 ~ d5", E: "~@2 c5@2 ~@2 a4@7 ~ c4 ~",
  F: "[~@6 a3 ~ [c4,c5]@2 [a3,a4]@2 g4@16 g5@3 ~, d4@13 ~@19]/2", G: "~@4 e5@2 a5@3 ~ e5@4 g5@2",
  H: "[~@2 c5@4 e5@4 a4@4 d5@6 ~@6 c5@4 b4@4 g4@11 ~@3]/3",
  I: "[~@4 a4@2 c5@3 ~ a4@3 ~ e5@4 c5@4 a5@4 e5@4 c5@4 b4@2 a4@4 e5@4 ~@2 d4@12 ~@6, ~@44 g5@15 ~@5]/4",
  J: "~@2 e4 a4@3 b4@2", K: "~ c5@6 ~", L: "[~ g4, ~@4 a5@25 ~@3, ~@5 e5@11]/2", M: "[~@5 g5@3 a5@8, ~ c4@6 ~]/2",
  N: "~@5 g3@3, ~ c3@3, ~@3 e3@5", O: "d3@4 d3 g3@3, g2",
  P: "[d3@6 ~@4 d4@5 ~ [f4,a4]@14 ~@2, ~@3 d3@5 d4@6 ~@2, ~@8 a3@6 ~ a3@11 ~@6]/2", // F
  Q: "[~@6 g3@9 ~ e4@14 ~@26 [g3,d4,g4]@8, d3@14 ~ [g#3,b3]@13 ~@2 e3@6 ~@2 e3@16 ~@10, ~@2 g2@13 ~@16 a3@9 ~@2 a3@14 ~@8, ~@32 c4@10 ~@4 c4@11 ~@7, ~@12 a4@3 ~]/4", // G5 G#m
  R: "[~@2 f3 ~@2 f3@2 ~ e4@4 [e3,g#3]@4, d3@7 ~@9, ~@6 a#3@8 ~ [g#3,b3]@9 ~@8]/2", // E G#m
  S: "[~ a3 c4 ~@5 a4@8 ~@9 g3 d4@6, ~@6 e4@11 ~@23 d4@12 ~@12, ~@10 a3@7 ~@21 g3@12 ~@14, ~@14 c4@19 ~@9 g4@9 ~@13, ~@23 e4@4 ~@5]/4",
  T: "[e3@3 e3 a3 ~@4 a3 ~@2 e4@4, a3@4 ~ f3@6 f3@5, ~@7 e4@5 ~@4, ~@10 c4@5 ~]/2",
  U: "[~@3 g3 ~@8 [b3,e4]@4, ~@8 d4@10 d4@13 ~, ~@10 b3@4 e4@9 ~@9, ~@12 g3@9 ~@11]/2", // E5
  V: "[~@2 f4 ~, ~@15 [a#3,d4]@10 ~@7]/2", W: "[[a3,c4]@11 ~ [b3,d4]@4]/2", X: "~@7 e3",
  Y: "a3 e3 a3 e3 b3 e3 ~ a3, ~@3 c4", Z: "d4@2 a3@2 ~@2 a3@2 ~@2 a3 ~ c4@4, ~ e4 d4 ~",
  AA: "[~@2 c4@2 b3 ~ a3@2 g3@4 e3@2 d3@12 ~@6, b3 ~@7]/2", AB: "~ a3 d4 a3 e4 a3 ~ a3, ~@3 f4",
  AC: "[c4,e4]@2 f4 ~@2 b3 g#3 d3, ~@3 e4@3 ~@2", AD: "[d4@2 c4@2 b3 ~ a3@15 ~@7 a3 ~ a3@2]/2",
  AE: "[a3@2 g3@2 e3@2 d3@2 d3@4 g3@2 ~@8 d4@9 ~, ~@7 c4@6 ~@3]/2",
  AF: "d4@2 c4@2 b3@2 ~@4 a3@2 g3@2 d3 ~, ~@3 g3@3 ~@2", AG: "d3@7 ~@9",
  AH: "[~ f4 ~@8 a#3@2 e4 b3 g#3 d3, ~@4 a3@9 ~@19, ~@3 d4@4 f4@4 ~@5, ~@5 e4@3 ~ d4@3 ~@4]/2",
  AI: "[d4 c4 b3 ~@10 d3 c4 a3, ~@3 a3@12 ~]/2", AJ: "[~@4 c4@2 ~@4 a3@4 g3@17 ~, d4@21 ~@11, ~@3 b3@8 ~@5]/2",
  AK: "[~ g#4 e4 b3 f4 g#3 b3 e4@5 ~@4]/2", AL: "~@4 g3 ~ a3@2 ~@2 c4@3 ~ d4@2", AM: "~@2 e4@3 ~ g4@2 ~@2 a4 ~@3 c5@2",
  AN: "[~@2 b4@2 ~@2 a4@2 ~@2 g4@3 ~ a4@18]/2",
  AO: "[a4 ~@11 c4@2 d4@4 ~@2 c4@2 a3@4 c4@4 ~@6 g3@4 e4@4 ~@4, ~@30 g4@7 ~@11, ~@17 a3@2 ~@5]/3", AP: "g4@13 ~@3",
  AQ: "[~@2 c5 ~@3 c5 a4@3 ~ g4@4 ~@3 e5@3 b4@3, ~@3 e5@13 ~@8, ~@10 a4@5 a5@6 ~@3]/3", AR: "g4 ~",
  AS: "[d4@8 e5@2 c5@2 ~@10 e5 ~ a5 ~@3 a5 ~ e5 ~ a5 ~@5 e5 ~ a5 ~ e5 ~ a5 ~ e5 ~, ~@4 a4@7 ~@5]/3",
})).s("gm_electric_guitar_clean").gain(0.33).pan(0.8)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@56 A@2 B@2 C D E@2 F@2 G@2 H I J@2 K@2 L@2 M@2 ~@18 N@2 ~@14 O@2 P@2 N@2 A@2 B@2 C D Q R F@2 G@2 H I J@2 K@2 L@2 M@2
  ~@4 S@4 ~@8
>`.pickRestart({
  A: "g5/2", B: "f5/2", C: "b4 f5, d5@15 ~", D: "[b4,e5]@15 ~", E: "[c5@2 a5 [d5,g5], e5@3 ~]/2", F: "[~ g5, c5]/2",
  G: "[[d5,f5]@31 ~]/2", H: "[a#4,d5]", I: "[b4,e5]", J: "[~@16 a5@15 ~, [a4,c5]]/2", K: "[[b4,g5]@31 ~]/2",
  L: "[a5, c5@29 ~@3]/2", M: "[[b4,g5]@23 ~@9]/2", N: "[[e4,b4]@15 ~]/2", O: "[[e4,a4]@31 ~]/2", P: "[[d4,g4]@31 ~]/2",
  Q: "c5@8 c5@7 ~, e5", R: "a5 [d5,g5]", S: "[a4@31 ~]/2",
})).s("gm_string_ensemble_1").gain(0.27).pan(0.4)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@148 A@8>".pickRestart({
  A: "[~@28 d4@11 ~ c4@27 ~@61, [g4,b4]@127 ~]/8", // G
})).s("gm_string_ensemble_1").gain(0.13).pan(0.4)

// chords · pad sweep
const pad_sweep = note("<~@54 A@2 ~@100>".pickRestart({
  A: "[~@13 e5@18 ~, ~@7 b4@24 ~]/2",
})).s("gm_pad_sweep").gain(0.33)

// drums · kick
const kick = s("bd").struct("<x!149 ~@7>").gain(0.72)

// drums · rim
const rim = s("rim").struct("<~@16 [~ x]!40 ~@22 [~ x]!40 ~@38>").gain(0.56)

// drums · snare
const snare = s("sd").struct("<~@56 [~ x]!22 ~@40 [~ x]!22 ~@16>").gain(0.72)

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~@7 A ~@17 A ~@5 A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~@5 A ~@4 A ~@12
  A ~ A ~@4 A ~@4 A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~@5 A ~ A ~@3 A ~@3 A ~ A ~@8
>`.pickRestart({
  A: "~@3 x",
})).gain(0.48)

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

// drums · ride
const ride = s("rd").struct("<~@118 [x!4]!22 ~@16>").gain(0.48)

// drums · bongos
const bongos = s("bongo:18").struct(`<
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@8
>`.pickRestart({
  A: "~@6 x!2",
})).gain(1.26)

// drums · congas
const congas = s("conga:18").struct(`<
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ B ~ B C ~ D ~
>`.pickRestart({
  A: "~@2 x!2 ~@4", B: "~@6 x!2", C: "~@7 x", D: "~@3 x ~@4",
})).gain(1.28)

// drums · congas
const congas_2 = s("conga:33").struct("<~@148 [~@7 x] ~ [~@3 x ~@4]!3 [~@6 x!2] ~@2>").gain(1.28)

// drums · agogo bells
const agogo_bells = s("agogo:2").struct("<[~ x!2 ~ x!2 ~ x]!56 ~@22 [~ x!2 ~ x!2 ~ x]!40 ~@22 [~ x!2 ~ x!2 ~ x]!16>")
  .gain(2.04)

// drums · agogo bells
const agogo_bells_2 = s("agogo:4").struct("<[~@3 x ~@2 x ~]!56 ~@22 [~@3 x ~@2 x ~]!40 ~@22 [~@3 x ~@2 x ~]!16>")
  .gain(2.04)

// drums · shaker
const shaker = s("sh").struct("x!8").gain(0.4)

// drums · claves
const claves = s("clave:2").struct("<~@3 [~ x] ~@139 [~ x] ~@12>").gain(3.14)

// … 5 more lines

More by Pooh