Strudelify
In Dreams cover art

`K Heb Je Lief - 50 jaar de muziek, M`n fans, het leven

In Dreams

Rene Froger

KeyB♭ majorTempo116 bpm
0:00/0:00
// In Dreams — Rene Froger
// 116 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 75 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
// note: The whole transcription plays 16 ms ahead of the beat; the grid follows it, so its parts stay together.
setcpm(116/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~@10 A@2 B@2 C@2 D E F A B@2 C@2 D A@3 C@2 G C D H A@2 I J A K L C M A N A@3 O D P Q@2 B@2 R@2 D S A G T U A G V W A@2
  I X B U D Q
>`.pickRestart({
  A: "~@4 f2 f3 ~ f3, bb2@3 f4@2 ~@3, ~@3 f3@10 ~@5 [f2,bb3,d4]@5 ~, ~@4 bb3@11 ~@9, ~@5 d4@10 ~@9", // Bb
  B: "~@4 g2 g3 ~ g3, c3@3 g4@2 ~@3, ~@3 g3@10 ~@5 [g2,c4,eb4]@5 ~, ~@4 c4@11 ~@9, ~@5 eb4@10 ~@9", // Cm
  C: "~@4 c3 f3 ~ f3, f2@3 f4@2 ~@3, ~@3 f3@10 ~@5 [c3,a3,c4]@5 ~, ~@4 a3@11 ~@9, ~@5 c4@10 ~@9", // F
  D: "~@4 f2 f3 ~ f3, bb2@3 f4@2 ~@3, ~@3 f3@10 ~@5 [f2,bb3,d4]@6, ~@5 [bb3,d4]@11 ~@8", // Bb
  E: "~@12 [f2,d4]@3 f4@3 bb4@2 ~ c5@2 c5, bb2@3 f4@2 ~@3, ~@3 f3@9 ~@6 f2@5 ~, ~@4 bb3@11 ~@9, ~@5 d4@6 ~@13", // Dm
  F: "~@4 f2 f3 ~ f3, bb2@3 f4@2 ~@3, [d5,f5]@5 d4@10 ~@9, ~@3 f3@10 ~@5 [f2,bb3,d4]@5 ~, ~@4 bb3@11 ~@9", // Dm Bb
  G: "~@4 bb2 g3 ~ g3, eb3@3 g4@2 ~@3, ~@3 g3@10 ~@5 [bb2,bb3,eb4]@5 ~, ~@4 bb3@11 ~@9, ~@5 eb4@10 ~@9", // Eb5
  H: "~@12 d3@3 f3@3 ~@3 f3@2 ~, bb2@3 f4@2 ~@3, ~@3 f3@9 ~@6 [f2,bb3,d4]@5 ~, ~@4 bb3@11 ~@9, ~@5 d4@9 ~@10", // Bb
  I: "~@4 g2 g3 ~ g3, c3@3 g4@2 ~@3, ~@3 g3@9 ~@6 [g2,c4,e4]@5 ~, ~@5 c4@11 ~@8, ~@2 e4@3 ~@3", // C
  J: "~@4 g2 g3 ~ g3, c3@3 g4@2 ~@3, ~@3 g3@10 ~@5 [g2,c4,e4]@5 ~, ~@4 c4@11 ~@9, ~@5 e4@10 ~@9", // C
  K: "~@5 c4 ~ c4, c3@3 c5@2 ~@3, ~@3 c4@10 ~@11, ~@4 eb4@11 ~@9, ~@5 g4@7 [c3,a4]@5 ~ [c3,f4,a4]@5 ~", // F
  L: "~@3 d5 ~ c4 ~ c4, bb2@9 ~@3 [c3,g4]@5 ~ [c3,eb4,g4]@6, ~ d4@3 ~@4, ~@5 bb4@10 ~@9, ~@5 f4@7 ~@12", // C5 Cm
  M: "~@12 d3@3 f3@3 ~@3 f3@2 ~, f2@3 f4@2 ~@3, ~@3 f3@9 ~@6 [c3,a3,c4]@5 ~, ~@4 a3@11 ~@9, ~@5 c4@9 ~@10", // F
  N: "~@4 bb2 gb3 ~ gb3, eb3@3 gb4@2 ~@3, ~@3 gb3@9 ~@6 [bb2,bb3,eb4]@5 ~, ~@4 bb3@11 ~@9, ~@2 eb4@3 ~@3", // Eb5
  O: "~@4 bb2 gb3 ~ gb3, eb3@3 gb4@2 ~@3, ~@3 gb3@10 ~@5 [bb2,bb3,eb4]@5 ~, ~@4 bb3@11 ~@9, ~@5 eb4@10 ~@9", // Eb5
  P: "~@12 f2@3 bb4@3 d4@2 ~ f4@2 ~, bb2@3 d4@2 ~@3, ~@3 f3@9 d5@2 ~@10, ~@4 bb3@11 ~@3 f2@5 ~, ~@5 f4@9 ~@10",
  Q: "~@6 [bb2,f3,bb3,d4] ~@2 [bb2,f3,bb3,d4] ~@2 [bb2,f3,bb3,d4] ~@11", // Bb
  R: "~@6 [f2,f3,a3,eb4] ~@2 [f2,f3,a3,eb4] ~@2 [f2,f3,a3,eb4] ~@11", // F7
  S: "~@12 f2@3 d4@3 bb4@2 ~ g4@2 ~, bb2@3 d5@2 ~@3, ~@3 d4@9 ~@6 f2@5 ~, ~@4 f4@11 ~@9, ~@5 bb4@9 ~@10",
  T: "~@4 c3 a3 ~ a3, c3@3 a4@2 ~@3, ~@3 a3@9 ~@6 [c3,c4,f4]@5 ~, ~@5 c4@11 ~@8, ~@2 f4@3 ~@3", // F5
  U: "~@4 c3 a3 ~ a3, f2@3 a4@2 ~@3, ~@3 a3@10 ~@5 [c3,c4,f4]@5 ~, ~@4 c4@11 ~@9, ~@5 f4@10 ~@9", // F5
  V: "~@4 c3 c4 ~ c4, f2@3 c4@2 ~@3, ~@3 c3@8 ~@7 [c3,a3]@6, ~@5 [f3,a3]@11 ~@8", // F
  W: "~@12 c3@3 f3@3 ~@3 f3@2 ~, f2@3 c4@2 ~@3, ~@3 c3@8 ~@7 [c3,c4,f4]@5 ~, ~@4 f3@9 ~@11, ~@5 a3@9 ~@10", // F5
  X: "~@4 g2 g3 ~ g3, c3@3 c5@2 ~@3, ~@3 c4@10 ~@5 [g2,c4,e4]@5 ~, ~@4 e4@11 ~@9, ~@5 g4@10 ~@9", // C
})).s("gm_piano").gain(0.3)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@10 A@2 B@2 C@2 A@4 B@2 C@2 A@4 C D E D A F A@2 B@2 A G H C I A J A@3 J A@2 K@2 B@2 L@2 A@3 J C@2 A J C@2 A@2 B@3 D A
  K
>`.pickRestart({
  A: "bb1@6 ~@3 bb1@3 f2@4 ~@2 f2@4 ~@2", B: "c2@6 ~@3 c2@3 g2@4 ~@2 g2@4 ~@2", C: "f2@6 ~@3 f2@3 c2@4 ~@2 c2@4 ~@2",
  D: "f2@6 ~@3 f2@3 c2@4 ~@2 f2@4 ~@2", E: "eb2@6 ~@3 eb2@3 bb1@4 ~@2 eb2@4 ~@2",
  F: "bb1@6 ~@3 bb1@3 d2@4 ~@2 f2@4 ~@2", G: "c2@6 ~@3 c2@3 f1@4 ~@2 f2@4 ~@2", H: "bb1@2 ~ bb1 c2@2 ~ c2",
  I: "f2 ~@2 f2 ~@2 eb2@4 ~@2 d2 ~@2 d2 ~@2 c2@4 ~@2", J: "eb2@6 ~@3 eb2@3 bb2@4 ~@2 bb2@4 ~@2",
  K: "~@6 bb1 ~@2 bb1 ~@2 bb1@2 ~@10", L: "~@6 f1 ~@2 f1 ~@2 f1@2 ~@10",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@18 A B C D E F G H I J K L@3 M N@2 O@4 P Q@3 ~@2 R S ~@2 T@2 U@2 V W X@2 Y@3 Z AA AB@2 AC AA@2 AD AE AF AG@3 AH AI
>`.pickRestart({
  A: "~@8 f4@3 ~ g4@9 a4@3", B: "g4 f4", C: "~@2 g4@2 a4@3 bb4", D: "c5", E: "~@3 c5 d5 eb5", F: "f5",
  G: "~@2 [d5,f5] [eb5,g5] [f5,a5]@2 [g5,bb5]@2", H: "[d5,f5]",
  I: "~@3 [bb4,d5,f5]!2 f5 [bb4,d5] ~@2 [bb4,d5,f5] ~@2 [bb4,d5,f5] ~@11", // Bb
  J: "~@3 [bb4,d5,g5]!2 g5 [bb4,d5] ~@2 [bb4,d5,g5] ~@2 [bb4,d5,g5] ~@11", // Gm Bb Gm
  K: "~@3 [c5,eb5,f5]!2 f5 [c5,eb5] ~@2 [c5,eb5,f5] ~@2 [c5,eb5,g5] ~@2 [c5,eb5,g5]!2 g5 [c5,eb5] ~@2 [c5,eb5,g5] ~@2", // F7 Cm F7 Cm
  L: "[[f5,a5]@6 [g5,bb5]@3 [f5,a5]@3 [eb5,g5]@3 a5 ~ eb5 [c5,f5]@3 [f4,bb4,d5]@2 ~ bb4@23 [f4,a4]@14 ~@11, c5@17 a4@4 ~@2 g4@25 ~@24, ~@16 f5@2 ~@6 eb5@37 ~@11, ~@17 g5@2 ~@53]/3", // F Gm F Eb F5 Bb F
  M: "~@8 f4@3 ~ g4@12", N: "[a4@11 ~ d4@3 [eb4,c5]@3 [f4,d5]@2 ~ [a4,eb5]@2 [bb4,d5,f5]@25, ~@11 bb4@3 ~@34]/2",
  O: "[~@24 e4@47 ~ d4@24, ~@23 [bb3,c4]@48 [bb3,f4]@25]/4", P: "[g3,eb4]@11 ~ a3@12, c4, ~@11 f4@12 ~",
  Q: "[[bb3,d4,f4]@11 ~ [g3,eb4]@11 ~ f4@48, ~@11 c4@12 [a3,eb4]@49]/3", // Bb Cm Adim
  R: "~@9 bb4@3 [b4,eb5]@3 [bb4,d5] ~@5 [f4,bb4]@3, ~@8 f4@3 ~@13", S: "[b4,eb5]@3 [bb4,d5] ~@5 [f4,bb4]@3 [bb3,f4]@12",
  T: "[~@9 f4@3 eb5@9 d5@2 d5@24 ~]/2", U: "~@5 bb4 [d5,f5] ~@2 [bb4,d5,f5] ~@2 [bb4,d5,f5] ~@11", V: "~@3 eb4 d4@3 c4",
  W: "g3", X: "~@5 a4 [eb5,f5] ~@2 [a4,eb5,f5] ~@2 [a4,eb5,f5] ~@11",
  Y: "[~@9 bb5@3 a5@6 bb5@5 f5@6 ~ [eb5,g5]@3 [f5,a5]@2 ~ d5@3 [eb5,c6]@3 [f5,d6]@3 [g5,eb6]@2 ~ [d5,f5]@24, ~@35 bb5@3 ~@9 bb4@25]/3", // Eb F Cm Dm Cm Dm
  Z: "~@12 [bb4,f5]@3 [g4,eb5] ~@8", AA: "~@6 [a4,eb5,f5] ~@2 [a4,eb5,f5] ~@2 [a4,eb5,f5] ~@5 [a4,eb5,f5] ~@5",
  AB: "[~@6 [a4,eb5,f5] ~@2 [a4,eb5,f5] ~@2 [a4,eb5,f5] ~@5 [a4,eb5,f5] ~@5 [d5,f5]@24, ~@23 bb4@25]/2", // F7 Dm
  AC: "~ [bb4,f5], ~@11 g4@12 ~", AD: "[d5,f5,bb5]", AE: "[d5,f5,a5]",
  AF: "~@6 [bb4,bb5]@3 [a4,a5] ~@2 [a4,a5]@3 [g4,g5] ~@2 [g4,g5]@3 [c4,c5] ~@2", // Bb A G C
  AG: "[~@3 [bb4,bb5] ~@2 [bb4,bb5]@3 [a4,a5] ~@2 [a4,a5]@3 [g4,g5] ~@2 [g4,g5]@3 [c4,c5] ~@2 g4@23 [c4,a4]@24 ~, ~@23 bb3@25 ~@24, ~ eb4@2]/3", // Bb A G C F
  AH: "[f4,bb4,d5]@4 d5!2 bb5!2, ~@12 [bb4,f5]@6 [d5,f5]@5 ~", // Bb Bb5 Dm
  AI: "~@5 f5 [bb5,d6] ~@2 [f5,bb5,d6] ~@2 [f5,bb5,d6] ~@11", // Bb
})).s("gm_string_ensemble_1").gain(0.35).pan(0.7)

// chords · acoustic guitar steel · "+12STR GTR"
const acoustic_guitar_steel = note(`<
  A@7 B@3 C D E@2 F G C D C D E@2 F G C D C D G@2 H G C D C D I@2 C J K G@2 C L C D C L C D M@2 E@2 N@2 C D C O G@2 C O
  G@2 C D I@2 P Q C M
>`.pickRestart({
  A: "[~@24 [f4,bb4]@19 ~@5 [d4,g4]@19 ~@5 [eb4,g4]@19 ~@5 [c4,f4]@18 a3 ~@5 [f4,bb4]@19 ~@5 [d4,g4]@19 ~@4 [g3,bb3], ~@21 bb2@23 ~ g2@22 ~@2 bb2@21 ~@3 f2@22 ~@26 g2@22 ~@2 bb2@3, ~@22 [f3,bb3]@23 ~ d3@22 ~@2 eb3@22 ~@2 c3@22 ~ bb2@23 ~@3 bb3@19 ~@6, ~@23 d4@19 ~@5 g3@22 ~@2 [g3,bb3]@20 ~@4 f3@22 ~ [f3,bb3]@23 ~ d3@22 ~@2 eb3@2, ~@47 bb3@19 ~@29 a3@19 ~@5 d4@19 ~@5 g3@22 ~@3]/7", // Bb5 G5 Eb F5 Bb5 G5 Gm Bb5 …
  B: "[[eb4,g4]@9 ~@3 [c4,f4]@9 ~@3 [f4,bb4]@47 ~, ~@9 f2@12 ~ bb3@44 ~@6, ~@10 c3@11 bb2@44 ~@7, ~@11 [f3,a3]@10 ~ f3@47 ~@3, ~@23 d4@44 ~@5]/3", // Eb F5 Bb5 F
  C: "[f3,bb3,d4]@3 [f3,bb3,d4] [bb3,d4] [bb3,d4,f4] [bb2,f3,bb3,d4,f4,bb4]@3 [bb2,f3,bb3]@3 bb3@3 [bb3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4,bb4]@3, [bb2,f4,bb4]@6 ~@3 [d4,f4,bb4]@6 bb4@5 ~@4, ~@12 [bb2,f3]@6 [bb2,f3]@5 ~", // Bb Bb5 Bb Bb5 Bb Bb5
  D: "[f3,bb3,d4]@3 [f3,bb3,d4] [bb3,d4] [bb3,d4,f4] [bb2,f3,bb3,d4,f4,bb4]@3 [bb2,f3,bb3]@3 bb3@3 [bb3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4,bb4]@3, [bb2,f4,bb4]@6 ~@3 [d4,f4,bb4]@6 bb4@5 ~@4, ~@2 [bb2,f3]!2", // Bb Bb5 Bb Bb5 Bb Bb5
  E: "[c3,g3,c4]@3 [c3,g3,c4] [g3,c4] [g3,c4,eb4] [c3,g3,c4,eb4,g4]@3 [c3,g3]@3 g3@3 [g3,c4,eb4]@3 [g3,c4,eb4]@3 [g3,c4,eb4,g4]@3, [eb4,g4]@6 ~@3 [c4,eb4,g4]@6 g4@5 ~@4, ~@12 c3@6 c3@5 ~", // C5 Cm C5 Cm Eb Cm
  F: "[c3,f3,c4]@3 [c3,f3,c4] [f3,c4] [f3,c4,f4] [c3,f3,c4,f4,a4]@3 [c3,f3]@3 f3@3 [f3,c4,f4]@3 [f3,c4,f4]@3 [f3,c4,f4,a4]@3, [f4,a4]@6 ~@3 [c4,f4,a4]@6 a4@5 ~@4, ~@12 c3@6 c3@5 ~", // F5 F F5 F
  G: "[c3,f3,c4]@3 [c3,f3,c4] [f3,c4] [f3,c4,eb4] [c3,f3,c4,eb4,a4]@3 [c3,f3]@3 f3@3 [f3,c4,eb4]@3 [f3,c4,eb4]@3 [f3,c4,eb4,a4]@3, [eb4,a4]@6 ~@3 [c4,eb4,a4]@6 a4@5 ~@4, ~@12 c3@6 c3@5 ~", // F5 F7 F5 F7 Ebdim Adim
  H: "[eb3,bb3,eb4]@3 [eb3,bb3,eb4] [bb3,eb4] [bb3,eb4,g4] [eb3,bb3,eb4,g4,bb4]@3 [eb3,bb3]@3 bb3@3 [bb3,eb4,g4]@3 [bb3,eb4,g4]@3 [bb3,eb4,g4,bb4]@3, [g4,bb4]@6 ~@3 [eb4,g4,bb4]@6 bb4@5 ~@4, ~@12 eb3@6 eb3@5 ~", // Eb5 Eb Eb5 Eb Gm Eb
  I: "[c3,g3,bb3]@3 [c3,g3,bb3] [g3,bb3] [g3,bb3,e4] [c3,g3,bb3,e4,g4]@3 [c3,g3]@3 g3@3 [g3,bb3,e4]@3 [g3,bb3,e4]@3 [g3,bb3,e4,g4]@3, [e4,g4]@6 ~@3 [bb3,e4,g4]@6 g4@5 ~@4, ~@12 c3@6 c3@5 ~", // C7 Gm Edim C7 C5 Edim Em Edim
  J: "[c3,g3,c4]@3 [c3,g3,c4] [g3,c4] [g3,c4,eb4] [c3,g3,c4,eb4,g4]@3 [c3,g3,g4]@3 f3@3 [f3,c4,eb4]@3 [f3,c4,eb4]@3 [f3,c4,eb4,a4]@3, [eb4,g4]@6 ~@3 [c4,eb4]@6 a4@5 ~@4, ~@12 c3@6 c3@5 ~", // C5 Cm C5 F7 Eb Cm
  K: "[f3,bb3,d4]@3 [f3,bb3,d4] [bb3,d4] [bb3,d4,f4] [bb2,f3,bb3,d4,f4,bb4]@3 [bb2,f3,bb3,d4,f4,bb4]@3 [g3,c4,eb4]@3 [g3,c4,eb4]@3 [g3,c4,eb4]@3 [g3,c4,eb4,g4]@3, [bb2,f4,bb4]@6 ~@6 c3@6 c3@5 ~, ~@15 g4@5 ~@4", // Bb Cm Bb5
  L: "[bb2,eb3,bb3]@3 [bb2,eb3,bb3] [eb3,bb3] [eb3,bb3,c4] [bb2,eb3,bb3,c4,gb4]@3 [bb2,eb3]@3 eb3@3 [eb3,bb3,c4]@3 [eb3,bb3,c4]@3 [eb3,bb3,c4,gb4]@3, [c4,gb4]@6 ~@3 [bb3,c4,gb4]@6 gb4@5 ~@4, ~@12 bb2@6 bb2@5 ~", // Eb5 Cm7 Cm7b5 Eb5 Cm7 Cm7b5 Cdim Cm7b5
  M: "~@6 [bb2,f3,bb3,d4,f4,bb4]@2 ~ [bb2,f3,bb3,d4,f4,bb4]@2 ~ [bb2,f3,bb3,d4,f4,bb4]@3 ~@9", // Bb
  N: "~@6 [c3,f3,c4,eb4,a4]@2 ~ [c3,f3,c4,eb4,a4]@2 ~ [c3,f3,c4,eb4,a4]@3 ~@9", // F7
  O: "[bb2,eb3,bb3]@3 [bb2,eb3,bb3] [eb3,bb3] [eb3,bb3,eb4] [bb2,eb3,bb3,eb4,g4]@3 [bb2,eb3]@3 eb3@3 [eb3,bb3,eb4]@3 [eb3,bb3,eb4]@3 [eb3,bb3,eb4,g4]@3, [eb4,g4]@6 ~@3 [bb3,eb4,g4]@6 g4@5 ~@4, ~@12 bb2@6 bb2@5 ~", // Eb5 Eb Eb5 Eb
  P: "[g3,bb3]@3 [g3,bb3]!2 [g3,bb3,eb4] [c3,g3,bb3,eb4,g4]@3 [c3,g3]@3 g3@3 [g3,bb3,eb4]@3 [g3,bb3,eb4]@3 [g3,bb3,eb4,g4]@3, [c3,eb4,g4]@6 ~@3 [bb3,eb4,g4]@6 g4@5 ~@4, ~@12 c3@6 c3@5 ~", // Gm Eb Cm7 C5 Eb Cm Eb
  Q: "[c3,f3,c4]@3 [c3,f3,c4] [f3,c4] [f3,c4,eb4] [c3,f3,c4,eb4,a4]@3 [c3,f3,a4]@3 f3@3 [f3,c4,eb4]@3 [f3,c4,eb4]@3 [f3,c4,eb4,a4]@3, [eb4,a4]@6 ~@3 [c4,eb4]@6 a4@5 ~@4, ~@12 c3@6 c3@5 ~", // F5 F7 F F7 Ebdim Cm
})).s("gm_acoustic_guitar_steel").gain(0.14)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@8 A B C@41 ~@2 C@2 ~@2 C@17 ~>".pickRestart({
  A: "~ x!3", B: "x!4", C: "~ x ~ x",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct("<~@18 A ~@7 A ~@7 A ~@8 A ~@9 A ~@3 A ~ A ~@3 A ~@3 A ~@3 A ~@3>".pickRestart({
  A: "x",
})).gain(0.48)

stack(piano, bass, string_ensemble_1, acoustic_guitar_steel, pedal_hat, crash)

More by Rene Froger