Strudelify

Innamorare tanto

883

KeyG majorTempo131 bpm
0:00/0:00
// Innamorare tanto — 883
// 131 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 130 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(131/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 · bandoneon · "Fisarmonica"
const bandoneon = note(`<
  ~@40
  [g4@2 d5@2 g4 d5@2 g4 d5@2 g4 c5@2 g4 c5@2]!8
  ~@24
  [g4@2 d5@2 g4 d5@2 g4 d5@2 g4 c5@2 g4 c5@2]!16
  ~@24
  [g4@2 d5@2 g4 d5@2 g4 d5@2 g4 c5@2 g4 c5@2]!16
  ~@2
>`).s("gm_bandoneon").gain(0.49)

// other · overdriven guitar · "Guitar"
const overdriven_guitar = note(`<
  ~@24 A@6 B C D@2 E@14 F@4 G H F@6 G H@2 I J@6 B C D@2 E@14 ~@8 K@8 J@6 B C D@2 E@14 L@2
>`.pickRestart({
  A: "[d5@6 b4 e5]/2", B: "[d2,f#2,a2,d3], d5 ~@3", C: "[c2,e2,g2,c3] [d2,f#2,a2,d3]",
  D: "[g3@2 d4@2 g3 d4@2 g3 d4@2 g3 c4@2 g3 c4@2 g3@2 d4@2 g3 d4@2 g3 d4@2 g3 c4@2 g3 c4@2, [g1,b1,d2,g2]]/2", // G
  E: "g3@2 d4@2 g3 d4@2 g3 d4@2 g3 c4@2 g3 c4@2", F: "[[g2,g3]@3 [f2,f3]]/2", G: "[f2,f3]", H: "[c2,c3]", I: "[g2,g3]",
  J: "[[e2,e3]@4 ~@2 b4 e5, d5@3 ~, ~ [c2,c3]]/2", K: "g2@2 g2@2 [g2,g3]@2 g2 g2@2 g2 g2@2 g3@4, ~@6 g2 ~", L: "g2/2",
})).s("gm_overdriven_guitar").gain(0.39)

// chords · drawbar organ
const drawbar_organ = note("<A@4 B C A@2 ~@122>".pickRestart({
  A: "[[g4,d5]@11 ~ [g4,c5]@3 ~]/2", B: "[f4,c5]@13 ~@3", C: "[g4,c5]@13 ~@3",
})).s("gm_drawbar_organ").gain(0.48)

// chords · rock organ · "Drawbar organ"
const rock_organ = note(`<
  ~@23 A B@6 C D E@16 F@4 G H F@6 G H I@2 J@6 ~@2 K@2 L@3 M N O K@2 L@3 M N O P Q P Q R S T U P Q P Q G H F@2 B@6 V W
  K@2 L@3 M N O K@2 X@3 M N O Y@2
>`.pickRestart({
  A: "~@13 d#2 [f2,f#2,g#2,a#2,b2,c#3] [d#3,f3,f#3,g#3,a#3,b3,c#4], ~@6 [c#4,f4,g#4] ~, ~@13 c#2@2 ~", // C#7 D#m7 C#
  B: "[d6@22 ~@2 b5@3 ~ e6@3 ~]/2", C: "d6@13 ~@3", D: "c6@3 ~ d6@3 ~", E: "g5@2 d6@2 g5 d6@2 g5 d6@2 g5 c6@2 g5 c6@2",
  F: "[[g5,d6]@11 ~ [g5,c6]@3 ~]/2", G: "[f5,c6]@13 ~@3", H: "[g5,c6]@13 ~@3", I: "[[g5,d6]@29 ~@3]/2",
  J: "[b5@13 ~@3 c6@13 ~@3 b5@13 ~@3 c6@13 ~@3 b5@13 ~@3 c6@13 ~@3, [e5,g5]@31 ~]/6", // Em
  K: "[[g5,b5,d6]@21 ~ [d5,f#5,a5]@8 ~@2]/2", L: "[[g5,b5,d6]@21 ~ [d5,f#5,a5]@6 ~@2 [e5,g5,b5]@15 ~@3]/3",
  M: "[c5,e5,g5]@6 ~@4 [d5,f#5,a5]@5 ~", N: "[g5,b5,d6]@13 ~@3", O: "[d5,f#5,a5]@5 ~ [c5,e5,g5]@8 ~@2",
  P: "[g5,b5,d6]@3 ~@5 [g5,b5,d6]@3 ~@5", Q: "[g5,b5,d6]@3 ~@5 [g5,c6,d6]@3 ~@5",
  R: "[f5,a5,c6]@3 ~@5 [f5,a5,c6]@3 ~@5", S: "[c5,g5,c6]@3 ~@5 [c5,g5,c6]@3 ~@5",
  T: "[g5,d6]@2 [g5,d6]@3 ~ [g5,d6]@2 [g5,d6]@2 [g5,d6]@2 [g5,d6]@2 [g5,d6]@2", // G5
  U: "[g5,d6]@2 [g5,d6]@2 [g5,d6]@2 [g5,d6]@5 ~@5", V: "[d5,f#5]@13 ~@3", W: "c5@3 ~ d5@3 ~",
  X: "[[g5,b5,d6]@21 ~ [d5,f#5,a5]@7 ~ [e5,g5,b5]@15 ~@3]/3", Y: "[g5@19 ~@13]/2",
})).s("gm_rock_organ").gain(0.33).pan(0.6)

