Strudelify
Il Tempo Non Torna Piu cover art

1988 · Canzoni Per Parlare

Il Tempo Non Torna Piu

Fiorella Mannoia

KeyB majorTempo104 bpm
0:00/0:00
// Il Tempo Non Torna Piu — Fiorella Mannoia
// 104 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(104/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, A@4 for four bars: edit a riff to change every repeat.

// bass · synth bass 2
const bass = note(`<
  ~ A B C D A E F G H I H J H I H J H I H J K L M N A B C D F O M P A Q R D F O M N A B C D A E F G S T U V S T U V S T
  U V W X Y Z AA AB AC AD AE AF AG AH AA AI AJ AD AE AK AG AH AA AB AC AD AE AK Y AL AA AI AJ AD AE AK AG AL AM AB AC AD
  AN AK AG AL AA AI AJ AD AN AF Y AL AM AB AC AD AN AF Y AL AA AI AJ AO AP@2
>`.pickRestart({
  A: "a1@2 ~ a1 ~ a1 e2 a2 a1@2 ~ a1 ~ a1 a2 e2", B: "d2@2 ~ d2 ~ a1 d2 ~ e2@2 ~ e2 ~ a1 e2 d2",
  C: "a1@2 ~ a1 ~ a1 a2 ~ a1@2 ~ a1@2 a2 e2 a1", D: "d2@2 ~ d2 ~ a1 d2 a1 e2@2 ~ e2 e1@2 e2 g1",
  E: "d2@2 ~ d2 ~ a1 d2 a1 e2@2 ~ e2 ~ a1 d2 e2", F: "f#2@2 ~ f#2 ~ c#2 f#2 c#2 f#1@2 ~ f#1 ~ f#1 c#2 f#2",
  G: "e2@2 ~ e2@2 e1 b1 e2 e1@2 ~ e1@2 e2 b1 e1", H: "a1@2 ~ a1 ~ a1 e2 a2 a1@2 ~ a1 ~ a2 e2 a1",
  I: "d2@2 ~ d2 ~ a1 d2 a1 e2@2 ~ e1 ~ e1 a1 e2", J: "d2@2 ~ d2 ~ d1 d2 d1 e1@3 e2 ~ e1 e2 b1",
  K: "b1@2 ~ b1 ~ b1 b2 f#2 b1@2 ~ b1 ~ b2 f#2 b1", L: "d2@2 ~ d2 ~ d1 d2 d1 e1@3 e2 ~ e1 e2 e1",
  M: "a1@2 ~ a1 ~ a1 e2 a2 a1 ~ a1 ~ a2 e2 a1@2", N: "d2 ~ d2 ~@2 a1 d2 a1 e2 ~ e2 ~ e1 e2 a1 d2",
  O: "d2@2 ~ d2 ~ d1 d2 a1 e1@2 ~ e1 ~ e2 a1 e2", P: "d2 ~@2 d2 ~ a1 d2 a1 e2 ~ e2 ~ e1 e2 a1 d2",
  Q: "b1@2 ~ b1 ~ b1 e2 b2 b1 ~@2 b1 ~ b2 b1 b2", R: "c#2@2 ~ c#2 ~ c#2 c#3 ~@2 c#3 c#2 c#2@2 c#3 c#2 c#3",
  S: "b1 ~@2 b1 ~ b1 f#2 b2 b1@2 ~ b1 ~ b2 f#2 b1", T: "e2@2 ~ e2 ~ b1 e2 b1 f#2@2 ~ f#1 ~ f#1 b1 f#2",
  U: "b1@2 ~ b1 ~ b1 f#2 b2 b1@2 ~ b1 ~ b2 f#2 b1", V: "e2@2 ~ e2 ~ e1 e2 e1 f#1@2 ~ f#2 ~ f#1 f#2 c#2",
  W: "c#2@2 ~ c#2 ~ c#2 c#3 g#2 c#2@2 ~ c#2 ~ c#3 g#2 c#2", X: "e2@2 ~ e2 ~ e1 e2 e1 f#1@3 f#2 ~ f#1 f#2 f#1",
  Y: "b1@2 ~ b1 ~ b1 f#2 b2 b1 ~ b1 ~ b2 f#2 b1@2", Z: "e2 ~@2 e2 ~ b1 e2 b1 f#2 ~ f#2 ~ f#1 f#2 b1 e2",
  AA: "b1@2 ~ b1 ~ b1 f#2 b2 b1@2 ~ b1 ~ b1 b2 f#2", AB: "e2@2 ~ e2 ~ b1 e2 ~ f#2@2 ~ f#2 ~ b1 f#2 e2",
  AC: "b1@2 ~ b1 ~ b1 b2 ~ b1@2 ~ b1@2 b2 f#2 b1", AD: "e2@2 ~ e2 ~ b1 e2 b1 f#2@2 ~ f#2 f#1@2 f#2 a1",
  AE: "g#2 ~@2 g#2 ~ d#2 g#2 d#2 g#1@2 ~ g#1 ~ g#1 d#2 g#2", AF: "e2@2 ~ e2 ~ e1 e2 b1 f#1@2 ~ f#1 ~ f#2 b1 f#2",
  AG: "b1@2 ~ b1 ~ b1 f#2 b2 b1 ~ b1 ~ b2 f#2 b1 ~", AH: "e2@2 ~ e2 ~ b1 e2 b1 f#2 ~ f#2 ~ f#1 f#2 b1 e2",
  AI: "c#2@2 ~ c#2 ~ c#2 f#2 c#3 c#2 ~@2 c#2 ~ c#3 c#2 c#3", AJ: "d#2@2 ~ d#2 ~ d#2 d#3 ~@2 d#3 d#2 d#2@2 d#3 d#2 d#3",
  AK: "e2@2 ~ e2 ~ e1 e2 b1 f#1 ~@2 f#1 ~ f#2 b1 f#2", AL: "e2 ~ e2 ~@2 b1 e2 b1 f#2 ~ f#2 ~ f#1 f#2 b1 e2",
  AM: "b1@2 ~ b1 ~ b1 f#2 b2 b1 ~@2 b1 ~ b1 b2 f#2", AN: "[a1,g#2] ~@2 g#2 ~ d#2 g#2 d#2 g#1@2 ~ g#1 ~ g#1 d#2 g#2",
  AO: "e2@2 ~ e2 ~ b1 e2 b1 f#2@2 ~ f#2 ~ f#1@2 f#2", AP: "[a1 b1@29 ~@2]/2",
})).s("gm_synth_bass_2").gain(0.45)

