dougscripts.com

January 2024

May 31 2013 - 12:41 pm

UPDATED: File Renamer v2.3

File Renamer will rename the files of the selected tracks (or the files of the tracks in the selected playlist) with a filename pattern that is formulated using the tracks' tag data. Optionally, export a copy of the files to a chosen location and rename the files in that location.

This latest version will format date properties as YYYYMMDDHHMMSS.

More info and download here.

May 30 2013 - 2:14 pm

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.

May 24 2013 - 9:29 am

Dupin v2.6

I'm pleased to announce that Dupin v2.6 is now available.

Dupin is your iTunes duplicates manager. With Dupin you can:

  • Very quickly find all sets of duplicate iTunes tracks based on your choice of criteria
  • Select the "Keeper" tracks from among a number of duplicates automatically using a variety of versatile filtering options
  • Consolidate the play, skip, and ratings information from all tracks in a Dupe Group to the single "Keeper" track
  • Re-populate iTunes playlists replacing "non-Keeper" tracks with "Keeper" tracks
  • Remove duplicate tracks from iTunes and send files to the Trash
  • Manage intentionally duplicated tracks
  • Copy tracks to new iTunes playlists
  • And much more

Updated in version 2.6:

  • Added "Filename" to Criteria (recognizes local files only)
  • Added ability to play/view selected tracks in QuickLook panel via spacebar (OS X 10.7+)
  • Updated "Get Info" window, incorporating play/pause album artwork thumbnail (OS X 10.7+)
  • Improved sorting algorithms
  • Addressed issues with restoring windows
  • Moved "List Font Size" options from Preferences to View menu
  • Minor UI changes
  • General maintenance fixes and improvements

This is a free update for registered users of Dupin v2.5 and later. More information and download here.

May 22 2013 - 6:20 pm

NEW: ConvExp to Album Folders

In my (seemingly never-ending) quest to get music into my car like a Regular Person I found that if I fill a USB stick with audio files in Artist/Album folders my car's audio system will occasionally work right. The script Export to Album Folders does this. Then I realized that I had a lot of Apple Lossless files which I'd have to convert to MP3 before dumping them to the stick. But that leaves the superfluous converted tracks and their files in iTunes' library which I'd have to remove using my hands.

ConvExp to Album Folders (Convert and Export to Album Folders) takes care of converting selected tracks, moving the converted files in Artist/Album folders to a selected location, and removing of the converted effluvia from iTunes.

A couple of Correspondents inquired about doing something like this, so I hope they and you find it useful.

More info and download here.

May 17 2013 - 12:33 pm

More Airplay stuff

Earlier, I posted a way to hardcode the Airplay devices in a script. But if you only have one computer, AirPort Express, or Apple TV kind of Airplay device you can forego using the name property and do something like this, which sets my lone Apple TV as the current Airplay device:

tell application "iTunes"

set current AirPlay devices to (get AirPlay devices whose kind is Apple TV)

end tell

Even though there is only a single item result from Airplay devices whose kind is Apple TV, it's returned as a list which is what current AirPlay devices takes.

The other kind values, AirPlay device and unknown, are too generic to use this way—unless you know you only have one of them.

May 16 2013 - 5:22 pm

Hardcode Airplay Device Speakers

Correspondent Matt Stevens sent the following, which illustrates how to hard code your Airplay device names:

tell application "iTunes"

set computerSpeaker to (first AirPlay device whose name = "Computer")

set kitchenSpeaker to (first AirPlay device whose name = "Kitchen")

set current AirPlay devices to {computerSpeaker, kitchenSpeaker}

end tell

The current AirPlay devices application property accepts a list—even if the list is only one item.

May 16 2013 - 4:25 pm

Airplay device properties

These are the new Airplay device properties accessible via AppleScript:

active (boolean, r/o) : is the device currently being played to?
available (boolean, r/o) : is the device currently available?
kind (computer/AirPort Express/Apple TV/AirPlay device/unknown, r/o) : the kind of the device
network address (text, r/o) : the network (MAC) address of the device
protected (boolean, r/o) : is the device password- or passcode-protected?
selected (boolean) : is the device currently selected?
supports audio (boolean, r/o) : does the device support audio playback?
supports video (boolean, r/o) : does the device support video playback?
sound volume (integer) : the output volume for the device (0 = minimum, 100 = maximum)

Notice that all the properties are read-only (r/o) except for selected and sound volume, meaning only those two properties can be changed; the others can only be polled.

May 16 2013 - 3:54 pm

Basic Airplay script

This is a pretty basic use of the new Airplay stuff. Select and set your Airplay devices:

tell application "iTunes"

set apNames to (get name of AirPlay devices)

set apDevices to (get AirPlay devices)

set rez to choose from list apNames with prompt "Select Airplay:" with multiple selections allowed

if rez is false then return

set apPlays to {}

repeat with i from 1 to length of apNames

if item i of apNames is in rez then set end of apPlays to item i of apDevices

end repeat

set current AirPlay devices to apPlays

end tell

May 16 2013 - 3:42 pm

iTunes 11.0.3 Released

iTunes 11.0.3 was released today. Mods to the Mini player seem to be the most obvious. Under the hood, AppleScript has some new Airplay access.

First, there's a new Airplay device class and AirPlay enabled and current AirPlay devices application properties which should make scripting Airplay operations pretty easy. I'll have some stuff later.

The track class gains a iTunes U property ("is this track an iTunes U episode?").

More as it develops.

Site contents © 2001 - 2024 (that's right: 2001) Doug Adams and weblished by Doug Adams. Contact support AT dougscripts DOT com. About.
All rights reserved. Privacy.
AppleScript, iTunes, iPod, iPad, and iPhone are registered trademarks of Apple Inc. This site has no direct affiliation with Apple, Inc.
The one who says "it cannot be done" should not be interrupting the one who is doing it.