// chords · church organ
const church_organ = note(`<
  A@4 B C A@2 ~@8 A@4 B C D@2 E F E F E F ~@2 G@8 H@2 I@3 J K L ~@8 A@4 B C@2 ~@67
>`.pickRestart({
  A: "[[g4,d5]@11 ~ [g4,c5]@3 ~]/2", B: "[f4,c5]@13 ~@3", C: "[g4,c5]@13 ~@3", D: "[[g4,d5]@29 ~@3]/2",
  E: "[e4,g4,b4]@13 ~@3", F: "[e4,g4,c5]@13 ~@3", G: "g4@2 d5@2 g4 d5@2 g4 d5@2 g4 c5@2 g4 c5@2",
  H: "[[g4,b4,d5]@21 ~ [d4,f#4,a4]@8 ~@2]/2", I: "[[g4,b4,d5]@21 ~ [d4,f#4,a4]@6 ~@2 [e4,g4,b4]@15 ~@3]/3",
  J: "[c4,e4,g4]@6 ~@4 [d4,f#4,a4]@5 ~", K: "[g4,b4,d5]@13 ~@3", L: "[d4,f#4,a4]@5 ~ [c4,e4,g4]@8 ~@2",
})).s("gm_church_organ").gain(0.48)

// other · rock organ · "Church organ"
const rock_organ_2 = note("<~@63 A B@6 C ~ D@16 E F E F G H I J E F E F K L M N B@6 C O D@16 P@2>".pickRestart({
  A: "~@13 d#2 [f2,f#2,g#2,a#2,b2,c#3] [d#3,f3,f#3,g#3,a#3,b3,c#4], ~@6 [c#4,f4,g#4] ~, ~@13 c#2@2 ~", // C#7 D#m7 C#
  B: "[d5@22 ~@2 b4@3 ~ e5@3 ~]/2", C: "[d4,d5]@13 ~@3", D: "g4@2 d5@2 g4 d5@2 g4 d5@2 g4 c5@2 g4 c5@2",
  E: "d5@3 ~@5 d5@3 ~@5", F: "d5@3 ~@5 c5@3 ~@5", G: "f5@3 ~@5 f5@3 ~@5", H: "g5@3 ~@5 g5@3 ~@5",
  I: "[g4,b4,d5]@3 ~ [g4,b4,d5]@3 ~", J: "[g4,b4,d5]@3 ~ [g4,c5,d5]@3 ~", K: "[f4,a4,c5]@3 ~@5 [f4,a4,c5]@3 ~@5",
  L: "[c4,g4,c5]@3 ~@5 [c4,g4,c5]@3 ~@5", M: "[g4,d5]@2 [g4,d5]@3 ~ [g4,d5]@2 [g4,d5]@2 [g4,d5]@2 [g4,d5]@2 [g4,d5]@2",
  N: "[g4,d5]@2 [g4,d5]@2 [g4,d5]@2 [g4,d5]@5 ~@5", O: "[c4,c5]@3 ~ [d4,d5]@3 ~", P: "[g4@19 ~@13]/2",
})).s("gm_rock_organ").gain(0.33).pan(0.6)

