AHM TCP/IP Protocol

Forums Forums Other A&H products AHM TCP/IP Protocol

This topic contains 14 replies, has 4 voices, and was last updated by Profile photo of Nicola A&H Nicola A&H 7 months, 1 week ago.

Viewing 15 posts - 1 through 15 (of 15 total)
  • Author
    Posts
  • #101398
    Profile photo of Anthony EAI
    Anthony EAI
    Participant

    Hello,

    I would like to know if somebody already implemented the AHM TCP/IP Protocol in custom software.

    I found the documentation about the protocol “AHM TCP Protocol V1” but no sample code in any programming language.

    Thank you

    #101399
    Profile photo of SteffenR
    SteffenR
    Participant

    I found the documentation about the protocol “AHM TCP Protocol V1” but no sample code in any programming language.

    What are you talking about? It’s just plain MIDI over TCP…

    #101407
    Profile photo of Nicola A&H
    Nicola A&H
    Keymaster

    Anthony, what Steffen means is that the TCP protocol gives you a set of commands in the form of hex strings, that can be sent to the AHM-64 TCP port to control or get parameters. This can be used in several ways:

    – You can use a packet sender application or write your own. You can probably find open source projects on GitHub or similar.
    – You can implement these strings in a Crestron / AMX / Q-Sys / Extron control system or similar. For Crestron and AMX we offer sample modules on our website which can be used as a starting point.
    – You can use the A&H MIDI Control driver to interface the TCP protocol with MIDI-enabled software such as Qlab or a DAW.

    If you are looking for a simple way of controlling AHM-64 from a custom user interface, make sure you check out the Custom Control app as well: https://www.allen-heath.com/custom-control/

    #101409
    Profile photo of Anthony EAI
    Anthony EAI
    Participant

    Thank you for this clarification

    #101532
    Profile photo of Anthony EAI
    Anthony EAI
    Participant

    Nicola,

    I manage to send commands with PacketSender but I’m now stuck with assignments.

    Is there a way to assign input to zone with the AHM TCP/IP Protocol on port 51325 ?

    #101534
    Profile photo of SteffenR
    SteffenR
    Participant

    As far as I remember it is not intended to do such things remotely…
    you should do your assignments with System manager instead…

    or source selectors can help… but again you have to configure them in System Manager

    #101536
    Profile photo of Nicola A&H
    Nicola A&H
    Keymaster

    Hi Anthony,

    No, input to zone assignments are not covered by the protocol. However, input to zone (crosspoint) levels and mutes are. To the end user, there is little difference between an assignment and a crosspoint mute, so the workaround is to assign all required sources to the zone, and use crosspoint mutes to control which sources are active.

    #114280
    Profile photo of Oliver
    Oliver
    Participant

    Hi
    Okay, this is an old post, but the only thing I found. So, I hope someone can help….

    I’m using a AHM16 and try to mute the cross points (input to zone).
    Leveling the Zones and Inputs are no problem. So the network and the source code is working. But I don’t understand, what I have to send to mute a cross point

    Input to Zone, and Zone to Zone Send Mutes
    SysEx message
    Where SndN and SndCH are the MIDI channel and note number for the channel to be sent to.
    Mute On Message:
    SysEx Header, 0N, 03, CH, SndN, SndCH, 7F, F7
    Mute Off Message:
    SysEx Header, 0N, 03, CH, SndN, SndCH, 3F, F7

    Like I understand, I should send the following HEX-Numbers

    F0, 00, 00, 1A, 50, 12, 01, 00 (for the SysEx Message)
    00, 03, 00, ??, ??, 3F, F7 (This is for channel 1)
    The problem is SndN and SndCH. I can’t find any documentaion and don’t know what to send.

    Please help!

    #114281
    Profile photo of SteffenR
    SteffenR
    Participant
    #114282
    Profile photo of Oliver
    Oliver
    Participant

    Okay, let me thank you for the help. But I don’t get it….
    What you send seems more like a manual to configure a software like Cubase, but (maybe I’m wrong) not a manual for the protocol.

    So, I’m sorry, but I need further help…

    I don’t use a software. I’m trying to control the AHM from a Linux script. I also can’t found any MIDI configuration in the AHM.

    So, I’m very sorry, but I didn’t get it!

    BTW: Things like “It took 1 min to find it.” are not very helpful. Maybe you are more familiar with MIDI and/or Allen&Heath, and maybe it took less than 1 minute for you to found a solution. But not for me 😉

    #114283
    Profile photo of Nicola A&H
    Nicola A&H
    Keymaster

    Hi @oliver

    If you’re trying to mute a channel, please use the Channel Mute on / off messages from the protocol document, not the crosspoint mutes.
    The crosspoint mutes act on a specific send of an Input to a Zone (a ‘crosspoint’). Hence when using the command, you need to specify which Input, but also which Zone. For the SndN and SndCH parameters you can still reference the table in the protocol doc.
    So for example, to mute Input 1 crosspoint to Zone 1, you would use (after the SysEx header):
    00, 03, 00, 01, 00, 7F, F7

    If you need more assistance interpreting the protocol document or have specific questions, feel free to reach out to our Support team at support.allen-heath.com

    #114286
    Profile photo of SteffenR
    SteffenR
    Participant
    #114292
    Profile photo of Oliver
    Oliver
    Participant

    Good Morning 🙂
    First, I have to thank you both again for your help! You both are very kindly!

    https://www.allen-heath.com/media/AHM-TCP-Protocol-V1.4.pdf
    I know this documentation, and it’s helpful to level the inputs and zone outputs. Like I said, the leveling works pretty fine!

    And in this file also is shown how to mute an input/zone cross point.

    @NicolaA&H
    It’s not I’m trying to mute a complete input. I have to mute an input in a zone. So, I’m thinking, muting the cross point is the right (and only) way.
    Thanks for your example, but sadly it doesn’t work.
    If I, and I do so, believe in your command “00, 00, 00, 01, 00, 7F, F7” the issue has to be in the SysEx header. The SysEx header is more or less constant. There are only 2 variables that could have only one value:

    This applies to all SysEx messages described later in this specification.
    F0, 00, 00, 1A, 50, 12, MV, mV
    AHM TCP/IP Protocol V1.4 2 Issue 2
    Where MV = 01 (Major version)
    mV = 00 (Minor version)

    So, the SysEx is always and for every machine “F0, 00, 00, 1A, 50, 12, 01, 00”. Is this correct? Or can the values be different?

    If this is correct, what is going wrong with the command?
    The communication is not SSL protected. And the whole command string (including SysEx header) I’m using is “F0, 00, 00, 1A, 50, 12, 01, 00, 00, 00, 00, 01, 00, 7F, F7”
    Is there a break needed between the header and the command? Who long should it be? Or any termination at the end, like LF or CR or both of them?

    Maybe the configuration of the machine is the issue? The input 1 is mono, but the zone 1 is stereo (zone 1 and zone 2 are bound together). Maybe this needs different command?

    Happy to hear from you!
    Thanks!

    #114293
    Profile photo of Oliver
    Oliver
    Participant

    @NicolaA&H

    I’m sorry, but I have to say, that your command isn’t right…..

    It’s not 00, 00, 00, 01, 00, 7F, F7
    it is 00, 03, 00, 01, 00, 7F, F7

    to mute chanel 1 in Zone 1

    00, 03, 00, 01, 01, 7F, F7 -> for chanel 2 in zone 2
    00, 03, 00, 01, 02, 7F, F7 -> for chanel 3 in zone 2
    and so on…..

    #114298
    Profile photo of Nicola A&H
    Nicola A&H
    Keymaster

    Apologies Oliver, you are right there was a typo in my post.

Viewing 15 posts - 1 through 15 (of 15 total)

You must be logged in to reply to this topic.