Home AMX User Forum AMXForums Archive Threads Residential Forum

Level Event MI Matrix Audio

Hi All

Im trying to track the level from each zone for the mi and im not sure how to do this corectly. it says that th UI module controls the MI Series Via level events by the comm module. the level supported by the module is 1 = Volume Level (range 0..255) and i want to due this for each zone. zones are virtual devices starting at vdvmatrixaudio1 .. vdvmatrixaudio16 can some one please help thanks.

Comments

  • ericmedleyericmedley Posts: 4,177
    I don't have the module in front of me and I'm on a Mac right now. So, bear with me if I don't get the details correct. but, I've done a bunch of matrix so I think I can wing it for you.

    the idea is that the zones of the matrix are represented in the different devices.

    So,
    zone 1=vdvmatrixaudio1
    zpme 2=vdvmatrixaudio2
    etc..
    zone 16=vdvmatrixaudio16

    If the devices are set up like this...

    DEFINE_DEVICE
    vdvmatrixaudio1 = 41001:01:0
    vdvmatrixaudio2 = 41002:01:0
    vdvmatrixaudio3 = 44003:01:0
    ETC....
    vdvmatrixaudio16 = 44016:01:0

    You can get the device number in the level_events and send it to the appropriate fader on the TP.

    a little math will get you there.

    esentially nZone="device number coming in"- 41000

    and.

    send_level dvTP_1,nZone,nIncoming_Level

    so, zone 1 level gets sent to TP fader #1
    zone 2 to TP level #2
    etc...

    If the device stack is ports, then just apply the same logic to the port numbers.

    DEFINE_DEVICE
    vdvmatrixaudio1 = 41001:01:0
    vdvmatrixaudio2 = 41001:02:0
    vdvmatrixaudio3 = 44001:03:0
    ETC....
    vdvmatrixaudio16 = 44001:16:0

    Hope that helps.
    e
  • I understand your logic but im still a little confused as how to lay this out.
    as follows the zones are layed out like this

    define_device

    vdvMatrixAudio1 = 41005:1:0
    vdvMatrixAudio2 = 41005:2:0
    vdvMatrixAudio3 = 41005:3:0
    ....
    vdvMatrixAudio4 = 41005:16:0

    if so can u kind of show me a structure on this

    Thanks
  • ericmedleyericmedley Posts: 4,177
    the variable nZone will be populated with the port number of which ever device sent the level. So, if zone 3 sent the level, nZone will equal '3'. That's what LEVEL.INPUT.DEVICE.PORT reports back. You can get a complete list of the various event handlers in the help file. In Netlinx Studio, highlight LEVEL_EVENT and hit F1. It'll take you to the correct section of the help file.

    I happened to store the incoming level value in the array CURRENT_VOLUME[] and then send that value to the Touch Panel's fader. In my example here, the volume faders are numbered 1-16, so no math is needed.

    Also, I used the event stack in this example. I would put all the devices in a DEV array in real life. But this is just an example.

    LEVEL_EVENT[vdvmatrixaudio1]
    LEVEL_EVENT[vdvmatrixaudio2]
    LEVEL_EVENT[vdvmatrixaudio3]
    etc....
    LEVEL_EVENT[vdvmatrixaudio16]
    {
    nZONE=LEVEL.INPUT.DEVICE.PORT
    CURRENT_VOLUME[nZONE]=LEVEL.VALUE
    SEND_LEVEL dev_TP_Master_3,nZONE,CURRENT_VOLUME[nZONE]
    }
    
  • TurnipTruckTurnipTruck Posts: 1,485
    How smooth are the Matrix Audio devices to work with from a programming perspective? I could use a better zone controlling system than I have now. Are source and volume changes easily executed with unsolicited feedback presented?
  • ericmedleyericmedley Posts: 4,177
    How smooth are the Matrix Audio devices to work with from a programming perspective? I could use a better zone controlling system than I have now. Are source and volume changes easily executed with unsolicited feedback presented?


    this falls firmly in the position of 'my opinion'

    While they do a good job with unsolicited feedback and all that, I find them a bit slow. (annoyingly so)

    We tend to put them in when the client needs to trim back the cost of the system. Or, if they are in a situation where we just cannot get control wire to the rooms.

    I'm in Charleston, South Carolina. We do a lot of refirbs in the historic district downtown. (200-300 year old homes) There are very strict guidelines on what you can do in those old mansions. So, quite often we cannot tear open a wall and run new wire. We just have to manage with what's there or very gingerly fish speaker wire where we can. So, the control over speaker wire works great in those situations. ( How stict are the guidelines??? The home owner cannot even choose the color of paint on the exterior of the house. The BAR Board of Architectural Review gets to pick.) However, the results of their pickiness are obvious to anyone who's visited Charleston. It's beautiful.

    Pricewise, they give you a lot of bang for the buck. However, if the client has seen other flavors of our systems with faster feedback and response, they are somewhat dissapointed.

    I like the response time of the Autopatch stuff. The feedback and response time is very acceptible. We also use the Elan System 12 quite a bit and it's pretty zippy. A lot depends upon the project scope.

    However, they do work well. They are just not the fasted horse in the race...
  • i layed it out as stated and im getting a compile error on the line CURRENT_VOLUME[nZONE]=LEVEL.VALUE
  • ericmedleyericmedley Posts: 4,177
    i layed it out as stated and im getting a compile error on the line CURRENT_VOLUME[nZONE]=LEVEL.VALUE

    I'm guessing you're not declaring the variable correctly.

    it is an integer array with 16 cells.

    I prefer to make mine persistent so the value is retained even after reboot. It makes the touch panel data refreshed go better upon startup. I'm sure others might do it another way.

    You might want to refer back to you notes in Programming 1 on variable declarations if you're having trouble. It should all be there.
    have a nice day!
    e
Sign In or Register to comment.