Strudelify

native dancer

sakanaction

KeyE♭ majorTempo130 bpm
0:00/0:00
// native dancer — sakanaction
// 130 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5874318; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 162 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 B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C@3 A B A B A B A B A B A B A B A B A B A
  B A B A B ~@10 A B A B A B A B A B A B A B A B A B A B A B A B A B A B D ~@17 E@9 F@32
>`.pickRestart({
  A: "[ab2,c4,f4] ~@2 [bb2,bb3,eb4] ~ bb3 f4 bb4", B: "[c3,c4,f4] ~@2 [c3,c4,eb4] ~@2 [g2,g3,c4]@2",
  C: "[[ab2,c4]@3 [bb2,d4]@4 [c3,eb4]@16 ~]/3", D: "[ab2,c4,f4] ~@2 [bb2,bb3,eb4] ~@4",
  E: "[d5,f5] bb5 d6@2 [d5,f5] bb5 d6@2 [d5,f5] bb5 d6@2 [d5,f5] bb5 d6@2", // Dm
  F: "c5@2 eb5@2 g5 eb5@2 c6 c5@2 eb5@2 g5 eb5@2 c6",
})).s("gm_piano").gain(0.27)

// other · piano · "ピアノ"
const piano_2 = note(`<
  ~@23 A B C B C B C B C B C B C B C D@3 ~@16 E C B C B C B C F G F G H G H I ~ J ~@31 K L K L K L K L K L K L K L K L K
  L K L K L K L ~@32
>`.pickRestart({
  A: "~@7 bb4", B: "eb4@2 ~@2 bb2 ~@3, ab2 ~@7", C: "c3 d4 eb4 d4 eb4 d4 eb4 [bb2,d4]",
  D: "[[ab2,g4]@3 [bb2,f4]@4 [c3,eb4]@16 ~]/3", E: "ab2 ~@3 bb2 ~@3", F: "[c2,ab2] ~@3 [d2,bb2] ~@3, eb4 ~@3",
  G: "[eb2,c3] d4 eb4 d4 eb4 d4 eb4 [d2,bb2,d4]", H: "[c2,ab2] ~@3 [d2,bb2] ~@3, eb4@15 ~",
  I: "[eb2,c3] d4 eb4 d4 eb4 d4 eb4 d4", // Cm
  J: "[c4,eb4,bb4]@2 ~ [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@3 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@2", // Cm7
  K: "g5 g4 ~ g4 f5 bb4 ~ f5 ~@3 f5 g4 ~ d5 ~", L: "g4 ~ f5 g4 ~ g4 f5 g4 ~ bb4 ~@2 c5 g4 d5 g4",
})).s("gm_piano").gain(0.33)

// chords · piano · "ピアノ"
const piano_3 = note(`<
  ~@41 A ~ A ~ B ~ A ~ B ~ A ~ B ~ A ~ A ~ A ~ A ~ A ~ C@4 ~@11 D@2 ~@14 D@2 ~@8 E F E F E F E F E F E F E F E F ~@8 G@2
  H ~ G@2 H ~ G@2 H ~ G@2 H ~ I@2 J ~ I@2 J ~ I@2 J ~ I@2 J K
>`.pickRestart({
  A: "[g4,bb4]@3 [g4,bb4]@4 ~", B: "~@3 [g4,bb4]@4 ~", C: "[[g4,bb4]@6 [g4,bb4]@25 ~]/2",
  D: "[~@10 bb4 c4@2 eb4 bb4 eb4@2 ~@15]/2", E: "[c4,f4] ~@2 [bb3,eb4]@4 ~", F: "[c4,f4] ~@2 [bb3,eb4]@3 [bb3,c4]@2",
  G: "[[g4,bb4,bb5]@6 [g4,bb4,bb5]@2 ~@2 [g4,bb4,bb5]@21 ~]/2", H: "[g4,bb4,bb5]@6 [g4,bb4,bb5]@9 ~",
  I: "[[g4,bb4]@6 [g4,bb4]@2 ~@2 [g4,bb4]@21 ~]/2", J: "[g4,bb4]@6 [g4,bb4]@9 ~", K: "~@7 [g4,bb4]",
})).s("gm_piano").gain(0.33)

// other · piano · "ピアノ"
const piano_4 = note(`<
  ~@39 A@2 B C D E B F G H B C D E B F G H I@6 J@2 K@8 ~@2 L M D N D M D M D M D M D M O@14 P@2 ~ B C D E B F G H B C D
  E B F Q R S T U V U T W X Y Z AA AB Y Z AA AC Y Z AA AB Y Z AD@2 AE@2 AF@2 AE@2 AG@2 AE@2 AF@2 AE@2 AH@2
