Project: Change AirPlay Speakers, Change EQ
I don't fiddle much with iTunes EQ settings. I most frequently send audio to a receiver and, if necessary, tweak the tone settings there. But I realised that if you're using AirPlay, you may want a different EQ setting for a selected AirPlay device. If you don't mind firing a script whenever you want to change AirPlay speakers—and you don't mind doing some of the script-writing yourself—here's a simple way to acomplish that.
And I do mean simple. This script is pretty basic and could be finessed much more thoroughly. It will only allow you to select a single AirPlay device (I don't believe there can be a different EQ for each active AirPlay device simultaneously) but it'll get the job done.
Here's the script. Open it in AppleScript Editor:
tell application "iTunes"
set listOfAirPlayNames to (get name of every AirPlay device)
set chosenAirPlayName to (choose from list listOfAirPlayNames with prompt "Change AirPlay Speakers to:")
if chosenAirPlayName is false then return -- user pressed Cancel
set chosenAirPlayName to (chosenAirPlayName as text) -- coerce to text from list
# This is the part you have to code:
if chosenAirPlayName is "Computer" then set chosenEQName to "Rock"
if chosenAirPlayName is "Apple TV" then set chosenEQName to "My Customized EQ"
if chosenAirPlayName is "Bedroom Airport Express" then set chosenEQName to "Classical"
# and so on...
# apply the changes
set current AirPlay devices to AirPlay device chosenAirPlayName
set current EQ preset to EQ preset chosenEQName
end tell
You will have to supply the names of your AirPlay devices and the name of the EQ setting you want to use with each. The latter is easy, just use the name of an EQ preset as it's displayed in the Equalizer Window. To get the accurate names of the Airplay devices, just run the script from AppleScript Editor and then right away click the "Cancel" button in the choose list dialog. In the AppleScript Editor Event Log window you'll see the names listed. Use these names in each of the repeating lines of code in the script. You may have fewer or more than the three example lines in the original script. Edit accordingly.
When those edits have been made, "Save" the script as "Script" and named whatever you like and saved in your [home]/Library/iTunes/Scripts/ folder. And, like my Mom always says, add a keyboard shortcut to launch it.
Remember: if you manually change your AirPlay speakers in iTunes, without using the script, the EQ will not change. That only happens when you run the script.
So also: smarties can probably figure out how to set a discrete volume for each chosen device using the Airplay device sound volume property.
UPDATE: Just to be clear, it is the main iTunes EQ setting that is changed, not the EQ setting for individual tracks.