Strudelify

Coconut Mall

Nintendo

KeyF majorTempo131 bpm
0:00/0:00
// Coconut Mall — Nintendo
// 131 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5981722; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 68 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(131/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · piccolo
const piccolo = note(`<
  ~ A@2 B ~@5 C D E F G F H ~ I ~ J K L M N@2 O P@2 Q@2 A@5 R ~@5 C D E F G F H ~ I ~ J K L M N@2 O P@2 Q@2 A@5 R
>`.pickRestart({
  A: "bb6 ~ bb6 ~ f6 ~@2 bb6 ~ bb6 ~ bb6 f6 ~ f6 ~", B: "~ eb7@2 ~", C: "~@14 c7 ~",
  D: "f7 ~ d7 ~ c7 ~ bb6 ~ a6 bb6 b6 c7 ~ f6 ~ d6", E: "a6 ~ f6 ~ d6 e6 ~ f6 ~@8",
  F: "d6 ~ eb6 ~ e6 ~@2 d6!2 ~@2 d6 e6 ~ c6 ~", G: "d6 ~ d6 ~ e6 ~@3 d6 ~ f6 ~ f6 ~@3",
  H: "d6 ~ d6 ~ e6 ~@5 f7 ~ f6 ~@3", I: "~@10 bb5 f6 f7 ~@3", J: "~@11 eb5 f5 ~ g5 ~",
  K: "f5 ~ a5 c6 ~ e6 ~ g6 ~ e6 ~ c6 ~@2 a5 [g5,ab5]", L: "f5 ~ a5 ~ c6 e6@2 g6 e6 d6 b5 ~ g6 ~ a6 ~",
  M: "bb6 ~ a6 ~ g6 ~ f6 ~ d6!2 eb6 f6 ~ bb6 ~ f6", N: "[eb6 f6 eb6 c6 g6 ~ bb6 ~ a6 bb6 g6 a6 bb5 c6 d6 f6@17]/2",
  O: "~@4 bb5@2 ~@2 bb5@3 c6@2 db6@3", P: "[d6@6 bb5@2 d6@12 ~@2 d6@2 c6@3 d6@2 eb6@3]/2",
  Q: "[e6@6 c6@2 e6@12 ~@2 e6@2 d6@3 e6@2 f6@3]/2", R: "~@2 bb6 ~ bb6 ~@2 bb6@3 bb6 ~ bb6 ~@3",
})).s("gm_piccolo").gain(0.4)

