Welcome

This documentation provides detailed information for users of both the NION hardware and the NWare design software.

Use the menu to select topics and find out more about the features of these products and how to use them.

Note: This documentation is work in progress and is subject to change.

Version 1.4.0.1

January 21, 2008


Release 1.4.0

Release 1.4.0 (January 15, 2007)

Features

  • Windows Vista is now supported.

  • Renamed the X-Control 4s to X-Control 4S Switch Mode.

  • Moved the snapshot device to the Presets group.

  • Renamed device "Panel Block" to GUI Block".

  • Moved the Room Combiner Device to the Processors group.

  • Added Accelerator hints to the right-click menu.

  • Ctrl-click and drag of devices now requires a longer drag distance to prevent accidental duplication during multiple selection.

  • While in wiring mode, you can now use the shift+arrow keys to move blocks.

  • Renamed the File/Properties menu item to "Project Properties".

  • Added a brief description of how to assign roles to the deploy dialog.

  • Modified the Upload and Connect dialog boxes to improve clarity.

  • Added pre-built logic devices, such as "OR" and "XOR". These are smaller than the ones created by default with the Control Operator device.

  • Added more pre-built meters.

  • Added a new HFO, high frequency oscillator. This oscillator has a range from 16k to 48k.
    Note: You still cannot exceed 1/2 the sampling frequency.

  • The high pass filter on the Automatic Mixers now defaults to 80hz. Also, you can now easily adjust this.

  • A new help file has been added. This is still very incomplete and is work in progress.

  • You can now use the Expression Label feature to automatically generate control Aliases.

  • Major changes have been made to the Device Menu. Changes include more pre-built devices, better category names, etc.

  • Mono Wave recorders have returned.

  • Kiosk enhancements have been made, including the optional hiding of the tabs and elimination of the red selection being drawn around controls.

  • The USA daylight saving time changes are now supported.

  • Minor installer improvements.

  • Improved cab polling to reduce network load.

  • Items on the Tools menu have been moved to a submenu called "Control Nodes" to improve the clarity of the user interface.

  • Added new accelerator keys. For more information, see Appendix E: Accelerators in the user guide.

Bug Fixes

  • Fixed a problem with the CAB 8i, selecting 3dB now really gives you 3dB.

  • Subchannel mapping for CAB's now works.

  • Fixed the expression label toolbar button.

  • Fixed the missing control nodes on the Control Block devices.

  • Fixed the copying of settings on first run.

  • In previous releases, the NION CobraNet bundle priority setting was ignored. This has been fixed.

  • The missing Kosmos device bitmap has been added back.

  • We no longer highlight in orange the signal processing resources that are close to full in the compile results report. Orange highlighting incorrectly implied a warning.

  • The duplicate rows in the CAB 8o device have been removed.

Known Issues

  • To uninstall NWare, you must complete the following procedure.

    1. Right-click on the MSI file that you used to install NWare to bring up the shortcut menu.

    2. Click Uninstall.

Note: It is currently not possible to uninstall NWare via Windows Control Panel, even if you are logged on as Administrator.

  • The undo feature does not behave as expected after a drag and drop operation in NWare.

If the Outline Drag option is switched off (via Tools/User Preferences), and you drag and drop an object on the page, when you undo the operation, the object is not returned to its original position - it is moved a step backwards towards its original position. You must select the undo option multiple times in order to return the object to its original position.

  • After installation, NWare operates in Outline Drag mode, but the Outline Drag check box (available via Tools/User Preferences) does not show as selected.

If you select the check box, NWare will remain in Outline Drag mode. If you then subsequently clear the check box, NWare will switch to full graphics drag mode.


Release 1.2.6

Release 1.2.6 (9 July 2007)

Features

  • Faster Booting. The Nion now takes about 10 seconds less time to boot and start passing audio.

  • XDAB failure retries are now limited. Previously, a bad cable could cause the units to continuously retry to connect, resulting in bursts of audio output. Now, after a couple of tries, the retry interval is increased (to a maximum of 30 seconds). This also may help units that have problems achieving XDAB sync.

  • The CobraNet low latency (1.3ms and 2.6ms) modes are now supported.

  • The new installer by default installs the software in a unique directory and gives unique shortcuts. This allows for the independent installation and removal of NWare versions.

  • When the new version of NWare (1.2.6) is run for the first time and finds a previous version of NWare, it offers to copy configuration files, user-preference files, Custom Devices, firmware zip files and Project files from the previously active version of NWare (i.e. the one located in Program Files\MediaMatrix\NWare) into the new installation (i.e. at c:\Program-Files\MediaMatrix\NWare1.2.6).

Note: If your previous installation was someplace other than c:\Program-Files\MediaMatrix\NWare you will need to copy your files and reset your preferences manually.

  • ControlMatrix devices have been removed from the standard device menu. If you need these, use the NWare++ personality switch.

  • Added a System Status page to the front panel. This gives you a display of the CPU load. This reflects the amount of control activity. If the 5 or 15 minute load readings are greater than 2, you should consider reducing the control activity. Heavy load can be due to python script problems, or too many Kiosk clients.

  • If too many recorders or players are included in a design (<12 for an N6) the NION will compile properly but not run. Previously, this failure was difficult to diagnose. A more descriptive error message is now written to the log.

Outstanding issues

  • The NIO-8i card +3dBu sensitivity is actually +15dBu. So when you go from 6dBu to 3dBu, the level will actually go 9dB lower instead of 3 dB higher. The workaround is to set sensitivity to +6dBu and adjust Digital Gain to +3dB.

  • Mono recorders not been working in the last couple of releases. We have removed them from the device menu until the problems have been fixed.

Bug Fixes

  • XDAB reliability bugs introduced in NWare version 1.2.5 have been removed.

  • Fixed a bug that was causing the grid to be drawn incorrectly at certain zoom settings.


Release 1.2.5

Release 1.2.5 (25 September 2006)

Features

  • Now supports NION NX32 via the new NioNodeNX device. Only two card slots are available. XDAB usage is disallowed and will be shown by a compiler error if XDAB is connected to the NX role. NX16 will be supported in a future version.

  • All CAB devices now offer an Advanced SubChannel Mapping feature (in the Advanced Properties dialog). This allows Advanced CM-1-style bundle assignment of audio channels. 4 bundle transmitters and 8 bundle receivers are available in this mode.

  • Many improvements have been made to all ControlMatrix devices. All ControlMatrix devices now provide no input and output wiring nodes. Instead, NWare automatically creates input, output and XDAB Flyoffs that begin with "CM...", which can easily be connected directly to I/O or to additional processing. This saves time and complication in setting up medium to large ControlMatrix projects. NOTE: Special care must be taken to update existing ControlMatrix NWare projects. Click here for more information about upgrading or converting projects made with older ControlMatrix devices.

  • Updating older NWare ControlMatrix Projects

  • The new ControlMatrix devices have been renamed to prevent conflicts when adding older ControlMatrix devices. You can either load your 1.2.4 project into this version and replace all the ControlMatrix devices with new versions and use the new Flyoff method-- Or, you can continue to use your existing devices.

  • To continue using your old ControlMatrix devices, you will need to copy specific files from your 1.2.4 installation into your 1.2.5 installation folder. Here is a list of files that need to be copied. Copy these files from the \plugins\nware\devices\composite\ folder of 1.2.4 to the same subfolder of the new installation (Note that the relative paths within each NWare folder are the same):

cm_local.if.xml

cm_local.pres.xml

cmbigzone.if.xml

cmbigzone.pres.xml

cmbigzones.if.xml

cmbigzones.pres.xml

After copying these files, you must restart NWare for the program to recognize their existence.