// chords · epiano2
const epiano2 = note(`<
  ~@20 A B C D E ~@6 F E G@2 H I J@2 F E ~@11 K ~@2 L M N O ~ P Q R S T ~@6 U T V@2 W X Y@2 U T ~@6 U T Z AA AB X ~@2 U
  T ~@6 U T AC AD AE ~@3 U T ~@6 U T AC AD AE ~ AF@2
>`.pickRestart({
  A: "~@14 d4 e4", B: "[b1,a3,b3,d4,f#4]", C: "[a3,d4,e4]@7 ~ [e2,g#3,b3,e4]@8, d2 ~", D: "[a2,b3,c#4,e4]",
  E: "[d2,a3,d4,e4] [e2,g#3,b3,e4]", F: "[a2,b3,c#4,e4], e2 ~@15", G: "[~@16 d4@13 ~@3, ~@8 a4@9 ~@15, ~@6 c#4@9 ~]/2",
  H: "[c#2,a3,b3,e4]@15 ~", I: "[a3,d4,e4]@8 [b3,e4]@7 ~", J: "[~@12 a4 g#4 a4 ~ a4@6 ~@10, ~@15 e5@8 ~@9]/2",
  K: "e4 [a4,b4,e5] ~ [a4,b4,e5] ~ [a4,b4,e5] e4 [a4,b4,e5] ~ [b4,e5,f#5] ~ [b4,e5,f#5] ~ [b4,e5,f#5] e4 [b4,e5,f#5]", // Asus2 Bsus4
  L: "~@13 f#5 b4 c#5", M: "f#5 b4 c#5 f#5 b4 c#5 f#5 b4 c#5 f#5 b4 c#5 f#5 ~@3",
  N: "~@2 [f#4,b4,d#5]!2 ~@2 [f#4,d#5] [f#4,b4,d#5] ~ [f#4,b4,d#5] ~@4 [f#4,b4,d#5]!2", O: "~@11 [b4,c#5,e5,f#5]!5",
  P: "~@14 e4 f#4", Q: "[c#2,b3,c#4,e4,g#4]", R: "[b3,e4,f#4]@3 ~ [f#2,a#3,c#4,f#4]@4, e2 ~", S: "[b2,c#4,d#4,f#4]",
  T: "[e2,b3,e4,f#4] [f#2,a#3,c#4,f#4]", U: "[b2,c#4,d#4,f#4], f#2 ~@15", V: "[~@12 d#4@17 ~@3, ~@8 b4@9 ~@15]/2",
  W: "[d#2,b3,c#4,f#4]@15 ~", X: "[b3,e4,f#4]@8 [c#4,f#4]@7 ~", Y: "[~@12 b4 a#4 b4 f#5@8 ~@9]/2", Z: "~@2 b4 d#4",
  AA: "e4@2 a#4 g#4", AB: "f#4@4 a#3@3 ~ b3@4 f#4@4, ~@8 c4 ~@7", AC: "~@8 b4@4 d#4@3 ~", AD: "e4@7 ~ a#4@3 ~ g#4@4",
  AE: "f#4 a#3 b3 f#4", AF: "[~ [b2,b3,c#4,d#4,f#4]@29 ~@2]/2",
})).s("gm_epiano2").gain(0.36).pan(0.6)

// chords · percussive organ
const percussive_organ = note(`<
  ~ A B C B A B D E F G F G F G F G F G F G H I J K ~@2 L M N O J K P Q R M N O J K A B C B A B D E S T S T S T S T S T
  S T U V W X ~@2 Y Z AA AB W X AC AD AE Z AA AB W X ~@2 Y Z AA AB W X AC AD AE Z AA AB W X AF AG AH AG AA AB W X AC AD
  AE Z AA AB W X AF AG AH AG AA AB W X AC AD AE Z ~@2
>`.pickRestart({
  A: "[b4,c#5,e5]", B: "[d5,f#5]@7 ~ [e5,g#5]@7 ~", C: "[c#5,e5]@15 ~", D: "[e5,f#5,a5]",
  E: "a5@7 ~ g#5@6 ~@2, [d5,e5]@7 ~", F: "[a4,e5]@15 ~", G: "[a4,d5,e5]@7 ~ [b4,d5,e5]@8", H: "[d5,f#5]",
  I: "[d5,e5,f#5]@7 ~ [e5,b5]@8", J: "[a5,c#6]@15 ~", K: "[a5,d6]@7 ~ [b5,e6]@7 ~", L: "[e5,a5]@15 ~",
  M: "[d5,e5,a5]@7 ~ [e5,g#5]@8", N: "[f#5,a5]@15 ~", O: "[d5,e5,a5]@7 ~ [d5,e5,g#5]@7 ~", P: "[a3,e5,a5]",
  Q: "[b3,e5,a5]@15 ~, d5@13 ~@3", R: "[c#4,e5], c#5@7 ~", S: "[b4,f#5]@15 ~", T: "[b4,e5,f#5]@7 ~ [c#5,e5,f#5]@7 ~",
  U: "[e5,g#5]@15 ~", V: "[e5,f#5,g#5]@7 ~ [f#5,c#6]@7 ~", W: "[b5,d#6]@15 ~", X: "[b5,e6]@7 ~ [c#6,f#6]@7 ~",
  Y: "[f#5,b5]@15 ~", Z: "[e5,f#5,b5]@7 ~ [f#5,a#5]@7 ~", AA: "[g#5,b5]@15 ~", AB: "[e5,f#5,b5]@7 ~ [e5,f#5,a#5]@7 ~",
  AC: "[b3,f#5,b5]", AD: "[c#4,e5,f#5,b5]@7 ~", AE: "[d#4,f#5], d#5@7 ~", AF: "[c#5,d#5,f#5]@15 ~",
  AG: "[e5,g#5]@7 ~ [f#5,a#5]@8", AH: "[d#5,f#5]@15 ~",
})).s("gm_percussive_organ").gain(0.21)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~ A B C ~ A D E@2 ~@14 F G H I J K ~ L F G M N H K ~ L F G A B C ~ A D E@2 ~@14 O P Q R S T ~ U O P V W Q X ~ Y O P Q
  R S T ~ U O P Z AA@2 T ~ U O P AB AC AD ~@2 U O P Z AA@2 T ~ U O AE AB AC AD ~@2 U O P AF@3 T AG@2
