Mixomat 2.00

Contents
About Mixomat
Registration
Installation
Files
Settings
Plug-in
REXX Interface
Scope
Known Problems
Frequently Asked Questions
Future
History
Updates


1. About Mixomat

Mixomat is a mixer for Soundblaster 16/32 and 64 cards. It is optimized for OS/2 Warp 4 but it also works with OS/2 Warp 3 together. MMPM is not necessary.

2. Registration

Mixomat is Shareware. You can try this version for 30 days. After this period you must register Mixomat.

How much does it cost?

A licence costs 10US$ or 15 Swiss Francs.

How can I register?

There are two registration methods. Don't forget to include your name, address and e-mail address. I can only send the registration key by e-mail.

a) by mail

Send the money in cash to:

Address:

Christoph Bratschi
Felsenweg 16
CH-4123 Allschwil
Switzerland

The following currencies are welcome: US Dollars, Swiss Francs, Deutsche Mark.
You can send checks but then please add 15US$ because it costs that much to cash international checks.

b) by bank transfer

Transfer 15 Swiss Francs to:

Bank name:

Union Bank of Switzerland (Schweizerische Bankgesellschaft)

Bank address:

Bahnhofstrasse 45
CH-8021 Zürich

Name:

Christoph Bratschi

Address:

Felsenweg 16
CH-4123 Allschwil
Switzerland

Account number:

233-531463.40E

I will sent your personal key as fast a possible.
The registered version has no 'unregistered' in the title and status bar. The dialog with the registration information will also disappear.

Questions? e-mail.

E-Mail: cbratschi@datacomm.ch

There is only one version of Mixomat without any limitations!
Please don't use illegal keys. I'm a student of Chemistry and I invested many hours in this program. Support my work and register!

Guarantee: You use this program at your own risk! All rights are reserved!

3. Installation

  1. Create a directory with the name 'MIXOMAT' or choose another name.

  2. Unzip the program archive to this directory: unzip archiv.zip.

  3. Run INSTALL.CMD to create a WPS program folder.

  4. That's it!

4. Files

Filename

Description

MIXOMAT.EXE

Mixomat 1.01 program file

NPMIXER.DLL2

Netscape plug-in.

MIXOMAT.HTM

This documentation.
Best viewed with Netscape Navigator 3.0 or higher.
WebExplorer is good but not good enough.
StarOffice is even better: Style Sheets are supported.

MIXOMAT.TXT2

This documentation in ASCII format. Please install a HTML viewer and open MIXOMAT.HTM

NPMIXER.HTM2

Plug-in demonstration 1.

NPMIXER2.HTM2

Plug-in demonstration 2.

NPMIXER2.MIX2

Data file for plug-in demonstration 2.

SCOPE.EXE

Oscilloscope Beta.

SBREXX.DLL

REXX DLL

SBTEST.CMD

REXX DLL demonstration script.

INSTALL.CMD

Installation script

MCAPI.CMD

Mixer Control API draft

FILE_ID.DIZ

Description for a BBS

5. Settings

Settings Dialog:

Tab

Options

General

Port1

Choose the correct port for your Soundblaster card.
Use 'Find Port' to look for the correct port.
Use 'Check SB...' to check if you sound card works with Mixomat.

Load profile

If this profile is the active one it will be initialized otherwise the first profile will be activated.

Set values

The selected values will be set to the Soundblaster.

Full

Shows the full dialog

Mini

Shows the icon view

Save settings

These settings are saved.

No Reset1

Do not show the reset command in context menus and ignore the hot key

Stop mute1

All mutes are stopped.

Save settings pos

The settings dialog pos will be saved.

Time critical port access1

Use this if you have problems with other programs. Attention: don't use if without this problems!

Voice to Wave12

Change all texts from 'Voice' to 'Wave'.

Save after settings2

Save all settings after closing the settings dialog with 'Ok'.

Update1

Focus

Update the scrollbars on window focus.

Refresh

Refresh some or all values with a timer. If you don't choose all you can select on the Refresh tab which values to be refreshed.

Aggressive

Let some ar all values constant with a timer. If you don't choose all you can select on the Aggressive tab which values to be set.

Mute and Focus/Refresh

The Soundblaster card can't handle a mute command, this is emulated by Mixomat. Here you can choose what Mixomat will do if mute is activated and a refresh should be done: Ignore does nothing, the display will be wrong but the mute isn't broken; Update controls sets the controls to the new values and breaks the mute; Update values does refresh the values in background, if you stop mute the new value will be displayed.

Timer

