Strudelify
Just Another Day (George Acosta remix) (feat. Jon Secada, Miguel Morejon) cover art

Jon Secada

Just Another Day (George Acosta remix) (feat. Jon Secada, Miguel Morejon)

Jon Secada

KeyG majorTempo108 bpm
0:00/0:00
// Just Another Day (George Acosta remix) (feat. Jon Secada, Miguel Morejon) — Jon Secada
// 108 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 103 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(108/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 · piano · "Piano Lead"
const piano = note(`<
  ~@2 A@2 B@4 C@2 D@2 E F G@2 H@3 ~ C@2 D@2 E F D@2 E F ~@2 I@2 ~@2 I@2 ~@17 G@2 H@3 ~ C@2 D@2 E F D@2 E F ~@2 I@2 ~@2
  I@2 ~@16 A@2 B@4 J@2
>`.pickRestart({
  A: "[a4 b4@2 g4@13]/2", B: "[a4 b4@2 g4@3 b4 a4@2 g4@2 f#4@3 d4 e4@3 g4 a4@13]/4",
  C: "[e4@2 d4 c4@3 g3 b3@3 g3 b3 d4@4]/2", D: "[a4@3 g4@2 b4 g4 f#4@9]/2", E: "b4!2 a4 g4@4 f#4", F: "f#4 g4 b4 g4@5",
  G: "[a4 b4 e4 g4@8 ~@5]/2", H: "[a4 b4 e4 g4@3 b4 a4@3 g4 f#4@3 d4 e4@2 e4@3 ~@4]/3", I: "[e4@2 g4 a4@13]/2",
  J: "[e5@2 d5 c5@3 g4 b4@3 ~@4 g5@2]/2",
})).s("gm_piano").gain(0.4)

