Strudelify

Nei silenzi

Raf

KeyG majorTempo86 bpm
0:00/0:00
// Nei silenzi — Raf
// 86 bpm, 4/4, key G 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 69 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(86/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.

// other · cello
const cello = note(`<
  ~@12 A B C D E F G H I J K L I M N O P Q R ~@3 S T U F V A B C D W X Y Z AA AB I J K L I M N I J K L I M N O P Q AC@3
>`.pickRestart({
  A: "e3@3 f#3", B: "g3 b3", C: "e3@5 f#3 g3 b3", D: "a3@3 c3@5", E: "e2@2 ~ e2 ~@2 f#2@10", F: "g2@3 a2@5",
  G: "g2@2 ~ d3@2 ~ f#3@4 f#3@2 a3@2 d4@2", H: "b3@5 ~ a3@10", I: "c3", J: "b2", K: "a2@3 b2@5", L: "e2 e3@2 d#3@5",
  M: "b2 f#2 d2@2", N: "a2 f#2", O: "g2", P: "e2@5 ~ f#2@9 ~", Q: "g2@5 ~ g2@9 ~", R: "e2@5 ~ f#2@10", S: "~@3 a3",
  T: "b3", U: "f#3@3 g3@3 a3@2 b2@8", V: "g2@2 b2 d3@3 a3@10", W: "e2@3 f#2@5", X: "g2@3 b2@5", Y: "a2",
  Z: "b2@4 d3 b2 f#2 d2", AA: "c2 g2", AB: "[d3,d4] [d2,c4]", AC: "[e2@10 f#2@8 d2@17 ~@13]/3",
})).s("gm_cello").gain(0.56).pan(0.3)

// other · violin
const violin = note("<~@50 A B C D E F G H I J D K F L M L N@3>".pickRestart({
  A: "~@5 a4 b4@2", B: "c5@3 d#5@5", C: "e5@3 f#5@5", D: "b5", E: "a5@2 f#5 d5", F: "c5", G: "b5 g5",
  H: "[b4,e6] [f#4,d6]", I: "[g4,c6]@3 [f#4,d#6]@5", J: "[g4,e6]@3 [f#4,b5]@2 [g4,a5]@3 [b3,g5]@3 [a3,f#5]@2 [b3,g5]@3",
  K: "a5@5 f#5 d5 b4", L: "c5@3 b4@5", M: "g4@3 a4@3 d5@2", N: "[g4@10 f#4@25 ~@13]/3",
})).s("gm_violin").gain(0.46).pan(0.8)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X U Y Z AA AB AC AD E F G H I J AE AF M N O P Q AG AH AI AJ AK U V W X U
  Y Z U V W X U Y Z AA AB AC AL@3
