Amx audio switcher AS8 - Combine Channels/Levels
dbrady
Posts: 30
Hi all,
I'm starting to write code to control an Amx audio switcher(havent programmed one before, usually use third party audio switchers). We'll be getting the switcher in a few days but i'm making a start on the programming now. I'm just wondering if its as simple as combining the volume up/down channels on the touch panel with those on the audioswitcher itself, and similarly with the levels.
Eg. if i press volume up on the touch panel will the volume go up on the switcher without the need to write any code other then the combine_channels statement. Similarly when the volume is raised, this causes the appropriate level on the switcher to change and subsequently the volume bar on the touch panel to change, simply by the two levels being combined?
Cheers
I'm starting to write code to control an Amx audio switcher(havent programmed one before, usually use third party audio switchers). We'll be getting the switcher in a few days but i'm making a start on the programming now. I'm just wondering if its as simple as combining the volume up/down channels on the touch panel with those on the audioswitcher itself, and similarly with the levels.
Eg. if i press volume up on the touch panel will the volume go up on the switcher without the need to write any code other then the combine_channels statement. Similarly when the volume is raised, this causes the appropriate level on the switcher to change and subsequently the volume bar on the touch panel to change, simply by the two levels being combined?
Cheers
0
Comments
Programming with the AS8/AS16 switchers would be a snap if it was as easy as combining levels for control. Unfortunately, the levels on the AS8, AS16, and the AMP8 devices are all display only and hence can not be used for direct control of volume. They can be combined with touchpanel levels for display purposes and the touchpanel level will track level changes made to the switcher or the amp. However, active level control of the switcher or the amp through the touchpanel is not possible through simple level combines.
The AS8/16 and AMP8 devices were made for the Landmark product line and while Netlinx modules for them have been provided, certain functions available under Landmark did not make the transition to Netlinx and direct level control of the device is one of them. Additionally, you will find there are programming techniques on the switchers that need to be avoided (see below).
To program an AS8/16 with a Netlinx system, most people handle touchpanel level events for volume changes and then send the desired volume to the switcher using SEND_COMMAND. Volume can be sent to the switcher in level format (0-255) or in percentage format (0-100). This allows you to set up your bargraph on the touchpanel for 0-100 or 0-255 ranges and then there is no mapping required when sending the volume to the switcher. The AS switchers also support volume ramping but use this with caution. By turning on certain channels on the switcher, you can ramp volume up and down for a mono or stereo zone. While this sounds great and your first thought is to provide a ramp function on the touchpanel, be aware that ramping on the AS switchers is a strenuous task. Ramping one zone stresses the switcher tremendously and trying to ramp two zones (channels) at the same time will almost certainly crash the switcher. I have tried volume ramping on an AS16 and can attest to the fact that it is not handled well and generally crashes the switcher. Also, due to the way the Landmark devices are processed for ONLINE handling, it is entirely possible that if an AS8/16 switcher crashes, it may not come back ONLINE properly until the switcher is powered off/on or the Master is rebooted.
There is a Tech Note that covers many of these limitations on the AMX web site. I generally avoid ramping volume on the AS switchers and use the SEND_COMMAND technique to make volume changes as requested from a touchpanel or a DMS keypad (the DMS keypad is another of the Landmark devices that does not support direct level control under Netlinx).
See the Tech Note 561 for more information and also consult the Module Notes for the AS8/AS16 switcher Netlinx module for more information. Wish the news was better -- hope the information was useful.
Reese
Cheers
I am very hopeful that these pieces are on the chopping block at InfoComm. I have done quite a few in NetLinx, and the limitations sum to a challenging device all around. Not to mention "Music zones can't do the fancy volume control" (active bargraph).
I have a TPD4 & code that might help for multiple switchers, if interested.
P.S. Don't let the ramp UP function go out of control for the whole house. Sort of like crossing the streams in Ghostbusters. Important safety tip....
Bill Ravenel
If you want direct manipulation of the volume via your bargraph instead of using up/down buttons, simply make a LEVEL_EVENT tied to the bargraph that sends the level to the switcher with the same SL command. The only drawback to this in my mind is that you can't always get proper feedback without creating a loop. You can set the volume to whatever your level has moved to, but if you send it back to the bargraph, it will generate another level event, and the cycle begins. So I usually limit control to up/down buttons.
I also enjoyed the Ghostbusters reference
Jeff
I've pretty much just coded an up and down button for each panel and ramp it using a hold button event. The bargraph is display only as i always use because of the looping DHawthorne pointed out. There'll be no multizone control for this job either so its pretty simple all round. Thanks for all your help.
P.s
wcravenel, there was no touch panel file in the module i downloaded so i'm not quite sure what you mean about inverted feedback, perhaps you have an older download? Thanks for the offer of a code sample but i think i'm ok now.
Cheers
Inverted simply meaning the selection of outbound zone is already determined by the button itself. User does not have to select Off or source first, as in test code attached.
Ie. separate port for a given output zone on a TP, then stacked button events 1 - n to select input:
SEND_COMMAND vdvAS8, "'AI',ITOA(button.input.channel),'O4'"