Strudelify

Inca

Pooh

KeyE minorTempo72 bpm
0:00/0:00
// Inca — Pooh
// 72 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 5/4 at bar 6, 4/4 at bar 8, 5/4 at bar 82, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 85 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(72/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 · epiano2
const epiano2 = note(`<
  A@5 B@2 C D E F G H I J G K I J ~@12 L M N O P Q R S T U V H M W G H X J ~@12 L M N O P Q R S T U V H X J G K I J Y@6
>`.pickRestart({
  A: "[~@12 [c4,e4,g4]@3 [c4,e4,f#4]@3 [c4,e4,g4]@2 [c4,e4,a4]@3 [c4,e4,g4]@3 [c4,e4,f#4]@2 [b3,d4,g4]@3 [b3,d4,f#4]@3 [b3,d4,g4]@2 [b3,d4,a4]@3 [b3,d4,g4]@3 [b3,d4,f#4]@2 [c4,e4,g4]@3 [c4,e4,f#4]@3 [c4,e4,g4]@2 [d4,f#4,a4]@3 [d4,f#4,a4]@3 [d4,f#4]@2 [e4,g4,c5]@3 [d4,f#4,b4]@3 [e4,g4,c5]@2 [f#4,a4,d5]@3 [e4,g4,c5]@2 [f#4,a4,d5]@7, ~@3 c3@4 b2@4 a2@2 b2@2 ~@5]/5", // C F#m7b5 C Am C F#m7b5 G Bm …
  B: "[e4,g4,c5]@3 [d4,f#4,b4]@3 [e4,g4,c5]@2 [f#4,a4,d5]@3 [e4,g4,c5]@3 [f#4,a4,d5]@2", C: "[g4,b4,e5]",
  D: "g5@3 f#5@3 g5@2 a5@3 g5@3 f#5@2, [c4,e4]!2", E: "g5@3 f#5@3 g5@2 a5@3 g5@3 f#5@2, [b3,d4]!2",
  F: "g5@3 f#5@3 g5@2 a5@3 a5@3 f#5@2, [c4,e4]@7 ~ [d4,f#4]@7 ~", G: "g5@3 f#5@3 g5@2 a5@3 g5@3 f#5@2, [b3,e4]!2",
  H: "[c4,e4,g4]@3 [c4,e4,f#4]@3 [c4,e4,g4]@2 [c4,e4,a4]@3 [c4,e4,g4]@3 [c4,e4,f#4]@2", // C F#m7b5 C Am C F#m7b5
  I: "[b3,d4,g4]@3 [b3,d4,f#4]@3 [b3,d4,g4]@2 [b3,d4,a4]@3 [b3,d4,g4]@3 [b3,d4,f#4]@2", // G Bm G Bm7 G Bm
  J: "[c4,e4,g4]@3 [c4,e4,f#4]@2 ~ [c4,e4,g4]@2 [d4,f#4,a4]@3 [d4,f#4,a4]@3 [d4,f#4]@2", // C F#m7b5 C D
  K: "[c4,e4,g4]@3 [c4,e4,f#4]@3 [c4,e4,g4]@2 [c4,e4,a4]@2 ~ [c4,e4,g4]@3 [c4,e4,f#4]@2", // C F#m7b5 C Am C F#m7b5
  L: "[c4,e4,g4]@3 [c4,e4,f#4]@2 ~ [c4,e4,g4]@2 [c4,e4,a4]@3 [e4,g4]@3 [e4,f#4]@2, ~@11 c4@5", // C F#m7b5 C Am Em Esus2
  M: "[b3,d4,g4]@3 [b3,d4,f#4]@2 ~ [b3,d4,g4]@2 [b3,d4,a4]@3 [b3,d4,g4]@2 ~ [b3,d4,f#4]@2", // G Bm G Bm7 G Bm
  N: "[c4,e4,g4]@3 [c4,e4,f#4]@2 ~ [c4,e4,g4]@2 [d4,f#4,a4]@3 [d4,f#4,a4]@2 ~ [d4,f#4]@2", O: "[e4,g4,b4]@15 ~",
  P: "[e3,b3,e4,g4]@2 e3 ~ e3@2 e4@2 [c3,c4,e4,g4]@3 ~@4 [e4,g4], ~@3 [b3,g4]@3 ~@5 [c4,e4,g4]@3 c4@2, ~@3 c3", // Em C Em C
  Q: "[b2,d4,f#4]@2 f#3 ~@3 [d4,f#4]@2 [b2,d4,f#4,a4]@2 f#3 ~@4 d4, ~@3 a4@5 ~@3 [d4,a4]@3 f#4@2, ~@3 d4@2 f#3@3 ~@5 f#3@3, ~@4 b2@3 ~@5 b2@3 ~", // Bm D Bm7 D5
  R: "[b2,b3,d4,f#4]@2 f#3 ~@3 f#4@2 [b2,d#4,f#4,a4]@2 f#3 ~@3 [d#4,f#4]@2, ~@3 b3@5 ~@3 a4@5, ~@3 [d4,f#4]@2 f#3@3 ~@3 f#4@2 f#3@2 ~, ~@4 b2@3 ~@5 b2@3 ~", // Bm B7 D#m D
  S: "[e3,e4,g4]@3 [b3,e4,g4]@2 ~@2 e4 [e4,g4]@2 ~ [b3,g4]@3 e4 g4, ~@5 e3@3 e3 ~ e3@4 ~@2, ~@6 b3@4 ~ e4 ~@2 b3@2", // Em
  T: "[b3,e4,g4]@2 ~@2 e3 ~ [e4,g4] ~ [c3,c4,e4,g4]@2 c3 ~ c3@2 [c3,e4]@2, e3 ~ e3@2 ~ e3@2 ~@4 [c4,e4]@3 c4 ~, ~@3 [b3,g4]@4 ~@4 g4@5", // Em C Em
  U: "[b2,d4,f#4,a4]@2 f#3 ~@4 b3 [b2,b3,d4,f#4]@2 ~@4 [b3,d4,f#4] ~, ~@3 [d4,f#4,a4]@3 d4@2 ~@3 [b3,d4,f#4]@3 ~@2, ~@4 b2@3 ~@5 b2@2 ~@2, ~@5 f#3@3 ~@2 f#3@2 ~ f#3@3", // Bm7 Bm D Bm
  V: "[b2,b3,d4,f#4]@2 f#3 ~@3 [b3,f#4]@2 [b2,d#4,f#4,a4]@2 f#3 ~@3 [d#4,f#4,a4]@2, ~@3 [b3,d4,f#4]@2 f#3@3 ~@4 b2@3 ~, ~@4 b2@2 d4 ~@4 [d#4,f#4,a4]@2 f#3@2 ~", // Bm B5 B7 D#dim Bm D#dim
  W: "[c4,e4,g4]@3 [c4,e4,f#4]@3 [c4,e4,g4]@2 [d4,f#4,a4]@2 ~ [d4,f#4,a4]@3 [b3,d4,f#4]@2", // C F#m7b5 C D Bm
  X: "[b3,d4,g4]@3 [b3,d4,f#4]@2 ~ [b3,d4,g4]@2 [b3,d4,a4]@3 [b3,d4,g4]@3 [b3,d4,f#4]@2", // G Bm G Bm7 G Bm
  Y: "[[e4,g4,c5]@3 [d4,f#4,b4]@3 [e4,g4,c5]@2 [f#4,a4,d5]@3 [e4,g4,c5]@2 [f#4,a4,d5]@7 [e4,g4,c5]@3 [d4,f#4,b4]@3 [e4,g4,c5]@2 [f#4,a4,d5]@3 [e4,g4,c5]@3 [f#4,a4,d5]@2 [e4,g4,c5]@3 [d4,f#4,b4]@3 [e4,g4,c5]@2 [f#4,a4,d5]@3 [e4,g4,c5]@3 [f#4,a4,d5]@2 [g4,b4,e5]@42 ~@2]/6", // C Bm C D C D C Bm …
})).s("gm_epiano2").gain(0.28).pan(0.7)

