9 Replies Latest reply: Sep 22, 2011 5:31 PM by tsbkgodfrey
bradleymedia Level 1 (0 points)

I have about 600 photos for a slide show that need to be shown in random order. How do I do this?

Aperture 3, Mac OS X (10.6.6)
  • Neil G Level 3 (740 points)

    Card shuffle?


    Put all the images in an Album (Shuffle 1). Maybe go to List View and sort on the f/stop or shutter speed column. (^L for List View, Shift-U to display more or fewer columns.) Go back to Grid View (^G). Use the zoom slider to make the images as small as possible. Select all the images in the left column and hit Cmd-L to make a new Album (Shuffle 2). Check the box to add the selected images to the new Album.


    Back in Shuffle 1, select the second column and drag the selected image to Shuffle 2. Rinse. Repeat. Keep track of the columns as you go or you might duplicate or exclude some photos.


    If that's not 'random' enough, change the zoom slider on Shuffle 2 so there are a different number of columsn and repeat the process to create Shuffle 3.

  • chacro Level 1 (50 points)

    A bit of a kludge but you get true randomness. I use Random Wok plugin to export jpegs at a suitable resolution. This renames everything with a random number. Import into Aperture. Sort by name. Bit of hard-drive overhead but no actual work required, just a couple button presses.


    Random Wok is pretty old. It's 32 bit only but it does it's job nicely.


    Sort by random has been wish listed a few times. Maybe we'll see it in a future release.

  • Kirby Krieger Level 6 (12,510 points)

    This should let you make random.  Use with caution.


    Perhaps our resident scribe will come up with a good encapsulation that assigns random numbers to a custom field.

  • chacro Level 1 (50 points)

    That's a nice strategy Kirby. I wonder if applescript can write metadata, or would it have to be a plug-in to do that? Ideally it would work from inside Aperture rather than finder so that you could just make a selection of photos to write to rather having them reside in a folder outside of the library.


    It's amazing that they haven't included a random sort as it seems like it would be very trivial, and would have like zero overhead.

  • Kirby Krieger Level 6 (12,510 points)

    Well, from what I've seen -- I have peered through the cracks at the bright Applescript landscape, but never set foot there -- it might be pretty easy to pen something that walks through all the images in an Aperture container and assigns a random number to a custom field.  (Fwiw, it need not actually be a custom field -- there are enough IPTC fields unused to steal one for our purpose.)



  • Frank Caggiano Level 7 (25,715 points)

    You rang?


    I had actually started working on this sometime in the past when this question was asked before. I never got around to finishing it but I cobbled this together this AM:


    set newList to {}


    tell application "Aperture"



              set imageSel to (the selection)


              if imageSel is {} then

                        error "Select images."


                        repeat until (count of newList) = (count of imageSel)

                                  set randomPick to random number from 1 to (count of imageSel)

                                  if randomPick is not in newList then set newList's end to randomPick

                        end repeat


                        repeat with i from 1 to count of newList


                                  tell item i of imageSel to make new custom tag with properties {name:"Random", value:item i of newList}


                        end repeat


              end if

    end tell


    Takes a selection and assigns random numbers to each image in the selection,


    Creates a custom tag Random and populates it with numbers. If you add the custom field Random to the list view metadata parameters you can sort on it and then switch back to icon view and the images will remain in the random order.


    You have to be careful if you change the sort order of course the randomness will be gone and you will need to go back to list view to re-establish it.

  • chacro Level 1 (50 points)

    That's the ticket. Thank-you so much Frank!


    Here's how I think I will take advantage of this: I maintain a large slideshow for a client which they run on a tv in their showroom. Every once in a while I need to update it with recent work. Right now I do as I outlined above but it's a hassle to maintain and edit. I'll have to play around with this some more, but I believe that I'll build a smart album based on images above a certain star rating within this clients folder of projects, select that album. run 'Randomizer' on that, make a slideshow from the selection and sort the slideshow by 'Random'.


    I'll have to play with this some more on a test library before putting into the game, but I believe that if I add new photos and re-Randomize and re-sort the slideshow that the transitions and edits I've made in the slideshow will follow their photo to the new locations.... at least that's what I'm hoping for.


    Downside is that it looks like I'll be re-building all the transitions in a slideshow of about 450 pictures. Upside is I can ditch 450 jpegs out of the library that don't update to changes that I may make in the masters.


    Just a note: if you try to run 'Randomizer' on a slideshow directly it adds the new field but doesn't populate it, and then the script times out. No harm done, but it seems you must run it on a selection of the versions to work properly. Not a fatal flaw.


    So... Frank.... I've thought about but never gotten into Applescript. I have a lot of experience with a scripting language in the CAD program I use extensively, but it appears to be a little different than this language so my terminology will likely be off. A question if I may:


    Take 'imageSel' or 'newList' for EG. Are these variables that you declare somehow or are they predifined by Applescript somewhere? If so, how do I find a list of these predefined identifiers? I just had a look at Applescript Language Guide and it looks like something I can work through. I'm just hoping for a little jump on the learning curve.


    Thanks again for your generous contribution!


  • Frank Caggiano Level 7 (25,715 points)

    Thanks for the heads up on the problem running it on a slideshow album directly, I'll have a look.


    imageSel and newList are local variables. AppleScript is an untyped language so variables don't have to be declared beforehand usually. In the case of newList because I will be referring to it in the code before it is possibly set I initialize it to a the empty list.


    The Apple online docs are good, two books I would recommend are O'Reilly's AppleScript The Definitive Guide and Learn AppleScript by Apress. The former is more of a reference but there are examples in it. The later is more of a tutorial.


    MacScripter and AppleScript The Language of Automation   are both  good resources. 


    I also have a few other Aperture/AppleScript applets at my web site Crystal Objects

  • tsbkgodfrey Level 1 (0 points)

    Thanks for posting the AppleScript solution.  It worked well.