Brent Saltzman


Interested in all things technology with a passion for analog, design, audio, and anything that sparks creativity and imagination.


Control the Shure MXA910 and MXA310 Microphones with PowerShell

Shure MXA910 with MXA310. Courtesy of Shure.com If you don't know about Shure's MicroFlex Advance series of microphones, they have taken the AV and conferencing industries by storm creating the best in-class ceiling and table top microphone technology along with asthetics that fit into nearly any space.
Even with on-going litigation by ClearOne, Shure is still creating some of the best audio products today.

As an Audio Visual Design Engineer I spend a lot of time coming up with solutions to AV challenges. I had a recent installation where I needed to control the mute state on a Shure MXA910 ceiling microphone. Normally I would leverage an AV control system such as an Extron control system, but for this specific project I didn't have this luxury. What I did have was an available Windows 10 computer that was always in use in this space.

Did you know that Shure's MXA series microphones accept commands over TCP sockets? This means you can use something as simple as PowerShell to control them. Check out Shure's Command String Documentation here.. Here's a simple example PowerShell script you can use to connect to a microphone and send it the Mute Toggle command:

#Setup the TCP Client using the IP address and port of your MXA910
$Socket = New-Object System.Net.Sockets.TcpClient("10.0.0.10", "2202")

#Setup TCP client stream
If ($Socket)  
 {  $Stream = $Socket.GetStream()
    $Writer = New-Object System.IO.StreamWriter($Stream)
    $Buffer = New-Object System.Byte[] 1024
    $Encoding = New-Object System.Text.AsciiEncoding
 }

#Send command to microphone. Reference the Shure 
#Command String Guide for possible commands.
$Writer.WriteLine("< SET DEVICE_AUDIO_MUTE TOGGLE >")
$Writer.Flush()

#Capture the response from the microphone and return the the results
$Read = $Stream.Read($Buffer, 0, 1024)
$Result += ($Encoding.GetString($Buffer, 0, $Read))
echo $Result

Convert PowerShell script to EXE

Using some additional PowerShell magic, you could turn this into a desktop shortcut icon that would be simply for any end user of a space to activate.

PS2EXE-GUI is a tool that gives you a GUI for converting a PowerShell script to an EXE file. All you really need is the script and an icon for the EXE to use. Pick an icon that would be easy to recognize for your users, and then download and run PS2EXE-GUI. Fill in your script path, output path, icon file, and other relevant info and this tool will create a friendly executable your users can use.

Previous Post | Next Post