Strudelify

Give Me Just a Little More Time

Kylie Minogue

KeyD majorTempo127 bpm
0:00/0:00
// Give Me Just a Little More Time — Kylie Minogue
// 127 bpm, 4/4, key D 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 97 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(127/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
const piano = note("<A@8 B C@8 D@4 E@8 C@8 D@4 E@16 C@8 D@4 ~@8 E@16 F@2 ~@2>".pickRestart({
  A: "[~@22 [f#4,a4,c#5]@7 ~ [f#4,a4,c#5]@5 ~ [f#4,a4,c#5]@3 ~ [f#4,a4,c#5]@4 ~@2 [f#4,b4,d5]@7 ~ [f#4,b4,d5]@5 ~ [f#4,b4,d5]@3 ~ [f#4,b4,d5]@4 ~@2 [f#4,a4,c#5]@7 ~ [f#4,a4,c#5]@5 ~ [f#4,a4,c#5]@3 ~ [f#4,a4,c#5]@4 ~@2 [f#4,b4,d5]@7 ~ [f#4,b4,d5]@5 ~ [f#4,b4,d5]@3 ~ [f#4,b4,d5]@4 ~@2 [f#4,a4,c#5]@7 ~ [f#4,a4,c#5]@5 ~ [f#4,a4,c#5]@3 ~ [f#4,a4,c#5]@4 ~@2 [f#4,b4,d5]@7 ~ [f#4,b4,d5]@5 ~ [f#4,b4,d5]@3 ~ [f#4,b4,d5]@4 ~@2 [f#4,a4,c#5]@7 ~ [f#4,a4,c#5]@5 ~ [f#4,a4,c#5]@3 ~ [f#4,a4,c#5]@4 ~@2 [f#4,b4,d5]@2]/8", // F#m Bm F#m Bm F#m Bm F#m Bm
  B: "~@6 [f#4,b4,d5]@5 ~ [f#4,b4,d5]@3 ~ [f#4,b4,d5]@5 ~@3", // Bm
  C: "[[f#4,a4,d5]@5 ~ [f#4,a4,d5]@5 ~ [f#4,a4,d5]@3 ~ [f#4,a4,d5]@4 ~@2 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 ~ [e4,a4,c#5]@3 ~ [e4,a4,c#5]@4 ~@2 [e4,a4,c5]@7 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 ~ [e4,a4,c5]@4 ~@2 [d4,g4,b4]@7 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3 ~ [d4,g4,b4]@4 ~@2 [f#4,a4,d5]@7 ~ [f#4,a4,d5]@5 ~ [f#4,a4,d5]@3 ~ [f#4,a4,d5]@4 ~@2 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 ~ [e4,a4,c#5]@3 ~ [e4,a4,c#5]@4 ~@2 [e4,a4,c5]@7 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 ~ [e4,a4,c5]@4 ~@2 [d4,g4,b4]@7 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3 ~ [d4,g4,b4]@4 ~@2 [f#4,a4,d5]@2]/8", // D A Am G D A Am G …
  D: "[~@6 [f#4,a4,d5]@5 ~ [f#4,a4,d5]@3 ~ [f#4,a4,d5]@4 ~@2 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 ~ [e4,a4,c#5]@3 ~ [e4,a4,c#5]@4 ~@2 [e4,a4,c5]@7 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 ~ [e4,a4,c5]@4 ~@2 [d4,g4,b4]@7 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3 ~ [d4,g4,b4]@7 ~]/4", // D A Am G
  E: "[[f#4,a4,c#5]@5 ~ [f#4,a4,c#5]@5 ~ [f#4,a4,c#5]@3 ~ [f#4,a4,c#5]@4 ~@2 [f#4,b4,d5]@7 ~ [f#4,b4,d5]@5 ~ [f#4,b4,d5]@3 ~ [f#4,b4,d5]@4 ~@2 [f#4,a4,c#5]@7 ~ [f#4,a4,c#5]@5 ~ [f#4,a4,c#5]@3 ~ [f#4,a4,c#5]@4 ~@2 [f#4,b4,d5]@7 ~ [f#4,b4,d5]@5 ~ [f#4,b4,d5]@3 ~ [f#4,b4,d5]@4 ~@2 [f#4,a4,c#5]@7 ~ [f#4,a4,c#5]@5 ~ [f#4,a4,c#5]@3 ~ [f#4,a4,c#5]@4 ~@2 [f#4,b4,d5]@7 ~ [f#4,b4,d5]@5 ~ [f#4,b4,d5]@3 ~ [f#4,b4,d5]@4 ~@2 [f#4,a4,c#5]@7 ~ [f#4,a4,c#5]@5 ~ [f#4,a4,c#5]@3 ~ [f#4,a4,c#5]@4 ~@2 [f#4,b4,d5]@7 ~ [f#4,b4,d5]@5 ~ [f#4,b4,d5]@3 ~ [f#4,b4,d5]@5 ~@3]/8", // F#m Bm F#m Bm F#m Bm F#m Bm
  F: "[[g4,b4,d5]@5 ~ [a4,c#5,e5]@5 ~ [b4,d5,f#5]@3 ~ [c#5,e5,g#5]@4 ~@2 [d5,f#5,a5]@25 ~]/2", // G A Bm C#m D
})).s("gm_piano").gain(0.3).pan(0.3)

