Strudelify

Bugiardo e incosciente

Mina

KeyA minorTempo68 bpm
0:00/0:00
// Bugiardo e incosciente — Mina
// 68 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 103 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(68/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 · "Bass"
const bass = note(`<
  ~@27 A B C B D E F B A B C B D E F B G H I H G H J ~ A B C B D E F B K L M N O P Q R G H I H G H J ~@8 K S M N O P Q R
  ~@13
>`.pickRestart({
  A: "d2@15 ~", B: "a1@15 ~", C: "a#1@15 ~", D: "g1@7 ~", E: "f1@15 ~", F: "e1@15 ~", G: "g2@2 a2!2", H: "d2!2",
  I: "e2 a1", J: "e2@2 a1!2", K: "d2@7 ~ d2@4 d2@4", L: "a1@7 ~ a1@3 ~ a1@3 ~", M: "a#1@8 a#1@3 ~ a#1@4",
  N: "a1@7 ~ a1@3 ~ a1@4", O: "g1@11 ~ g1@4", P: "f1@2 f1!2", Q: "e1 e2", R: "a1@8 a1@4 a2@3 ~",
  S: "a1@8 a1@3 ~ a1@3 ~",
})).s("gm_fretless_bass").gain(0.27)

// chords · acoustic guitar nylon · "Nylon gt"
const acoustic_guitar_nylon = note(`<
  A B A B A B C B D E F G A B C B D E F G H I J K L I M A B C B D E F G A B C B D E F G H I J K L I M N A B C B D E F G
  A B C B D E F G H I J K L I M A B C B D E F G A B C B D E F G ~@7 O@6
>`.pickRestart({
  A: "~@2 d4 [d4,e4] [a3,d4]@2 e4@2 g4@4 e4@2 d4 ~, d3", B: "~@2 c4 [g3,c4,d4] c4@2 d4@2 g4@4 d4@2 c4 ~, a2",
  C: "~@2 d4 [d4,e4] [a#3,d4]@2 e4@2 a4@4 e4@2 d4 ~, a#2", D: "a3@2 ~@2 g4@2 a3@2 ~@2 f4@2 a3@3 ~, ~ a#3@2 ~ a#3@2 ~@2",
  E: "a3@3 ~@3 a3@2 ~@4 a3@2 ~@2", F: "g#3@3 ~@3 g#3@2 ~@4 g#3@2 ~@2", G: "~@2 f4 e4 d4 c#4 a#3 a3, g3@3 ~",
  H: "a#3 d4 a#3 a#4 a4 g4 f4 g4", I: "a4 a3 d4 f4 g4 a4 c5 d5", J: "f5 d5 a#4 f4 e4 a4 g4 a4",
  K: "g4 f4 e4 a4 f#4 e4 d4 c4", L: "a#3 d4 g4 a#4 a4 g4 f4 g4", M: "f5 d5 a#4 f4 e4 d4 c#4 a#3",
  N: "a3 d4 a3 f3 d3 f3 d3 a2",
  O: "[~@10 d4 [d4,e4] [a3,d4]@2 e4@2 g4@4 e4@2 d4 ~@3 c4 [g3,c4,d4] c4@2 d4@2 g4@4 d4@2 c4 ~@3 d4 [d4,e4] [a3,d4]@2 e4@2 g4@4 e4@2 d4 ~@3 c4 [g3,c4,d4] c4@2 d4@2 g4@4 d4@2 c4 ~ [a3,e4,g4]@16 ~@8, ~@8 d3@16 a2@16 d3@16 a2@15 d3@16 ~@9]/6", // Dsus2 D5 Gsus4 Dsus2 D5 Gsus4 A7
})).s("gm_acoustic_guitar_nylon").gain(0.21).pan(0.4)

// chords · acoustic guitar steel · "Steel gt"
const acoustic_guitar_steel = note(`<
  A B A B A B C B D E F G A B C B D E F G H I J K H I L A B C B D E F G A B C B D E F G H I J K H I L M A B C B D E F G
  A B C B D E F G H I J K H I L A B C B D E F G A B C B D E F G ~@7 N@5 ~
>`.pickRestart({
  A: "~ a4, d3, ~ a3@7, ~ c4@3, ~@3 e4@5", B: "~ d4, a2, ~ e3@7, ~ g3@3, ~@3 a3@5",
  C: "~ d4, a#2, ~ f3@7, ~ g3@3, ~@3 a3@5", D: "~@2 f3 g3 ~ f4 ~ e4, g2, ~@2 d3@13 ~, ~@2 a#3 a3",
  E: "~@2 d3 ~ a3@4, f2, ~ c3@7, ~@3 e3@5", F: "~ g#3, e2, ~ b2@7, ~ d3@3, ~@3 e3@5",
  G: "~ c#4, a2, ~ e3@7, ~ g3@3, ~@3 a3@5", H: "g2 ~@2 a#3 ~@3 e4, ~ g2@3 a2@4, ~@2 d3@2 ~ g3@3, ~@3 c#4",
  I: "~@7 a3, a2@5 a3 f4@2, ~ d3@7, ~ f3@3, ~@3 a3 d4@4", J: "~@3 f4 ~@3 e4, e2 a2, ~ f3@3 ~ g3@3, ~ a#3 e4 c#4",
  K: "~@7 c4, a2, ~ d3@7, ~ f3 f#3@2, ~@3 a3 c4 a3 f#4@2", L: "~@3 f4 e4 d4 c#4 a#3, e2 a2, ~ f3@3 ~ g3@3, ~ a#3 ~@2",
  M: "~@7 d4, a2, ~ d3@7, ~ f3 f3@2, ~@3 a3 d4 a3 f4@2",
  N: "[~@2 a4 ~ d4 ~ a4 ~ d4 ~, ~@4 d3@8 a2@8 ~@3 e4@5 ~@3 a3@5 ~@4, ~@5 a3@7 ~ e3@7 d3@8 a2@8 ~@4, ~@3 c4@3 ~ g3@3 ~ c4@3 ~ g3@3 ~@2, ~@7 e4@5 ~@3 a3@5 ~ a3@7 ~ e3@7 ~@4]/5",
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.7)

// chords · french horn · "Fr.horn"
const french_horn = note(`<
  ~@35 A B C D ~@4 E F G ~ E F G ~ A B C D ~@4 A B C D ~@4 E F G ~ E F G ~@8 A B C D ~@11 H@6
>`.pickRestart({
  A: "~@4 [d4,e4,a4] ~ [d4,e4,a4]@10", B: "~@6 [d4,e4,g4]@7 ~@3", C: "~@4 [d4,e4,a4] ~ [d4,e4,a4]@9 ~",
  D: "~@4 [g3,c4,e4] ~ [g3,c4,e4]@9 ~", E: "~@10 a3 g3 f3 e3 d3 e3", F: "f3@8 ~@2 d4 c4 a#3 a3 g3 f3", G: "e3 a2",
  H: "[~@12 [d4,e4,a4] ~ [d4,e4,a4]@10 ~@4 [c4,e4,g4] ~ [c4,e4,g4]@9 ~@5 [d4,e4,a4] ~ [d4,e4,a4]@9 ~@5 [g3,c4,e4] ~ [g3,c4,e4]@9 ~ [d3,a3,e4]@15 ~@9]/6", // Dsus2 C Dsus2 C Dsus2
})).s("gm_french_horn").gain(0.23)

// other · string ensemble 2 · "Viola"
const string_ensemble_2 = note(`<
  ~@43 A B C D E F G@3 ~@7 H I H J K L M N A B C D E F O ~@16 P Q R S T U V@2 ~@3 W@2
>`.pickRestart({
  A: "a4 g4 d4 a#4 c#4@4", B: "a4 d5 a4 f4 d4@4", C: "a#3@3 a#4 a4 g4 f4 e4 d4@2 c#4@2 a#3@2 a3@2", D: "d4@8 c4@7 ~",
  E: "a#4 [g4,a4] d5 a#4 a4 g4 d4 ~ c#4@8", F: "a4@2 d5@2 ~ f4@2 ~ d4@8, ~@2 a4 ~@5",
  G: "[a#3@3 a#4 a4 g4 f4 e4 ~ c#4@2 a#3@2 ~@3 d4@16 ~@16, ~@8 d4@2 ~@4 a3@19 ~@15]/3", H: "~@4 d5@2 a4@2 f5@5 ~@3",
  I: "~@4 c5@2 a4@2 e5@5 ~@3", J: "~@2 e5@2 c5@2 a4@2 e5@5 ~@3", K: "~@2 f4@2 d5@2 a#4@2 f5@5 ~@3",
  L: "~@2 e4@2 c5@2 a4@2 e5@5 ~@3", M: "~ e4 b4 g#4 d5@2 ~@2", N: "~ e4 c#5 a4 e5@3 ~",
  O: "a#3@3 a#4 a4 g4 f4 e4 ~ c#4@2 a#3@2 ~ a3@2, ~@4 d4 ~@3", P: "a#4 a4 g4 f4 e4 d4 c#4 e4", Q: "[e4,g5] [d4,f5]@3",
  R: "g4 f4 e4 d4 c#4 a#3 a3 c#4", S: "d4@4 c4@3 ~", T: "a#4 a4 g4 f4 e4 d4 c#4 e4, ~@2 [e5,a5] [a5,c#6]",
  U: "[e4,g5,e6,g6] [d4,f5,d6,f6]@3", // Em Dm
  V: "[[e3,e4]@2 [f3,f4]@2 [g3,g4]@2 [a3,a4]@2 ~ [a#3,a#4]@5 [a3,a4]@10 ~@8, ~@9 [e5,c#6]@15 ~@8]/2", // E F G A A# A C#m
  W: "[~ [d2,d3,a3,c4,d4,g4]@2 ~]/2", // Dsus4
})).s("gm_string_ensemble_2").gain(0.32)

// other · viola · "Slow str"
const viola = note(`<
  ~@27 A@2 B C D E F G A@2 B C D E F G ~@8 A@2 B C D E F G A@2 B C D E F G ~@15 A@2 B C D E F G ~@13
>`.pickRestart({
  A: "[~ e4 d4 a4 e4@9 d4 c4 g3]/2", B: "e4@2 d4@2 g4@2 e4 d4", C: "c4", D: "a3 a#3 g4@6",
  E: "a3@2 d4@2 a4@8 [g4,a4] [e4,f4] [c4,d4] [a3,a#3]", F: "g#3", G: "g3@7 ~",
})).s("gm_viola").gain(0.21)

// other · piano
const piano = note("<~@39 A B C D ~@12 E F G H ~@4 A B C D ~@19 A B C D ~@13>".pickRestart({
  A: "[d6,e6] ~@15, f6@7 ~", B: "a5 d6 a6@5 ~", C: "g#6@3 e6", D: "a6@8 e7@3 ~@5, g#6 ~@15",
  E: "~ f6@11 ~@4, a#5@11 ~@5", F: "[a5,e6,g6]@3 ~", G: "~ g#6@10 ~@5, [e5,b5,e6]@3 ~", H: "[e6,a6]@15 ~, a5@5 ~@3",
})).s("gm_piano").gain(0.42)

// other · bassoon
const bassoon = note("<~@43 A B C ~ A B C ~@16 D A B C ~ A B C ~@29>".pickRestart({
  A: "~@10 a3 g3 f3 e3 d3 e3", B: "f3@9 ~ d3 c3 a#2 a2 g2 f2", C: "e2 a2", D: "a2@15 ~",
})).s("gm_bassoon").gain(0.35)

// other · flute
const flute = note("<~@73 [a#3 d4 f4 a#4 a4 g4 f4 e4 d4@2 c#4@2 a#3@2 a3@2] ~@29>").s("gm_flute").gain(0.28)

// chords · synth strings 1 · "Syn str."
const synth_strings_1 = note("<~@90 A B@2 C D E@3 ~@5>".pickRestart({
  A: "[d4,f4]@7 [c#4,e4]@8 ~, g3@15 ~", B: "[g4@4 f4@11 a#3@8 ~ c#4@7 ~, [a3,d4]@15 [e4,g4]@16 ~]/2",
  C: "g4@4 f4@3 [c4,f#4]@8 ~, a3, d4@7 ~@9", D: "[a#3,d4,g4] [g3,c#4,e4], g3 ~@3",
  E: "[g4@4 f4@11 ~ a#3@8 ~ e4@15 ~@8, [a3,d4]@15 d4@8 ~ c#4@16 ~@8, ~@2 g4@3 ~]/3", // D5
})).s("gm_synth_strings_1").gain(0.21)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@90 A B C D A E F@2 ~@5>".pickRestart({
  A: "g3 f3 e3 d3 c#3 a#2 a2 c#3", B: "d3@7 ~", C: "e3 f3 g3 a3 a#3 a3 g3 e3", D: "g3@4 f3@2 e3 f3 f#3@6 ~@2",
  E: "d3@13 ~@3", F: "[e3 d3 c#3 a#2 a2@6 ~@6]/2",
})).s("gm_string_ensemble_1").gain(0.24)

