Monthly Archives: April 2012

Some Short Films 1

I thought I would post a couple of short films I have worked on over the last years or so.
The first two are the full films, the others have not been released online as due to requirements by film festivals. I always enjoy working on projects like these are they provide a lot of sound (and sometime workflow) challenges and it’s great to work on something a bit different.

Kevin is..

The Comedian:

The Comedian from Accidentally Sexy Films on Vimeo.

Little Brother Trailer

Little Brother Trailer from Callum Cooper on Vimeo.

Victoria, George, Edward and Thatcher (excerpt)

Victoria, George, Edward and Thatcher (excerpt) from Callum Cooper on Vimeo.

Chronosync backup when drive plugged in with applescript

Firstly excuse the extremely uncreative title of this post but I have been working all day and my creativity levels are a little on the uncreative side at this stage of the day.
At the studios we have couple of different backup systems running to DLT and LTO tapes plus some offsite drives that we use for disaster recovery. After struggling with massive issues with the latest version of retrospect for mac and the horrible support we decided to move to Chronosync which has been fantastic.
One thing that we wanted to do was automatically run a backup when we connected a particular offsite backup drive. I managed to get this to work by running an applescript in automater whenever a new drive was added using folder actions.

When new drives are added to OSX they are mounted in the /Volumes folder which you can’t normally access in finder. To get around this you can create a symlink in the terminal by typing:

ln -s /Volumes/ ~/vol-link

this will create a link named “vol-link” in your home folder that points to the Volumes folder.

Then open automater in the applications folder and chose “folder action” from the start up screen

On the top you can choose the folder that will perform an action if a file or folder is added to it.
In here choose your vol-link.

Drag across the “Run AppleScript” action form the left and then add the AppleScript code from below

Note that you will have to change the volume names and path of your Chronosync container document and you can modify this script to work with more drives or less.

Save your workflow and that’s it.

We also have our backups stored in an encrypted disk image so have set the last document in the container to eject the image when it’s finished. The script then ejects the drive

Any questions or comments let me know

set VolumeName1 to "OffsiteBackUP1"
set VolumeName2 to "OffsiteBackUP2"

if volumeMounted(VolumeName1) = 1 then
	try
		tell application "ChronoSync"
			activate
			
			open alias "HD RAID:Users:serverhomedir:Documents:Offsite Backup 2.csyn"
			
			tell document 1 to Synchronize
			
			--hold on 'till the sync is complete
			
			repeat while syncStatus of document 1 is not 0
			end repeat
			
			tell document 1 to save
			tell document 1 to close
			
			
			
			
		end tell
	end try
	
	delay (5)
	
	tell application "Finder"
		activate
		eject disk VolumeName1
		
	end tell
	
	
else
	
	if volumeMounted(VolumeName2) = 1 then
		
		
		
		try
			tell application "ChronoSync"
				activate
				
				open alias "HD RAID:Users:serverhomedir:Documents:Chronosync Offsite Scripts:Offsite Backups.csyn"
				
				tell document 1 to Synchronize
				
				--hold on 'till the sync is complete
				repeat while syncStatus of document 1 is not 0
				end repeat
				
				tell document 1 to save
				tell document 1 to close
				
				
				
				
			end tell
		end try
		
		delay (5)
		
		tell application "Finder"
			activate
			eject disk "VolumeName2"
			
		end tell
		
	end if
	
end if

on volumeMounted(VolumeName)
	tell application "Finder"
		if (exists disk VolumeName) then
			return 1
		else
			return 0
		end if
	end tell
end volumeMounted

Audio Conform Calculator Launched

Every now and then I am having to time compress or expand audio I am working on to keep it in sync with the video as it is going to be used in or is going to cinema, comes from overseas and been converted from NTSC to PAL or is shot at a non-standard frame rate, such as 22 frames a second for effect.
Using a plug-in such as Serato pitch and time (which is my favorite) in Pro Tools you can maintain the pitch of the audio while changing the duration to match the video.

Audio Conform Calculator is a simple iPhone App in which you can specify the source and destination frame rates of the the video you are conforming and it will provide you with the percentage and ratio value that the corresponding audio needs to be time expanded or compressed to keep it in sync with the video.

You can view more details of the app from the
Audio Conform Calculator page on this site.

I built this app originally as a desktop java application but decided it was much more useful as an iPhone app.
After coding for a couple of years in Java and PHP I have to say that IOS and the tools provided are a real pleasure to work with. Although there is a bit of a learning curve switching to the model view controller programming paradigm and other IOS quirks I am starting to get my head around a lot of it.

Prepare for Segue in IOS 5

I’ve been working on a few iPhone and iPad apps using IOS 5 and have been watching Paul Hegarty’s iPhone course at Stanford though iTunes U. I recommend watching it for anyone who is interested in IOS development as it’s as fantastic source of information and Paul is a great teacher.

One of the many useful things I found when first delving into the model view controller paradigm was the method that is called just before a Segue to another view controller prepareForSegue:

You can use this to set properties in the view controller you are about to segue to such as the delegate which is very useful.
You just need to set the identity of the segue in Xcode so it can be identified.

Here is a small snippet based on Paul’s example

-(void) prepareForSegue:(UIStoryboardPopoverSegue *)segue sender:(id)sender
{
    if ([segue.identifier hasPrefix:@"Next View"]) {
      
        //The segue is to the a View Controller called NextViewController
        (NextViewController *nvc =  (NextViewController  *) segue.destinationViewController;
       
       //Set properties in the view controller - note the views outlets are not set yet
        nvc.stringProperty1 = @"This Is Property 1";
      
         nvc.property2 = @"This Is Property 2";
       //Set self as the delegate
       nvc.delegate = self;
    }
}