// bass · synth bass 2
const bass = note(`<
  A@2 B C@3 B D@2 E@8 F@3 G H B D@2 H B D@2 E@8 F@3 G H B D@2 H B D@2 H B D@2 H B D@2 E@8 F@3 G H B D@2 H B D@2 H B D@2
  H B D@2 H B D@2 H B I@2 J@3 ~
>`.pickRestart({
  A: "[~@23 d2@4 ~ d2 ~ d2@3 ~ d2 ~ d2@3 ~ d2 ~ d2@3 ~ b1 ~]/2", B: "b1@3 ~ b1 ~ b1@3 ~ b1 ~ b1@3 ~ b1 ~ b1@3 ~ b1 ~",
  C: "[a1@3 ~ a1 ~ a1@3 ~ a1 ~ a1@3 ~ a1 ~ f#1@3 ~ g1@5 ~ g1 ~ a1@3 ~ a1 ~ b1@3 ~ b1 ~ c#2@2 ~ d2@6 ~ d2 ~ d2@3 ~ d2 ~ d2@3 ~ d2 ~ d2@3 ~ b1 ~]/3",
  D: "[a1@3 ~ a1 ~ a1@3 ~ a1 ~ a1@3 ~ a1 ~ f#1@3 ~ g1@5 ~ g1 ~ a1@3 ~ a1 ~ b1@3 ~ b1 ~ c#2@3 ~ c#2 ~]/2",
  E: "[d2@3 ~ d2 ~ b1@3 ~ b1 ~ a1@3 ~ b1@5 ~ c#2@5 ~ c#2 ~ b1@3 ~ b1 ~ a1@3 ~ b1@5 ~ c2@5 ~ c2 ~ b1@3 ~ b1 ~ a1@3 ~ b1@5 ~ g1@5 ~ g1 ~ g1@3 ~ g1 ~ g1@3 ~ a1 ~ b1@3 ~ d2@5 ~ d2 ~ b1@3 ~ b1 ~ a1@3 ~ b1@5 ~ c#2@5 ~ c#2 ~ b1@3 ~ b1 ~ a1@3 ~ b1@5 ~ c2@5 ~ c2 ~ b1@3 ~ b1 ~ a1@3 ~ b1@5 ~ g1@5 ~ g1 ~ g1@3 ~ g1 ~ g1@3 ~ a1 ~ b1@3 ~ d2@2]/8",
  F: "[~@4 d2 ~ b1@3 ~ b1 ~ a1@3 ~ b1@5 ~ c#2@5 ~ c#2 ~ b1@3 ~ b1 ~ a1@3 ~ b1@5 ~ c2@5 ~ c2 ~ b1@3 ~ b1 ~ a1@3 ~ b1@5 ~ g1 ~]/3",
  G: "g1@3 ~ g1 ~ g1@3 ~ g1 ~ g1@3 ~ a1 ~ b1@3 ~ d2 ~", H: "d2@3 ~ d2 ~ d2@3 ~ d2 ~ d2@3 ~ d2 ~ d2@3 ~ b1 ~",
  I: "[a1@3 ~ a1 ~ a1@3 ~ a1 ~ a1@3 ~ a1 ~ f#1@3 ~ g1@5 ~ g1 ~ a1@3 ~ a1 ~ b1@3 ~ b1 ~ c#2@5 ~]/2",
  J: "[g1@5 ~ a1@5 ~ b1@3 ~ c#2@5 ~ d2@50]/3",
})).s("gm_synth_bass_2").gain(0.45)

