Strudelify

El Bimbo

Paul Mauriat

KeyA minorTempo180 bpm
0:00/0:00
// El Bimbo — Paul Mauriat
// 180 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 104 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/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.

// other · flute
const flute = note(`<
  A B C@2 D E F G H@3 G I J@2 K L M N I O P@2 G H@3 G I J@2 K L M N I O Q ~@13 R S T U V W@3 G H@3 G I J@2 K L M N I O
  X@2 ~@12 R S T U V D E D E Y Z AA AB AC AD@2 AE
>`.pickRestart({
  A: "e4@6 d4 e4", B: "f4@6 e4 d4", C: "e4/2", D: "e5@6 d5 e5", E: "f5@6 e5 d5", F: "e5@3 e4", G: "c5 b4 a4 e4",
  H: "[c4@11 e4]/3", I: "g4@3 f4", J: "[f4@7 d4]/2", K: "e4 f4 g4 a4", L: "c5@3 b4", M: "b4@3 a4", N: "a4@3 g4",
  O: "f4@3 e4", P: "[e4@5 ~@2 e4]/2", Q: "e4", R: "~@6 a4 b4", S: "c5@6 b4 c5", T: "c#5@6 b4 c#5", U: "d5@6 c#5 d5",
  V: "d#5@6 c#5 d#5", W: "[e5@9 ~@2 e4]/3", X: "[e4@5 ~@3]/2", Y: "e5@6 b4 c5", Z: "d5@6 a4 b4", AA: "c5@6 a4 c5",
  AB: "b4", AC: "a4 g#4", AD: "a4/2", AE: "a5 ~@3",
})).s("gm_flute").gain(0.36)

// other · flute
const flute_2 = note(`<
  ~@4 A B A ~@9 C D E F G H I ~@9 C D E F G J ~@14 B@3 K L M N ~@9 C D E F G O@2 ~@13 B@3 K@2 P K P K ~@2 Q@2 R@2 S
>`.pickRestart({
  A: "g#4@3 ~", B: "a4@3 ~", C: "a4@3 g4", D: "g4@3 f4", E: "f4@3 e4", F: "e4@3 d4", G: "d4@3 c4", H: "c4@2 b3 a3",
  I: "g#3 ~@3", J: "c4", K: "b4@3 ~", L: "g#4 a4", M: "b4 a4", N: "g#4 ~@3", O: "[c4@5 ~@3]/2", P: "d5@3 ~", Q: "d4/2",
  R: "e4/2", S: "e5 ~@3",
})).s("gm_flute").gain(0.36)

// other · flute
const flute_3 = note("<~@52 A@2 B C ~@32 A@2 B C D E D E D ~@4 F@2 G>".pickRestart({
  A: "e4", B: "f4", C: "f#4", D: "g#4@3 ~", E: "a4@3 ~", F: "c4/2", G: "c5 ~@3",
})).s("gm_flute").gain(0.36)

// other · trombone
const trombone = note(`<
  A B C D E F G ~ H@3 ~ I@3 ~ I J I J@2 K L ~ H@3 ~ I@3 ~ I J I J@2 M N O ~ P@2 Q R@3 S T U V@2 W X Y@2 C D Z ~ H@3 ~
  I@3 ~ I J I J@2 AA N O ~ P@2 Q R@3 S T U V@2 W X Y@2 AB@6 W AC@2 S AD AE
>`.pickRestart({
  A: "~ g#3@3", B: "~ a3@3", C: "g#3 a3", D: "b3 a3", E: "~@2 g#3!2 g#3@2 ~@2", F: "~@2 a3!2 a3@2 ~@2", G: "g#3@3 ~",
  H: "~@2 c4!2 ~@2 c4@2", I: "~@2 a3!2 ~@2 a3@2", J: "~@2 g3!2 ~@2 g3@2", K: "~ c4 ~@2", L: "~ d4 ~@2", M: "~ c4 ~ c4",
  N: "c4 ~ c4@2", O: "e4@3 d4", P: "[d4@7 e4]/2", Q: "f4@3 e4", R: "c4/3", S: "c4", T: "~ c4 c4@2", U: "~ b3 b3@2",
  V: "~ d4 d4@2", W: "~@2 c4!2 c4@4", X: "~@2 c#4!2 c#4@4", Y: "~@2 a3!2 a3@4", Z: "g#3 ~@3", AA: "c4 c4@2 c4",
  AB: "~@2 b3!2 b3@4", AC: "[a3@3 b3]/2", AD: "~@2 c4!2 c4@2 c4@2", AE: "c4 ~@3",
})).s("gm_trombone").gain(0.36)

// other · trombone
const trombone_2 = note(`<
  ~@8 A@3 ~ B@3 ~ B@4 ~@4 A@3 ~ B@3 ~ B@4 ~ C D ~ E@4 F@3 G H I H J K L M N ~@4 A@3 ~ B@3 ~ B@4 ~ O D ~ E@4 F@3 G H I H
  J K L M N P K P K P K@2 ~ Q R S T
>`.pickRestart({
  A: "~@2 a3!2 ~@2 a3@2", B: "~@2 f3!2 ~@2 f3@2", C: "~ g3 ~ g3", D: "g3 ~@3", E: "g#3/4", F: "a3/3", G: "g#3 g3",
  H: "~ a3 a3@2", I: "~ g3 g3@2", J: "~ g#3 g#3@2", K: "~@2 a3!2 a3@4", L: "~@2 g3!2 g3@4", M: "~@2 f3!2 f3@4",
  N: "~@2 f#3!2 f#3@4", O: "g3 g3@2 g3", P: "~@2 g#3!2 g#3@4", Q: "~ g#3", R: "a3", S: "~@2 a3!2 a3@2 a3@2",
  T: "a3 ~@3",
})).s("gm_trombone").gain(0.36)

// other · trombone
const trombone_3 = note("<~@22 [e3 ~] ~@25 [~ f3 f3@2]!3 ~@33 [~ f3 f3@2]!3 ~@17>").s("gm_trombone").gain(0.36)

// bass · tuba
const bass = note(`<
  A B C D E F G ~ H@3 I J@4 K L K L M N O ~ H@3 I J@4 K L K L M@2 P ~ Q@4 H@3 R B S T A U V W X C D O ~ H@3 I J@4 K L K
  L M@2 P ~ Q@4 H@3 R B S T A U V W X Y Z Y Z Y Z Y@3 AA H AB
>`.pickRestart({
  A: "e2", B: "d2", C: "e2 f2", D: "g2 f2", E: "e2@2 e2 ~", F: "d2@2 d2 ~", G: "e2 b2 e2 ~", H: "a2 ~ e2 ~",
  I: "a2 ~ e2@2", J: "d2 ~ a2 ~", K: "d2 ~ d2 ~", L: "g2 ~ g2 ~", M: "c2 ~ g2 ~", N: "c2 ~ g2 f2", O: "e2 ~@3",
  P: "c3 ~@3", Q: "b2 ~ e2 ~", R: "a2 ~ a2 ~", S: "g2", T: "f2", U: "a2!2", V: "g2!2", W: "f2!2", X: "b2!2", Y: "e2!2",
  Z: "d2!2", AA: "a2 c3 b2 e2", AB: "a2 ~@3",
})).s("gm_tuba").gain(0.36)

stack(flute, flute_2, flute_3, trombone, trombone_2, trombone_3, bass)

More by Paul Mauriat