>`.pickRestart({
  A: "e4@3 f#4", B: "a3 b3 c#4 d4", C: "c#4", D: "a3 b3 d4 c#4", E: "[c#4@12 ~@2 c#4 ~ e4@13 ~@3, ~@15 d4@2 ~@15]/2",
  F: "~ e5 a5 e6", G: "d6@2 c#6@2 b5@3 ~", H: "[c#4,a4]@15 ~", I: "[d4,e4,a4]@7 ~ [e4,g#4]@7 ~",
  J: "~@3 e4@5, [c#4,a4]@15 ~", K: "[d4,e4,a4]@7 ~ [e4,g#4]@8", L: "[e4,a4]@8 [e4,g#4]@7 ~", M: "[e4,a4]@15 ~",
  N: "[d4,e4,a4]@15 ~", O: "~ f#5 b5 f#6", P: "e6@2 d#6@2 c#6@3 ~", Q: "[d#4,b4]@15 ~",
  R: "[e4,f#4,b4]@7 ~ [f#4,a#4]@7 ~", S: "~@6 f#4@9 ~, [d#4,b4]@15 ~", T: "[e4,f#4,b4]@7 ~ [f#4,a#4]@8",
  U: "[f#4,b4]@7 ~ [f#4,a#4]@7 ~", V: "[f#4,b4]", W: "[e4,f#4,b4]", X: "[e4,f#4,b4] [f#4,a#4]",
  Y: "[f#4,b4]@8 a#4@7 ~, ~@8 f#4 ~@7", Z: "[f#4,b4]@15 ~", AA: "[[e4,f#4]@15 ~ d#4@15 ~, b4@15 ~]/2", AB: "f#4@3 g#4",
  AC: "b3@4 c#4@3 ~ d#4@4 e4@4", AD: "d#4", AE: "e6 d#6 ~@2", AF: "[~@16 e4@14 ~@2 d#4@15 ~, [f#4,b4]]/3",
  AG: "[~ [c#5,d#5,f#5]@29 ~@2]/2", // D#m7
})).s("gm_string_ensemble_1").gain(0.36).pan(0.6)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~ A B C ~ A D E F G H G H G H G H G H G H I J K L ~@5 M K L N O P ~@2 M K L A B C ~ A D E F Q R Q R Q R Q R Q R Q R S
  T U V ~@5 W U V I X Y ~@2 Z U V ~@5 W U V I X Y ~@2 AA U V AB AC AD ~@2 Z U V I X Y ~@2 Z U V AB AC AD ~@2 Z U V I X Y
  ~@3
>`.pickRestart({
  A: "e5@3 f#5", B: "a4 b4 c#5 d5", C: "c#5", D: "a4 b4 d5 c#5", E: "c#5@13 ~ c#5 d5", F: "e5@7 ~", G: "[a3,c#4]@15 ~",
  H: "[a3,d4]@8 [b3,e4]@7 ~", I: "[f#4,b4]@15 ~", J: "[f#4,a4]@7 ~ [g#4,b4]@8", K: "[c#5,e5]@15 ~",
  L: "[a4,d5,e5] [b4,d5]", M: "[d4,f#4]@7 ~ [e4,g#4]@7 ~", N: "[e4,a4]@15 ~", O: "[d4,e4,a4]@7 ~",
  P: "[c#3,e4,a4]@15 ~", Q: "[b3,d#4]@15 ~", R: "[b3,e4]@8 [c#4,f#4]@7 ~", S: "[g#4,c#5]@15 ~",
  T: "[g#4,b4]@7 ~ [a#4,c#5]@8", U: "[d#5,f#5]@15 ~", V: "[b4,e5,f#5] [c#5,e5]", W: "[e4,g#4]@7 ~ [f#4,a#4]@7 ~",
  X: "b4@7 ~", Y: "[d#3,f#4,b4]@15 ~", Z: "e4@7 ~ [f#4,a#4]@7 ~", AA: "e4@7 ~ f#4@7 ~, ~@7 a#4@7 ~@2", AB: "f#5@3 g#5",
  AC: "b4 c#5 d#5 e5", AD: "d#5",
})).s("gm_synth_strings_1").gain(0.39).pan(0.4)