Thread/PM timer is a good choose. Use the high resolution timer whenever you need a higher precision.

Test hires timer...

Check if your system supports the high resolution timer.

Refresh1

Check boxes

Choose all values to be refreshed.

Aggressive1

Check boxes

Choose all values to be set.
If a values is selected you can use the spin buttons to specify a value or a range. Without a specified value the scrollbar value is used. If the first number is higher than the second all valid values will be outside this range.

Profile

Add

Adds a new profile.

Delete

Deletes a profile.

Save2

Saves to selected profile to disk. Hold down the shift key for German messages.

Load2

Load a profile from disk.

Sort2

Change order of profiles.

Name

Name the profile.

Save as script

Saves the select profile as a REXX script which uses SBREXX.DLL.
Press shift key for German language REXX scripts.

Full

Save position

Saves the position of the full dialog.

Open last tab

Opens the last settings tab.

Value info

Shows the value of scrollbars/sliders in per cent or by value. Choose 'None' if you want to disable it.

Background start

Starts the full view in background, behind the window with the focus.

Flat sliders

Uses flat sliders instead of scrollbars.

Color2

Change the color of the flat sliders.

Menu help2

Show a help text for menu commands.

Back disable2

Change the background color of the dialog if it hasn't the focus.

Mini

Direction

Choose the direction of the window.
If you choose Vertical the statusbar and the titlebar are disabled.

Border

Choose the border type.

Save position

Saves the position of the mini dialog.

Flat buttons

Use the flat buttons or normal buttons.

Titlebar

Shows the titlebar

Statusbar

Use a statusbar

Mouse help

If your mouse is over a button a help text will be displayed in the statusbar.

Tip

If the statusbar is hidden or Mixomat is in horizontal view you can't see the help text in the statusbar. Select tip to show this information in a separate window.

Menu help2

Show a help text in the status bar if a menu is open.

Menu tip2

If the statusbar is hidden or Mixomat is in horizontal view you can't see the help text in the statusbar. Select menu tip to show the menu help information in a separate window.

Auto close

Close the display window if it loses the focus.

Open last

Open the last opened display window.

Outside

Show display windows outside the main window.

Align

Chose the position where Mixomat should be aligned.

Check Warp Center

Don't align the window above Warp Center.

Always on top

The main window is always on the top of all other windows.

Open last tab

Opens the last settings tab.

Value info

Shows the value of scrollbars/sliders in per cent or by value. Choose 'None' if you want to disable it.

Sliders

Show scrollbars, flat sliders or circular sliders.

Background start

Start the mini view in background, behind the window with the focus.

Icon spacing

Set the width of the space between the icons and the space between the icons and the window frame in pixels.

Button size

Set the size of the button in pixels.

Expand mode

In the expand mode you can collapse the mini view. Only the first button is displayed in this mode. With help of a button or the keyboard you can expand the window to full size.

Fixed position

Set the position of the window which is fix. You can only choose a fixed position if align is set to none. If align is set to a position the collapsed/expanded window will be aligned to this position.

Show button

Show the expand/collapse button.

Fixed position2

Show the expand/collapse button at the same position.

Expanded

Set the window expanded/collapsed.

Flat slider color2

Change the color of the flat sliders.

Back disable2

Change the background color of the dialog if it hasn't the focus.

Hotkey close2

Close an existing window instead of activation. Have a look at the hotkeys.

Horizontal2

Display horizontal windows at the following directions:

  • Up or down: shows the window at the top if there's enough room.

  • Down or up: shows the window at the bottom if there's enough room.

  • Up: shows the window at the top.

  • Down: shows the window at the bottom.

Vertical2

Display vertical windows at the following directions:

  • Right or left: shows the window at the right side if there's enough room.

  • Left or right: shows the window at the left side if there's enough room.

  • Right: shows the window at the right side.

  • Left: shows the window at the left side.

Tab space2

Defines the space between the window and the main window.

Slider size2

Large: defines the larger size. Horizontal view = height. Vertical view = width.
Small: defines the smaller size. Horizontal view = width. Vertical view = height.

Circular slider size2

Large: defines the larger size. Horizontal view = height. Vertical view = width.
Small: defines the smaller size. Horizontal view = width. Vertical view = height.

Visible

These buttons will be shown. If you select separator for a button a separator will be drawn.

Hidden

These buttons are hidden.

Context menu:

Click the right mouse button to open a context menu.

Command line:

Parameter

Description

Number

Loads the profile with this number.

/MINI

Mini view.

/FULL

Full dialog view.

/CFG="filename"

