Strudelify

Maiden Voyage

Herbie Hancock

KeyF majorTempo120 bpm
0:00/0:00
// Maiden Voyage — Herbie Hancock
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6272983; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 56 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · trumpet
const trumpet = note("<~@7 A B@3 C D@3 A B@3 C D@3 E F@3 G H@3 A B@3 C D@3 ~@17>".pickRestart({
  A: "~@6 a4 d5", B: "d5/3", C: "~@6 c5 d5", D: "[eb5 f5 c5@22]/3", E: "~@6 c5 f5", F: "f5/3", G: "~@6 eb5 e5",
  H: "[e5 gb5 db5@22]/3",
})).s("gm_trumpet").gain(0.25)

// chords · piano
const piano = note("<A@4 B@4 A@4 B@4 A@4 B@4 C@4 D@4 A@4 B@4 A@4 B@4 A@4 B@4>".pickRestart({
  A: "[[d2,a2,e4,g4,c5,d5]@2 ~@2 [d2,a2,e4,g4,c5,d5]@6 [d2,a2,e4,g4,c5,d5]@11 ~ [d2,a2]@4 a2@2 d3@2 a2@2, ~@22 [e4,g4,c5,d5]@9 ~]/2", // Am7 D5 C
  B: "[[f2,c3,g4,bb4,eb5,f5]@2 ~@2 [f2,c3,g4,bb4,eb5,f5]@6 [f2,c3,g4,bb4,eb5,f5]@11 ~ [f2,c3]@4 c3@2 f3@2 c3@2, ~@22 [g4,bb4,eb5,f5]@9 ~]/2", // Cm7 F5 Eb
  C: "[[ab3,c4,db4,f4,db5,f5,bb5]@2 ~@2 [ab3,c4,db4,f4,db5,f5,bb5]@6 [ab3,c4,db4,f4,db5,f5,bb5]@11 ~ [ab3,c4,db4,f4,db5,f5,bb5]@9 ~]/2", // Dbmaj7
  D: "[[ab3,b3,eb4,e4,db5,e5,bb5]@2 ~@2 [ab3,b3,eb4,e4,db5,e5,bb5]@6 [ab3,b3,eb4,e4,db5,e5,bb5]@11 ~ [ab3,b3,eb4,e4,db5,e5,bb5]@9 ~]/2", // Dbm7
})).s("gm_piano").gain(0.25)

// bass · acoustic bass · "Bass"
const bass = note("<A@4 B@4 A@4 B@4 A@4 B@4 C@4 D@4 A@4 B@4 A@4 B@4 A@4 B@4>".pickRestart({
  A: "[[d2,a2] ~ [d2,a2]@3 [d2,a2]@6 [d2,a2]@2 a2 d3 a2]/2", B: "[[f2,c3] ~ [f2,c3]@3 [f2,c3]@6 [f2,c3]@2 c3 f3 c3]/2",
  C: "[[eb2,bb2] ~ [eb2,bb2]@3 [eb2,bb2]@6 [eb2,bb2]@2 bb2 eb3 bb2]/2", // Eb5
  D: "[[db2,ab2] ~ [db2,ab2]@3 [db2,ab2]@6 [db2,ab2]@2 ab2 db3 ab2]/2", // Db5
})).s("gm_acoustic_bass").gain(0.3)

stack(trumpet, piano, bass)

More by Herbie Hancock