Strudelify

Lost in Your Eyes

Debbie Gibson

KeyC majorTempo73 bpm
0:00/0:00
// Lost in Your Eyes — Debbie Gibson
// 73 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 64 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(73/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.

// chords · piano · "Grand Piano"
const piano = note(`<
  A B C D A E A F G H I J I K I L M N I O P Q R S T U V W@2 X A Y G H I Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO
  AP AQ AR AQ AS AT AU AV AW@5
>`.pickRestart({
  A: "~@7 c4 ~@6 g4@2, c4@7 ~ c4@8, [d5,e5]@2 [d5,e5]@2 ~ g4@2 ~, ~ c5@2 c5 [c5,e5]@2 [c5,e5]@2", // Dsus2 C
  B: "~@7 c4 ~@6 f5@2, c4@7 ~ [c4,a4]@8, [a4,c5,f5]@4 [a4,c5,f5]@4 f5@5 g5@3, ~ f4@2 f4 c5@2 [c5,a5]@2, ~@5 f4@3", // F
  C: "~@7 c4 ~@6 g4@2, c4@7 ~ [c4,d5]@8, [d5,e5]@2 [d5,e5]@2 ~ g4@2 ~, ~ c5@2 c5 [c5,e5]@2 [c5,e5]@2", // Csus2 Dsus2 C
  D: "~@7 f5 [g3,g4,b4,d5]@3 c5 ~@2 b3@2, [g3,f5]@2 ~ a3, [a4,c5]@5 a4@3 ~@8, ~@4 f4@4 ~@3 e4@2 [d4,b4]@3, ~@3 c5 ~@4", // G G7 Am G
  E: "~@7 c4 a4 ~@5 f5@2, c4@7 ~ c4@8, [a4,c5,f5]@4 [a4,c5,f5]@4 f5@5 g5@3, ~ f4@2 f4 c5@2 [c5,a5]@2, ~@5 f4@3", // F
  F: "a4 ~@6 c4 a4 ~ f4@2 g4@2 g4@2, c4@7 ~ [c4,c5,f5]@4 [b3,b4,d5]@4, [c5,f5] [a4,c5,f5] ~@2, ~ f4@2 f4 ~@4", // F5 Bm F5 F
  G: "~@7 a3 e4 ~@5 e4@2, a3@7 ~ a3@8, [a4,c5,e5]!4, ~ e4@2 e4 ~ e4@2 ~", // Am
  H: "~@3 c4 ~@3 c4, f3 g3, [f4,a4,c5]!4, ~ c4@2 ~@2 c4@2 ~", // F
  I: "~@7 c3 ~@6 g3@2, c3@7 ~ c3@8, [d4,e4,g4]@2 [d4,e4,g4]@2 ~ g3@2 ~, ~ c4@2 c4 [c4,e4,g4]@2 [c4,e4,g4]@2", // Em7 C
  J: "f3@2 ~@5 c3 ~@7 b2, f2@3 a2 [g2,b3,d4]@3 d3, [a3,c4]@2 a3@2 g3 g3@3, ~@2 c3@3 c4@3 ~@3 g4@5, ~@3 f3@5 ~ d3@3 b2 f4@3", // G Am
  K: "a3 ~@6 c3 a3 ~@5 f3@2, c3@7 ~ c3@8, [c4,f4] [a3,c4,f4] [c4,f4] [a3,c4,f4], ~ f3@2 f3 ~ f3@2 ~", // F5 F F5 F
  L: "a3 ~@6 c3 ~@2 f3@2 g3@2 g3@2, c3@7 ~ [c3,a3,c4,f4]@4 [b2,b3,d4]@4, [c4,f4] [a3,c4,f4] ~@2, ~ f3@2 f3 ~@4", // F Bm F5 F
  M: "~@7 a2 e3 ~@5 e3@2, a2@7 ~ a2@8, [a3,c4,e4]!4, ~ e3@2 e3 ~ e3@2 ~", // Am
  N: "d4 ~@5 c3@2 ~@6 c3@2, f2 g2, [f3,a3,c4]!4, ~ c3@2 ~@2 c3@2 ~", // F
  O: "a#3@2 ~@5 f3 ~@6 [e3,e4,g4]@2, a#2@6 d3@2 [c3,c4,e4]@3 ~ d3@2 ~@2, [d4,f4]@4 d4@4 ~@2 e3@3 a3@3, ~@2 f3@3 f4@3 ~@3 [d4,f4]@5, ~@3 a#3@5 ~ g3@5 ~@2", // Em C Dm
  P: "[f4,a4,c5]@2 ~@2 [f4,a4,c5]@2 ~ c4 [f4,a4,c5]@4 ~@2 g3@2, f3@7 ~ g3@6 ~@2, ~ c4@2 a3 ~@2 [f4,a4,c5]@2", // F
  Q: "~@15 g3, g4@8 [c3,e5] f5 e5 d5 g3 e5 c3@2, c3@3 e4@5, e4 c4@3, c4 g3@3 c5@4", // C
  R: "~@3 [a3,a4] ~@3 g#3, [f3,c5] e3, a4@3 ~@5, f4!2 [e4,g#4,b4] [e4,g#4,b4,d5], ~ c4@3 ~ b3@3", // A F5 E E7
  S: "~@4 c4@2 [c3,a3,c4,e4]@2 [c4,e4,g4]@2 ~ [e4,g4] ~@3 g3, a2@4 c3@3 [a#3,g4], e4@6 ~@5 c4@5, [a3,c4]@3 a3@3 ~@4 g3@2 g4 a4@3, ~ e3@3 ~@2 [e4,a#4]@2", // Am C Em D# Am Edim
  T: "[f4,a4,c5]@2 ~ a3 [g3,f4,a4,c5]@2 [g3,f4,a4,c5]@2, f3 ~, ~ [c4,f4,a4,c5] ~@2", // F
  U: "~@3 g3 ~@3 c4, [e3,g4,b4] [a2,e4], e4!2 a3!2, ~ b3@3 c4@3 ~, ~@5 e3@3", // Em A5
  V: "[d3,f3,a3,d4,f4,a4] [e3,g3,b3,e4,g4,b4] c4!2, ~ [f3,a3,f4,a4,c5]", // Dm Em F
  W: "[[g2,g3,f4,a4,c5]@6 [g2,g3,f4,a4,c5]@2 [g3,g4,b4,d5]@3 ~@12 c4 ~@6 g4@2, ~@8 g2@5 d5@2 g3@7 c5@2 [c5,e5]@4 [c5,e5]@4, ~@11 [g4,b4,d5]@2 [g4,b4]@11 c4@8, ~@6 g3 g2@5 ~@4, ~@8 [c4,d5,e5] c5 [d5,e5]@2 ~ g4@2 ~]/2", // F G C G C Dsus2
  X: "~@7 c4 ~@6 f4@2, c4@7 ~ c4@8, [a4,c5,f5]!4, ~ f4@2 f4 ~ f4@2 ~", // F
  Y: "~@7 c4 ~@2 f4@2 g4@2 g4@2, c4@7 ~ [c4,a4,c5,f5]@4 [b3,b4,d5]@4, [a4,c5,f5]!2 ~@2, ~ f4@2 f4 ~@4", // F Bm F
  Z: "a2@2 a2@2 [g3,b3] [a2,g3,b3,d4]@2 ~ a2@2 ~@2 [c#4,g4]@3 ~, [g3,b3,d4]@5 ~@2 [a3,e4]@8 ~, ~@7 c#4@4 a2@4 ~, ~@10 a4@5 ~", // G C#dim G A5
  AA: "~@7 [f#3,f#4], [d3,f#4,a4] [d3,a4], d4!2 f#4 d4, ~ a3@3 d4 a3@3, ~@3 f#3@4 ~", // F# D D5
  AB: "g3 ~@2 g3 d3 ~@2 b3, [d3,d4]@2 g3!2, b3!2 d4@2, ~ g3@2 ~ b3@3 ~, ~@5 d3@3", // D
  AC: "~@3 f#4 ~@3 f#4, [d3,a4]!2, f#4@3 ~ f#4@3 ~, d4!4, ~ a3@4 a3@3", // D5
  AD: "d3 ~@2 b3 [d3,g3,b3,d4]@2 [c#3,a3,c#4,e4]@2, d4 ~, b3@3 ~@5, g3!2 ~@2, ~ d3@3 ~@4", // G A
  AE: "b2 ~@2 d4 b3!4, f#4 ~, d4@3 ~ [d4,f#4]@2 [d4,f#4]@2, b3!2 ~@2, ~ b2@7", // D
  AF: "~@3 g3 ~@3 c#3, [e3,g4,b4] a2, e4@2 e4@2 ~ e3@3, ~ b3@3 [a3,c#4,e4]@2 [a3,c#4,e4,a4]@2", // Em A
  AG: "~@3 f#4!2 ~@2 f#3, d3, a4!2, f#4@4 d4@4 f#3@3 [a3,d4]@5, d4 a3@4 f#4@3", AH: "[d3,a3,c4,e4]!2 [d3,d4,f#4,a4]!2",
  AI: "~@2 b3 [d3,g3,b3,d4] a3 ~@2 e3, g2 [a2,e4], d4@3 ~ c#4@2 c#3@2, [g3,b3]@3 g3@3 ~@5 a3@5, ~@2 d3@4 ~@4 e3@3 c#4@3", // G A5 G
  AJ: "~@7 f#3, d3@6 a4@2 f#5 g5 f#5 e5 a3 f#5@3, a4 f#4@3, [d4,f#4]@3 d4@13, ~ a3@2 f#3 [d3,d5]@4", // D
  AK: "~@3 [b2,b3] ~@3 a#2, [g2,d4] f#2, b3@3 ~@5, g3!2 [f#3,a#3,c#4] [f#3,a#3,c#4,e4], ~ d3@3 ~ c#3@3", // B G5 F# F#7
  AL: "b3 ~@2 [f#3,b3,d4,f#4] [d4,f#4,a4] ~@2 [d3,d4,f#4,a4], b2@8 ~@3 [d4,f#4,a4] f#3@4, [d4,f#4]@2 d3@2 d3@3 ~, ~@2 f#3@4 ~@5 c5@5, ~@3 b3@3 ~@4 a3@6", // Bm D
  AM: "~@3 [b2,b3] [g2,a3,c#4,e4]@2 [g2,a3,c#4,e4]@2, [g2,d4] ~, b3@3 ~@5, g3!2 ~@2, ~ d3@3 ~@4", // B A7 G5
  AN: "[a#2,c#3,a#3,c#4]@2 [a#2,c#3,e3,a#3,c#4,e4]@2 f#3 ~@2 [f#3,d4], [f#2,f#3] [b2,d3,f#4], ~@4 d4@3 ~, ~@2 b3!2, ~@5 f#3@2 ~", // A#m A#dim D F# Bm
  AO: "[e3,g3,b3,e4,g4,b4] [f#3,a3,c#4,f#4,a4,c#5] d4!2, ~ [g3,b3,g4,b4,d5]", // Em F#m G
  AP: "[e3,a3,d4,e4]@2 ~ d3 ~@3 [e3,c#4], a2 [a2,c#3,e4], d3@3 ~ a3@2 a3@2, ~@2 e3@3 e3@2 ~, ~@2 [a3,d4,e4]@2 c#4@3 ~", // Dsus2 C#m A Asus4
  AQ: "~@7 d3 ~@6 a3@2, d3@7 ~ d3@8, [e4,f#4,a4]@2 [e4,f#4,a4]@2 ~ a3@2 ~, ~ d4@2 d4 [d4,f#4,a4]@2 [d4,f#4,a4]@2", // F#m7 D
  AR: "b3 ~@6 d3 ~@6 g3@2, d3@7 ~ d3@8, [d4,g4] [b3,d4,g4]!3, ~ g3@2 g3 ~ g3@2 ~", // G5 G
  AS: "b3 ~@6 d3 [d3,b3,d4,g4]@4 [c#3,f#3,a#3,c#4]@4, d3@7 ~@9, [d4,g4] [b3,d4,g4] ~@2, ~ g3@2 g3 ~@4", // G F# G5 G
  AT: "b3@2 b3@2 b3@2 ~ b2 b3@2 ~@4 b3@2, b2@3 b3 b2@4, [d4,f#4]!4, ~@5 b3@2 ~", // D
  AU: "[e3,g3,b3,e4,g4,b4]@2 [f#3,a3,c#4,f#4,a4,c#5]@2 e3@2 ~ d3, ~ [a2,a3,d4,e4], ~@4 d3@3 ~, ~@3 e3", // Em F#m Asus4
  AV: "[a2,c#3,e3,a3,c#4,e4]@15 ~", // A
  AW: "[~@3 d5@3 ~@2 d5@2 ~@6 a4@2 b4 ~ g4@3 ~@10 g4@6 ~@19 a6@12 ~@10, ~ d4@7 d4 ~ d4@8 d4@21 d3@6 f#4 a4@2 c#5 e5@2 a5@2 c#6 e6@15 ~@11, ~ [e5,f#5]@4 ~ [e5,f#5]@4 [d5,f#5]@4 [d5,f#5]@5 ~@4 [b4,d5,g5]@4 [b4,d5,g5]@12 ~@3 a3@28 ~@10, ~@12 a4@4 ~@2 [d5,g5]@4 ~@3 g4@8 ~@7 f#3@4 e4@26 ~@10, ~@43 d4@27 ~@10]/5", // Esus2 D G G5
})).s("gm_piano").gain(0.5)

