This page documents how to use AspDriver (in AspDriver.dll), the HomeUX-compatible driver that controls one or more Sound Control Technologies ASP Audio Matrix 8x8 devices connected together to implement an N-input, N-output audio router. AspSimulator (in AspSimulator.dll) is also documented here.
Page contents:
A Sound Control Technologies ASP Audio Matrix 8x8 device—abbreviated "ASP" in this documentation—is an audio mixing device that has 8 audio inputs and 8 audio outputs. Any input can be routed to any output, and inputs can be mixed with the result directed to an output. Multiple ASP units can be connected together to form a 16x16 mixer array, 24x24 mixer array, etc.
AspDriver allows a HomeUX installation to control a subset of the functionality of an ASP mixer or mixer array:
AspDriver is configured in the HomeUX configuration file. Here's the general structure (simplified):
XML |
<configuration>
<HomeUXSettings>
</Device>
</HomeUXSettings>
</configuration>
|
"*" means "zero or more allowed". Children of <Device Driver="AspDriver.dll"> can appear in any order.
Example:
XML |
<configuration> ... <HomeUXSettings> ... <Device Name="ASP" Driver="AspDriver.dll" Units="3" sim:SerialPort="AspSimulator.dll;;Units=3;Test=0" real:SerialPort="COM7,38400,8,n,1,RtsEnable,DtrEnable"> <Input Name="DVD/CD L" InputId="7" /> <Input Name="DVD/CD R" InputId="8" /> <Input Name="Music Server L" InputId="17" /> <Input Name="Music Server R" InputId="18" /> <Input Name="Music Server Rear L" InputId="15" /> <Input Name="Music Server Rear R" InputId="16" /> <Input Name="DVR L" InputId="5" /> <Input Name="DVR R" InputId="6" /> <Input Name="VCR L" InputId="11" /> <Input Name="VCR R" InputId="12" /> <Output Name="Exercise E + Bathroom" OutputId="4" /> <!-- Right --> <Output Name="Exercise W + Shower" OutputId="3" /> <!-- Left --> <Output Name="Game Room NE" OutputId="7" /> <Output Name="Game Room NW" OutputId="8" /> <Output Name="Game Room SE" OutputId="11" /> <Output Name="Game Room SW" OutputId="12" /> <Output Name="Game Room TV L" OutputId="15" /> <Output Name="Game Room TV R" OutputId="16" /> <Output Name="Kitchen E" OutputId="1" /> <!--Left--> <Output Name="Kitchen W" OutputId="2" /> <!-- Right --> <Output Name="Laundry Room" OutputId="9" /> <!-- Mono --> <Output Name="Master Bedroom TV L" OutputId="13" /> <Output Name="Master Bedroom TV R" OutputId="14" /> <Output Name="Office N" OutputId="6" /> <!--Left--> <Output Name="Office S" OutputId="5" /> <!--Right--> <Output Name="Patio N" OutputId="21" /> <!-- Left --> <Output Name="Patio S" OutputId="22" /> <!-- Right --> <Output Name="Deck N" OutputId="19" /> <!-- Left --> <Output Name="Deck S" OutputId="20" /> <!-- Right --> <Output Name="Sunfire L" OutputId="17" /> <Output Name="Sunfire R" OutputId="18" /> </Device> ... </HomeUXSettings> </configuration> |
The following subsections describe the AspDriver configuration file XML elements.
(Required, used within <HomeUXSettings>.) Specifies an instance of AspDriver, which is used to control an ASP mixer array.
XML |
<Device
Name="..."
Driver="AspDriver.dll"
Units="..."
SerialPort="...">
</Device>
|
"*" means "zero or more allowed".
Name
(String, required.) The name you assign to the device.
Driver
(String, required.) Must be "AspDriver.dll".
Units
(Integer, required.) The number of ASP Audio Matrix 8x8 devices connected together.
SerialPort
(String, required.) A standard HomeUX serial port specification. Identifies the serial port (real or virtual) that the hardware is connected to. When connected to a real serial port, the parameters should be "port-name,38400,8,n,1,RtsEnable,DtrEnable" in order to operate correctly with an ASP unit.
(Zero or more, used within <Device Driver="AspDriver.dll">.) Specifies one input on the ASP mixer array.
XML |
<Input
Name="..."
InputId="..."
/>
|
Name
(String, required.) The name you assign to the input.
InputId
(Integer, required.) The input number. For the first (or only) ASP 8x8 unit, this is a number from 1 to 8, inclusive; for the second unit, it's from 9 to 16, inclusive; and so on.
(Zero or more, used within <Device Driver="AspDriver.dll">.) Specifies one output on the ASP mixer array.
XML |
<Output
Name="..."
OutputId="..."
/>
|
Name
(String, required.) The name you assign to the output.
OutputId
(Integer, required.) The output number. For the first (or only) ASP 8x8 unit, this is a number from 1 to 8, inclusive; for the second unit, it's from 9 to 16, inclusive; and so on.
AspDriver implements the following SyncPath schema:
AspSimulator is a HomeUX-compatible virtual serial port implementation that simulates a subset of the serial communication behavior ASP hardware. AspSimulator performs no real-world actions—the simulation is purely for the purposes of testing a HomeUX installation without having to connect to real hardware.
To use AspSimulator in HomeUX, set the SerialPort attribute of the <Device Driver="AspDriver.dll"> configuration element to a string with the following format:
AspSimulator.dll;;Units=unit-count;Test=test-number
Parameters:
unit-count is the number of simulated ASP Audio Matrix 8x8 devices connected together; it should be the same number as the "Units" attribute of the <Device Driver="AspDriver.dll"> configuration element. The default is 1.
test-number specifies test behavior. This is for development use only; use 0 to specify normal behavior. The default is 0.
You can test AspSimulator independently of HomeUX, using the VSerial console application:
VSerial.exe -cr -dll AspSimulator.dll;;Units=unit-count;Test=test-number
AspSimulator implements a limited simulation—only the following hardware commands are currently supported. (See ASP hardware documentation for information about hardware commands and notifications.)
"INGAIN" and "ALLINGAIN": Set mode only, not request mode. Syntax:
input is an input channel number (1 to N); gain is "L0" (0 dB), "L1" (+10 dB), "H0" (+50 dB), "H1" (+60 dB).
"GAIN" and "ALLGAIN": Both set and request mode. Gain value can be a decimal value 0-70 or "M"; "+" and "-" are not supported. "ALLGAIN" supports only full array mode, not sparse array etc. Note that real ASP units are limited to 1-dB steps for gain values. Syntax:
input is an input channel number (1 to N); output is an output channel number (1 to N); gain is a dB dB value (0-70) or "M" (mute).
"MASTER": Both set and request mode. Gain value can be a decimal value 0-31. Note that some actual ASP units (such as version 0.98) support 1-dB steps, but according to the documentation at least some unit support 1.5-dB steps. Syntax:
output is an output channel number (1 to N); gain is a dB value (0-31) or "M" (mute).
"RESTORE": Only preset 1 supported. That preset cannot be altered: it does the same as restarting the simulator. All channels and crosspoints are muted. Syntax:
"STATUS2": Only "ALLGAIN" and "ALLMASTER" lines are output. Syntax: