(*
	This script creates a movie out of a folder of sounds and a folder of images.
	The first image is displayed for the length of the first sound, the second image 
	is displayed for the length of the second sound, etc.
	Note that the graphic and sound files must be in different folders, and there
	must be the same number of files in each folder!
	
	No type checking is done, so be sure sound folders have sounds 
	and graphic folders have graphics!
*)
set filesChosen to 0
try
	repeat until filesChosen is not equal to 0
		set audioFolder to getAudiofolder()
		set graphicsFolder to getGraphicsFolder()
		
		set audioPath to audioFolder as string
		set graphicsPath to graphicsFolder as string
		
		if (audioPath is equal to graphicsPath) then
			set result to (display dialog "the audio and graphic paths must be different!" buttons {"Quit", "Choose Again"} default button "Choose Again")
			if button returned of result is equal to "Quit" then
				set filesChosen to 2
			else if button returned of result is equal to "Choose Again" then
				set filesChosen to 0
			end if
		else
			set filesChosen to 1
		end if
	end repeat
on error
	set filesChosen to 3
end try
--
-- if filesChosen is 2, then no choice was made
--
if filesChosen is equal to 2 then
	display dialog "Quitting!" buttons {"OK"} default button "OK"
	return
end if
if filesChosen is equal to 3 then
	display dialog "Cancelled!" buttons {"OK"} default button "OK"
	return
end if
set graphicsList to (list folder graphicsFolder without invisibles)
set soundList to (list folder audioFolder without invisibles)
set graphicsCount to the number of items in graphicsList
set soundCount to the number of items in soundList
if graphicsCount is not equal to soundCount then
	display dialog "The number of sounds and graphics aren't equal! Please go back and make sure there are an equal number of graphic and sound files!" buttons {"I Will"} default button "I Will"
	return
end if
set myMovie to newmovie()
repeat with i from 1 to graphicsCount
	set soundFile to (audioPath & item i of soundList) as string
	set soundItem to openFile(soundFile)
	set graphicsFile to (graphicsPath & item i of graphicsList) as string
	set graphicsItem to openFile(graphicsFile)
	addSoundAndGraphics(myMovie, item i of soundList, item i of graphicsList)
end repeat
on newmovie()
	tell application "QuickTime Player"
		make new movie
		set theMovie to movie 1
	end tell
	return theMovie
end newmovie
on openFile(theFile)
	tell application "QuickTime Player"
		open file theFile
		set theItem to window 1
	end tell
	return theItem
end openFile
on addSoundAndGraphics(theMovie, theSound, theGraphic)
	tell application "QuickTime Player"
		select all movie theSound
		copy movie theSound
		--		select window theMovie
		paste theMovie
		--		select window theGraphic
		select all movie theGraphic
		copy movie theGraphic
		--		select window theMovie
		add theMovie with scaled
		close movie theSound saving no
		close movie theGraphic saving no
	end tell
end addSoundAndGraphics
on getAudiofolder()
	set audioFolder to (choose folder with prompt "Chooose the folder containing the movie sounds")
	return audioFolder
end getAudiofolder
on getGraphicsFolder()
	set graphicsFolder to (choose folder with prompt "Chooose the folder containing the movie images")
	return graphicsFolder
end getGraphicsFolder