// chords · string ensemble 2 · "Strings"
const string_ensemble_2 = note(`<
  A@2 B C ~@7 D@5 E@2 F G H I J@2 K L M N O P O Q R S O T U V@3 W X Y Z AA U AB AC AD@2 AE AF Y AG@4 AH@2 ~@5
>`.pickRestart({
  A: "[~@3 g6@23 c7@4 b6@2]/2", B: "g6@5 e6@2 f6", C: "g6@11 ~@5",
  D: "[~@16 g5@15 ~ [f5,a5]@16 [e5,g5]@16 [f5,a5]@12 [b4,g5,b5]@4, ~@15 c5@61 ~@4, ~@15 e5@16 ~@49]/5", // F Em F Em
  E: "[[a4,c6]@2 [f4,f5] [g4,f5,a5], a5@23 ~@9, b5 ~@31]/2", F: "[c5,e5,g5]@7 ~",
  G: "[d5,f5]@3 ~ [c5,e5,g5]@3 ~, a#4 ~@15", H: "[f4,a4,c5] [g3,f4,a4,c5]",
  I: "e4@7 ~@5 [c4,g4]@4, [c4,c5]@3 ~, g4@5 ~@3, ~@8 e4@7 ~", // C5 C
  J: "[[f4,a4,c5]@7 [e4,g#4]@8 ~@5 e4@2 a4@2 ~@2 a#4@2 g4@2 e4@2, ~@7 b4@14 ~@11, ~@16 a3@7 ~@9, ~@9 c4@2 ~ c4@3 ~]/2", // F E
  K: "[f4,a4,c5]@8 [g3,g4]@7 ~", L: "[e4,g4,b4] [a3,c4,e4]", M: "d4 e4 f4@2",
  N: "~@3 g5, g4@7 ~, ~@5 b4@9 ~@2, ~@4 d5@3 ~", O: "[c5,e5,g5]", P: "[f5,a5,c6]", Q: "[f5,a5,c6]@3 [g5,b5,d6]",
  R: "[a5,c6,e6]", S: "[f5,a5,c6]@15 ~", T: "[g4,b4,d5]@4 [a4,c#5,e5]@3 ~", U: "[d5,f#5,a5]@15 ~",
  V: "[~@16 [f#5,a5]@15 ~ [g5,b5]@11 ~ [a5,c#6]@4, b5 ~@2, g5@7 ~@17, ~@8 d5@35 ~@5]/3", W: "[b5,d6]@15 ~",
  X: "[e5,g5]@7 ~ [a4,c#5,e5]@7 ~", Y: "[d5,f#5,a5]", Z: "[a4,c5,e5] [d5,f#5,a5]", AA: "[g5,b5]@7 ~ [a5,c#6,e6]@6 ~@2",
  AB: "[g4,b4,d5] [f#4,a#4,c#5]", AC: "b4 a5, [d5,f#5]",
  AD: "[[g4,b4,d5]@8 [c#5,e5]@8 f#4@5 ~@3 [b4,d5,f#5]@6 ~@2, ~@8 a4@13 ~@11]/2", // G C#m Bm
  AE: "[e4,g4,b4]@2 ~@2 [f#4,a4,c#5]@2 ~@2 [g4,b4,d5]@5 ~@3", AF: "d5@4 c#5@3 ~, [a4,e5]@7 ~",
  AG: "[~@16 [f#5,a5]@16 [g5,b5]@12 a5@4 [b4,d5]@13 ~@3, [g5,b5]@16 ~@28 f#5@17 ~@3, ~@2 d5@9 ~@5]/4", // F#m G Bm G
  AH: "[[e5,g5]@4 [f#5,a5]@2 ~@2 d5@8 c#5@9 ~@7, ~@4 [a4,e5]@9 ~@3]/2", // Em F#m A5
})).s("gm_string_ensemble_2").gain(0.24)