// other · flute
const flute = note(`<
  A B C D E F E G E H I J E F E K L M N O P Q R S@2 T U@2 V@2 W X Y Z ~ AA E F E G E H I J E F E K L M N O P Q R S@2 T
  U@2 V@2 W X Y Z ~ AA
>`.pickRestart({
  A: "e6 ~ c6 f5 ~ e6 ~ d6 ~ f5 ~ d6 c5 ~ d6 ~", B: "a5 ~ f5 c5 ~ a5 ~ bb5 ~ eb5 ~ bb5 eb5 ~ g5 ~",
  C: "e6 ~ c6 f5 ~ e6 ~ d6 ~ f5 ~ d6 c6 ~ f5 ~", D: "a5 ~ f5 ~@5 g5 ~ g5 ~ g5 ~ g5 ~",
  E: "d5 ~ eb5 ~ e5@3 d5 ~ d5 ~ d5 f5 ~ c6 ~", F: "d6 ~ c6 ~ d6 ~ c6 ~ a5 [a5,bb5] g5 f5 ~@2 c5 ~",
  G: "f6 ~ c6 ~ a5 [a5,bb5] g5 f5 ~@6 c5 db5", H: "d6 ~ c6 ~ d6 ~ c6 ~ a5 [a5,bb5] g5 f5 ~@2 c6 ~",
  I: "f6 ~ d6 ~ c6 ~ bb5 ~ a5 bb5 b5 c6 ~ f6 ~ d5", J: "a5 ~ f5 ~ d5 e5 ~ f5 ~@5 b4 c5 db5",
  K: "f6 ~ c6 ~ a5 [a5,bb5] g5 f5 ~@6 bb5 [f5,g5]", L: "eb5@2 g5 bb5 ~ eb6 ~ f6 ~ d6 ~ bb5 ~@2 f5@2",
  M: "eb5 ~ g5 bb5 ~ eb6 ~ f6 ~ d6 ~@2 [d6,f6] ~ g6 ~", N: "ab6 ~ g6 ~ f6 ~ db6 ~ c6!2 db6 eb6 ~ f6 ~ c6",
  O: "db6 ~ c6 ~ bb5 ~ ab5 g5 ~ eb5 ~ eb5 f5 ~ g5 ~", P: "f5 ~ a5 c6 ~ e6 ~ g6 ~ e6 ~ c6 ~@2 a5 [g5,ab5]",
  Q: "f5 ~ a5 ~ c6 e6@2 g6 e6 d6 b5 ~ g5 ~ a5 ~", R: "bb5 ~ a5 ~ g5 ~ f5 ~ d5!2 eb5 f5 ~ bb5 ~ f5",
  S: "[eb5 f5 eb5 c5 g5 ~ bb5 ~ a5 bb5 g5 a5 bb5 c6 d6 f6@16 ~]/2", T: "~@4 bb5@2 ~@2 bb5@3 c6@2 db6@3",
  U: "[d6@6 bb5@2 d6@11 ~@3 d6@2 c6@3 d6@2 eb6@3]/2", V: "[e6@6 c6@2 e6@11 ~@3 e5@2 d5@3 e5@2 f5@3]/2",
  W: "d6 ~ f5 ~ bb5 d6 ~ c6 ~ c6 ~ e5 c6 ~ e5 ~", X: "bb5 ~ d5 ~ f5 bb5 ~ a5 ~ a5 ~ c5 a5 ~ c5 ~",
  Y: "d6 ~ f5 ~ bb5 d6 ~ c6 ~ c6 ~ ab5 c6 ~ ab5 ~", Z: "bb5 ~ db5 ~ e5 bb5 ~ ab5 ~ ab5 ~ e5 ab5 ~@3",
  AA: "c5 db5 d5 db5 c5 db5 d5 db5 c5 [d5,eb5] e5 [f5,gb5] g5 [ab5,a5] bb5 [b5,c6]", // Ebmaj7 Gbmaj7 Amaj7 Cmaj7
})).s("gm_flute").gain(0.4)

