; Module header definitions for the MIDI Synth driver
; Implemented as a driver for MIDI Support

title-string: MIDISynth
help-string: MIDISynth 0.26 MIDI Synthesiser  Pete Everett
date-string: 25 Nov 2025

initialisation-code: module_init
finalisation-code: module_term
service-call-handler: service_midi 0x58
generic-veneers: service_callback, timer_callback, driver_info, driver_init, driver_receive

error-base: &821800
swi-chunk-base-number: &CA340
swi-handler-code: module_swi
swi-decoding-table: MIDISynth,
  Control,
  Edit,
  Note

command-keyword-table: module_command
  MidiSynth(,
    min-args:1,
    max-args:10,
    invalid-syntax: "Syntax:\tMidiSynth [-option [-option ...]]\n",
    help-text: "Sets Synthesiser options\n"

"Syntax:\tMidiSynth [-option [-option ...]]\n"
"Options:\n"
  "\t-r reset the synthesiser\n"
  "\t-s<x> stereo/mono audio, x = 1 stereo, x = 0 mono, default 1\n"
  "\t-w<x> swap L/R audio channels, x = 1 swapped, x = 0 normal, default 0\n"
  "\t-n<x> x = number of generators (polyphony), 4 to 64, default 32\n"
  "\t-g<x> x = glide time, scale factor, 0 to 1000, default 100\n"
  "\t-t<x> x = sleep timeout in seconds, 0 to 3600, 0 = disable, default 10\n"
  "\t-b<x> x = bank override, x = 1 to 127 use this bank, 0 disables override\n"
  "\t-k<x> x = drum kit override, x = 1 to 127 use this kit, 0 disables override\n"
  "\t-i  display information\n"
  "\t-i+ as -i with additional information\n"
"Following options are used for testing\n"
  "\t-o open log file in the current directory\n"
  "\t-c close log file\n"
  "\t-d<x> x = the sum of the following values\n"
    "\t\t1 = log midi messages\n"
    "\t\t2 = log ticker callbacks\n")

