Digital Asset Management Tools for Photographers

NEF Helper Tool

The NEF Helper Tool is a COM Server (callable from a script) that allows you to read and write the label (xmp:Label), rating (xmp:Rating), and urgency (photoshop:Urgency) metadata fields of the XMP packet embedded in a Nikon NEF image file. (But really, it works for any image file supported by the Adobe XMP Toolkit SDK.) It is useful for synchronizing metadata between digital asset management tools such as Microsoft Expression Media and (say) Nikon CaptureNX2 or ViewNX. The tool can also be used to extract all of the metadata from an image file, or just the XMP metadata. (2009/04/08, 1351603 bytes, MD5: c8f2860ad2f688397e6dd3c6e2cfcfe2) (2009/03/25, 1322085 bytes, MD5: b889bfb0b464d7ed85da0c1f348c90b2) (2009/03/22, 1317117 bytes, MD5: 10cb8fd17eeb190fa75402d2844ced4c) (2009/03/16, 924743 bytes, MD5: 12ba4067027b2d1cb1073ebc3b0de796) (2009/03/15, 921936 bytes, MD5: 746fe792700f6407a9867b18aa80e9f0)

MJH Progress Dialog

The MJH Progress Dialog is a COM Server (callable from a script) that allows you to monitor the progress of a script, or to cancel its execution. This is especially useful when manipulating large catalog files in Microsoft Expression Media. As a nice side-effect, the Progress Dialog object prevents the machine from locking up when used in long-running Expression Media scripts. (It appears that Expression Media does not pump windows messages while it executes scripts, which makes the user interface very sluggish.) (2009/03/22, 283427 bytes, MD5: 8ce2c8c4e9dfd9f8ffa2a9927e7eec49)

MJH String Maps

The MJH String Maps tool is a COM Server (callable from a script) that allows you to create map (dictionary) objects whose key has type string, and that sorts its keys in dictionary order. It is a drop-in replacement for the Scripting.Dictionary object (which sorts its keys based on order of insertion). A string map object is useful for manipulating camera image files in a specific order, e.g. by name or capture date. (2009/05/14, 299935 bytes, MD5: bb39045d26088ecba34ca8b5f906b224) (2009/04/19, 306098 bytes, MD5: e6edd45eb51838f45f80ac8d552a64b2)

Expression Media Scripts

These are a few of the scripts I use as Expression Media plug-ins, as part of my workflow when managing digital images. The package includes scripts for manipulating image file metadata, and for synchronizing metadata between NEF files and the Expression Media catalog. The scripts also demonstrate how to use the NEF Helper Tool, MJH Progress Dialog, and MJH String Map objects. (2009/03/25, 12607 bytes, MD5: 667bfa2c30cec6e15d4f666d0fbb44b6) (2009/03/23, 1829 bytes, MD5: 57dbae15da2d6d0772eedf01c5628ff1)

CD Audio Ripping and Compression Tools

Not for photographers specifically, but these are a few of the scripts I use to manage my digital audio assets.


A vbscript that uses the LAME encoder to convert a folder of PCM files (ripped by EAC) to MP3. Read the script for details about how to use it.

pcm2mp3.vbs (2009/12/23)
pcm2mp3.vbs (2009/12/22)

Matthew J Heaney <> <>
last modified 2009-12-23 --