Strudelify
Solo tu cover art

Brivido Caldo

Solo tu

Matia Bazar

KeyA minorTempo160 bpm
0:00/0:00
// Solo tu — Matia Bazar
// 160 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: ch 2 "Midi C1, T2" Fretless 2 -> fretless bass; ch 3 "Midi C1, T3" Square Wave -> lead 1 square
// note: Full arrangement: all 137 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · "Midi C1, T2"
const bass = note(`<
  ~ A B C D E F G H I J K L M N K L O P Q R S T U V W X Y@2 Z J AA AB AC AD AE H A B C D E F G H I J K L M N K L O P Q R
  S T U V W X Y@2 Z J AA AB AC AD AE H I J K L M N K L O P Q R S T U V W X Y@2 Z J AA AB AC AD AE H I J K L M N K L O P
  Q R S T U V W X Y@2 Z J AA AB AC AD AE H A B C D E F G H
>`.pickRestart({
  A: "f1@3 ~@3 f1 ~ c2@4 ~@2 f1 ~", B: "g1@4 ~@2 g1 ~ d2@4 ~@2 d2@2", C: "c2@4 ~@2 c2 ~ g1@4 ~@2 c2 ~",
  D: "e2@4 ~@2 e2 ~ b1@3 ~ e2@4", E: "f1@4 ~@2 f1@2 c2@4 ~@2 f1 ~", F: "g1@4 ~@2 g1 ~ d2@3 ~ g1@3 ~",
  G: "c2@4 ~@2 c2 ~ g1@3 ~ a1@3 ~", H: "c2@3 ~@13", I: "e2@3 ~@3 e2 ~ b1@3 ~@3 b1@2", J: "e2@4 ~@2 e2 ~ b1@3 ~ e2@3 ~",
  K: "a1@4 ~@2 a1@2 e2@4 ~@2 e2 ~", L: "a1@4 ~@2 a1 ~ e2@3 ~ a1@3 ~", M: "e2@4 ~@2 e2 ~ b1@4 ~@2 b1 ~",
  N: "e2@5 ~ e2 ~ b1@4 e2@3 ~", O: "f2@2 ~ f2 c2@2 ~ c2", P: "f2@3 ~@3 f2@2 c2@3 ~ f2@3 ~",
  Q: "d2@4 ~@2 d2@2 a1@4 ~@2 a1 ~", R: "d2@4 ~@2 d2 ~ a1@4 d2@2 ~@2", S: "f2@4 ~@2 f2@2 c2@4 ~@2 c2 ~",
  T: "f2@4 ~@2 f2@2 c2@3 ~ f2@3 ~", U: "d2@5 ~ d2@2 a1@4 ~@2 a1 ~", V: "d2@4 ~@2 d2@2 a1@3 ~ d2@3 ~",
  W: "g1@2 ~ g1 d2@2 ~ d2", X: "e2@4 ~@2 e2@2 b1@3 ~ e2@3 ~", Y: "[a1@4 ~@2 a1@2 e2@3 ~ a1@2 f1@16 ~@2]/2",
  Z: "e2@3 ~@3 e2@2 b1@4 ~@2 b1 ~", AA: "a1@2 ~ a1 e2@2 ~ e2", AB: "a1@4 ~@2 a1@2 e2@3 ~ a1@2 ~@2",
  AC: "f2@4 ~@2 f2@2 c2@5 ~ f2@2", AD: "g1@2 ~ g1 c2 ~ g1@2", AE: "c2@3 ~@3 c2 ~ g1@4 a1@3 ~",
})).s("gm_fretless_bass").gain(0.41)

// other · lead 1 square · "Midi C1, T3"
const lead_1_square = note(`<
  A@3 B C D@2 E@2 ~@27 A@3 B C D@2 E@2 ~@27 F G@2 H@2 I@4 J@4 K L@3 M N O@2 P@2 Q@2 R@2 S ~@28 A@3 B C D@2 E@2
>`.pickRestart({
  A: "[~@4 c5@2 ~@2 a4@2 ~@2 e4@2 d4@19 ~@3 d4 d4@2 ~ d4@4 e4@2 f4@2]/3", B: "g4", C: "g#4@8 a4@3 b4@3 ~@2",
  D: "[~@4 c5 ~@3 a4@2 ~@2 e4@2 d4@8 ~@2 d4@2 b3 ~ g3@4]/2", E: "[c4@9 ~@7]/2", F: "~@4 e4@2 g4@2 a4@3 a#4@2 b4@2 ~",
  G: "[e5@22 ~@2 a5@2 g5 ~ e5@2 d5 ~]/2", H: "[e5@2 d5@2 c5@15 ~@5 e4@3 g4@4 ~]/2",
  I: "[b4@3 ~ d5@2 b4@4 d5@2 b4@7 ~ d5@2 b4@4 a4 ~@3 a4@22 ~@4 a4@4 c5@3 d#5]/4",
  J: "[e5@6 ~ d#5 e5@2 ~ e5@11 ~@2 a4@2 c5 ~ e5 ~ d5@22 ~@4 a4@4 c5@4]/4", K: "e5@3 g5@2 ~ e5@3 ~ g5@2 e5@4",
  L: "[~ g5@2 e5@6 ~ d5@2 c5@2 d5@23 ~@3 a4@4 c5@4]/3", M: "d5@15 ~", N: "e5@13 ~@3", O: "[e5@2 d5 ~ c5 ~ d5 c5@8 ~]/2",
  P: "[b4@20 ~@4 b4@2 c5@2 b4 ~ e4 ~]/2", Q: "[c5@2 b4@2 a4@16 ~@4 a4@4 c5@2 ~ d#5]/2",
  R: "[~ e5@2 g5@4 ~ e5@3 ~ g5 d#5 e5@5 ~ g5@2 d#5@2 e5@2 g5@2 e5@2 d5@2]/2", S: "e5 d5 c5@6",
})).s("gm_lead_1_square").gain(0.41)

// drums · kick
const kick = s("bd").struct("<~ A@7 B A@19 ~ A@7 B A@7 B A@19 ~ A@7 B A@19 ~ A@7 B A@19 ~ A@7 B A@7 B>".pickRestart({
  A: "x ~@2 x!2 ~@2 x", B: "x",
})).gain(0.4)

// drums · rim
const rim = s("rim").struct("<~ A@7 ~ A@19 ~ A@7 ~ A@7 ~ A@19 ~ A@7 ~ A@19 ~ A@7 ~ A@19 ~ A@7 ~ A@7 ~>".pickRestart({
  A: "~@2 x!2 ~@2 x ~",
})).gain(0.35)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@7 B A@18 C ~ A@7 D A@7 B A@18 C ~ A@7 D A@18 C ~ A@7 D A@18 C ~ A@7 D A@7 B
>`.pickRestart({
  A: "x!8", B: "x", C: "x!7 ~", D: "x ~@4 x ~@2",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct("<~@27 A ~@8 B ~@26 A ~@8 B ~@18 A ~@8 B ~@18 A ~@8 B ~@8>".pickRestart({
  A: "~@7 x", B: "~@3 x",
})).gain(0.45)

stack(bass, lead_1_square, kick, rim, hihat, open_hat)

More by Matia Bazar