// chords · piano
const piano = note(`<
  ~ A B C D E F G ~ H I J K H I J K H I J K ~@4 A B C D G L ~@2 M N O D G L ~@2 A B C D E F G ~ P Q R S P Q R S R Q R S
  ~@4 T U V W X Y ~@2 Z AA AB W X AC ~@2 T U V W X Y ~@2 Z AA AB W X Y ~@2 T U V W AD Y ~@2 Z AA AB W AD Y ~@2 T U V W
  AE Y ~@2 Z AA AB AF@2 ~
>`.pickRestart({
  A: "[a2,b3]@4 ~@6 c#4@2 [c#4,e4]@2 a2 ~, e4 ~, ~@4 [b3,c#4]@4 b3@7 ~, ~@6 a2@7 ~@3", // Asus2 C#m Bsus2
  B: "[a3,d4,e4]@4 [a3,d4,e4]@3 ~ [b3,d4,e4]@4 [b3,d4,e4]@4", // Asus4 E7
  C: "[a3,c#4,e4]@6 ~@2 c#4@2 [c#4,e4]@2 [a3,c#4,e4]@2 a3 ~, ~@6 a3@5 ~@5", // A C#m A
  D: "[a3,d4]@4 ~@2 d4@2 [b3,e4]@3 [b3,e4]@2 ~ [b3,e4]@2, ~ a3 ~@2", // D5 E5
  E: "[a2,b3]@4 b3@2 ~@4 c#4@2 [b3,c#4,e4]@2 a2 ~, e4@6 a2@7 ~@3, ~@2 b3 ~", F: "[d4,e4]@7 ~ [b3,e4]@7 ~, a3@5 ~@11",
  G: "~@8 c#4@2 e4 ~@3 f#2@2, [a3,c#4]@6 a3@5 ~ [a3,c#4,e4]@4, ~@4 f#2@9 ~@3", // A
  H: "a2@2 ~@2 a3 b3 [a3,b3,c#4,e4] a2, [a3,b3,c#4,e4] ~, ~@6 a2@7 ~@3", // A
  I: "[d2,a3,d4]@2 [a3,d4,e4] d2 [e2,b3]@4, e4@3 ~@5 [g#3,d4]@6 ~@2", // D5 Asus4 E5 G#dim
  J: "[a3,b3,c#4,e4]@6 ~@2 a3@2 b3 ~ [a3,b3,c#4,e4]@2 a2@2, a2@5 ~ a2@7 ~@3", // A
  K: "[a3,d4,e4]@3 ~ [a3,d4,e4]@2 d2@2 [g#3,b3,d4]@2 ~@4 e2@2, d2@4 ~@4 e2@5 ~@3, ~@11 [g#3,b3,d4]@5", // Asus4 G#dim
  L: "[d2,d4]@3 [a3,d4,e4]@3 d2@2 [e2,g#3,b3,e4]@3 [g#3,b3,e4]@3 e2@2, [a3,e4] ~@15", // D Asus4 E A5
  M: "[b3,e4]@3 ~@7 b3@2 [b3,c#4,e4]@2 a2@2, a2@6 ~@2 a2@5 ~@3, ~@2 [b3,c#4,e4]@3 ~@3", // E5 C#m7
  N: "[b2,a3,d4,e4]@5 ~ [a3,d4,e4]@4 [a3,d4,e4] ~@3 b2@2, ~@6 b2@7 ~@3", // Bm7 Asus4
  O: "c#3@5 ~@3 b3@2 e4 ~ [b3,e4,a4]@2 c#3 ~, [b3,e4,a4] ~, ~@3 c#3@3 ~@2", // Esus4
  P: "b2@4 ~@4 b3@2 c#4 ~ [b3,c#4,d#4,f#4]@2 b2@2, [b3,c#4,d#4,f#4] ~, ~@6 b2@7 ~@3", // B
  Q: "[e2,b3]@2 [b3,e4,f#4] e2 [f#2,c#4]@4, [e4,f#4]@3 ~@5 [a#3,e4]@6 ~@2", // E5 Bsus4 F#5 Esus2 A#dim
  R: "[b3,c#4,d#4,f#4]@6 ~@2 b3@2 c#4 ~ [b3,c#4,d#4,f#4]@2 b2@2, b2@5 ~ b2@6 ~@4", // B
  S: "[b3,e4,f#4]@3 ~ [b3,e4,f#4]@2 e2@2 [a#3,c#4,e4]@2 ~@4 f#2@2, e2@4 ~@4 f#2@5 ~@3, ~@11 [a#3,c#4,e4]@5", // Bsus4 A#dim
  T: "[b2,c#4]@4 ~@6 d#4@2 [d#4,f#4]@2 b2 ~, f#4 ~, ~@4 [c#4,d#4]@4 c#4@7 ~, ~@6 b2@7 ~@3", // Bsus2 D#m C#sus2
  U: "[b3,e4,f#4]@4 [b3,e4,f#4]@3 ~ [c#4,e4,f#4]@4 [c#4,e4,f#4]@4", // Bsus4 F#7
  V: "[b3,d#4,f#4]@6 ~@2 d#4@2 f#4@2 [b3,d#4,f#4]@2 b3 ~, ~@6 b3@4 d#4 ~@5", // B
  W: "[b3,e4]@4 ~@2 e4@2 [c#4,f#4]@3 [c#4,f#4]@2 ~ [c#4,f#4]@2, ~ b3 ~@2", // E5 F#5
  X: "~@8 d#4@2 f#4 ~@3 g#2@2, [b3,d#4]@6 b3@5 ~ [b3,d#4,f#4]@4, ~@4 g#2@9 ~@3", // B
  Y: "[e2,e4]@3 [b3,e4,f#4]@3 e2@2 [f#2,c#4]@3 [a#3,c#4,f#4]@3 f#2@2, [b3,f#4] ~@7 [a#3,f#4]@2 ~@6", // E Bsus4 F#5 F# B5 D#m
  Z: "[c#4,f#4]@3 ~ [c#4,d#4,f#4]@4 ~@2 c#4@2 [c#4,d#4,f#4]@2 b2@2, b2@6 ~@2 b2@5 ~@3", // F#5 D#m7
  AA: "[c#3,b3,e4,f#4]@5 ~ [b3,e4,f#4]@4 ~ [b3,e4,f#4]@3 c#3@2, ~@6 c#3@7 ~@3", // C#m7 Bsus4
  AB: "d#3@5 ~@3 c#4@2 f#4 ~ [c#4,f#4,b4]@2 d#3 ~, [c#4,f#4,b4] ~, ~@3 d#3@3 ~@2", // F#sus4
  AC: "[e2,e4]@3 [b3,e4,f#4]@3 e2@2 [f#2,a#3,c#4,f#4]@3 [a#3,c#4,f#4]@3 f#2@2, [b3,f#4] ~@15", // E Bsus4 F# B5
  AD: "c#4 ~@7 d#4@2 f#4@2 ~@2 g#2@2, [b3,d#4]@6 b3@5 ~ [b3,d#4,f#4]@4, ~@4 g#2@9 ~@3", // B
  AE: "c#4 ~@7 d#4@2 f#4 ~@3 g#2@2, [b3,d#4]@6 b3@5 ~ [b3,d#4,f#4]@4, ~@4 g#2@9 ~@3", // B
  AF: "[[b3,e4]@4 ~@2 e4@2 [c#4,f#4]@3 [c#4,f#4]@2 ~@2 [c#4,f#4]@2 ~@15, ~ b3 ~@6]/2", // E5 F#5
})).s("gm_piano").gain(0.41)