// chords · piano
const piano_2 = note(`<
  ~@2 A@6 B@2 C@2 D E F@2 G@4 H@2 I@2 J K I@2 J L M N O P Q@2 R@2 S T@2 U@2 V@2 W S T@2 U@2 X@2 Y Z F@2 G@4 H@2 I@2 J K
  I@2 J L M N O P Q@2 R@2 S T@2 U@2 V@2 W S T@2 U@2 X@2 AA AB AC@5 AD@2
>`.pickRestart({
  A: "[[b3,e4]@6 [b3,e4]@22 b3 g4 ~@2 b3@6 [b3,d4]@6 e4@10 d4@6 ~@4 e4@24 [c4,e4] g3@3 [c4,e4,g4]@4, ~@15 e4@4 ~@12 c4@13 ~@4]/6", // E5 Bm C
  B: "[g3@2 b3 e3@3 g3@10]/2", C: "[[b3,e4]@10 [b3,e4]@4 [a3,d4]@14 a3 d4 f#4 a4]/2", D: "[b3,e4]@3 [b3,e4]@4 ~",
  E: "[a3,d4]@3 [b3,d4]@5", // D5 Bm
  F: "[e2@2 g2 b2 ~@4 e2@3 e3@2 b2 g2 d2 e2@3 e2 e3@2 [e2,g3]@5 [g2,b3]@2 [b2,e4] [e3,g4]@2, [b3,e4]@3 [b3,e4]@8 ~@5, ~ e3 ~@6]/2", // Em G E5 Em E5
  G: "[g2@3 g2 g3@2 g2@4 [g2,g3] ~@3 g2@2 d2@3 d2 d3@2 d2@4 [d2,d3] ~ d4@2 d2@2 c2@2 e2 g2 c3@4 [c2,e4,g4]@2 ~ c3@2 a2 g2 e2 c2@3 c2 c3@2 c2@4 [c2,c3,c4] d4 [c4,e4] g4 [e4,a4] c5, [b3,d4]@3 [b3,d4]@3 e4@5 d4@3 ~ c4@2 c4@3 ~ [c4,e4]@7 ~@3 c2]/4", // G D C A5 Bm C
  H: "[[c2,g3]@3 c2 [g2,b3]@2 c2@4 [c2,c3] ~@3 c2@2 g2@3 g2 g3@2 g2@4 [g2,g3] ~@3 g2@2, ~@3 e3@3 g3@4 ~@6]/2", // C5 G C G
  I: "[e2@3 d2 e3@2 e2@4 [b3,e4]@4 d2@2 d2@3 d2 e3@2 e2@4 [d2,d3] ~ a3 d4 f#4 a4, [b3,e4]@10 [d2,d3] ~@3 [a3,d4]@14 ~@2 d2@2]/2", // E5 D E5 D D5
  J: "c2@3 c2 c3@2 c2@4 [c2,c3] ~@3 c2@2, [b3,e4]@3 [b3,e4]@4 ~", // C E5
  K: "d2@3 d2 d3@2 g2@4 [g2,g3] ~@3 d2@2, [a3,d4]@3 [b3,d4]@5", // G D5 Bm
  L: "d2@3 d2 d3@2 g2@4 [g2,g3] ~ [b3,g4] d4 [d2,g3,b3]@2, [a3,d4]@3 [b3,d4]@3 ~@2", // G Em G D5 Bm
  M: "[d2,f#3]@3 d2 [a2,d3]@2 d2@4 [d2,d3] ~@3 [d2,a3]@2, ~@3 g3@4 ~", // D D5 D D5
  N: "[d2,d3]@2 ~ d2 [d3,g3]@2 [d2,b3]@4 [d2,d3] ~ d3@2 [d2,g3,c4]@2, ~ f#3 ~@3 f#3 ~@2", // D G5 G D Csus2
  O: "[c2,g4,c5,e5]@2 ~ c2 [c3,g4,c5,e5]@2 c2@4 [c2,c3] ~ e5@2 [g2,a4,c5,a5]@2, ~ [a4,d5,g5] ~ [a4,d5,g5]@3 ~@2", // C Am7 Dsus4
  P: "c2@3 c2 c3@2 ~@2 [e4,c5] a4 [c2,c3,g4] e4 [e3,c4] b3 a3 g3, [g4,c5,e5,g5] ~, ~@3 c2@2 ~@2 c2", // C C5 C
  Q: "[[d2,f#3]@3 d2 [a2,d3]@2 [d2,g3]@4 [d2,d3] ~ d3@2 d2@2 d2@2 ~ d2 [d3,g3]@2 [d2,b3]@4 [d2,d3] ~ d3@2 [d2,f#4,a4,d5]@2, ~@5 f#3 ~ [g3,a3]@2 f#3 ~@3 f#3 ~@2]/2", // D D5 G5 D G5 G D Gsus2
  R: "[[c2,g4,c5,e5]@2 ~ c2 [c3,g4,c5,e5]@2 [c2,a4,d5,g5]@4 [g4,c5,e5]@2 ~@2 a5 a#5 [c2,a5]@2 ~ c2 [c3,g5]@2 [c2,c5,e5,g5]@4 [g4,c5,e5]@2 ~@2 [c2,g4]@2, ~@2 [a4,d5,g5]@2 ~@6 [c2,c3] ~@3 [c5,e5]@4 [c5,e5,a5]@2 ~@12, ~@14 g2@2 ~@10 [c2,c3] ~@5]/2", // C Csus2 C F C5 C C5 Dsus4 …
  S: "g2@3 g2 g3@2 g2@3 d4 [g2,g3,e4] g4 a4 [g4,b4] d5 [g4,g5], [g4,b4,d5,g5]@4 ~@3 g2", // C G
  T: "[d2@3 d2 d3@2 d2@4 [d2,d3] ~ [a4,g5]@2 d2@2 e2@3 e2 [e3,g4,b4,e5]@2 [e2,g4,b4,e5]@4 [g4,b4,e5]@2 ~ b2 e2@2, [a4,d5,f#5,a5]@12 ~@2 [b4,d5,f#5]@6 ~@6 [e2,e3] ~@5]/2", // D A7 Em D Bm E
  U: "[[b1,d4,f#4,b4,d5]@2 ~ b1 [b2,d4,f#4,b4,d5]@2 [d4,f#4,b4,d5]@2 ~@2 [b1,b2] ~ [d4,b4]@2 b1@2 a1@3 a1 [a2,e4,b4]@2 a1@4 [a1,a2] ~ [a4,c5,g5] e5 [a2,e4,a4,c5]@2, ~ [d4,f#4,b4,d5] ~ b1@2 ~@11, ~@4 [d4,f#4,b4,d5]@2 ~ [c4,f#4,a4]@3 ~ [c4,e4,g4]@3 ~@2]/2", // Bm B G Asus2 A Am7 Am Bm …
  V: "[[g2,d4,g4,b4,d5]@2 ~ g2 [g3,d4,g4,b4,d5]@2 [d4,g4,b4,d5]@2 ~@2 [g2,g3] ~ [d4,g4,c5]@2 g2@2 d2@2 ~ d2 d3@2 ~@4 [d2,d3] ~ d4 e4 [a2,d4,f#4]@2, ~ [d4,g4,b4,d5] ~ g2@2 ~@4 [d4,f#4]@3 [d4,f#4]@2 ~@2, ~@4 [d4,g4,b4,d5]@2 ~ [d4,g4,b4]@2 a4@5 ~@2, ~@11 d2@2 ~@3]/2", // G Csus2 D G D G
  W: "[d2,d4,f#4,a4]@3 d2 [a2,d3]@2 [d2,g3,c4]@4 [d2,d3] ~@3 d2@2, ~@5 g3 d3@2", // D D5 Csus2 D
  X: "[[g2,d4,g4,b4,d5]@2 ~ g2 [g3,d4,g4,b4,d5]@2 [d4,g4,b4,d5]@2 ~@2 [g2,g3] ~ [d4,g4,b4]@2 g2@2 d2@2 ~ d2 d3@2 d2@4 [d2,d3] ~ d4 a3 [a2,f#3]@2, ~ [d4,g4,b4,d5] ~ g2@2 ~@11, ~@4 [d4,g4,b4,d5]@2 ~ [g4,b4,e5]@2 [f#4,a4,d5]@5 ~@2]/2", // G D G Em D
  Y: "[d2,d3]@2 ~ d2 [d3,g3]@2 [d2,b3]@4 [d2,d3] ~ d3@2 [a2,f#4,a4,d5]@2, ~ f#3 ~@3 f#3 ~@2", // D G5 G D
  Z: "g5@2 g5 d2 ~ g5 g5@2 ~@2 [d2,d3] ~@3 a2@2, [d2,a4,d5]@3 g5@2 ~@11, ~ [a4,d5] [a4,d5,f#5]@2, ~@2 d3 d2@2 ~@3", // D D5 D
  AA: "[d2,d3]@2 ~ d2 [d3,g3]@2 [d2,b3]@4 [d2,d3] ~@3 d2@2, ~ f#3 ~@3 a3 d3@2", // D G5 G D
  AB: "e2@3 e2 e3@2 e2@4 [e2,e3] ~@3 e2@2, [b3,e4]@3 [b3,e4]@5", // E E5
  AC: "[[e2,b4,e5,g5]@2 g2 b2 e3@2 [b2,e4,g4,d5]@2 ~ b4 a4 [e3,g4] b4 a4 g4 ~ g2@3 g2 g3@2 g2@4 [g2,g3] ~@3 g2@2 d2@3 d2 d3@2 d2@4 [d2,d3] ~@3 d2@2 c2@2 e2 g2 c3@4 c2@3 c3@2 a2 g2 e2 c2@3 c2 c3@2 ~@2 [c4,e4] ~ [c2,c3] ~@3 c2@2, ~@3 [g4,b4,e5]@3 ~@2 e2@3 ~ e2@2 e2@2 b3@6 [b3,d4]@6 ~@18 c4@26 ~ g3@3 ~@4, ~@15 e4@7 ~@6 e4@10 d4@6 ~@4 e4@24 ~@4 [c4,e4,g4]@4, ~@35 c2@2 ~@3]/5", // Em Em7 Em G D C Em Bm …
  AD: "[[c2,g4]@3 c2 [g2,b4]@2 c2@4 [c2,c3] ~ g4@2 c2@2 g2@2 [b3,d4] e4 g4 ~@4 d5 [b2,e5]@2 [g2,a4,b4,d5,e5]@4, ~@3 e4@3 ~ g4@2 g3 b3 g3 d3 ~@3, ~@21 [d4,g4,b4]@2 [g4,b4,d5]@2 ~@7]/2", // C5 G C Bm E5 Em7 G
})).s("gm_piano").gain(0.4)

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

// drums · kick
const kick = s("bd").struct("<[x ~@2 x ~@2 x ~@3 x ~@3 x ~]!102 [x ~@2 x ~@2 x ~@3 x ~ x ~@3]>").gain(0.32)

// drums · snare
const snare = s("sd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A@2 B A B
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A@2
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x!2 ~@2",
})).gain(0.32)

// drums · triangle
const triangle = s("triangles:35").struct("<[x!8]!102 [x!7 ~]>").gain(2.79)

stack(piano, piano_2, string_ensemble_1, kick, snare, triangle)

More by Jon Secada