Strudelify

cera store

Neople

KeyF majorTempo130 bpm
0:00/0:00
// cera store — Neople
// 130 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6266803; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 32 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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@2 B C D@2 E@2 F@2 G@4 H@2 I J K@2 L@2 M N O P Q@2 R S T@2>".pickRestart({
  A: "[[bb3,d4,f4]@3 ~@2 [bb5,c6]@5 bb5@4 a5@6 g5@2 f5@2 g4@2 g5@2 g4@4, ~@2 f5@3 ~@11]/2", // Bb Bbsus2
  B: "[g4,e5]@3 c5@2 [e4,g4,c5] d5 eb5", C: "gb4 [gb4,c5] gb5 a5@2 c6@3",
  D: "[c6 bb5 a5 bb5@2 a5@2 f5@3 g5 db5!2 [g4,e5]@2 c5]/2", // C
  E: "[[a3,c4,e4]@2 c7@2 a5@2 c6@2 c7@2 [c4,e4,a4]@2 ~@2 [c4,e4,c5]@4 e5@2 f5@2 g5@2 bb5@2 a5@2 g5@2 [c5,f5] db5]/2", // Am C F5
  F: "[[f4,d5] ~ [f4,d5] ~ f5 [f4,d5]@2 f5@3 g5 e5 [e4,g4] e4 [e4,g4] e4]/2", // Dm Em
  G: "[[c4,e4,g4]@2 ~@2 [g4,e5]@2 ~@2 g5@2 [g4,e5]@4 g5@4 ab5@2 a5@2 eb6@2 d6@2 c6@2 bb5@2 a5@4 ~@2 a5 bb5@3 a5@2 g5@4 f5@4 g5@2 db5@2 e5@2 c5@2 db5@2 bb4@2 a4 bb4]/4", // C
  H: "[b4 c5 c7@2 a5@2 d6@2 c7@2 a5@2 [f5,c6]@2 [a5,f6]@4 e6@4 [g5,c6]@4 f5@6]/2", // F5 Dm C5
  I: "d5 ~ a5 ~ f5 [d6,a6]@2 [ab5,ab6]", J: "[ab5,db6]@3 [g5,g6]@3 [f5,f6]@2",
  K: "[[e5,e6]@2 g5@2 e5 c5@2 [g5,eb6]@2 [f5,ab5] [eb5,g5] [c5,eb5]!2 [ab4,c5] [g4,bb4] [f4,ab4]]/2", // E Cm Fm Eb Cm Ab Gm Fm
  L: "[g4@2 b4 g4@2 d5 e5 f5@3 db5 f5@2 gb5@2 bb5]/2", M: "a5@6 f5@6 c5@2 g5 a5",
  N: "[bb4,g5,bb5]@6 [a4,c5,a5]@4 [g4,c5,g5]@4 f5 g5", O: "[d5,a5]@2 [d5,a5]@2 d6 [a5,a6]@2 db6",
  P: "ab5 g5@2 [c6,g6]@2 f5 [ab5,f6] e5", // C5 Db
  Q: "[[c5,c6]@2 [d5,g5] ~ c6 g5 c6 [d5,g5,bb5]@2 a5 bb5 [gb4,eb5] d5 c5 [gb4,bb4] a4]/2", // C G5 Gm Ebm Gb
  R: "[bb4,d5,f5,bb5] ~ [f4,bb4,d5,f5] ~ [c5,g5,c6]!2 ~ [d5,f5,a5,d6]", // Bb C5 Dm
  S: "~ [c5,f5,a5,c6] c7 [d5,f5,a5,d6] c7 [e5,a5,c6,e6] bb5 a5", // F Dm Am
  T: "[[f4,g4,bb4,d5,f5]@4 f5@2 [g4,a4,c5,e5,g5]@6 [c5,d5,f5,a5,c6]@19 ~]/2", // Gm7 Am7 Dm7
})).s("gm_piano").gain(0.35)

