Biamp AudiaFlex
Thomas Hayes
Posts: 1,164
Just wondering if anyone has a sample code they have used for this type of equipment. Someone decided to use it for the audio without telling anyone else in the project and I myself have never used this brand of equipment.
0
Comments
The biggest problem in programming the biamp is that you need program in both sides
the AMX and the Biamp.
Do you already have the protocol rs232 protocol, or you going to use the TCP/IP?
If you have a question feel free to ask
I just got dumped into this same situation for a divisible meeting room project.
I dont know the first thing about CobraNet, and this Biamp is
being programmed by another local audio vendor.
I have looked at the system drawings, but I dont see a way to know what individual channels
are doing. I am too used to using the ClearIOne devices programmed in-house.
I am anticipating control via RS232 serial strings.
We do almost 100% Biamp in our installations. I know the engineers probably prefer ClearOne, but controlling either is just as easy.
If you need more help, email me directly. I'd be more than happy to help.
gcummins@sensorytechnologies.com
Agreed, its quite a nice protocol and the open architecture allows you to do some much more funky stuff.
That tag thing is awesome, is it only for level controls or any object?
Any DSP block. If used wisely, you can use instance tags to make your code much more portable from job to job, by using the same tags for common controls such as far end levels, program audio levels, etc in each Biamp file.
Thomas, make sure you grab a copy of the protocol manual from the Biamp website if you haven't already. The protocol's pretty straightforward, but the manual is essential to have on hand to refer to.
HI I have almost the same situation with the Audia Flex but finally all is working. Im still working on how to display the volume from the device on a bargraph.
Any light on this ???
First, as previously mentioned, instance tags rule. Use them always and life will be better.
Second, your life will be further improved if you use the 'D' form of the commands, i.e. 'SETD', 'INCD, 'DECD'... This will give you a verbose, easily-parsable response to the commands you send.
Finally, if your Biamp has a telephone interface, RS232 control is hugely preferred over IP. With RS232, you can use 'command string' symbols in the Biamp program, which can notify you of things like telephone hook state and incoming calls. In principle you can poll for these things using IP control, but I find things run much more smoothly and reliably if you don't have to poll. The other thing about the 'command string' symbol is that it only sends out the COM port of the box (unit) in which it resides, so be aware of that in multi-box Flex systems.
If you're still having trouble with level feedback, speak up and I'll post how I do it.
Hope this helps.
Yes, still need some help with this.
Thanks
and (optionally) send one volume command, then do further volume commands
in the hold: section.
Let's assume you're controlling program volume with a Biamp fader object
(with multiple ganged channels if you like), and its instance tag is
pgm_vol. Or you could use an instance number, but I like tags better.
Here's a sample, parts of which are left as an exercise :^)
This should work as-is for volume control.
To drive a bargraph, I look at what comes back from the Biamp, parsing out
the instance tag in order to know which bargraph to update. After each
successful volume adjustment, it will come back with a string like the
above, ending with a number representing the actual dB level of the fader.
Since this number is to six decimal places, I store my volumes in an array
of floats and drive the bargraphs via a function that converts the <-100.0
to +12.0> range into <0 to 255> for my bargraphs. Alternatively, you could
define your bargraphs to have a range of <-100 to +12> in tpd4 and drive
them directly.
You can experiment with different values of repeat time and step size to
get a speed + smoothness combination that looks good to you.
In real life I will generally have arrays of unit IDs, instance tags and
bargraph addresses as well as the float array for volumes (all in the same
order of course). I also queue my commands rather than do immediate
send_strings as shown, but you get the idea.
Hope this helps.
I'm very new on this, but I'll try to figured out.
Thanks!!!