Home NetLinx Modules & Duet Modules

AMX Duet Tango module issues

I have AMX tango audio controller which is connected via serially to a master and six masters controlling it. All six masters have the AMX tango module and they are doing switching of 32 rooms, controlling volume,etc.


Here is the code i use for the volume level, i check which all rooms are selected and then i try to control the volume of all the rooms. But instead of increasing the volume, the tango works for a time but some time, it keeps increasing and decreasing the volume and the audio is chopped.




define_constant
integer nRmCount=32
LEVEL_EVENT[virtualTPMBRAutonomicsSwt,1]
{
local_var integer nloop

for(nloop=nRmCount ; nloop>0 ; nloop--)
{

if ( nRmSource[nloop]==1)
SEND_LEVEL vdvMatrixAudio[nloop],1,level.value

}
}


Now each controller constantly sends commands to the tango which is like this

Line 6646 (20:19:43):: String To [5001:1:7]-[MGPS2,6$0A]
Line 6647 (20:19:43):: String To [5001:1:7]-[MGPS2,5$0A]
Line 6648 (20:19:43):: String To [5001:1:7]-[MGPS2,4$0A]
Line 6649 (20:19:43):: String To [5001:1:7]-[MGPS2,3$0A]
Line 6650 (20:19:43):: String To [5001:1:7]-[MGPS2,2$0A]
Line 6651 (20:19:44):: String To [5001:1:7]-[MGPS2,1$0A]
Line 6652 (20:19:44):: String To [5001:1:7]-[MGPS2,10$0A]
Line 6653 (20:19:44):: String To [5001:1:7]-[MGPS2,9$0A]
Line 6654 (20:19:44):: String To [5001:1:7]-[MGPS2,8$0A]
Line 6655 (20:19:44):: String To [5001:1:7]-[MGPS2,7$0A]
Line 6656 (20:19:44):: String To [5001:1:7]-[MGPS2,6$0A]
Line 6657 (20:19:44):: String To [5001:1:7]-[MGPS2,5$0A]
Line 6658 (20:19:44):: String To [5001:1:7]-[MGPS2,4$0A]
Line 6659 (20:19:44):: String To [5001:1:7]-[MGPS2,3$0A]
Line 6660 (20:19:44):: String To [5001:1:7]-[MGPS2,2$0A]
Line 6661 (20:19:44):: String To [5001:1:7]-[MGPS2,1$0A]
Line 6662 (20:19:45):: String To [5001:1:7]-[MSTP3$0A]
Line 6663 (20:19:45):: String To [5001:1:7]-[MSTP4$0A]
Line 6664 (20:19:45):: String To [5001:1:7]-[MSTP5$0A]
Line 6665 (20:19:45):: String To [5001:1:7]-[MSTP6$0A]
Line 6666 (20:19:45):: String To [5001:1:7]-[MSTP7$0A]
Line 6667 (20:19:45):: String To [5001:1:7]-[MSTP8$0A]
Line 6668 (20:19:45):: String To [5001:1:7]-[MGST1$0A]
Line 6669 (20:19:45):: String To [5001:1:7]-[MGSC1$0A]
Line 6670 (20:19:45):: String To [5001:1:7]-[MGST2$0A]
Line 6671 (20:19:45):: String To [5001:1:7]-[MGSC2$0A]
Line 6672 (20:19:45):: String To [5001:1:7]-[MGST3$0A]
Line 6673 (20:19:45):: String To [5001:1:7]-[MGSC3$0A]
Line 6674 (20:19:45):: String To [5001:1:7]-[MGST4$0A]
Line 6675 (20:19:46):: String To [5001:1:7]-[MGSC4$0A]
Line 6676 (20:19:46):: String To [5001:1:7]-[MGST5$0A]
Line 6677 (20:19:46):: String To [5001:1:7]-[MGSC5$0A]
Line 6678 (20:19:46):: String To [5001:1:7]-[MGST6$0A]
Line 6679 (20:19:46):: String To [5001:1:7]-[MGSC6$0A]
Line 6680 (20:19:46):: String To [5001:1:7]-[MGST7$0A]
Line 6681 (20:19:46):: String To [5001:1:7]-[MGSC7$0A]
Line 6682 (20:19:46):: String To [5001:1:7]-[MGST8$0A]
Line 6683 (20:19:46):: String To [5001:1:7]-[MGSC8$0A]
Line 6684 (20:19:46):: String To [5001:1:7]-[MGST9$0A]
Line 6685 (20:19:47):: String To [5001:1:7]-[MGST9$0A]
Line 6686 (20:19:48):: String To [5001:1:7]-[MGST9$0A]
Line 6687 (20:19:50):: String To [5001:1:7]-[MVER$0A]
Line 6688 (20:19:50):: String To [5001:1:7]-[MGCF$0A]
Line 6689 (20:19:50):: String To [5001:1:7]-[MSTP1$0A]
Line 6690 (20:19:50):: String To [5001:1:7]-[MGPS1,10$0A]
Line 6691 (20:19:50):: String To [5001:1:7]-[MGPS1,9$0A]
Line 6692 (20:19:50):: String To [5001:1:7]-[MGPS1,8$0A]
Line 6693 (20:19:50):: String To [5001:1:7]-[MGPS1,7$0A]
Line 6694 (20:19:50):: String To [5001:1:7]-[MGPS1,6$0A]
Line 6695 (20:19:50):: String To [5001:1:7]-[MGPS1,5$0A]
Line 6696 (20:19:50):: String To [5001:1:7]-[MGPS1,4$0A]
Line 6697 (20:19:50):: String To [5001:1:7]-[MGPS1,3$0A]
Line 6698 (20:19:50):: String To [5001:1:7]-[MGPS1,2$0A]
Line 6699 (20:19:51):: String To [5001:1:7]-[MGPS1,1$0A]
Line 6700 (20:19:51):: String To [5001:1:7]-[MGPS1,10$0A]
Line 6701 (20:19:51):: String To [5001:1:7]-[MGPS1,9$0A]
Line 6702 (20:19:51):: String To [5001:1:7]-[MGPS1,8$0A]
Line 6703 (20:19:51):: String To [5001:1:7]-[MGPS1,7$0A]
Line 6704 (20:19:51):: String To [5001:1:7]-[MGPS1,6$0A]
Line 6705 (20:19:51):: String To [5001:1:7]-[MGPS1,5$0A]
Line 6706 (20:19:51):: String To [5001:1:7]-[MGPS1,4$0A]
Line 6707 (20:19:51):: String To [5001:1:7]-[MGPS1,3$0A]
Line 6708 (20:19:51):: String To [5001:1:7]-[MGPS1,2$0A]
Line 6709 (20:19:51):: String To [5001:1:7]-[MGPS1,1$0A]
Line 6710 (20:19:52):: String To [5001:1:7]-[MSTP2$0A]


