Tell me more ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have iPhoto09. I want to find a Mac program that will select from a list of slideshows and/or albums and play them randomly. I don't want to show just one slideshow continuously or just show one slideshow and then the program stops. I want it to randomly select them from a que.

For example - let's say I have two folders - one folder is called BESTPICTURES, the other folder is WORSTPICTURES. Inside the folder BESTPICTURES are 3 files ( Flowers, Animals, Mountains ) Inside WORSTPICTURES are another 3 files ( Junkyards, Landfills, and Dumpsters).

I want a photo or slideshow presentation program that will first RANDOMLY select either the BESTPICTURES or WORSTPICTURES main folder. Then I want the program to RANDOMLY select one of the files from whichever main folder it picked to start the show. Let's say it picked BESTPICTURES and now I want it to RANDOMLY select among the files: Flowers, Animals, Mountains until all 3 files have been selected and shown.

When it goes through all the pictures in the BESTPICTURE folder then I want it to go to WORSTPICTURES and again RANDOMLY select one of its files: Landfills, Junkyards, or Dumpsters - and then another one of the files and then the other until all 3 of those files in the folder WORSTPICTURES have been displayed.

Then I want it to loop and begin again - continuously - perhaps the second time around randomly picking WORSTPICTURES as its first folder and then again various random selections from among its files.

I want to set up an iMac monitor on the wall and turn it into a constant digital photo album. But I can't find a 3rd party presentation program that will queue up a bunch of folders with files and go through them randomly. I don't just want all the pictures tossed into one grabbag. I want to preserve a themes element and have the program select from the various themes in a highly random fashion. Does anything like this exist?

share|improve this question

migrated from stackoverflow.com Aug 21 '09 at 20:02

2 Answers

You can do this with iPhoto and a bit of Applescript.

First, in iPhoto:

  1. Create albums—not slideshows—for each slideshow that you want.
  2. For each album, click the play button (a triangle in the bottom-left area of iPhoto). Set the options you want, including “Shuffle slide order,” and then click Save Settings.

Now open the Script Editor application and make the following Applescript. Replace “Test Album 1,” “Test Album 2” etc. with the names of the albums you created:

show_all_slideshows()

on show_all_slideshows()
    set album_list to {}
    set end of album_list to "Test Album 1"
    set end of album_list to "Test Album 2"
    set end of album_list to "Test Album 3"

    shuffle(album_list)

    repeat with i from 1 to length of album_list
    	tell application "iPhoto"
    		set current_album to item i of album_list
    		start slideshow using album current_album
    	end tell
    end repeat
end show_all_slideshows

on shuffle(aList)
    set listSize to count aList
    repeat with i from listSize to 2 by -1
    	set j to random number from 1 to i
    	if j is not i then
    		tell aList to set {item i, item j} to {item j, item i}
    	end if
    end repeat
end shuffle

This will show each slideshow once. The slideshows will be presented in a random order, and within each slideshow, the photos will be in a random order.

If you want to keep this running all day, change the show_all_slideshows() line to something like this:

repeat
    show_all_slideshows()
end repeat

Note that there is no easy way to quit the slideshow. You’ll have to hit ⌘-Q (quit) repeatedly. Perhaps someone else can improve on this.

share|improve this answer

Iphoto can do this staff, import you albums to iphoto, select all your albums and play the slideshow. In the configuration of the slideshow you can select that the images appear in random order.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.