Strudelify
Marina cover art

Marina

Marina

Rocco Granata

KeyD majorTempo104 bpm
0:00/0:00
// Marina — Rocco Granata
// 104 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 70 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(104/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.

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@2 A@4 B@4 C A@3 B@4 C A B@2 A@2 B@2 A B A B A B A B A@3 D B@3 E F A@2 D B@3 E F D B G A D B H I J K L K L K M N@3 O
>`.pickRestart({
  A: "g2@3 b2@3 d3@2 g2@3 b2@3 d3@2", B: "d2@3 f#2@3 a2@2 d2@3 f#2@3 a2@2",
  C: "g2@2 g3@2 f#3@2 e3@2 d3 ~ c3@2 b2@2 a2@2", D: "g2@3 b2@3 d3@2 d2@3 f#2@3 a2@2",
  E: "d2@3 f#2@3 a2@2 g2@2 g3@2 f#3@2 e3@2", F: "d3 ~ c3@2 b2@2 a2@2 g2@3 b2@3 d3@2",
  G: "d2@3 f#2@3 a2@2 g2@3 b2@3 d3@2", H: "d2@3 f#2@3 a2@2 g2@3 d3@3 d2@2", I: "g2@3 d3@3 d2@2 d2@3 a2@3 d2@2",
  J: "d2@3 a2@3 d2@2 g2@3 b2@3 d2@2", K: "g2@3 d3@3 d2@2 d2@3 a2@3 a2@2", L: "d2@3 a2@3 d2@2 g2@3 d3@3 d2@2",
  M: "d2@3 a2@3 d2@2 g2@3 d2@3 g2@2", N: "a2@3 d2@3 a2@2 g2@3 d2@3 g2@2", O: "a2@3 d2@3 a2@2 ~@8",
})).s("gm_acoustic_bass").gain(0.4)

// chords · bandoneon · "BANDNEON"
const bandoneon = note("<A B C ~@31 D E F G H I J K D E F G L M N O@2 ~@19>".pickRestart({
  A: "~@13 c#5 d5@2", B: "d5 e5 c5 d5 b4 c5 a4 b4", C: "g4@5 ~@3", D: "~@8 [f#4,g4] ~ g4 [a#4,b4] ~ b4 g4 ~",
  E: "[a#4,b4] ~ g4 [a#4,b4] ~ [a#4,b4] g4 ~ b4@3 g4@3 ~@2, ~@8 a#4 ~@7", // Bmaj7
  F: "~@5 [e5,g5] ~ [e5,g5]!2 ~ [e5,g5] [d5,f#5] ~ [d5,f#5] [c5,e5] ~", // Em D C
  G: "[b4,d5] ~ [b4,d5] [a4,c5] ~ [a4,c5] [g4,b4] ~ [a4,c5,d5]@8", H: "~@7 f#4 d5 c#5 ~ c5 ~ a4 f#4 ~",
  I: "d5 c#5 ~ c5 ~ a4 f#4 ~ d5@2 c#5 c5@5, ~@8 c#5 ~@7", J: "~@8 a5@4 ~ g#5 g5 ~, ~@8 g#5 ~@7",
  K: "f#5 f5 ~ e5 d5 ~ c5 b4 a4@3 g4@5", L: "~@6 [f#5,g5] f#5 f5 f#5 g5 g#5 a5 f#5 d5 c5",
  M: "c#5 d5 a4 g4 f#4 g4 g#4 a4 f#4@2 ~ d4@4 ~", N: "~@6 [f#4,g4] f#4 f4 f#4 g4 g#4 a4 a#4 b4 c5",
  O: "[c#5 d5 d#5 e5 f5 f#5@2 ~ [d5,g5]@10 ~@14]/2", // G5
})).s("gm_bandoneon").gain(0.4).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@2 A@4 B@4 A@4 B@4 A@2 B@2 A@2 B@2 A B A B A B A B A@3 C B@3 D A@3 C B@3 D A C B D A C B D C D C D C D C D@4 E
>`.pickRestart({
  A: "[b2,d3,g3,b3,e4]@2 [b2,d3,g3,b3,e4] [d3,g3,b3]@2 d3 [d3,g3] [d3,g3,e4] [b2,d3,g3,b3,e4]@2 [b2,d3,g3,b3,e4] [d3,g3,b3]@2 d3 [d3,g3] [d3,g3,e4], g2!2, ~@3 [b2,e4]@5 ~@3 [b2,e4]@5, ~@5 b3@3 ~@5 b3@3", // Em7 G G5 Em7 G G5 Em7 E5
  B: "[d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] [d3,d4]@2 d3 [d3,a3] [d3,a3,f#4] [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] [d3,d4]@2 d3 [d3,a3] [d3,a3,f#4], a2!2, ~@3 [a3,f#4]@4 ~@4 [a3,f#4]@4 ~, ~@5 d4@3 ~@5 d4@3", // D D5 D D5 D
  C: "[b2,d3,g3,b3,e4]@2 [b2,d3,g3,b3,e4] [d3,g3,b3]@2 d3 [d3,g3] [d3,g3,e4] [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] [d3,d4]@2 d3 [d3,a3] [d3,a3,f#4], g2 a2, ~@3 [b2,e4]@5 ~@5 d4@3, ~@5 b3@3 ~@3 [a3,f#4]@4 ~", // Em7 G G5 Em7 D D5 D E5 …
  D: "[d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] [d3,d4]@2 d3 [d3,a3] [d3,a3,f#4] [b2,d3,g3,b3,e4]@2 [b2,d3,g3,b3,e4] [d3,g3,b3]@2 d3 [d3,g3] [d3,g3,e4], a2 g2, ~@3 [a3,f#4]@4 ~@4 [b2,e4]@5, ~@5 d4@3 ~@5 b3@3", // D D5 D Em7 G G5 Em7 D …
  E: "[d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] [d3,d4]@2 d3 [d3,a3] [d3,a3,f#4] ~@8, a2 ~, ~@3 [a3,f#4]@4 ~@9, ~@5 d4@3 ~@8", // D D5 D
})).s("gm_acoustic_guitar_steel").gain(0.18).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~@2 [x!4]!67 [x!2 ~@2]>").gain(0.72)

// drums · rim
const rim = s("rim").struct("<~@2 [x!16]!67 [x!8 ~@8]>").gain(0.4)

// drums · shaker
const shaker = s("sh").struct("<~@2 [x!3 ~ x!3 ~ x!3 ~ x!4]!34 [x!3 ~ x!7 ~ x!3 ~]!33 [x!3 ~ x!4 ~@8]>").gain(0.24)

// drums · shaker · soft notes
const shaker_soft = s("sh").struct("<~@2 [~@3 x ~@3 x ~@3 x ~@4]!34 [~@3 x ~@7 x ~@3 x]!33 [~@3 x ~@12]>").gain(0.16)

stack(bass, bandoneon, acoustic_guitar_steel, kick, rim, shaker, shaker_soft)