// chords · piano
const piano_2 = note("<A B C D E@2 F@2 G@2 H I J K L@2 M N O P Q R S T U V W X Y Z AA@2>".pickRestart({
  A: "[a2,g3]@3 ~ [bb3,d4,f4,g4]@2 g2@2 g3@2 [bb3,d4,f4]@4 [bb3,db4,e4]@2", // A7 Gm7 Bb Bbdim
  B: "g2 [bb3,d4,e4] [g3,bb3,d4,e4] db3 d4 [g3,bb3,e4] [bb3,d4] [g3,e4]", C: "[a2,a3]@2 [c4,e4] e3 a3 e3 eb3 d3",
  D: "[a3,c4,d4] [bb3,db4] a3 [e4,gb4] a3 [c4,gb4] a3 gb3", // D7 Bbm Esus2 Cdim
  E: "[[g3,bb3,d4] ~ [g3,bb3,d4] ~ d3 [bb3,d4,f4]@2 [g3,bb3,db4,e4]@2 [bb3,db4,e4] [g3,bb3,db4,e4] e3 [bb3,db4] [g3,e4] [bb3,db4,e4] ~]/2", // Gm Bb Gdim Bbdim Gdim Bbm C Bbdim
  F: "[f2@2 [a3,c4,e4] c3 f3 [c3,a3] ~ [f2,f3]@2 [a3,c4,e4] f3 a3@2 f3@2 c3]/2", // Am F Am
  G: "[[g3,bb3,d4] ~ [g3,bb3,d4] ~ f3 [g3,bb3,d4]@2 [g3,bb3,db4,e4]@2 [db4,f4] [g3,bb3,db4,e4] e3 db4 [g3,bb3] db4 [g3,bb3]]/2", // Gm Gdim Db Gdim Gm
  H: "a2 ~ [a3,c4,e4] e3 ~ [f3,c4,e4] eb3 d3", I: "[c4,gb4] [a3,c4,gb4] a2 [eb3,c4] [d3,a3] [c4,gb4] a3 gb3",
  J: "[g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] d3 g3 [bb3,d4,f4]@2 [g3,bb3,db4,e4]", // Gm7 Bb Gdim
  K: "g2 g3 [bb3,db4,e4] g3 [db4,e4] [g3,bb3,e4] db4 a2", // Bbdim Dbm Edim
  L: "[[f3,a3,c4,e4]@2 [f3,a3,c4,e4] ~ f3 [a3,c4,e4] ~ [f3,a3,c4,e4]@3 e3 [e3,a3,c4]@2 f3 a3 c3]/2", // Fmaj7 Am Fmaj7 Am
  M: "[bb3,d4,f4,a4]@2 [bb3,d4,f4,a4] ~ f3 [bb3,d4,f4,a4]@2 bb2", // Bbmaj7
  N: "[eb3,bb3,db4,f4]@2 eb3 [bb3,db4,ab4] bb3@2 [eb3,db4,f4] ~", O: "[a3,c4,e4]@2 [a3,c4,e4] ~ e3 [a3,c4,e4] ~ a3",
  P: "[ab3,c4,e4,gb4]@3 [c4,e4,gb4] eb3@2 [ab3,c4,e4] ~", Q: "[g3,bb3,d4,f4]@2 [g3,bb3,d4,f4] f3!2 [g3,bb3,d4,f4] ~ g3",
  R: "[gb3,bb3,db4,f4]@2 ~ [gb3,bb3,db4] db3@2 [e3,gb3,bb3,db4]@2", S: "[f3,a3,c4]@2 [f3,a3,c4] c3!2 [f3,a3,c4]@2 c3",
  T: "[f3,bb3,c4,e4]@2 c3 f3 [a3,c4,e4] c3 c2@2", U: "[bb2,bb3] ~ [bb3,d4,f4] ~ f3 [bb3,d4,f4,a4] ~ bb2",
  V: "[eb3,bb3,db4,f4] ~ eb3 [bb3,db4,f4] bb2@2 [eb2,eb3] ~", // Bbm Eb
  W: "[a3,c4,e4,g4] ~ [a3,c4,e4] e3!2 [a3,c4,e4] ~ [eb3,c4]", X: "[d3,gb3,a3,c4]@3 [a3,c4] a2@2 [a3,c4] ~",
  Y: "[g2,g3] ~ [g2,g3]@2 [a2,a3]!2 ~ [bb2,bb3]", Z: "~@2 [bb2,bb3]@2 ~@2 [bb2,bb3]@2 ~@2 [f2,f3]@2 c4 g3 f3 c3",
  AA: "[[g1,g2]@4 g2@2 [a1,a2]@4 a2@2 [bb1,bb2]@19 ~]/2", // G A Bb
})).s("gm_piano").gain(0.25)

stack(piano, piano_2)

More by Neople