Strudelify
Stato di calma apparente cover art

Io sono

Stato di calma apparente

Paola Turci

KeyB minorTempo123 bpm
0:00/0:00
// Stato di calma apparente — Paola Turci
// 123 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 125 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): GUITAR DS.
// note: The whole transcription plays 34 ms ahead of the beat; the grid follows it, so its parts stay together.
setcpm(123/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 · electric bass finger · "BASSO"
const bass = note(`<
  ~@4 A B C@2 A D A B E F E F G H I J E K L@3 M E F E F G H I J E K L N O P Q@3 R Q S Q T U V W X Y Z W AA Y Z AB@3 E F
  E F G H I J E K L N O P Q@3 R Q AC AD Z U V W X Y Z W AA Y Z AB@2 AE AF AE AF AE AF AE AF AG AH AI AJ AK AL AI AM AN
  AO AE AF AE AF AE AF AE AF AP@4
>`.pickRestart({
  A: "b1 g1", B: "a1 f#1", C: "[b1@8 g1@6 a1@15 ~@3]/2", D: "a1@7 ~ f#1@6 f#1 ~", E: "b1@5 ~ b1@10", F: "a1@3 a1@4 a1",
  G: "d2@5 ~ d2@7 ~ d2@2", H: "e2@5 ~ e2@8 e2@2", I: "f#1@5 ~ f#1@10", J: "e1@5 ~ e1@4 ~ e1 f#1@2 a1 ~",
  K: "f#1@5 ~ f#1@7 ~ f#1@2", L: "e1@5 ~ e1@9 ~", M: "e1@5 ~ e1@6 f#1@2 a1@2", N: "e1@5 ~ e1@10", O: "g1@5 ~ g1@8 e1@2",
  P: "g1@5 ~ g1@7 ~ g1@2", Q: "d2@5 ~ d2@2 d2@8", R: "d2@6 d2@2 d2@4 d2 ~ a1@2", S: "d2@6 d2 ~ d2@4 d2 ~ d2@2",
  T: "d2@5 ~ d2@2 d2@6 a1@2", U: "b1@3 b1 b1@3 b1", V: "f#1@6 f#1 ~ f#1@6 f#1@2", W: "e1@5 ~ e1@2 e1@8",
  X: "e1@5 ~ e1@2 e1@2 f#1@6", Y: "g1@5 ~ g1@2 g1@8", Z: "a1@5 ~ a1@2 a1@8", AA: "e1@2 e1@3 ~ e1@2 e1@8",
  AB: "e1 e1@2 e1!2 e1@2 e1", AC: "d2@3 d2@3 e1 f#1", AD: "g1@3 b1@3 b1@2", AE: "d#2@5 ~ d#2@2 b1@5 ~ b1@2",
  AF: "c#2@5 ~ c#2@2 a#1@6 a#1@2", AG: "d#2@5 ~ d#2@2 d#2@6 d#2@2", AH: "a#1@5 ~ a#1@2 a#1@5 ~ a#1@2",
  AI: "g#1@5 ~ g#1@2 g#1@7 ~", AJ: "g#1@5 ~ g#1@2 g#1@2 a#1@6", AK: "b1@5 ~ b1@2 b1@4 b1@2 b1 ~",
  AL: "c#2@5 ~ c#2 ~ c#2@4 c#2 ~ c#2@2", AM: "g#1 ~ g#1@4 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2", AN: "b1@5 ~ b1@2 b1@8",
  AO: "c#2@4 c#2@2 c#2 ~ c#2@4 c#2@3 ~", AP: "[d#1@63 ~]/4",
})).s("gm_electric_bass_finger").gain(0.32)

// chords · electric guitar clean · "GUITAR CLE"
const electric_guitar_clean = note(`<
  A@2 B@2 C@2 B@2 D@2 E@2 F G F G H I H I J K L@2 M@2 N@4 O@2 P Q R S T U V@2 W X Y Z AA AB AC AD AE@2 AF AG AH@2 AF AI
  AJ@2 AK@3 N@4 O@2 P Q R S T U V@2 W X Y Z AA AL AM AN AO@2 AF AG AP@2 AF AI AJ@2 AQ@4 AR@2 AS@2 AR@2 AT@2 AU AV AW@2
  AU AX AY@2 AS@2 AR@2 AS@2 AZ@6
>`.pickRestart({
  A: "[b3 ~@10 b3@5, ~@2 f#3@7 ~ f#3@8 e3@14, ~@2 b3@3 ~ b3@4 a3@6, ~@6 f#4@7 ~ e4@6 ~@12]/2",
  B: "[b3 ~@6 e4@9, ~@2 f#3@7 ~ f#3@22, ~@2 b3@3 ~ b3@10, ~@6 f#4@7 ~@19]/2",
  C: "[b3 ~@6 e4@2 ~@2 b3@5, ~ f#3@3 ~ f#3@4 e3@7, ~@4 b3@5 ~@3 b3@6 ~@2 a3@12, ~@6 f#4@7 ~@19]/2",
  D: "[b3@2 ~@12 e4@4 ~@4 b3@9 ~, ~ f#3@3 ~ f#3@4 e3@7, ~@4 b3@5 ~@3 b3@6 ~@2 a3@11 ~, ~@6 f#4@7 ~@19]/2",
  E: "[b3 ~@10 b3@5, ~@2 f#3@4 f#4@6 b3@7 ~ a3@12, ~@4 b3@4 ~@2 f#3@7 ~ e3@14, ~@14 e4@7 ~@11]/2",
  F: "b3 ~@2 f#4@5, ~ f#3@7, ~ b3@3", G: "a3 ~@2 b3@5, ~ e3@7, ~ a3@3", H: "d4 ~@2 e4@5, ~ a3@7, ~ d4@3",
  I: "~@3 e4@5, ~ g3@7, ~ d4@3", J: "b3 ~@2 f#4@4 ~, ~@2 f#3@13 ~, ~@2 b3@5 ~", K: "b3 ~@2 e4@5, ~ a3@7, ~ b3@3",
  L: "[~ e4 ~ e4@13, ~ g3@7]/2", M: "~@6 g3@9 ~, ~ d4@7, ~ f#3@3",
  N: "[~@3 e4@6 ~@2 e4@5, ~ f#3@7 ~ a3@7, ~@4 d4@13 ~@3 b3@12]/2",
  O: "[~@3 e4@6 ~@2 e4@5, ~ a3@7 ~ g3@7, ~@2 d4@7 ~ d4@6]/2", P: "~@3 e4@5, ~ a3@7, ~ d4@3",
  Q: "~@3 e4@5, e3, ~ g3@7, ~ d4@3", R: "~@3 d4@5, ~ f#3@7, ~ b3@3", S: "~@3 c#4@5, ~ e3@7, ~ a3@3",
  T: "~@3 b3@5, ~ d3@7, ~ g3@3", U: "~ f#4, ~ e3@7, ~ g3@3, ~@3 d4@5",
  V: "[~@11 f#4 ~@3 a3, ~@2 a3@15 ~ a3@10 d4@4, ~@2 d4@7 ~ d4@3 f#4@3, ~@3 f#4@7 ~@2 g4@4]/2",
  W: "~@3 f#4, ~ a3@7, ~ d4@3, ~@3 e4@5", X: "e4 ~@11 a4@4, ~ c#4@7, ~ a3@3, ~@3 e4@5",
  Y: "d4 ~@4 g4@3, ~ g3@7, ~ b3@3, ~@3 d4@5", Z: "~@5 e4@3, c#4 a3@3, ~ e3@7, ~@3 c#4@5",
  AA: "~@5 f#4@3, f#4@3 e4@5, ~ a3@7, ~ d4@3", AB: "e4 ~@4 a4@3, ~ a3@7, ~ c#4@3, ~@3 e4@5",
  AC: "~@5 g4@3, g4@3 d4@5, ~ g3@7, ~ b3@3", AD: "~@5 e4@3, e4@9 ~@7, ~ e3@7, ~ a3@3, ~@3 c#4@5",
  AE: "[[b3,d4,f#4]@7 ~ [b3,e4]@8, ~@15 a3@17]/2", AF: "[g3,d4,f#4]",
  AG: "~@3 d4@2 [a3,c#4]@3, ~ f#3@4 ~@3, ~@2 g3@3 ~@3", AH: "[[g3,d4,f#4]@13 ~@3 [b3,e4]@16, ~@15 a3@17]/2",
  AI: "~@7 d3, ~ d3@5 ~@2, ~@4 g3@5 ~ g3@6, ~@3 b3@5",
  AJ: "[~@2 c#4@2 b3 ~@5 c#4@2 b3 a3@3, d4@5 a3@5 ~@6, ~@7 d4@9]/2",
  AK: "[~@8 [d4,f#4]@7 ~ [f#4,a4]@8, b3, ~@31 d4@17]/3", AL: "~@3 e4@5, e4 b3@3, ~ g#3@7",
  AM: "~@2 b3@2 ~@2 [a3,f#4]@5 ~ [g3,b3,d4]@4, g4@4 d4@7 ~@5", AN: "[a3,b3,e4]",
  AO: "[[b3,d4,f#4]@7 ~ e4@8, ~@15 [a3,b3]@17]/2", AP: "[[g3,d4,f#4]@13 ~@3 e4@16, ~@15 [a3,b3]@17]/2",
  AQ: "[~@16 [d4,f#4]@14 ~@2 d#4@2 ~@20 d#4@9 ~, b3@48 ~@4 c#4@11 ~, ~@17 a#3@3 ~ a#3@4 g#3@7, ~@36 d#4@5 ~@3 d#4@7 ~@13, ~@38 a#4@7 ~ g#4@6 ~@12]/4", // D
  AR: "[d#4@2 ~@20 d#4@9 ~, ~@2 a#3@4 a#4@6 d#4@7 ~ c#4@11 ~, ~@4 d#4@4 ~@2 a#3@7 ~ g#3@14, ~@14 g#4@7 ~@11]/2",
  AS: "[d#4@2 ~@20 d#4@9 ~, ~ a#3@3 ~ a#3@4 g#3@7, ~@4 d#4@5 ~@3 d#4@7 ~ c#4@11 ~, ~@6 a#4@7 ~ g#4@6 ~@12]/2",
  AT: "[[d#4,f#4,a#4]@7 ~ g#4@8, ~@15 [c#4,d#4]@17]/2", AU: "[b3,f#4,a#4]",
  AV: "~@3 f#4@2 [c#4,f4]@3, ~ a#3@4 ~@3, ~@2 b3@3 ~@3", AW: "[[b3,f#4,a#4]@13 ~@3 g#4@16, ~@15 [c#4,d#4]@17]/2",
  AX: "~@7 f#3, ~ f#3@5 ~@2, ~@4 b3@5 ~ b3@6, ~@3 d#4@5",
  AY: "[~@2 f4@2 d#4 ~@5 f4@2 d#4 c#4@3, f#4@5 c#4@5 ~@6, ~@7 f#4@9]/2",
  AZ: "[d#4@2 ~@20 d#4@9 ~ [a#3,d#4]@60 ~@4, ~@2 a#3@4 a#4@6 d#4@7 ~ c#4@12 ~@64, ~@4 d#4@4 ~@2 a#3@7 ~ g#3@13 d#3@61 ~@4, ~@14 g#4@7 ~@75]/6", // D#5
})).s("gm_electric_guitar_clean").gain(0.32).pan(0.8)

// other · overdriven guitar · "GUITAR DS"
const overdriven_guitar = note("<~@96 A ~@3 A ~@6 B C ~@5 A ~@3 D ~@6>".pickRestart({
  A: "~@3 c#5@5", B: "d#5", C: "c#5", D: "~@5 c#5@10 ~",
})).s("gm_overdriven_guitar").gain(0.38)

// chords · acoustic guitar steel · "GUITAR AC"
const acoustic_guitar_steel = note(`<
  ~@4 A@2 B@2 C D C D C D C D E F E F C D F@3 G H D C D E F E F C D F@2 I@3 J K J I J K J C D F L@2 D F@2 K M N@3 C D C
  D E F E F C D F@2 I@3 J K J I O P@2 C D F L@2 D F@2 K M N@2 Q R Q R Q R Q R Q R S T@2 R S@2 U V Q R Q R Q R Q W@5
>`.pickRestart({
  A: "[b3 ~@13 e4@3 ~@5 b3@10, ~ f#3@3 ~ f#3@3 ~ e3@7, ~@4 b3@5 ~@3 b3@6 ~@2 a3@12, ~@3 f#4@3 ~@10]/2",
  B: "[b3 ~@6 e4@8 ~, ~ f#3@3 ~ f#3@10 ~, ~@4 b3@5 ~@3 b3@18 ~@2, ~@3 f#4@3 ~@10]/2", C: "[b3,d4,f#4]!8",
  D: "[a3,b3,e4]!8", E: "[a3,d4,e4]!8", F: "[g3,d4,e4]!8",
  G: "[g3,d4,f#4]@2 [g3,d4,f#4]@2 [g3,d4,f#4]@2 [g3,d4,f#4]@2 [g3,d4,f#4]!5 ~ [g3,d4,f#4] ~", // Gmaj7
  H: "[b3,d4,f#4] ~ [b3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4,f#4]@2", // Bm
  I: "[a3,d4,f#4]!8", J: "[a3,c#4,e4]!8", K: "[g3,b3,g4]!8",
  L: "[[g3,d4,e4]!5 e4 ~@2 [g3,d4,f#4]!8, ~@5 [a3,b3]@4 ~@7]/2", M: "[g3,d4,e4]!4 [a3,c#4,e4]!4", N: "[g3,d4,f#4]!8",
  O: "[g#3,b3,e4]!8", P: "[d4@3 d4 ~@2 d4 ~ [a3,c#4,e4]!8, g4@4 ~@2 [g3,b3]@3 ~@7, b3 ~@2 [a3,f#4]@4 ~@9]/2",
  Q: "[d#4,f#4,a#4]!8", R: "[c#4,d#4,g#4]!8", S: "[b3,f#4,g#4]!8",
  T: "[[b3,f#4,g#4]!5 g#4 ~@2 [b3,f#4,a#4]!8, ~@5 [c#4,d#4]@4 ~@7]/2", U: "[b3,d#4,b4]!8",
  V: "[b3,f#4,g#4]!4 [c#4,f4,g#4]!4", // G#m7 C#
  W: "[[c#4,d#4,g#4]@2 [c#4,d#4,g#4]@2 [c#4,d#4,g#4]@2 [c#4,d#4,g#4]@2 [c#4,d#4,g#4]@2 [c#4,d#4,g#4]@2 [c#4,d#4,g#4]@2 ~@2 f#4@61 ~@3, ~@7 [c#4,d#4,g#4] d#4 ~@31, ~@15 a#3@62 ~@3]/5", // C#sus2
})).s("gm_acoustic_guitar_steel").gain(0.31)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@60 A ~@33 B ~@7 B ~@17 A ~@4>".pickRestart({
  A: "~@5 x ~@2", B: "~@7 x",
})).gain(0.46)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@8 A B@13 C B C D C B@9 C B C E C B@2 E B@3 E C B@2 F C B@3 C B@3 G C B@2 E B@4 C H B E B I C B@3 C B J K C B@2 F C
  B@3 C B@2 L ~@30