You will still be able to update the properties and make copies of the devices, but they will not appear in the devices list. It is advisable to simply open the properties and click OK of the following devices (so the updates to those devices can be applied:

Inputs (Blue blocks)

Logic (Red blocks)

  • The NWare installer now offers to back up the existing installation if a prior version is detected. This allows you to go back to previous versions in case it is needed or if you have to work with files from multiple versions. If you don't want to create this backup, click "No."


Release 1.2.4

Release 1.2.4 (24 July 2006)

Features

  • Support added for NIO-8i 8-channel line input card.

  • New components for making very large, distributed ControlMatrix systems. These devices require strict DSP assignment and XDAB usage and thus are NOT self explanatory! Use these devices for ControlMatrix designs that either exceed 30 inputs x 30 zones or are distributed across multiple projects using the forthcoming CMProxy software.

  • Control Delay: delay and pulse maximum times can now be adjusted via the Device Properties. The default values are 120 seconds, but this value can be extended up to 10800 (3 hours).

  • Relaxed the range of properties in the snapshot device. Maximum input count is now 256. Maximum bank count is now 64. You would be foolish to max out both at the same time.

Bug Fixes

  • Optimized the extract part of the compile process that takes an extremely long time when a large number of devices are wired to the same connection.

  • Fixed a bug that prevented Kiosk from connecting to a project that was emulated if it was not already fully compiled.

  • Fixed a problem with the ExpressionLabel command where a decreasing sequence was displayed as "-=-N" which was interpreted as incrementing and thus did not preserve the original sequence.


Release 1.2.3

Release 1.2.3 (18 April 2006)

Features

Added new keyboard accelerators for Align and Pack. Previously, only Pack Left and Pack Top had accelerators. The accelerators for the Align commands are exactly the same, but with the Shift key included:

  • Pack Left: Ctrl-L (same as before)

  • Pack Top: Ctrl-T (same as before)

  • Pack Right: Ctrl-R

  • Pack Bottom: Ctrl-B

  • Align Left: Ctrl-Shift-L

  • Align Top: Ctrl-Shift-T

  • Align Right: Ctrl-Shift-R

  • Align Bottom: Ctrl-Shift-B

Bug Fixes

Fixed a problem with DSP timeouts that caused a project to fail to run because too few DSPs were detected.


Release 1.2.2

Release 1.2.2 (13 April 2006)

This software was not released to customers.


Release 1.2.1

Release 1.2.1 (8 April 2006)

Bug Fixes

  • Fixed a problem that caused the compile to fail with "unmapped segment" error related to serial ports.

  • Fixed a long standing problem with project linking where "write" controls (from the perspective of the client) are not always sent to the server when the client first connects or if it reconnects to the server.


Release 1.2

Release 1.2 (9 March 2006)

Features

General

  • Added support for ControlMatrix integration via a new ControlMatrix device in the Control menu. This device is intended for centralized ControlMatrix designs. Some customization is required for more complex NION arrangements (i.e. multiple projects) or interoperability with ControlManager. Contact Peavey should you need more assistance.

  • Support for the custom NioNode SNMP extensions has been moved to the new Peavey registered namespace: iso(1).org(3).dod(6).internet(1).private(4).enterprises(1).peavey(24603).nion(1).nionode(1). SNMP subagent functionality is unchanged. A new MIB definition reflecting these changes can be found at: NWare\plugins\pion\doc\PEAVEY-NION-NIONODE-MIB-V2.my

  • Added the ability to add SNMP control and monitoring for up to 512 controls per physical NioNode unit. To add SNMP Flyoffs to the NioNode in the Flyoffs tab, put the total quantity needed into the 'Number of SNMP exported controls' field of the NioNode properties dialog. If the quantity is greater than 0, an 'SNMP Exports' tab will be added to the NioNode device. In the row for each control, there is a 'R/O' button and a Label field. When 'R/O' is off, the control can be read and set via SNMP. When on, the control is read-only. Read-only is the default setting. Since the SNMP flyoffs and the 'exportedControlTable' in the MIB keep track of the controls via their "index" number, you should enter a short description in the label field that will also be viewable in the exportedControlTable as 'controlLabel'. SNMP flyoffs should only be wired to master nodes on controls that you want to monitor or control. To provide SNMP control of a Python script, you should wire a generic control to both the Python script and to the SNMP flyoff.

  • Added support for the NIO-AES digital audio IO card.

  • Added control to enable RS-485 unicast addressing in the CAB's RS-485 tab.

  • Added filibuster mode to PageMatrix logic device. This enables 'first-come-first-serve' logic on stations of equal priority. In order for this to work, you must also set priorities equal on intended station/zone combinations.

  • 'Copy control attributes' now copies polygon shapes as well as general control settings.

  • The following control operator functions are now multichannel aware - invert, negate, absolute value, threshold, hysteresis, toggle on rising edge, toggle on falling edge, value link, position link, and string link.

  • Changed default low/high pass filter type to Linkwitz-Riley so default crossovers have a flat frequency response.

  • Added dropdown list of pages in Launcher dialog box.

  • Added control ruid and device id to 'Find control' dialog box if a control was selected.

  • Added string mulitplexer/demultiplexer devices, created for sending a lot of control values through one wire of the Project Linker devices.

  • Added the % operator to the expression evaluator. This restarts the sequence after n iterations. For example "Input {1+=1%4}" would give "Input 1", "Input 2", "Input 3", "Input 4", "Input 1", "Input 2", "Input 3", "Input 4", etc.

  • Added new keyboard commands - The ENTER key now opens the selected block(s) and the ESC key closes the window with focus.

  • Added option for Kiosk mode to hide root level tabs (see #19).

  • Added option for Kiosk mode to hide cursors (see #19).

  • Kiosk page changes are now always deployed - before if no DSP or control wiring changes were made the user was required to force a recompile by holding the shift key while hitting the deploy button.

  • Default User logon is now case-insensitive.

  • Added optional XML based configuration for running NWare in Kiosk mode. The old command line options have been removed. The new command line looks like:
    "NWare.exe /personality=nware_kiosk kiosk_config.xml".

    The xml file should be in the form :

<kiosk>
<name value="kiosk_test" />
<compile_id value="" /> <!-- only necessary if there are multiple compiles of the same project on the network -->
<deploy_id value="" /> <!-- only necessary if there are multiple deployments of the same project on the network -->
<username value="3" />
<hash value="" /> <!-- can use prehashed password if you don't want to store the password in plain text in this file -->
<password value="3" />
<hide_root_tab value="true" /> <!-- defaults to false -->
<hide_cursors value="true" /> <!-- defaults to false -->
</kiosk>

Note: The 'hash' referred to above can be generated within NWare by pressing Ctrl-Shift-H. A Generate Hash dialog will be displayed. You should enter the same username used in this xml and a password. The resulting hash code should be entered within the <hash value=''" /> quotation marks. Use only the hash or password element, not both. Obviously, the username and password (explicit or the hash) used here, must match the username and password stored in the deployed project.

ConMan

Added support for direct CAB control. Here is how to set it up:

  1. From a command prompt, type "conman -adapters" and press Enter.

  2. A list of discovered adapters will be shown with a "Device ID:..." line which shows how Windows refers to the adapter. You need to pick the appropriate NIC (on the CobraNet network) and copy this line from the "\Device..." to the end of the line

  3. Open the conman.cfg.xml file in a text editor

  4. Add a line after line 3 that incorporates the bit you copied from the printout of adapters like this:

<cab_adapter value='\Device\{3bcabbb8-8809-41e2-8e0f-d4c98fdfe6e3}' />

Notes: This line is the example from the file, but the part within the {}'s needs to be the one you got from the printout of adapters. This functionality will be included as an automatic part of future ConMan installers.

Bug Fixes

  • Fixed bug which made it impossible to switch from XControl PASHA back to regular PASHA without a reboot.

  • Fixed bug which caused the project file to not be properly saved to the NioNode in some cases due to the location of the saved project file (on a different drive than the install, on the root of the drive, etc.).

  • Fixed bug which caused increment or decrement strings ( ++1, --2, etc ) not work if the increment or decrement value was larger than the maximum value of the control.

  • Fixed issues with arrow key selection which caused the selection to not be as expected.

  • Fixed bug which caused PageMatrix priorities to be limited to the number of zones and not the number of stations.

  • A problem with the ambient level sensing router getting stuck with the wrong input selected while the ambient level is fluctuating rapidly has been corrected. The router now also aborts a cross-fade if the input selection is changed while the cross-fade is in progress.

  • Fixed bug which caused 'Bring to Front' command to not work properly if there were wires in the container window.

  • Fixed bug where there was a 1.5 second delay when initally connecting via RATC which caused problems with ControlMatrix.

  • Fixed bug which made GPIO analog input calibration not work properly across a redeploy.

  • Fixed bug where .npa files with long filenames opened from outside NWare had 8.3 truncated names in NWare (and saved back to those incorrect names).


Release 1.1.3

Release 1.1.3 (24 October 2005)

Features

Added Chapters 1 through 7 of the highly recommended book, Dive Into Python, to the help file. In future releases, we will be adding sidebars and topics to better relate this material to Python use with NWare.

Bug Fixes

  • Inadvertently included some files from 1.1.1 which should have been replaced with 1.1.2 versions. In some cases, this prevented files to be emulated.

  • Fixed a bug that caused some graphics (kosmos, for example) to not be displayed when viewed from NWare:Kiosk sessions.

  • Fixed a bug that prevented the 2D Control device from working properly.


Release 1.1.2

Release 1.1.2 (17 October 2005)

Bug Fixes

  • Fixed a bug related to master->slave control wiring that spanned across boxes. If the box that the slave control was on rebooted, the control would not be synched up with the value of the master control. This only affected master->slave links where the master was on one box and the slave was on another.

  • Fixed a bug where multiple GUIs and Kiosks would have timeouts when connecting to a NioNode with a very large number of controls.


Release 1.1

Release 1.1 (12 September 2005)

This software was not released to customers.

Features

NWare/NION General

  • Added support for XControl trigger-style controls. There are now two options for PASHA serial control protocol - PASHA/PageMatrix and PASHA/XControl. Use the latter so that the "T" command acts as an XControl trigger command. PASHA/PageMatrix is the same as the old PASHA protocol.

  • There is a new version of the RATC control protcol - RATC2 RAW. This variant supports control access to all controls without the use of Control Aliases. Instead of using a Control Alias to reference a control, a string based on the device_id of the parent Device and the ruid of the control is used (in the form "//devices/device_id/controls/control_ruid", where device_id and control_ruid must be determined using the Inspector window). In addition, the external controller must know which NioNode or ControlNode each control resides on when using RATC2 RAW. This protocol is intended for advanced external control and should not be used as a replacement for standard RATC2.

  • CAB serial bridging raw MAC mode: added raw MAC-based RS-485 CAB addressing for ControlMatrix compatibility. This checkbox is hidden within the advanced section of the CAB properties dialog box.

  • Added block property to only require a single click to open a block while in gesture mode.

  • Added a preference (tentatively called "Deep Locate") that allows the GUI to open blocks when locating objects by clicking on the compile results or the find results. This preference defaults to checked which allows the existing behavior. If the preference is unchecked, the GUI will highlight the block containing the locate target, but will not open that block. This means it will take more clicks to actually get to the located object, but some may find this less confusing than having blocks pop open automatically.

  • Added NioNode Diagnostics to NWare. It is currently in a somewhat unfinished state. Before running diagnostics, the role running on the NioNode must be erased or the diagnostics will fail and bad audio may come out of the system.

  • Added new 'ExpressionLabel' auto label generator syntax. This replaces the older AutoNumber Flyoffs and AutoNumber Labels dialogs. This function is much more powerful than the AutoNumber function.

  • Added new 'Gesture Wipe' mode. In this mode, if a click-drag operation is started on either a button control or empty space, any button that is passed over while the mouse button is down is automatically pressed/released. This mode is useful for running on touchscreen computers. To enabled this mode, add the following to the \plugins\nware\preferences.xml or \plugins\nware\kiosk_preferences.xml:

<item name="enable_wipe_gesture" value="true" />

  • Added full-screen option. Available from right click context menu or command line option ( /fullscreen=true )

  • Added an enable control to the blinker device.

  • Added new "Duplicate Special..." command ( Ctrl+Shift+D ) which allows a user to specify the orientation ( horizontal/vertical ) and number of copies to create.

New Devices

  • Added the Signal Probe device. The Signal Probe works across a set of NioNodes connected by XDAB, and allows the end-user to dynamically monitor any wire or device wiring node.

  • A Wave File Recorder device has been added. That's right - you can now record wave files as well as play them. The number of channels that can be recorded simultaneously on a NioNode has not been fully determined (I think somebody got 16, but that seems too high). We also probably need a scheme to protect against the NioNode running out of disk space while recording - proceed with appropriate caution.

  • Added a Huge Mixer Controller device. This virtual device provides a single set of send controls that are mapped, by pressing a select button, to the array of send controls in a (potentially) big mixer made up of multiple mixers, each producing some of the outputs.

  • Added an Auto Group control device. Place this inside a hierarchical block and all of the read-write controls from the other devices inside that hierarchical block with the same ruid will be automatically grouped together. Use this to make stereo or multi-channel devices where all channels share the same settings. Note that this doesn't work very well for graphic equalizers.

  • Added a Register control device. This multi-channel device latches the values of the input controls on the rising edge of the clock input and sets the latched values to the outputs on the falling edge of the clock input. This is useful from creating certain kinds of logic (like state machines) that are otherwise difficult due to race conditions.

  • Added the Control Router device.

Improvements

  • Modified X-Control Device to work with the automatic control wiring assignment.

  • Modified PageMatrix device to be able to generate versions with more than 16 paging stations. The PageMatrix hardware only supports 16 stations, but many people use the PageMatrix device without the hardware and might need very big devices. The maximum is now 99 stations and 99 zones. WARNING: Large PageMatrix devices can take several minutes to generate, so be prepared to wait while NWare builds your mammoth device. Even if it looks like NWare has crashed, if you will just be patient, the device will be created. Just go to lunch.

  • Improved error reporting of sample rate mismatches in compile results.

  • Improved error reporting of wiring between NioNodes without XDAB.

  • Endpoint hover text is now shown when wiring to make it easier to tell what you are wiring to.

  • Project compile settings now validate property values so that dangerous values are disallowed.

  • Increased the default attack time of the Limiter from 100us to 10ms in order to avoid signal distortion.

  • Previously, if only one NioNode was wired to an XDAB, the compile would succeed, but during runtime XDAB failures would cause the NioNode to mute. Now the compile will fail with a message "...only one NioNode wired to this XDAB...".

  • Fixed warning messages when NWare is launched after ConMan has been run as a service on the same PC.

  • The Wave Recorder and Player do not require the .wav extension to be entered in the File Name control. If the file name does not end in .wav (or .WAV), the .wav extension will be assumed. This fixes the situation where a wave file can be recorded with a name that overwrites one of the units configuration files, rendering it unable to run the role.

  • Improved performance on CAB control. Previously, the poll time would increase linearly with the number of CABs at 200ms*num_cabs. Now the poll time should be a constant 200ms for all CABs regardless of how many CABs the NioNode is controlling. It is suggested that a NioNode should not control more than 8 CABs.

  • Hover text can now be changed from the control properties.

  • Hovering or selecting a control with a control alias displays the alias in the status bar. The text associated with the control will also be displayed in the status bar.

  • Added graphic object property to lock the size so it cannot be resized by click-dragging on the object.

Python

  • In scripts, calling changes_get() on an input now works with threaded scripts. Once called, the changed state is cleared on both threaded and regular scripts.

  • The Python script editor now supports find ( CTRL+F ) and find/replace ( CTRL+H ). Replace All and regular expressions are also supported.

  • The Python script editor now gets user confirmation when closing the editor if the script has been changed.

  • Added support for data bit, stop bit, parity and full/half-duplex configuration of the Python based serial port. The serial port constructor has 4 optional arguments - serial_port.create( name, baud_rate, data_bits, stop_bits, parity, half_duplex ). See PythonSerial for more information.

NWare: Kiosk

  • Removed the unnecessary pace::file warning about missing media.zip when uploading for Kiosk.

Bug Fixes

  • Fixed the bug which caused the text_box control style dialog to display the Font Size as an empty value, which would in turn cause the text to display infinitely small.

  • Fixed a bug which caused the find results to not be clearable.

  • Fixed a bug which occasionally made the last line in the Log window unreachable.

  • Fixed a compile bug which generated unrunnable DSP code for some designs that used very large SDRAM delay buffers.

  • Fixed bug which caused scroll bars to not be visible in certain situations.

  • Fixed bugs in 'Save As' code which incorrectly disallowed using 'Save As' to save over the current file as well as saving the same file name to a different directory on the disk.

  • Fixed a bug that caused the compile to fail if the output and input of the same channel of an XDAB were wired together. These wiring mistakes should still be avoided.

  • Fixed glitch during looped wave file playback.

  • Fixed bug where sometimes the tail end of the previous wave file was played when a new file is started.

  • Fixed bug which caused the hover 'tooltip' popup to be incorrectly positioned on machines with more than one display.

  • Fixed bug which disallowed empty passwords for project users.

  • Fixed a bug where the valueIs RATC2 response has an extra % at the end when running on the Nion but not under the emulator.

  • The sub-preset controller device is now placed on the NION or ControlNode which contains the greatest number of controls in that Sub-preset domain. This fixes an apparent error in the situation when the NION containing the sub-preset controller contained none of the controls in the sub-preset. In those cases, the sub-preset file did not exist on the NION containing the controller; pressing the load button would result in an error indication, even though the command was successfully sent to the other units that contained portions of the preset and they loaded it successfully.

  • Fixed potential instability problem of parametric equalizer in shelf mode.

  • Fixed a bug in XDAB'ed systems where some of the NioNodes sent only a small number of channels to the XDAB and others sent many, possibly causing distortion on one of two XDAB channels in the design.


Release 1.0.2

Features

  • Changed the limit on the number of walls in the room combiner from 32 to 128.

  • Changed the limit on the input and output count properties of the python script function from 64 to 256.

Bug Fixes

  • Fixed bug in pink noise generator which caused a roll-off in the high-frequency.

  • Fixed bug which could cause the parametric EQ in shelf mode to go unstable and/or oscillate when using XDAB.

  • Fixed bug which caused delay lines to stop passing audio following an XDAB rearbitration.

  • Fixed bug which caused the Wave Player output to be 20dB quieter than it should be. Corrected distortion problem (8-bit mono and stereo, 16-bit mono), as well as channel-swapping problem (8-bit and 16-bit stereo).


Release 1.0.1

This software was not released to customers.

Bug Fixes

  • Fixed bug in python script engine which caused negative integers passed into value_set() to be interpreted as very large positive integers.

  • Fixed router bug which caused ramping to and from the 'off' state to output incorrect audio.

  • Fixed bug which caused the device and flyoff icons to not draw if the Windows system icon size what changed from the default.

  • Undo menu command is now correct after inserting a device, flyoff, or image.

  • Fixed bug which caused deploying to large number of NioNodes to fail with a 'TRANSIENT' error.


Release 1.0 Patch 1

Bug Fixes

  • Some files were inadvertently omitted from the 1.0 release to fix the RC1 router problem. This would result in the wrong audio input to be routed to a router's output. This patch corrects the problem.

  • Updated Known Issues. Some items were removed (fixed).


Release 1.0

Features

NWare

  • New Devices:
    Auto-Created     PageMatrix Device (Warning: large station or zone counts can take several minutes to create)
    Reverb (same as in MWare and XWare)
    LCR Matrix (same as in MWare and XWare)
    X-Control Device (makes it simpler to implement X-Control devices in NWare)

  • Find Improvements:

    • If the lower frame is closed, it now opens to display the Find Results page when using Find feature.

    • Only clickable lines in the Find Results report underline and highlight when moused over.

    • The lines corresponding to items found are indented.

    • Some instructions are included in the footer.

  • The stored compile report is now displayed when a project is loaded.

  • Simplified some devices (Feedback Ferret, Ambient Sensing devices, Kosmos, Vocal Eliminator) to make them occupy less hard drive space and appear more quickly when dragged from the device menu. Old versions of these should be replaced for proper functionality. This change doesn't remove any functionality from the devices.

  • Added node labels to several devices to make it easier to use. Some devices don't show node labels when the input or output counts are very small. Click here for a list of modified devices.

  • XDAB

  • Routers (Basic and Deluxe)

  • Meters

  • Gains (multi-channel)

  • Automatic Mixers (Gated and Gain Sharing)

  • Sparse and Standard Mixers

  • Control Scripter (counts from 0)

  • Control Operator

  • Control Delay

  • Scheduler

  • Room Combiner

  • Previously, when deploying or emulating, the GUI would attempt to establish the control connection to the roles using the defaultuser account. As long as this account had Control Settings Access of at least Read-Only, the user was not prompted to enter a username and password. Now, the control connection is established using the Preferred User account that is selected from the File -> Preferred User... menu item.

  • Added right-click help on devices from the device tree view. This function will be much more useful once the help file is complete. At the moment, only Scheduler and Schedule Generator have help available with this method. We will post a patch in the near future with a more complete help file, so this function will actually be helpful.

  • Added advanced preference to enable/disable Auto-Deploy dialog box in the Deploy dialog.

  • When hiding a locked page, the page is automatically relocked.

  • Removed the Default Group Type project property (Value/String/Position). NWare now uses an intelligent "auto" control group type. If NWare chooses the wrong type of linking, you can override it by using the Value/Position/String Link devices in the Control section of the Device menu.

  • The GPIO configuration dialog now matches the actual pin-outs of the DB-25 on the NION. The real pins have not changed, only the order and labelling in the GPIO dialog.

NION

  • Removed concept of 'Locking Enabled' of the front panel. The front panel is either locked or unlocked. Changing the state either way requires the correct front panel combination

  • Added web-based configuration of SNMP community strings.

  • Fixed bug that could cause DSP(s) to crash following XDAB arbitration.

  • Fixed bug that could cause DSP(s) to crash the first time an audio player is started

  • Fixed a bug that caused the setting of a static IP address via the web interface to appear as though it didn't work.

  • Fixed a bug that prevented time from being set via the web interface

  • Fixed a bug that caused a noise blast when the LAN cable was pulled on an XDAB'ed unit with the "Do not mute on node or XDAB failures" fault policy.

NWare: Kiosk

  • Kiosk now automatically re-downloads and connects when a project is redeployed.

Installer

  • When upgrading, the /temp folder is cleared. In prior versions, upgrades with residual /temp folder contents produced undesired effects.

  • The default install mode is now set for all-users rather than just the local account. Although you still have to have administrator privileges to install NWare, you can now run it as a normal user. If you do not want NWare exposed to other machine users, you should restrict NWare folder access to specific accounts. You should also change the security settings of the shortcut icons, so they aren't visible to those users.

  • A Start Menu shortcut has been added providing access to NWare : Kiosk. Before, you had to create this shortcut yourself.

  • The User Devices folder is now set to be permanent. It will now never be removed by uninstalling. This folder is located here: ...\NWare\plugins\nware\user_devices

Bug Fixes

NWare

  • Fixed a bug which made it impossible to scroll the list of targets in the 'Update Target Firmware' dialog box.

  • Fixed a bug where Cycle Breakers in a signal across XDAB caused the compile to fail.

  • Fixed a bug which caused application to lockup if the project user list was edited after doing a Save As.

  • Fixed a bug which allowed NWare to remain connected to the NION(s) in the project after a Save As or a first-time save (also a Save As). This can cause several functions to cease functioning including Presets. The problem is that NWare has created new names and copies of everything, but the NION(s) are still expecting all the old names. Now when you perform a Save As, NWare disconnects from the project before saving to the new filename. To connect the new file to the NION(s), you must now re-deploy the project.

  • Corrected IDAB cycle accounting to reflect 100MHz DSP-to-memory transfer rate. This will result in a reported decrease in IDAB busyness for some designs.

  • Fixed a bug in the NION compiler that underestimated the amount of IDAB resources needed by the multi-tap delay line device. In some projects, this could have resulted in one or more muted output channels.

  • Fixed a bug in both Basic and Deluxe Routers. Previous behavior: with the OFF state enabled and switching from OFF back to a router input, the router device used to momentarily output audio from the wrong input.

  • Fixed a bug which caused the firmware update drop-down list to not have a scroll bar when a large number of updates were available. You probably wouldn't notice this, since old versions are normally removed by the installer upon upgrade.

  • Fixed a bug which prevented the Launcher control from launching anything.

  • Changed a graphic panel in CAB 4n output cards to say "Outputs" instead of "Inputs".


Release 1.0 RC1

Release 1.0 Release Candidate 1

Features

NWare

  • Kosmos and Vocal Eliminator devices have been added.

  • New File menu commands have been added. Save Default Settings saves the current settings as the ones that are recalled on a restart, and Load Default Settings restores the current settings to the stored values.

  • An "alert text" control style has been added.

  • There are some new User Preferences to always save the current settings as the default when disconnection from a running system or the Emulator.

  • There is a new User Preference that determines if there is warning dialog box when closing the application while connected to a running system.

  • The Emulator now allows Kiosk to connect to it. This is helpful in testing exported Page Groups.

  • The Emulator now uses the Project User Account privilege settings to authenticate Network Control access.

  • If a role assignment partially succeeds and partially fails, the control connection is started to allow control of the units that succeeded.

  • The Project Link Client device now has a property that specifies the rate at which the server is polled.

  • ControlNodes now pay attention to the Project User Account privileges for Network Control Access, Control Settings Access and Exported Page Groups.

  • The "find parent of selected control" option in the Find dialog has been improved to automatically use a single selected control.

  • The Advanced CM-1 option's "Unicast Mode" is now set to 1, by default. The old default, "Never" was getting people into trouble. Typing "Never" into this field will prevent the CM-1 from ever using unicast bundles, which is not usually a good thing.

NION

  • A NioNode SNMP extension agent has been added. This allows SNMP monitoring of NioNode-specific information such as audio, project, and hardware status. This is an extension to the standard Linux (UCD) SNMP agent that is already supported. In the future, SNMP traps will be added, and a section will be added to support access to Project-based control values. The SNMP agent can be enabled in the Network page of the NioNode web interface. The SNMP agent community strings (passwords) are not currently accessible through the web interface, so if those need to be altered from the defaults, you must do so by editing the /etc/snmp/snmpd.conf file through Telnet. The default values for the community strings are 'public' for read access and 'private' for read/write access.

  • It is now possible to edit the CobraNet CM-1 netmask value through the front-panel interface. This value can also be edited through the NioNode web interface.

  • Remote Log access can now be controlled via NioNode User Privileges. Access is either read-only or read/clear.

NWare: Kiosk

  • The Kiosk GUI has some new command line options: /open=, /user= and /pass=

Bug Fixes

NWare

  • There was a bug, now fixed, that caused the PC-based software to not work correctly if at least one network adapter didn't have link, or if all the network adapters were disabled (or not detected) on the computer.

  • Hitting an initial backspace when editing block text now doesn't delete the last character ( works like MWare did )

  • The Serial Control COM port selection control has been fixed.

Python

  • Some bugs in exporting and importing Python scripts have been fixed.

NION

  • A bug that cause the NioNode to automatically unlock its front panel after one hour has been fixed.

  • There were some false alarm messages being logged about the fans stopping and recovering - this has been fixed.

Installer

  • The Upgrade functionality of the installer wasn't properly updating old NWare installations. It is now fixed.

  • The MediaMatrix NION Daemon service that was introduced in Beta 11 is no longer necessary, since NWare automatically loads the Discovery agent in the background when necessary (see Beta 12 NWare note 15). The Beta 12 installer was still trying to install the service even though it wasn't necessary, which was causing problems.


Release Beta 12

Features

NWare

  • Project-based security added to allow the Designer to control user access to RATC, Kiosk, and 'Upload and Connect'. This works at the Project level, rather than the NioNode level.

  • Added an advanced User Preference to show/hide the Inspector page in the Utility frame. The Inspector page is now hidden by default.

  • Added a compile-time check to verify that no non-system sample rate signals are sent across XDAB.

  • Added conductor priority and clock source to the advanced Properties of the NioNode device.

  • Added controls to configure CAB buddy link. Also added CAB control of conductor priority and synchronization to external word clock on the link input.

  • The Preset devices' Load and Save buttons are now trigger style rather than momentary.

  • The Latching Light devices' control input is now trigger style rather than momentary.

  • Upon deployment, NWare shows a warning if the NioNode firmware does not match the NWare version.

  • NWare now shows a Communications Preferences dialog box if more than one IP address is present on the host PC. This box allows the user to pick which IP address to use for NION communications. The setting is remembered, so the box only comes up again if IP addresses have changed.

  • Added a menu item to allow the user to manually invoke the new Communications Preferences dialog box.

  • The default preset is no longer automatically saved every few seconds.

  • The NWare Discovery Application (the one with the panda head), which runs in the background, is now hidden from view.

  • Added Kosmos device to the Dynamics menu.

Python

  • Added console module to Python control scripting, in the Emulator only, which prints out to the NWare log window. Usage looks like

import console
console.out( "your string here" ).

  • Python output/message string_set method now calls str() on the passed in object if the object is not a string, making it easier to use.

  • Improved error reporting on missing or invalid control scripts.

  • The embedded Python scripting language has been upgraded to version 2.4, both for the NioNode, ControlNode and the Emulator. In addition, a more complete Python library is included so that Telnet clients can be implemented.

NION

  • The RATC privilege was removed from NioNode-based security (it was moved to Project-based security). This allows you to manage RATC access from one interface instead of on each NioNode.

NWare: Kiosk

  • Added a network browser.

  • Added an '/open' option. This specifies a Project for NWare : Kiosk to automatically connect to. Syntax is /open="<project name>".

  • Now auto-launches the Nion Discovery service when launched.

Installer

  • The installer will now recognize a Beta 11 installation and present a dialog box alerting you about the upgrade. Uninstalling of Beta 11 is not necessary. Any older Beta versions should be uninstalled prior to installing Beta 12.

Bug Fixes

NWare

  • Fixed the COM port selection control.

  • Fixed a bug which broke selecting wires from the compile report.

  • Fixed a bug where distributed control connected to logic function will sometimes not deliver value to the function.


Release Beta 11

Features

NWare

  • You can now use the Windows clipboard to copy and paste control values - multiple control values are separated by tabs.

  • Added Feedback Ferret and Pitch Shifter.

  • "pandad.exe", which formerly executed automatically when NWare was started, is now installed upon installation as a Windows Service. This means that you no longer have to make sure that it is running (with the title "Target Discovery" and a panda head) in order to use NWare:Design or NWare:Kiosk. If you need to use the interactive features of pandad, you must first stop the service from the Services Control Manager (Control Panel -> Administrative Tools -> Services) before running pandad in its Interactive Mode. Basically, you should leave it running, unless you are instructed otherwise.

Python

  • Updated to version 2.4.

  • Added a serial port object which allows scripts to read and write to the serial ports (documentation to come).

  • Added a telnet object which allows scripts to manage a TCP session using the Control Ethernet port (documentation to come).

  • Improve Python error string generation.

  • Display syntax errors in message field.

NION

  • Improved BIOS frontpanel menu by adding better descriptions about what buttons do what action.

  • Added 'Nion Admin Privilege'.

  • Password protect 'dangerous' web pages (accessed via the Nion Admin Privilege).

  • Improved speed of project loading on NION.

  • Added support for CM-2-based CAB 4n's (early CAB 4n's used CM-1).

NWare++

  • Added TCP/IP Server (RATC/RATC2) to ControlNode properties and controls. Must use ConMan Beta 11 or higher to utilize this feature.

Installer

  • Installer is now digitally signed with a code signing certificate. This will prevent the "Publisher could not be verified" messages when installing software from our website and will produce friendlier warning messages from Windows XP Service Pack 2. Publisher will be listed as "Peavey Electronics Corporation". Also the digital signature is time-stamped by VeriSign, so that it may be verified after the certificate expires.

Bug Fixes

NWare

  • Fixed a bug where compile would fail with an unwired cycle breaker device.

Python

  • Fixed a bug that caused the input.value_set to not take floating point values.

NION

  • Fixed bug which caused frontpanel to report "IDE OK" when IDE boot actually failed.


Release Beta 10

Features

  • New Installer.

  • KLS file (Kiosk Configuration File) is now properly registered. Right-clicking on KLS files will allow editing in Notepad or opening with NWare:Kiosk. Right-clicking in Windows Explorer or the Desktop, going to "New" -> "NWare Kiosk Configuration File" will produce a sample KLS file for you to edit, complete with comments on how to configure the file.

  • When muting output cards relays are used in conjunction with the DAC mutes to remove possible audio pops during deployment.

  • Deploy, log, and status window now have moveable splitters

  • When displayed in the GUI, NIONs include their IP address.

  • Added a pop-up menu with zoom items to NWare Kiosk

  • Allow the front panel serial port to be used.

  • Enabled per channel mutes on CAB 16o by setting channel gain to -95.5 (16o does not have per channel mute capability built in)

  • Add event object to threaded python scripts with the following methods (the sleep object has been removed)

wait( timeout_ms ) - waits timeout_ms
wait_input_change() - waits for input change
wait_input_change( timeout_ms ) - waits for input change. returns true if an input
changes within timeout_ms, otherwise returns false.

Bug Fixes

  • Fixed a bug that caused a crash when shutting down with RATC client(s) connected.

  • Fixed bug which caused limiters to go into full limit mode and never return.

  • Fixed flaw that prevented output boards from muting if piond was restarted without a reboot.

  • Fixed bug where CAB 4n phantom buttons were not operational.

  • Fixed bug where room combiners with odd number of rooms would cause the role to not start ( due to the fact the composite was placing an odd input mixer, which isn't supported )

  • Fixed a bug in the PageMatrix 16x32 Device and Script sample project file. The outputs were reversed (1 was 32 - 32 was 1).


Release Beta 9

Features

  • In the GPIO tab of the NioNode device, enlarged the label text, so that the text is always readable. Also made the labels have a background color so it's easier to differentiate the sections.

  • Removed "Serial Control" device, which is instead auto-instantiated through a NioNode.

  • Added "Find parent of selected control" find command. Only available if a single control is selected.

  • Added 'Find controls of selected device' find command.

  • Implemented default find value for flyoff name if flyoff is selected when find is called.

  • Added logical control operator "exactly one" that satisfies an "alternate" definition of XOR.

Bug Fixes

  • Fixed a build problem with Beta 8 that caused the DSP primitives to be out of date with the DSP kernel. This would cause the DSPs to crash and DMA errors.

  • Fixed bug which caused the incorrect context sensitive help to be displayed in certain dialog boxes.


Release Beta 8

Features

  • Added labels to crossover block output nodes.

  • Added flip-flop device.

  • Added control delay device.

  • Added Tone Control.

  • Added check for obsolete ( removed ) devices when loading a project file.

  • Added 'find obsolete devices' find command to help in rooting out obsolete devices.

  • Added tx channel count control to advanced CM-1 control panel.

  • Added security for RATC/RATC2. You can now use the Web Interface to add Telnet users.

  • Integrated Peak and RMS into one "uber-meter."

  • Show warning dialog box when software loads if multiple NICs are detected.

  • Changed labels of NioNode types to be N6 and N3 (instead of 3N and 6N).

  • GIO Pin assignment in NioNode device properties now defaults to unused.

Bug Fixes

  • Fixed problem with flyoffs and flyoff icons not being colored correctly when dragged in from the flyoff window.

  • Fixed bug which caused the last transmitter and receiver in the simple cm-1 configurations ( 4x8 or 8x4 ) to not be useable.

  • Fixed bug which caused "missing unit_z" message when switching from XDAB project to stand-alone project.

  • Fixed bug which caused flyoff editor menu to go off the bottom of the screen making it impossible to select the bottom few items without moving the flyoff.

  • Fixed bug which caused front panel lock state to not persist across boots.

  • Fixed bug that caused meter text box to be drawn with an extremely small font.

  • Fixed bug in Python script of "PageMatrix 16x32 Device and Script" sample file which inhibited priority '0' from preventing a page to a zone.

  • Fixed bug where using Installer created NWare shortcuts cause the "Target Discovery" icon to appear as "C:\" icon instead of a panda head. Merely cosmetic.


Release Beta 7

Features

  • NION network services (Web server, telnet, SNMP) can now be turned on/off from the front panel.

  • Added low/high shelf filter types to single band parametric.

  • New CM-1 device. There are now 2 presets ( four 8-channel bundles like MM and eight 4-channel bundles for 4n ) as well as Advanced which exposes all CM-1 controls to the user

  • Added per user privileges. Current privileges are role_deploy, user_admin, and pandebug_access ( update privilege is listed but is currently not implemented ). There are 3 built in accounts - defaultuser, superuser, and frontpanel user. Users can be managed from either pandebug or the web interface.

Superuser has all privileges and only the password can be changed.

Defaultuser has an empty password and only the privileges can be changed.

Frontpanel is only used for frontpanel locking at this point. Privileges are ignored and password needs to be in the form '0:0:0:0:' (four numbers 0 - 40 with colons (":") after each number) .

  • Added Ambient Sensing Leveler.

  • Added DTMF encoder / decoder.

  • Added 'button - custom' style which allows the user to specify an on and off image as well as whether or not it draws the background color as well.

  • Created new Cascading Style Sheet (CSS) for NWare's help system and reorganized topics and bookmarks.

  • Added a menu item in the Help menu, "Check for updates...", which will connect to the MediaMatrix web site (if you are connected to the Internet) to check for any available updates. If the version of NWare is not current, the resulting web page will provide links to download the latest update and view its release notes. If your version is current, you will be reassured that you are running the latest and greatest NWare.

Bug Fixes

  • Fixed single band parametric frequency response.

  • Fixed bug which caused kiosk mode to fail if no images were used in the design.

  • Fixed bug where if a design was saved with a locked page visible it was permanently hidden when the file was reloaded.

  • Fixed a bug that resized hierarchical block internal flyoffs if the properties were modified after block creation.

  • Fixed a bug where multiple flyoffs would be created in seemingly random orders.

  • Fixed bug which muted CABs.


Release Beta 6a

Features

  • Added new control style - 'Button - Custom'.

Bug Fixes

  • Fixed Beta 6 bug: Couldn't change color from Control Properties dialog box.


Release Beta 6

Features

  • Added 'Copy Style...' for controls and graphics.

  • Added 'led - rectangle' style.

  • Added page based security. Pages can be locked and hidden with a password. To show the page, the password needs to be entered. Locked pages are hidden when the file is loaded regardless of their state when the file was saved.

  • Allow for multiple selections when importing media.

  • Added 'allow off state' property to Router. Adds an off button to each output selector.

  • Added 'image control' control style, which draws an image based on it's control string value. The image must be imported into the media library before it's available to the control.

  • Added support for txPriority, txUnicastMode, txMaxUnicast, and rxPriority in the CM-1 device.

  • Change dialog font to 'MS Shell Dlg' which is designed to make the dialogs work in international versions of XP.

  • Added 'replace text' menu item.

  • Added 'autonumber' option to flyoff and label finds.

  • Now sorts find results alphabetically.

  • Check python syntax and for missing scripts during compile.

  • Make system flyoffs read-only and drawn in italics. When a NioNode is renamed, rename all of the associated flyoffs.

  • AutoNumber Flyoffs defaults to at least 4 fields so the dialog box is useful to name empty flyoffs.


Release Beta 5

Features

  • If you ping a NioNode, it will respond by flashing its LCD backlight a number of times.

  • There is a new, easier to use, Auto number dialog that replaces the old command.

  • The script editor dialog box is resizable, so it's easier to edit large scripts.

  • Removed the low quality graphics options for the GUI.

  • Added support for vector based EMF/WMF files so they scale nicely.

  • Added support for configuring RS-485 serial bridging in CABs.

  • When a unit is not yet connected to the GUI, its controls now have a transparent yellow overlay.

  • Added full scale gain selection control for line input/output cards in CABs

  • Added capability to invoke a web page from the menus (via the display_url function in default_menu.xml).

  • Added /deploy="file" command line argument

  • The System Mute Device now mutes attached CABs.

  • Added graphical lock and unlock menu items.

  • Added a CobraNet error counter to the CM-1 device.

  • CABs now mute when the NioNode that is controlling them is shutdown.

  • Removed some error logging that was printing out if you had CABs but didn't have a cable plugged into the CM-1.

  • When resizing objects. holding the shift key down now locks width/height proportions.

  • Reduced GUI memory usage. For instance, a large Project that used to take 220MB of PC memory now uses 150MB.

  • NioNodes now run a web server (the NioNode Web Interface), through which you can accomplish various status monitoring and unit configuration tasks.. Type something like http://198.90.143.30/ (substitute your NioNodes IP address) into your web-browser. An extra-special dangerous page lets you reboot or power down and restart, halt and erase the current role. This page, which has no security, currently, can be found at this address (substitute the proper IP): http://198.90.143.30/god.html

  • NioNode front panel screen capture is available through the NioNode Web Interface.

  • RATC, versions 1 and 2, are supported via TCP/IP and on the NioNode rear serial port see User Guide for more information.

  • PASHA and XControl are supported on the NioNode rear serial port see the User Guide for more information.

Bug Fixes

  • Fixed the polygon tool to reach polygons that are behind locked objects.

  • Fixed a bug where clearing the remote log of a NioNode that you weren't polling crashed with an unhandled exception. Also disabled 'sync' if not polling, since it doesn't make any sense in that case.


Release Beta 4

Features

  • Duplicate Command: Added Edit | Duplicate command (hot key Ctrl+D).

  • Full Bundle Range: Fully support CobraNet bundle range (excluding the private bundle range above 65279).

  • Fader knobs now track under mouse.

  • Phase 0 Security: Features have been implemented that can give hardware protection and allow designer-designated control panels to be exported. See User Guide Security Phase 0 for details.

  • Phase 0 Fault Policy: Features have been added. This allows you to specify dependencies between Target Nodes. This means that a node will mute if any of the nodes it is dependent upon suffer a fault. By default, the NioNodes in an XDAB cluster are dependent on one another. See User Guide System Fault Policy for details.

  • The 16 kHz system sample rate is longer available. Since there are no I/O cards that support a sample rate this low, it is felt that 16 kHz is not important enough to support.

  • Update All Out of Date Devices: The "Tools | Update All Out of Date Devices" now works properly.

  • ControlNode Auto Assignment: Those devices which can only be placed on a ControlNode are now automatcially assigned to the ControlNode in the Project, if there is only one ControlNode in the Project.

  • Power-Down Shortcut: On the NioNode front panel, if the power button is held for three seconds, the LCD backlight will darken, and a power-down will occur when the button is released.

  • Find Command: A 'Find' menu command has been added. The results of a Find can be displayed in the design by clicking on the find results. The results can be edited by right clicking on the find results.

  • Improved Locate: Locate now opens child windows if item to be located is inside of a block. Locates are invoked by clicking on items in the compile report or by performing a Find (Edit | Find).

  • Loading large Project files is much faster.

  • A System Mute device has been added.

  • Support for CAB-4n AEC cards has been added.

Bug Fixes

  • Editing Grouped Items: Fixed a bug where items in a graphical Group (Tools | Group) could not be edited.

  • User-Defined Devices: An install bug In Beta 3 prevented the display of User-Defined devices. This has been fixed.


Release Beta 3

Features

  • Devices with 'Debug' Feature: Modulated allpass filter and modulated low/highpass filters.

  • Browse for Image from Properties: Added browse for image button to graphic object properties.

  • Buttons Removed: Buttons eliminated from Media and Python windows in order to standardize on right-click/ top level menus for all actions.

  • Drag-and-drop from script window creates Control Scripter device.

  • Automatically imports math module so it's available to all python scripts.

  • Added user devices window. Allow for deletion of user devices.

  • Added GPIO for CAB 8i/8o device.

  • Added single-channel gain to Level category.

  • Added bypass parameter to gain.

  • Added CAB 16d device.

  • Control wiring nodes are now repositioned if the size of the control changes.

  • Removed broken printing menu item. Will be restored in later release.

  • Added threaded concept to Python scripts. They run in their own thread and have a sleep.wait( ms ) function that can be called. If they loop, it is a requirement that the sleep.wait function is called so the thread has a chance to exit.

  • Waypoints are now sized so that wires are straight when stacked.

  • Added optional period knob to blinker device.

  • Changed maximum output gain from 0dB to +18dB in NxM mixers.

  • Add schedule device.

  • Add scheduler generator device.

  • Middle mouse button activates pan.


Release Beta 2

Features

  • NioNodes now mute audio during firmware updates.

  • Graphical group/ungroup implemented: Items can be grouped together so the maintain their relative positions. Hierarchical groups are supported, so if a set of groups is grouped and then upgrouped, their original grouping is preserved.

  • Python script undo: Editing python scripts now supports undo in the following operations:

" undo/redo script edit.

" undo/redo script create.

" undo/redo script delete.

" undo/redo script rename (via export script name conflict).

  • Copy/Paste of control values is now supported.

  • New control styles available: Polygon LED' and Transparent Polygon Button styles have been added. Also, a Color option has been added to the LED/polygon LED. The LED gets its color from its string value. Currently it supports the standard SVG color names (see http://www.w3.org/TR/SVG/types.html#ColorKeywords), as well as HTML style RGB triplets (#RRGGBB).

  • Improved CAB Support: Preliminary support for CAB 8i, 8o, 16i, 16o. Supports tx/rx config and level controls, but does not support CAB GPIO as of yet.


Release Beta 1

Features

  • Numerous GUI enhancements.

  • Project Deploy methods have changes: The method by which you compile a Project, and deploy and connect to target hardware has changed. The new commands are Deploy, Connect, Disconnect, Emulate and Disemulate. See the User Guide for details!

  • Project can be stored on the NioNodes: During deploy there is an option to Save Project to Target. The Project can later be uploaded, using "File | Upload and Connect, for editing and/or control.

  • Odd mixer input counts no longer allowed: Due to an optimization of the Mixer device processing efficiency, the number of inputs can only be an even number now i.e. a 3x1 is not allowed, you have to use a 4x1.

  • Script Library: You can import and export script functions to and from the Script Library, so that the functions are available to other Projects.


Introduction

NION hardware and software allows you to design and implement network-distributed systems composed of audio inputs and outputs, audio processing and control. The systems implemented with NION can range in size from a few channels to many hundreds of channels, with no change in the hardware or software components used. NION control and audio streams are distributed using standard Ethernet wiring and switches, and can co-exist with a facility’s other network data.

NWare, a graphical software application running on a standard Windows PC (XP or Vista), is used to design, deploy and control a system of NioNodes, ControlNodes and CAB 4n units. Once a system is deployed and adjusted, the NWare PC is not required for the system to operate, even through power cycles.

A control-only application, called NWare Kiosk, can be used to present customized user-interfaces to the end-user.

The NioNodes run embedded Linux, a powerful operating system capable of supporting sophisticated standalone features. NioNodes also run Python, a scripting language, which is used for control programming.

The ControlNodes run under Windows. Most of the same control devices and scripting that is available on the NioNodes is available on ControlNodes. In addition, ControlNodes support SNMP management and other control features that are not available on the NioNodes.

The system design phase starts with the designer creating a Project and entering into it a graphical representation of inputs, outputs and signal processing. The designer can also create custom control panels and custom control interaction scripts.

Each target NioNode and ControlNode specified in the Project is given a unique Role name, which is matched up with the physical target Nodes later during deployment.

When a Project is Deployed, a design check is performed, DSP code is generated, the results are downloaded to the target NioNodes, and the host PC is connected to the targets, ready for control. The design check generates a report which display results indicating hardware usage and any problems encountered in the design.

This phase requires that the NWare PC be networked with the target set of Nodes onto which a Project is to be installed. During deployment, attached Nodes are discovered and displayed to the designer. The Designer then assigns the Roles that exist within the Project to the proper Nodes. Role assignment results in each Node downloading, and storing locally, the configuration data that it needs to fulfill its Role during runtime.

If desired, instead of deploying, a limited emulation of the hardware can be run on the PC that allows, all without the target hardware present: control gesturing, preset saves and loads, control script exercise and even external control. (NOTE: PC-based NioNode system emulation does not emulate NioNode audio signal processing.)

Once a Project has been deployed, the set of Nodes targeted by the Project perform the signal and control processing contained in the design. One or more PCs running NWare_Design or NWare_Kiosk can connect to the target Nodes to control and monitor them. Third-party control systems can be attached as well.


Minimum Operating Requirements

Windows XP™ Home or Professional (with Service Pack 1 or higher)

or

Windows Vista

Other versions of Windows may work but they are not supported or recommended.


Creating a project

Launching the NWare application presents a blank Project, with a default name, ready for editing.

Project Designs are created, in general, by dragging devices from the Device Library onto the current page in the Design frame, and then wiring the Device nodes together.

Some of the Devices represent hardware elements of the target system, others represent DSP-based signal processing algorithms and others represent control functions.

Devices are positioned while in Edit mode, and are wired together while in Wire mode.


The NioNode Device

The NioNode device represents the hardware components of a single NioNode. Through the Device Properties of the NioNode, the Role name, the NioNode model, whether the CobraNet CM-1 is used, GPIO pin configuration, the types of the cards populating the Expansion Slots, and other such things are declared.

Inside the NioNode device window are tabbed Control Pages containing the controls for the components of the NioNode that were configured using its Device Properties. For instance, if Expansion Slot 1 has been configured with an analog audio input card, the controls and meters for that card will appear in a Control Page titled Slot 1 Input.

The flyoffs (audio signal wiring nodes) that correspond to the audio inputs and outputs of the Expansion Slots and CobraNet bundles are found in the Flyoffs page of the Utility frame. Flyoffs are dragged into a Design page and then wired to signal processing Devices.


Deploying a project to hardware

When the File | Deploy command is invoked (shortcut key F9), a design check is performed, DSP code is generated, Roles are assigned to the discovered NioNodes, files are downloaded to the NioNodes, and the host PC is connected, ready for control.

Before downloading to the target hardware, you are prompted with the Role Deployment window where you assign the Roles in your Project to the NioNodes discovered on the network.

A report is generated as a result of the design check, and is displayed in the Output frame.


Emulating a project without hardware

When you are without target hardware (NioNodes, CAB 4ns, etc.), or don't want to disturb a currently running system, the target hardware can be emulated on the NWare PC. This makes it possible to gesture controls, save and load presets, exercise the control programming and verify external control. Such actions are runtime features of the target hardware, and therefore don't normally run on the PC. Note that audio processing is not done in the Emulator.

To emulate, invoke the File | Emulate command (shortcut key Ctrl-F9).


Security

Exporting Pages

Pages can be exported for use by the Kiosk Mode GUI. The Export Page dialog is accessible by right clicking on a page tab and choosing Export Page Name. This dialog contains a check box to enable exporting the page, and a Group Name field that identifies the group of which the page is a member. The Group Name field is a combo box so the user can easily choose from among the already defined group names or type in a new name.

The Find command has a search type called Find exported pages with an argument to specify the group name to find. The group name can contain a wild card (*). An empty group name or the * will find all exported pages.

Kiosk Mode

NWare:Kiosk or just "Kiosk", the control only GUI, runs when it is launched by running the NWare application with the following command-line argument:

"C:\Program Files\MediaMatrix\NWare\NWare.exe" /personality=nware_kiosk

You can also add the following optional arguments to the target string:

  • /open=<filename>

  • /user=<username>

  • /pass=<password>

Note: The filename used above is the name of the project without the NPA extension. No path is necessary as NWare:Kiosk will search the available projects for this name. Any of these parameters can be used in any combination. There is no requirement to use any or all of them. The only requirement is to use the /personality argument.

Deployment Protection

The NioNode can be configured so a username and password are required to deploy a project. The deploy dialog will ask for this username and password and if it cannot be supplied, a project cannot be deployed.

To configure the username and password, you must connect to the Nion with the pandebug application.

If you are not running NWare, then the Panda discovery application will not be running, and you will need to run it manually.

When you run pandebug it pops up a window with a command prompt:

pandebug built 10:03:07 Sep 1 2004

type 'exit' to shutdown or 'help' for commands

[local]

Type discover to see a list of what is available on the network to connect to:

[local]discover

1 srs_controlnode/conman

2 srs_controlnode/pandad

3 sd106_1/mcp

4 sd106_1/piond

5 sd106_1/psud

6 sd106_2/mcp

7 sd106_2/piond

8 sd106_2/psud

9 sd106_3/mcp

10 sd106_3/piond

11 sd106_3/psud

12 sd106_4/mcp

13 sd106_4/piond

14 sd106_4/psud

15 sd106_5/mcp

16 sd106_5/piond

17 sd106_5/psud

18 sd106_spare/mcp

19 sd106_spare/piond

20 sd106_spare/psud

21 sd106_controlnode/conman

22 sd106_controlnode/pandad

23 sd106_spare_controlnode/conman

24 sd106_spare_controlnode/pandad

25 derek_bottom/mcp

26 derek_bottom/piond

27 derek_bottom/psud

Look for the unit that you want to connect to, followed by the name of the application that you want to connect to, which in this case is piond. Type connect followed by the number that identifies the unit you want to connect to:

[local]connect 26

connecting...

piond>

You are now interacting with the piond application in the Nion. Type security to enter the security menu.

piond>security

piond/security>

You can type help at any time to see a menu of command that are available:

piond/security>help

// comment - line is ignored

comment comment - line is ignored

exit exit this menu

fp_lock lock the front panel

fp_password_check <user> <p1> <p2> <p3> <p4>

fp_password_set <user> <p1> <p2> <p3> <p4>

fp_unlock unlock the front panel

help list available commands

ignore <command> ignore errors returned by command

password_check <user> <password>

password_set <user> <new_password>

repeat <count> <command> execute command count times

require_logon <1/0>

user_add <user_name>

user_delete <user_name>

users_list lists all users

piond/security>

To require a logon in order to deploy a role to the unit, type:

piond/security>require_logon 1

setting role_logon_required to 1

Now any time someone tries to deploy a project to the unit, they will see a logon dialog. Unless you create a user account and give it a password, you will be unable to deploy to the box at all, so go ahead and create a user account and give it a password. Use users_list to see existing accounts.

piond/security>users_list

default

derek

piond/security>user_add booger

adding user booger

piond/security>password_set booger yummy

piond/security>password_check booger gross

fail

piond/security>password_check booger yummy

ok

piond/security>

This is what happens the next time you try to deploy:

Note: The remember password checkbox is not currently functional.

Front Panel Protection

The NioNode can be configured to require a numeric password in order to access the front panel. If a password is not required, locking is disabled. If a password is required, locking is enabled. If locking is enabled, the front panel can be in either the locked state or the unlocked state. When in the locked state, the front panel shows only the logon screen where the user must enter the password. Once the password is entered, all features of the front panel are available. Not implemented: If the user does not interact with the front panel for 5 minutes, the user is logged off and the front panel locks itself again.

Front panel protection can be configured from the front panel itself or from the pandebug application.

To change the front panel password from the front panel, select the config icon and keep pressing next until you get to the password page. Enter the old password and the new password and press apply. The default old password is 0 0 0 0.

To change the front panel password from the pandebug security menu type something like:

piond/security>fp_password_set default 17 26 35 40

To enable locking from the front panel, go to the lock config page (just prior to the password page under the config icon). Change locking to enabled, enter the front panel password and press apply.

To enable locking from the pandebug security menu, type:

piond/security>fp_lock_enable 1

Once locking has been enabled, you can lock the unit by selecting the lock icon from the main screen. To unlock you must enter the password and press unlock. You can also lock and unlock the front panel from the pandebug menu by typing fp_lock and fp_unlock.

piond/security>fp_lock

piond/security>fp_unlock


Project Deployment and Harware Installation

Project Deployment and Hardware Installation

Deploying, Connecting, Emulating and Uploading

Deploy

The File | Deploy command starts a chain of events:

· A Check and Compile Project is performed

· DSP code and control configuration files are generated

· The Role Deployment dialog box displays the NioNodes discovered on the network

· You assign the Roles in your Project to the discovered NioNodes

· Configuration files are download to the NioNodes

· NWare is connected to the NioNodes, at which point control and monitoring is possible

The Role Deployment dialog box dynamically displays the NioNodes found on the network and allows them to be assigned to the Roles in the current Project. For each discovered NioNode, a network Name, Project, Role and Status is displayed. Role assignment is done by dragging a NioNode onto one of the Project Roles, though nothing will actually happen until OK is clicked. Once the dialog box is Okayed, then the assignments that have been made will take effect and a Connect will be performed. This can take a few moments as it involves the NioNode(s) downloading Project files to local storage, and then beginning audio processing.

A File | Disconnect performs a disconnect from the running hardware, disabling control and monitoring.

Connect

The File | Connect command is used to connect to already running hardware. Based on the currently open Project, NWare will look for the hardware running that Project and connect to it, at which point control and monitoring is possible.

A File | Disconnect performs a disconnect from the already running hardware, disabling control and monitoring.

Emulate

When you are without target hardware (NioNodes, CAB 4ns, etc.), or don't want to disturb a currently running system, the target hardware can be emulated on the NWare PC. This makes it possible to gesture controls, create and load presets and exercise the control programming. Such actions are runtime features of the target hardware, and therefore do not normally run on the PC. Note that audio processing is not done in the Emulator.

To emulate, invoke the File | Emulate command (shortcut key Ctrl-F9).

A File | Disemulate disconnects from the Emulator and halts it.

Compile Report

An HTML-based report is generated as a result of a Check design. The report displays notes, warnings, errors, and a resource report table showing the target resources used by the design.

Many of the notes, warnings and errors can be clicked on to highlight, in the Design Frame, those elements associated with the note. This is also the case with many of the resource report table entries. The highlight can be cleared by clicking elsewhere in the report.

Upload and Connect

The Project can be stored on and retrieved from the NioNodes. When presented with the Role Deployment dialog box during Deploy, you can check the Save Project to Target option, which will cause the complete Project to be downloaded and stored. Note that this option is not available if you have not saved the Project at least once e.g. untitled2 cannot be saved to the target hardware.

The File | Upload and Connect command presents a list of Projects running on target hardware on the network. Selecting a Project will upload it, present a Save As dialog box, and after saving locally, performs a Connect to the running Project.

NioNode Hardware Monitoring

Remote Log

The Remote Log page in the Output Frame contains a list of the currently discovered NioNodes. You can enable polling of a NioNode log with a right-click | Enable Polling. You display the log of those NioNodes that are being polled by clicking on it. A right-click menu in the display area of the log allows you to configure the filtering of what is being displayed.

NioNode Configuration

Network Configuration

Deployment requires that all target hardware (NioNodes) and the NWare PC be on the same network, and there is a front panel interface page for entering the network settings.

Host Name

NioNodes can be given host names to make identifying them easier, and all NWare-based interfaces display the host name. However, DNS is not currently supported, so you cannot communicate with a NioNode using the host name when using ping or when using the TCP/IP-based external control protocol, but must instead use the IP address.

Note that a host name is not the same as a Role name you can choose to make them the same if you want, but there are situations where you might not want them to be the same.

MODE

Select DHCP or Static IP

IP Address

NioNodes can either be assigned a static IP address, or can use DHCP to get an IP address from a DHCP server.

IP Subnet

Set the subnet mask, which defaults to 255.255.255.0.

Firmware Upgrade Procedure

The firmware in the NioNodes can be checked and upgraded using the Update Firmware utility. This utility is launched with the Tools | Update NioNode Firmware menu command. The dialog box displays a list of discovered NioNodes, and their status. Right-click the NioNode you want to upgrade, and select the upgrade package. It will then be downloaded and installed on the unit.

Time of Day

To support some features, NioNodes need to know what time it is. There is a front panel interface page to set the time zone and time. When the time is set for one NioNode through this interface, the time of all other NioNodes on the network will sync to it. Setting the time zone, however, does not propagate to the other NioNodes.

Monitoring and Troubleshooting

Frontpanel LED Indicators

There are six LEDs on the frontpanel that help indicate unit status.

Fault

· RED: audio not working

· OFF: audio working

The Fault LED tracks the state of the fault relay. (The fault relay signals appear on pins of the GPIO connector.) Note that the RED state does not necessarily indicate a problem, but that audio is not actively being processed and passed. This state occurs normally when the unit is rebooting or has not yet been configured to run a Project. It also occurs when the unit has encountered a problem and can no longer process and pass audio.

X-DAB

· GREEN: primary and backup rings are operational

· GREEN BLINKING: running in backup with single cable missing - all audio present

· RED BLINKING: running in backup with multiple cables/nodes missing - some audio gone

· RED SOLID: unit has no link ???

· OFF: XDAB is not in use (in the current Project/Role for this NioNode)

Note that the XDAB LED is updated only when XDAB is used by the NioNode in the current Project and the NioNode is up and passing audio.

LAN

· GREEN: Ethernet link

· OFF: no Ethernet link

CobraNet

· GREEN: Ethernet link

· GREEN BLINKING: Ethernet link and NioNode is CobraNet conductor

· RED: no link or CM-1 missing or malfunctioning, and NioNode is configured to use CM-1

· OFF: no link or CM-1 missing or malfunctioning, and NioNode is not configured to use CM-1

Note that even if the NioNode has not been configured to use its CM-1 (in the Project design), link and conductor status are still reported and the unit will be visible as a CobraNet node on the network it is attached to. Youll only see RED, however, if the NioNode has been configured to use its CM-1 and there is a problem with link or with the CM-1 module.

IDE

· GREEN: mass storage (CompactFlash) read or write activity

· OFF: no activity

The IDE LED indicator is remarkably similar to the disk status LED you may have on the front of your PC or on the bezel of your laptop.

Attn

· OFF: no status change of interest

· RED BLINKING: indicates there is an error or warning condition of interest

This indicator is paired with a button. When the LED blinks, the button can be pressed to cause the LCD to navigate to a page displaying the source of the condition.

Power

· OFF: unit is off

· ORANGE: unit is booting up or down

· GREEN: unit has booted up


Control Devices

Control Programming

Control Programming refers to the set of features that allow the designer to create and customize interactions between Device controls. Keep in mind that these interactions do not occur in the graphical user interface, but are part of the configuration of the NioNodes this is good because that means they work without the NWare PC and can be stimulated by an external 3rd party control system.

Control Settings

A Controls setting is represented in three ways: by position, string and value. Position is the fractional number corresponding to the graphic knob or slider position in the user interface, and ranges between 0 and 1. String is the text display string for the Control in the user interface. Value is the 32-bit internal number representation of the Control, and while not normally portrayed in the user interface, can be of use in Control Programming. As an example, a gain settings position might be 0.55, while its string is -45dB and its value is -45.0.

Control Wiring and Groups

Controls can be graphically wired to one another to form Control Groups. A Controls wiring properties are accessible in its Control Properties dialog in the Wiring tab. In the Control Wiring dialog box, you can independently enable the display of the three available Control Wiring nodes for that Control: slave, peer and master. These nodes display, left to right, underneath the Control.

Here are the types of wired group relationships:

  • Master-to-slave - a Control master node is wired to one or more Control slave nodes. The slave Control(s) will track the master, and become read-only, meaning that it (they) cannot be directly gestured.

  • Peer-to-peer - a Control peer node is wired to one or more other Control peer nodes. In this case, any of the Controls can be gestured, and they will track each other.

  • Slave-to-slave - wiring Control slave nodes to one another can be done, but does not accomplish anything unless a master is also wired into the set.

Controls wired directly to one another are linked by position, that is, the graphical position, between all the way down and all the way up, of the linked Controls will track.

There is a shortcut to forming a peer-to-peer group of two or more Controls. Select the desired Controls, and then either run the Tools | Control Group menu command, or perform a right-click | Control Group.

Control Processing

A more powerful approach to creating interactions between controls is to use Control Processing. In this case, Controls are wired to Control Processor devices - a Controls master node is wired to the input node of a Control Processor, and one or more Control slave nodes are wired to the output node of a Control Processor. Control Processing supports the linking and processing of Control settings by position, string and value. (Recall that direct Control-to-Control wiring only supports position-based linking.)

There are two types of Control Processor devices: Control Operator and Control Scripter.


Appendix A: Internal Latencies and Alignment

Here is some valuable information regarding latencies in NION. These are necessary in calculating how much alignment is necessary.

Latencies in a NION system are as follows:

  • IO Card serial port receive: 1 vector

  • IO Card serial port transmit: 1 sample

  • DSP processing: 1 vector

  • DSP to DSP transfer (within a NioNode): 1 vector

  • XDAB transfer (NioNode to NioNode): 3 vectors

  • IO Card ADC: 34 samples @ 48/96KHz

  • IO Card DAC: 37 samples @ 48KHz, 20 samples @ 96KHz

With that said, it's not always so easy to manually count in your head the latency of a particular signal relative to another. For instance, in the design below, the align must be set to 4 vectors (32 samples):

  1. DSP A processing (sine)

  2. transfer A to B

  3. DSP B processing (Gain)

  4. transfer B to A

  5. DSP A processing (2x1 mixer)

You can think of it as counting up the vectors between the 5 stages I listed. It is easier to create your design and check the delay report to see what manual delays you need to insert.


Appendix B: Front Panel and GPIO External Control

Front Panel Control

Controls can be made accessible through a NioNode hardware front panel interface by control wiring them to NioNode Frontpanel Control Devices. See the NioNode Frontpanel Control section for more details.

GPIO Control

A GPIO, or General Purpose Input Output, connector is provided on the rear panel of each NioNode. In addition to the fault relay pin signals, there are 20 configurable pins available for a variety of uses.

GPIO Device

The use of the NioNode hardware general purpose input output pins for control begins with configuring one or more GPIO Devices in the Design. The GPIO Device manages the pins found on the hardware GPIO connector on the back of a NioNode.

The Device Properties of the GPIO Device presents a selection for each of 20 hardware pins. Configuring these pins for various functions will create the appropriate Controls in the controls page of the Device. The designer then uses Control Wiring to interconnect these Controls to other Controls in the Design.

Here are the possible settings for the GPIO pins:

· unused

· raw

· digital in

· digital out

· analog in – 1k 12V

· analog in – 10k 12V

· analog in – 10k 24V

· analog in – 1k self-powered

· analog in – 10k self-powered

· digital rotary encoder

· high current out

· PWM output

GPIO Hardware Reference

The NioNode GPIO connector is a standard Female DB-25. There are three sections to the GPIO: General Input/Output Pins, High Current Outputs, and the Fault Relay Contacts.

General Input/Output Pins (GIO)

There are 16 GIO pins. Each pin can be independently configured as a Digital Input, Digital Output, or Analog Input.

· Digital Input - Accepts TTL level inputs, where a low is less than 0.8 volts and a high is greater than 2 volts.

· Digital Output - Outputs an LVTTL signal, where a low is 0 volts and a high is 3.3 volts. As an output, this pin cannot sink or source very much current. There is not enough current to drive an LED, but there is sufficient current to switch a transistor.

· Analog Input - Accepts an analog signal from 0 to 24 volts with 12 bits of precision.

The general purpose I/O pins are heavily filtered and protected. They can withstand being shorted to a 36 volt supply without sustaining any damage.

Additionally, the 16 digital inputs can be fed into eight quadrature rotary decoders.

High Current Outputs (HCO)

There are 4 HCO pins. Each switchable output can supply +11.5 volts (nominal) at 0.50 amps. There are internal protection diodes so these outputs can directly drive relays and other inductive loads. A self-resetting fuse also protects each output.

The high current outputs can only sink a very small amount of current.

There is no dedicated power pin on the GPIO connector. If a dedicated power pin is required, then a high current pin can be switched on to provide power.

Fault Relay Contacts

The internal fault relay trips in the event of a power failure or any number of hardware or software fault detection events. Normally Open (closed on fault condition or power off) and Normally Closed (closed when no fault condition) contacts are provided. These are electrically isolated from the rest of the system.

GPIO Connector Pinout Table

PIN# | NAME | OPTIONAL USE
1 | Signal Ground |
2 | GIO1 | Auxclk, Word/Brick Clock Input
3 | GIO2 | Auxclk, Word/Brick Clock Input
4 | GIO3 | Auxclk Input
5 | GIO4 | Auxclk Input
6 | GIO5 | Sample Clock Output
7 | GIO6 | Frame Clock Output
8 | GIO7 | Brick Clock Output
9 | GIO8 | SMPTE Time Code (LTC) Output
10 | HCO1 | PWM Output
11 | HCO2 | PWM Output
12 | Fault Relay NC |
13 | Fault Relay NO |
14 | GIO9 | SMPTE Time Code (LTC) Input
15 | GIO10 |
16 | GIO11 |
17 | GIO12 |
18 | GIO13 |
19 | GIO14 |
20 | GIO15 |
21 | GIO16 | FPGA Test Signal Output
22 | HCO3 |
23 | HCO4 |
24 | Signal Ground |
25 | Fault Relay Common |


Appendix C: Python Control Scripting

Python, used in the Control Scripter device, is an open source scripting language that has been ported to run on many platforms. The home page for Python is http://www.python.org/. A free, Windows-based Python development package, called ActivePython, is available from ActiveState at http://www.activestate.com/.

In Nion, Python functions can be authored by the designer to implement custom control interactions. A script function will be run whenever any of the Controls wired to the input(s) of the Control Scripter Device referencing it changes. Scripts currently run within a limited environment for safety reasons – i.e. they do not have access to operating system level APIs such as the file system, networking, etc. Scripts do, of course, have the ability to get and set Control settings.

Four pre-defined variables are passed into the script function of a Control Scripter Device - inputs, outputs, message and state. Variables inputs and outputs are Python vectors referencing the Controls wired to the Device’s input and output nodes. So, inputs[0] returns a reference to the Control wired to the first input node, outputs[2] returns a reference to the Control wired to the third output node, etc.

Functions for an input Control are:

· position_get() - returns position in float format

· position_set( value ) - sets position in float format

· value_get() - returns value in numeric format

· value_set( value ) - sets value in numeric format

· string_get() - returns value in string format

· string_set( value ) - sets value in string format

· changed_get() - returns true if the input Control has changed since the last time the script function was run.

Functions for an output Control are:

· position_set( value ) - sets position ( value must be float or int )

· value_set( value ) - sets value ( value must be float or int )

· string_set( value ) - sets value ( value must be string )

Variable message is a text style control, displayed in the Control Scripter Device, which has the following function:

· string_set( value ) - sets value in string format

Variable state is a persistent variable that defaults to an integer with a value of 0.

Here is an example of an averaging function that uses message and state:

result = 0

state = state +1

message.string_set( "this function has been called " + str( state ) + " times" )

# for each input, get the position and add it to result

for n in inputs :

result += n.position_get()

# set output 0 to the average value of the inputs

outputs[0].position_set( result / len(inputs) )

Note: The ‘#’ character starts a comment line in Python.

Also note that line indentation is how block scoping is done.

Python Version and Extension Modules

The NioNodes run Python 2.0, while ControlNodes and the PC-based NioNode Emulator run Python 2.2.3.

The math extension module is automatically imported for you, and you can import the time and random extension modules. To import a module, you need to use the state variable to perform an initialization pass, like so:

if not state:
import time
state = 1


Appendix D: Understanding Nion Communications

There are many patterns of communication active in a Nion system. This sections attempts to give a brief overview in the hope that some meaningful understanding may be imparted. Not all communication and control protocols are listed.

DISCOVERY

A network discovery method is required to enable NWare hosts and Nion targets (NioNodes and ControlNodes) to discover one another on the network. On the PC-based NWare hosts, the service that accomplishes this is called PANDAD.EXE, and has the label “Target discovery”. PANDAD.EXE is started the when the first copy of NWare is started, and is shut down when the last copy of NWare is shut down.

UPDATE & DEPLOY

This is the communication channel through which the NWare Design program can update target firmware and deploy compiled Projects to the targets.

USER CONTROL

The communication channel through which NWare Design and NWare Control accomplishes knob twiddling and meter reading in a running Project.

PEER CONTROL

The communication channel through which controls are linked between target nodes. This communication is automatic and is not directly specified by the Project designer. For instance, if you link two controls together that happen to be on different target nodes, peer control is used to make this work.

In addition, any Control that is given a Control Alias, which enables it to be externally controlled via RATC, can be controlled by a client program (such as Telnet) connecting to any target node – you don’t need to know which node the control actually resides on. This is accomplished behind the scenes through Peer Control.

CAB CONTROL

CABs assigned to a NioNode are controlled by that NioNode using this control protocol. This protocol involves both CAB discovery and parameter exchange. It is not SNMP-based.

SNMP MANAGEMENT

ControlNodes (which only perform control processing and not audio processing), manage SNMP devices such as CobraNet devices, Ethernet switches and UPSs (uninterruptible power supplies).

NEXSYS CONTROL

Control of NexSys compatible amplifiers.

OTHER CONTROL

Other miscellaneous control capabilities will be added to the ControlNodes as the need arises.


Appendix E: Accelerators

Accelerators

Send To Back | Ctrl+[
Bring To Front | Ctrl+]
Display Object Properties | Alt+Enter
Display Block Properties | Alt+Shift+Enter
Zoom Fit All | Ctrl+0 (zero)
Select All | Ctrl+A
Pack Bottom | Ctrl+B
Copy | Ctrl+C
Duplicate | Ctrl+D
Edit Mode | Ctrl+E
Enter Full Screen | Ctrl+Enter
Find... | Ctrl+F
Check Design | Ctrl+F7
Emulate | Ctrl+F9
Gesture Mode | Ctrl+G
Zoom Normal | Ctrl+home
Group | Ctrl+I
Pack Left | Ctrl+L
New | Ctrl+N
Open | Ctrl+O
Paint Mode | Ctrl+P
Zoom In | Ctrl+PageDown
Zoom Out | Ctrl+PageUp
Show/Hide Tabs | Ctrl+Q
Pack Right | Ctrl+R
Save | Ctrl+S
Lock | Ctrl+Alt+L
Next Window | Ctrl+Alt+N
Unlock All | Ctrl+Alt+U
Save As | Ctrl+Alt+S
Replace Text | Ctrl+Shift+8
Add All | Ctrl+Shift+A
Align Bottom | Ctrl+Shift+B
Duplicate Special... | Ctrl+Shift+D
Expression Label Name | Ctrl+Shift+E
Device Placement... | Ctrl+Shift+Enter
Expression Label Flyoff | Ctrl+Shift+F
Auto Deploy Diagnostics | Ctrl+Shift+G
Generate Hash | Ctrl+Shift+H
Ungroup | Ctrl+Shift+I
Align Left | Ctrl+Shift+L
Set Master Node for control | Ctrl+Shift+M
Previous Window | Ctrl+Shift+N
Inspector | Ctrl+Shift+O
Set Peer Node for control | Ctrl+Shift+P
Align Right | Ctrl+Shift+R
Set Slave Node for control | Ctrl+Shift+S
Expression Label Alias | Ctrl+Shift+X
Align Top | Ctrl+Shift+T
Previous Page | Ctrl+Shift+Tab
Control ungroup | Ctrl+Shift+U
Paste | Ctrl+Shift+V
Insert waypoint | Ctrl+Shift+W
Redo | Ctrl+Shift+Z
Pack Top | Ctrl+T
Next Page | Ctrl+Tab
Previous Page | Ctrl+Shift+Tab
Select Position / Paste | Ctrl+V
Wire mode | Ctrl+W
Cut | Ctrl+X
Polygon edit | Ctrl+Y
Undo | Ctrl+Z
Delete | Delete
Auto Document Devices | Ctrl+F1
Run DLL Command | Ctrl+F2
Check and Compile Design | F7
Check Design | Ctrl+F7
Deploy | F9
Show/Hide Output Frame | F10
Show/Hide Utility Frame | F11
Show/Hide Status Bar | F12
Deploy | Shift+F9
Change direction | Tab


Full Wave Rectifier

Purpose

The full wave rectifier inverts the negative part of the signal passing through it. It is useful for building signal detectors.


Multiplier

Purpose

Each output of the multiplier is simply the product of the corresponding input, and the input labeled G. For example, if you connected G to a DC generator, the level of the DC generator would control the gain of each channel. If you hooked it to a low frequency oscillator, the gain will vary up and down. You can also use it for special effects, multiplying two signals together.


Maximum Detector

Purpose

The Maximum detector compares the input signals on a per sample basis and simply outputs the highest. It is useful for inexpensively measuring several channels.

Device Properties

Input count selects the number of inputs to be compared.


Peak Detector

Purpose

The Peak detector shows the power used to deliver the peak input signal. It is similar to the RMS detector because the meter shows overall power level; however, it surpasses the relative power in most instances, so it does not accurately show system load in the same way that the RMS detector does.

How it Works

The Peak detector detects the positive peaks in the input signal(s) and incorporates an exponential signal decay, up to 67% before the next peak is detected.

Controls

Power

Each input channel has a power button. The meter is only affected if you switch off the maximum input signal's power switch.

Time Constant

Sets the sample interval, in milliseconds.

Device Properties

Number of Inputs

Set the number of desired number of inputs.


Peak Square Detector

Purpose

The Peak Square detector is a cross between the Mean Square detector and the Peak detector. Like the Peak detector, it samples the peak of the input signal, but it shows an averaged value, so it does not show the true peak level unless the input level is constant during the sample period.

The Peak Square detector is one of the components of the Gain-Sharing Automatic Mixer.

How it Works

The Peak detector detects the positive peaks in the input signal(s) and incorporates an exponential signal decay of up to 67% before the next peak detected. Before sending, the detector passes the output through a low-pass filter to smooth the output signal.

Controls

Power

Each input channel has a power button. Switching off the power causes the meter to update only if you've switched off the maximum input signal.

Time Constant

Sets the sample interval, in milliseconds.

Device Properties

Number of Inputs

Set the number of desired number of inputs.


RMS - Log Ratio

Root Mean Square: Logarithmic Ratio Detector

Purpose

The RMS Log Ratio detector expresses the difference in power between two input signals logarithmically. The Log Ratio version of the RMS detector is useful because it does not require the same extensive processing resources that are needed by the RMS detector.

How it Works

The RMS Log Ratio detector obtains its input from two low-pass filters, which average the incoming signals. The RMS log ratio detector then compares samples taken periodically (set by the Time Constant control) and expresses the logarithmic difference between the highest and the lowest strength signal in dB.

Controls

Time Constant

Sets the sample rate, in milliseconds. The Log Ratio Indicator will update at the same rate.

Log Ratio Indicator

Shows the difference in power levels between the two input signals as a ratio, in dB. Updates dynamically, at the rate set on the Time Constant control.


Root Mean Square Detector (RMS)

Root Mean Square (RMS) Detector

Purpose

The RMS detector samples the incoming signal and reports its relative loudness. When there is more than one input, the maximum of all RMS input levels is shown on the meter.

Controls

Power

Each input channel has a power button. The meter is only affected if you switch off the maximum input signal's power switch.

Time Constant

Sets the sample interval, in milliseconds.

Device Properties

Number of Inputs

Set the number of desired number of inputs.


Sample Rate Converters

The sample rate converters allow you to interface with audio systems/files with different sample rates. The following converters, and factors, are available in NWare:

Downsamplers

Downsampler

The Downsampler is available in factors of 1.5 and 2. They do not include anti-alias filters, so they should be used only if a low-pass filter will be set up further down-channel.

Decimator

The Decimator is available in factors of 1.5 and 2. They include low-pass anti-aliasing filters.

Upsamplers

Upsampler

The Upsampler is available in factors of 1.5 and 2. They do not include interpolation filters, so they should be used only if a low-pass filter will be set up further down-channel.

Interpolator

The Interpolator is available in factors of 1.5 and 2. They include low-pass interpolating filters.


Octave Divider

Purpose

The octave divider samples the input signal and then generates an output signal one octave lower. This is an effects device, used mainly for electric guitars or to give Senators a deeper voice.

Controls

Threshold

Sets the input level above which the device will calculate a second output signal.

Level

Sets the calculated output level. If you want a subtle effect, set this to a lower setting.

Mute

When activated, silences the output signal.


DTMF Decoder

Purpose

The DTMF decoder recognizes sequences of DTMF (Dual Tone Multi-Frequency) tones from a standard touch tone phone and asserts control outputs when user selected patterns are matched.

To use the device, the input must be graphically connected to an external analog input that is patched into the phone system. This connection will typically require a line interface circuit, which provides electrical compliance with the Telephone system and call progress functions such as automatic on-hook and off-hook sequencing. The DTMF decoder is very tolerant of level variations, however, it will work best if signal levels are adjusted for a nominal 0dB to the device. Erratic operation is a good indication that levels may need to be adjusted.

When the decoder detects an incoming sequence that matches any of the strings, the associated LED is activated. To control a NION function, simply “control wire” the LED to the appropriate control. A typical application would be recalling a subpreset. The LED remains active until the next incoming DTMF digit.

The DTMF decoder is designed to continuously monitor the incoming audio signal for valid DTMF digits. Its most difficult task is not decoding the digits, but discriminating DTMF digits from voice or other interference audio. One of the key elements of the decision making is the duration and spacing of the DTMF tones. The DTMF specification calls for a minimum of 40 msec duration and 40 msec spacing. The DTMF decoder works with tones as short as 30 msec for 48 kHz sample rate systems; however, in 32kHz systems, the 40 msec minimum timings should be considered the specification.

Inputs/Outputs

1 input

The input should be connected to an external analog input that is connected to the phone system. This connection will typically require a line interface circuit, which provides electrical compliance with the telephone system and call progress functions such as automatic on-hook and off-hook sequencing.

8 control outputs (default)

Each control output is asserted when there is a sting match.

Controls

Pattern

This is a string to be recognized. It may only contain the digits 0-9,A,B,C,D,*,and #. It is suggested that the “#” key be reserved for an enter function. This is an effective way to signal the end of the string and also helps prevent detection of partial strings. It is further recommended that command strings be of the same length. This is not a requirement, but the designer must be aware that if string1 is set for 4321# and string2 is set for 54321#, when the input sequence 654321# arrives, both Match LEDs will become active.

Please note that although the decoder will decode A,B,C, and D, these keys are not present on a standard phone. These are available on military phones and certain custom dialing devices. These 4 digits can also be used to further secure command sequences.

Decoded

As each DTMF digit is received and decoded, it is shifted into the rightmost position of the decoded field. You can use this to verify that the decoder is operating properly.

Device Properties

Pattern Count

Sets the number of patterns to be matched (and the number of control outputs).

FIFO Depth

Does nothing, do not change.


DTMF Encoder

DTMF Encoder (Generator)

Purpose

The DTMF Encoder creates standard DTMF tones useful for controlling phone system equipment.

Controls

PATTERN

This is a string to be recognized. It may only contain the digits 0-9,A,B,C,D,*,and #. It is suggested that the “#” key be reserved for an enter function. This is an effective way to signal the end of the string and also helps prevent detection of partial strings. It is further recommended that command strings be of the same length. This is not a requirement, but the designer must be aware that if string1 is set for 4321# and string2 is set for 54321#, when the input sequence 654321# arrives, both Match LEDs will become active.

Please note that although the decoder will decode A,B,C, and D, these keys are not present on a standard phone. These are available on military phones and certain custom dialing devices. These 4 digits can also be used to further secure command sequences.

Dialed

Displays the most recently dialed digits.

Mute (X)

Disables the output.

Level

Controls the output tone level.

Delta

Used to boost the high-frequency portion of the output signal. This is designed to compensate for the attenuation of the higher frequencies provided by some telephone lines.

Pattern

Enter in a series of tones to be sent. When the pattern button is pressed, the sequence is generated..

Device Properties

Pattern Count

Sets the number of patterns.

FIFO Depth

Does nothing, do not change.

Advanced Topic

The frequencies sent for each dialed number are as follows:

Digit | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Low Frequency | 697Hz | 697Hz | 697Hz | 770Hz | 770Hz | 770Hz | 852Hz | 852Hz | 852Hz
High Frequency | 1.21kHz | 1.34kHz | 1.48kHz | 1.21kHz | 1.34kHz | 1.48kHz | 1.21kHz | 1.34kHz | 1.48kHz

Digit | A | B | C | D | 0 | * | #
Low Frequency | 697Hz | 770Hz | 852Hz | 941Hz | 941Hz | 941Hz | 941Hz
High Frequency | 1.633kHz | 1.633kHz | 1.633kHz | 1.633kHz | 1.34kHz | 1.21kHz | 1.48kHz


Delay Line

MultiTap Delay Line

Purpose

Delay Line devices implement an audio time delay. They have the following uses:

  • To accomplish architectural delay: they compensate for speech passing through the air and for speaker echo.

  • To align the drivers in a speaker array.

  • For effects.

Delay Line devices are available with a single and multiple delay taps and with various maximum delay times. DSP resources are consumed in proportion to the number of delay taps and the maximum delay of the device even if none of the taps are set to the full delay time. Select the smallest delay line which satisfies the requirements of your application.

Controls

Gain

Master (Mstr) Gain: Sets the input gain.
Channel Gain: Sets the gain of an individual tap.

Bypass

Master (Mstr) Bypass: Bypasses all taps (sets their delay to 0).

Channel Bypass: Bypasses an individual tap (sets the delay to 0).

Mute

Master (Mstr) Mute: Mutes all taps.

Channel Mute: Mutes an individual tap.

Delay Time

Master (Mstr) Delay: Scales the delay proportionally for each tap. For instance, if the master delay time is set to 100%, each tap will be output according to the delay times set. However, if the master delay time is set to 20%, each tap will be set to one fifth of its the delay time setting.

Channel Delay: Adjusts the delay time for a tap. Each delay tap operates independently. You do not need to be concerned about delay times crossing each other. Setting the delay time of a tap to 0 causes the delay line to be effectively bypassed for the tap.

Device Properties

Delay Unit

Choose between seconds (s), samples (z), meters (m) and feet (f).

Max Delay

Enter the delay (in the selected units) of the longest tap. Selecting a long delay consumes more DSP memory resources, and reduces the resolution of the knob. A short delay consumes less DSP memory, and increases the resolution of the knob. Note that you are not restricted to the delays available from the knob, you can always type in a precise value.

Tap Count

Sets the number of delay taps, from 1 to 32.


Ambient Sensing Leveler

Purpose

The Ambient Sensing Leveler provides an automatic "volume control" when the ambient noise levels in a venue start to affect the perceptibility of paging announcements and background music.

How it Works

The device measures the incoming program material level, the incoming zone's ambient level (by wiring a microphone to the sense input), and its own output and applies gain to the input signal based on the detected ambient level. This allows different equalization settings to be selected as the ambient noise level rises in the room.

Inputs/Outputs

Input 1: Program Material

Wire the program source (typically background music and/or paging audio) directly to the Program input. Any gain added or subtracted from this source starts from 0dB (unity gain) which is what you will get when the Ambient Sensing Leveler is bypassed.

Input 2: Speaker Input

This input is the return of the audio you would expect to hear out of the speaker. In other words, the audio going into this node should be a duplicate of what the system is delivering to the amplifier that drives the zone. The most likely place to return the audio from is just before the DSP Audio Output Block as illustrated in the diagram below.

NOTE: The Speaker audio input is only used for measurement and will not pass audio through to the Ambient Sensing Leveler output node.

Input 3: Sense Microphone Input

This input is where you connect the microphone used to sense ambience in the zone. In its simplest form, the microphone audio is not processed by any equalizers or filters before being fed into the Ambient Sensing Leveler. However, in some advanced applications, this input may have additional processing.

NOTE: When properly calibrated, the Ambient Sensing Leveler device will effectively ignore most program material coming into the microphone. Anomalies may occur as a result of having the sense mic too close to the speakers. The Ambient Sensing Leveler will work best if the microphone is not in the direct or indirect path of any speakers.

Controls

Calibration Controls and Indicators

Start Button

Starts the Calibration process.

Please read the How To topic for details about the proper calibration procedure.

Calibration LED

Switches to Green when the Start button is pressed and the ambient sense microphone senses input.

Calibration Noise Level

During the Calibration process, sets the level of the noise injected into the room to isolate the speaker leakage from the ambient background noise.

Failure LED

Lights when the Calibration process fails.

Speaker Level Meter

Shows the Speaker audio input level measured by the RMS detector.

Sensor Level Meter

Shows the Sensor audio input level measured by the RMS detector.

Room Gain

When the Calibration process is complete, reports the estimated room gain.

Ambient Controls and Indicators

Speaker HP Frequency

Sets the frequency above which the speaker input (routed from the audio output block) will be passed as normal. Any input below this value will be attenuated.

Sense HP Frequency

Sets the frequency above which the input from the ambient sense microphone will be passed as normal. Any input below this value will be attenuated.

Sense RMS Time

Sets the sample length for the RMS detector.

If this control is set to 1 second, the device will only use events that occur during a 1 second period to derive the calculated ambient level. The smaller the value, the more responsive the system will be to changes. In an industrial or public transportation environment, the time should be short (somewhere in the area of 2 seconds). In other applications, such as casinos and dining rooms, the time should be longer (around 30 seconds).

Ambient Level Meter

Shows the ambient sound input level captured by the sense microphone.

Gain Update Controls and Indicators

Bypass

When activated, routes the input signal directly to the output channel without passing through the Ambient Sensing Leveler device; however, unity gain is still applied to the output.

Ambient Threshold Level

Sets the input level from the sense microphone above which the device will increase the gain added to the program material, up to the maximum gain level.

Ratio

Sets the ratio of gain applied to the sense microphone input signal once it exceeds the ambient threshold level.

For instance, if the ambient level exceeds the ambient threshold level by 3 dB and the ratio control is set to 1.5 dB, the program material output level will increase by 4.5 dB.

Attack Time

Sets the reaction time for the gain circuit to make changes when the calculated ambient level rises above the ambient threshold level.

Release Time

Sets the reaction time for the gain circuit to return from changes made when the calculated ambient level drops below the ambient threshold level.

Minimum Gain

Sets the minimum amount of amplification or attenuation to be applied to the output signal.

Maximum Gain

Sets the maximum amount of amplification or attenuation to be applied to the output signal.

Gain Level Meter

Shows the amount of gain that is added to the output signal.

Note: this meter does not indicate any gain when Bypass is selected, however, unity is applied.

Advanced Topic

See the How to set up the Ambient Sensing Leveler topic for more details.


Ambient Sensing Leveler_How_to

Ambient Sensing Leveler

How to set up the Ambient Sensing Leveler

Overview

Careful sense microphone placement is essential for optimum performance of the Ambient Sensing Leveler (and Router) device. Optimum microphone placement is achieved when the output of the zone's speakers do not leak back into the sense microphone. Obviously, in some facilities, this is not practical, so to deal with this real-world problem, the Ambient Sensing Leveler must first go through a system calibration phase before it can accurately estimate the ambient level separately from the speaker leakage (returned through the sense mic).

Calibration should be performed after all speakers and microphones are installed and set at their final positions and settings. Moving a microphone or changing the level control on the power amp (or any device after the Ambient Sensing Leveler in the circuit) will require a new calibration. Although it is not necessary to have a completely quiet room for calibration, a constant ambient level is required.

Test Bed

Steps

  1. Verify the placement, working condition and gain staging of all microphones.

  2. Place the Ambient Sensing Leveler into Bypass and set the RMS rate to 3 seconds (increase this time for noisy environments).

  3. Verify the placement of all microphones.

  4. Gain stage the elements in the circuit properly, so that the output volume in the zone is at what would be considered a maximum level. The speaker and sense input levels should be in the range of 0 to -20dB. This allows good resolution and sufficient headroom for ambient increases.

  5. Allow the speaker and sense RMS level indicators to settle and then start the program material or pink noise.

  6. Click Start.

  7. Decrease the level of the source material at the program input of the ALC device to the proper listening level for the current ambience level.

  8. Allow the RMS levels to settle at this new level.

  9. Click Start again to deselect the calibration mode.

At this time, Return Gain will be updated and Ambient Level should begin to reflect the true ambient level. Upon successful calibration, you may now set the dynamics controls for the gain cell (in the Gain Updates section) without having to recalibrate the device.

Calibration information will be saved with the view file as default information (for each instance of the Ambient Sensing Leveler device). Presets or SubPresets may also be used to save calibration and device settings.


Ambient Sensing Leveler and Router

Purpose

The Ambient Sensing Leveler provides an automatic "volume control" when the ambient noise levels in a venue start to affect the perceptibility of paging announcements and background music. The Router version of the Ambient Sensing Leveler device also allows you to equalize and otherwise process the input signal differently depending on the ambient noise levels.

How it Works

The device measures the incoming program material level (both unprocessed and up to 64 different processed inputs), the incoming zone's ambient level (by wiring a microphone to the sense input), and its own output and applies gain to the input signal based on the detected ambient level. The device switches inputs based on the ambient noise level.

Inputs/Outputs

Program

Wire the program source (typically background music and/or paging audio) directly to the Program input. Any gain added or subtracted from this source starts from 0dB (unity gain) which is what you will get when the Ambient Sensing Leveler is bypassed.

Speaker

This input is the return of the audio you would expect to hear out of the speaker. In other words, the audio going into this node should be a duplicate of what the system is delivering to the amplifier that drives the zone. The most likely place to return the audio from is just before the DSP Audio Output Block as illustrated in the diagram below.

Of course, when a device's output is connected into one of its inputs, a feedback loop is created. In the case of the Ambient Sensing Leveler and Router device, we need to tell the compiler to allow the feedback. To do this, it is necessary to use a Via device which allows feedback in the view file. The Via device is located in Miscellaneous\Other.

NOTE: The Speaker audio input is only used for measurement and will not pass audio through to the Ambient Sensing Leveler's output node.

Sense

This input is where you connect the microphone used to sense ambience in the zone. In its simplest form, the microphone audio is not processed by any equalizers or filters before being fed into the Ambient Sensing Leveler. However, in some advanced applications, this input may have additional processing.

NOTE: When properly calibrated, the Ambient Sensing Leveler device will effectively ignore most program material coming into the microphone. Anomalies may occur as a result of having the sense mic too close to the speakers. The Ambient Sensing Leveler will work best if the microphone is not in the direct or indirect path of any speakers.

Controls and Indicators

Calibration Controls and Indicators

Start Button

Starts the Calibration process.

Please read the How To topic for details about the proper calibration procedure.

Calibration LED

Switches to Green when the Start button is pressed and the ambient sense microphone senses input.

Calibration Noise Level

During the Calibration process, sets the level of the noise injected into the room to isolate the speaker leakage from the ambient background noise.

Failure LED

Lights when the Calibration process fails.

Speaker Level Meter

Shows the Speaker audio input level measured by the RMS detector.

Sensor Level Meter

Shows the Sensor audio input level measured by the RMS detector.

Room Gain

When the Calibration process is complete, reports the estimated room gain.

Ambient Controls and Indicators

Speaker HP Frequency

Sets the frequency above which the speaker input (routed from the audio output block) will be passed as normal. Any input below this value will be attenuated.

Sense HP Frequency

Sets the frequency above which the input from the ambient sense microphone will be passed as normal. Any input below this value will be attenuated.

Sense RMS Time

Sets the sample length for the RMS detector.

If this control is set to 1 second, the device will only use events that occur during a 1 second period to derive the calculated ambient level. The smaller the value, the more responsive the system will be to changes. In an industrial or public transportation environment, the time should be short (somewhere in the area of 2 seconds). In other applications, such as casinos and dining rooms, the time should be longer (around 30 seconds).

Ambient Level Meter

Shows the ambient sound input level captured by the sense microphone.

Gain Update Controls and Indicators

Bypass

When activated, routes the input signal directly to the output channel without passing through the Ambient Sensing Leveler and Router device; however, unity gain is still applied to the output.

Ambient Threshold Level

Sets the input level from the sense microphone above which the device will increase the gain added to the program material, up to the maximum gain level.

Ratio

Sets the ratio of gain applied to the sense microphone input signal once it exceeds the ambient threshold level.

For instance, if the ambient level exceeds the ambient threshold level by 3 dB and the ratio control is set to 1.5 dB, the program material output level will increase by 4.5 dB.

Attack Time

Sets the reaction time for the gain circuit to make changes when the calculated ambient level rises above the ambient threshold level.

Release Time

Sets the reaction time for the gain circuit to return from changes made when the calculated ambient level drops below the ambient threshold level.

Minimum Gain

Sets the minimum amount of amplification or attenuation to be applied to the output signal.

Maximum Gain

Sets the maximum amount of amplification or attenuation to be applied to the output signal.

Gain Level Meter

Shows the amount of gain that is added to the output signal. Note: this meter does not indicate any gain when Bypass is selected, however, unity is applied.

Router Controls and Indicators

Hysteresis

Sets the change in level beyond each router's Threshold Level that is necessary to switch between routers. When correctly set, Hysteresis ensures that a jittery signal, which gets louder and quieter randomly, does not switch between routers unnecessarily.

Threshold Levels 2-4

Sets the ambient microphone level that will cause a switch between router input channels.

We recommend setting the leftmost control to the lowest threshold level and then setting the thresholds progressively higher, with the rightmost control set to the highest threshold level.

The green LEDs located between each threshold control indicate which router input is currently open.

Crossfade Time

Sets the amount of time to be used for a complete crossfade.

Device Properties

Channel Count

Sets the number of program material inputs to be configured. This control automatically adds Threshold Level controls for each additional channel (and removes them when you subtract channels).


Ambient Sensing Leveler (Gap)

Purpose

Like the Ambient Sensing Leveler, the Gap Ambient Sensing Leveler device provides an automatic "volume control" when the ambient noise levels in a venue start to affect the perceptibility of paging announcements and background music. While the regular Ambient Sensing Leveler measures the ambient sound level constantly, the Gap version of the device measures the ambient sound level in the room during gaps in the program material.

The Gap version of the Ambient Sensing Leveler is easier to set up and consumes fewer DSP resources than the regular version. Also, for program inputs that have long gaps between input signals, this device accurately calculates the necessary gain for all output.

Inputs/Outputs

Input 1: Program Material

Wire the program source directly to the Program input. The device will examine the input signal for silences (gaps) that indicate when it is safe to measure the ambient noise sense signal. By only measuring the room when no signal is being injected by the sound system, the device avoids mistaking its own output for ambient sound.

Input 2: Ambient Noise Sense Signal

Wire the Sense input to an ambient noise sense microphone located within the zone to be controlled. When the program material input detects a gap in the program, the device measures the signal level at this input and applies gain based on this level, as described in the controls section.

Output 1: Calculated Program Output

Controls and Indicators

Now Sensing Area

Gap Threshold Level

Sets the program input level that triggers the device to start sampling the sense microphone input.

When the program input level is above the threshold, the sense microphone is ignored.

When the program input level falls below the threshold, the Now Sensing circuit becomes active.

Sense Delay Time

Sets the interval between the program material falling below the threshold level and the device sampling the input from the sense microphone.

When correctly set, this delay allows the acoustic signal level in the room to decay by about 10dB so that the program material is not detected by the sense microphone.

Sense RMS Time

Sets the sample rate for the RMS detector.

If this control is set to 1 second, the device will only use events that occur during a 1 second period to derive the calculated ambient level. The smaller the value, the more responsive the system will be to changes. In an industrial or public transportation environment, the time should be short (somewhere in the area of 2 seconds). In other applications, such as casinos and dining rooms, the time should be longer (around 30 seconds).

Gain Update Area

Ambient Threshold Level

Sets the input level from the sense microphone above which the device will increase the gain added to the program material, up to the maximum gain level.

Ratio

Sets the ratio of gain applied to the sense microphone input signal once it exceeds the ambient threshold level.

For instance, if the ambient level exceeds the ambient threshold level by 3 dB and the ratio control is set to 1.5 dB, the program material output level will increase by 4.5 dB.

Response Time

Sets the response time of the circuit once it exceeds the ambient threshold level.

A short response time will result in a signal that responds very quickly to changes in the ambient level in the room. A long response time will average the signal over a longer period of time, resulting in a slower, but smoother effect.

In most applications a short response time is not desirable.

Minimum Gain

Sets the minimum amount of amplification or attenuation to be applied to the output signal.

Maximum Gain

Sets the maximum amount of amplification or attenuation to be applied to the output signal. If the minimum gain control is set to the lowest setting, the maximum gain

Bypass

When activated, routes the input signal directly to the output channel without passing through the Gap Ambient Sensing Leveler device; however, unity gain is still applied to the output.

Now Sensing LED

Switches on when the ambient microphone sensing circuit is active.

Ambient Level Meter

Indicates the ambient sound level from the sense microphone input.

Gain Meter

Shows the amount of gain that is added to the output signal. Note: this meter does not indicate unity if Bypass is pressed, although the actual gain applied does equal unity.

Advanced Topic

Check out the Recommended Setup Procedure for tips on setting up this device.


Ambient Sensing Leveler and Router (Gap)

Purpose

Like the Ambient Sensing Leveler and Router, the Gap Ambient Sensing Leveler and Router device provides an automatic "volume control" when the ambient noise levels in a venue start to affect the perceptibility of paging announcements and background music. The Router versions of these devices also allow you to equalize and otherwise process the input signal differently depending on the ambient noise levels.

While the regular Ambient Sensing Leveler and Router measures the ambient sound level constantly, the Gap version of the device measures the ambient sound level in the room during gaps in the program material.

The Gap version of the Ambient Sensing Leveler and Router is easier to set up and consumes fewer DSP resources than the regular version. Also, for program inputs that have long gaps between input signals, this device accurately calculates the necessary gain for all output.

Inputs/Outputs

Program Inputs (default: P1-P4)

Wire the unprocessed program material to P1, where the signal is examined for silence (gaps) that indicate when it is safe to measure the ambient noise sense signal.

Create the desired processing chains to wire into the other program inputs. These will be different for different operating conditions, but could be set to have different equalization settings depending on the amount of ambient noise.

You can change the number of program inputs in the Device Properties.

Input 2: Ambient Noise Sense Signal

Wire the Sense input to an ambient noise sense microphone located within the zone to be controlled. When the program material input detects a gap in the program, the device measures the signal level at this input and applies gain based on this level, as described in the controls section.

Output 1: Calculated Program Output

Controls

Now Sensing Area

Gap Threshold Level

Sets the program input level that triggers the device to start sampling the sense microphone input.

When the program input level is above the threshold, the sense microphone is ignored.

When the program input level falls below the threshold, the Now Sensing circuit becomes active.

Sense Delay Time

Sets the interval between the program material falling below the threshold level and the device sampling the input from the sense microphone.

When correctly set, this delay allows the acoustic signal level in the room to decay sufficiently so that the program material is not detected by the sense microphone.

Sense RMS Time

Sets the sample length for the RMS detector.

If this control is set to 1 second, the device will only use events that occur during a 1 second period to derive the calculated ambient level. The smaller the value, the more responsive the system will be to changes. In an industrial or public transportation environment, the time should be short (somewhere in the area of 2 seconds). In other applications, such as casinos and dining rooms, the time should be longer (around 30 seconds).

Gain Update Area

Ambient Threshold Level

Sets the input level from the sense microphone above which the device will increase the gain added to the program material, up to the maximum gain level.

Ratio

Sets the ratio of gain applied to the sense microphone input signal once it exceeds the ambient threshold level.

For instance, if the ambient level exceeds the ambient threshold level by 3 dB and the ratio control is set to 1.5 dB, the program material output level will increase by 4.5 dB.

Response Time

Sets the response time of the circuit once it exceeds the ambient threshold level.

A short response time will result in a signal that responds very quickly to changes in the ambient level in the room. A long response time will average the signal over a longer period of time, resulting in a slower, but smoother effect.

In most applications a short response time is not desirable.

Minimum Gain

Sets the minimum amount of amplification or attenuation to be applied to the output signal.

Maximum Gain

Sets the maximum amount of amplification or attenuation to be applied to the output signal.

Router Area

Hysteresis

Sets the change in level beyond each router's Threshold Level that is necessary to switch between routers. When correctly set, Hysteresis ensures that a jittery signal, which gets louder and quieter randomly, does not switch between routers unnecessarily.

Threshold Levels 2-4

Sets the ambient microphone level that will cause a switch between router input channels.

We recommend setting the leftmost control to the lowest threshold level and then setting the thresholds progressively higher, with the rightmost control set to the highest threshold level.

The green LEDs located between each threshold control indicate which router input is currently open.

Crossfade Time

Sets the amount of time to be used for a complete crossfade.

Bypass

When activated, routes the input signal directly to the output channel without passing through the Gap Ambient Sensing Leveler and Router device; however, unity gain is still applied to the output.

Indicators

Now Sensing LED

Switches on when the ambient microphone sensing circuit is active.

Ambient Level Meter

Indicates the ambient sound level from the sense microphone input.

Gain Meter

Shows the amount of gain that is added to the output signal. Note: this meter does not indicate unity if Bypass is pressed, although the actual gain applied does equal unity.

Device Properties

Channel Count

Sets the number of program material inputs to be configured. This control automatically adds Threshold Level controls for each additional channel (and removes them when you subtract channels).


Ambient Sensing Leveler (Gap)_How_to

Gap Ambient Sensing Leveler (and Router)

How to set up the Gap Ambient Sensing Leveler (and Router)

Overview

The Gap Ambient Sensing Leveler detects gaps in the program material and attempts to set the gain at the appropriate level for the ambient noise during those gaps. The router version of the device also changes inputs depending on the ambient level.

To set up the Gap Ambient Sensing Leveler, minimum and maximum ambient levels are simulated and the device's controls are adjusted accordingly.

Once the device is configured, its settings will be stored as the defaults. You can also store the settings as a Preset or a Subpreset.

Test Bed

If it is available, the intended program material should be used to configure this device. However, if it is not yet available, you can use a Pink Noise Generator to approximate the effect.

Using program material, the test bed is:

Using Pink Noise as program material, the test bed is:

Steps

  1. (Real program material test bed only) Measure the noise floor on the program input before starting the program material using the Meter. Set the Gap Threshold Level to approximately 10 dB above the noise floor measurement. If you set the Gap Threshold Level too high, the program material will leak into the ambient noise sensor.

If you are setting up the Gap Ambient Sensing Leveler and Router, measure the noise floor on the P1 input.

  2. Set the Sense RMS Time according to the type of application. In an industrial or public transportation environment, the time should be short (somewhere in the area of 2 seconds). In other applications, such as in casinos and dining rooms, the time should be longer (around 30 seconds).

  3. Click Bypass to set the level controller's gain to unity.

  4. Switch on the program material or pink noise detector. Use the level control (on the Gain device or on the Pink Noise Generator) to select an appropriate program level for no ambient noise conditions.

  5. Switch off Bypass to begin configuring the gain controls.

  6. Using the White Noise Generator, simulate low ambient noise level conditions and adjust the Ambient Threshold Level to the level where the ambient noise begins to affect the intelligibility or perceptibility of the program material.

  7. Set the Minimum Gain control to amplify the program material to overcome the ambient noise.

  8. Mute the program input (either the gain device or the Pink Noise Generator) and use the Meter device and the Ambient Level meter on the Ambient Sensing Leveler device to time how long it takes the program material to decay by at least 10dB below the ambient noise level.

  9. Adjust the Sense Delay Time to match the length of time it takes for the program material to decay by at least 10dB below the ambient noise level in the room.

  10. Using the White Noise Generator, simulate high ambient noise level conditions and set the Maximum Gain control to amplify the program material to overcome the ambient noise at this level.

  11. Set the Ratio to reflect the amount of program material gain change (in dB) that you would like the device to apply per dB of ambient noise level change.

  12. Set an appropriate Response Time. If the ambient levels peak and drop very quickly in your environment, a long response time will ensure that the device's response will be more natural.

Additional steps if you are setting up the Router version of the Gap Ambient Sensing Leveler

  13. Adjust the Router Threshold Levels to the desired levels.

  14. Set the Hysteresis, which provides a guard band around the Router Threshold Levels in the event of ambient noise hovering around a threshold. A good starting value for Hysteresis is +0.5 dB.

  15. Set the Crossfade Time.

  16. Generate the program material on all three router inputs and test the device to ensure it functions properly. The green LEDs indicate which router input is currently selected.


Hard Clipper

Purpose

The hard clipper modifies the incoming signal by not allowing it to exceed the selected clip level. Any signal below this level is passed through unchanged. Any signal above this level is forced to the selected level. The effect is similar to overdriving a digital input. The clipper does this on every sample with no time constraints. Because of this, signals that exceed the chosen clip level are distorted. This device has limited usefulness, but can be used as a last resort before feeding something that would sound even worse if it were overdriven (unlikely).

This device can be used as an alternative to the Hard Limiter. It is less functional, but uses considerably less DSP resources.

Controls

Clip Level

Selects the level above which the signal is clipped.

Response Graph

When the clip level is set to 18dB, the response graph is:

Frequency Wave Response Curve


Soft Clipper

Purpose

Like the Hard Clipper, the soft clipper modifies the incoming signal by not allowing it to exceed the selected clip level. The soft clipper adds a second threshold that allows one to begin the clipping process at a lower level. Any signal below this level is passed through unchanged. When the signal exceeds the clip level minus the soft knee level, it is attenuated. As it gets closer to the clip level, more and more attenuation is applied. At the clip level, attenuation is applied such that the signal can get no higher. The effect on audio signals is less harsh than the hard clipper, thus it can be used as a last resort before feeding something that would sound even worse if it were overdriven (possible).

Controls

Clip Level

Sets the hard clip level. The output signal cannot exceed this level.

Soft Knee

Sets how many dB before the clip level that attenuation is starting to be applied. The soft knee control provides a smooth transition between the non-clipped and clipped output signal by gradually increasing the attenuation as the input signal level approaches, and then crosses, the Clip Level.

Response Graph


Compressor Limiter

Purpose

The compressor provides a means of reducing the dynamics in an audio signal to improve the overall sound level (the volume perceived by the audience).

Controls and Indicators

Threshold Level

Sets the input level above which the compressor will attenuate the input signal.

If the level of the signal at the Side Chain input is lower than the Threshold setting, the compressor routes the signal through the device unaffected (unless a Soft Knee value has been specified).

Compression Ratio

The ratio control adjusts the severity of gain reduction produced by the compressor once the input signal has exceeded the Threshold Level.

Dynamic variations in the input signal will be reduced by a factor equal to the compression ratio.

Maximum Attenuation

Sets the maximum amount of attenuation to be applied to the output signal.

Attack Time

Sets how quickly the compressor reacts to an increasing input signal level.

Release Time

Sets how long the compressor waits before releasing its attenuation value.

Soft Knee

Sets a second threshold level, which attenuates the incoming signal at a reduced compression ratio before it reaches the Threshold level.

The soft knee control provides a smooth transition between the non-compressed and compressed output signal by gradually increasing the compression ratio as the input signal level approaches, and then crosses, the Threshold Level.

Note: The soft knee feature is most useful with a high Ratio setting, as the limiting effect is less noticeable when the compression ratio is higher.

Make Up Gain

Sets an amplification level to apply to the output signal after its dynamic range has been reduced.

Signal

These LEDs indicate:

  • Above when the input signal level exceeds the Threshold level.

  • Knee when the input signal level exceeds the Soft Knee level.

  • Below when the input signal is below the Soft Knee level.

Note: These indicators sample the actual input signal, before the compressor's response.

Gain Reduction Meter

Indicates the amount of attenuation currently being produced by the compressor.

Note: The compressor is capable of unlimited attenuation, however the meter's limit is -35dB.

Bypass

When activated, routes the input signal directly to the output channel without passing through the Compressor. The Side Chain input is not bypassed, so the threshold indicators and gain reduction meters continue to update.

Response Curve

Level Response

Device Properties

Detector Type

Choose between RMS or Peak detectors.

Channel Count

Sets the number of program material inputs to be configured. Each channel is input and modified equally.

Sidechain Count

Sets the number of side-chain inputs to use for sampling.


Ducker

Purpose

The Ducker provides a means of using one signal to attenuate another.

Controls and Indicators

Hysteresis

Sets the drop in level below the Peak Threshold Level that is necessary to switch back to the side-chain input.

When correctly set, Hysteresis ensures that an announcement of varying levels does not get dropped during its lower levels.

Peak Threshold

Sets the side-chain input level above which the ducker will attenuate the main input level by the Depth value.

Depth

Sets the amount of attenuation to apply to the main input signal when the side-chain input exceeds the Peak Threshold value..

Attack Time

Sets how long the device will wait between detecting side-chain input and attenuating the main input.

Release Time

Sets how long after the Hold Time the ducker will wait before raising the main input level back to its original level.

Hold Time

Sets how long the ducker will hold the attenuation level after the signal drops below the Peak Threshold value.

Mask Time

Sets how long the ducker will wait before sampling after the attenuation is been released. This control keeps the ducker from re-engaging straight after releasing.

State LED

When lit, shows that normal input is being passed through the device with no attenuation.

Gain Meter

Shows how much the signal is being attenuated when the ducker is active.

Bypass

When activated, routes the input signal directly to the output channel without passing through the Compressor. The Side Chain input is not bypassed, so the threshold indicators and gain reduction meters continue to update.

Device Properties

Type

Choose between ducker and gate. The controls are the same on both devices.

Channel Count

Sets the number of program material inputs to be controlled.

Sidechain Count

Sets the number of side-chain inputs to use for sampling.


Expander

Purpose

The expander provides a means of exaggerating the dynamics in an audio signal. If the signal is very quiet, it will make it quieter. If the signal is very loud, it will make it louder. The expander is often used as a single-ended noise reduction device that improves the signal-to-noise ratio.

The Compressor and Expander perform in opposite ways: the Expander attenuates signals below the Threshold Level while the Compressor attenuates signals above the Threshold Level. Also, whereas the compressor begins to operate as a Limiter at smaller compression ratios, the Expander begins to operate as a Gate at higher expansion ratios.

Inputs/Outputs

  • 1 input (default). You can add additional inputs and/or side-chain inputs in the Device Properties. If there is a side-chain input, the gain calculation will be made based on its input.

  • 1 output

Controls and Indicators

Threshold Level

Sets the input level that determines whether the expander attenuates or amplifies the signal.

An input signal below the threshold will be attenuated.

An input signal above the threshold will be amplified.

Ratio

Sets the attenuation ratio to be applied to input signals below the threshold, up to the maximum attenuation.

For example, if the input signal is at -20B, a ratio of two will result in the signal being attenuated to -40.

All signals above the threshold are amplified at a 2:1 ratio. For instance, if the threshold is 0dB, an input signal at 10dB will be amplified to 20dB.

Maximum Attenuation

Sets the maximum amount of attenuation to be applied to the output signal.

Attack Time

Sets how quickly the expander reacts to an increasing input signal level.

Release Time

Sets how long the expander waits before releasing its gain value.

Soft Knee

Sets a second threshold level, which attenuates incoming signals below the threshold value at a reduced compression ratio before it reaching the Threshold level.

The soft knee control provides a smooth transition between attenuated and amplified output signals by gradually increasing the compression ratio as the input signal level approaches, and then crosses, the Threshold Level.

Note: The soft knee feature is most useful with a high Ratio setting, as the amplification effect is less noticeable when the expansion ratio is higher.

Signal

These LEDs indicate:

  • Above when the input signal level exceeds the Threshold level.

  • Knee when the input signal level exceeds the Soft Knee level.

  • Below when the input signal is below the Soft Knee level.

Note: These indicators sample the actual input signal, before the expander's response.

Gain Reduction Meter

Indicates the amount of attenuation currently being produced by the compressor.

Note: The compressor is capable of unlimited attenuation, however the meter's limit is -35dB.

Bypass

When activated, routes the input signal directly to the output channel without passing through the Expander. The Side Chain input is not bypassed, so the threshold indicators and gain reduction meters continue to update.

Device Properties

Detector Type

Choose between RMS or Peak detectors.

Channel Count

Sets the number of program material inputs to be configured. Each channel is input and modified equally.

Sidechain Count

Sets the number of side-chain inputs to use for sampling.


Gate (Zero-Crossing Switched)

Purpose

The Gate permits signals above a certain level to pass through while prohibiting or reducing the output level of lower level signals. When the Gate is in its "open" state the input signal passes through un-attenuated. When the gate is in its closed state, the input signal is attenuated as specified by the Depth control.

The Gate waits for a zero crossing before switching between open and closed states. This generally keeps the switch action from being audible and allows the gate to open quickly when adequate signal is detected.

The Zero-Crossing Switched Gate uses fewer DSP resources than the Deluxe Gate.

Inputs/Outputs

The Gate Device has two input nodes. The top input is the Audio input and the bottom input is the Side Chain input. The decision to open or close the gate is based on the peak level of the signal detected at the side chain input. Zero cross detection is performed on the signal at the Audio input.

The Gate Device has one output node. The top output is the gated audio output

Controls and Indicators

Peak Threshold

Sets the input level above which the gate will open.

Depth

Sets the amount of attenuation to apply to the input signal.

Hold Time

Determines how long the gate will remain open after the side chain signal falls below the Threshold Level.

The hold time evens out the device's response by allowing some time for the signal to exceed the threshold after amplifying the output signal. If recovery is enabled, the hold time value is replaced by the recovery time value.

State LED

When lit, shows that the gate is open (the signal is being passed through the gate with no attenuation).

Note: The Gate waits for a zero crossing to occur before switching between open and closed states. The Open Indicator accurately reflects the state of the device given this condition. If a DC signal is applied to the input, the gate may not be able to change state because the signal may not invert.

Bypass

When activated, routes the input signal directly to the output channel without passing through the Gate. The Side Chain input is not bypassed, so the state LED continues to update.

Functional Diagram

The Deluxe Gate device is composed of a Gate Algorithm, a Level device and a Peak Meter.

Device Properties

Channel Count

Sets the number of inputs to be configured. Changing the channel count automatically adds a multiplier to the device circuit.

Sidechain Count

Sets the number of real side-chain inputs to use for sampling.


Hard Limiter

Purpose

The limiter provides a means of limiting the dynamics in an audio signal. Limiters are often used as a last line of defense to prevent clipping and protect speaker drivers.

The main difference between the Limiter and the Compressor is that the Limiter uses a peak level detector on at the Side Chain input whereas the Compressor uses an RMS level detector.

Controls

Threshold

Sets the input level above which the compressor will attenuate the input signal.

If the level of the signal at the Side Chain input is lower than the Threshold setting, the hard limiter routes the signal through the device unaffected.

Attack Time

Sets how quickly the compressor reacts to an increasing input signal level.

Release Time

Sets how long the compressor waits before releasing its attenuation value.

Gain Reduction Meter

Indicates the amount of attenuation currently being produced by the hard limiter.

Note: The hard limiter is capable of unlimited attenuation, however the meter's limit is -35dB.

Bypass

When activated, routes the input signal directly to the output channel without passing through the Hard Limiter. The Side Chain input is not bypassed, so the gain reduction meter continues to update.

Device Properties

Channel Count

Sets the number of inputs to be configured. Changing the channel count automatically adds a multiplier to the device circuit.

Sidechain Count

Sets the number of real side-chain inputs to use for sampling.


Graphic Equalizer

Purpose

A Graphic Equalizer can provide up to 18dB of boost or cut for each frequency band. The center frequency of each band is fixed at standard ISO frequencies. The bandwidth of each filter is fixed and depends on the number of bands in the equalizer. Graphic Equalizers are available in one octave, 2/3 octave, and 1/3 octave sizes. In a digital system, a Graphic Equalizer is, in most applications, less efficient than a Parametric Equalizer. Each band of a Graphic Equalizer uses approximately the same DSP resources as single Parametric Equalizer band. It is suggested that Parametric Equalizers be used when possible. The main advantage of a Graphic Equalizer over a bank of Parametrics is in its ease of setup and use.

Controls

Band Bypass

Bypasses a single equalizer band. Engaging this button has the same effect as setting the corresponding Band Level control to +0dB.

Band Level

Adjusts the amount of boost or cut provided by the frequency band.

Note: It is possible to create an overload condition within the equalizer if any Band Level is set above +0dB. Such an overload will be indicated by the Overload Indicator.

Device Properties

Bandwidth

Select the bandwidth for each band. Also sets the number of bands.


High Shelf Equalizer

Purpose

The High Shelving Filter divides the audio spectrum into two. Frequency components above the division may be amplified or attenuated, while frequencies below the division are unaffected.

The transition between the two regions occurs at a fixed 6dB/octave rate. The width of the transition between the shelved and un-shelved is dependent on the magnitude of the amplification or attenuation applied.

Controls

Frequency

Sets the transition frequency of the shelving filter.

Gain

Sets the amplification or attenuation level to be applied to the high frequency shelf. The un-shelved portion of the frequency spectrum is output unchanged.

Bypass

When activated, routes the input signal directly to the output channel at unity gain.

Frequency Response

The response of the High Shelf filter is shown for a Level control setting of +6dB (red) and -6dB (blue) and a Frequency control setting of 1,000Hz.


Low Shelf Equalizer

Purpose

The Low Shelving Filter divides the audio spectrum into two. Frequency components below the division may be amplified or attenuated, while frequencies above the division are unaffected.

The transition between the two regions occurs at a fixed 6dB/octave rate. The width of the transition between the shelved and un-shelved is dependent on the magnitude of the amplification or attenuation applied.

Controls

Frequency

Sets the transition frequency of the shelving filter.

Gain

Sets the amplification or attenuation level to be applied to the low frequency shelf. The un-shelved portion of the frequency spectrum is output unchanged.

Bypass

When activated, routes the input signal directly to the output channel at unity gain.

Frequency Response

The response of the Low Shelf filter is shown for a Level control setting of +6dB (red) and -6dB (blue) and a Frequency control setting of 1,000Hz.


Parametric Equalizer

Purpose

The Parametric Equalizer boosts or cuts the signal at a specific, chosen frequency. It is available in a variety of sizes ranging from a single band up to 64 bands. Parametric Equalizers may be wired in series if you desire more bands. A multi-band Parametric consumes less DSP resources than the equivalent series connection of single band Parametric Equalizers.

We recommend the use of Parametric Equalizers for most equalization applications as they provide the most flexibility and are efficient.

Controls

Asymmetric/Symmetric

When enabled, sets the equalizer's attenuation response to asymmetric (i.e. the attenuation response will be narrower than the amplification response). Therefore, when disabled, it will act as a graphic equalizer, which has a symmetric frequency response.

Type

Sets the type of frequency response. Choose between Parametric, Low Shelf, and High Shelf.

Bandwidth

Sets the equalizer's frequency range, measured in octaves.

For instance, a Bandwidth setting of "1" results in a filter response with 3dB down points, 1 octave apart.

Center Frequency

Sets the center of the affected frequencies.

Gain

Sets the amount of attenuation or amplification to be applied at the center frequency.

Bypass

Device Bypass: when activated, routes the input signal directly to the output at 0dB.

Channel Bypass: when activated, routes the input signal directly to the output for one band of the equalizer at 0dB.

Parametric Equalizer Frequency Response

Magnitude Response with Symmetry control Off, Center frequency 1000Hz, Gain +12dB (Red) and -12dB (Blue), Bandwidth 0.64.

Magnitude Response with Symmetry control On, Center frequency 1000Hz, Gain +12dB (Red) and -12dB (Blue), Bandwidth 0.64.


Tone Control Equalizer Controls

Tone Control Equalizer

Purpose

The Tone Control Equalizer is similar to those found in the audio receivers used in homes and cars.

Controls

Low

Sets the amount of attenuation or amplification to be applied to the low shelving filter in the tone control equalizer. To change the transition frequency of the low tones, open the low shelf filter in the schematic tab and change the frequency control.

Mid

Sets the amount of attenuation or amplification to be applied to the parametric equalizer in the tone control equalizer. To change the center frequency of the mid tones, open the parametric equalizer on the schematic tab and change the frequency control.

High

Sets the amount of attenuation or amplification to be applied to the high shelving filter in the tone control equalizer. To change the transition frequency of the high tones, open the high shelf filter in the schematic tab and change the frequency control.


All Pass Filter

All Pass Filters

Purpose

The All Pass Filter produces a flat amplitude response and a smoothly changing phase response, from zero to -360 degrees. The All Pass Filter is found in custom crossovers to help with driver alignment and in some types of special effects processing.

Controls

Center Frequency

Sets the center frequency for the phase shift.

The phase shift is exactly -180 degrees at the center frequency.

Q

Sets the abruptness of the phase shift produced by the filter.

Higher settings produce a more abrupt phase shift at the Center Frequency.

Bypass

When activated, routes the input signal directly to the output channel at unity gain.

Phase Response

The phase response of the All Pass device for a Center Frequency setting of 1000Hz and a Q-Factor of 1/sqrt(2) or 0.707.


Band Pass Filter

Purpose

The Band Pass Filter passes frequency components in the vicinity of the Center Frequency setting. Frequencies above and below the Center Frequency are rolled off at a 6dB/octave rate. The band pass filter is useful for building spectrum analyzers.

Controls

Bandwidth

Sets the range of frequencies affected by changes in gain.

Lower settings produce a sharper response.

Center Frequency

Selects the center frequency of the filter's response.

Gain

Sets the amount of attenuation at the center frequency.

Mute

When activated, silences the output signal.

Invert Polarity

When activated,inverts the output signal's polarity.

Band Pass Frequency Response

Magnitude response for a Center Frequency of 1kHz and a Bandwidth of 1.


Crossover

Crossovers

Purpose

Crossovers divide the frequency spectrum into two or more bands that are processed independently and typically sent to separate power amplifiers. Crossovers are constructed of Low Pass and High Pass Filters, and their controls relate to the corresponding controls of their component filter sections. Crossover devices can have 2, 3 and 4 bands and maximum slopes of 24, 36 and 48dB/octave. Crossovers consume DSP resources proportional to the number of bands and their maximum filter slope. Select the smallest Crossover which fulfills the requirements for your application. Once compiled, filter slopes may be adjusted downward with the Slope Controls but no DSP resources will be recovered by doing this.

Controls

Crossover Frequency

Sets the crossover frequency.

Gain

Sets the amount of attenuation to be applied to the signals for the particular output.

Filter Type Buttons

Choose between Bessel, Butterworth or Linkwitz-Riley.

Each digital filtering technique produces a different response characteristic, allowing the crossover to be used for different applications.

Bessel Normalization Button

When you click the Bessel Normalization button, you can choose between Phase Match, Time Delay, -3dB, -6dB and none.

Slope

Sets the slope of the attenuation response curve for signals below the corner frequency, in 6dB/octave increments (Bessel and Butterworth filters) and 12dB/octave for Linkwitz-Riley filters. xxx

The maximum slope possible is 60dB/octave.

For the best results, the Slope settings on adjacent frequency bands should be identical.

Mute

When activated, silences the input signal.

Invert Polarity

When activated, inverts the output signal's polarity by 90 degrees.

Device Properties

Output Count

Select the number of crossover outputs. This also sets the number of frequency ranges shown in the Control Panel.

Maximum Slope

Select the maximum slope value. The slope values start at 6dB and go up to 48dB in 6dB increments.


Crossover Output Invert Recommendations

The Crossover filters generate phase shifts dependent on Filter Type and Slope. For correct combination of frequency components, the Output Invert buttons must be set correctly as described below.

Butterworth Filter Type

Filter Slope | Band 1 Polarity | Band 2 Polarity | Band 3 Polarity | Band 4 Polarity | Combined Response
6dB/Octave | + (Off) | + (Off) | + (Off) | + (Off) | 0dB 0°
12dB/Octave | + (Off) | - (On) | + (Off) | - (On) | +3dB -90°
18dB/Octave | + (Off) | + (Off) | + (Off) | + (Off) | 0dB -180°
24dB/Octave | + (Off) | + (Off) | + (Off) | + (Off) | +3dB -180°
30dB/Octave | + (Off) | + (Off) | + (Off) | + (Off) | 0dB -180°
36dB/Octave | + (Off) | - (On) | + (Off) | - (On) | +3dB +90°
42dB/Octave | + (Off) | + (Off) | + (Off) | + (Off) | 0dB 0°
48dB/Octave | + (Off) | + (Off) | + (Off) | + (Off) | +3dB 0°
54dB/Octave | + (Off) | + (Off) | + (Off) | + (Off) | 0dB 0°
60dB/Octave | + (Off) | - (On) | + (Off) | - (On) | +3dB -90°

Linkwitz-Riley Filter Type

Filter Slope | Band 1 Polarity | Band 2 Polarity | Band 3 Polarity | Band 4 Polarity | Combined Response
12dB/Octave | + (Off) | - (On) | + (Off) | - (On) | 0dB -90°
24dB/Octave | + (Off) | + (Off) | + (Off) | + (Off) | 0dB -180°
36dB/Octave | + (Off) | - (On) | + (Off) | - (On) | 0dB +90°
48dB/Octave | + (Off) | + (Off) | + (Off) | + (Off) | 0dB 0°
60dB/Octave | + (Off) | - (On) | + (Off) | - (On) | 0dB -90°

Only multiples of 12dB/Octave Filter Slope settings are allowed when the Linkwitz-Riley Filter Type is selected.

Bessel Filter Type

There are no simple alignment rules when the Bessel Filter Type is selected or when different filter slopes are used at different crossover points.


FIR Filter

Purpose

The Finite Impulse Response (FIR) filter is an advanced filter that can be used for specialized applications. FIR filters can be used to implement linear-phase filters. Usually, you would use filter design software to compute the FIR filter's coefficient and then copy them to NWare.

Controls

Tap Weight

For each tap, sets the weight of the gain applied to create the desired impulse response.

Device Properties

Tap Count

Enter (or change) the number of taps to suit your design needs.


DC Generator

Purpose

The DC Generator produces a constant value signal at the device output.

Note: Most analog output devices to do not pass DC signals.

Controls

Level

Adjusts the level of the DC signal produced by the generator.

Mute

Mutes the output of the generator.

Invert

Causes the generator to produce a negative DC signal.


Dither Generator

Purpose

The Dither Generator is a specialized noise generator designed to help reduce low-level signal distortion.

Controls

Type

Sets the amount of noise to be added to the signal in order to de-couple the noise from the signal when it is received.

Choose from Rectangular, Triangular or Shaped Triangular.

Rectangular is the most basic shape: it de-correlates the noise from the signal anywhere within the range. It is unlikely that you would find this noise shape very useful.

Triangular gives triangular probability distribution for the noise.

Shaped Triangular adds triangular noise then feeds the signal through a high-shelf filter to push the noise spectrum towards the higher frequencies. This lowers the overall perceived volume of the noise.

Round

Adds 1/2 LSB.

Word size

Sets the noise level to match the target number of bits.

Mute

Mutes the noise generator.


Pink Noise Generator

Purpose

Generates a pink noise test signal. Pink noise is useful since it has equal energy in each equal fraction of an octave. As a result it looks “flat” when viewed on a common 1/3 or 1 octave band Real Time Analyzer.

Controls

Level

Sets the RMS level of the pink noise generated. The peak level for pink noise is approximately 10dB greater than its RMS level.

Mute

Mutes the output of the generator.

Pink Noise Frequency Response

While pink noise looks “flat” when viewed on a 1/3 octave Real Time Analyzer, it actually has a response which decreases with increasing frequency. The analyzer however, averages an increasingly large bandwidth in each band, so the resulting combination looks flat. This is what the actual response of the pink noise looks like.

Magnitude response of the Pink Noise Generator. The slope is -10dB/Decade or -3dB/Octave.


White Noise Generator

Purpose

Generates a white noise test signal. White noise contains equal amounts of energy at each frequency. When viewed on a constant bandwidth analyzer such as an FFT analyzer it will appear flat. However when viewed on a constant percentage bandwidth analyzer such as all the common Real Time Analyzers, it will appear to increase in level with increasing frequency at a rate of 3 dB per octave. For use with RTA’s, use the pink noise generator instead, which will appear flat on them.

Controls

Level

Sets the RMS level of the noise generated. The peak level for white noise is 4.77dB greater than its RMS level.

Mute

Mutes the output of the generator.


Pulse Generator

Purpose

The Pulse Generator generates impulses. These are useful in control applications and for testing.

Controls

Single Sided

When enabled, sends positive pulses only.

When disabled, sends a positive pulse immediately followed by an equal but negative pulse.

Single Sample

When enabled, generates single sample impulses. Overrides the Width setting.

Width

Sets the duty cycle of the pulse.

Rate

Sets the rate pulses are generated.

Level

Sets the output level.

Mute

Mutes the generator.

Invert

Inverts the output.


Saw Generator

Purpose

The Saw Generator generates a saw wave.

Controls

Frequency

Sets the frequency of the saw wave.

Level

Sets the level of the saw wave.

Mute

Mutes the output of the generator.

Invert

Inverts the signal polarity.


Sine Generator

Purpose

Generates a high frequency sinusoidal signal of selected amplitude and frequency. Note that the maximum frequency depends on the selected sample rate.

Controls

Frequency

Sets the frequency of the sine wave generated.

Level

Sets the RMS level of the sine wave generated. Note that the peak level of a sine wave is 3dB greater than its RMS level.

Mute

Mutes the output of the sine generator.


LFO Generator

Purpose

The Low Frequency Oscillator is identical to the Sine Generator, but with a frequency range of a fraction of a Hz to 100Hz. The LFO Generator is used for specialized control applications and special effects.

Controls

Frequency

Sets the center frequency for the generated signal.

Level

Sets the output level for the generated signal.

Mute

Mutes the generator.


Quad Sine Generator

Quadrature Sine Generator

Purpose

The Quadrature Sine Generator outputs two sine waves, the second 90 degrees out of phase with the first. This is typically used in control applications.

Outputs

Two outputs, labeled s (sine) and c (cosine).

Controls

Frequency

Sets the frequency of the sine waves generated.

Level

Sets the RMS level of the sine waves generated. Note that the peak level of a sine wave is 3dB greater than its RMS level.

Mute

Mutes the output of the generator.


Gains

Purpose

The Gain device amplifies or attenuates incoming signals based on the gain control's position.

Inputs/Outputs

The Gain device is available in a single channel or multi-channel version.

Controls

Gain

Master Gain: Sets the amount of amplification or attenuation to be applied to the output signal on all channels.

Channel Gain: Overrides the master control by specifying a gain for one specific channel.

Bypass

Master Bypass: when activated, routes the input signal directly to the output port without passing through the gain device.

Channel Bypass: when activated, routes the input signal directly to the output port for one specific channel.

Mute

Master Mute: when activated, silences the input signal on all channels.

Channel Mute when activated, silences the input signal for the specific channel.

Note: Mute does not function when the Solo button is also on.

Invert Polarity

Master Invert changes the output signal's polarity by 90 degrees.

Channel Mute changes the output signal for the specific channel.

Solo

Specifies that the channel is to remain open while all others are muted. Any other channel with Solo on will also remain open.

Device Properties

Channel Count

Sets the number of channels to be routed through the gain device. The permitted range is even integers between 2 and 128.


Panners

Purpose

The Left-Right (LR) and Left-Center-Right (LCR) panners route the input signal into two (or three) different outputs depending on the position of the gain controls. These panners also allow you to adjust the gain proportionately for a specific effect, such as compensating for speaker clusters that are nearer or further from a specific audience position.

The 4-way and 5-way panners route the input signal towards the left, right, front, and back depending on the position of the axes within the control box. They do not have gain or trim controls.

Controls

Left-Right and Left-Center-Right Panner Controls

Type

Sets the level at which both the left and right input signals are sent to the output at 0% pan.

When the Pan control is adjusted from 0%, one of the input signals is attenuated and the other input signal is amplified according to the amount of panning applied.

-3dB is the recommended setting. -6dB works well for highly correlated inputs, but causes a 3dB attenuation of uncorrelated inputs at the 50% position.

Trim

Sets the attenuation for the panner's output signals.

Pan

Sets the proportion of the left and right input signals that are sent to the output. As you pan left, the display will show negative numbers. As you pan right, the display will show positive numbers.

Left Gain

Shows the current level of attenuation or amplification being applied to the signal on the left input.

Right Gain

Shows the current level of attenuation or amplification being applied to the signal on the right input.

Center Gain (LCR Only)

Shows the current level of attenuation or amplification being applied to the center output signal

Mute

When activated, silences the output signal on all outputs.

Invert Polarity

Changes the output signal's polarity by 90 degrees.

4 and 5-way Panner Controls and Indicators

Front-Rear

Between the Front and Rear labels there is a grey position indicator. This indicator corresponds the position of the x-axis in the box.

To pan between the front and the rear outputs, click anywhere in the box and hold. While holding, drag the x-axis to the desired position.

As you pan towards the rear, the position value will be negative; as you pan towards the front, it will be positive.

Left-Right

Between the Left and Right labels there is a grey position indicator. This indicator corresponds to the position of the y-axis in the box

To pan between the front and the rear outputs, click anywhere in the box and hold. While holding, drag the y-axis to the desired position.

As you pan towards the left, the position value will be negative; as you pan towards the right, it will be positive.

Device Properties

Number of Outputs

Enter the desired number of outputs.


Meters

Level Meter

Purpose

The Level Meter displays both the current Peak signal level and the current Root Mean Square (RMS) signal level. The RMS meter measures the energy or loudness of a signal and samples the true Root Mean Square signal level. The Peak meter displays the highest energy or loudness level that the input signal reaches. Two hold indicators, RMS Hold and Peak Hold, indicate the maximum levels that were reached over a specified, or infinite, period of time.

This meter is useful for measuring the dynamic range of a signal. The Peak Meter is especially useful when adjusting levels through a signal path to accurately indicate the head-room available.

Controls and Indicators

Level Meter

The meter indicates both the Root-Mean-Squared (RMS) and peak signal levels. Each component of the overall meter is shown below:

Each component is sub-divided into the following two parts:

Hold Indicators

The red bars in the image above show the highest recent samples for each meter and are held for the duration of the RMS Response Time and the Peak Hold Time.

Signal meter

The signal meter column is updated based on the incoming signal strength. It is divided into three color segments:

  • Green indicates that the input level is below the nominal +0dB.

  • Yellow indicates that the signal is reaching the head-room provided between +0dB and +20dB.

  • Red indicates that the level is above +20dB.

RMS Response Time

Sets RMS signal meter averaging time.

Peak Decay Time

Sets the speed of the peak signal meter's drop.

Hold Time

Sets how long the hold indicators will display the maximum signal level before showing a new level based on a new sample.

Infinite Hold

When activated, overrides the Hold Time setting so that the hold indicators show the maximum value of the incoming signal. They will only change if a higher level signal is detected.

Device Properties

Deep Mode

By default, the meter's range is -35dB to +35dB. When Deep Mode is enabled, the range increases to -100dB to +35dB.

Channel Count

Changes the number of meters to be displayed.


Signal Presence

Signal Presence Indicator

Purpose

The Signal Presence Indicator indicates that the Threshold level has been exceeded. The Signal Presence meter samples the Peak signal.

Controls and Indicators

Presence

Lights whenever the peak input signal level exceeds the Threshold value.

Infinite Hold

When activated, overrides the Hold Time setting so that the presence indicator remains lit indefinitely.

Hold Time

Sets how long the signal presence indicator remains lit when the signal drops below the Threshold value.

Threshold

Sets the threshold level above which the signal presence indicator will light.


Mixer-n

Standard Mixer

Purpose

The Standard Mixers in NWare look similar to, and work like, analog audio mixers: each input channel consists of a series of level knobs to control the output mix, and also has mute, solo, and polarity controls, and a fader to set the input level. Like a typical analog mixer, the output channels are found to the right and consist of faders to set the output level and mute and polarity controls.

Mixers can be particularly resource-intensive, so try to choose the smallest mixer you can: a collection of smaller mixers may be more efficient than a single large mixer. The controls from each mixer can be copied out of the smaller mixer into a single large custom mixer control panel for your clients' use.

Controls

Bus Send Level

Each input channel has one Bus Send Level control per output channel. These controls determine how much of the input channel signal is mixed into the associated output.

Note: Mixers with only one output do not have Bus Send Level controls.

Input Invert

Inverts the polarity of the channel input.

Input Solo

Mutes all other inputs which are not also Soloed. If any channel Solo button is engaged, only channels with Solo engaged will remain open.

Input Mute

Mutes the associated channel input.

Note: If Solo is also engaged for the channel, the channel is not actually muted because Solo overrides Mute.

Output Mute

Mutes the associated mixer output.

Note: If Solo is also engaged for the channel, the channel is not actually muted because Solo overrides Mute.

Output Solo

Mutes all other outputs which are not also Soloed. If any channel Solo button is engaged, only channels with Solo engaged will remain open.

Input Level

Sets the level of amplification or attenuation to be applied to the selected input. This determines how loud or soft the input will appear to be in the output mix.

Output Level

Adjusts the final output level from the mixer.

Device Properties

Input Count

Sets the number of input channels in the mixer. Any even integer between 2 and 128 is allowed.

Output Count

Sets the number of output channels in the mixer. Any even integer between 2 and 128 is allowed.


Gain Sharing Automatic Mixer-n

Gain Sharing Automatic Mixer

Purpose

The Gain Sharing Automatic Mixer is used in conferences, teleconferences and boardrooms to assign all the available system gain to the microphone(s) in use. The Gain-Sharing Auto-Mixer improves system performance by:

  • Sharing the available system gain smoothly between all active microphones.

  • Never letting the system get into feedback due to excess gain when multiple microphones are in use. This is even true if the direct outs are used.

  • Being insensitive to high and low frequency noise that will fool other automatic mic mixers.

The Gain-Sharing Automatic Mixer works well in Mix-Minus designs.

How it Works

All inputs start at the Rest Gain setting. The system measures the incoming mid-band speech frequency signal components on all inputs (this reduces the possibility of low or high frequency background noise triggering a gain increase on the input). When an input exceeds the Threshold level, the maximum available gain is applied to that input, while the other inputs are attenuated to the Depth setting to maintain the feedback stability margin.

Part of the reason the Gain Sharing Automatic Mixers work so well is that the mics are never shut off. With no one speaking, all the inputs go to the nominal Rest state gain setting. When someone speaks into a microphone, that input goes to full gain, while the other inputs go to the lower Depth gain setting. Thus no input is ever gated off, and the changes in gain are made smoothly. When more than one mic is in use at the same time, the available gain is shared between the microphones in use.

Inputs/Outputs

You can use one of the Gain Sharing Automixer device presets of 2,4,6,8,12,16, or 32 channels, or you can create a custom device.

Inputs

Any even number of inputs between 2 and 256 is valid. You can also add High-Pass filters and/or expanders to the inputs in the Device Properties.

Outputs

There are two output types in the Gain Sharing Auto Mixer -- regular outputs and Mix outputs. The Mix output is included for your convenience: it gives an easy way of wiring all outputs to the next device or flyoff in the design. If you want to use the Mix Output for all output channels, you can leave the regular outputs unwired. On the other hand, if you want to use independent equalizers on the outputs, you should use the individual outputs. You can hide the Mix output in the Device Properties.

Controls

Mixer Controls

Channel Open Indicator

When lit, shows that the channel is sharing some of the available gain.

Channel Gain Meter

This displays the gain currently being applied to the input signal.

When the Channel Open indicator is green, the meter should show a value of 0dB or above; when the Channel Open indicator is unlit, the meter should show the value that is set on either the Rest Gain or the Depth control, found in the Setup Controls.

Output Mix

Sets the weight of a particular input so it will be louder or quieter in the output mix. Normally all these controls are left set at 0.00 dB. Since these controls are after the gain sharing circuitry, they do not affect how much of the shared gain the input receives.

For example, an input could be set 6 dB above the other inputs on the input level controls, but turned down 6 dB on the output mix.

Do not try to kill an individual input using these controls, since the input will still be taking part in the gain sharing even though it will not be part of the output mix.

Output Gain Level

Sets the amount of amplification or attenuation to be applied to the mix output.

Setup Controls

Depth

Sets the amount of attenuation that is applied to closed channels when one or more channels are open.

Rest Gain

Sets the amount of attenuation that is applied to all channels when no channel is open.

If -3 dB was selected, then there would be little advantage of the automatic mixer over a plain mixer. If -24 dB was selected, then background noise would cause a greater modulation of the gain changes. -12 dB is suggested as a starting setting.

Time Constant

This sets the sample rate for the gain sharing. We suggest starting with a sample rate between 30 and 50 ms. The best setting will be dependent on many environmental factors, and should be determined in the finished system.

Device Properties

Channel Count

The channel count should be the same as the desired number of microphones.

High Pass Filters on Inputs?

Check this box to include high pass filters on each input, which will reduce the amplification of low frequency noise below the speech frequencies.

Expanders on Inputs?

Check this box to include Expanders on each input, which will reduce the influence of room noise on microphone inputs that are not in use.

Include Output Mix?

Check this box if you would like to add a mix output.

Include Link?

Check this box of you would like to link two or more Gain Sharing Auto Mixers together.

Filtered Link?

Check this box if you would like the filter the link output to be attached to another mixer's link input.

Advanced Topic

Linking Gain-Sharing Automatic Mixers

Sometimes you may want to select which role and/or NIONode hosts the Gain-Sharing Auto-Mixer. If necessary, you can also break up larger devices into two or more smaller devices and link them together.

When you add a check mark to the "Include Link" checkbox in Device Properties, one new input and one new output is added to the device's topology.

The links work by forwarding the calculations from one mixer to the next so that the gain-sharing is still updated between devices.

If you have created more than two Gain-Sharing Auto Mixers to be linked, you must add a mixer device to the chain so that all mixer link outputs can be mixed.

Filtered Link

In filtered link mode, the inputs to the mixer come from the outputs of the Side Chain filters on the input channels. The output of the mixer is linked directly into the Auto-Mixer Gate. In non-filtered link mode, the inputs to the mixer come directly from the inputs before the Side Chain filters. The output of the mixer is linked through a Side Chain filter into the Auto-Mixer Gate.

In short:

Input -> Side Chain -> Mixer -> link -> Auto-Mixer Gate

Vs.

Input -> Mixer -> link -> Side Chain -> Auto-Mixer Gate

In the first case the signal on the link has already been filtered, in the second it has not.


Gated Automatic Mixer

Purpose

The Gated Automatic Mixer is designed for panels, board-rooms and other applications where there are numerous microphones though generally only a few are in use at any time. The Gated Automatic Mixer improves system performance in these situations with the following features:

  • Gates out background noise entering the system from inactive microphones.

  • Allows a higher gain before feedback by controlling and compensating for the number of open mics (NOM) in the system.

  • Enforces pecking order through a priority logic mechanism.

Inputs/Outputs

Inputs

There is a single input for each source to be automatically mixed.

Outputs

There is a direct output for each input to the mixer. The gated version of each input is available at these outputs. The last output, labeled "M", is the mixed sum of the gated inputs, attenuated by the NOM compensation factor.

Controls

Individual Channel Controls

Mute

When activated, silences the input signal for the specific channel.

Invert Polarity

Changes the input signal's polarity by 90 degrees.

Solo

Specifies that the channel is to remain open while all others are muted. Any other channel with Solo on will also remain open. Solo overrides the Priority logic.

Level

Sets the input signal level before the gate.

Open Mode buttons

Sets the conditions that will open the channel when the input signal exceeds the channel's Threshold value.

  • Filibuster: Opens only if there is no other channel open.

  • Manual: Always open, regardless of the input signal level.

  • Auto: Opens anytime the input signal exceeds the Threshold level.

  • Priority: Opens only if there is no other channel with higher priority already open.

Input Priority Level

Used in priority mode, sets a priority for each input channel.

Input Open Indicator

Shows that the channel's gate is open.

Input Hold Time

Sets how long the gate will remain open after the input signal falls below the Threshold Level.

Threshold

Specifies the input signal above which the gate will open.

Hysteresis

Lowers the Threshold Level so that the gate closes only when the signal drops off.

When Hysteresis is set to 0dB, the gate will open when the signal exceeds the Threshold level and will close when the signal falls below the Threshold level. By adding a few dB of Hysteresis, the gate will only close again once the signal drops well below the Threshold value.

When correctly set, Hysteresis ensures that a speaker whose voice gets louder and quieter does not cause the channel to close unnecessarily.

Gate Controls

Background Percentage

Sets how much to gradually increase the Threshold setting by when the overall volume of the inputs into the mixer increases.

This prevents gates from opening unintentionally as the level of background noise received by the mixer increases.

Gate Depth

Specifies the attenuation provided by the gate when in its closed state.

NOM Controls

Last Mic On

This switch holds the last microphone on, even if the signal level falls below the threshold point. It will remain on until another input's signal level is higher than the threshold point, at which time, that microphone will stay on until the next microphone's signal level is higher than the threshold point, etc.

NOM

Indicates the number of microphone channels currently open.

NOM Linear button

Sets the type of attenuation applied as more mixer channels open:

  • Exponential: The output is attenuated by the amount specified by the NOM Attenuation Setup control each time the Number of Open Mics doubles. The output attenuation is adjusted in fractional Attenuation Steps as single channels open and close. The exponential response produces an optimally high gain before feedback for all possible open mic counts.

  • Linear: The output is attenuated by the amount specified by the NOM Attenuation Step control for each open channel beyond the first.

Both options help prevent feedback in a system as well as keeping the overall sound level reasonable when several participants speak simultaneously.

NOM Response

Determines how quickly the NOM attenuation is applied at the output in response to a change in the Number of Open Microphones.

NOM Gain Step

Sets the amount of gain by which all inputs will be attenuated when each single additional microphone is added.

NOM Minimum Gain

Sets the lowest gain value for the microphones. Any microphones added after this level has been reached will not cause the system to change the gain on the open microphones.

Gain Meter

Indicates the attenuation currently applied at the output due to the current Number of Open Microphones and the current NOM Mode and NOM Attenuation Setup settings.

Output Controls

Mute

The Mute button mutes the output signal. Commands are not sent when Mute is on.

Invert Polarity

Changes the input signal's polarity by 90 degrees.

Output Level

Controls the output level from the mixer by reducing all contributions to the mix bus.

Functional Diagram

Schematic for a 2 input Automatic Mixer, which is a combination of a mixer, gates and priority logic.

Device Properties

Channel Count

Sets the number of channels in the mixer. The maximum is 64.


Sparse Mixer

Purpose

Sparse mixers provide an easy way of mixing two or more inputs on any output. Sparse Mixers consume fewer DSP resources than Standard Mixers and also allow you to create a mix-minus variant.

Mixers can be particularly resource-intensive, so try to choose the smallest mixer you can: a collection of smaller mixers may be more efficient than a single large mixer. The controls from each mixer can be copied out of the smaller mixer into a single large custom mixer control panel for your clients' use.

Controls

Input Select drop-down list

Select the inputs to be mixed into the output channel using the drop-down lists.

Input Gain Level

Sets the level of amplification or attenuation to be applied to the selected input. This determines how loud or soft the input will appear to be in the output mix.

Output Gain fader and indicator

Adjusts the final output level from the mixer. The box at the bottom of the output channel shows the current output gain.

Mute

Mutes the input on the selected channel.

Invert Polarity

When activated, inverts the output signal's polarity by 90 degrees.

Device Properties

Input Count

Sets the number of input channels in the mixer. Any even integer between 2 and 128 is allowed.

Mix Count

Sets the maximum number of channels to be mixed on each output. Any even integer between 2 and 128 is allowed.

Output Count

Sets the number of output channels in the mixer. Any even integer between 2 and 128 is allowed.

Mix Minus

Sets each output channel so that the corresponding input channel is removed from the mix. For example, with Mix Minus enabled, output 1 would not have input 1 in its mix.


Feedback Ferret

Using the Feedback Ferret™

Summary

The Feedback Ferret is an automatic feedback eliminator.

Use of the Device

Step 1

Upon startup, the Ferret’s 16 notch filters are initialized to pass the audio unaffected. As the Ferret analyzes the audio and detects a potential feedback condition, it assigns a notch filter. Filter 16 is the first filter assigned with an attenuation of 3 dB centered at the trouble frequency. If more attenuation is required, the filter depth will be progressively increased until the condition is resolved or maximum attenuation is reached. If the feedback is momentary, the filter will be slowly released in .1 dB steps until it either recurs or the filter response is returned to flat and is available for redeployment at the next emergency situation. If the filter depth is repeatedly increased at the same frequency, the filter will be “locked” at this frequency and from this point on will not be slowly released until there is a recompile of “Filter Reset”. The filter recovery feature insures that the system uses filters only when needed and thus preserving maximum system fidelity.

Step 2

Feedback control devices are typically used on the audio paths from the mixer to the Power Amps. This was mostly a system cost consideration and the Ferret works great here. In addition, the software flexibility of the Ferret within MediaMatrix allows the Ferret to be placed effectively in many new places. Dedicating a Ferret to a single troublesome lavaliere mic is an excellent insurance policy while minimizing the effect on the overall system sound. In addition, multiple mics can be summed and processed by a single Ferret. For those really cost sensitive applications, the control bussing of the Ferret filters introduces the concept of controlling multiple filter banks with a single Ferret. Are there others? Just think about it…..

Step 3

The controls for the Ferret are minimal, consisting of 2 mode selections, a filter configuration select and “Panic” filter configuration. The Ferret provides all necessary configuration and control of the associated filter banks. No operator control is available for the filters.

Step 4

Panic filters are a special class of filters deployed exclusively by the Peavey Feedback Ferret to address the situation of sudden, uncontrolled full-blast feedback. These filters are dispatched when large amounts of energy are concentrated in a single octave. To deal with this, the Ferret has a 2-step approach. Initially, the ferret detects this potentially dangerous condition and the need to take action. There may not be enough information to accurately place a narrow band notch filter, but something has to be done. The panic filter was designed specifically for this situation. The panic filter is deployed with a bandwidth of 1 octave at the approximate center of the problem. The filter is set aggressively, but to preserve sound fidelity, it is limited to a maximum depth of 6 dB. After the crisis is over, the filter is slowly released at .1 dB increments. If the problem recurs as the filter is released, the feedback will build back slowly and the standard, more accurate filter will be set to “kill” the feedback. The result is immediate response followed up with more accurate long-term control if needed.

Step 5: Panic Threshold

Panic filters are brought in to attack the sudden, unexpected and really loud problems. To do this well, the system designer needs to help the Ferret with the definition of “loud”. This is where the Panic Threshold comes in. For a typical MediaMatrix system, this control should be set just below Nominal operating level (0 dB). If, however; your design requires more of less headroom, the Panic Filter Threshold will need to be adjusted to compensate for your special situation. Setting this threshold too low may cause unnecessary filters to be set during normal program material. This control has no effect until Panic Filters are enabled.

Step 6: Filter Reset

Once filters have been allocated and locked by the Ferret, recompiling the view or pressing the “Filter Reset” button are the only 2 ways to clear them. During system setup and ring-out, the engineer may adjust the Eq of the system and then use the reset button as a way to tell the Ferret to start over. Before doing this, the engineer should make sure that the system gain is well below feedback, otherwise, serious system damage is possible when the filters that were restraining the Feedback Demon are released. After system ring-out, this control should NEVER be pressed. It’s just too dangerous and the possible consequences are too grave (blown speakers and hearing) to allow an operator access to this control. For this reason, we have included an addition “are you sure” level to help prevent inadvertent operation. This control should never appear on the top level of a system view.

Step 7

Slowly bring up the Microphone input gain control. As the system gain approaches feedback, tones or ringing will be heard and quickly killed by the Ferret. As a tone is heard, temporarily stop increasing the gain and allow the Ferret to complete the adjustment of the filters to accurately address the problem mode before going on to the next. Operation of the Ferret can of course be heard, and can also be seen by examining the filter display. During this part of setup, you should practically expect to increase the gain before feedback by 6 to 10 dB. As filters are set, the engineer should monitor the gain and the number of filters used. Setup should be considered finished when either: maximum input gain has been achieved without Feedback, or the Ferret has locked 6 filters, or system gain before feedback has been increased by 10 dB. Filters set during preshow are meant to control dominant room modes. For this reason, if more than 6 filters are needed to obtain the necessary sound level, then you should carefully review your system design looking for system design problems.

Step 8: What to do about Locked Filters.

As mentioned earlier, a recompile will initialize the Feedback control filters to flat. Well then the question is “How do I keep my dominant mode settings that I just used preshow mode to configure?” I’m glad you asked. This brings up one of the most powerful reasons for combining MediaMatrix and the Ferret. The Ferret can be used to determine the correct parametric Eq settings and through the flexibility of MediaMatrix these settings can be transferred to MediaMatrix’s native fixed Parametric Equalizers. Now all of the filters of the Ferret are available to control transient modes that occur as the sound terrain changes. Additionally, if dynamic control is not desired, the Ferret can be used as a diagnostic tool during setup and then to save DSP cycles, it can be removed from the final view, just leaving the Parametric Equalizers.

Warning: Never feed the filter control output from the Ferret to an audio output. This signal is NOT audio and may damage sensitive components if routed to an audio output.

Warning: The Ferret is not intended as an alternative to good system design. With a good system design it can be an effective insurance policy for those unexpected little problems that always crop up when you least expect them. With a poor sound system design, the Ferret will only “band-aid” the problem and you will probably still not be pleased with the overall system performance. The Ferret is just another tool to help you do a better job easier and quicker.


Feedback Ferret Controls

Feedback Ferret™

Purpose

The Feedback Ferret is an anti-feedback device. Once it has been configured, it automatically detects and controls feedback.

Controls

Filter Statistics

Locked Indicator

Indicates that the feedback ferret has detected feedback and is currently attenuating the affected frequency band.

Bandwidth

Shows the width of the frequency band that is being attenuated.

Frequency

Shows which frequency is being attenuated.

Gain

Shows the attenuation level currently being applied to the input signal.

Controls

Mode

Performance

When activated, uses the filters that the feedback ferret has created during the Pre-Show Ringout.

Pre-Show Ringout

When activated, sets up the feedback control filters before Performance mode can be used. To set up the system:

  1. Slowly increase the Microphone's input gain control.

  2. When feedback is detected, stop increasing the gain and allow the Ferret to create the necessary filter.

  3. When you stop hearing signal changes and the Feedback Ferret Filter Statistics area is no longer updating, slowly increase the gain again.

  4. Continue until one of the following occurs:

    • You've reached maximum input gain on the input channel and have feedback.

    • The Feedback Ferret has locked 6 filters.

    • System gain before feedback has been increased by 10 dB.

Filters set during preshow are meant to control dominant room modes. For this reason, if more than 6 filters are needed to obtain the necessary sound level, then you should carefully review your system design looking for system design problems.

Filter Control

Wide Filters

When activated, widens the width of the frequency band to increase the number of frequencies that will be attenuated.

Reset button

The Reset button is a convenient way of clearing the Feedback Ferret's filters when you need to make changes to the system to improve performance. For instance, you may find that extra equalization is needed on one band, and would like to restart the Feedback Ferret once you've changed the equalizer settings. Note: recompiling the project also resets the Feedback Ferret's filters.

Warnings:

  • Only use the Reset button during pre-show ringout.

  • Before using the reset button, make sure that the system gain is well below feedback; otherwise, serious system damage is possible.

  • This control should never appear on the top level of a system view.

Panic Filters

Enable button

When activated, the Feedback Ferret will apply a panic filter (a one-octave bandwidth notch filter at -6dB) when it detects sudden uncontrolled blasts of feedback. The filter's response and release time are preset and based on subsequent samples.

Threshold Level

Sets the panic filter threshold.

Set this control to just below Nominal operating level (0 dB), unless your design requires more or less headroom. Setting this threshold too low may cause unnecessary filters to be set during normal program material.

Device Properties

Band Count

Number of incoming frequency bands to be examined.

Filter Count

Maximum number of filters that the Feedback Ferret can create, if necessary. Requiring more than six filters can sometimes be the sign of a flaw in the system design.

Advanced Topic

The Ferret is not intended as an alternative to good system design. With a good system design it can be an effective insurance policy for those unexpected little problems that always crop up when you least expect them. With a poor sound system design, the Ferret will only “band-aid” the problem and you will probably still not be pleased with the overall system performance. The Ferret is just another tool to help you do a better job easier and quicker.


LCR Matrix

Left-Center-Right (LCR) Matrix

Purpose

The LCR Matrix device was created for those who need to generate three unique channels from stereo (2-channel) source material. This is primarily for speaker clusters with distinct Left, Center and Right channels. The only control is a matrix level control (and presets for it).

Inputs/Outputs

Controls

Matrix Level

Sets the level of left and right input to be mixed into a new center output channel.

When the control is set to the left of center, left will be the dominant input into the center channel. Similarly, when the control is set to the right of center, right will be the dominant input into the center channel.

Matrix Ratio

These buttons are simply copies of the Matrix Level control with pre-defined settings. There are presets for .316, .5 and .79. The ratios refer to the amount of left input in the right input.


Reverb

Purpose

The Reverb adds reverberation to the signal, simulating anything from a small room to a concert hall.

Controls

Reverb Time

Set to 0 for a short reverberation time, to 100 for long.

Damping

Damping adds a low pass filter to the reverb. Set to a high frequency to simulate a space with hard walls, set lower for softer walls. Changing damping varies the reverberation from bright to muffled.

Dry Level

Sets the level of unprocessed audio passed to the output.

Wet Level

Sets the level of processed (reverb) audio passed to the output.

Bypass

When activated, routes the input signal directly to the output channel.


Vocal Eliminator

Purpose

The vocal eliminator is a device for removing vocals from stereo audio. It would typically be used for karaoke applications (sing along with pre-recorded accompaniment music). The technique for this audio trick is not new and involves using phase cancellation to remove vocals, which are usually recorded with equal level on both Left and Right channels. For this reason, stereo audio is required. Mono recordings or only Left or Right channels will not work.

A Fine Tune control is provided for those instances where the Left and Right channels are not properly time-aligned, such as when a tape head is misaligned. This error in the recording can ruin the whole effect. The Fine Tune is the Delay Time in samples ('z'=Audio Samples). The delay time is expressed in samples to allow the finest control of the delay.

Note: This algorithm will not remove a multi-mic choir from a recording.

Controls

Fine Tune

Adjusts the time-alignment of the Left channel to the Right channel inputs. The Right channel is fixed at 96 Samples ('z') and the Left channel is variable. Normally, you should leave the Fine Tune set to 96.0z, so that both channels are delayed equally. Fine Tune settings lower than 96.0z will delay the Left channel less than the Right channel. Settings higher than 96.0z will delay the Left channel more than the Right channel. For optimum performance, this control should be adjusted for each tape you play though the device. CD sourced audio, although less likely to be misaligned, can still need Fine Tuning.

Bypass

When activated, routes the input signal directly to the output channels (in stereo) without passing through the vocal eliminator.


Basic Router

Purpose

The basic router is a patch-bay: each output can be connected to any single input signal or can be switched off.

Controls

Cross Connect

Selects which input will be sent through the output.

The same input can be used on more than one output, for instance, to send program material to more than one room in a venue, but you cannot use the router to mix inputs on any output, so only one input per output is allowed.

The appearance of the cross-connect depends on the settings selected in Device Properties:

  • The inputs are listed in one column and the outputs are numbered across all the rest (when auto or cross-connect is selected).

The input/output match is set by pressing the numbered button in the output's column.

  • The outputs are listed in one column and the drop-down boxes contain a list of all the input numbers (combo box selected).

The input/output match is set by selecting an input number from the drop-down list.

Mute

When activated, the mute button stops all output on the selected channel.

Device Properties

Input Count

Select the number of device inputs

Output Count

Select the number of device outputs

Allow Off State?

Sets whether the output can be switched off by de-selecting the current input or by selecting an off button.

Control Panel Style

Determines the method of setting the inputs to be used for each output.

Auto: input/output pairings are set by pressing the correct input number button for small routers, by drop-down for large.

cross-connect: input/output pairings are set by pressing the correct input number button.

Combo box: input/output pairings are set by selecting the correct input number from the list.


Deluxe Router

Purpose

The deluxe router is a patch-bay: each output can be connected to any single input signal or can be switched off. The Deluxe Router provides a graceful switch between two inputs by crossfading or ramping between them, but it consumes more DSP resources than the Basic Router.

Controls

Cross Connect

Selects which input will be sent through the output.

The same input can be used on more than one output, for instance, to send program material to more than one room in a venue, but you cannot use the router to mix inputs on any output, so only one input per output is allowed.

The appearance of the cross-connect depends on the settings selected in Device Properties:

  • The inputs are listed in one column and the outputs are numbered across all the rest (when auto or cross-connect is selected).

The input/output match is set by pressing the numbered button in the output's column.

  • The outputs are listed in one column and the drop-down boxes contain a list of all the input numbers (combo box selected).

The input/output match is set by selecting an input number from the drop-down list.

Router Setup

Type

Sets the type of transition between the inputs. Select either Ramped or Cross-faded.

Time

Sets the time it will take for the router to transition during input changes.

Mute

When activated, the mute button stops all output on the selected channel.

Device Properties

Input Count

Choose between ducker and gate. The controls are the same on both devices.

Output Count

Sets the number of program material inputs to be configured.

Allow Off State?

Sets whether the output can be switched off by de-selecting the current input or by selecting an off button.

Control Panel Style

Determines the method of setting the inputs to be used for each output.

Auto: input/output pairings are set by pressing the correct input number button for small routers, by drop-down for large.

cross-connect: input/output pairings are set by pressing the correct input number button.

Combo box: input/output pairings are set by selecting the correct input number from the list.


Fixed-Point Delay

Purpose

The fixed-point delay delays a fixed point signal by a selected number of milliseconds. Because it is a fixed point delay, you cannot use it with audio signals. it is, however, useful with the PRN Generator/Verifier. For example, you can use it to continually test the NION's delay memory by wiring a PRN generator and Verifier on either side of the delay. Any memory failures will be caught by the verifier.

Controls

Delay

Sets the delay length.

Device Properties

Max Delay

Sets the maximum delay length (in seconds).


PRN Generator-n

Pseudo-Random Noise (PRN) Generator

Purpose

The PRN generator is used to check for signal corruption over an XDAB connection.

How it Works

The PRN generator and PRN verifier work together to test for signal distortion on an XDAB connection. The PRN generator sends pseudo-random noise to the PRN verifier, which shows a summary of the test results.

Device Properties

In Device Properties, you can change the increment and multiplier values.


PRN Verifier-n

Pseudo-Random Noise (PRN) Verifier

Purpose

The PRN verifier is used to check for signal distortion over an XDAB connection.

How it Works

The PRN generator and PRN verifier work together to test for signal distortion on an XDAB connection. The PRN generator sends pseudo-random noise to the PRN verifier, which shows a summary of the test results.

Controls

Failure Count

Displays the sum of the packet loss (the expected packets - received packets) and the packets with bad bits.

Expected

Displays the number of packets that were expected (sent by the PRN Generator). Because the same algorithm is used by both the Generator and the Verifier, the Verifier will always know which packets are expected.

Received

Displays the number of packets that were actually received by the PRN Verifier.

Bad Bits

Displays the number of packets that had bad bits.

Reset

Resets the counters.

Device Properties

In Device Properties, you can change the increment and multiplier values.


Signal Probe

Purpose

The signal probe is used to find audio faults by checking the wires in the project.

How it Works

The signal probe lights when the audio wire it is connected to is part of a valid connection. It can be used either individually or with a scope. For more information on using the signal probe with a scope, see the Advanced heading below.

Using the signal probe

When you've emulated or compiled the project, click on the Gesture mode icon and then open the signal probe control panel.

  1. Click the probe icon — the cursor turns into a signal probe.

  2. Click any wire to check the device ID and whether the output signal is valid.

  3. To release the probe from a wire, click it — the cursor will once again become a signal probe.

To disconnect the probe, click the signal probe icon in its control panel.

Inputs/Outputs

  • 1 output (to be used with a NioNode output along with a scope. See Advanced for more details.)

Controls

Signal Probe

Click on the signal probe to attach the probe to the cursor.

LED

When lit, shows that the current audio connection is valid.

Text

Displays the device ID and port type.

Advanced

If you wish to use a scope in conjunction with the signal probe, use the following procedure:

  1. Attach a scope to a NioNode output.

  2. Use the signal probe as described above.

  3. Listen to the output to identify the problem audio connection.


Custom

Control Operator

Purpose

The Control Operator is designed for your convenience. It allows you to set up mathematical and logical expressions between controls efficiently without using Python scripting.

A Control Operator can perform a number of built-in control processing operations, which are selected in its Device Properties. Some possible operations include: position link, string link, value link, value maximum, value average, position compare, logical OR, and many others.

Inputs and Outputs

  • 1 input (default)

  • 1 output (default)

With most of the operators, only the first output will receive the control. For others, it goes out all or the same value is sent through all, depending on the specific operator.

Operators

Control Operation

Inputs

Outputs

Description

Invert Position

1

1

Output position is the reverse of the input position. Since the position has a range of 0 to 1, the output position is 1 minus the position of the input.

Negate Value

1

1

Output value is the negative of the input value. Note that the output control value will be clamped to remain in range if necessary.

Absolute Value

1

1

Output value is the absolute value of the input value. Clamping of the output control value may occur.

Threshold

1

1

Output position is 1 if the input position is greater than 0.5, 0 otherwise.

Hysteresis

1

1

Output position is either 0 or 1, based on the input position using a threshold with hysteresis. A high output will go low when the input position falls below 0.3; a low output will go high when the input position rises above 0.7.

If used with a noisy input, cleans up the signal. If it's a low signal, it has to go to 75% to go high, it then needs to go about 25% to go low.

Toggle on Rising Edge

1

1

Using a threshold with hysteresis detector as described above, the output position toggles between 0 and 1 on each rising edge of the input.

Toggle on Falling Edge

1

1

Using a threshold with hysteresis detector as described above, the output position toggles between 0 and 1 on each falling edge of the input.

Value Sum

>= 2

1

Output value is the sum of the values of all inputs. Clamping may occur if the range of the output control is insufficient.

Value Product

>= 2

1

Output value is the product of the values of all inputs. Clamping may occur.

Value Average

>= 2

1

Output value is the average of the values of all inputs.

Value Minimum

>= 2

1

Output value is the minimum of the values of all inputs.

Value Maximum

>= 2

1

Output value is the maximum of the values of all inputs.

Value Compare

2

1

Output position is 1 if the value of the first input is greater than or equal to value of the second input, 0 otherwise.

Value Link

1

1

Output value is the input value.

Position Sum

>= 2

1

Output position is the sum of the positions of all inputs. If the sum exceeds 1, it will be clamped to 1.

Position Product

>= 2

1

Output position is the product of the position of all inputs.

Position Average

>= 2

1

Output position is the average of the positions of all inputs.

Position Minimum

>= 2

1

Output position is the minimum of the positions of all inputs.

Position Maximum

>= 2

1

Output position is the maximum of the positions of all inputs.

Position Compare

2

1

Output position is 1 if the position of the first input is greater than or equal to the position of the second input, 0 otherwise.

Position Link

1

1

Output position is position of input.

For the following 6 logical operations, the inputs are treated as Boolean values with the value True if the input position is greater than 0.5 and False otherwise.

Logical AND

>= 2

1

Output position is the logical AND of the Boolean values of the inputs.

Logical NAND

>= 2

1

Output position is the logical NAND of the Boolean values of the inputs. NAND stands for NOT AND, or the complement of the output of an AND operator.

Logical OR

>= 2

1

Output position is the logical OR of the Boolean values of the inputs.

Logical NOR

>= 2

1

Output position is the logical NOR of the Boolean values of the inputs. NOR stands for NOT OR, or the complement of the output of an OR operator.

Logical XOR

>= 2

1

Output position is the logical XOR of the Boolean values of the inputs. For more than 2 inputs, XOR is defined as True if an odd number of inputs are True, False otherwise.

Logical NOT XOR

>= 2

1

Output position is the compliment of the logical XOR of the Boolean values of the inputs.

String Link

1

1

Output string is a copy of the input string.

Multiplexer

2 to 31

1

The input positions are treated as Booleans by comparing to 0.5. The Booleans are treated as the bits of a binary word, with the first input the least significant bit position. The output value is the value of this binary word.

Demultiplexer

2 to 31

The input value is treated as a binary word. Each output position is set to either 0 or 1 based on a bit of that word. The first output is the least significant bit. This is the exact complement to the multiplexer.


Project Linking

Introduction

Project Linking allows controls in one project to be linked to controls in another project. A Project Link Server device is placed in the project that is to be controlled or monitored. A Project Link Client is placed in the project that will be doing the controlling or monitoring. The Project Link Server device is passive; it advertises itself on the network and waits for a Project Link Client to discover it and begin writing and reading control values.

Project Linker Properties

Both of the devices have 4 properties. The use of the term Read and Write is always from the point of view of the Client, even when talking about the Server device.

Project Link ID

This property identifies how the server advertises itself on the network and how the client finds the server. If multiple servers share the same Project Link ID, then it is indeterminate which server a client will connect to. If this property is left blank, then the runtime control in the device is used to determine how the server is advertised and discovered.

Control Write Count

Control Write Count is the number of controls written by the client to the server. Each control is represented by a control node on the Left side of the Project Link Client device and the Right side of the Project Link Server device. One would typically use a generic control in the client project and wire it into the Project Link Client device. In the server project, one would wire out of the corresponding node on the Project Link Server device to the control that needs controlling. Here is an example where both the client and server devices have Control Write Count = 1 and the other properties 0. (Note that typically the client and server would not be in the same project!) There are two dangers with using write controls. First, if multiple clients connect to the same server, they will 'fight' to set the value on a 'last one wins' basis. Second, the control in the server project can no longer be adjusted manually because it is made read-only when connected to the Project Link Server device.

Control Read Count

Control Read Count is the number of controls written by the server and read by the client. Each control is represented by a control node on the right of the Project Link Client device and on the Left of the Project Link Server Device. This would be typically used for metering as shown in the following picture. Both devices have the Control Read Count property set to 1 and the other properties are set to 0.

Control Peer Count

Control Peer Count is the number of controls that can be written by either the client or the server. Each control is represented by a control node on the Left of each device. This is the most useful arrangement because it allows essentially peer grouping between the server and any number of clients. Note that although this behaves like peer grouping, the wire must be attached to the Master node on the control in question, not a peer node.

Notes

  • These three modes can of course be used simultaneously.

  • When Peer Control and Write Control are used at the same time, you must hover over the input nodes on the Project Link Client device while in wire mode to know whether the node is a write control (write_1, write_2 ... write_n) or a peer control (peer_1, peer_2 ... peer_n).

  • When Peer Control and Read control are used at the same time, you must hover over the input nodes on the Project Link Server device to determine if a node is a Read node (read_1, read_2 ... read_n) or a Peer (peer_1, peer_2 ... peer_n).

Examples

Here are some example screen captures to consider. Although the examples, as shown, are legal and do work, you would typically have your linked Client and Server devices on different project files running on the same physical network. These examples are just for illustration. This feature should only be used for linking controls between NIONs in different projects (anything else is a waste of resources). These devices were primarily created for using a Control Manager PC to manage several different NION projects. As a byproduct, they will also work from NIONs to manage up to 8 other NION projects. The limit of a Control Manager is much higher.

Example 1

Client device on "sample 1" controls a fader on the same NION. Normally, the associated Server device is on a separate project on the same network. Note that each project can be recompiled separately without adversely affecting the other. The nodes are obtained by setting the Control Write Count property to 1 (remember that the "write" is from the point of view of the client).

Example 2

Here is an example of monitoring using Project Linking. In this case, the right RMS meter is the real meter, sending its value through the Project Link to the meter on the left which is actually a generic control. We're not actually controlling anything here, just sending values to another project for monitoring. The nodes are obtained by setting the Control Read Count property to 1 (remember that the "read" is from the point of view of the client).

Example 3

This is very similar to Example 1, except that there are two clients. Also the nodes were created with the Control Peer Count, which allows all the devices to act as peers, except with master/slave wiring. Moving any of the controls shown will send the values to any of the other controls. The "real" control still needs to be connected to the Server device.


Peer Status

The Peer Status device is only useful in multi-NION systems. It shows whether or not a given NioNode is able to communicate at the control level with the other Roles in the design. The role names are automatically filled out but it's up to the designer to make sure there are enough slots for all the other roles to fit.


Control Scripter

Purpose

The Control Scripter is a control processing device, like the Control Operator. It allows you to apply a Python script to the output control(s) based on the value of the input control(s).

The Python Scripts must be written before they can be used in this device. You can create or import Python Scripts using the Script page in the Utility Frame. See the Python Control Scripting Reference section for more details on creating Python script functions.

How it works

When you drag the Control Scripter device onto the workspace, you select a Function Name (which assigns the Python Script) and the number of control inputs and outputs to be configured. You then create Slave nodes on each of the controls and wire them as necessary.

When the project is deployed, the script begins processing. It runs in a loop, unless you selected to have it Threaded when you configured the device.

Inputs/Outputs

Inputs

Any number of inputs between 1 and 256 is allowed.

Outputs

Any number of outputs between 1 and 256 is allowed.

Controls

Message

The Message field displays any messages that are included in the code. If there are no messages in the script, this field will be blank.

Error

The Error field displays an error message when a fault occurs in the script.

Advanced Topic

You can set the device to watch the inputs, which will trigger the script anytime a change is noticed. You can also use a blinker to trigger the script.

Also, you can wire a blinker to work with a meter -- wire the blinker into the last input to ensure that it doesn't trigger the device every time the meter changes.


Control Delay

Purpose

The Control Delay performs routine timing and sequencing operations without consuming DSP resources. It can be used to generate:

  • a delayed action

  • a repetitive action

  • complex sequences of events (when multiple devices are linked together)

This timer is based on windows timing; consequently, accuracy of timing intervals is limited. Short delay accuracy is limited to 100 msec and delays from 100 to 3600 seconds are limited to 1-second accuracy.

Controls and Indicators

Trigger button

The trigger button starts the timing sequence. The sequence begins only once for each cycle of the trigger.

Retriggerable button

In default operation, additional triggers are ignored while a timing sequence is in process. If Retriggerable is Active, trigger pulses during the Delay Phase cause the timer to reset to the beginning of the Delay Phase. This allows the timer to be used as a missing pulse detector. Once the timer enters the Pulse Phase, trigger inputs are again ignored until the sequence is completed.

Loop button

Loop Enable causes the timer to immediately trigger and begin cycling between the Delay and Pulse phases. This is basically a digital oscillator with a period equal to Delay Time + Pulse Time. In this condition, the Pulse and Delay LED’s are inverses of each other. This mode of operation is useful for triggering repetitive operations such as a standard information announcement in an airport.

Reset button

Output Reset will terminate any timing sequences that are in process and clear all output LEDs. If "Loop Enable" is set, the output is reset to the beginning of the Delay Phase and Looping is continued.

Delay Time

When the timer is triggered, the timer immediately enters the Delay Phase. The Delay time controls the duration of the Delay Phase.

Pulse Time

After the Delay Phase, the timer begins the Pulse Phase. The length of the Pulse Phase is controlled by the Pulse Time.

Active LED

The Active LED is active when the Control Delay has been triggered and a timing sequence is in process. If Loop Enable is set, Active is on continuously.

Delay LED

The Delay LED is active during the Delay Phase of the timer sequence.

Pulse LED

The Pulse LED is active during the Pulse Phase of the timer sequence.

Device Properties

Device properties allows you to change the maximum delay in seconds and the maximum pulse in seconds. The maximum time you can set is 10800, or 3 hours.


Virtual Assignment

Overview

The Virtual Assignment device allows a single "virtual" control to be selectively grouped to one of many "real" controls. This can be used to create compact user interfaces where two controls (selector and virtual) can be used in place of a bunch of individual controls. As the selector is changed, the virtual control takes on the value of the corresponding real control. When the selected real control changes value, the virtual control is updated. When the virtual control changes, the selected real control is updated.

Ports

Note: Ports can be identified by clicking and hovering over them in Wiring Mode. A "tooltip" will appear showing the port's id, which will be one of the two types shown below.

virtual_1 through virtual_< Number of virtual controls >

Input control ports to be wired to the "virtual" controls. Typically these would be Generic controls configured with the same type and range as the real controls.

real_1 through real_< Number of real controls >

Input control ports to be wired to the "real" controls. These are wired to controls of interest in the design. They should all be the same type and range. They might be wired to corresponding controls across multiple channels of processing, or to corresponding controls across multiple bands of a multi-band device.

Controls

Controls for Virtual Assign with 6 virtual controls

Selector_1 through selector_< Number of virtual controls >

This control selects which real control the corresponding virtual control is grouped with. This is an integer control with the range of 1 through < Number of real controls >


Introduction

Purpose

The Preset is equivalent to the Global Preset device except it only stores the settings of all controls within the block containing the subpreset device.


Global Preset

Global

Purpose

The global preset device allows the current settings of all controls in a view to be saved and restored.

Controls

Load

Loads the preset from the appropriate preset file. If successful, all controls in the view are set to the values specified by the preset file. The result of the load is indicated by the Message field and Loaded indicator.

loaded n

Successful preset load. n controls were set to values as indicated by the preset file. The Loaded indicator lights when the preset load completes with this message.

mismatch

Some controls specified in the preset file no longer exist in the view file. This typically is the result of devices being replaced or deleted without re-saving the preset. The Loaded indicator lights when the preset load completes with this message.

nonexistent

There is no preset file. When a preset is added to the view, it initially does not have a preset file associated with it; before loading a preset, you must save one.

corrupt

The preset file does not appear to contain preset type data. The Loaded indicator does not light when the preset load completes with this message.

read fail, load failed

Catastrophic system failure. The Loaded indicator does not light when the preset load completes with this message.

Loaded

Lights when the preset is successfully loaded. The indicator is extinguished when the view is compiled or a different preset is loaded.

Note: The Loaded Indicator will light if the preset load results in a "mismatch" error.

Message

Displays context sensitive messages based on user interaction with the preset device.

No

Allows you to cancel a Preset Save operation.

Save

Saves the current control settings to the appropriate preset file. The Message Field will first display "You sure?" to which you may answer yes or no by pressing either the Yes or No buttons. If you press the Yes button the preset will be saved and one of the following messages will appear in the message field.

saved n

The preset was saved. The positions of n controls were recorded in the preset file. The Loaded indicator lights when the subpreset save completes with this message.

open error

The preset file could not be opened for write.

The Loaded indicator is not lit when the preset save completes with this message.

write error

Out of disk space. The Loaded indicator is not lit when the preset save completes with this message.

save failed

Catastrophic system failure. The Loaded indicator is not lit when the preset save completes with this message.

Yes

Allows you to confirm a Preset Save operation.


Bump/Dip Panel Graphic Components

Purpose

Dip and Bump Panels are used extensively in the control panels for the devices to produce that chiseled gray relief look. You may wish to carry this look to your system control panels by sprinkling these components in your view.

The Bump Panel is a Graphic Object with a Popout Transparent Block property enabled.

The Dip Panel has a Inset Transparent Block property.


PASHA

PASHA, the MediaMatrix Serial Handling Adapter, is a remote control protocol that provides external serial command and read-back of designer selected controls in a NION project. PASHA is only available via the front RS-232 or the back RS-422/RS-485 serial ports.

The NION version of PASHA does not implement the full protocol as exists in Classic MediaMatrix. The NION version does not support PASHA Change Groups, mainly because the RATC protocols are available from the serial ports and offer enhanced Change Group functionality.

Only one serial port and protocol are allowed on each NioNode in a project.

The serial command protocol used by PASHA is human-readable ASCII, so it is possible to test and debug PASHA control of a specific project using just a Windows-based PC with a spare serial port - NION hardware is not required. When emulating a NioNode using NWare on a PC, the PC's serial ports can simulate the PASHA behavior of a NION as seen in the image below.

You can use COM ports 1-4 to simulate NION PASHA ports

Configuring PASHA

PASHA is configured in the NioNode device within NWare. PASHA is an option in the Serial Control Option of each NioNode device. The other options are RATC1 and RATC2.

Once the NioNode device has been created or modifed with the PASHA option, there will be a Serial PASHA tab inside the block.

The project must be deployed or emulated in order to see and change the settings you see here.

User IDs and Control Groups

PASHA user IDs correspond to 3 character Control Group names in View Files. To specify a user ID for a control in MediaMatrix, open its Control Object Properties page and select the Group tab. Enable Control Grouping and give the control the desired 3 character Group Name. Any alphanumeric character may be used, and the protocol is case sensitive, so "aaa" is different from "AAA". Control Group names of other lengths are possible in MediaMatrix, but only those exactly 3 characters long can be used for serial control via PASHA.

Message Protocol

Messages are ASCII (text) strings. While they contain hexadecimal numbers, the Hex numbers are represented by ASCII (text). Do not send actual hex data, but an ASCII (text) string that represents the value to be sent.

Each message begins with a message-type character and ends (with the exception of the NAK message) with an end-of-message character '.'. Each message to PASHA results in a response message from PASHA. PASHA never sends a message except in response to an external message.

In general, the protocol supports Setting and Getting control values. User IDs are entered into Control Groups which identify a unique control or group of controls. They are specified for use with PASHA with 3 alphanumeric characters. Control values are specified with a 2 digit hexadecimal number, 00 through FF.

Controls are set to a position using the cSETVALUE 'S' command. You can determine the current setting of a control using the cGETVALUE 'G' command. The 256 values that a control can take on correspond to 256 equidistant positions of a control in a MediaMatrix view file. It is possible, and normal in some cases, for the value that a control actually takes on (and returns) to not match the value to which it was set. For instance, in the case of a switch-style control, any value sent between 00 and 7F will result in a return value of 00, and any value sent between 80 and FF will result in a return value of FF. This is because a switch can only be either ON or OFF. If it is ON, it will return a value of FF, while if it is OFF, it will return a value of 00. If commanding a Level with Trim device's Trim control, the dB range of the Trim control (set up by Trim Min. and Trim Max.) is simply divided into 256 possible values. Most devices' gain controls, however, are non-linear, and the math is not so simple. For those controls, tables are included below that map linear control values to dBs of gain, one for a gain control with range of -100dB to +12dB, another for a gain control with a range of -100dB to 0dB. Also included are tables that map control values to Router channel selections for various sized Routers.

For example, to set the channel 2 input gain specified in the demo view file PASHA32.PAV to fully counter clockwise, one first look up the UID specified in the Control Group for the control in question. In this case it is 2iG. Fully counter clockwise is 00 Hex. The cSETVALUE command is 'S' and the end-of-message character is '.'. Putting this all together gives a command string:

S2iG00.

Note that it is not required or desirable to put a carriage return after the end-of-message (EOM) character '.'. PASHA will accept the command when it receives the EOM character. Shortly thereafter it will return the value that the control has been set to:

V2iG00.

To check what a control is set to, you can use the cGETVALUE 'G' command. For example to check the setting of the channel 1 parametric EQ center frequency control, you send:

G1Cf.

Note that since you are requesting a control value, you do not send one. If the control was set to the mid point of its rotation you will get a response:

V1Cf80.

Remember it is possible, and normal in some cases, for the value that a control actually takes on (and returns) to not match the value to which it was set. For instance, in the case of a switch-style control, any value sent between 00 and 7F Hex will result in a return value of 00 Hex, and any value sent between 80 and FF Hex will result in a return value of FF Hex. For example you may have sent to the Channel 2 output mute:

S2oM3E.

However since the switch can only be on or off it will be set to off and return:

V2oM00.

If you send a command using a UID that is not in a Control Group in the view file, PASHA will respond with a cUNLISTEDUID 'U' and repeat back the Uid it does not find in the PASHA.INI file. For example if there was no Control Group hat in the view file, and you sent:

Shat48.

the response would be:

Uhat.

If you send a command using a valid UID (a 3 character Control Group name) in the view file, but one or more of the controls that Control Group references is not found in the view file, PASHA will respond with a cUNLISTEDCID 'C' and repeat back the UID you sent. For example if there was a UID ukc in the view file, and one or more of the controls to which it referred are "dead" or "orphaned", and you sent:

Sukc48.

the response would be:

Cukc.

A "dead" control will occur if the algorithm it is part of did not compile. This will happen if the algorithm is not properly wired. An "orphan" control will occur when the algorithm it was copied from has been deleted from the view file.

If you send an illegal message such as specifying a value as part of a get message, or scramble the order of message components, or there are certain other communications errors, PASHA may respond with a Negative Acknowledge mNAK '?' instead of the normal response. For example if you sent:

GHLP57.

PASHA will respond with:

?

Note this is the only message in the PASHA protocol, which does not end in an end of message character cEOM '.'.

No response will be sent if garbled data or illegal commands are received by PASHA. While PASHA will respond with a Negative Acknowledge mNAK '?' for certain communications errors, you can't be assured that it will always do so.

If there is a serial port error or communications timeout, or if there is a communications failure between PASHA and PADPU, you will get the Fail mFail 'X' message from PASHA as follows:

X.

If you send a valid message to PASHA, but PADPU is either not running, or a view file is not compiled and running, then PASHA will respond with a mNotReady message. For example if you sent:

SDeD48.

but the view file was not compiled, then you would receive back:

R.

C-LIKE MESSAGE DEFINITION

This section defines the message protocol using "C-like" declarations of constants and structures. The convention here is that words beginning with 'c', such as cSETVALUE and cGETVALUE, are character constants. Words beginning with 'f'', such as fUid and fVal, are message field structures. Words beginning with 'm', such as mSetValue and mGetValue, are message structures.

//---- Message constants
const char cSETVALUE = 'S'; // an fType value
const char cGETVALUE = 'G'; // an fType value
const char cVALUE = 'V'; // an fType value
const char cNOTREADY = 'R'; // an fType value
const char cUNLISTEDUID = 'U'; // an fType value
const char cUNLISTEDCID = 'C'; // an fType value
const char cFAIL = 'X'; // an fType value
const char cNAK = '?'; // an fType value
const char cEOM = '.'; // an fEom value

//---- Message fields
/* fType: Message Type. 1 character, denotes the message type. */
struct fType {
char data;
};

/* fUid: User ID. 3 ASCII characters, specifies one of the User IDs entered
 as a Control Group name in the View File. */
struct fUid {
char data[3];
};

/* fVal: Control Value. 2 ASCII hexadecimal digits, specifies a control
 value between 0 and 255. */
struct fVal {
char data[2];
};

/* fEom: End Of Message. 1 character, appears at the end of every message,
 excepting mNak. */
struct fEom {
char data = cEOM;
};

//---- Messages
/* mNak: Negative Acknowledge. Response sent to client upon receipt of
 unintelligible data. This could be due to a communications error or to
 data out of order. An mNak is not necessarily sent for every byte of bad
 data. */
struct mNak {
fType = cNAK;
};

/* mSetValue: Set Control Value. Request sent by a client to set the value
 of a Control Group. */
struct mSetValue {
fType type = cSETVALUE;
fUid id;
fVal val;
fEom eom;
};

/* mGetValue: Get Control Value. Request sent by a client requesting the
 value of a Control Group. */
struct mGetValue {
fType type = cGETVALUE;
fUid id;
fEom eom;
};

/* mValue: Control Value. Response sent to the client acknowledging an
 mGetValue or mSetValue. Note that it is possible, and normal in some cases,
 that the val field will not match the val that was sent in the mSetValue.
 */
struct mValue {
fType type = cVALUE;
fUid id;
fVal val;
fEom eom;
};

/* mUnlistedUid: Unlisted User ID error. Response indicating the fUid specified
 in the mSetValue or mGetValue does not match any Control Group name in
 the currently running View File. */
struct mUnlistedUid {
fType type = cUNLISTEDUID;
fUid id;
fEom eom;
};
/* mUnlistedCID: Unlisted Control ID error. Response indicating a control
 withing the Control Group referenced by the fUid specified in the mSetValue
 or mGetValue was not found in the currently compiled View File. Probably
 means that the Control is "dead" or discarded. */
struct mUnlistedCID {
fType type = cUNLISTEDCID;
fUid id;
fEom eom;
};

/* mNotReady: Not Ready. This means that there is no View File currently
 compiled and running in MediaMatrix. */
struct mNotReady {
fType type = cNOTREADY;
fEom eom;
};

/* mFail: Something Has Failed. This is sent in response to serial port
 errors, communication time-outs, and other internal errors not covered
 directly. */
struct mFail {
fType type = cFAIL;
fEom eom;
};

MESSAGE STRUCTURES QUICK CHART

Message name | Message fields |  |  |  | Style
 | Type | Alphanumeric UID | Hex Value | End of Message
Set Value | S | XXX | XX | . | request
Get Value | G | XXX |  | . | request
Value | V | XXX | XX | . | response
Not Ready | R |  |  | . | response
Unlisted UID | U | XXX |  | . | response
Unlisted CID | C | XXX |  | . | response
Fail | X |  |  | . | response
Nak | ? |  |  |  | response

Real-time Concerns and Flow Control

In general, the serial control throughput into the MediaMatrix computer is dependent upon the number of Windows applications running, and the activity level of those applications. Any application which is actively animating a display on the screen will take time away from other applications, such as PASHA. MediaMatrix itself, if displaying any controls, requires a certain percentage of the processor power to keep those controls updated.

Serial data overruns at the MediaMatrix end can be prevented by having the external serial device wait for the response to each command it sends. If this is not possible, keep in mind that each PASHA service instance can store about 100 unacknowledged commands before overflowing its receive buffer.

Serial data overruns at the external serial device are usually not an issue since PASHA will never speak unless spoken to - the only way to elicit data from PASHA is to send a command.

A Note About Reading Meter Values

It is possible to read MediaMatrix audio meter values with PASHA, but there is an important fact to be aware of when doing so - as an optimization to save CPU cycles, meters are only updated when their controls are being displayed in the user interface. This implies that you must either have meter child windows open on the screen, or one control from each of the meters of interest must be copied out to an open child window or the main View Window. It is preferable to copy out a non-changing control, such as the Meter Time Constant, rather than the meter control itself, to save the user interface the burden of continuously updating the display. If having these controls visible to the user is a problem, they may be rendered invisible by manipulating their Control Object Properties (turn off the following check boxes: Text, Block, Bitmap and Style). Once you make a Control Object invisible it may be very difficult to find again unless you also check Fix Size and give it some nominal size, such as 6 by 6.

A numeric display of the peak hold value is not provided in the meter devices even though the algorithm calculates it. To read a meter's peak hold indicator value, start by copying the numeric control object (the yellow box with the dB value in it). Paste the copy down someplace convenient, perhaps in the meter device. While the new copy is selected, press Alt-Enter to bring up the Control Object Properties window, and select the Id tab. Under Control Id | Control, you will notice the digit entered is 2. If you change this to a 5 and click OK, the new numeric display will now read the peak hold indicator's value. It can then have a Control Group assigned in the usual way.

Serial Control Value to Device Control Value Tables

Some selected mappings of serial control values to device control values follow. You can also generate a table for any other control using a command in the MediaMatrix Terminal window in the following manner - after compiling a View File, twiddle the control of interest, switch to the Terminal window and press the 'v' on your keyboard. This will invoke the (V)alueTable command, which will print the table to the screen. You can also capture the table to a text file or printer by invoking the appropriate Terminal window modes.

Control value to dB's of gain table: -100dB to +12.0dB type control

0x00: -100dB | 0x01: -99.3dB | 0x02: -98.6dB | 0x03: -97.8dB
0x04: -97.1dB | 0x05: -96.4dB | 0x06: -95.7dB | 0x07: -95.0dB
0x08: -94.2dB | 0x09: -93.5dB | 0x0a: -92.8dB | 0x0b: -92.1dB
0x0c: -91.3dB | 0x0d: -90.6dB | 0x0e: -89.9dB | 0x0f: -89.2dB
0x10: -88.5dB | 0x11: -87.7dB | 0x12: -87.0dB | 0x13: -86.3dB
0x14: -85.6dB | 0x15: -84.8dB | 0x16: -84.1dB | 0x17: -83.4dB
0x18: -82.7dB | 0x19: -82.0dB | 0x1a: -81.2dB | 0x1b: -80.5dB
0x1c: -79.8dB | 0x1d: -79.1dB | 0x1e: -78.4dB | 0x1f: -77.6dB
0x20: -76.9dB | 0x21: -76.2dB | 0x22: -75.5dB | 0x23: -74.7dB
0x24: -74.0dB | 0x25: -73.3dB | 0x26: -72.6dB | 0x27: -71.9dB
0x28: -71.1dB | 0x29: -70.4dB | 0x2a: -69.7dB | 0x2b: -69.0dB
0x2c: -68.2dB | 0x2d: -67.5dB | 0x2e: -66.8dB | 0x2f: -66.1dB
0x30: -65.4dB | 0x31: -64.6dB | 0x32: -63.9dB | 0x33: -63.2dB
0x34: -62.5dB | 0x35: -61.8dB | 0x36: -61.0dB | 0x37: -60.3dB
0x38: -59.6dB | 0x39: -58.9dB | 0x3a: -58.1dB | 0x3b: -57.4dB
0x3c: -56.7dB | 0x3d: -56.0dB | 0x3e: -55.3dB | 0x3f: -54.5dB
0x40: -53.8dB | 0x41: -53.1dB | 0x42: -52.4dB | 0x43: -51.7dB
0x44: -50.9dB | 0x45: -50.2dB | 0x46: -49.5dB | 0x47: -48.8dB
0x48: -48.0dB | 0x49: -47.3dB | 0x4a: -46.6dB | 0x4b: -45.9dB
0x4c: -45.2dB | 0x4d: -44.4dB | 0x4e: -43.7dB | 0x4f: -43.0dB
0x50: -42.3dB | 0x51: -41.6dB | 0x52: -40.8dB | 0x53: -40.1dB
0x54: -39.4dB | 0x55: -38.7dB | 0x56: -37.9dB | 0x57: -37.2dB
0x58: -36.5dB | 0x59: -35.8dB | 0x5a: -35.1dB | 0x5b: -34.3dB
0x5c: -33.6dB | 0x5d: -32.9dB | 0x5e: -32.2dB | 0x5f: -31.5dB
0x60: -30.7dB | 0x61: -30.0dB | 0x62: -29.3dB | 0x63: -28.6dB
0x64: -27.8dB | 0x65: -27.1dB | 0x66: -26.4dB | 0x67: -25.7dB
0x68: -25.0dB | 0x69: -24.2dB | 0x6a: -23.5dB | 0x6b: -22.8dB
0x6c: -22.1dB | 0x6d: -21.3dB | 0x6e: -20.6dB | 0x6f: -19.9dB
0x70: -19.2dB | 0x71: -18.5dB | 0x72: -17.7dB | 0x73: -17.0dB
0x74: -16.3dB | 0x75: -15.6dB | 0x76: -14.9dB | 0x77: -14.1dB
0x78: -13.4dB | 0x79: -12.7dB | 0x7a: -12.0dB | 0x7b: -11.2dB
0x7c: -10.5dB | 0x7d: -9.80dB | 0x7e: -9.08dB | 0x7f: -8.36dB
0x80: -7.92dB | 0x81: -7.77dB | 0x82: -7.61dB | 0x83: -7.45dB
0x84: -7.29dB | 0x85: -7.14dB | 0x86: -6.98dB | 0x87: -6.82dB
0x88: -6.67dB | 0x89: -6.51dB | 0x8a: -6.35dB | 0x8b: -6.20dB
0x8c: -6.04dB | 0x8d: -5.88dB | 0x8e: -5.73dB | 0x8f: -5.57dB
0x90: -5.41dB | 0x91: -5.26dB | 0x92: -5.10dB | 0x93: -4.94dB
0x94: -4.78dB | 0x95: -4.63dB | 0x96: -4.47dB | 0x97: -4.31dB
0x98: -4.16dB | 0x99: -4.00dB | 0x9a: -3.84dB | 0x9b: -3.69dB
0x9c: -3.53dB | 0x9d: -3.37dB | 0x9e: -3.22dB | 0x9f: -3.06dB
0xa0: -2.90dB | 0xa1: -2.75dB | 0xa2: -2.59dB | 0xa3: -2.43dB
0xa4: -2.27dB | 0xa5: -2.12dB | 0xa6: -1.96dB | 0xa7: -1.80dB
0xa8: -1.65dB | 0xa9: -1.49dB | 0xaa: -1.33dB | 0xab: -1.18dB
0xac: -1.02dB | 0xad: -0.86dB | 0xae: -0.70dB | 0xaf: -0.55dB
0xb0: -0.39dB | 0xb1: -0.24dB | 0xb2: -0.08dB | 0xb3: +0.08dB
0xb4: +0.24dB | 0xb5: +0.39dB | 0xb6: +0.55dB | 0xb7: +0.71dB
0xb8: +0.86dB | 0xb9: +1.02dB | 0xba: +1.18dB | 0xbb: +1.33dB
0xbc: +1.49dB | 0xbd: +1.65dB | 0xbe: +1.80dB | 0xbf: +1.96dB
0xc0: +2.12dB | 0xc1: +2.27dB | 0xc2: +2.43dB | 0xc3: +2.59dB
0xc4: +2.75dB | 0xc5: +2.90dB | 0xc6: +3.06dB | 0xc7: +3.22dB
0xc8: +3.37dB | 0xc9: +3.53dB | 0xca: +3.69dB | 0xcb: +3.84dB
0xcc: +4.00dB | 0xcd: +4.16dB | 0xce: +4.31dB | 0xcf: +4.47dB
0xd0: +4.63dB | 0xd1: +4.78dB | 0xd2: +4.94dB | 0xd3: +5.10dB
0xd4: +5.26dB | 0xd5: +5.41dB | 0xd6: +5.57dB | 0xd7: +5.73dB
0xd8: +5.88dB | 0xd9: +6.04dB | 0xda: +6.20dB | 0xdb: +6.35dB
0xdc: +6.51dB | 0xdd: +6.67dB | 0xde: +6.82dB | 0xdf: +6.98dB
0xe0: +7.14dB | 0xe1: +7.29dB | 0xe2: +7.45dB | 0xe3: +7.61dB
0xe4: +7.77dB | 0xe5: +7.92dB | 0xe6: +8.08dB | 0xe7: +8.24dB
0xe8: +8.39dB | 0xe9: +8.55dB | 0xea: +8.71dB | 0xeb: +8.86dB
0xec: +9.02dB | 0xed: +9.18dB | 0xee: +9.33dB | 0xef: +9.49dB
0xf0: +9.65dB | 0xf1: +9.80dB | 0xf2: +9.96dB | 0xf3: +10.1dB
0xf4: +10.3dB | 0xf5: +10.4dB | 0xf6: +10.6dB | 0xf7: +10.7dB
0xf8: +10.9dB | 0xf9: +11.1dB | 0xfa: +11.2dB | 0xfb: +11.4dB
0xfc: +11.5dB | 0xfd: +11.7dB | 0xfe: +11.8dB | 0xff: +12.0dB

Control value to dB's of gain table: -100dB to +0.00dB type control

0x00: -100dB | 0x01: -99.4dB | 0x02: -98.7dB | 0x03: -98.1dB
0x04: -97.5dB | 0x05: -96.9dB | 0x06: -96.2dB | 0x07: -95.6dB
0x08: -95.0dB | 0x09: -94.4dB | 0x0a: -93.7dB | 0x0b: -93.1dB
0x0c: -92.5dB | 0x0d: -91.8dB | 0x0e: -91.2dB | 0x0f: -90.6dB
0x10: -90.0dB | 0x11: -89.3dB | 0x12: -88.7dB | 0x13: -88.1dB
0x14: -87.5dB | 0x15: -86.8dB | 0x16: -86.2dB | 0x17: -85.6dB
0x18: -84.9dB | 0x19: -84.3dB | 0x1a: -83.7dB | 0x1b: -83.1dB
0x1c: -82.4dB | 0x1d: -81.8dB | 0x1e: -81.2dB | 0x1f: -80.6dB
0x20: -79.9dB | 0x21: -79.3dB | 0x22: -78.7dB | 0x23: -78.0dB
0x24: -77.4dB | 0x25: -76.8dB | 0x26: -76.2dB | 0x27: -75.5dB
0x28: -74.9dB | 0x29: -74.3dB | 0x2a: -73.6dB | 0x2b: -73.0dB
0x2c: -72.4dB | 0x2d: -71.8dB | 0x2e: -71.1dB | 0x2f: -70.5dB
0x30: -69.9dB | 0x31: -69.3dB | 0x32: -68.6dB | 0x33: -68.0dB
0x34: -67.4dB | 0x35: -66.7dB | 0x36: -66.1dB | 0x37: -65.5dB
0x38: -64.9dB | 0x39: -64.2dB | 0x3a: -63.6dB | 0x3b: -63.0dB
0x3c: -62.4dB | 0x3d: -61.7dB | 0x3e: -61.1dB | 0x3f: -60.5dB
0x40: -59.8dB | 0x41: -59.2dB | 0x42: -58.6dB | 0x43: -58.0dB
0x44: -57.3dB | 0x45: -56.7dB | 0x46: -56.1dB | 0x47: -55.5dB
0x48: -54.8dB | 0x49: -54.2dB | 0x4a: -53.6dB | 0x4b: -52.9dB
0x4c: -52.3dB | 0x4d: -51.7dB | 0x4e: -51.1dB | 0x4f: -50.4dB
0x50: -49.8dB | 0x51: -49.2dB | 0x52: -48.5dB | 0x53: -47.9dB
0x54: -47.3dB | 0x55: -46.7dB | 0x56: -46.0dB | 0x57: -45.4dB
0x58: -44.8dB | 0x59: -44.2dB | 0x5a: -43.5dB | 0x5b: -42.9dB
0x5c: -42.3dB | 0x5d: -41.6dB | 0x5e: -41.0dB | 0x5f: -40.4dB
0x60: -39.8dB | 0x61: -39.1dB | 0x62: -38.5dB | 0x63: -37.9dB
0x64: -37.3dB | 0x65: -36.6dB | 0x66: -36.0dB | 0x67: -35.4dB
0x68: -34.7dB | 0x69: -34.1dB | 0x6a: -33.5dB | 0x6b: -32.9dB
0x6c: -32.2dB | 0x6d: -31.6dB | 0x6e: -31.0dB | 0x6f: -30.4dB
0x70: -29.7dB | 0x71: -29.1dB | 0x72: -28.5dB | 0x73: -27.8dB
0x74: -27.2dB | 0x75: -26.6dB | 0x76: -26.0dB | 0x77: -25.3dB
0x78: -24.7dB | 0x79: -24.1dB | 0x7a: -23.4dB | 0x7b: -22.8dB
0x7c: -22.2dB | 0x7d: -21.6dB | 0x7e: -20.9dB | 0x7f: -20.3dB
0x80: -19.9dB | 0x81: -19.8dB | 0x82: -19.6dB | 0x83: -19.5dB
0x84: -19.3dB | 0x85: -19.1dB | 0x86: -19.0dB | 0x87: -18.8dB
0x88: -18.7dB | 0x89: -18.5dB | 0x8a: -18.4dB | 0x8b: -18.2dB
0x8c:-18.0dB | 0x8d: -17.9dB | 0x8e: -17.7dB | 0x8f: -17.6dB
0x90: -17.4dB | 0x91: -17.3dB | 0x92: -17.1dB | 0x93: -16.9dB
0x98: -16.2dB | 0x99: -16.0dB | 0x9a: -15.8dB | 0x9b: -15.7dB
0x9c: -15.5dB | 0x9d: -15.4dB | 0x9e: -15.2dB | 0x9f: -15.1dB
0xa0: -14.9dB | 0xa1: -14.7dB | 0xa2: -14.6dB | 0xa3: -14.4dB
0xa4: -14.3dB | 0xa5: -14.1dB | 0xa6: -14.0dB | 0xa7: -13.8dB
0xa8: -13.6dB | 0xa9: -13.5dB | 0xaa: -13.3dB | 0xab: -13.2dB
0xac: -13.0dB | 0xad: -12.9dB | 0xae: -12.7dB | 0xaf: -12.5dB
0xb0: -12.4dB | 0xb1: -12.2dB | 0xb2: -12.1dB | 0xb3: -11.9dB
0xb4: -11.8dB | 0xb5: -11.6dB | 0xb6: -11.5dB | 0xb7: -11.3dB
0xb8: -11.1dB | 0xb9: -11.0dB | 0xba: -10.8dB | 0xbb: -10.7dB
0xbc: -10.5dB | 0xbd: -10.4dB | 0xbe: -10.2dB | 0xbf: -10.0dB
0xc0: -9.88dB | 0xc1: -9.73dB | 0xc2: -9.57dB | 0xc3: -9.41dB
0xc4: -9.25dB | 0xc5: -9.10dB | 0xc6: -8.94dB | 0xc7: -8.78dB
0xc8: -8.63dB | 0xc9: -8.47dB | 0xca: -8.31dB | 0xcb: -8.16dB
0xcc: -8.00dB | 0xcd: -7.84dB | 0xce: -7.69dB | 0xcf: -7.53dB
0xd0: -7.37dB | 0xd1: -7.22dB | 0xd2: -7.06dB | 0xd3: -6.90dB
0xd4: -6.74dB | 0xd5: -6.59dB | 0xd6: -6.43dB | 0xd7: -6.27dB
0xd8: -6.12dB | 0xd9: -5.96dB | 0xda: -5.80dB | 0xdb: -5.65dB
0xdc: -5.49dB | 0xdd: -5.33dB | 0xde: -5.18dB | 0xdf: -5.02dB
0xe0: -4.86dB | 0xe1: -4.71dB | 0xe2: -4.55dB | 0xe3: -4.39dB
0xe4: -4.23dB | 0xe5: -4.08dB | 0xe6: -3.92dB | 0xe7: -3.76dB
0xe8: -3.61dB | 0xe9: -3.45dB | 0xea: -3.29dB | 0xeb: -3.14dB
0xec: -2.98dB | 0xed: -2.82dB | 0xee: -2.67dB | 0xef: -2.51dB
0xf0: -2.35dB | 0xf1: -2.20dB | 0xf2: -2.04dB | 0xf3: -1.88dB
0xf4: -1.72dB | 0xf5: -1.57dB | 0xf6: -1.41dB | 0xf7: -1.25dB
0xf8: -1.10dB | 0xf9: -0.94dB | 0xfa: -0.78dB | 0xfb: -0.63dB
0xfc: -0.47dB | 0xfd: -0.31dB | 0xfe: -0.16dB | 0xff: +0.00dB

Control value to Router input selection table: 1x1 Router

Input | Value Range
Off | 0x00 - 0x7F
1 | 0x80 - 0xFF

Control value to Router input selection table: 2x1 Router

Input | Value Range
Off | 0x00 - 0x3F
1 | 0x40 - 0xBF
2 | 0xC0 - 0xFF

Control value to Router input selection table: 4x1 Router

Input | Value Range
Off | 0x00 - 0x1F
1 | 0x20 - 0x5F
2 | 0x60 - 0x9F
3 | 0xA0 - 0xDF
4 | 0xE0 - 0xFF

Control value to Router input selection table: 8x1 Router

Input | Value Range
Off | 0x00 - 0x0F
1 | 0x10 - 0x2F
2 | 0x30 - 0x4F
3 | 0x50 - 0x6F
4 | 0x70 - 0x8F
5 | 0x90 - 0xAF
6 | 0xB0 - 0xCF
7 | 0xD0 - 0xEF
8 | 0xF0 - 0xFF


RATC Overview

RATC, or Remote Access Terminal Control, is a command-line based protocol that allows a remote client program to set and get the control values in a NION project. The remote client communicates with a project via a TCP network connection to any one of the NioNodes in the project, so RATC is compatible with both local area networks and the Internet. Any number of RATC clients (within reason) may connect simultaneously to any NioNode in the project. The RATC1 or RATC2 service is configured and enabled through the NioNode device properties.

You assign controls to be available to RATC1, RATC2 and/or PASHA with Control Aliases. PASHA only supports 3 character and 4 numeral aliases, but RATC1 and RATC2 support aliases of several dozen characters, including spaces. Remember that only one control in a project can have a particular Control Alias. If you assign another control the same alias, the other control with that alias loses the alias. If you need multiple controls to have control from the same alias, you should assign the alias to one of the controls and use control wiring to connect them within the project.

Type the intended Control Alias in the text box.

You enable RATC communications project-wide in the User Accounts properties area in the File menu as seen below. For more information on this, see the User Accounts topic. This is different from the Telnet option in the config menu on the NION front panel. This property extends to all NioNodes that are members of the project.

Differences Between RATC in Classic MediaMatrix and NION

Classic MediaMatrix supported RATC v0.9 on TCP/IP connections. NION supports this aa newer and more flexible protocol, RATC v2, which can run on either a TCP/IP connection or a serial connection. We refer to them as RATC1 and RATC2.

For backward compatibility, NION supports RATC v1, which is compatible with MediaMatrix’s RATC v0.9. NION also features a version of PASHA that is compatible with the service of the same name on Classic MediaMatrix.

It is recommended that RATC v2, over TCP/IP, be used whenever possible.

One difference between NION external control and MediaMatrix external control is that in NION, the external control services only run while the Project is running. This is a little different than in Classic MediaMatrix, where the control services run whenever the MWare application is running, independent of whether a View file is compiled and running or not.

Using TELNET with RATC

TELNET is a computer industry standard network communications protocol which is generally used to connect remote users to a host computer using a text-based interface. The user can then control certain functions on that host computer. TELNET works over both local area networks and the Internet.

RATC1 can function as a TELNET server. This means that any standard TELNET client program (such as that which ships with Windows NT) may be used to manipulate and monitor Control Group values in MediaMatrix. This is most useful for verifying that things are configured such that a successful RATC connection can be made to the MediaMatrix computer, since it is assumed that a command-line style interface will be enjoyed only by few creaky old UNIX gurus.

To connect a TELNET terminal to RATC1, one simply specifies to the TELNET client program the MediaMatrix computer network name or IP address and the TCP port number that RATC has been assigned in the Remote Services dialog box. The Internet Assigned Numbers Authority port assignment for RATC is 1632, keyword pammratc.

RATC does not echo data input from the client, so it is advised that local echo be enabled on the TELNET client program so that one can see what one is typing while one types it so as to reduce ones typographical error frequency.

Note that the BEL character that precedes each error response from RATC may very well cause a bell sound in your TELNET client computer.

RATC supports only the minimum TELNET protocol, and thus will refuse any and all TELNET option requests coming from a TELNET client program.

Commands and Responses

Each RATC2 command is an ASCII text string terminated with an ASCII CR. Each command results in a response from RATC1. Except during login, RATC1 will send no unsolicited data to a client. Each response from RATC1 is an ASCII text string terminated with both an ASCII CR and NL character. Each response that indicates an error in the input command line is preceded by an ASCII BEL character.

RATC1 commands are not case sensitive, but the password string is case sensitive (as per the MediaMatrix security model). RATC1 commands are, however, presented here with mixed case to improve readability.

Control codes other than CR in the command line are ignored, except for the following two exceptions: ASCII BS (backspace) is supported to make using TELNET more reasonable; and the TELNET option control escape sequence protocol is automatically dealt with (all TELNET option requests are refused by the RATC1 service).

Name | ASCII Name | C++ Name | Decimal Value | Hexadecimal Value
carriage return | CR | \r | 13 | D
newline | NL or LF | \n | 10 | A
alert | BEL | \a | 7 | 7
backspace | BS | \b | 8 | 8

RATC1 commands and responses are designed to be compatible with two use scenarios: computer control with a software application and human control with TELNET. To aid in the text parsing required for computer control, the non-error responses all have a unique first character, and the error responses all have an ASCII BEL character followed by a unique character.

Change Groups

If many Control Alias values are to be monitored by the client software, efficiency is gained by using the Change Group commands. These allow a set of Control Aliases to be queried for value changes with a single command. When a Control Alias is added to the Change Group, it is considered initially 'changed', and a subsequent get command will cause its most current value to be returned. RATC2 also provides the ability to have multiple Change Groups.

At the initial connect, and after each redeploy or re-emulate, there will be no Change Groups because they are cleared between deployments. If there are no Change groups assigned when a Change Group Get command is received, a default change group is created with no controls, so the response would show zero changes. It is not necessary that the client software clear the Change Group before disconnecting - this is done automatically by the NION.


RATC1

RATC1 commands

help Command

Usage

As an aid in the TELNET operation of RATC1, the following command will result in a "helpful" display listing the RATC1 command set

help\r

Response

The help response starts with

{

and the final line of the response is:

}\r\n

as an aid in allowing a computer program to ignore the contents of the help response.

Warning: parsing of the help and list command responses by a software-based client is strongly discouraged since the formats are subject to change.

Possible Error Messages

\aOverflow\r\n

statusGet command

Usage

Gets the state and name of the project running on this NioNode project member.
The client issues:

statusGet\r

Response

RATC1 responds with:

statusIs running "Level 1 Ballrooms"\r\n

If no project is running, you will not be able to connect, so there is no alternative response here (no "stopped or not running" status). Note that the file name is enclosed in quotes to support spaces in the file name. In future versions, we plan to add other states for the second part of the response for other situations.

Possible Error Messages

\aOverflow\r\n

controlGet command

Usage

The controlGet command is used to determine the value of a Control Alias in a running project. For example:

controlGet "Main Gain"\r

Response

On success, RATC1 responds with:

valueIs "Main Gain" +0.00dB 70.0%\r\n

Possible Error Messages

\aBadArgumentCount\r\n

\aOverflow\r\n

\aUnlistedGroup "AliasName"\r\n

In the context of NION, 'UnlistedGroup' refers to the lack of a control with that control alias. In this instance, the term group is used for compatibility purposes with Classic MediaMatrix RATC.

controlSet command

Usage

The controlSet command is used to set the value of an aliased control in a deployed project. For example:

controlSet "Main Gain" -3.4\r

Response

On success, RATC1 responds with:

valueIs "Main Gain" -3.40dB 61.5%\r\n

The Control Alias name is enclosed in quotes to support names with embedded spaces. In fact, the quotes are not required for the command argument if the Control alias has no embedded spaces.

In the response, the first token after the alias name is the current value expressed in the units appropriate to that particular Control Alias. In the response, the second token after the Control Alias name is the current value of the alias expressed as a percentage of the maximum value. This can be thought of as a physical knob position - in this example, the 61.5% knob position corresponds to -3.4dB, and a 100% knob position will correspond to +12dB.

Possible Error Messages

\aBadArgumentCount\r\n

\aOverflow\r\n

\aUnlistedGroup "GroupName"\r\n

In the context of NION, 'UnlistedGroup' refers to the lack of a control with that control alias. In this instance, the term group is used for compatibility purposes with Classic MediaMatrix RATC.

controlList Command

Usage

As an aid in the TELNET operation of RATC1, the following command:

controlList\r

will result in a display listing the current set of Control Alias names.

Response

The list response starts with:

{

and the final line of the response is:

}\r\n

as an aid in allowing a computer program to ignore the contents of the list response. Note that there may be other matching brace characters within the list response.

Warning: parsing of the help and list command responses by a software-based client is strongly discouraged since the formats are subject to change.

Possible Error Messages

\aOverflow\r\n

changeGroupAddControl Command

Usage

A Control Alias is added to the Change Group with the changeGroupAddControl command.

For example:

changeGroupAddControl "Main Gain"\r

Response

On success, RATC1 responds with:

addedToChangeGroup "Main Gain"\r\n

Possible Error Messages

\aBadArgumentCount\r\n

\aOverflow\r\n

\aInvalidChangeGroup

\aUnlistedGroup "GroupName"\r\n

In the context of NION, 'UnlistedGroup' refers to the lack of a control with that control alias. In this instance, the term group is used for compatibility purposes with Classic MediaMatrix RATC.

changeGroupRemoveControl Command

Usage

A Control Alias is removed from the Change Group with the changeGroupRemoveControl command. For example:

changeGroupRemoveControl "Main Gain"\r

Response

On success, RATC1 responds with:

removedFromChangeGroup "Main Gain"\r\n

The above response is issued even if the Control Alias named was not in the Change Group.

Possible Error Messages

\aBadArgumentCount\r\n

\aOverflow\r\n

\aInvalidChangeGroup

\aUnlistedGroup "GroupName"\r\n

In the context of NION, 'UnlistedGroup' refers to the lack of a control with that control alias. In this instance, the term group is used for compatibility purposes with Classic MediaMatrix RATC.

changeGroupClear Command

Usage

The Change Group is cleared of all Control Aliases with the command:

changeGroupClear\r

Response

On success, RATC1 responds with:

clearedChangeGroup\r\n

Possible Error Messages

\aOverflow\r\n

changeGroupGet Command

Usage

The Control Groups in the Change Group are polled for value changes with the command:

changeGroupGet n\r

where n is the number of changes the client wishes to read. If n is not supplied, all values that have changed will be returned. If there are more changed values than are requested, subsequent changeGroupGet commands will return them.

Response

On success, RATC1 responds with the minimum of the number of values that have changed and number of changes that were requested, and then a value for each change. For example:

numberOfChanges 2\r\n

valueIs "Main Gain" -15.2dB 46.1%\r\n

valueIs "Channel1Gain" -20.0dB 50.0%\r\n

In this example, there are two Control Aliases in the Change Group that have changed since the last query. If the command is issued again, with no changes to Control Aliases, or if there are no Control Aliases in the Change Group, the response will be:

numberOfChanges 0\r\n

Possible Error Messages

\aBadArgumentCount\r\n

\aOverflow\r\n

\aNotRunning\r\n

\aInvalidChangeGroup

RATC1 responses

statusIs
valueIs
addedToChangeGroup
removedFromChangeGroup
clearedChangeGroup
numberOfChanges

There are also various error responses.

In addition, the RATC1 login process uses a name prompt, a password prompt, a version statement and a welcome statement.


RATC2

RATCv2 is Telnet compatible, meaning that it is text-based and that is possible to use a Telnet client program to drive it. Each command, with arguments, should be issued followed by a CR and/or LF. Each response is followed by CR/LF. Each command and response is a single token with no spaces, and each command argument or response value is either a single token or is enclosed in double-quotes.

Each command has an abbreviated shortcut formed from the first letter of each word within the command.

RATC2 commands

command | short version | purpose
help | h | display the list of commands
logIn name password | li | log in with username and password
statusGet | sg | report status
keepAlive seconds | ka | disconnect if no activity in n seconds
quietModeEnable | qme | suppress responses from non-query commands
quietModeDisable | qmd | do not suppress responses
controlGet control | cg | get a Control's value and position
controlSet control value | cs | set a Control's value
controlPositionSet control position | cps | set a Control's position (0.00-1.00)
changeGroupControlAdd [group] control | cgca | add a Control to a Change Group
changeGroupControlRemove [group] control | cgcr | remove a Control from a Change Group
changeGroupGet [group] | cgg | get changed values from a Change Group
changeGroupClear [group] | cgc | clear a Change Group (of changed values)
changeGroupSchedule [group] seconds | cgs | schedule recurring Change Group gets

RATC2 responses

statusIs
valueIs
loggedIn
keepAlive
quietModeEnabled
quietModeDisabled
changeGroupControlAdded
changeGroupControlRemoved
changeGroupCleared
changeGroupChanges
changeGroupSchedule

RATC2 error responses

These are all possible error responses. These are covered below in the "Possible Error Messages" sections.

badCommand
badArgumentCount
overflow
unlistedControl
invalidChangeGroup
commandFailed
commandUnsupported
notLoggedIn
loginFailed

In addition, the RATC2 login process does not display a username and password prompt. To login, use the 'li' command.

help Command

Command | help
Shortcut | h
Arguments | none
Availability | always
Purpose | displays a list of commands
Notes | The number of line/commands to expect is given in the first line
Response | a list of the available commands

Usage Example

help\r

or

h\r

Response

RATCv2.0 Help 15
h help : display this help list
li logIn name password : log in with a password
sg statusGet : report status
ka keepAlive seconds : disconnect if no activity in n seconds
qme quietModeEnable : supress responses from non-query commands
qmd quietModeDisable : allow responses from all commands
cl controlList : get the list of available Controls
cg controlGet control : get a Controls value
cs controlSet control value : set a Controls value
cps controlPositionSet control value : set a Controls position (0.00-1.00)
cgca changeGroupControlAdd [group] control : add a Control to a Change Group
cgcr changeGroupControlRemove [group] control : remove a Control from a Change Group
cgg changeGroupGet [group] : get changed values from a Change Group
cgc changeGroupClear [group] : clear a Change Group (of changed values)
cgs changeGroupSchedule [group] seconds : schedule recurring Change Group gets

WARNING: parsing of the help and list command responses by a software-based client is strongly discouraged since the formats are subject to change.

Possible Error Messages

\aOverflow\r\n

login command

Command | logIn
Shortcut | li
Arguments | <username> <password> If password is blank, it can be omitted. If both username and password are blank, both can be omitted.
Availability | always
Purpose | security
Notes | you are not prompted to log on, but must instead explicitly issue the login command. A few commands are available prior to loggin on: help, quietModeEnable, quietModeDisable. If any other command is atempted prior to logging in, the response will be notLoggedIn
Response | loggedIn or loginFailed

Usage Example

If the client's username is 'maintenance' and the password is 'youguessedit', the client should issue:

logIn maintenance youguessedit\r

or

li maintenance youguessedit\r

Response

loggedIn

Possible Error Messages

\aloginFailed\r\n

\aOverflow\r\n

statusGet command

Command | statusGet
Shortcut | sg
Arguments | none
Availability | always
Purpose | get the current state of the system
Response | Something like this: statusIs running "Your Project Here"

Usage Example

The client issues:

statusGet\r

or

sg\r

Response

statusIs running "Level 1 Ballrooms"\r\n

If no project is running, you will not be able to connect, so there is no alternative response here (no "stopped or not running" status). Note that the file name is enclosed in quotes to support spaces in the file name. In future versions, we plan to add other states for the second part of the response for other situations.

Possible Error Messages

\aOverflow\r\n

keepAlive command

Command | keepAlive
Shortcut | ka
Arguments | seconds
Availability | when logged in
Purpose | Starts a watchdog timer, requiring the client to communicate within that period or be disconnected. It is recommended that keepAlive be used to ensure that TCP/IP client connections get closed in the face of network failures (or even just unplugging and pluggin network connections). If the network goes down and the client attempts to communicate, the client will get a timeout and disconnect, reconnecting once the network is restored. The server, however, would normally have no way of knowing that the client gave up on its first connection and reconnected, so server network stack resources consumed over time. keepAlive solves this problem.
Notes | You can disable the watchdog timer with an argument of zero. This command applies to TCP/IP only, not to the serial port.
Response | Something like this: keepAlive 10

Usage Example

The client issues:

keepAlive 120\r

or

ka 120\r

Response

keepAlive 120\r\n

Possible Error Messages

\aOverflow\r\n

\aBadArgumentCount\r\n

\anotLoggedIn\r\n

quietModeEnable command

Command | quietModeEnable
Shortcut | qme
Arguments | none
Availability | always
Purpose | Suppresses the server responses to some of the commands: logIn, controlSet, changeGroupControlAdd, changeGroupControlRemove, changeGroupClear, keepAlive, and quietModeEnable.
Notes | Its not obvious how useful this is, and it departs from the normal client/server relationship somewhat, but evidently some people think they need it..
Response | none!

Usage Example

The client issues:

quietModeEnable\r

or

qme\r

Response

RATC2 does not respond

Possible Error Messages

\aOverflow\r\n

quietModeDisable command

Command | quietModeDisable
Shortcut | qmd
Arguments | none
Availability | always
Purpose | To leave quiet mode, restoring responses to all commands
Response | quietModeDisabled

Usage Example

The client issues:

quietModeDisable\r

or

qmd\r

Response

quietModeDisabled\r\n

Possible Error Messages

\aOverflow\r\n

controlGet command

Command | controlGet
Shortcut | cg
Arguments | control alias
Availability | when logged in
Purpose | To read the current value and position of a control
Notes | This command returns the control alias name, the string value of the control (such as "6.2dB"), and the positional value (0.000 through 1.000). When the control name has spaces, the argument should be enclosed in double-quotes, as in: controlGet "Master Gain"
Response | Something like this: valueIs "Master Gain" -90.0dB 0.100

Usage Example

The client issues:

controlGet "Main Gain"\r

or

cg "Main Gain"\r

The Control Alias name is enclosed in quotes to support names with embedded spaces. In fact, the quotes are not required for the command argument if the Control name has no embedded spaces.

Response

valueIs "Main Gain" 1.99dB 0.864\r\n

Note that the positional scale of 0.864 is on a 0.000 to 1.000 scale, but can be read as 86.4% of the control's range. The first value after the alias name is the exact reading of the control (known as the "string value") and will differ, depending on the control type, however, all responses use this 0.000 to 1.000 scale for the last element of the response.

Possible Error Messages

\aBadArgumentCount\r\n

\anotLoggedIn\r\n

\aUnlistedControl "AliasName"\r\n

\aOverflow\r\n

controlSet command

Command | controlSet
Shortcut | cs
Arguments | control value
Availability | when logged in
Purpose | To set the string value of a control
Notes | Like controlGet, this command returns the Control name, the string value of the Control, and the positional value. When the Control name has spaces, the argument should be enclosed in double-quotes, as in: controlSet "Master Gain" -75
Response | Something like this: valueIs "Master Gain -75.0dB 0.250

Usage Example

The client issues:

controlSet "Main Gain" -3.4\r

or

cs "Main Gain" -3.4\r

The Control Alias name is enclosed in quotes to support names with embedded spaces. In fact, the quotes are not required for the command argument if the Control name has no embedded spaces.

Response

valueIs "Main Gain" -3.50dB 0.818\r\n

In the response, the first token after the alias name is the current value expressed in the units appropriate to that particular control. In the response, the second token after the Control Alias name is the current value of the alias expressed as a percentage of the maximum value expressed as a decimal value between 0 and 1. This can be thought of as a physical knob position - in this example, the 0.615 (61.5%) knob position corresponds to -3.4dB, and a 1.000 (100%) knob position will correspond to +12dB.

Possible Error Messages

\aBadArgumentCount\r\n

\anotLoggedIn\r\n

\aUnlistedControl "AliasName"\r\n

\aOverflow\r\n

controlPositionSet Command

Command | controlPositionSet
Shortcut | cps
Arguments | control position.
Availability | when logged in
Purpose | to set the potional value of a control, corresponding to a "slider position" between 0 and 1. For example, .535 is a position of 53.5%.
Notes | Like controlGet and controlSet, this command returns the control name, the string value and the positional value of the control. When the control alias has spaces, the argument should be enclosed in double-quotes, as in: controlSet "Master Gain" .25
Response | Something like this: valueIs "Master Gain" -75.0dB 0.250

Usage Example

The client issues::

controlPositionSet "Master Gain" .25\r

or

cps "Master Gain" .25\r

Response

valueIs "Master Gain" -75.0dB 0.250\r\n

Possible Error Messages

\aBadArgumentCount\r\n

\anotLoggedIn\r\n

\aOverflow\r\n

controlList Command

Command | controlList
Shortcut | cl
Arguments | none
Availability | when logged in
Purpose | to list controls that can be accessed
Response | presents a list of all control aliases in double-quotes with CR/LF after each

Usage Example

The client issues:

controlList\r

or

cl\r

which results in a response listing the current set of Control Alias names.

Response

If the aliases are: "control1 ... control5", then the response would be:

"control1"\r\n
"control2"\r\n
"control3"\r\n
"control4"\r\n
"control5"\r\n

Warning: parsing of the help and list command responses by a software-based client is strongly discouraged since the formats are subject to change.

Possible Error Messages

\anotLoggedIn\r\n

\aOverflow\r\n

changeGroupControlAdd Command

Command | changeGroupControlAdd
Shortcut | cgca
Arguments | control [group]
Availability | when logged in
Purpose | To add a control to a Change Group. If the Change Group named does not yet exist, it is created.
Notes | The group name argument is optional. If not included, a Change Group named 'default Change Group' will be used.
Response | changeGroupControlAdded

Usage Example

The client issues:

changeGroupControlAdd "Main Gain"\r

or

cgca "Main Gain"\r

Response

changeGroupControlAdded\r\n

Possible Error Messages

\aBadArgumentCount\r\n

\anotLoggedIn\r\n

\aUnlistedControl "AliasName"\r\n

\aOverflow\r\n

changeGroupControlRemove Command

Command | changeGroupControlRemove
Shortcut | cgcr
Arguments | control [group].
Availability | when logged in
Purpose | to remove a control from a Change Group.
Notes | The group name argument is optional. If not included, a Change Group named 'default Change Group' will be used. If the Change Group named does not exist, the response is something like invalidChageGroup "yourBogusGroupName"
Response | changeGroupControlAdded

Usage Example

A Control Alias is removed from the Change Group with the changeGroupRemoveControl command. For example:

changeGroupControlRemove "Main Gain"\r

or

cgcr "Main Gain"\r

Response

changeGroupControlRemoved "Main Gain"\r\n

The above response is issued even if the Control Alias named was not in the Change Group.

Possible Error Messages

\aBadArgumentCount\r\n

\anotLoggedIn\r\n

\aInvalidChangeGroup "yourBogusGroupName"\r\n

\aUnlistedControl "AliasName"\r\n

\aOverflow\r\n

changeGroupClear Command

Command | changeGroupClear
Shortcut | cgc
Arguments | [group].
Availability | when logged in
Purpose | to detroy a Change Group.
Notes | The group name argument is optional. If not included, a Change Group named 'default Change Group' will be used. It is not necessary to remove the controls from a Change Group before destroying it.
Response | changeGroupCleared

Usage Example

The Change Group is cleared of all Control Aliases with the command:

changeGroupClear\r

or

cgc\r

Response

changeGroupCleared\r\n

Possible Error Messages

\aBadArgumentCount\r\n

\anotLoggedIn\r\n

\aInvalidChangeGroup "yourBogusGroupName"\r\n

\aOverflow\r\n

changeGroupGet Command

Command | changeGroupGet
Shortcut | cgg
Arguments | [group]
Availability | when logged in
Purpose | to read the changed values of a Change Group.
Notes | The group name argument is optional. If not included, a Change Group named 'default Change Group' will be used. The number of changes that have occurred is indicated in the first line of the response.
Response | see below

Usage Example

The client issues:

changeGroupGet "Balcony Speaker Overload Indicators Change Group" n\r

or

cgg "Balcony Speaker Overload Indicators Change Group" n\r

where n is the number of changes the client wishes to read. If n is not supplied, all values that have changed will be returned. If there are more changed values than are requested, subsequent changeGroupGet commands will return them.

Response

RATC2 responds with the minimum of the number of values that have changed and number of changes that were requested, and then a value for each change. For example:

changeGroupChanges "Balcony Speaker Overload Indicators Change Group" 2\r\n

valueIs "North 1 OL" on 1.000\r\n

valueIs "North 3 OL" off 0.000\r\n

In this example, there are two Control Aliases in the Change Group that have changed since the last query. If the command is issued again, with no changes to Control Aliases, or if there are no Control Aliases in the Change Group, the response will be:

changeGroupChanges "Balcony Speaker Overload Indicators Change Group" 0\r\n

Possible Error Messages

\aBadArgumentCount\r\n

\aOverflow\r\n

\aNotRunning\r\n

\aInvalidChangeGroup "yourBogusGroupName"\r\n

changeGroupSchedule Command

Command | changeGroupSchedule
Shortcut | cgs
Arguments | [group] seconds
Availability | when logged in
Purpose | To schedule automatic, unsolicited, recurring, changeGroupGets. If any changes have occurred when the periodic timer expires, the server will automatically send a change list, as if changeGroupGet has been called. While this mechanism violates the normal client/server relationship, and isnt normally recommended (what if too many changes occur too quickly for the control system?), it may be useful in reducing network traffic if the control system is polling a very large number of servers and is looking for changes that need to be recognized quickly. Otherwise, reasonable real-time programming practices on the control system side make this command unnecessary.
Notes | The group name argument is optional, and if it is not included, a Change Group named default Change Group will be used. The schedule can be cancelled by calling changeGroupSchedule with an argument of zero. Only one Change Group can be scheduled.
Response | Something like this: changeGroupSchedule Balcony Speaker Overload Indicators 5 Subsequently, changeGroupGet responses will be returned when Controls in the Change Group have changed.

Usage Example

The client issues:

changeGroupSchedule "Balcony Speaker Overload Indicators Change Group" 5\r

or

cgs "Balcony Speaker Overload Indicators Change Group" 5\r

Response

RATC2 responds with the Change Group name and the number of changes that were requested.

changeGroupSchedule "Balcony Speaker Overload Indicators Change Group" 5\r\n

Possible Error Messages

\aBadArgumentCount\r\n

\aOverflow\r\n

\aInvalidChangeGroup "yourBogusGroupName"\r\n


Remote Control

The NION platform is totally built around remote control. NWare itself connects as remote control software (mostly via TCP/IP) to one or dozens of NioNodes. In this topic, we'll refer only to NioNodes (individual NION units), but you should know that ControlNodes (generic term for PC's running the Control Manager application -- a.k.a. ConMan) also support these protocols.

There are several methods of remote control of NioNodes. There are two categories of remote control: Native and External.

Native Control is what you use to set up and control NioNodes directly. In other words, you are using programs specifically designed to configure and control NioNodes.

External Control comprises protocols that you can use to manipulate settings from other control systems or panels.

Native Control

NWare : Design

NWare : Design (or just NWare) is the primary software that you use to design NION projects. Not generally thought of as Remote Control, logging, status, deployment, scripting and all other functions that NioNodes are to perform are configured with NWare.

NWare : Kiosk

NWare : Kiosk is the control-only version of NWare. Kiosk mode utilizes a feature of the NWare GUI engine called Personalities. Kiosk is an alternative personality for NWare. When you install NWare, all the personalities are also installed. The default personality is what we refer to as "NWare : Design", but you don't need to know that for everyday use. To make a shortcut that will open NWare : Kiosk, use the following structure for the Target field of the Shortcut's properties:

"<path to MediaMatrix folder>\NWare\NWare.exe" /personality=nware_kiosk

Note 1: You should replace the "<path to MediaMatrix folder>" with the real path, but make sure to maintain the quotation marks or else Windows will default to using truncated (8 dot 3) naming for running NWare.

Note 2: The Kiosk personality is installed with the full version of NWare, but there is also a separate Kiosk-only download available from mm.peavey.com. Use the Kiosk-only download when you want a user to have access to Kiosk function, but don't want them to have the design components of NWare available. There is no reason to install this alternative version on a PC that already has the full NWare release.

NWare++

NWare++ contains all the functionality of NWare, but adds extra devices specifically for using the SNMP features of Control Manager (or just ConMan, if you like). Since NioNodes don't have the ability to read and write SNMP values, these tools are only useful for designing projects for ControlNodes. Also, there is a ControlNode device for assigning devices to a specific ConMan. It should be used like the NioNode device is used for NIONs. You will see several devices for controlling various SNMP gear, but most likely, especially earlier in the NWare release timeline, you won't find your target SNMP gear listed. In these cases, if we have the MIB file (uncompiled) and a list of what you want to monitor, we can custom build a ControlNode device for you and add to the repertoire available to everyone.

There are no other special tools here for those who aren't using ControlNodes in their projects.

NioNode Web Interface

Each NION has a built-in web server for individual unit status, versions, debugging, box-level account management, etc. This also allows you to easily assign unit time, timezone, name, IP settings, and more. Some features can and should be restricted by changing the 'defaultuser' account permissions from the web interface's User Management section.

The web interface is disabled by default on NioNodes and must be enabled from the Config menu before use. As of this writing, you should go to the Config menu and press the Next button 4 times to get to the following screen:

Change 'WEB' to be enabled and then move to the 'APPLY' area and press the knob. Now you should be able to enter the IP address of the unit into your web browser to get to the web interface. If this doesn't work, you may have IP address problem on either the NioNode or your PC. If you have a proxy server setup in your Internet Options, you may have to create an exception for local IP addresses.

User Manager

User Manager allows you to set up accounts on the specific NioNode unit. You can choose to restrict or enable specific users from deploying projects, updating firmware, entering the user manager, viewing the log files, change network settings, halting or restarting NioNodes or the PIOND program that runs on that unit, etc.

The defaultuser account represents the features that are available to all users without supplying a username and password. We strongly encourage you to disable as many functions from the defaultuser as possible upon completion of an installation, or even before completion. defaultuser cannot be deleted.

The superuser account always has all permissions and should be used by the installer or main administrator of the system. The Superuser account defaults to having no password, but one should be chosen soon after configuring the unit, since the default will soon become common knowledge amongst SI's. superuser cannot be deleted.

The frontpanel account is currently not finished. It will enable or disable certain front panel functions. Currently its only useful function is to set the four-number pass code for the front panel locking feature. However in the RC releases, this must be entered in a unique format that is quirky. This will be improved soon. This user can also not be deleted.

Other Stuff

A neat function that you can see above is the Current Frontpanel View. To see it, you can go to the Special -> Advanced page. This is essentially a "screen capture" of the front panel of the NION, which can be easily saved or copied for use in your documentation for the end user. We have extensively used this feature for our manual and help file.

External Control

Controlling Controls

During runtime, those Controls that have been given a Control Alias by the designer can be read and written by external control systems via a TCP/IP or serial connection. The external control system need connect to only one NioNode or ControlNode in the Project. It is not necessary to know which Node a given Control actually resides on as all Controls with Control Aliases are available on all Nodes. For redundancy, though, a control system designer could arrange for failover to alternate Nodes if the default one it connects to stops responding.

Type the intended Control Alias in the text box.

Three protocols are supported: RATC v1, RATC v2 and PASHA. Each of these protocols is available either through a TCP/IP (network) connection, and/or through a serial connection. RATC protocols have never before been available via a serial interface.

Configuring

The TCP/IP and Serial control services are configured in the NioNode or ControlNode device.

Testing External Control with the Emulator

It is possible, and helpful, to verify and test TCP/IP and serial external control using the NWare Emulator. The thing to keep in mind is that, since the Emulator emulates all NioNodes and ControlNodes on the NWare PC, you can have port conflict errors if your Project has external control enabled on more than one Node. You can, of course, change the ports on the Nodes so that they don’t conflict when in use together on the Emulator. This applies to both TCP/IP ports and serial (COM) ports.

RATC1 and RATC2

RATC, or Remote Access Terminal Control, is a set of command-line based protocols that allows a remote client program to set and get the control values in a compiled and/or deployed project file. The remote client communicates with MediaMatrix via a TCP network connection, so RATC is compatible with both local area networks and the Internet. Any number of RATC clients (within reason) may connect simultaneously to a NION. The RATC1/RATC2 services are configured and enabled through the NioNode device within NWare.

RATC1 is the first generation protocol that was used in Classic frame-based MediaMatrix systems. RATC1 in NION systems is equivalent to what was called RATC in Classic MediaMatrix.

RATC2 is the improved version of RATC that was introduced with the NION platform. Very similar to RATC1, RATC2 introduces shortened commands, and a few extra functions. One of the most exciting change for third-party programmers is the Change Group Scheduling feature, which can be configured to automatically send changed values without being polled.

Although it is possible to use a TELNET style application to control MediaMatrix with RATC, custom software is probably required for real world applications. TELNET is handy for testing your RATC connection.

PASHA

PASHA, the MediaMatrix Serial Handling Adapter, is a remote control protocol that provides external serial command and read-back of any of the controls appearing in a MediaMatrix view file.

PASHA is a lower level and lower performance control than RATC1 or RATC2. It is primarily intended to be driven by programmable serial control devices.

PASHA is only available from the front RS-232 port or the rear RS-422/RS-485 port.


SNMP Control

The MediaMatrix NION series of products support multiple methods of remote control and monitoring. Simple Network Management Protocol is yet another option that provides a standardized (see here) method for monitoring and controlling the NION from third-party systems. SNMP requires just TCP/IP to function. If you can ping a NioNode's IP address, you should be able to access that unit via SNMP v1.

Software Tools

You'll need a tool to do that, since most operating systems don't provide one. We recommend MIB Browser by MG-Soft for basic browsing and light control. Medium level products like Ipswitch's What'sUp Professional can perform custom actions, send emails, create web-based reports on network conditions, uptime and anything else within your NION Project file. Even higher end products, such as Hewlett Packard's OpenView can do this an a whole lot more (but you'll pay a lot more too). All the screenshots in this topic are from MIB Browser.

What's a MIB anyway?

No, it isn't that Will Smith and Tommy Lee Jones movie. In this context, MIB stands for Management Information Base. SNMP is really the protocol that your software, as the client uses to "get" and "set" values from the NioNode. The method used to get and set that information is SNMP. And if you know the correct location for that info, you really don't need the MIB file. However, without that MIB, which could be considered a road-map for human eyes, you may not be able to guess at the location. You will certainly hear the term OID in your SNMP travels. The Object Identifier (OID) is the unique location or address of a specific piece of data. You may only want to read it or you may want to replace the current value with a new value. The MIB file allows us to replace or add understandable (hopefully) English names to guide you through the otherwise all-numeric OIDs. The MIB file was designed alongside the SNMP agent that runs on our hardware.

MIB files use a standardized plain-text format to define the OIDs available on a products SNMP agent (the SNMP "server" if you will). The 'PEAVEY-NION-NIONODE-MIB-V2.my' file (located in the 'NWare\plugins\pion\doc' folder of each installation of NWare) is the "uncompiled" MIB file. We're often asked why we don't just go ahead and compile the MIB for you. The answer is that each SNMP client application utilizes the MIB in a different way. So in every case we've seen, an SNMP client package comes with a special application that can compile any MIB file into the format required for that application's use. Once compiled, you shouldn't have to compile it again (unless the MIB changes). Then you load the compiled MIB file into your client program, enter the TCP/IP address of the NioNode that you want to communicate with and start browsing.

To illustrate how helpful this is, here's a couple of examples. First, you should know that all non-government SNMP OIDs should start with this:

1.3.6.1.4.1

which using a standard RFC1155-SMI MIB (should come with your client) should translate to:

iso(1).org(3).dod(6).internet(1).private(4).enterprises(1)

It's even unlikely that most would know what the upper set meant without the help of the MIB. This could be arranged in a Explorer-like tree to clarify the concept. The OID numbers and now the English descriptions describe how to get to a specific point in the tree.

Adding the compiled NioNode MIB, you will add items below enterprises. Peavey has registered with IANA the enterprise ID 24603. All our OIDs should always be under that number. An exception is our CobraNet products, which fall under the standard CobraNet MIB under the Peak Audio enterprise ID.

For instance you may want to know the mainboard's temperature. you aren't allowed to set the temperature because the original programmer made a decision to make that control read-only so that only the thermometer could update the value. Here's the OID for mainTemp:

so(1).org(3).dod(6).internet(1).private(4).enterprises(1).peavey(24603).nion(1).nionode(1).mainTemp(5)

or graphically:

Remember that to access the value, you don't need the descriptions, you just need to know 1.3.6.1.4.1.24603.1.1.5, but you can see that the description makes everything easier. You can also enter this OID directly into certain programs to have the value polled.

What Can I Access?

Perhaps, it's best to show you everything. Hover your mouse over the different areas for a description of what that item shows.


Hardware Overview

NION Hardware Overview

NION signal-processing is performed by NioNodes, which are 2 rack-unit networked audio processing boxes with four user-pluggable audio input and output cards. Different versions of the NioNode are available.

NION control and management, without signal-processing, is performed by ControlNodes, which are rack-mount computers. Note that a ControlNode is not required in a system, and many control and management tasks can be performed on the NioNodes.

The CAB 4n is a 2 rack-unit CobraNet™ enabled audio input and output box, with four manufacturer-changeable audio cards.

NioNode Hardware Overview

Signal Processing

Up to six Analog Devices 21161N Hammerheads, each running at 400 MFLOPs sustained (600 MFLOPs peak).

Audio Expansion Slots

Each NioNode can be fitted with audio I/O cards that slide into the four rear-facing Expansion Slots. A variety of cards are offered: analog mic/line 8 channel input, analog 8 channel output, analog 4x4, etc., yielding up to 32 channels of local audio I/O per NioNode. The Expansion Slot cards are not hot-swappable.

CobraNet

A standard CM-1 compatible CobraNet interface is available, providing 32 input and 32 output audio channels onto a CobraNet network from each NioNode. Using CobraNet, individual units and XDAB clusters of units can be distributed throughout a facility and exchange dozens, hundreds, or even thousands of high-quality digital audio channels. The use of CobraNet is optional in a Nion system.

XDAB

Clusters of rack-area NioNodes may be interconnected with an XDAB ring for the interchange of 512 channels of redundant, low-latency, floating-point audio within each ring. Each unit has two XDAB ports, marked IN and OUT, which are used to connect units in a physical ring, using shielded CAT-5 cabling. An XDAB cable is limited to 4.5 meters in length. The use of XDAB is optional.

LAN

A standard 10/100BaseT Ethernet LAN port allows NioNodes to be configured, monitored and controlled from Windows™-based PCs. This also allows a standalone network of NioNodes to communicate with one another for seamless system-wide control. A working LAN connection is required for proper operation of a NION system.

Serial and GPIO

Two serial ports, one RS485 and one RS232, are available for external control.

The GPIO port provides signals for fault indication, potentiometers, switches, lights and shaft encoders.

Front Panel User Interface

The NioNode front panel user interface has a monochromatic bit-mapped display, a data-wheel, four function buttons, a soft power button, an attention button/light and various status LEDs. This interface is used for basic configuration tasks, status and error indication, audio metering, and can also be programmed for audio control.


Front Panel

1. IDE Single-color LED indicates activity to/from the internal IDE storage media.

2. CobraNet Single-color LED indicates activity to/from the internal CobraNet audio transport.

3. LAN Single-color LED indicates activity to/from the Ethernet network interface.

4. XDAB Single-color LED indicates activity to/from the XDAB audio expansion bus.

5. Fault Single-color LED indicates muted audio condition.

6. LCD Display Backlit graphical display provides access to system hardware monitoring, configuration and status functionality.

7. Air Vent Air intake vent provides fresh air flow to internal cooling system. Do not block or obstruct this vent. Proper airflow must be maintained for proper operation.

8. ATTN Button includes a red LED that flashes when user response is required. Upon pressing, LCD will then jump directly to the LCD screen that will show the error.

9. Power Button will start the boot up process when in standby mode. When the unit is running, the button will cause the LCD screen to jump directly to the Power menu, where you can choose to Power Down or Reboot. Note that there is an intentional delay after powering off and before the Power button will turn on the unit. This is meant to protect the circuitry by allowing voltages to fully discharge. The integrated LED will not illuminate.

10. Soft Buttons (4) Momentary buttons used in conjunction with the LCD display allow user input and navigation of hardware functionality. The function of each button is indicated on the display text of the LCD display graphic nearest the corresponding button. The integrated LEDs will not illuminate.

11. Data Wheel Continuous action rotary encoder and embedded push-button provide navigation and data entry functionality in conjunction with the LCD display. The function of these controls is dependent on the active function of the LCD display.


Rear Panel

1. Serial Port Female DB-9 panel connector, which provides RS-232 communications for external control protocols. Note that on earlier units this connector in on the front panel.

2. Power Receptacle Flush-mount IEC power receptacle for connecting a compatible IEC power cable (included). Use only the supplied cable or an equivalent international version.

3. Module Bays Housing bays for NION Series expansion cards. Up to 4 Nio Series I/O cards can be installed.

4. XDAB In RJ-45 panel connector accepts a shielded CAT6 data cable for transport of the proprietary NION digital audio input bus.

5. XDAB Out RJ-45 panel connector accepts a shielded CAT6 data cable for transport of the proprietary NION digital audio output bus.

6. GPIO Female DB-25 panel connector provides access to the internal GPIO control functionality.

7. LAN RJ-45 panel connector accepts a CAT5 data cable for data transport to/from the internal network interface. This connection is required on all units for system configuration and inter-unit communications.

8. RS-485/422 Female DB-9 panel connector accepts a standard DB-9 connector (not included) to provide access to the external RS-485 or RS-422 external control protocols.

9. CobraNet Primary RJ-45 panel connector accepts a CAT5 data cable for data transport to/from the integrated CobraNet audio transport network interface.

10 CobraNet Secondary RJ-45 panel connector accepts a CAT5 data cable for data transport to/from the secondary integrated CobraNet audio transport network interface. Note that this port does not provide additional CobraNet capacity and only becomes active in the event that the network connected to the Primary CobraNet port becomes inoperative.

11. Industrial Power Supply with exhaust fan.


NION Manual

NION Hardware Manual v.05

This is the latest version of the NION Hardware Manual. This is the FlashPaper version. You can also open the PDF version of the document which includes a hyperlinked TOC and bookmarks.


Constant Directivity (CD) Horn

Purpose

A constant directivity horn driver has an inherent 6dB/octave high frequency roll-off. This device produces a 6dB/octave boost to compensate.

Controls

The CD Horn device is implemented using a High Shelving Filter. The Level control is fixed at +12dB and is hidden.


High Shelving Filter

Purpose

The High Shelving Filter divides the audio spectrum. Frequency components above the division may be boosted or cut. The transition between the two regions occurs at a fixed 6dB/octave rate. The width of the transition between the shelved and un-shelved is dependent on the magnitude of the boost or cut applied.

Controls

Bypass

The Bypass button bypasses the device.

Frequency

Adjusts the transition frequency of the shelving filter.

Level

This adjusts the level of the high frequency shelf relative to the un-shelved portion of the frequency spectrum.

Note: It is possible to overload the filter if Level is set above +0dB. Such an overload will be indicated by the Overload Indicator.

Overload

Indicates clipping in the filter. Clipping is only possible if the Level control is set above +0dB.

Graphical Frequency Response

Displays the frequency response of the filter. See the EQ Curve Graphics Display documentation for a complete description.

Frequency Response

The response of the High Shelf filter is shown for a Level control setting of +6dB (red) and -6dB (blue) and a Frequency control setting of 1,000Hz.


Low Shelving Filter

Purpose

The Low Shelving Filter behaves like the High Shelving Filter except it allows the low frequency components of the spectrum to be boosted or cut.

Controls

Bypass

The Bypass button bypasses the device.

Frequency

Adjusts the transition frequency of the shelving filter.

Level

This adjusts the level of the low frequency shelf relative to the un-shelved portion of the frequency spectrum.

Note: It is possible to overload the filter if Level is set above +0dB. Such an overload will be indicated by the Overload Indicator.

Overload

Indicates clipping in the filter. Clipping is only possible if the Level control is set above +0dB.

Graphical Frequency Response

Displays the frequency response of the filter. See the EQ Curve Graphics Display documentation for a complete description.

Frequency Response

The response of the Low Shelf filter is shown for a Level control setting of +6dB (red) and -6dB (blue) and a Frequency control setting of 1,000Hz.


Release 1.1.1

Release 1.1.1 (5 October 2005)

This software was not released to customers.

Features

  • Added check boxes to the User Accounts dialog's exported page list to make it more obvious that you have to do something to export a particular page for a user.

Bug Fixes

  • Fixed bug that caused analog input boards at boot to fail to load all the settings of the last default preset.


General Overview

PART ONE - Overview

Welcome to Nion, the premier next-generation audio system creation suite. NION hardware and software allows you to design and implement network-distributed systems composed of audio inputs and outputs, audio processing and control. The systems implemented with Nion can range in size from a few channels to many hundreds of channels, with no change in the hardware or software components used. Nion control and audio streams are distributed using standard Ethernet wiring and switches, and can co-exist with a facility’s other network data.

This overview section is by no means an exhaustive list of features, capabilities or specifications, but is intended instead to communicate some Nion general concepts.


Installation Troubleshooting


Introduction

NWare is installed with a Windows Installer package. Running the installer, which is available from the MediaMatrix web site, will copy all NWare executables and redistributables to your hard drive.

If, for some reason, your installation fails, make sure that the executable completely downloaded from the website. We list the file size from Windows Explorer to the right of the download link. If you cannot run the installer without it crashing, this is most likely the problem. If you repeatedly experience the same problem, delete your Temporary Internet Files from within your browser and try the download again.

Note that for the Beta versions, you must completely uninstall the previous version prior to installing a new version.


Control


Deployment and Emulating