// bass · electric bass pick · "Picked Bass"
const bass = note(`<
  ~@11 A B@2 C D E F C G H I J K L M N O B@3 D P F I Q R S@2 T U V W X Y S Z AA AB AC AD AE S@3 T AF AG@2 AH AI@4
>`.pickRestart({
  A: "f1@5 ~ f1 ~ g1@3 a1@3 b1@2", B: "c2@5 ~ c2 ~ c2@7 ~", C: "c2@6 c2 ~ c2@7 ~", D: "c2@5 ~ c2 ~ c2@4 b1@4",
  E: "a1@6 a1 ~ a1@8", F: "f1@5 ~ f1 ~ g1@8", G: "a#1@5 ~ a#1 ~ c2@3 d2@3 e2@2", H: "f2@6 f2 ~ g2@8",
  I: "c2@5 ~ c2 ~ c2@8", J: "f2@6 f2 ~ e2@8", K: "a1@5 ~ a1 ~ c2@4 c2@4", L: "f2@6 f2 ~ f2@8", M: "e2@6 e2 ~ a1@8",
  N: "d2 e2 f2@2", O: "g1@5 ~ g1 ~ g1@3 a1@3 b1@2", P: "a1@5 ~ a1 ~ a1@8", Q: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~",
  R: "d2@6 d2 ~ d2@7 ~", S: "d2@5 ~ d2 ~ d2@7 ~", T: "d2@5 ~ d2 ~ d2@3 ~ c#2@3 ~", U: "b1@5 ~ b1 ~ b1@8",
  V: "e1@5 ~ e1@2 a1@8", W: "d2@5 ~ d2 ~ d2@8", X: "d2@5 ~ d2 ~ d2@3 e2@3 f#2@2", Y: "g2@5 ~ g2 ~ a2@8",
  Z: "g2@6 g2 ~ f#2@8", AA: "b1@6 c2 c#2 d2@8", AB: "g2@5 ~ g2 ~ g2@7 ~", AC: "f#2@3 ~ a#2@3 ~ b2@8",
  AD: "e2@4 f#2@3 ~ g2@7 ~", AE: "a2@6 a2 ~ a2@3 b2@3 c#3@2", AF: "b1@5 ~ b1 ~ b1@7 ~", AG: "[e2@2 f#2 g2 a2@8 ~@4]/2",
  AH: "~ d2@12 ~@3", AI: "[~@2 d2@19 ~@3 d2@25 ~@15]/4",
})).s("gm_electric_bass_pick").gain(0.54)