// other · flute
const flute_2 = note(`<
  A B C D E F G H E F I J E F G K L M N O P Q R S ~ T U@2 V@2 W X Y Z ~ AA E F G H E F I J E F G K L M N O P Q R S ~ T
  U@2 V@2 W X Y Z ~ AA
>`.pickRestart({
  A: "a5 ~ f5 c5 ~ a5 ~ g5 ~ f5 ~ g5 c5 ~ g5 ~", B: "f5 ~ f5 c5 ~ a5 ~ g5 ~ eb5 ~ g5 eb5 ~ g5 ~",
  C: "a5 ~ f5 c5 ~ a5 ~ g5 ~ f5 ~ g5 f5 ~ c5 ~", D: "c5 ~ a4 ~@5 d5 ~ d5 ~ d5 ~ d5 ~",
  E: "d5 ~ eb5 ~ e5@3 d5 ~ d5 ~ d5 f5 ~ c6 ~", F: "bb5 ~ a5 ~ bb5 ~ a5 ~ g5 f5 e5 f5 ~@2 c5 ~",
  G: "d5 ~ eb5 ~ e5@3 d5 ~ d5 ~ d5 f5 ~ c5 ~", H: "f5 ~ c5 ~ g5 f5 e5 f5 ~@6 c5 db5",
  I: "f5 ~ d5 ~ c5 ~ bb4 ~ a4 bb4 b4 c5 ~ d5 ~ d5", J: "f5 ~ f5 ~ d5 e5 ~ f5 ~@5 b4 c5 db5",
  K: "f5 ~ c5 ~ g5 f5 e5 f5 ~@8", L: "~@2 bb4 ~@3 g5 ~@3 ab4 ~@3 f5 ~", M: "~@2 bb4 ~@3 g5 ~@3 a4 ~@3 f5 ~",
  N: "~@2 f5 ~@3 ab5 ~@3 eb5 ~@3 g5 ~", O: "~@2 ab4 ~@3 f5 ~@3 db5 ~@3 bb4 ~", P: "~@2 c5 ~@3 a4 ~@3 bb4 ~@3 g4 ~",
  Q: "~@2 c5 ~@3 a4 ~@3 b4 ~@3 g4 ~", R: "~@2 eb5 ~@3 bb4 ~@3 d5 ~@3 bb4 ~", S: "~@2 bb4 ~@3 g5 ~@3 eb5 ~@3 d5 ~",
  T: "~@4 bb4@2 ~@2 bb4@3 c5@2 db5@3", U: "[d5@6 bb4@2 d5@11 ~@3 d5@2 c5@3 d5@2 eb5@3]/2",
  V: "[e5@6 c5@2 e5@11 ~@3 e5@2 d5@3 e5@2 f5@3]/2", W: "bb5 ~ f5 ~ bb5 d6 ~ a5 ~ a5 ~ e5 a5 ~ e5 ~",
  X: "f5 ~ d5 ~ f5 bb5 ~ a5 ~ a5 ~ c5 a5 ~ c5 ~", Y: "bb5 ~ f5 ~ bb5 d6 ~ ab5 ~ ab5 ~ e5 ab5 ~ e5 ~",
  Z: "e5 ~ db5 ~ e5!2 ~ e5 ~ e5 ~ e5 ab5 ~@3", AA: "~@4 c5 db5 d5 db5 f4 [g4,ab4] a4 [bb4,b4] c5 [db5,d5] eb5 [e5,f5]",
})).s("gm_flute").gain(0.4)

// other · flute
const flute_3 = note(`<
  A@2 B C D E D F D E G H D E D F I@2 J K L@2 M N O P Q R O S T U V W ~@2 D E D F D E G H D E D F I@2 J K L@2 M N O P Q
  R O S T U V W ~@2
>`.pickRestart({
  A: "[c5@15 ~]/2", B: "f4@15 ~", C: "a4 ~ f4 ~@5 g4 ~ g4 ~ g4 ~ g4 ~", D: "g4@2 ~@2 c4@3 f4 ~ f4 ~ f4!2 ~ gb4 ~",
  E: "g4 ~@3 e4 ~@3 f4@3 f4 ~@2 f4 ~", F: "d4 ~@3 e4@3 f4 ~@8", G: "f4 ~ gb4 ~ g4 ~ a4 ~", H: "g4 ~@3 c4@3 f4 ~@8",
  I: "eb4 ~@3 bb4 ~@3 d4 ~@3 bb4 ~@3", J: "ab4 ~@3 db5 ~@3 g4 ~@3 bb4 ~@3", K: "db4 ~@3 bb4 ~@3 g4 ~@3 eb4 ~@3",
  L: "f4 ~@3 c4 ~@3 e4 ~@3 c4 ~@3", M: "g4 ~@3 eb4 ~@3 f4 ~@3 d4 ~@3", N: "eb4 ~@3 bb4 ~@3 f4 ~@3 g4 ~@3",
  O: "d4 e4 f4 g4 a4 b4 c5 a4", P: "b4 g4 d4 b4 g4 a4 b4 d4", Q: "c4 d4 eb4 e4 f4 g4 a4 bb4",
  R: "a4 f4 c4 a4 f4 g4 a4 b4", S: "g4 d4 b4 d4 g4 a4 b4 ~", T: "a5@2 ~@2 a5 f5 a5 g5 ~@4 g5@2 ~@2",
  U: "f5@2 ~@2 f5 d5 f5 e5 ~@4 e5@2 ~@2", V: "ab5@2 ~@2 ab5@3 gb5 ~@4 gb5 ~@3", W: "ab4@2 ~@2 ab4@3 gb4 ~@4 gb4 ~@3",
})).s("gm_flute").gain(0.45)

stack(piccolo, flute, flute_2, flute_3)

More by Nintendo