// bass · electric bass finger
const bass = note("<~@3 A@2 B@2 C ~@11 D E D E D E D E D E D E ~@18 D E D E D E D E D E D E ~@18 F@5 ~>".pickRestart({
  A: "[~@12 c2@3 b1@3 c2@2 d2@3 c2@2 d2 d2@6]/2", B: "c2@3 b1@3 c2@2 d2@3 c2@3 d2@2", C: "e2",
  D: "e2 e1 ~@2 e2 e1 ~@3 a1 b1 d2 ~ g2@3", E: "e2 e1 ~@2 e2 e1 ~@2 c2@3 b1@3 d2@2",
  F: "[c2@3 b1@3 c2@2 d2@3 c2@2 d2 d2@6 c2@3 b1@3 c2@2 d2@3 c2@3 d2@2 c2@3 b1@3 c2@2 d2@3 c2@3 d2@2 e2@16 ~@12]/5",
})).s("gm_electric_bass_finger").gain(0.6)

// bass · fretless bass
const bass_2 = note(`<
  A@4 ~@4 B C D E B C D E B C D ~@12 F G H I J K L M J K L N O P E Q R S ~@12 F G H I J K L M J K L Q R S E B C D ~@6
>`.pickRestart({
  A: "[~@3 c2@4 b1@4 a1@2 b1@2 ~]/4", B: "c2", C: "b1", D: "a1 b1", E: "e2", F: "c2@3 c3 g3@3 c3",
  G: "b2@6 g3 ~ a3 g3@5 f#3@2", H: "a3 b3", I: "e3", J: "e2@3 f#2@3 g2@2 c3@3 g2@5",
  K: "b1@3 f#2@3 b2@2 b1@3 c3 b2 a2 g2 f#2", L: "b1@4 ~ b1 d2 e2 ~ d#2 ~ f#2 ~ f#2 ~@2",
  M: "e2 e2@2 d2 e2@2 b1@2 ~ a1@3 b1 d2 e2 ~", N: "c3", O: "b2", P: "a2 b2", Q: "c3@7 c3", R: "b2@3 d3 g3@4",
  S: "e3 f#3",
})).s("gm_fretless_bass").gain(0.57)