// drums · kick
const kick = s("bd").struct("<~@43 [x!2]!31 ~@23 [~ x] [x!2]!4 ~>").gain(0.4)

// drums · rim
const rim = s("rim").struct("<~@43 [~ x ~ x]!31 ~@23 [~@3 x] [~ x ~ x]!3 [~ x ~@2] ~>").gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<~@51 A ~@15 A ~@29 B ~@3 B ~>".pickRestart({
  A: "x", B: "~ x",
})).gain(0.32)

// drums · ride
const ride = s("rd").struct("<~@43 A@8 ~@8 A@15 ~@23 B A@3 C ~>".pickRestart({
  A: "x!8", B: "~@4 x!4", C: "x!5 ~@3",
})).gain(0.32)

// drums · bongos
const bongos = s("bongo:4").struct(`<
  ~@12 A ~ B ~@2 C ~ D E F E F E F ~ E F E F E F ~ F E F E F E F ~ F E F E F E F ~ F E F E F E F ~ F E F E F E F ~ F E F
  E F E F ~ A ~ B ~@2 C ~ D E F E F E F ~ F ~@7 G H I H J ~
>`.pickRestart({
  A: "~@8 x!2 ~ x!4 ~", B: "~@3 x ~@4", C: "~@5 x ~@2", D: "~ x ~@2", E: "~@11 x ~@4", F: "~@4 x ~@6 x ~@4", G: "~@3 x",
  H: "~@3 x ~@12", I: "~@3 x ~@8 x ~@3", J: "~@3 x ~@4 x ~@7",
})).gain(0.63)

