Guru Definition: Korg Volca Beats

I recently wrote a simple Guru synth definition for the Korg Volca Beats and thought it may be of use to someone else out there. Enjoy!

-- Part Levels
local group_level = Group {
  name = "Part Levels",
  Parameter {
    id = "level_kick",
    name = "Kick Level",
    number = 60,
    default_value = 80,
    sysex_message_template = {0xB9, 0x28, "vv"}
  },
  Parameter {
    id = "level_snare",
    name = "Snare Level",
    number = 41,
    default_value = 80,
    sysex_message_template = {0xB9, 0x29, "vv"}
  },
  Parameter {
    id = "level_lo_tom",
    name = "Lo Tom Level",
    number = 42,
    default_value = 80,
    sysex_message_template = {0xB9, 0x2A, "vv"}
  },
  Parameter {
    id = "level_hi_tom",
    name = "Hi Tom Level",
    number = 43,
    default_value = 80,
    sysex_message_template = {0xB9, 0x2B, "vv"}
  },
  Parameter {
    id = "level_cl_hat",
    name = "Cl Hat Level",
    number = 44,
    default_value = 80,
    sysex_message_template = {0xB9, 0x2C, "vv"}
  },
  Parameter {
    id = "level_op_hat",
    name = "Op Hat Level",
    number = 45,
    default_value = 80,
    sysex_message_template = {0xB9, 0x2D, "vv"}
  },
  Parameter {
    id = "level_clap",
    name = "Clap Level",
    number = 46,
    default_value = 80,
    sysex_message_template = {0xB9, 0x2E, "vv"}
  },
  Parameter {
    id = "level_claves",
    name = "Claves Level",
    number = 47,
    default_value = 80,
    sysex_message_template = {0xB9, 0x2F, "vv"}
  },
  Parameter {
    id = "level_agogo",
    name = "Agogo Level",
    number = 48,
    default_value = 80,
    sysex_message_template = {0xB9, 0x30, "vv"}
  },
  Parameter {
    id = "level_crash",
    name = "Crash Level",
    number = 49,
    default_value = 80,
    sysex_message_template = {0xB9, 0x31, "vv"}
  }
}

-- PCM Speeds
local group_speed = Group {
  name = "PCM Speeds",
  Parameter {
    id = "speed_clap",
    name = "Clap Speed",
    number = 50,
    default_value = 80,
    sysex_message_template = {0xB9, 0x32, "vv"}
  },
  Parameter {
    id = "speed_claves",
    name = "Claves Speed",
    number = 51,
    default_value = 80,
    sysex_message_template = {0xB9, 0x33, "vv"}
  },
  Parameter {
    id = "speed_agogo",
    name = "Agogo Speed",
    number = 52,
    default_value = 80,
    sysex_message_template = {0xB9, 0x34, "vv"}
  },
  Parameter {
    id = "speed_crash",
    name = "Crash Speed",
    number = 53,
    default_value = 80,
    sysex_message_template = {0xB9, 0x35, "vv"}
  }
}

-- Global Effects
local group_global_fx = Group {
  name = "Global Effects",
  Parameter {
    id = "global_stutter_time",
    name = "Stutter Time",
    number = 54,
    default_value = 0,
    sysex_message_template = {0xB9, 0x36, "vv"}
  },
  Parameter {
    id = "global_stutter_depth",
    name = "Stutter Depth",
    number = 55,
    default_value = 0,
    sysex_message_template = {0xB9, 0x37, "vv"}
  }
}

-- Part Effects
local group_part_fx = Group {
  name = "Part Effects",
  Parameter {
    id = "part_tom_decay",
    name = "Tom Decay",
    number = 56,
    default_value = 80,
    sysex_message_template = {0xB9, 0x38, "vv"}
  },
  Parameter {
    id = "part_cl_hat_decay",
    name = "Cl Hat Decay",
    number = 57,
    default_value = 80,
    sysex_message_template = {0xB9, 0x39, "vv"}
  },
  Parameter {
    id = "part_op_hat_decay",
    name = "Op Hat Decay",
    number = 58,
    default_value = 80,
    sysex_message_template = {0xB9, 0x3A, "vv"}
  },
  Parameter {
    id = "part_hat_grain",
    name = "Hat Grain",
    number = 59,
    default_value = 80,
    sysex_message_template = {0xB9, 0x3B, "vv"}
  }
}

-- Synth definition
return SynthDefinition {
  id = "korg_volca_beats",
  name = "Korg Volca Beats",
  author = "Nick Hladek [nickhladek@gmail.com]",
  beta = true,
  content_height = 300,
  Section {
    group_level,
    group_speed,
    group_global_fx,
    group_part_fx
  }
}