>`.pickRestart({
  A: "~@2 x!6", B: "x!8", C: "~ x!7", D: "x!6 ~ x", E: "x!7 ~", F: "x!5 ~@2 x", G: "x!3 ~@3 x!2",
  H: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", I: "x!2 ~@6", J: "~@2 x ~@2 x ~@2", K: "~ x!3 ~@4", L: "x!4 ~@4",
})).gain(0.25)

// drums · mid tom
const mid_tom = s("mt").struct("<~@60 A ~@13 B ~@7 B ~@11 C ~@7 C ~@17 A ~@4>".pickRestart({
  A: "~ x", B: "~@7 x", C: "~@6 x ~@6 x ~@2",
})).gain(0.46)

// drums · open hat
const open_hat = s("oh").struct("<~@43 A ~@20 A ~@7 A ~@9 B ~@42>".pickRestart({
  A: "~@7 x", B: "~ x",
})).gain(0.3)

// drums · high tom
const high_tom = s("ht").struct("<~@60 [~@3 x ~@4] ~@13 [~@13 x ~@2] ~@45 [~@3 x ~@4] ~@4>").gain(0.46)

// drums · crash
const crash = s("cr").struct(`<
  ~@8 A ~@13 A B A ~ A ~@9 A B A ~ A ~@7 A ~@2 C A ~@3 A ~@4 A ~@7 A ~@5 A ~@3 A ~ D A@2 ~@2 C A ~@3 A ~@3 E ~@2 F A ~@3
  A ~@2 C A ~@5 E ~@2 F A ~@3 A ~@3
>`.pickRestart({
  A: "x", B: "~@3 x ~@4", C: "~@5 x ~@2", D: "x ~@2 x ~@2 x ~", E: "x!2 ~@2", F: "~@3 x",
})).gain(0.3)

// drums · ride bell
const ride_bell = s("rd").struct("<~@95 A B@2 C D B@2 E D B@2 C D B@4 C A B@2 C D B@2 E ~@4>".pickRestart({
  A: "~@2 x!2", B: "x!4", C: "x!3 ~", D: "~ x!3", E: "x!2 ~@2",
})).gain(0.35)

// drums · tambourine
const tambourine = s("tb").struct("<~@8 [~@3 x]!87 [x!8]!26 ~@4>").gain(0.46)

stack(
  bass, electric_guitar_clean, overdriven_guitar, acoustic_guitar_steel, kick, snare, low_tom, hihat, mid_tom, open_hat,
  high_tom, crash, ride_bell, tambourine
)

More by Paola Turci