// drums · bongos · soft notes
const bongos_soft = s("bongo:4").struct("<~@12 [~@10 x ~@4 x] x ~@60 [~@10 x ~@4 x] x ~@27>").gain(0.42)

// drums · bongos
const bongos_2 = s("bongo:18").struct(`<
  ~@12 A ~ B ~ C D ~ E F@3 G F@6 G F@7 G F@7 G F@7 G F@7 G F@7 G F@3 A ~ B ~ C D ~ E F@3 G F@4 ~@7 H@4 I ~
>`.pickRestart({
  A: "~@3 x ~@4", B: "~@8 x!2 ~ x!4 ~", C: "~@5 x ~@2", D: "~@7 x", E: "~@6 x ~ x!2 ~ x!4 ~", F: "x", G: "x ~@4 x ~@2",
  H: "~ x", I: "~@7 x ~@8",
})).gain(0.63)

// drums · bongos · soft notes
const bongos_soft_2 = s("bongo:18").struct("<~@14 A B ~ C ~ A ~@56 A B ~ C ~ A ~@21>".pickRestart({
  A: "~@10 x ~@4 x", B: "x", C: "~@13 x ~@2",
})).gain(0.42)

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

// drums · congas · soft notes
const congas_soft = s("conga:13").struct("<~@17 [~@3 x ~@12] ~@61 [~@3 x ~@12] ~@23>").gain(0.77)

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

// drums · congas · soft notes
const congas_soft_2 = s("conga:18").struct(`<
  ~@16 A B ~@8 C ~@6 C D ~@6 C E F ~@5 C ~@7 C D ~@6 C E F ~@5 C ~@4 A B ~@8 C E ~@8 G ~@4
>`.pickRestart({
  A: "~@8 x ~@6 x", B: "~@6 x ~@8 x", C: "~@3 x ~@4", D: "~ x ~@2 x!2 ~@2", E: "~@4 x!2 ~@2", F: "~ x ~@6",
  G: "x!2 ~@3 x ~@2",
})).gain(0.77)

// drums · congas
const congas_3 = s("conga:33").struct("<~@26 A ~@6 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@14 A ~@14>".pickRestart({
  A: "~ x",
})).gain(1.28)

// drums · congas · soft notes
const congas_soft_3 = s("conga:33").struct("<~@17 A ~@16 B ~@7 C ~@15 B ~@7 C ~@12 A ~@9 C ~@7 D E ~@4>".pickRestart({
  A: "~ x ~@2", B: "~@3 x ~@4", C: "~@6 x ~@8 x", D: "~@7 x", E: "~@7 x ~@8",
})).gain(0.77)

// drums · shaker
const shaker = s("sh").struct("<~@20 A@54 B ~@7 A@8 ~@7 C A@3 D ~>".pickRestart({
  A: "x!8", B: "x", C: "~@5 x!3", D: "x!5 ~@3",
})).gain(0.32)

// drums · triangle
const triangle = s("triangles:35").struct("<~@35 A@8 ~@17 B ~ B ~ B ~ B ~@15 A@8 ~@13>".pickRestart({
  A: "~@3 x", B: "~ x!2 ~",
})).gain(3.48)

stack(
  bass, acoustic_guitar_nylon, acoustic_guitar_steel, french_horn, string_ensemble_2, viola, piano, bassoon, flute,
// … 3 more lines

More by Mina