
  And what is this? :)

  Another one mixer for uniaud, it work through the same API, as vio unimix
in x:\MMOS2 directory.
  The reason for this mixer is incorrect support of IOCTL90 API in uniaud
(for many audio cards). Sometimes it does not support volume change at all ;)
In Innotek builds everything was fine (and you may use LBMix, for example),
but later netlabs.org code is ugly (as always ;)) and randomly add/remove 
support and number of mixer controls from build to build.
  Another one bad thing is an really rich imagination of hardware mixer
engineers ;) To convert most of all variants of mixer controls into "standard
mixer" script is used. So the way looks like: mixer <-> script <-> uniaud.
This way of implementation require unique script for every one card/mixer,
but usually it can easy be created from nearest analogue.

  Start:
  - select mixer(script) before usage: umix /setup
  - command line parameters:
     /min      - run minimized
     /xxxx=50  - set initial control value in percent. Control names:
                 Main, Wave, CD, Mic, Line, Midi, Space, Center, CustomA,
                 CustomB, CustomC, CustomD, RecCD, RecMic, RecLine, RecMidi

  Features/bugs:
  - mixer check system for own running second copy (i.e., if you does not
    see app after start - another stunned copy still present in system).
    (thes can be turned off by "MultiInstance" key ini .ini)
  - there is no agressive mode (mixer is always read values from uniaud)
  - two work modes:
    - only read values from system(uniaud)
    - the same, but when control value was changed too fast (greater than 
      25% at one time) - it will be reset to previous value. This is prevent
      muting by system, but allow to change volume outside mixer (in Z!,
      for example). 25% can be changed in "Threshold" in .ini


  All set/get value logic written on C-like scripts.
  Script read values from uniaud.dll and send it to mixer.
  This package contain scripts for small number of cards, but you can write
script for any mixer, it you are familliar with C language ;)

  How to create your own mixer script:

  1. make new section in umix.ini:
     [new_card]
     Controls=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
     script=data\new_card.scr

  2. add it in [Configs] in the same way:
     [Configs]
     Audigy SE=SB Audigy SE
     Demo    =Demo empty script
     new_card=Our new card

  3. writing script ;) (data\new_card.scr).

     int detect() - card detection, usually it contain mixer or card name
                    comparation

     int unimix_show_controls(int card_id, int ctl_id), called from detect() -
        defining links between control names and mixer panels

     In simple cards common things are linear (volume/switch), but on
     something really strange (like SB Audigy) some switch/single controls for
     multiple values can be founded. And here the best place for script ;)

     To get list of names & mixer controls use:
     ?:\MMOS2\UNIMIX.EXE -card     - card / mixer name
     ?:\MMOS2\UNIMIX.EXE -names    - mixer control names
     ?:\MMOS2\UNIMIX.EXE -list     - mixer control full list

   4. then script is ready:
     umix /setup - select our "new_card" line and look for "detected" text or
     script error. Correct errors and try again.
     Run mixer, try to mover controls ;)

   5. Minor cosmetic parameter examples:
     [new_card]
     Controls=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
     script=data\new_card.scr

     ; alternative name & hint text for CustomB control
     CustomB=#SPDIF,S/PDIF Playback Volume,S/PDIF Playback Switch

     ; keyboard mute key affect CustomA control (Main by default)
     Key.Mute=CustomA

     ; keyboard volume +/- keys affect Wave control (Main by default)
     Key.Volume=Wave

   6. supported card/mixer notes:

     Audigy SE - vladest uniaud (2007) does not support all controls and
                 script display warning about what.
                 Lastest Pasha`s uniaud does not support it again (i'm think
                 there is some king of chaos in uniaud svn usage ;))
                 So the better choise is Nov.2008 (rc6) uniaud, or (if you`re
                 really hardcore boy/girl) - pasha's uniaud16.sys (OS/2 part)
                 and Nov.2008 uniaud32.sys (ALSA part)

     SB Live!  - was tested on Value & old 5.1 (rev 10) cards.
                 No MIDI at all in uniaud ;) MIDI playback control is used for
                 PCM waveout volume.

     Stac9205  - founded on one laptop. Uniaud versions after feb.2008 show
                 another list of controls and does not work. Feb.2008 work fine.

   7. known bugs:
     umix /setup - sometimes hang on start ;) just try again and again ;)

   And finally, you can use this app for anything, not for uniaud itself
   (control icons & hint text can be customized in ini file and script can
   call ANY binary dll).

