Strudelify

pokemon

Junichi Masuda

KeyG majorTempo184 bpm
0:00/0:00
// pokemon — JUNICHI MASUDA
// 184 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5979309; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 211 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(184/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 · marimba
const marimba = note(`<
  A B C D E A F G H I J@7 K@8 L@5 M N@8 O@3 P Q R S T U V W ~ X Y Z AA@2 AB ~ AA@2 AC@2 AD AE AF ~ AD AG AH AI AJ ~ AK
  AL AM ~ AN AO AP ~ AQ AR AS AT@2 AU AV AW AX AU AY AZ BA ~@5 BB BC BD BE@2 BF BG BH@2 BI BJ BK@2 BL BG ~@3 BM BN BO BP
  BQ BN BR BS BT@2 ~@36 BU BV@3 BW BX@3 BY BZ@6 CA@2 CB@7 CC CD@2 ~ CE@2 CF@4 CG CH@6 CI@8
>`.pickRestart({
  A: "~ d5@2 d5@2 a5@4 d5@2 d5@2 a#5@3", B: "~ d5@2 d5@2 a5@4 d5@2 d5@2 f#5@3",
  C: "~ d5@2 d5@2 a5@4 d5@2 d5@2 [a#5,c#6]@3", D: "~ d6@8 d5@7", E: "~ [a#5,c6]@8 c5@7",
  F: "~ d5@2 d5@2 c6@4 d5@2 d5@2 [a#5,c#6]@3", G: "~ [a5,d6]@15", H: "~ d6@2 ~@13",
  I: "g3 b3 d4 ~ f4 g4@3 ~@2 g4@3 ~@3",
  J: "[~@2 g4!2 ~ g4@3 ~@2 g4@3 ~@2 g4@5 f4@2 f4@2 f4@2 f4 f4@2 f#4@2 g4@8 [g4,b4]@3 [b4,d5]@21 [c5,f5]@7 e5 ~ d#5 [b4,d5]@32 [a4,c5]@3 [g4,b4]@3 ~]/7", // G Bm F5 Bm Am G
  K: "[[a4,c5]@3 g4@8 [g4,b4]@3 [b4,d5]@21 c5@3 b4@3 ~ c5@3 [b4,d5]@32 ~@2 b4@3 c5@3 d5@2 g4@8 [g4,b4]@3 [b4,d5]@21 [c5,f5]@8 e5]/8", // Am G Bm G Bm F5
  L: "[d#5 [b4,d5]@32 [a4,c5]@3 [g4,b4]@3 ~ [a4,c5]@3 g4@8 [g4,b4]@3 [b4,d5]@21 f5@3 e5@2]/5", // Bm Am G Am G Bm
  M: "~@2 f5@3 [d5,g5]@8 [f5,a#5]@3", // G5 A#5
  N: "[[d5,g5]@21 a5@10 a#5@8 f5@3 f5@21 [d5,a#5]@5 [d#5,b5]@5 ~ c6@7 g5@3 g5@21 c6@5 c#6@5 ~ d6@4 d5@5 d5@3]/8", // G5 Gm G#m
  O: "[~@2 d5@5 d5@5 ~ d5@5 d5 c6@3 ~ c6@3 c#6@3 ~ d6@4 d5@5 d5@5 d5@4]/3", P: "~ d5@5 ~ d5@5 d5 c6@3",
  Q: "~ c6@5 b5@10", R: "a5 g5 f5 e5 a5 e5 f5 e5 a5 d#5 e5 d#5 a5 d5 d#5 d5",
  S: "a5 c#5 d5 c#5 a5 c5 c#5 c5 a5 b4 c5 b4 a5 a#4 b4 a#4", T: "[b4,b5] ~@3", U: "~@3 [c5,a5]", V: "[d5,b5] ~@3",
  W: "~@6 a5 a#5, ~@3 c5", X: "~@6 a5 a#5, ~@3 c#5", Y: "[d5,b5]@3 [e5,c#6]@3 [f5,d6]@2",
  Z: "[d5,b5] [e5,c#6]@2 [f5,d6] ~@2 c5 c#5, ~@3 a5", AA: "[b4@3 f#4@7 b4@2 f#4@2 b4@2]/2", AB: "c5", AC: "a4/2",
  AD: "g4", AE: "d5 g4", AF: "a4", AG: "e5 f#5", AH: "e5", AI: "g5@2 a5 g5 f#5 e5 d5 e5", AJ: "f#5", AK: "g5",
  AL: "g5@2 a5 g5@2 f#5 e5 f#5", AM: "g#5", AN: "a5", AO: "c#6 e6", AP: "d6@2 a5@2 c6 b5@3", AQ: "~@2 d6 a5",
  AR: "a#5 f6@7", AS: "g6", AT: "e6/2", AU: "[c5,c6]@3 [a4,a5]@3 ~@2", AV: "~ [c5,c6] [a4,a5] [c5,c6]",
  AW: "[a#4,a#5]@3 [f5,f6]@3 ~@2", AX: "~ [a#4,a#5] [f5,f6] [d5,d6]",
  AY: "~@2 [c5,c6]@2 [e5,e6] [d5,d6] [c5,c6] [e5,e6]", AZ: "[d5,d6] [a#4,a#5]@2 [f5,f6]@3 ~@2",
  BA: "[g5,g6]@3 [f5,f6]@3 [d5,d6]@2", BB: "[a#5,e6] c5", BC: "[d6,g6] e5", BD: "[d6,f6]@4 g5@2 g4 a4",
  BE: "b4@2 b4@2 b4@2 g4 a4", BF: "b4@2 b4@2 c5@3 b4", BG: "a4@6 f#4 g4", BH: "a4@2 a4@2 a4@2 f#4 g4",
  BI: "a4@2 a4@2 b4 a4!2 b4", BJ: "g4@6 [e4,g4] [f#4,a4]", BK: "b4@2 [g4,b4]@2 [g4,b4]@2 g4 a4",
  BL: "b4@2 [g4,b4]@2 [f#4,c5]@3 [d4,b4]", BM: "~@6 b4 c5", BN: "d5!2 b4 g4", BO: "g5 f#5 e5 f#5",
  BP: "d5@2 b4@2 g4@3 b4", BQ: "[d4,a4]@6 b4 c5", BR: "g5@2 f#5@2 e5@3 c5", BS: "d5 g5 f#5 a5",
  BT: "[[d5,g5]@25 ~@7]/2", BU: "~@5 d5@3 c5@3 b4@3 a4@2",
  BV: "[g5@3 e5@3 f#5@3 e5@3 d5@8 b4@3 g4@3 g4@2 a4@3 b4@3 c5@14]/3", BW: "f#4@3 g4@2 a4@3 b4@8",
  BX: "[~ c5 b4 a4@11 ~ d5@2 c5@3 b4@3 d5@3 g5@2 f#5@3 f#5@3 g5@3 e5@8 d5@3]/3", BY: "d5@11 c5@3 b4@2",
  BZ: "[~ a4@3 g4@2 d5@3 c5@3 b4@3 a4@2 g4@14 g4@3 a4@3 b4@3 c5@11 d5@8 c5@3 b4@14 g4@3 a4@3 b4@2 c5@6 c5@6]/6",
  CA: "[d5@8 c5 d5 ~ b4@14 b4@2 a4@3 g4@2]/2",
  CB: "[~ a4@11 e4@6 b4@5 a4@11 g4@6 e4@6 f#4@11 g4@5 b4@6 b4@11 a4@12 c6@9 g5@2 c6@2 a#5@8]/7",
  CC: "~ a#5 [f5,a5]@6, ~ f5@2 ~@13", CD: "[[f5,a5]@6 b5@3 g5@2 ~ c6@3 c6@3 ~@14, ~@11 b5@2 ~@19]/2",
  CE: "[~@13 [c5,e5]@9 ~@2 f5@2 g5@6, ~@23 e5@2 ~@7]/2", // C
  CF: "[c5@6 a#5@6 [f5,a5]@6 g5@6 f5@6 [c5,e5]@9 ~ c5@3 g5@12 c5@9]/4", CG: "g4@3 [c5,e5]@12 ~",
  CH: "[[c5,e5]@9 ~ f5@2 g5@6 c5@6 [f5,a#5]@4 [f5,a#5]@2 [f5,a5]@4 [f5,a5]@2 [d5,g5]@4 [d5,g5]@2 [d5,f5]@4 ~ [d5,f5]@2 [c5,e5]@9 c5@3 g5@12 c5@9 g4@3 [c5,e5]@11, ~@9 e5@2 ~@85]/6", // C A#5 F G5 Dm C
  CI: "[~@2 f5@9 [a#4,d5]@3 a#5@12 [a#4,d5]@9 a#4@3 f5@12 ~ [c5,e5]@18 f5@6 c6@49 ~@4]/8", // A# C
})).s("gm_marimba").gain(0.4)