// bass · synth bass 1 · "Basso"
const bass = note(`<
  A@4 B C A@6 B C A@6 B C A@2 D C D C D C E F A G A G H I A J A G A G H I A J A@4 B C A@6 B C A@2 D C D C D C E F A G A
  G H I A J A G A G H I A J K@14 L M D C D C D C E F A G A G H I A J A G A G H I A J A N
>`.pickRestart({
  A: "g1 ~ g2!2 g1 ~ g2!2 g1 ~ g2!2 [g1,g2] g2!3", B: "f1 ~ f2!2 f1 ~ f2!2 f1 ~ f2!2 [f1,f2] f2!3",
  C: "c2 ~ c3!2 c2 ~ c3!2 c2 ~ c3!2 [c2,c3] c3!3", D: "e1 ~ e2!2 e1 ~ e2!2 e1 ~ e2!2 [e1,e2] e2!3", E: "[d1,d2]",
  F: "[c1,c2] ~ [d1,d2] ~", G: "g1 ~ g2!2 g1 ~ g2!2 d2 ~ d3!2 [d2,d3] d3!3",
  H: "e2 ~ e3!2 e2 ~ e3!2 e2 ~ e3!2 [e2,e3] e3!3", I: "c2 ~ c3!2 c2 ~ c3!2 d2 ~ d3!2 [d2,d3] d3!3",
  J: "d2 ~ d3!2 d2 ~ d3!2 c2 ~ c3!2 [c2,c3] c3!3", K: "g1 ~@7", L: "g1 ~@3 g1 ~@3", M: "g1 ~ g1 ~ g1 ~ g1 ~",
  N: "g1 ~@15",
})).s("gm_synth_bass_1").gain(0.54)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  A@4 B C A@6 B C A@6 B C A@2 D C D C D C E F G@4 H I J K G@4 H I J K A@4 B C A@6 B C A@2 D C D C D C E F G@4 H I J K
  G@4 H I J K A@4 B C A@6 B C A@2 D C D C D C E F G@4 H I J K G@4 H I J K L@2
>`.pickRestart({
  A: "[d4@3 c4, g3]/2", B: "[f3,c4]", C: "[c3,g3]", D: "[e3,b3]", E: "[d3,f#3,a3,d4]",
  F: "[c3,e3,g3,c4] ~ [d3,f#3,a3,d4] ~", G: "[[g2,g3]@3 [d3,d4]]/2", H: "[e3,e4]", I: "[c3,c4] [d3,d4]", J: "[g2,g3]",
  K: "[d3,d4] [c3,c4]", L: "[g2,g3]/2",
})).s("gm_string_ensemble_1").gain(0.42)

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

// drums · clap
const clap = s("cp").struct("<~@88 [x!4]!16 ~@26>").gain(0.56)

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

// drums · hihat
const hihat = s("hh").struct("<A@7 B C@8 D@14 C@2 D@39 C D@16 E@16 D@24 A ~>".pickRestart({
  A: "x!3 ~ x ~ x!6 ~@2 x!2", B: "x!3 ~ x ~ x!2 ~@8", C: "~@4 x!9 ~@3", D: "x!3 ~ x!9 ~ x!2", E: "x!3 ~ x!9 ~ x ~",
})).gain(0.56)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@8 [x!4 ~@9 x!3]!120 ~@2>").gain(0.24)

// drums · open hat
const open_hat = s("oh").struct("<A@7 B ~@8 A@14 ~@2 A@39 ~ A@57 ~>".pickRestart({
  A: "~ x ~ x", B: "~ x!2 ~",
})).gain(0.56)

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

stack(
  bandoneon, overdriven_guitar, drawbar_organ, rock_organ, church_organ, rock_organ_2, bass, string_ensemble_1, kick,
  clap, snare, hihat, hihat_soft, open_hat, splash
)

More by 883