// chords · piano
const piano_2 = note("<A ~@8 B@8 C@4 ~@8 B@8 C@4 ~@16 B@8 C@4 ~@28>".pickRestart({
  A: "~@15 g#2 a#2 [c3,c#3] [d#3,f3,f#3] [g#3,a#3] [c4,c#4] [d#4,f4] ~ f#4", // C#maj7 D#m G#sus2 C#maj7 D#sus2
  B: "[[a3,d4]@5 ~ [a3,b3]@5 ~ a3@3 ~ [a3,b3]@5 ~ [e3,c#4]@7 ~ [e3,b3]@5 ~ [e3,a3]@3 ~ [e3,b3]@5 ~ [e3,c4]@7 ~ [e3,b3]@5 ~ [e3,a3]@3 ~ [e3,b3]@5 ~ [g3,b3]@7 ~ [g3,e4]@5 ~ [g3,e4]@3 ~ [g3,d4]@5 ~ [f#3,d4]@7 ~ [f#3,b3]@5 ~ [f#3,a3]@3 ~ [f#3,b3]@5 ~ [e3,c#4]@7 ~ [e3,b3]@5 ~ [e3,a3]@3 ~ [e3,b3]@5 ~ [e3,c4]@7 ~ [e3,b3]@5 ~ [e3,a3]@3 ~ [e3,b3]@5 ~ [d3,g3]@7 ~ [g3,e4]@5 ~ [g3,e4]@3 ~ [g3,d4]@5 ~ [a3,d4]@2]/8", // D5 Asus2 C#m E5 A5 E5 C E5 …
  C: "[~@6 [a3,b3]@5 ~ a3@3 ~ [a3,b3]@5 ~ [a3,c#4]@7 ~ [a3,b3]@5 ~ a3@3 ~ [a3,b3]@5 ~ [e3,c4]@7 ~ [e3,b3]@5 ~ [e3,a3]@3 ~ [e3,b3]@5 ~ [g3,b3]@7 ~ [g3,e4]@5 ~ [g3,e4]@3 ~ [g3,d4]@5 ~@3]/4", // Asus2 A Asus2 C E5 A5 E5 G …
})).s("gm_piano").gain(0.25).pan(0.7)

// other · vibraphone
const vibraphone = note(`<
  ~@9 A B C D E B C D E B C F ~@8 A B C D E B C D E B C F ~@16 A B C D E B C D E B C ~@29
>`.pickRestart({
  A: "d4 ~@5 b3 ~@5 a3 ~@3 b3 ~@5 c#4 ~", B: "~@6 b3 ~@5 a3 ~@3 b3 ~@5 c4 ~", C: "~@6 b3 ~@5 a3 ~@3 b3 ~@5 g3 ~",
  D: "~@6 e4 ~@5 e4 ~@3 d4 ~@5 d4 ~", E: "~@6 b3 ~@5 a3 ~@3 b3 ~@5 c#4 ~", F: "~@6 e4 ~@5 e4 ~@3 d4 ~@7",
})).s("gm_vibraphone").gain(0.35)