Use the configuration file filename.

/RESET

Reset the sound card.

/CHECK

Check your sound card.

/FONT="fontname"

Use the font fontname for all windows and the settings dialog. If your default font is to big and you can't read everything then use this parameter.

Examples:
/FONT="8. Tms Rmn"
/FONT="10. Helv"
/FONT="8. WarpSans"
/FONT="12. Swiss"

/BACKGROUND

Start in Background.

/FOREGROUND

Start in Foreground.

/SET

Only sets the selected profile without starting the graphical interface.

/PW
/PASSWORD

Specifies the password for a protected plug-in configuration file.

Examples:
/PW="My password"
/PASSWORD="My password"

Keys

Full View

Key

Function

[ALT]-x

Exit

[F2]

Save settings

Mini View

Key

Function

[ALT]-x

Exit

[F2]

Save settings

[F3]

Expand/Collapse

[ALT]-s

Settings

[ALT]-p

Profile

[ALT]-a

Add profile

[ALT]-r

Reset (if allowed)

[ALT]-h

Horizontal

[ALT]-t

Toggle titlebar

[ALT]-b

Toggle statusbar

[ALT]-l

L/R lock

[ALT]-m

Full view

[ALT]-f

Full view

[ALT]-a

About

1..9

Open button at position x (1 = first, 2 = second, ...)

a..p

Open button at position x (a = first, b = second, ...)

6. Mixomat Plug-in

Installation

Close Netscape Navigator. Copy the file NPMIXER.DLL to the Netscape plug-in directory (x:\NETSCAPE\PLUGINS). Then start Netscape Navigator and type about:plugins or choose Help/About plugins in the menu. Then look through the list and choose the Mixomat plug-in. There should be a button. Push this button and configure the plug-in.

Configuration

Open Help/About plug-ins and push Mixomat's settings button.

Settings

Description

External configuration

Share a configuration file with Mixomat stand alone.

Ignore embed tags

Ignore all HTML embed tags: <EMBED tags> </EMBED>

Ignore file tags

Ignore commands in an external file. <EMBED file="external file"> </EMBED>

Disable plug-in

Don't load plug-in.

Vertical center

Center buttons vertical.

Horizontal center

Center button horizontal.

Save on exit

Save plug-in settings on exit. I don't recommend this because all changes made by HTML tags are saved.

Allow settings

Allow to access the settings dialog in the plug-in.

Update

Update looks for you if there is a new version of Mixomat. You must have a connection to the internet to use it.
Auto update: checks every x minutes if a new version is available.
Update: check now if a new version is available.

Mixomat settings

Change the default Mixomat settings.

Feedback

Send an e-mail to me.

Protection

Protect the configuration file. Then you must enter a password before you can change the settings.

Embed tags

Usage

<EMBED type=audio/Mixomat height=399 width=35 pluginspage=http://www.datacomm.ch/~cbratschi/ MixomatTags></EMBED>

Netscape tags

Tag

Description

Height

Horizontal size of the plug-in in the HTML page.

Width

Vertical size of the plug-in in the HTML page.

PluginsPage

Indicates the location of instructions for installing the plug-in.
Set this value to my home page:
pluginspage=http://www.datacomm.ch/~cbratschi/

PluginURL

Points to a JAR file (Communicator only)

SRC

Optionally indicates the location of the plug-in data file by its URL.
Example: src=mixomat.mix

Type

Optionally indicates the MIME type of the Embed tag, which in turn determines which plug-in is loaded to handle this Embed tag.
The MIME type of Mixomat is: audio/Mixomat

Name

Specifies the name of the inserted object. For use with JavaScript.

Example

<EMBED type=audio/Mixomat height=399 width=35 pluginspage=http://www.datacomm.ch/~cbratschi/ frame=none horizontal=true buttons=all separators=bass,mute buttonsize=25 iconspacing=5></EMBED>

The tags are parsed from left to right. If you use tags which select or create a new profile then all tags at the right side of this tag access the new profile.
Tags aren't case sensitive.

General options

Tag

Description

Font

Choose a font.
Example: font="9.WarpSans"

Reset

True, On, 1, Yes: Switch on (allow reset)
False, Off, 0, No: Switch off
Example: Reset=True

VCenter

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: vcenter=True

HCenter

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: hcenter=True

Horizontal

True, On, 1, Yes: Switch on (horizontal view)
False, Off, 0, No: Switch off (vertical view)
Example: horizontal=True

Flat

True, On, 1, Yes: Switch on (flat buttons)
False, Off, 0, No: Switch off (normal buttons)
Example: flat=True