// other · string ensemble 2 · "Strings II"
const string_ensemble_2_2 = note("<~@51 A@3 B C D E@2 F@2 G@2 ~>".pickRestart({
  A: "[~@11 d5@2 c#5@2 a4@12 ~ d5@2 c#5 g4@12 ~ g5 f#5@3]/3", B: "a5@10 d6@3 c#6@2 d6", C: "g5@7 a5 b5@4 c#6@4",
  D: "d6@5 b5 c#6 d6", E: "[g5 f#5 e5@22 f#5@4 e5@2 d5@2]/2", F: "[~ d5@20 ~@11]/2", G: "[d5@3 c#5@5 a4@23 ~]/2",
})).s("gm_string_ensemble_2").gain(0.36)

// drums · kick
const kick = s("bd").struct("<~@11 A B@3 C B@3 A ~@8 B@3 C B@3 D B@3 C B@3 A B@3 E B F G H B@3 C B F ~@6>".pickRestart({
  A: "x ~@5 x ~ x ~@2 x ~@2 x ~", B: "x ~@2 x!2 ~@3", C: "x ~@2 x!2 ~ x ~", D: "x!4", E: "x ~@5 x!3 ~@7", F: "x!2",
  G: "x!3 ~", H: "x ~@2 x!2 ~@2 x",
})).gain(0.28)

// drums · rim
const rim = s("rim").struct("<~@4 [~ x ~@2]!31 ~@29>").gain(0.28)

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

// drums · hihat
const hihat = s("hh").struct("<~@12 A@3 B C D A E A@11 F A@3 G A@7 D A@13 H ~@6>".pickRestart({
  A: "x!8", B: "x ~ x!5 ~", C: "x!5 ~ x!2", D: "x!7 ~", E: "x!5 ~@3", F: "x ~ x!6", G: "x!6 ~ x", H: "x!3 ~",
})).gain(0.28)

// drums · open hat
const open_hat = s("oh").struct("<~@13 [~@7 x] ~ [~@7 x] ~@3 [~@5 x ~@2] ~@44>").gain(0.28)

// drums · crash
const crash = s("cr").struct("<~@19 A ~@7 B ~@7 B ~@6 C D ~@7 C ~@3 B ~@8>".pickRestart({
  A: "x", B: "~@3 x", C: "~ x ~@2", D: "~ x",
})).gain(0.28)

stack(piano, string_ensemble_2, bass, string_ensemble_2_2, kick, rim, snare, hihat, open_hat, crash)

More by Debbie Gibson