// chords · pad warm
const pad_warm = note(`<
  A@4 ~@3 B C D E B C D E B C D E F ~@11 C D E G H I J G H I J C D E B C D E F ~@11 C D E G H I J G H I J C D E B C D E
  ~@3 K@3
>`.pickRestart({
  A: "[~@3 [c3,c4,e4,g4]@4 [b2,b3,d4,g4]@4 [a2,c4,e4,g4]@2 [b2,d4,f#4,a4]@2 ~]/4", B: "[e3,g3,b3,e4]",
  C: "[c3,c4,e4,g4]", D: "[b2,b3,d4,g4]", E: "[a2,c4,e4,g4] [b2,d4,f#4,a4]", F: "[e3,g3,b3,e4] ~", G: "[e3,b3,e4,g4]",
  H: "[e3,b3,e4,g4] [c3,c4,e4,g4]", I: "[b2,d4,f#4,a4]", J: "[b2,b3,d4,f#4] [b2,b3,d#4,f#4]",
  K: "[~@2 [e3,g3,b3,e4]@21 ~]/3", // Em
})).s("gm_pad_warm").gain(0.15)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@3 A@2 B@2 C ~@71 D@6>".pickRestart({
  A: "[~@12 [e4,g4,c5]@3 [d4,f#4,b4]@3 [e4,g4,c5]@2 [f#4,a4,d5]@3 [e4,g4,c5]@2 [f#4,a4,d5]@7]/2", // C Bm C D C D
  B: "[e4,g4,c5]@3 [d4,f#4,b4]@3 [e4,g4,c5]@2 [f#4,a4,d5]@3 [e4,g4,c5]@3 [f#4,a4,d5]@2", C: "[g4,b4,e5]@15 ~",
  D: "[[e4,g4,c5]@3 [d4,f#4,b4]@3 [e4,g4,c5]@2 [f#4,a4,d5]@3 [e4,g4,c5]@2 [f#4,a4,d5]@7 [e4,g4,c5]@3 [d4,f#4,b4]@3 [e4,g4,c5]@2 [f#4,a4,d5]@3 [e4,g4,c5]@3 [f#4,a4,d5]@2 [e4,g4,c5]@3 [d4,f#4,b4]@3 [e4,g4,c5]@2 [f#4,a4,d5]@3 [e4,g4,c5]@3 [f#4,a4,d5]@2 [g4,b4,e5]@42 ~@2]/6", // C Bm C D C D C Bm …
})).s("gm_string_ensemble_1").gain(0.32).pan(0.4)

// chords · pad halo
const pad_halo = note("<~@12 A B C D A B C ~@12 A B C E ~@26 A B C E ~@10 D A B C ~@6>".pickRestart({
  A: "[c5,e5,g5]@13 ~@3", B: "[b4,d5,g5]@13 ~@3", C: "~@4 [b4,d5,f#5,a5]@3 ~", D: "[e4,g#4,b4,e5]@15 ~",
  E: "[e4,g#4,b4,e5]", // E
})).s("gm_pad_halo").gain(0.64)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@7 A B C D E B C D F B C D G H G H G H G H G H G H I J K L M N O P M Q O B C D R B C D G H G H G H G H G H G H I J K
  L M N O P M Q O B C D F B C D ~@6