MouseHelp

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: mousehelp=True

Frame
DlgFrame

Dialog: Dialog frame
Thin: Thin frame
None: No frame
Example: frame=none

AutoClose

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: autoclose=True

OpenLast

True, On, 1, Yes: Switch on (open last window)
False, Off, 0, No: Switch off
Example: openlast=True

LastBmp
LastButton

Number.

Outside

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: outside=True

Tip

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: tip=True

ValueInfo

None: No value info
Value: show value info
PerCent: show per cent info
Example: valueinfo=value

OpenLastSettings

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: openlastsettings=True

LastSettings

Number.

Sliders

Scrollbar: use scrollbars
Circular: use circular sliders
Flat: use flat sliders
Example: sliders=flat

IconSpacing

Number.

ButtonSize

Number.

SliderColor

Green
Red
Blue
White
Pink
Cyan
Yellow
DarkGray
DarkBlue

DarkRed
DarkPink
DarkGreen
DarkCyan
Brown
PaleGray

GYR: Green-Yellow-Read
GBYR: Green-Blue-Yellow-Read
GreenL
GreenR
GreenM1
GreenM2
RedL
RedR
RedM1
RedM2
BlueL
BlueR
BlueM1
BlueM2
CyanL
CyanR
CyanM1
CyanM2
PinkL
PinkR
PinkM1
PinkM2
YellowL
YellowR
YellowM1
YellowM2
WhiteL
WhiteR
WhiteM1
WhiteM2
Example: SliderColor=white

MenuHelp

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: menuhelp=True

MenuTip

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: menutip=True

BackDisable

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: backdisable=True

BackDisableColor

Green
Red
Blue
White
Pink
Cyan
Yellow
DarkGray
DarkBlue

DarkRed
DarkPink
DarkGreen
DarkCyan
Brown
Black
PaleGray

HotkeyClose

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: hotkeyclose=True

HorzTab
HTab

UpBestFit
DownBestFit
Up
Down

VertTab
VTab

RightBestFit
LeftBestFit
Right
Left

TabSpace

Number.

UseSliderSize

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: useslidersize=True

SliderSize

Small,Large
Example: slidersize=10,100

UseCircularSize

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: usecircularsize=True

CircularSize

Small,Large
Example: circularsize=10,100

Buttons

All
None
Name,Name,Name,...
Master
Voice
Wave
Midi
CD
Line
Micro
Speaker
Treble
Bass
Out
In
Mute
Settings

Example: buttons=midi,cd,mute,settings

Separators

All
None
Name,Name,Name,...
Master
Voice
Wave
Midi
CD
Line
Micro
Speaker
Treble
Bass
Out
In
Mute
Settings
Example: separators=midi,cd,mute,settings

ProfileNr

Number. Load profile at position x. 0 is the first profile.

ProfileName
Profile

String. Load the profile with this name. The name is case sensitive.
Example: profile=CD

IProfileName
IProfile

String: Load the profile with this name. The name is case insensitive.
Example: iprofile=CD

Plug-in options

Tag

Description

AboutPlugins
PluginSettings

Displays the settings button. Default: Off.
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: aboutplugins=True

Animate

Show an animated text. Default: On.
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: useslidersize=True

OutsideAbout

Show the settings button outside about:plugins. Default: Off.
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: useslidersize=True

NoDefFont

Don't change the default font to 9.WarpSans on Warp 4 systems or higher.
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: useslidersize=True

Mixer options

Tag

Description

Master

Number: Set both channels to this value.
Number%: Set both channel to this value in per cent.
Left,Right: Set left and right values.
Left%,Right%: Set left and right values in per cent.
Example: master=5,5

Voice

Number: Set both channels to this value.
Number%: Set both channel to this value in per cent.
Left,Right: Set left and right values.
Left%,Right%: Set left and right values in per cent.
Example: voice=30%,40%

Midi

Number: Set both channels to this value.
Number%: Set both channel to this value in per cent.
Left,Right: Set left and right values.
Left%,Right%: Set left and right values in per cent.
Example: midi=5

CD

Number: Set both channels to this value.
Number%: Set both channel to this value in per cent.
Left,Right: Set left and right values.
Left%,Right%: Set left and right values in per cent.
Example: cd=50%

Line

Number: Set both channels to this value.
Number%: Set both channel to this value in per cent.
Left,Right: Set left and right values.
Left%,Right%: Set left and right values in per cent.
Example: line=0

Micro

Number: Set this value.
Number%: Set to this value in per cent.
Example: micro=41%