// other · pad sweep
const pad_sweep = note("<A@4 B@5 ~@118>".pickRestart({
  A: "[~@15 e4@12 f#4@4 a3@4 b3@4 c#4@4 d4@4 c#4@16 ~]/4",
  B: "[~@15 e4@12 f#4@4 a3@4 b3@4 d4@4 c#4@4 c#4@13 ~ c#4 d4 e4@14 ~@3]/5",
})).s("gm_pad_sweep").gain(0.31).pan(0.3)

// other · pad new age
const pad_new_age = note(`<
  ~@23 A B C D ~@2 E F A B ~@4 G@2 A B H I J ~ H K L M ~@14 N O P Q ~@2 R S N O ~@4 T@2 N O P Q ~@2 R S N O U V W ~@3 N
  O X Y Z ~@3 N O U AA AB@2 ~@2 N O X Y Z ~@3 N O U AA AB@2 ~@2
>`.pickRestart({
  A: "~@4 e5@3 ~ a5@4 e6@4", B: "d6@4 c#6@4 b5@5 ~@3", C: "~@2 [e5,e6] [f#5,f#6]", D: "[a4,a5]@8 [b4,e5]@7 ~",
  E: "[f#5,a5]@13 ~@3", F: "[e5,f#5,a5]@2 [e5,a5] ~", G: "[~@12 a5 g#5 a5 e6@7 ~@10]/2", H: "e6@3 f#6",
  I: "a5 b5 c#6 d6", J: "c#6", K: "a5 b5 d6 c#6", L: "c#6@13 ~ c#6 d6", M: "e6@7 ~", N: "~@4 f#5@3 ~ b5@4 f#6@4",
  O: "e6@4 d#6@4 c#6@5 ~@3", P: "~@2 [f#5,f#6] [g#5,g#6]", Q: "[b4,b5]@7 ~ [c#5,f#5]@7 ~", R: "[g#5,b5]@13 ~@3",
  S: "f#5@7 ~ [f#5,b5]@4 ~@4", T: "[~@12 b5 a#5 b5 f#6@7 ~@10]/2", U: "~@8 b5@4 d#5@3 ~", V: "e5@2 a#5 g#5",
  W: "f#5 a#4 b4 f#5", X: "f#6@3 g#6", Y: "b5 c#6 d#6 e6", Z: "d#6", AA: "e5@7 ~ a#5@3 ~ g#5@4",
  AB: "[f#5@4 a#4@4 b4@4 f#5@9 ~@11]/2",
})).s("gm_pad_new_age").gain(0.26).pan(0.2)

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

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

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~ [~@6 x!2 ~@8]!124 ~@2>").gain(0.31)

// drums · low tom
const low_tom = s("lt").struct("<~@56 [~@13 x ~ x] ~@67 [~@7 x] x ~>").gain(0.54)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A@23 B A@7 B A@7 B A@23 B A@7 B C A@6 B A@7 B A@3 D A@3 B A@3 D A@3 B A@3 D A@3 B A@3 D A@3 B A@4 ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@3 x!2", C: "~@3 x", D: "~@3 x!2 ~@7 x ~@3",
// … 31 more lines

More by Fiorella Mannoia