{- |
MIDI device manufacturers and their id's.
-}
module Sound.MIDI.Manufacturer
 (T, get, put,

  sequential, idp, octavePlateau, moog, passport, lexicon, kurzweil, 
  fender,  gulbransen,  akg,  voyce,  waveframe,  ada,  garfield,  ensoniq, 
  oberheim,  apple,  greyMatter,  digidesign,  palmTree,  jlCooper,  lowrey, 
  adamsSmith,  emu,  harmony,  art,  baldwin,  eventide,  inventronics, 
  keyConcepts,  clarity, 

  timeWarner,  digitalMusic,  iota,  newEngland,  artisyn,  ivl, 
  southernMusic,  lakeButler,  alesis,  dod,  studerEditech,  perfectFret, 
  kat,  opcode,  rane,  anadi,  kmx,  brenell,  peavey,  systems360, 
  spectrum,  marquis,  zeta,  axxes,  orban,  kti,  breakaway,  cae, 
  rocktron,  pianoDisc,  cannon,  rogers,  blueSkyLogic,  encore,  uptown, 
  voce,  cti,  ssResearch,  broderbund,  allenOrgan,  musicQuest,  aphex, 
  gallienKrueger,  ibm,  hotzInstruments,  etaLighting,  nsi,  adLib, 
  richmond,  microsoft,  softwareToolworks,  rjmgNiche,  intone, 
  grooveTubes,  euphonix,  interMIDI,  loneWolf,  musonix,  taHorng,  eTek, 
  electrovoice,  midisoft,  qSoundLabs,  westrex,  nVidia,  ess,  mediaTrix, 
  brooktree,  otari,  keyElectronics,  crystalake,  crystal,  rockwell, 
  siliconGraphics,  midiman,  preSonus,  topaz,  castLighting, 
  microsoftConsumer,  fastForward,  headspace,  vanKoevering,  altech, 
  vlsi,  chromaticResearch,  sapphire,  idrc,  justonic,  torComp,  newtek, 
  soundSculpture,  walker,  pavo,  inVision,  tSquareDesign,  nemesys,  dbx, 
  syndyne,  bitheadz,  cakewalk,  staccato,  nationalSemiconductor, 
  boomTheory,  virtualDSP,  antares,  angelSoftware,  stLouis,  lyrrus,

  passac,  siel,  synthaxe,  hohner,  twister,  solton,  jellinghaus, 
  southworth,  ppg,  jen,  ssl,  audioVeritrieb,  elka,  dynacord, 
  viscount,  clavia,  audioArchitect,  generalMusic,  soundcraft,  wersi, 
  avab,  digigram,  waldorf,  quasimidi, 

  dream,  strandLighting,  amek,  drBohm,  trident,  realWorldDesign, 
  yesTechnology,  audiomatica,  bontempiFarfisa,  fbtElectronica,  miditemp, 
  larkingAudio,  zero88lighting,  miconAudio,  forefront,  kenton,  adb, 
  jimMarshall,  dda,  bssAudio,  tcElectronic,  medeli,  charlieLab, 
  blueChip,  beeOH,  lgSemiconductor,  tesi,  emagic,  behringer,  access, 
  synoptic,  hanmesoft,  terratec,  proel,  ibk,

  kawai,  roland,  korg,  yamaha,  casio,  kamiya,  akai,  japanVictor, 
  mesosha,  hoshinoGakki,  fujitsuElect,  sony,  nisshinOnpa,  teac, 
  matsushitaElec,  fostex,  zoom,  midori,  matsushitaComm,  suzuki,

  nonCommercial,  nonRealTime,  realTime,
  ) where


import           Sound.MIDI.Parser.Primitive
import qualified Sound.MIDI.Parser.Class as Parser