Speaker

Number: Set this value.
Number%: Set to this value in per cent.
Example: speaker=33%

Treble

Number: Set both channels to this value.
Number%: Set both channel to this value in per cent.
Left,Right: Set left and right values.
Left%,Right%: Set left and right values in per cent.
Example: treble=50%

Bass

Number: Set both channels to this value.
Number%: Set both channel to this value in per cent.
Left,Right: Set left and right values.
Left%,Right%: Set left and right values in per cent.
Example: bass=100%

OutLine

Left,Right: Set left and right values
Left: Set both channels to this value
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: outline=True,True

OutCD

Left,Right: Set left and right values
Left: Set both channels to this value
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: outcd=True

OutMicro

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: outmicro=True

InLMidi

Left,Right: Set left and right values
Left: Set both channels to this value
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: inlmidi=True,True

InLLine

Left,Right: Set left and right values
Left: Set both channels to this value
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: inlline=True,True

InLCD

Left,Right: Set left and right values
Left: Set both channels to this value
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: inlcd=True,True

InLMicro

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: inlmicro=True

InRMidi

Left,Right: Set left and right values
Left: Set both channels to this value
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: inrmidi=True,True

InRLine

Left,Right: Set left and right values
Left: Set both channels to this value
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: inrline=True,True

InRCD

Left,Right: Set left and right values
Left: Set both channels to this value
True
, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: inrcd=True,True

InRMicro

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: inrmicro=True

InGain

Number: Set both channels to this value.
Number%: Set both channel to this value in per cent.
Left,Right: Set left and right values.
Left%,Right%: Set left and right values in per cent.
Example: ingain=100%

OutGain

Number: Set both channels to this value.
Number%: Set both channel to this value in per cent.
Left,Right: Set left and right values.
Left%,Right%: Set left and right values in per cent.
Example: outgain=50%,50%

AGC

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: agc=True

Mute

All
None
Name,Name,Name,...
Master
Voice
Wave
Midi
CD
Line
Micro
Speaker
Treble
Bass
Example: mute=master,voice

LRLock

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: lrlock=True

StartLoad

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: startload=True

StartSet

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: startset=True

ExitStop

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: exitstop=True

UpdateFocus

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: updatefocus=True

UpdateRefresh

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: updaterefresh=True

RefreshTime

Number.
Example: refreshtime=100

Refresh

All
None
Name,Name,Name,...
Master
Voice
Wave
Midi
CD
Line
Micro
Speaker
Treble
Bass
OutLine
OutCD
OutMicro
OutGain
InMidi
InLine
InCD
InMicro
InGain
AGC
Example: refresh=master,voice

UpdateAggressive

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: updateaggressive=True

Aggressive

All
None
Name,Name,Name,...
Master
Voice
Wave
Midi
CD
Line
Micro
Speaker
Treble
Bass
OutLine
OutCD
OutMicro
OutGain
InMidi
InLine
InCD
InMicro
InGain
AGC
Example: aggressive=master,voice

AggressiveTime

Number.
Example: aggressivetime=100

NoReset

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: noreset=True

Timer

Thread: Use thread.
Timer: Use PM timer.
HiResTimer: Use high resolution timer.

(TimeCritical)

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: timecritical=True
Don't use this tag!

Voice2Wave

True, On, 1, Yes: Switch on
False, Off, 0, No: Switch off
Example: voice2wave=True

Data File structure

You can use an external data file instead of Embed tags. This method is more flexible but it needs one more network connection to load the data file.
The data file has the following structure:
[Settings]
Parameter=Value
[/Settings]
[Profile:Name]
Parameter=Value
[/Profile]

[Settings]

Go to general options.

[Profile:Name]

Go to profile options.

Additional parameters

Parameter

Value

DefaultProfile

No value!
Make this profile to the default profile.
Example: DefaultProfile

Example

[SETTINGS]
Font=9.WarpSans
Buttons=wave,midi
[/SETTINGS]
[PROFILE:Hello World!]
[/PROFILE]
[SETTINGS]
Profile=Hello World!
[/SETTINGS]

7. REXX Interface

Initialization

call RxFuncAdd 'MixLoadFuncs','SBREXX','MixLoadFuncs'
call MixLoadFuncs

Datatypes

Bool  = 0/1, TRUE/FALSE, ON/OFF, YES/NO
HexNr = 220

Functions

General

HexNr   = MixGetPort()
          MixSetPort HexPort
HexNr   = MixCheckPort()
Hi'.'Lo = MixGetDSP()
          MixReset()