// other · marimba · soft notes
const marimba_soft = note(`<
  ~@93 A B C D E ~@15 F G H I ~@8 J@2 K L M N O P Q@2 R S T U@2 V W X Y@2 Z AA AB AC@2 AD@2 AE@3 P Q@2 R S T AF@2 ~@48
>`.pickRestart({
  A: "[d5,f5]", B: "[a#4,e5]", C: "[g4,d5]", D: "e5", E: "[d6,f6] d5", F: "a4 c5 b4 a4", G: "g4 f#4 e4 f#4", H: "e5 a4",
  I: "b4@3 ~", J: "[~@9 c5@3 ~@3 g5@3 ~@3 b5@3 ~@3 f#5@3 ~@2]/2", K: "~ c5@3 ~@3 g5@3 ~@3 b5@3",
  L: "~@3 f#5@3 ~@4 c5@3 ~@3", M: "g5@3 ~@3 b5@3 ~@3 f#5@3 ~", N: "~@2 c5@3 ~@3 g5@3 ~@3 b5@2",
  O: "~@5 f#5@3 ~@3 c5@3 ~@2", P: "~ g5@3 ~@3 b5@3 ~@3 f#5@3", Q: "[~@3 c5@3 ~@3 g5@3 ~@3 b5@3 ~@4 f#5@3 ~@3 c5@3 ~]/2",
  R: "~@2 g5@3 ~@3 b5@3 ~@3 f#5@2", S: "~@4 c5@3 ~@3 g5@3 ~@3", T: "~ b5@3 ~@3 f#5@3 ~@3 c5@3",
  U: "[~@3 g5@3 ~@3 b5@3 ~@3 f#5@3 ~@3 c5@3 ~@3 g5@3 ~@2]/2", V: "~@2 b5@3 ~@3 f#5@3 ~@3 c5@2",
  W: "~@4 g5@3 ~@3 b5@3 ~@3", X: "f#5@3 ~@3 c5@3 ~@4 g5@3", Y: "[~@3 b5@3 ~@3 f#5@3 ~@3 c5@3 ~@3 g5@3 ~@3 b5@3 ~@2]/2",
  Z: "~ f#5@3 ~@3 c5@3 ~@4 g5@2", AA: "~@4 b5@3 ~@3 f#5@3 ~@3", AB: "c5@3 ~@3 g5@3 ~@3 b5@3 ~",
  AC: "[~@2 f#5@3 ~@4 c5@3 ~@3 g5@3 ~@3 b5@3 ~@3 f#5@3 ~@2]/2", AD: "[~ b5@6 g5@6 b5@6 b5@6 ~ b5@6]/2",
  AE: "[g5@6 b5@6 b5@6 b5@6 g5@6 b5@6 ~ b5@6 c5@3 ~@2]/3", AF: "[~@3 g5@3 ~@3 b5@12 ~@11]/2",
})).s("gm_marimba").gain(0.2)