import qualified Sound.MIDI.Writer.Basic as Writer
import Sound.MIDI.Monoid ((+#+))

import Control.Monad (liftM2, )

import Data.Word (Word8)



data T =
     Short Word8
   | Extended Word8 Word8
   deriving (Int -> T -> ShowS
[T] -> ShowS
T -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [T] -> ShowS
$cshowList :: [T] -> ShowS
show :: T -> String
$cshow :: T -> String
showsPrec :: Int -> T -> ShowS
$cshowsPrec :: Int -> T -> ShowS
Show, T -> T -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: T -> T -> Bool
$c/= :: T -> T -> Bool
== :: T -> T -> Bool
$c== :: T -> T -> Bool
Eq, Eq T
T -> T -> Bool
T -> T -> Ordering
T -> T -> T
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: T -> T -> T
$cmin :: T -> T -> T
max :: T -> T -> T
$cmax :: T -> T -> T
>= :: T -> T -> Bool
$c>= :: T -> T -> Bool
> :: T -> T -> Bool
$c> :: T -> T -> Bool
<= :: T -> T -> Bool
$c<= :: T -> T -> Bool
< :: T -> T -> Bool
$c< :: T -> T -> Bool
compare :: T -> T -> Ordering
$ccompare :: T -> T -> Ordering
Ord)

-- * North American Group

sequential, idp, octavePlateau, moog, passport, lexicon, kurzweil, 
  fender,  gulbransen,  akg,  voyce,  waveframe,  ada,  garfield,  ensoniq, 
  oberheim,  apple,  greyMatter,  digidesign,  palmTree,  jlCooper,  lowrey, 
  adamsSmith,  emu,  harmony,  art,  baldwin,  eventide,  inventronics, 
  keyConcepts,  clarity, 

  timeWarner,  digitalMusic,  iota,  newEngland,  artisyn,  ivl, 
  southernMusic,  lakeButler,  alesis,  dod,  studerEditech,  perfectFret, 
  kat,  opcode,  rane,  anadi,  kmx,  brenell,  peavey,  systems360, 
  spectrum,  marquis,  zeta,  axxes,  orban,  kti,  breakaway,  cae, 
  rocktron,  pianoDisc,  cannon,  rogers,  blueSkyLogic,  encore,  uptown, 
  voce,  cti,  ssResearch,  broderbund,  allenOrgan,  musicQuest,  aphex, 
  gallienKrueger,  ibm,  hotzInstruments,  etaLighting,  nsi,  adLib, 
  richmond,  microsoft,  softwareToolworks,  rjmgNiche,  intone, 
  grooveTubes,  euphonix,  interMIDI,  loneWolf,  musonix,  taHorng,  eTek, 
  electrovoice,  midisoft,  qSoundLabs,  westrex,  nVidia,  ess,  mediaTrix, 
  brooktree,  otari,  keyElectronics,  crystalake,  crystal,  rockwell, 
  siliconGraphics,  midiman,  preSonus,  topaz,  castLighting, 
  microsoftConsumer,  fastForward,  headspace,  vanKoevering,  altech, 
  vlsi,  chromaticResearch,  sapphire,  idrc,  justonic,  torComp,  newtek, 
  soundSculpture,  walker,  pavo,  inVision,  tSquareDesign,  nemesys,  dbx, 
  syndyne,  bitheadz,  cakewalk,  staccato,  nationalSemiconductor, 
  boomTheory,  virtualDSP,  antares,  angelSoftware,  stLouis,  lyrrus :: T

sequential :: T
sequential     = Word8 -> T
Short Word8
0x01
idp :: T
idp            = Word8 -> T
Short Word8
0x02
octavePlateau :: T
octavePlateau  = Word8 -> T
Short Word8
0x03
moog :: T
moog           = Word8 -> T
Short Word8
0x04
passport :: T
passport       = Word8 -> T
Short Word8
0x05
lexicon :: T
lexicon        = Word8 -> T
Short Word8
0x06
kurzweil :: T
kurzweil       = Word8 -> T
Short Word8
0x07
fender :: T
fender         = Word8 -> T
Short Word8
0x08
gulbransen :: T
gulbransen     = Word8 -> T
Short Word8
0x09
akg :: T
akg            = Word8 -> T
Short Word8
0x0A
voyce :: T
voyce          = Word8 -> T
Short Word8
0x0B
waveframe :: T
waveframe      = Word8 -> T
Short Word8
0x0C
ada :: T
ada            = Word8 -> T
Short Word8
0x0D
garfield :: T
garfield       = Word8 -> T
Short Word8
0x0E
ensoniq :: T
ensoniq        = Word8 -> T
Short Word8
0x0F
oberheim :: T
oberheim       = Word8 -> T
Short Word8
0x10
apple :: T
apple          = Word8 -> T
Short Word8
0x11
greyMatter :: T
greyMatter     = Word8 -> T
Short Word8
0x12
digidesign :: T
digidesign     = Word8 -> T
Short Word8
0x13
palmTree :: T
palmTree       = Word8 -> T
Short Word8
0x14
jlCooper :: T
jlCooper       = Word8 -> T
Short Word8
0x15
lowrey :: T
lowrey         = Word8 -> T
Short Word8
0x16
adamsSmith :: T
adamsSmith     = Word8 -> T
Short Word8
0x17
emu :: T
emu            = Word8 -> T
Short Word8
0x18
harmony :: T
harmony        = Word8 -> T
Short Word8
0x19
art :: T
art            = Word8 -> T
Short Word8
0x1A
baldwin :: T
baldwin        = Word8 -> T
Short Word8
0x1B
eventide :: T
eventide       = Word8 -> T
Short Word8
0x1C
inventronics :: T
inventronics   = Word8 -> T
Short Word8
0x1D
keyConcepts :: T
keyConcepts    = Word8 -> T
Short Word8
0x1E
clarity :: T
clarity        = Word8 -> T
Short Word8
0x1F


timeWarner :: T
timeWarner     = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x01
digitalMusic :: T
digitalMusic   = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x07
iota :: T
iota           = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x08
newEngland :: T
newEngland     = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x09
artisyn :: T
artisyn        = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x0A
ivl :: T
ivl            = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x0B
southernMusic :: T
southernMusic  = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x0C
lakeButler :: T
lakeButler     = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x0D
alesis :: T
alesis         = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x0E
dod :: T
dod            = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x10
studerEditech :: T
studerEditech  = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x11
perfectFret :: T
perfectFret    = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x14
kat :: T
kat            = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x15
opcode :: T
opcode         = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x16
rane :: T
rane           = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x17
anadi :: T
anadi          = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x18  -- spatialSound ?
kmx :: T
kmx            = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x19
brenell :: T
brenell        = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x1A
peavey :: T
peavey         = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x1B
systems360 :: T
systems360     = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x1C
spectrum :: T
spectrum       = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x1D
marquis :: T
marquis        = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x1E
zeta :: T
zeta           = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x1F
axxes :: T
axxes          = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x20
orban :: T
orban          = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x21
kti :: T
kti            = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x24
breakaway :: T
breakaway      = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x25
cae :: T
cae            = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x26
rocktron :: T
rocktron       = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x29
pianoDisc :: T
pianoDisc      = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x2A
cannon :: T
cannon         = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x2B
rogers :: T
rogers         = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x2D
blueSkyLogic :: T
blueSkyLogic   = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x2E
encore :: T
encore         = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x2F
uptown :: T
uptown         = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x30
voce :: T
voce           = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x31

cti :: T
cti                      = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x32
ssResearch :: T
ssResearch               = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x33
broderbund :: T
broderbund               = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x34
allenOrgan :: T
allenOrgan               = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x35
musicQuest :: T
musicQuest               = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x37
aphex :: T
aphex                    = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x38
gallienKrueger :: T
gallienKrueger           = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x39
ibm :: T
ibm                      = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x3A
hotzInstruments :: T
hotzInstruments          = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x3C
etaLighting :: T
etaLighting              = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x3D
nsi :: T
nsi                      = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x3E
adLib :: T
adLib                    = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x3F
richmond :: T
richmond                 = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x40
microsoft :: T
microsoft                = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x41
softwareToolworks :: T
softwareToolworks        = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x42
rjmgNiche :: T
rjmgNiche                = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x43
intone :: T
intone                   = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x44
grooveTubes :: T
grooveTubes              = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x47
euphonix :: T
euphonix                 = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x4E
interMIDI :: T
interMIDI                = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x4F
loneWolf :: T
loneWolf                 = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x55
musonix :: T
musonix                  = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x64
taHorng :: T
taHorng                  = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x74
eTek :: T
eTek                     = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x75   -- formerly Forte
electrovoice :: T
electrovoice             = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x76
midisoft :: T
midisoft                 = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x77
qSoundLabs :: T
qSoundLabs               = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x78
westrex :: T
westrex                  = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x79
nVidia :: T
nVidia                   = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x7A
ess :: T
ess                      = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x7B
mediaTrix :: T
mediaTrix                = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x7C
brooktree :: T
brooktree                = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x7D
otari :: T
otari                    = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x7E
keyElectronics :: T
keyElectronics           = Word8 -> Word8 -> T
Extended Word8
0x00 Word8
0x7F
crystalake :: T
crystalake               = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x01
crystal :: T
crystal                  = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x02
rockwell :: T
rockwell                 = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x03
siliconGraphics :: T
siliconGraphics          = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x04
midiman :: T
midiman                  = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x05
preSonus :: T
preSonus                 = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x06
topaz :: T
topaz                    = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x08
castLighting :: T
castLighting             = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x09
microsoftConsumer :: T
microsoftConsumer        = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x0A
fastForward :: T
fastForward              = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x0C
headspace :: T
headspace                = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x0D   -- Igor's Labs
vanKoevering :: T
vanKoevering             = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x0E
altech :: T
altech                   = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x0F
-- ssResearch               = Extended 0x01 0x10
vlsi :: T
vlsi                     = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x11
chromaticResearch :: T
chromaticResearch        = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x12
sapphire :: T
sapphire                 = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x13
idrc :: T
idrc                     = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x14
justonic :: T
justonic                 = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x15
torComp :: T
torComp                  = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x16
newtek :: T
newtek                   = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x17
soundSculpture :: T
soundSculpture           = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x18
walker :: T
walker                   = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x19
pavo :: T
pavo                     = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x1A
inVision :: T
inVision                 = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x1B
tSquareDesign :: T
tSquareDesign            = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x1C
nemesys :: T
nemesys                  = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x1D
dbx :: T
dbx                      = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x1E
syndyne :: T
syndyne                  = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x1F
bitheadz :: T
bitheadz                 = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x20
cakewalk :: T
cakewalk                 = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x21
staccato :: T
staccato                 = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x22
nationalSemiconductor :: T
nationalSemiconductor    = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x23
boomTheory :: T
boomTheory               = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x24   -- Adinolfi Alternative Percussion
virtualDSP :: T
virtualDSP               = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x25
antares :: T
antares                  = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x26
angelSoftware :: T
angelSoftware            = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x27
stLouis :: T
stLouis                  = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x28
lyrrus :: T
lyrrus                   = Word8 -> Word8 -> T
Extended Word8
0x01 Word8
0x29


-- * European Group
passac,  siel,  synthaxe,  hohner,  twister,  solton,  jellinghaus, 
  southworth,  ppg,  jen,  ssl,  audioVeritrieb,  elka,  dynacord, 
  viscount,  clavia,  audioArchitect,  generalMusic,  soundcraft,  wersi, 
  avab,  digigram,  waldorf,  quasimidi, 

  dream,  strandLighting,  amek,  drBohm,  trident,  realWorldDesign, 
  yesTechnology,  audiomatica,  bontempiFarfisa,  fbtElectronica,  miditemp, 
  larkingAudio,  zero88lighting,  miconAudio,  forefront,  kenton,  adb, 
  jimMarshall,  dda,  bssAudio,  tcElectronic,  medeli,  charlieLab, 
  blueChip,  beeOH,  lgSemiconductor,  tesi,  emagic,  behringer,  access, 
  synoptic,  hanmesoft,  terratec,  proel,  ibk
    :: T

passac :: T
passac         = Word8 -> T
Short Word8
0x20
siel :: T
siel           = Word8 -> T
Short Word8
0x21
synthaxe :: T
synthaxe       = Word8 -> T
Short Word8
0x22
hohner :: T
hohner         = Word8 -> T
Short Word8
0x24
twister :: T
twister        = Word8 -> T
Short Word8
0x25
solton :: T
solton         = Word8 -> T
Short Word8
0x26
jellinghaus :: T
jellinghaus    = Word8 -> T
Short Word8
0x27
southworth :: T
southworth     = Word8 -> T
Short Word8
0x28
ppg :: T
ppg            = Word8 -> T
Short Word8
0x29
jen :: T
jen            = Word8 -> T
Short Word8
0x2A
ssl :: T
ssl            = Word8 -> T
Short Word8
0x2B
audioVeritrieb :: T
audioVeritrieb = Word8 -> T
Short Word8
0x2C
elka :: T
elka           = Word8 -> T
Short Word8
0x2F
dynacord :: T
dynacord       = Word8 -> T
Short Word8
0x30
viscount :: T
viscount       = Word8 -> T
Short Word8
0x31
clavia :: T
clavia         = Word8 -> T
Short Word8
0x33
audioArchitect :: T
audioArchitect = Word8 -> T
Short Word8
0x34
generalMusic :: T
generalMusic   = Word8 -> T
Short Word8
0x35
soundcraft :: T
soundcraft     = Word8 -> T
Short Word8
0x39
wersi :: T
wersi          = Word8 -> T
Short Word8
0x3B
avab :: T
avab           = Word8 -> T
Short Word8
0x3C
digigram :: T
digigram       = Word8 -> T
Short Word8
0x3D
waldorf :: T
waldorf        = Word8 -> T
Short Word8
0x3E
quasimidi :: T
quasimidi      = Word8 -> T
Short Word8
0x3F

dream :: T
dream            = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x00
strandLighting :: T
strandLighting   = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x01
amek :: T
amek             = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x02
drBohm :: T
drBohm           = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x04
trident :: T
trident          = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x06
realWorldDesign :: T
realWorldDesign  = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x07
yesTechnology :: T
yesTechnology    = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x09
audiomatica :: T
audiomatica      = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x0A
bontempiFarfisa :: T
bontempiFarfisa  = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x0B
fbtElectronica :: T
fbtElectronica   = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x0C
miditemp :: T
miditemp         = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x0D
larkingAudio :: T
larkingAudio     = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x0E
zero88lighting :: T
zero88lighting   = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x0F
miconAudio :: T
miconAudio       = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x10
forefront :: T
forefront        = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x11
kenton :: T
kenton           = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x13
adb :: T
adb              = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x15
jimMarshall :: T
jimMarshall      = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x16
dda :: T
dda              = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x17
bssAudio :: T
bssAudio         = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x18
tcElectronic :: T
tcElectronic     = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x1F
medeli :: T
medeli           = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x2B
charlieLab :: T
charlieLab       = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x2C
blueChip :: T
blueChip         = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x2D
beeOH :: T
beeOH            = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x2E
lgSemiconductor :: T
lgSemiconductor  = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x2F
tesi :: T
tesi             = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x30
emagic :: T
emagic           = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x31
behringer :: T
behringer        = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x32
access :: T
access           = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x33
synoptic :: T
synoptic         = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x34
hanmesoft :: T
hanmesoft        = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x35
terratec :: T
terratec         = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x36
proel :: T
proel            = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x37
ibk :: T
ibk              = Word8 -> Word8 -> T
Extended Word8
0x20 Word8
0x38


-- * Japanese Group
kawai,  roland,  korg,  yamaha,  casio,  kamiya,  akai,  japanVictor, 
  mesosha,  hoshinoGakki,  fujitsuElect,  sony,  nisshinOnpa,  teac, 
  matsushitaElec,  fostex,  zoom,  midori,  matsushitaComm,  suzuki
    :: T

kawai :: T
kawai          = Word8 -> T
Short Word8
0x40
roland :: T
roland         = Word8 -> T
Short Word8
0x41
korg :: T
korg           = Word8 -> T
Short Word8
0x42
yamaha :: T
yamaha         = Word8 -> T
Short Word8
0x43
casio :: T
casio          = Word8 -> T
Short Word8
0x44
kamiya :: T
kamiya         = Word8 -> T
Short Word8
0x46
akai :: T
akai           = Word8 -> T
Short Word8
0x47
japanVictor :: T
japanVictor    = Word8 -> T
Short Word8
0x48
mesosha :: T
mesosha        = Word8 -> T
Short Word8
0x49
hoshinoGakki :: T
hoshinoGakki   = Word8 -> T
Short Word8
0x4A
fujitsuElect :: T
fujitsuElect   = Word8 -> T
Short Word8
0x4B
sony :: T
sony           = Word8 -> T
Short Word8
0x4C
nisshinOnpa :: T
nisshinOnpa    = Word8 -> T
Short Word8
0x4D
teac :: T
teac           = Word8 -> T
Short Word8
0x4E
matsushitaElec :: T
matsushitaElec = Word8 -> T
Short Word8
0x50
fostex :: T
fostex         = Word8 -> T
Short Word8
0x51
zoom :: T
zoom           = Word8 -> T
Short Word8
0x52
midori :: T
midori         = Word8 -> T
Short Word8
0x53
matsushitaComm :: T
matsushitaComm = Word8 -> T
Short Word8
0x54
suzuki :: T
suzuki         = Word8 -> T
Short Word8
0x55

-- * Universal ID Numbers
nonCommercial,  nonRealTime,  realTime :: T
nonCommercial :: T
nonCommercial  = Word8 -> T
Short Word8
0x7D
nonRealTime :: T
nonRealTime    = Word8 -> T
Short Word8
0x7E
realTime :: T
realTime       = Word8 -> T
Short Word8
0x7F




-- * serialization

get :: Parser.C parser => Parser.Fragile parser T
get :: forall (parser :: * -> *). C parser => Fragile parser T
get =
   do Word8
subId <- forall (parser :: * -> *). C parser => Fragile parser Word8
getByte
      if Word8
subId forall a. Eq a => a -> a -> Bool
== Word8
0
        then forall (m :: * -> *) a1 a2 r.
Monad m =>
(a1 -> a2 -> r) -> m a1 -> m a2 -> m r
liftM2 Word8 -> Word8 -> T
Extended forall (parser :: * -> *). C parser => Fragile parser Word8
getByte forall (parser :: * -> *). C parser => Fragile parser Word8
getByte
        else forall (m :: * -> *) a. Monad m => a -> m a
return forall a b. (a -> b) -> a -> b
$ Word8 -> T
Short Word8
subId

put :: Writer.C writer => T -> writer
put :: forall writer. C writer => T -> writer
put T
subId =
   case T
subId of
     Short Word8
n -> forall m. C m => Word8 -> m
Writer.putByte Word8
n
     Extended Word8
hi Word8
lo ->
        forall m. C m => Word8 -> m
Writer.putByte Word8
0 forall m. Monoid m => m -> m -> m
+#+
        forall m. C m => Word8 -> m
Writer.putByte Word8
hi forall m. Monoid m => m -> m -> m
+#+
        forall m. C m => Word8 -> m
Writer.putByte Word8
lo