Bool    = MixGetTimeCritical()
          MixSetTimeCritical Bool

Master

Bool   = MixIsMasterAvailable()
Number = MixGetMasterMin()
Number = MixGetMasterMax()
Number = MixGetMasterL()
Number = MixGetMasterR()
L','R  = MixGetMaster()
         MixSetMasterL Number
         MixSetMasterR Number
         MixSetMaster L,R

Wave/Voice

Bool   = MixIsVoiceAvailable()
Number = MixGetVoiceMin()
Number = MixGetVoiceMax()
Number = MixGetVoiceL()
Number = MixGetVoiceR()
L','R  = MixGetVoice()
         MixSetVoiceL Number
         MixSetVoiceR Number
         MixSetVoice L,R
or
Bool   = MixIsWaveAvailable()
Number = MixGetWaveMin()
Number = MixGetWaveMax()
Number = MixGetWaveL()
Number = MixGetWaveR()
L','R  = MixGetWave()
         MixSetWaveL Number
         MixSetWaveR Number
         MixSetWave L,R

Midi

Bool   = MixIsMidiAvailable()
Number = MixGetMidiMin()
Number = MixGetMidiMax()
Number = MixGetMidiL()
Number = MixGetMidiR()
L','R  = MixGetMidi()
         MixSetMidiL Number
         MixSetMidiR Number
         MixSetMidi L,R

CD

Bool   = MixIsCDAvailable()
Number = MixGetCDMin()
Number = MixGetCDMax()
Number = MixGetCDL()
Number = MixGetCDR()
L','R  = MixGetCD()
         MixSetCDL Number
         MixSetCDR Number
         MixSetCD L,R

Line

Bool   = MixIsLineAvailable()
Number = MixGetLineMin()
Number = MixGetLineMax()
Number = MixGetLineL()
Number = MixGetLineR()
L','R  = MixGetLine()
         MixSetLineL Number
         MixSetLineR Number
         MixSetLine L,R

Micro

Bool   = MixIsMicroAvailable()
Number = MixGetMicroMin()
Number = MixGetMicroMax()
Number = MixGetMicro()
         MixSetMicro Number

Speaker

Bool   = MixIsSpeakerAvailable()
Number = MixGetSpeakerMin()
Number = MixGetSpeakerMax()
Number = MixGetSpeaker()
         MixSetSpeaker Number

Treble

Bool   = MixIsTrebleAvailable()
Number = MixGetTrebleMin()
Number = MixGetTrebleMax()
Number = MixGetTrebleL()
Number = MixGetTrebleR()
L','R  = MixGetTreble()
         MixSetTrebleL Number
         MixSetTrebleR Number
         MixSetTreble L,R

Bass

Bool   = MixIsBassAvailable()
Number = MixGetBassMin()
Number = MixGetBassMax()
Number = MixGetBassL()
Number = MixGetBassR()
L','R  = MixGetBass()
         MixSetBassL Number
         MixSetBassR Number
         MixSetBass L,R

Output

Bool                              = MixIsOutputAvailable()
LineL','LineR','CDL','CDR','Micro = MixGetOutput()
                                    MixSetOutput LineL,LineR,CDL,CDR,Micro
Line
Bool = MixIsOutLineAvailable()
Bool = MixIsOutLineLAvailable()
Bool = MixGetOutLineL()
       MixSetOutLineL Bool
Bool = MixIsOutLineRAvailable()
Bool = MixGetOutLineR()
       MixSetOutLineR Bool
CD
Bool = MixIsOutCDAvailable()
Bool = MixIsOutCDLAvailable()
Bool = MixGetOutCDL()
       MixSetOutCDL Bool
Bool = MixIsOutCDRAvailable()
Bool = MixGetOutCDR()
       MixSetOutCDR Bool
Micro
Bool = MixIsOutMicroAvailable()
Bool = MixGetOutMicro()
       MixSetOutMicro Bool

Input

Left
Bool                                              = MixIsInputLAvailable()
MidiL','MidiR','LineL','LineR','CDL','CDR','Micro = MixGetInputL()
                                                    MixSetInputL MidiL,MidiR,LineL,LineR,CDL,CDR,Micro
Midi left
Bool = MixIsInLMidiAvailable()
Bool = MixIsInLMidiLAvailable()
Bool = MixGetInLMidiL()
       MixSetInLMidiL Bool
Bool = MixIsInLMidiRAvailable()
Bool = MixGetInLMidiR()
       MixSetInLMidiR Bool