// other · marimba
const marimba_2 = note(`<
  A B C D E A F G H I J@4 K L@2 M N O@2 P@3 Q@2 R@2 S T U@2 V@3 W@3 X Y Z AA AB AC ~@2 AD AE AD AE AD AE AD AE AF@2 AG
  AH AF@2 AI AJ AK@2 AI@2 AK@2 AI@2 AF AL AG AM AN AO AP AQ AR AS AT AU@2 AV@2 AW ~ AX ~ AW ~ AX ~ AY AZ BA AZ AY AZ BA
  BB BC BD BE BD BF BG BH BI BJ BK BL BM BN BO BF BP BQ BR BQ BS BT BU BV BW@2 ~@5 BX@6 BY@6 BZ@4 CA@3 CB@3 CC@8 CD@6
  CE@6 CF@4 CG CH CI@8 CJ@3 CK@2 CL@2 CM@3 CN@2 CO@2 CP@5 CQ@2 CR CS CT
>`.pickRestart({
  A: "~ d4@2 d4@2 a4@4 d4@2 d4@2 a#4@3", B: "~ d4@2 d4@2 a4@4 d4@2 d4@2 f#4@3",
  C: "~ d4@2 d4@2 a4@4 d4@2 d4@2 [a#4,c#5]@3", D: "~ [a4,d5]@8 [a3,d4]@7", E: "~ [f4,a#4]@8 a3@7",
  F: "~ d4@2 d4@2 c5@4 d4@2 d4@2 [a#4,d5]@3", G: "~ [d4,a4]@15", H: "~ d4@4 ~@11", I: "g2!3 ~ g2 g2@5 g2@5 ~",
  J: "[~@2 g2!2 ~ g2@5 g2@5 g2@5 a2@2 a2@2 a2@2 a2 a2@2 a2@2 g3@5 d3@3 g3@5 d3@3 g3@2 d3@3 f3@5 c3@3 f3@4]/4",
  K: "~ c3@3 f3@2 c3@3 g3@5 d3@2", L: "[~ g3@5 d3@3 g3@2 d3@3 g3@5 d3@3 g3@5 d3@3 g3@2]/2", M: "d3@3 g3@5 d3@3 g3@5",
  N: "d3@3 g3@3 d3@2 f3@5 c3@3", O: "[f3@5 c3@3 f3@3 c3@2 g3@5 d3@3 g3@5 d3@3 g3@3]/2",
  P: "[d3@2 g3@5 d3@3 g3@5 d3@3 g3@3 d3@2 g3@5 d3@3 g3@5 d3@3 g3@3 d3@2 f3@4]/3",
  Q: "[~@2 c3@2 f3@5 c3@3 f3@3 c3@2 g3@5 ~ d3@2 g3@5 d3@2]/2",
  R: "[~ g3@3 d3@2 g3@5 ~ d3@2 g3@5 d3@3 g3@3 d3@2 g3@5]/2", S: "~ d3@2 g3@5 d3@3 g3@3 d3@2",
  T: "f3@5 ~ c3@2 f3@5 ~ c3@2", U: "[f3@3 c3@2 g3@5 ~ d3@2 g3@5 ~ d3@2 g3@3 d3@2 g3@5 ~]/2",
  V: "[d3@2 g3@5 ~ d3@2 g3@3 d3@2 a#3@5 ~ f3@2 a#3@5 ~ f3@2 a#3@3 f3@2 a#3@5 ~ f3@2 a#3@4]/3",
  W: "[~@2 f3@2 b3@3 f#3@3 c4@5 g3@2 c4@5 ~ g3@2 c4@3 g3@3 c4@5 g3@2 c4@5 ~ g3@2 c#4@2]/3",
  X: "~ g#3@3 d3@2 d3@3 d3@2 d3@3 d3@2", Y: "~ d3@2 d3@3 d3@3 d3@2 d3@3 d3@2", Z: "d3@3 c4@3 ~ c4@3 c#4@3 ~ d3@2",
  AA: "d3@3 d3@3 d3@2 d3@3 d3@2 d3@3", AB: "d3@3 d3@2 d3@3 d3@3 d3@2 c4@3", AC: "~ c4@5 b3@10",
  AD: "b2!2 d3 e3 b2 f3 e3 d3", AE: "b2!2 d3 e3 b2 d3 a2 c3", AF: "b2 f#3 b2 f#3 b2 f#3 b2 f#3",
  AG: "c3 g3 c3 g3 c3 g3 c3 g3", AH: "c3 g3 a3 g3 f#3 e3 d3 c#3", AI: "a2 e3 a2 e3 a2 e3 a2 e3",
  AJ: "a2 e3 d3 c#3 d3 c#3 a2 g#2", AK: "g2 d3 g2 d3 g2 d3 g2 d3", AL: "b2 f#3 d3 e3 f#3 e3 d3 f#3",
  AM: "c3 g3 d#3 f3 g3 f3 d#3 g3", AN: "c#3 g#3 c#3 g#3 c#3 g#3 c#3 g#3", AO: "c#3 g#3 e3 f#3 g#3 f#3 e3 g3",
  AP: "d3 a3 d3 a3 d3 a3 d3 a3", AQ: "d3 a3 f3 g3 a3 g3 f3 e3", AR: "d3@2 a2@2 b2 g3 b2 g3",
  AS: "b2 g3 b2 g3 b2 g3 b2 g3", AT: "b2 g3 b2 g3 d3@2 a2@2", AU: "a#2 f3 a#2 f3 a#2 f3 a#2 f3",
  AV: "b2 e3 b2 e3 b2 e3 b2 e3", AW: "~@3 [a2,e3]", AX: "~@3 [a#2,f3]", AY: "a#2 f3 a#2 f3", AZ: "a#2 e3 a#2 e3",
  BA: "a#2 d3 a#2 d3", BB: "a#2 e3 a#2@2", BC: "g3 f#3", BD: "e3 d3", BE: "g3 d3", BF: "f#3 d3", BG: "e3 f#3",
  BH: "a3 d3", BI: "g2@6 c3 d3", BJ: "[g2,g3]!2 [f#2,f#3]!2", BK: "[e2,e3]!2 [d2,d3]!2", BL: "[g2,g3]!2 [d2,d3]!2",
  BM: "[e2,e3] [d2,d3]", BN: "f#3 e3", BO: "d3 e3", BP: "g3", BQ: "g2 d3 g3 d3 g2 d3 g3 d3",
  BR: "c3 g2 c3 g2 c3 g2 c3 g2", BS: "a2 f#3 a3 f#3 a2 f#3 a3 f#3", BT: "b2 g3 b3 g3 b2 g3 b3 g3",
  BU: "c3 g3 c4 g3 c3 g3 c4 g3", BV: "d3 b3 d4 b3 d3 b3 d4 b3", BW: "[[g2,g3]@25 ~@7]/2",
  BX: "[~@11 e4@24 d4@25 c4@24 c#4@12]/6", BY: "[~ b3@6 e4@30 d4@25 c4@24 e4@6 ~ c4@3]/6",
  BZ: "[~@3 b3@6 e4@30 d4@25]/4", CA: "[c4@25 c#4@12 c#4@11]/3", CB: "[~ g4@12 g4@12 ~ e4@12 e4@10]/3",
  CC: "[~@2 b4@6 g4@6 f#4@6 ~ b4@6 c4@12 c4@12 e4@25 d4@24 c4@25 e4@3]/8",
  CD: "[~@3 c4@6 b3@12 g3@8 ~ e3@8 f#3@6 g3@8 a3@8 g3@6 e3@8 f#3@8 ~ e3@5 g3@8]/6",
  CE: "[~ e3@8 d3@6 g3@8 e3@8 f#3@6 g3@8 a3@8 ~ g3@5 d3@8 ~ f#3@8 a3@5 g3@8 ~ e3@6]/6",
  CF: "[~@2 d3@6 c3@5 e3@6 d3@5 f#3@6 g2@6 d3@5 e3@6 d3@5 c3@6 e3@6]/4", CG: "d3@5 f#3@6 g2@5", CH: "d3@6 a3@5 g3@5",
  CI: "[~ e3@11 a3@11 e3@11 g3@11 ~ f#3@11 e3@22 f#3@12 [c4,c5]@12 ~ [a#3,a#4]@12 [f3,f4]@12]/8", // C A# F
  CJ: "[[f3,f4]@6 [g3,g4]@6 [g3,c4]@3 [g3,c4]@6 ~ [g3,c4] [g3,c4]@2 [g3,c4]@3 [g3,c4]@3 [g3,c4]@6 [g3,c4]@3 [g3,c4]@6 [g3,c4]@2]/3", // F G C5
  CK: "[[g3,c4] [g3,c4]@3 [g3,c4]@3 [g3,c4]@6 c3@2 ~ c3@2 e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2, ~@15 e3@2 ~@3 c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~]/2", // C5
  CL: "[~ e3@2 ~ e3@2 ~ d3@2 a#2@2 ~ a#2@2 ~ a#2@2 ~ a#2@2 ~ a#2@2 ~ b2@2 ~ b2@2 ~ c3@2, c3@2 ~ c3@2 ~ a#2@2 ~@3 d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~]/2",
  CM: "[e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3 d3 e3 f3 g3 a3 a#3 a3 g3 f3 ~ e3 d3, ~@2 c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~@3 e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~@12]/3",
  CN: "[~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 c3@2 ~ a#2@2 ~ a#2@2 ~ a#2@2, c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~@3 e3@2 ~ d3@2 ~ d3@2 ~]/2",
  CO: "[~ a#2@2 ~ a#2@2 ~ a#2@2 ~ b2@2 d3@2 ~ d3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2, d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~@3 b2@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~]/2",
  CP: "[~ e3@2 c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 e3@2 ~ e3@2 ~ e3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ d3@2 a#2@2 ~ a#2@2 ~ a#2@2 ~ a#2@2 ~ a#2@2 ~ a#2@2 ~ a#2@2 ~ a#2@2 d3@2 ~ d3@2 ~ d3@2, c3@2 ~@3 e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~@3 c3@2 ~ c3@2 ~ a#2@2 ~ a#2@2 ~ a#2@2 ~ a#2@2 ~ a#2@2 ~@3 d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~@3 a#2@2 ~ b2@2 ~]/5",
  CQ: "[~ d3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2, b2@2 ~ c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~@3 e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ g2@2 ~]/2",
  CR: "~ g3@2 ~ g3@2 b3@2 c4@3 [a3,b3] g3 f3 [d3,e3] c3, e3@2 ~ e3@2 ~@11", // Asus2 Dsus2
  CS: "b2 a2 [f2,g2] e2 c2@3 c2 c2@2 c2@3 c2@3", CT: "c2@3 ~",
})).s("gm_marimba").gain(0.3)

stack(marimba, marimba_soft, marimba_2)

More by Junichi Masuda