>`.pickRestart({
  A: "~@2 b2 e3 [e3,g3] ~ b2 e3 [e3,g3] ~ b2 e3 [e3,g3]!2 ~@2", B: "c3 g2 c3 g3 ~@5 c3 e3 g3 ~@2 c3@2",
  C: "b2 g3 d3 g3 ~@5 b2 d3 c3 b2 g2@3", D: "a2 e3 c3 e3 ~@4 b2 d3 b2 f#3@5",
  E: "[g3,a3] [d3,f#3] ~ e3 ~ b2@3 a2 [b2,d3] ~ e3 ~ b2 ~@2", F: "[g3,a3] [d3,f#3] ~ e3 ~ b2@2 a2 b2 d3 ~ e3 ~ b2 ~@2",
  G: "e3!8 b2!8", H: "e3!8 [e3,g3,c4]@3 [d3,f#3,b3]@3 [f#3,a3,d4]@2", I: "c3!16", J: "b2!16", K: "a2!8 b2!8",
  L: "[e3,f3] [f#3,g3] [g#3,a3] [a#3,b3] [b3,c4] [g3,a3] [e3,g3] [d3,f#3] [a3,b3] [f#3,g3] [e3,f#3] [g3,b3] [c4,d4] [b3,c4] [g3,a3] [d3,f#3]", // Fmaj7 Gmaj7 Amaj7 Bmaj7 Cmaj7 Gsus2 Em D …
  M: "[e3,b3]@3 [f#3,b3]@3 [g3,b3]@2 [c4,e4]@3 [g3,c4]@5", N: "[b2,d4]@3 [f#3,d4]@3 [b3,d4]@2 d4@3 c4 b3 a3 g3 f#3",
  O: "b3!3 [b2,b3]!13, b2@3 ~@13", P: "b3!3 a3 b3@2 g3!2 a3 b3!3 d4 e4!2 ~",
  Q: "b2@3 f#3@3 b3@2 d4 c4 d4 c4 b3@2 [b2,f#3]@2", R: "~@10 [b3,c4] a3 [a3,b3] g3 [g3,a3] f#3",
})).s("gm_distortion_guitar").gain(0.37).pan(0.4)

// chords · overdriven guitar
const overdriven_guitar = note("<~@19 A B A B A B A B A B A B ~@18 A B A B A B A B A B A B ~@24>".pickRestart({
  A: "[g3,b3,e4] e3 ~@2 [g3,b3,e4] e3 ~@2 [d3,f#3,b3]@2 ~@2 [f#3,b3,d4]@2 ~@2", // Em Bm
  B: "[g3,b3,e4] e3 ~@2 [g3,b3,e4] e3 ~@2 c4 [e3,g3]@2 b3 [d3,f#3]@2 d4 [f#3,a3]", // Em D F#m
})).s("gm_overdriven_guitar").gain(0.17).pan(0.4)

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

// drums · snare
const snare = s("sd").struct("<~@19 A@12 ~@4 B@6 C ~@7 A@12 ~@4 B@6 C ~@13>".pickRestart({
  A: "~@2 x ~@4 x", B: "~ x ~ x", C: "~@2 x ~@3 x!2",
})).gain(0.45)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@19 A B A B A B A B A B A B A@3 C D A@5 E F ~@6 A B A B A B A B A B A B A@3 C D A@5 E ~@13
>`.pickRestart({
  A: "x!16", B: "x!8 ~ x!2 ~ x!2 ~ x", C: "x!7 ~@9", D: "~ x!11 ~ x!3", E: "x!14 ~ x", F: "x",
})).gain(0.2)

// drums · low tom
const low_tom = s("lt").struct("<~@6 [~@15 x] ~@75 [~@3 x ~@12] ~@2>").gain(0.45)

// drums · mid tom
const mid_tom = s("mt").struct("<~@3 A B C D E ~@26 F ~@29 F ~@14 G H I J ~@2>".pickRestart({
  A: "~@12 x!4", B: "~@2 x ~@4 x ~@4 x ~@3", C: "x!4 ~@12", D: "~ x!3 ~@8 x!3 ~", E: "x", F: "~@13 x ~ x",
  G: "x!4 ~@2 x ~@4 x ~@4", H: "x ~@3 x!4 ~@8", I: "~@5 x!3 ~@8", J: "x!3 ~ x ~@11",
})).gain(0.45)

// drums · high tom
const high_tom = s("ht").struct("<~@4 A B C ~@27 D ~@29 D ~@14 E F G ~@3>".pickRestart({
  A: "~@4 x!3 ~ x!3 ~@5", B: "~@5 x!2 ~@2 x!3 ~ x!2 ~", C: "x ~@4 x!2 ~@2 x!3 ~@4", D: "~@7 x!3 ~ x ~@4",
  E: "~@8 x!3 ~ x!3 ~", F: "~@9 x!2 ~@2 x!3", G: "~ x!2 ~ x ~@4 x!2 ~@2 x!3",
})).gain(0.45)

// drums · crash
const crash = s("cr").struct(`<
  ~@20 A ~ A ~ A ~ A ~ A ~ A ~@4 B ~@5 C ~@8 A ~ A ~ A ~ A ~ A ~ A ~@4 B ~@5 C ~@13
>`.pickRestart({
  A: "~@8 x ~@2 x ~@2 x ~", B: "x ~@2 x", C: "~@7 x",
})).gain(0.3)

stack(
  epiano2, bass, bass_2, pad_warm, string_ensemble_1, pad_halo, distortion_guitar, overdriven_guitar, kick, snare,
  hihat, low_tom, mid_tom, high_tom, crash
)

More by Pooh