>`.pickRestart({
  A: "[~@4 d4@2 eb4@2 d4@2 eb4@8 d4@2 eb4@2 d4@2 eb4@2 d4@2 eb4 ~@3]/2",
  B: "ab1@3 eb2 bb2@2 ab2@2 g2 ~ f2 ~ eb2 ~ d2 ~", C: "c2 ~ c2 ~ c2 ~ g1 ~", D: "ab1 ~@2 bb1 ~@4",
  E: "g1 bb1 d2 c2 ~@2 g1@2", F: "c2@2 ~@2 bb1@2 ~@2 c2 ~ g1@4 g1@2", G: "ab1 ~@2 bb1 ~ bb1!2 ~",
  H: "c2@3 g2@3 bb2@2 c2@2 ~@2 c2@2 ~@2",
  I: "[ab1@2 ~@2 ab1@2 eb4@2 [bb1,g4]@2 bb4@2 eb5@2 ~@2 c2@3 g2@3 bb2@2 c2@2 ~@2 c2@2 bb1@2, c4@6 ~@8 d5@17 ~]/2", // Eb
  J: "[ab1 ~ ab1 eb4 [bb1,g4] bb4 eb5 c2 c2 d2 eb2 g2 c3 d3 eb3 g3, c4@6 ~@8 d5@17 ~]/2", // Eb
  K: "[c4@6 eb4@2 g4@2 bb4@2 eb5@2 d5@17 ~]/2", L: "ab1@2 ~@2 bb2 bb2@2 ~@3 d3@4 bb2 g2", M: "c2 ~@2 c2 ~@2 g1@2",
  N: "c2 ~@2 c2 ~ c2 g1@2", O: "[c4@3 [bb1,eb4] g4 bb4 eb5 bb1 c2 ~@2 c2 ~@2 g1@2, ab1@2 ~@12 d5@17 ~]/2",
  P: "[c4@6 [bb1,eb4]@2 g4@2 bb4@2 d5@2 f5@17 ~, ab1 ~@15]/2", Q: "ab1 ab2 ab1 bb1@2 bb2 bb1 b1",
  R: "c2@3 g2@3 bb2@4 b2@2 c3@4", S: "ab1 ~ ab1 ~ bb1 ~@2 c2", T: "c2@3 g2@3 bb2@2 c2@2 ~@2 c2@2 bb1@2",
  U: "ab1 ~ ab1 ~ bb1 ~@3", V: "c2@3 g2@3 bb2@2 c2@2 c2 eb2 f2@4", W: "ab1 ~ ab1 ~ bb1 ~ d3 eb3",
  X: "d3@2 c3 c3@2 g2 eb3@4 eb3@2 eb3@2 eb3@2", Y: "ab1@3 ab2@2 ~ bb1@6 ~@2 bb1@2",
  Z: "c2@3 bb1@2 ~ c2@3 bb1 c2 eb2 f2@4", AA: "ab1@3 ab2@2 ~ g2@4 bb1@4 bb1!2",
  AB: "c2@3 bb1@2 ~ ab2@2 g2@2 eb2@2 c2@2 bb1@2", AC: "c2@3 bb1@2 ~ c3@3 g2@3 c2@2 bb1@2",
  AD: "[ab1@3 ab2@2 ~ g2@4 eb2@2 bb1@2 c2@4 bb1@2 c2@2 ab2 g2@2 ab2 g2 ab2 bb2@4]/2",
  AE: "[ab1@3 ab2@2 ~ eb4@2 g4@2 bb4@2 eb5@2 bb1@2 c2@3 bb1@2 ~ c2@3 bb1 c2 eb2 f2@4, c4@6 bb1@6 ~@2 d5@17 ~]/2",
  AF: "[ab1@3 ab2@2 ~ eb4@2 g4@2 bb4@2 eb5@2 bb1!2 c2@3 bb1@2 ~ ab2 g2@3 eb2@2 c2@2 bb1@2, c4@6 g2@4 bb1@4 d5@17 ~]/2",
  AG: "[ab1@3 ab2@2 ~ eb4@2 g4@2 [eb2,bb4]@2 [bb1,eb5]@2 c2@4 d2@2 eb2@2 g2@2 c3@2 d3@2 eb3@2 g1@2, c4@6 g2@4 ~@4 d5@17 ~]/2", // Eb5
  AH: "[ab1@3 ab2@2 ~ eb4@2 g4@2 [eb2,bb4]@2 [bb1,eb5]@2 b1@2 c2@2 d2@2 eb2@2 g2@2 c3@2 d3@2 eb3@2 g3@2, c4@6 g2@4 ~@4 d5@17 ~]/2", // Eb5
})).s("gm_piano").gain(0.39)

// chords · piano · "ピアノ"
const piano_5 = note("<~@75 A@29 B C ~@8 D E@7 F G H I H G J K L M N O L P N O L M N O L P N Q A@16>".pickRestart({
  A: "[c4,eb4,bb4]@2 ~ [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@3 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@2", // Cm7
  B: "[c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4]", // Cm7
  C: "[c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@4", // Cm7
  D: "~@8 c5@2 eb5@2 g5 eb5@2 c6", E: "c5@2 eb5@2 g5 eb5@2 c6 c5@2 eb5@2 g5 eb5@2 c6", F: "ab2 ~ ab2 ~ bb2 ~@2 c3",
  G: "c3@3 g3@3 bb3@2 c3@2 ~@2 c3@2 bb2@2", H: "ab2 ~ ab2 ~ bb2 ~@3", I: "c3@3 g3@3 bb3@2 c3@2 c3 eb3 f3@4",
  J: "ab2 ~ ab2 ~ bb2 ~ d4 eb4", K: "d4@2 c4 c4@2 g3 eb4@4 eb4@2 eb4@2 [eb4,g5]@2",
  L: "[c4,eb4,bb4]@2 ~ [c4,eb4,bb4] [c4,eb4,bb4,eb5]@2 [c4,eb4,bb4] ~ eb5@2 [c4,eb4,bb4] ~@2 [c4,eb4,bb4] [c4,eb4,g4,bb4]@2, bb5@3 ~@3 eb5@2 ~@4 ab4@2 ~@2, ~@7 [c4,eb4,bb4]@3 ~ [c4,eb4,bb4]@2 ~@3", // Cm7
  M: "[c4,eb4,g4,bb4]@2 ~ [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@3 [c4,eb4,bb4] ~@2 [c4,eb4,bb4] [c4,eb4,g4,bb4]@2, ~@2 eb5@2 ~@2 eb5@2 ~@3 [c4,eb4,bb4]@2 ~@3, ~@6 g4 ~", // Cm7
  N: "[c4,eb4,g4,bb4]@2 ~ [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@3 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4,f5]@2, ~ eb5 ~ eb5 ~ f5@2 ~", // Cm7
  O: "[c4,eb4,bb4]@2 ~ [c4,eb4,bb4] [c4,eb4,bb4,eb5]@2 [c4,eb4,bb4] [c4,eb4,bb4]@3 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4,eb5]@2, f5@3 ~@3 f5@2 ~@2 eb5@2 ~@4", // Cm7
  P: "[c4,eb4,g4,bb4]@2 ~ [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@3 [c4,eb4,bb4] ~@2 [c4,eb4,bb4] [c4,eb4,g4,bb4]@2, ~ eb5 ~ eb5 ~ g4!2 ~, ~@11 [c4,eb4,bb4]@2 ~@3", // Cm7
  Q: "[c4,eb4,bb4]@2 ~ [c4,eb4,bb4] [c4,eb4,bb4,eb5]@2 [c4,eb4,bb4] [c4,eb4,bb4]@3 [c4,eb4,bb4] [c4,eb4,bb4]@2 [c4,eb4,bb4] [c4,eb4,bb4]@2, f5@3 ~@3 f5@2 ~@2 eb5@2 ~@4", // Cm7
})).s("gm_piano").gain(0.19)

// drums · kick
const kick = s("bd").struct(`<
  ~@41 A B A B A B A B A B A B A B A B A B A B A B A C ~@8 D ~ A B A B A B A B A B A B@2 E B@6 A B A B@2 A@2 B@2 ~@2 B@4
  A B@3 A B@14 F B@32
