Monday, May 20, 2013

The joys of digital media


One of the joys of digital media is managing all the darned content. Considering this, I thought I would outline my typical workflow the day after an event, say a sonic performance. I attended two of these this weekend, so the process is one I'm currently busying myself with.

I am sharing this even though it's likely the least interesting topic ever to appear on this blog. Still, I have learned that self-documentation is a good thing. Further, stuff I take for granted others find useful... even if only as a reminder. Third, I am waiting for files to copy and so have time on my hands.

To make this slightly more palatable, I have included an unrelated photo of a dandelion.

OK, so, here is my initial workflow:
* create folder structure on main server for different content (still, movie, audio)
* copy files from memory cards to appropriate folders
* copy files from performance laptop to main server
* convert still images to standard Adobe DNG
* rename still images to differentiate cameras
* rename movie files to include date stamp
* rename sound files to include date stamp
* initial view and purge
* immediately backup files to second hard drive
* import still images into Lightroom
* tag with location, event, client, equipment specifics

Consider a gig at which Susannah is also gathering images. I might then have to amalgamate photos/video from three cameras, sound recordings from two digital recorders, plus a local direct recording made on my performance laptop (if it was one of my own gigs). No wonder I always need a new hard drive or two!

Though the remaining steps can happen at any time, I try to process material as soon as possible, so that the sounds and images of the day are still fresh in my mind. Developing a photo for me is a matter of turning the image the camera saw into the one I saw at the time. This works best before memory decays.

The next steps:
* continue with selection and tagging process
* develop chosen images (potentially a huge step)
* make a second backup to external hard drive (for off-site storage)
* upload select images to Flickr
* share select images to Facebook, etc.
* perhaps even print a few

Sounds and movie files are a different matter, since it really depends on what I am going to do with them. Lately I have been doing a lot more film work, so I have changed my storage system. I now gather all such files together on my hard drive under one folder structure. Broadly speaking, these files are either a document of an event or raw materials for a future work, so I can split them up functionally (the former chronologically, the latter in a big collection).

But these simple categories get confused when I decide to produce a finished video documenting one of my performances. This is both documentation and a new creative project in itself. Such a project might include video, stills, and sound files that all need to be knitted together. I never seem to have the same absolute time on any of my devices, and of course don't run time-code. (Not in my budget.) So matching up synchronous events can take a bit of work. This is yet another reason to work while memory is still fresh.

It should go without saying that this entire process would be extraordinarily error-prone using the standard operating system tools that come with MS Windows (or Mac OS for that matter). Instead of the normal file manager I use a free tool called Multi Commander, which is the best of about ten I have tried. This allows me to perform certain bulk operations effectively.

I also have a Python routine I've perfected over many years that allows me to quickly script file renaming operations. I edit a configuration file, run a batch process, and boom! Files changed.

At some point while writing this I filled a hard drive. I hear new terabytes calling my name. Oh look! A dandelion.



rudy trubitt said...

As it turns out, I too delight in work-flow discussions. May I share? I am a Mac OSX user, attached is a commented version of the unix shell script I use to rename files created by my Nikon D100. Could be easily adapted for other camera's naming conventions. Hope the formatting isn't too messed up by the blog commenting mechanism!

# rename files created by Nikon D100 camera in JPG format to include date and original sequence
# number in filename. An optional phrase (no spaces!) can be
# added to the start of the new filename.
# rudy at trubitt dot com

#usage - This is a unit shell script following the bash syntax.
# Copy this text into a text file called "jpgname" and place it in a directory that is
# part of your PATH shell variable. Make sure your jpgname file is executable.
# Then, to run it, open a terminal window and navigate
# to a folder containing one or more images created
# in the Nikon D100 format (ex DSC_1015.JPG).
# Enter the command "jpgname" The result will be a new files (ex "130119_1015.JPG")
# and your originals are copied into a sub-directory called "safety" just in case.

# To add a descriptive phrase (no spaces!) to the start of each filename, enter the command:
# jpgname DescriptivePhraseNoSpaces
# the result will be new files (ex "DescriptivePhraseNoSpaces130524_1015.JPG") as well
# as the new "safety" folder with copies of your original filenames.

mkdir safety # Create a safety directy (doesn't check if it exists already!

for JPG_Image in `ls -1 DSC_*.JPG` # This sets up a loop, the back-quote is executed
# and becomes the list of files to be processed.
#Ref the manual of "ls" to understand what files
# will be included in the loop.

# Copy each matching file to the safety dir
cp $JPG_Image ./safety

# extract the 4 digit sequence number from orig name
num="`echo $JPG_Image | cut -c5-8`"

# evaluate expression in back-quotes, which returns the filemodified date
# which should be the creation date. Put this into the variable "datestring"

datestring="`filemoddate $JPG_Image`"

# Now rename the file using unix "move" command, mv. The destination
# name is a concatenation of the optional $DescriptivePhraseNoSpaces, the $datestring
# and the 4-digit sequence number ($num).

mv $JPG_Image $DescriptivePhraseNoSpaces$datestring"_"$num.JPG

robin said...

Shell scripts - yay! I used to know a fair bit about bash and even DOS batch files. That knowledge has been lost in the shining light of Python, for which I am grateful! Thanks for sharing.

rudy trubitt said...

I tried to learn PERL once, and still have the O'Rilley book sitting on my shelf. How should I think about Python? What's it most like?

robin said...

PERL is an abomination that deserves its reputation as a "write-only" language. It's all about efficiency, how few characters you can type to get something to work. This is a misplaced priority. Much more important are reuse, readability, the ability to share code, and so on.

I can come to write Python code after months away and get a programme working in a few minutes. Basically, it looks like pseudo-code, except that it actually runs and does stuff. And it runs on any platform with tons of support out there. Used by everyone from game programmers to casual shell scripters to NASA to Google.

Jut try it and everything else looks like a horrible compromise.

Post a Comment