>`.pickRestart({
  A: "[g2,d3,a3,d4]@2 ~ [d3,g3,a3,d4]@3 ~@2", B: "[e2,e3,g3,c4]@3 [e2,e3,g3,c4] ~@2 [f#2,d3,a3,d4]@6 ~@4",
  C: "[g2,d3,a3]@3 d4@3 [d3,g3,b3,d4]@6 ~@4", D: "[e2,g3,c4,e4]@3 [e2,g3,c4,e4] ~@2 [f#2,d3,a3,d4]@6 [a2,b2] a2 f#2@2",
  E: "[e2,e3,g3,d4]@4 ~@2 [f#2,e3,a3,b3]@6 e3@3 ~", F: "[e2,e3,g3,d4]@3 [e3,g3] ~@2 [f#2,e3,a3,b3]@6 ~@2 f#3 ~, ~@3 b3",
  G: "[g2,d3,a3]@3 [d3,a3] ~@2 [f#2,e3,a3]@6 ~@2 f#3 ~, ~@3 b3", H: "[g2,d3,g3,a3]@4 ~@2 [b2,f#3,a3,b3]@6 a3 f#3 b2@2",
  I: "[e2,e3,g3,b3]@2 ~ [f#2,e3,f#3,a3]@3 ~@2", J: "[e2,e3,g3,b3]@4 ~@2 [f#2,e3,f#3,a3]@6 e3@2 a3 ~",
  K: "[g2,g3,b3,d4]@4 ~@2 [f#2,e3,f#3,a3]@6 ~@2 f#3 ~, ~@3 b3", // G F#m7
  L: "g2@3 [g3,b3,d4] ~@2 b2@4 [b2,c3] ~ b2@2 f#3 ~, ~@3 [f#3,a3,e4]@3 ~@2", // G Cmaj7 F#m7
  M: "~@3 b4@3 e4@3 ~@2 g4 [e4,g4,b4]@4, a2, a3@8 ~ a3@5 ~@2, ~ c4@5 c4@10, ~ e4@2 [g4,b4]@2 e4 ~@2", // Em G
  N: "a3 ~@2 [a4,c5] ~@2 [g3,g4,b4]@4 ~@5 b3, ~ c4@2 ~@7 e3@3 e4@3, ~@2 e4@2 ~@7 b3@3 e3@2, ~@3 g3", // Am G
  O: "a3 ~@2 [a4,c5] ~@2 [e4,g4,b4]@4 ~@5 b3, a2@10 e3@3 [e4,b4]@3, ~ c4@2 ~@8 b3@3 e3@2, ~ e4 ~@4 g3@2", // Am Em E5
  P: "a3 ~@2 [a4,c5] ~@2 [c3,g3,d4,g4,b4]@10, a2@3 ~@5, ~ c4@2 ~@13, ~ e4 ~@6", // Am G
  Q: "[e2,b3,d4,g4]@3 [b3,d4,g4] ~@2 a4@6 ~@2 f#3@2, ~@3 [f#2,b3,e4]@5, ~@3 b4", // Em7 G Esus2
  R: "[g2,b3,e4,g4]@3 [b3,e4,g4] ~@2 f#4@6 ~@2 f#3@2, ~@3 [f#2,a3,d4]@5, ~@3 b3", // Em D
  S: "[g2,g3,b3,d4,a4]@2 ~ f#3@2 ~@2 d4, ~@3 [f#2,a3,d4,b4]@3 a3@2, ~@5 f#3@3", // G Bm7
  T: "a3 ~ d4 a3 ~ e4 ~ e4, [g2,b3,d4,a4]@5 ~ [b2,f#3]@10, ~ a3@2 e4@2 ~@3, ~@2 a3!2", // G B5
  U: "~@7 c3, c3@7 ~, ~ g3@3 g3 g4@3, ~ c4@2 g3, ~@3 d4@3 ~@2", V: "~@7 a3, b2, ~ f#3@7, ~ a3!2 d4, ~@3 d4@2 f#4@3",
  W: "~@2 g3 ~@4 f#3, a2@3 b2@3 b3@2, ~ e3@2 ~ d#3@3 ~, ~@5 f#3@2 ~",
  X: "~@2 [e4,g4] d#4 ~@3 b3, e3@3 f#4@3 f#4@2, ~ b3@3 b3@3 ~, ~@5 d#4@2 ~", // Em
  Y: "~@7 d3, b2@3 f#3, ~ a3@4 a3@3, ~ d4 d4@2, ~@3 f#4@5", Z: "~@2 g3 e3 [f#3,a3,d4]@4, a2@3 ~@5, ~ e3@2 ~@5",
  AA: "[g2,g3,c4,d4]@3 [g3,c4,d4] ~@2 [g3,d4]@6 ~@2 g3@2, ~@3 [g2,b3]@5, ~@3 d4", // Gsus4 G5 G
  AB: "[e2,g3,b3,e4]@3 [g3,b3,e4] ~@2 [f#3,d4]@6 ~@2 a3@2, ~@3 f#2@5, ~@3 a3@4 ~, ~@3 d4", // Em D
  AC: "[g2,e3,a3,c4]@3 [e3,a3,c4] ~@2 d4@4 d4@3 g3@3, ~@3 [g2,b3]@5, ~@6 g3@7 ~@3", // Am7 Am G
  AD: "[e2,b3,e4,g4]@3 [b3,e4,g4] ~@2 [d4,f#4]@6 ~@2 f#2@2, ~@3 a3@5, ~@3 f#2@4 ~, ~@3 a2", // Em D
  AE: "[g2,g3,b3,d4]@2 ~ [a2,c#4,e4]@3 ~ f#3, ~@3 f#3@4 ~, ~@3 a3", // G A
  AF: "g2@3 [g3,b3,d4] ~@2 a2@4 ~@2 e3@2 c#3@2, ~@3 [f#3,c#4,e4]@3 ~@2, ~@5 c#3@2 ~", // G F#7
  AG: "[g2,g3,b3,d4]@3 [g3,b3,d4] ~@2 [b3,e4]@5 ~@3 f#3@2, ~@3 [b2,a3]@5, ~@11 b3@5", // G E5 B7
  AH: "~ e3!2 ~@4 c3, a2@7 ~, ~@2 g3@3 e4@3, ~@3 e3@3 e3@2, ~@4 c5@3 ~",
  AI: "~ f#3!2 ~@2 a3 ~ d3, b2@7 ~, ~@2 a3@3 ~@3, ~@3 f#3@3 f#3@2, ~@4 f#4@3 ~",
  AJ: "~ g3 c4 ~@2 c4 ~ e3, c3@7 ~, ~ d4@3, ~@3 g3@3 g3@2, ~@4 g4@3 ~",
  AK: "~ a3 d4 ~ [c4,f#4,a4]@4, d3@7 ~, ~@3 a3@3 ~@2", // F#dim
  AL: "[[b3,d4]@2 ~@5 e3@2 ~ [f#2,f#3,a3,d4]@24 ~@14, [e2,f#4]@5 ~@19, ~ d4@4 ~@19, ~ b3@2 ~@13, ~@5 g3@5 ~@38]/3", // Bm D Esus2
})).s("gm_acoustic_guitar_nylon").gain(0.56).pan(0.7)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@12 A B C D E F G H I J K L M N O P@2 Q@2 ~@8 A B C D E R S T A U I V K L M W O I J K L M N O P@2 X@4
>`.pickRestart({
  A: "[g3,c4,e4]", B: "[g3,c4,e4]@3 [g3,b3,d4]@5", C: "[g3,c4,e4]@3 [g3,b3,e4]@5", D: "[a3,c4,e4]@3 [c3,g3,d4]@5",
  E: "[e3,b3,d4,g4]@3 [f#3,b3,e4,a4]@5", F: "[g3,b3,e4,g4]@3 [f#3,a3,d4,f#4]@5", G: "[g3,b3,d4,a4]@3 [f#3,a3,d4,b4]@5",
  H: "[g3,b3,d4,a4]@3 [f#3,a3,e4]@5", I: "[c4,g4,e5]", J: "[f#4,d5]@3 b4, b3", K: "[a3,g4,c5]@3 [b3,a4,d#5]@5",
  L: "[b3,g4,e5]@3 [b3,b4,f#5]@5", M: "[c4,g4,e5,b5]", N: "[a5,d6]@5 f#5 d5 b4, [b3,f#4]", O: "[a3,c4,c5]",
  P: "[[g3,d4,c5]@3 b4@4 ~ [g3,d4]@3 a4@3 d5@2, ~@3 [g3,d4]@5 ~@3 [f#3,d4]@5, ~@7 g4@4 ~@5]/2", // Gsus4 G5 D
  Q: "[[g3,a4,c5]@3 g4@4 ~ [g3,d4]@3 [a3,d4,f#4]@5, ~@3 b4@6 ~@7, ~@3 g3@5 ~@8, ~@7 g4@4 ~@5]/2", // Am7 G5 D
  R: "[g3,d4,g4,b4]@3 [b3,f#4,a4,b4,f#5]@5", S: "[a3,c4,g4,e5]", T: "[b3,f#4,a4,d5]", U: "[d3,a3,d4]",
  V: "[f#4,d5]@5 a4 b4@2, b3", W: "[a5,d6]@2 f#5 d5, [b3,f#4]",
  X: "[[g3,a4,c5]@6 g4@8 ~@2 [g3,d4]@10 [a3,d4,f#4]@25 ~@13, ~@3 [g3,b4]@5 ~@24, ~@14 g4@9 ~@41]/4", // Am7 G5 D G
})).s("gm_string_ensemble_2").gain(0.31)

// other · electric guitar jazz
const electric_guitar_jazz = note("<~@64 [~@13 e4 ~ d4] [d4@15 ~] ~@3>")
  .s("gm_electric_guitar_jazz").gain(0.54).pan(0.2)

// drums · hihat
const hihat = s("hh").struct("<~@27 [x!4]!21 x ~@14 [x!4]!3 [x ~ x ~@2 x ~@2] ~@2>").gain(0.32)

// drums · ride
const ride = s("rd").struct("<~@48 [~@6 x!3 ~@7] ~@17 [~@5 x ~@2] ~@2>").gain(0.32)

stack(cello, violin, acoustic_guitar_nylon, string_ensemble_2, electric_guitar_jazz, hihat, ride)

More by Raf