// chords · electric guitar clean
const electric_guitar_clean = note("<A@8 B C@8 D@4 E@8 C@8 D@4 E@16 C@8 D@4 ~@8 E@16 F@2 ~@2>".pickRestart({
  A: "[~@22 [a4,c#5]@7 ~ [a4,c#5]@5 ~ [a4,c#5]@3 ~ [a4,c#5]@3 ~@3 [b4,d5]@7 ~ [b4,d5]@5 ~ [b4,d5]@3 ~ [b4,d5]@3 ~@3 [a4,c#5]@7 ~ [a4,c#5]@5 ~ [a4,c#5]@3 ~ [a4,c#5]@3 ~@3 [b4,d5]@7 ~ [b4,d5]@5 ~ [b4,d5]@3 ~ [b4,d5]@3 ~@3 [a4,c#5]@7 ~ [a4,c#5]@5 ~ [a4,c#5]@3 ~ [a4,c#5]@3 ~@3 [b4,d5]@7 ~ [b4,d5]@5 ~ [b4,d5]@3 ~ [b4,d5]@3 ~@3 [a4,c#5]@7 ~ [a4,c#5]@5 ~ [a4,c#5]@3 ~ [a4,c#5]@3 ~@3 [b4,d5]@2]/8", // A Bm A Bm A Bm A Bm
  B: "~@6 [b4,d5]@5 ~ [b4,d5]@3 ~ [b4,d5]@5 ~@3", // Bm
  C: "[[a4,d5]@5 ~ [a4,d5]@5 ~ [a4,d5]@3 ~ [a4,d5]@3 ~@3 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 ~ [e4,a4,c#5]@3 ~ [e4,a4,c#5]@3 ~@3 [e4,a4,c5]@7 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 ~ [e4,a4,c5]@3 ~@3 [d4,g4,b4]@7 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~@3 [a4,d5]@7 ~ [a4,d5]@5 ~ [a4,d5]@3 ~ [a4,d5]@3 ~@3 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 ~ [e4,a4,c#5]@3 ~ [e4,a4,c#5]@3 ~@3 [e4,a4,c5]@7 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 ~ [e4,a4,c5]@3 ~@3 [d4,g4,b4]@7 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~@3 [a4,d5]@2]/8", // D5 A Am G D5 A Am G …
  D: "[~@6 [a4,d5]@5 ~ [a4,d5]@3 ~ [a4,d5]@3 ~@3 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 ~ [e4,a4,c#5]@3 ~ [e4,a4,c#5]@3 ~@3 [e4,a4,c5]@7 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 ~ [e4,a4,c5]@3 ~@3 [d4,g4,b4]@7 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3 ~ [d4,g4,b4]@7 ~]/4", // D5 A Am G
  E: "[[a4,c#5]@5 ~ [a4,c#5]@5 ~ [a4,c#5]@3 ~ [a4,c#5]@3 ~@3 [b4,d5]@7 ~ [b4,d5]@5 ~ [b4,d5]@3 ~ [b4,d5]@3 ~@3 [a4,c#5]@7 ~ [a4,c#5]@5 ~ [a4,c#5]@3 ~ [a4,c#5]@3 ~@3 [b4,d5]@7 ~ [b4,d5]@5 ~ [b4,d5]@3 ~ [b4,d5]@3 ~@3 [a4,c#5]@7 ~ [a4,c#5]@5 ~ [a4,c#5]@3 ~ [a4,c#5]@3 ~@3 [b4,d5]@7 ~ [b4,d5]@5 ~ [b4,d5]@3 ~ [b4,d5]@3 ~@3 [a4,c#5]@7 ~ [a4,c#5]@5 ~ [a4,c#5]@3 ~ [a4,c#5]@3 ~@3 [b4,d5]@7 ~ [b4,d5]@5 ~ [b4,d5]@3 ~ [b4,d5]@5 ~@3]/8", // A Bm A Bm A Bm A Bm
  F: "[[g4,b4,d5]@5 ~ [a4,c#5,e5]@5 ~ [b4,d5,f#5]@3 ~ [c#5,e5,g#5]@3 ~@3 [d5,f#5,a5]@25 ~]/2", // G A Bm C#m D
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.7)

// other · electric guitar muted
const electric_guitar_muted = note("<~@70 A@3 ~ A@3 ~@20>".pickRestart({
  A: "[~@10 e4 ~ d4@4 e4 ~@5 f#4@4 ~@2 f#4 ~ e4 ~@3 b3 ~ d4@4 e4 ~@5 f#4@4 ~@2 f#4 ~ e4 ~@3 b3 ~ d4@4 e4 ~@7]/3",
})).s("gm_electric_guitar_muted").gain(0.2).pan(0.3)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  A@7 B@2 ~@8 C@4 D@8 E@2 F@2 G@4 H@4 D@12 I@4 E@2 F@2 J@4 K@4 ~@8 D@16 L@3 ~
>`.pickRestart({
  A: "[~@22 f#6@20 a6@4 f#6@20 a6@4 f#6@20 a6@4 d6@23 f#6@21 a6@4 f#6@20 a6@4 f#6@2]/7", B: "[~@18 a6@4 d6@25 ~]/2",
  C: "[[f#3,a3,d4]@11 [e3,c#4]@12 c4@12 [d3,g3,b3]@13]/4", D: "[f#6@9 a6@2 f#6@10 a6@2 f#6@10 a6@2 d6@13]/4",
  E: "[a5@6 e5@3 f#5@2 e5@13]/2", F: "[e5@12 d5@4 e5@4 ~@2 d5@25 ~]/2",
  G: "[a6@12 e6@4 f#6@5 ~ e6@22 ~@2 g6@24 d6@26]/4", H: "[[a5,f#6]@22 e6@47 ~ d6@26]/4",
  I: "[f#6@18 a6@4 f#6@20 a6@4 f#6@20 a6@4 d6@25 ~]/4", J: "[a6@6 e6@2 f#6@2 ~ e6@12 g6@12 d6@13]/4",
  K: "[a5@22 e6@46 d6@27 ~, f#6@95 ~]/4", L: "[g4@3 a4@3 b4@2 c#4@2 [d5,f#5]@25 ~]/3",
})).s("gm_string_ensemble_1").gain(0.35)

// other · brass section
const brass_section = note(`<
  A@2 B@2 C@2 D@2 E ~@12 F B@2 G@2 D@2 E ~@12 F B@2 G@2 D@2 H@2 B@2 G@2 D@2 E ~@12 I ~@3 I ~@3 F B@2 G@2 D@2 H@2 B@2 G@2
  D@2 E J@3 ~
>`.pickRestart({
  A: "[~@11 c#5@13]/2", B: "[f#5@3 ~@3 e5@3 ~@3 d5@4 e5@2 ~@4 c#5@25 ~]/2",
  C: "[f#5@2 ~@4 e5@3 ~@3 d5@4 e5@2 ~@4 c#5@25 ~]/2", D: "[f#5@2 ~@4 e5@3 ~@3 d5@3 ~ e5@3 ~@3 c#5@25 ~]/2",
  E: "f#5@3 ~@3 e5@3 ~@3 d5@3 ~ e5@3 ~@5", F: "c#5@23 ~", G: "[f#5@2 ~@4 e5@3 ~@3 d5@4 e5@2 ~@4 c#5@24 ~@2]/2",
  H: "[f#5@3 ~@3 e5@3 ~@3 d5@3 ~ e5@3 ~@3 c#5@24 ~@2]/2", I: "[a4,c#5,f#5]@2 [a4,c#5,f#5] ~@9",
  J: "[f#5@3 ~@3 e5@3 ~@3 d5@3 ~ e5@2 ~@4 [c#5,f#5,a5]@50]/3", // F#m
})).s("gm_brass_section").gain(0.7)

// drums · kick
const kick = s("bd").struct("<A B C@7 D@12 C@8 D@12 C@16 D@12 C@24 E ~ F ~>".pickRestart({
  A: "~@5 x!2 ~@4 x", B: "~@5 x!2 ~@5", C: "x ~@4 x!2 ~@5", D: "x!2", E: "x ~@2 x ~@2 x ~ x ~@2 x", F: "~@23 x",
})).gain(0.4)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@9 [~@5 x ~@6]!12 ~@8 [~@5 x ~@6]!12 ~@16 [~@5 x ~@6]!12 ~@28>").gain(0.25)

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

// drums · low tom
const low_tom = s("lt").struct("<~@95 [~@7 x] ~>").gain(0.35)

// drums · hihat
const hihat = s("hh").struct("<~ A@8 B@12 A@8 B@12 A@16 B@12 A@24 ~@4>".pickRestart({
  A: "x ~ x!2 ~ x!2 ~ x!2 ~ x", B: "~ x ~ x",
})).gain(0.35)

// drums · mid tom
const mid_tom = s("mt").struct("<~@95 [~@5 x] ~>").gain(0.35)

// drums · open hat
const open_hat = s("oh").struct("<~@93 [x ~@2 x ~@2 x ~ x ~@3] ~@3>").gain(0.35)

// drums · high tom
const high_tom = s("ht").struct("<~@95 [~@19 x ~@4] ~>").gain(0.4)

// drums · crash
const crash = s("cr").struct(`<
  A ~@3 B@2 ~ A@2 ~@12 B ~@2 B@2 ~@2 B ~@12 B ~@2 B@2 ~@2 B@2 ~@2 B@2 ~@2 B ~@20 B ~@2 B@2 ~@2 B@2 ~@2 B@2 ~@2 B A ~ C ~
>`.pickRestart({
  A: "~@11 x", B: "x", C: "~@23 x",
})).gain(0.4)

// drums · tambourine
const tambourine = s("tb").struct("<~ A@8 B@12 A@8 B@12 A@16 B@12 A@24 C ~@3>".pickRestart({
  A: "x ~@4 x!2 ~@4 x", B: "x ~ x ~@2 x!2 ~ x ~@2 x", C: "x ~@2 x ~@2 x ~ x ~@2 x",
})).gain(0.2)

stack(
  piano, bass, piano_2, vibraphone, electric_guitar_clean, electric_guitar_muted, string_ensemble_1, brass_section,
  kick, kick_soft, snare, low_tom, hihat, mid_tom, open_hat, high_tom, crash, tambourine
)

More by Kylie Minogue