>`.pickRestart({
  A: "x ~ x ~ x ~ x!2", B: "x!4", C: "x ~ x ~ x!4", D: "x!2 ~ x!3 ~ x", E: "x ~ x ~ x!3 ~", F: "x!8",
})).gain(0.24)

// drums · snare
const snare = s("sd").struct("<~@72 A B ~@45 C D E F@6 G H I@31 D>".pickRestart({
  A: "~@15 x", B: "~ x ~@2 x ~@2 x ~ x ~@2 x!2 ~ x", C: "~@3 x", D: "~@2 x ~@3 x!2", E: "~ x ~@2 x ~@2 x ~ x ~ x!5",
  F: "~@3 x ~@2 x ~@4 x ~ x!3", G: "~@3 x ~@2 x ~@5 x ~@3", H: "x!8", I: "~ x ~ x",
})).gain(0.24)

// drums · clap
const clap = s("cp").struct(`<
  ~@24 A B A B A B A B A B A B A B A C ~@49 A B A B A B A B A B A B A B A ~@3 D ~ E ~ D ~ E ~ D ~ E ~ D ~@42
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@4 x", C: "~ x ~@2", D: "~@3 x", E: "~@7 x",
})).gain(0.24)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@41 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 C ~@8 D ~ A@13 E A@14 E ~@2 A E A B A E A B A E A B A F ~@10 G H@3 G H@3 G H@3
  G H@3 G H@3 G H@3 G H@3 G H@2 ~
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~@2 x!2", C: "~ x ~@6", D: "~@15 x", E: "~ x ~ x ~ x ~@2", F: "~ x ~ x ~@4",
  G: "~ x!3", H: "x!4",
})).gain(0.24)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@44 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 B C ~ C ~@5 D ~@14 E ~@14 E ~@3 E ~ A ~ E ~ A ~ E ~ A ~ F D G H@7 I J@31 K
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@3 x ~ x!3", C: "x", D: "x!8", E: "~@7 x", F: "~@5 x!3", G: "x!6 ~@2", H: "~ x!3 ~ x!2 ~",
  I: "~ x!7", J: "~ x ~ x ~ x ~ x", K: "x!7 ~",
})).gain(0.24)

// drums · crash
const crash = s("cr").struct(`<
  ~@41 A ~@7 A ~@7 A ~@7 A ~@9 A ~@30 A ~@7 A ~@7 A ~ A ~ A ~ A@3 ~@3 A ~@3 A ~@3 A ~@2 B A ~@3 A ~@2 B A ~@3 A ~@2 B
>`.pickRestart({
  A: "x", B: "~@7 x",
})).gain(0.24)

stack(piano, piano_2, piano_3, piano_4, piano_5, kick, snare, clap, hihat, open_hat, crash)