Line left
Bool = MixIsInLLineAvailable()
Bool = MixIsInLLineLAvailable()
Bool = MixGetInLLineL()
       MixSetInLLineL Bool
Bool = MixIsInLLineRAvailable()
Bool = MixGetInLLineR()
       MixSetInLLineR Bool
CD left
Bool = MixIsInLCDAvailable()
Bool = MixIsInLCDLAvailable()
Bool = MixGetInLCDL()
       MixSetInLCDL Bool
Bool = MixIsInLCDRAvailable()
Bool = MixGetInLCDR()
       MixSetInLCDR Bool
Micro left
Bool = MixIsInLMicroAvailable()
Bool = MixGetInLMicro()
       MixSetInLMicro Bool
Right
Bool                                              = MixIsInputRAvailable()
MidiL','MidiR','LineL','LineR','CDL','CDR','Micro = MixGetInputR()
                                                    MixSetInputR MidiL,MidiR,LineL,LineR,CDL,CDR,Micro
Midi right
Bool = MixIsInRMidiAvailable()
Bool = MixIsInRMidiLAvailable()
Bool = MixGetInRMidiL()
       MixSetInRMidiL Bool
Bool = MixIsInRMidiRAvailable()
Bool = MixGetInRMidiR()
       MixSetInRMidiR Bool
Line right
Bool = MixIsInRLineAvailable()
Bool = MixIsInRLineLAvailable()
Bool = MixGetInRLineL()
       MixSetInRLineL Bool
Bool = MixIsInRLineRAvailable()
Bool = MixGetInRLineR
       MixSetInRLineR Bool
CD right
Bool = MixIsInRCDAvailable()
Bool = MixIsInRCDLAvailable()
Bool = MixGetInRCDL()
       MixSetInRCDL Bool
Bool = MixIsInRCDRAvailable()
Bool = MixGetInRCDR()
       MixSetInRCDR Bool
Micro right
Bool = MixIsInRMicroAvailable()
Bool = MixGetInRMicro()
       MixSetInRMicro Bool

Output gain

Bool   = MixIsOutGainAvailable()
Number = MixGetOutGainMin()
Number = MixGetOutGainMax()
Number = MixGetOutGainL()
Number = MixGetOutGainR()
L','R  = MixGetOutGain()
         MixSetOutGainL Bool
         MixSetOutGainR Bool
         MixSetOutGain L,R

Input gain

Bool   = MixIsInGainAvailable()
Number = MixGetInGainMin()
Number = MixGetInGainMax()
Number = MixGetInGainL()
Number = MixGetInGainR()
L','R  = MixGetInGain()
         MixSetInGainL Bool
         MixSetInGainR Bool
         MixSetInGain L,R

AGC

Bool = MixIsAGCAvailable()
Bool = MixGetAGC()
       MixSetAGC Bool

Examples

Example 1

/* SBRexx Test */

call RxFuncAdd 'MixLoadFuncs','SBREXX','MixLoadFuncs'
call MixLoadFuncs

Say MixVer()
Say MixCopyright()
Say

