Anytime Help Center

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Support
  • Guest
  • Log In
  • AKG
    Microphones Wireless Integrated Systems Automatic Mixers Headphones Discontinued Products (AKG) General AKG Inquiries Certifications (AKG) Video Manual Series (AKG)
  • AMX
    Networked A/V Distribution (AVoIP) Traditional A/V Distribution Video Signal Processing Architectural Connectivity User Interfaces Control Processing Power (AMX) Programming (AMX) Software (AMX) Discontinued Products (AMX) General AMX Inquiries Certifications (AMX)
  • BSS
    Soundweb™ Omni Soundweb™ London Soundweb™ Contrio™ Software (BSS) Discontinued Products (BSS) General BSS Inquiries Certifications (BSS)
  • Crown
    CDi DriveCore Series CDi Series Commercial Series ComTech Series DCi DriveCore Series I-Tech HD Series XLC series XLi Series XLS DriveCore 2 Series XTi 2 Series Discontinued Products (Crown) Software (Crown) General Crown Inquiries Certifications (Crown) Video Manual Series (Crown)
  • dbx
    CX Series 500 Series DriveRack Personal Monitor Control ZonePRO Zone Controllers FeedBack Suppression Microphone Preamps Dynamics Processors Crossovers Equalizers Software (dbx) Discontinued Products (dbx) General dbx Inquiries Certifications (dbx)
  • Flux::
    Immersive Processing Analysis Subscriptions General FLUX: Inquiries
  • JBL
    Cinema Sound Installed Live Portable Tour Sound Recording & Broadcast Software (JBL) Discontinued Products (JBL) Video Manual Series (JBL) General JBL Inquiries Certifications (JBL)
  • Lexicon
    Plugins Effects Processors Cinema Discontinued Products (Lexicon) Video Manual Series (Lexicon) General Lexicon Inquiries Certifications (Lexicon)
  • Martin
    Atomic ELP ERA Exterior MAC P3 VC VDO Tools Discontinued Products (Martin) General Martin Inquiries Certifications (Martin)
  • Soundcraft
    Digital Analog Connected Analog Only Discontinued Products (Soundcraft) Video Manual Series (Soundcraft) General Soundcraft Inquiries Certifications (Soundcraft)
  • General HARMAN Inquiries
    Dante
+ More
  • Home
  • AMX
  • Programming (AMX)
  • Programming

DO_PUSH in MUSE Programming

Frequently Asked Questions

Written by Wesley Moore

Updated at June 22nd, 2026

Table of Contents

Brand: Models: Question:   Answer:

Brand:

  • AMX

Models:

  • MUSE
  • Programming
    • Python

Question:  

Does DO_PUSH exist in MUSE programming?


Answer:

In Netlinx programming you could emulate a button push by utilizing the DO_PUSH keyword.  There is not a direct replacement for that command, but you can emulate a button push by passing an object to the callback function with the appropriate arguments.  Here is an example of this in Python:
 

from mojo import context

context.log.info('Sample Python program')


#This class creates an object that emulates a button object, the only requirement is the value for PUSH/RELEASE, everything else can be used or ignored since they are given initial values
class doPush:
    def __init__(self,value,source=None,id=None,path=None,device=None,newValue=None,oldValue=None,normalized=None):
        self.value = value
        self.source = source
        self.id = id
        self.path = path
        self.device = device
        self.newValue = newValue
        self.oldValue = oldValue
        self.normalized = normalized

#Creates the objects for the controller (idevice), touch panel (dvTP), and CE-REL8 (dvREL8)
dvTP = context.devices.get("AMX-12345")
idevice = context.devices.get("idevice")



#Creates simple variables that access the first relay port on both the idevice and CE-REL8
dvRelay1 = idevice.relay[0]



#This function processes button events for Port 1 Button 1 on the touch panel
#The value of the relay is tied to the state of the button, while the button is pressed the relay will engage, when the button is released it will disengage
def Relay1(event):
    context.log.info(f"Dictionary = {event.__dict__}")
    dvRelay1.state.value = event.value

    

#Creates a watch for Port 1, Button 1
dvTP.port[1].button[1].watch(Relay1)


#Callback function for doPush trigger
def DO_PUSH(event):
    if(event.value):
        #This line calls the callback function used for Relay1, you pass it the doPush object, passing doPush True emulates someone pushing button 1 on the touch panel
        Relay1(doPush(True))
    else:
        #If you need other attributes added besides value, this line shows how you can pass those values into your object
        Relay1(doPush(False,source="Code"))

#Creates a watch for a button, just needed some kind of trigger to call the doPush
dvTP.port[1].button[2].watch(DO_PUSH)

# leave this as the last line in the Python script
context.run(globals())

Related Videos

guidelines questions

Was this article helpful?

Yes
No
Give feedback about this article

Table of Contents

Brand: Models: Question:   Answer:

Related Articles

  • MUSE IP Comms Using asyncio with Python Code

Related Articles

  • MUSE IP Comms Using asyncio with Python Code
Copyright © HARMAN Professional. All rights reserved. Privacy Policy | Terms of Use
Expand