Please advise on how to rectify this error

Comments

  • viningvining X Member Posts: 4,356
    You have the comm module running in the master connected to the Tango and the UI module is running in all 6 masters?
  • yan_benyaminyan_benyamin Junior Veteran Posts: 42
    John Paul wrote: »
    All six masters have the AMX tango module and they are doing switching of 32 rooms, controlling volume,etc.

    I think only the master physically connected to the Tango should have the AMX Tango module.
  • John PaulJohn Paul Junior Member Posts: 143
    multiple masters having the duet module

    Right now i see my error, i have amx duet module running in all the 6 controllers, so i guess that why its going offline.

    But how do i put it in one controller and control the tango from all the other 5 controllers??
  • Spire_JeffSpire_Jeff Formerly Caffeinated Programmer Posts: 1,917
    Make sure the processors are set to different SYSTEM numbers. Add entries to the URL list to make the links, but do not create a loop. To avoid loops, I would suggest adding the main processor's IP address to the URL list of each of the 5 other processors. If you create a loop (add Proc 1 to proc 2's URL list and add Proc 2 to Proc 1's URL list) you will cause all sorts of bad things to happen... basically, don't cross the beams :) Use the online tree and Refresh Network Online Tree to verify all processors show up.

    Once you have the processors talking to each other, assuming the main processor with the Tango is system 1, you can declare the virtual device on the other processors like this: vdvTangoZ1 = 41001:1:1. Notice the :1 for the SYSTEM instead of :0. This tells the processor that the device is on system 1. Now, just use send_command vdvTangoZ1,"'Some Command Here'" to control the tango.

    Jeff
  • John PaulJohn Paul Junior Member Posts: 143
    more info

    All processors are set to different system ids. URL list is only fed into one controller.

    Duet module was loaded into all 6 controllers and it was working fine, and then i did the audio presets and then it started behaving weird.

    Now even with just the amx duet module loaded only , the diagonostic tab says
    Line 406 (17:20:54):: DDD.physicalDeviceOffline: 5001:1:7 is offline

    Now if i have just one controller running the module.

    How do i make the other controllers send commands, do level events, also process feedback on it.
  • viningvining X Member Posts: 4,356
    John Paul wrote:
    Now if i have just one controller running the module.

    How do i make the other controllers send commands, do level events, also process feedback on it.
    Ya know I posted a repsonse with that information this morning and now it's gone. Maybe I hit preview and not send and then exited?

    Leave 'AMX_MatrixAudio_MiSeries_MAIN' file as is in the master connected to the device (copy and paste into you main main if that's the case)

    In your other master's take the 'AMX_MatrixAudio_MiSeries_MAIN' file and remove the define device for the IP and serial device for the Tango and then change all your virtual to the correct system number of the master connected to the device. If that master is system 3 then:
    vdvMatrixAudio1=41001:1:3 //virtual device 1
    vdvMatrixAudio2=41001:2:3 //virtual device 2
    vdvMatrixAudio3=41001:3:3 //virtual device 3
    vdvMatrixAudio4=41001:4:3 //virtual device 4
    vdvMatrixAudio5=41001:5:3 //virtual device 5
    etc......
    

    Now remove :
    #if_not_defined IP 
    	DEFINE_MODULE 'AMX_Matrix_MiSeries_Comm_dr1_0_1' comm_code(vdvMatrixAudio1,dvMatrixAudioSerial)
    #else
    	#warn 'Remember to set the IP_Address module property value to match the device IP address.'
    	#warn 'The IP address is changed in the AMX_MatrixAudio_MiSeries_UI.axs by updating the IP constant.'
    	DEFINE_MODULE 'AMX_Matrix_MiSeries_Comm_dr1_0_1' comm_code(vdvMatrixAudio1,dvMatrixAudioIP)
    #end_if
    
    in all masters other than the one connected to the Tango and that should do it.

    I'm assuming each master has it's own TP so define them anyway you want. They could all 10001:1:0 if you want since each UI module will run in each master.
  • John PaulJohn Paul Junior Member Posts: 143
    Volume choppin

    Thanks got that to work, now the volume keeps choppin, i think my level event code needs work

    LEVEL_EVENT[virtualTPMBRAutonomicsSwt,4]
    {
    local_var integer nloop

    for(nloop=nRmCount ; nloop>0 ; nloop--)
    {

    if ( nRmSource[nloop]==1)
    SEND_LEVEL vdvMatrixAudio[nloop],4,level.value

    }
    }

    this is what i am getting from the notifications tab

    Line 4987 (20:46:15):: String From [5001:1:7]-[MVL12,28$0A]
    Line 4988 (20:46:15):: String To [5001:1:7]-[MSVL12,56$0A]
    Line 4989 (20:46:15):: String From [5001:1:7]-[MVL12,56$0A]
    Line 4990 (20:46:15):: String To [5001:1:7]-[MSVL12,42$0A]
    Line 4991 (20:46:15):: String From [5001:1:7]-[MVL12,42$0A]
    Line 4992 (20:46:15):: String To [5001:1:7]-[MSVL12,56$0A]
    Line 4993 (20:46:15):: String From [5001:1:7]-[MVL12,56$0A]
    Line 4994 (20:46:15):: String To [5001:1:7]-[MSVL12,14$0A]
    Line 4995 (20:46:15):: String From [5001:1:7]-[MVL12,14$0A]
    Line 4996 (20:46:15):: String To [5001:1:7]-[MSVL12,42$0A]
    Line 4997 (20:46:15):: String From [5001:1:7]-[MVL12,42$0A]
    Line 4998 (20:46:15):: String To [5001:1:7]-[MSVL12,14$0A]
    Line 4999 (20:46:15):: String From [5001:1:7]-[MVL12,14$0A]
    Line 5000 (20:46:15):: String To [5001:1:7]-[MSVL12,28$0A]
    Line 5001 (20:46:15):: String From [5001:1:7]-[MVL12,28$0A]
    Line 5002 (20:46:15):: String To [5001:1:7]-[MSVL12,42$0A]
    Line 5003 (20:46:15):: String From [5001:1:7]-[MVL12,42$0A]
    Line 5004 (20:46:15):: String To [5001:1:7]-[MSVL12,14$0A]
    Line 5005 (20:46:16):: String From [5001:1:7]-[MVL12,14$0A]
    Line 5006 (20:46:16):: String To [5001:1:7]-[MSVL12,42$0A]
    Line 5007 (20:46:16):: String From [5001:1:7]-[MVL12,42$0A]
    Line 5008 (20:46:16):: String To [5001:1:7]-[MSVL12,28$0A]
    Line 5009 (20:46:16):: String From [5001:1:7]-[MVL12,28$0A]
    Line 5010 (20:46:16):: String To [5001:1:7]-[MSVL12,56$0A]
    Line 5011 (20:46:16):: String From [5001:1:7]-[MVL12,56$0A]
  • viningvining X Member Posts: 4,356
    I only downloaded the Tango module this morning and never actually used it but it appears this posted level event isn't part of the module and is something you added. (Unless I missed something which is possible.)
    LEVEL_EVENT[vdvMatrixAudio,VOL_LVL]
    LEVEL_EVENT[vdvMatrixAudio,PAGE_VOLUME_LVL]
    
    in the level event code original to the UI module you have VOL_LVL which defined in the snapi.axi as a constant of 1 and the PAGE_VOLUME_LVL is defined the the AdvancedEvents.axi bundled with the module as 8.

    In your code your do a send level to level 4 and in the UI mod they're sending to PAGE_VOLUME_LVL (level 8).
    SEND_LEVEL vdvMatrixAudio[nRoomSelected],PAGE_VOLUME_LVL,value
    
    So basically I would see if the module works first and then try and alter it to do any other tricks you might want or need.
  • John PaulJohn Paul Junior Member Posts: 143
    Issue resolved

    LEVEL_EVENT[virtualTPMBRAutonomicsSwt,1]
    {
    local_var integer nloop

    for(nloop=nRmCount ; nloop>0 ; nloop--)
    {

    if ( nRmSource[nloop]==1)
    SEND_LEVEL vdvMatrixAudio[nloop],1,level.value

    }
    }


    this is the level even that i shud ve posted.

    the other one was for treble.

    I got it resolved by commenting out the ui module, the ui module was echoing out level events
Sign In or Register to comment.