/* if MixIsMasterAvailable()  = 1 then Say 'Master:  'MixGetMasterL()'/'MixGetMasterR()'' */
if MixIsMasterAvailable() = 1 then
do
parse value MixGetMaster() with L','R
Say 'Master:  'L'/'R''
end;
if MixIsVoiceAvailable()   = 1 then Say 'Voice:   'MixGetVoiceL()'/'MixGetVoiceR()''
if MixIsMidiAvailable()    = 1 then Say 'Midi:    'MixGetMidiL()'/'MixGetMidiR()''
if MixIsCDAvailable()      = 1 then Say 'CD:      'MixGetCDL()'/'MixGetCDR()''
if MixIsLineAvailable()    = 1 then Say 'Line:    'MixGetLineL()'/'MixGetLineR()''
if MixIsMicroAvailable()   = 1 then Say 'Micro:   'MixGetMicro()''
if MixIsSpeakerAvailable() = 1 then Say 'Speaker: 'MixGetSpeaker()''
if MixIsTrebleAvailable()  = 1 then Say 'Treble:  'MixGetTrebleL()'/'MixGetTrebleR()''
if MixIsBassAvailable()    = 1 then Say 'Bass:    'MixGetBassL()'/'MixGetBassR()''
pause
Say
Say 'Output:'
if MixIsOutLineAvailable()  = 1 then Say 'Line:  'MixGetOutLineL()'/'MixGetOutLineR()''
if MixIsOutCDAvailable()    = 1 then Say 'CD:    'MixGetOutCDL()'/'MixGetOutCDR()''
if MixIsOutMicroAvailable() = 1 then Say 'Micro: 'MixGetOutMicro()''
if MixIsOutGainAvailable()      = 1 then 
do
L = MixGetOutGainL()
if L = 0 then L = 'x1'
else if L = 1 then L = 'x2'
else if L = 2 then L = 'x4'
else if L = 3 then L = 'x8'
R = MixGetOutGainR()
if R = 0 then R = 'x1'
else if R = 1 then R = 'x2'
else if R = 2 then R = 'x4'
else if R = 3 then R = 'x8'
Say 'Gain:  'L'/'R''
end
Say
Say 'InputL:'
if MixIsInLMidiAvailable()  = 1 then Say 'Midi:  'MixGetInLMidiL()'/'MixGetInLMidiR()''
if MixIsInLLineAvailable()  = 1 then Say 'Line:  'MixGetInLLineL()'/'MixGetInLLineR()''
if MixIsInLCDAvailable()    = 1 then Say 'CD:    'MixGetInLCDL()'/'MixGetInLCDR()''
if MixIsInLMicroAvailable() = 1 then Say 'Micro: 'MixGetInLMicro()''
Say
Say 'InputR:'
if MixIsInRMidiAvailable()  = 1 then Say 'Midi:  'MixGetInRMidiL()'/'MixGetInRMidiR()''
if MixIsInRLineAvailable()  = 1 then Say 'Line:  'MixGetInRLineL()'/'MixGetInRLineR()''
if MixIsInRCDAvailable()    = 1 then Say 'CD:    'MixGetInRCDL()'/'MixGetInRCDR()''
if MixIsInRMicroAvailable() = 1 then Say 'Micro: 'MixGetInRMicro()''
if MixIsInGainAvailable()      = 1 then 
do
L = MixGetInGainL()
if L = 0 then L = 'x1'
else if L = 1 then L = 'x2'
else if L = 2 then L = 'x4'
else if L = 3 then L = 'x8'
R = MixGetInGainR()
if R = 0 then R = 'x1'
else if R = 1 then R = 'x2'
else if R = 2 then R = 'x4'
else if R = 3 then R = 'x8'
Say 'Gain:  'L'/'R''
end
if MixIsAGCAvailable() = 1 then Say 'AGC:   'MixGetAGC()''

Example 2

/* Profile: Default */

call RxFuncAdd 'MixLoadFuncs','SBREXX','MixLoadFuncs'
call MixLoadFuncs

Say 'Loading profile Default'

call MixSetPort         220
call MixSetTimeCritical TRUE
call MixSetMaster       24,24
call MixSetVoice        25,25
call MixSetMidi         24,24
call MixSetCD           25,25
call MixSetLine         25,25
call MixSetMicro        25
call MixSetSpeaker       2
call MixSetTreble       11,11
call MixSetBass         11,11
call MixSetOutput       TRUE,TRUE,TRUE,TRUE,FALSE
call MixSetInputL       TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE
call MixSetInputR       FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE
call MixSetInGain       1,1
call MixSetOutGain      0,0
call MixSetAGC          FALSE

Say 'Done'

8. Scope

Parameters

Parameter

Function

/?
/HELP

Help

/PORT:x

Defines the port to use. Default: 220.

Example
/PORT:220

/TIMER:x

Defines the update time in ms. Default: 200 ms.

Example
/TIMER:200

/NOTTIMECRITICAL

Disable time critical port access.

Attention: This is a beta release of Scope!

9. Known Problems

10. Frequently Asked Questions

Question: I use the sliders to change the volume but they don't work.

Answer: Check your sound card and the selected port. If other programs overwrite the settings then use aggressive mode: open the settings dialog and enable Update/Aggressive.


Question: Some DOS games don't work. Sound suddenly stops.

Answer: Don't use the high resolution timer.

11. Future

12. History

Date

Version

16. March 1998

Mixomat 2.00

  • Netscape Navigator plug-in

  • Problems with Presentation Manager fixed

  • Many extensions

28. November 1997

Mixomat 1.01b

22. October 1997

Mixomat 1.01a

  • Switch and high resolution timer bugs fixed

  • Scope documentation

17. October 1997

Second release Mixomat 1.01.

  • Some bugfixes

  • Many extensions

22. August 1997

First release: Mixomat 1.00

(1) Profile dependent.
(2) New in this version.

13. Updates

Please visit my home page for updates.

All mentioned products and trade marks belong to their respective owners.


Christoph Bratschi's Homepage
© 1997/98 by Christoph Bratschi