Solution Examples
Just some of the more recent projects I have completed


DVD Auto Authoring (PC--Visual Basic)
DVD Authoring can be simple. However, our company needed to push the DVD format to the limit. We needed to produce a monthly educational DVD. The size varies from month to month, but a smaller DVD has the following contents: Graphics files: 98
Scripts: 61
• total lines of code: 512
Menus: 49
• total buttons: 500
Tracks: 13
• total markers (sequences): 615
• total stories: 273
Many decisions to numerous to mention here have to be made in authoring a DVD. Each button's up/down/left/right navigation has to be set to jump to another logical button. What happens when a story finishes playing? How to keep track of which menus the user has been to? What happens when there is a need for more buttons than allowed by the DVD specification (of 16)?
For this project, it takes an author a week and a half to create it by hand. With the Visual Basic program I wrote, it now takes 30 to 60 seconds. The program scans many separate documents (2 MS Word documents, 12 EDLs from a video editing program, the actual contents of 12 MPEG files, and contents of 49 PICT files) for information in order to create a 1.4M text document. This text document (similar in format to XML) is imported by the DVD authoring program. It is then checked for accuracy and burned.
Thousands of lines of code later, we have a good process.

IFO Repair (PC--Visual Basic)
The past version of DVD Studio Pro (Apple) had a bug that surfaced only when creating larger projects like the one mentioned above. When expecting tom jump from location X to a menu, the user is sent to a different menu. After examining the contents of the compiled DVD control file (*.IFO), I found an error in the way a certain Program Chain was created. I created a VB program to automatically scan the IFO file and correct the bad chain.
While I was in there, I have it optimize the way chains jump from one to another. This optimization in some cases actually saves many seconds between selecting an button in a menu and seeing the requested video.

Render Farm
(Macintosh--AppleScript)
We use LightWave for generating 3D video. To generate the finished product, rendering video can take days, if we used one machine. The way to get the render time down to a reasonable time is to use a render farm. A render farm is simply many computers rendering individual frames. When completed, all frames are assimilated into a chunk of video. When we started, Lightwave's methodology for controlling the render farm was very very limiting.
So I set out to figure how the communication worked between the central hub and the individual machines. I then wrote an AppleScript that acts as the hub, keeping track of which machines were assigned which frames. I also wrote another AppleScript to act as the user interface to the individual farm computes. This whole process provided a much more efficient render farm.

Photoshop Automation
(Macintosh--JavaScript)
Photoshop now allows programmers to control the app via JavaScript. One of the many things accomplished with this new functionality: Read a text file. Create a Photoshop document for each line of text. Align the text and apply treatment according to fields within the text document. Break the lines of text according to predefined rules, and save the finished documents.

EDL Conversion
(PC--Microsoft Access)
EDL is an acronym for Edit Decision List. Video editors have used these for years to describe each shot in the video; how long it was, what effect was used to transition to the next shot, how long the transition lasted, etc.
Over time, many different formats have emerged. Converting from one format to another can be quite tedious to do by hand. Enter my Access app. Now a user can select and EDL, select a few options (like merging selected parts of another EDL), select what format to save it as, and click the convert button. No hassles anymore!

Time Code Reade
r (PC--Microsoft Word)
We have a continuing need for people in a cubicle to make decisions on what shots to use on new video programs. These users must select the exact point in the video to start and to stop. The way to do this is to take advantage of time code.
In professional video equipment (and some consumer as well), a time code is stamped on every frame of video (30 frames pass by every second). This is a unique number consisting of hours, minutes, and frames. This signal can be sent out of the machine as an audio signal.
To get the video to a user elsewhere, we record this onto a regular VHS tape. The left channel of audio is replaced with this time code signal. As long as a user has a VCR and small TV, the video can be seen. How about grabbing the time code?
One common method to send this time code signal into a personal computer is to buy a $300 PCI card that takes care of interpreting this code, and handing of the numbers to a program designed to communicate with it.
I developed another, less expensive method. This audio signal is sent into the sound card of the PC. Within Microsoft Word, I decode the audio waveform, and insert the time code into the Word Doc. This wasn't easy, but now a dozen or so users can select sections of video down to the frame for free.

Project Tracking (PC--Lotus Notes)
Lotus Notes allows companies to keep track of all sorts of data, and view it many ways. Templates exist to handle many tasks with little effort. Of course, there are times when these don't solve the tasks at hand.
We needed to track all the steps involved in making videos. Since multiple departments are involved, and multiple projects are a different stages of development, Lotus Notes seemed to be the answer. Some of the design criteria included:
The list of steps (tasks) and the following definitions was to come from MS Excel Each task may have default persons assigned
Each task, when started, may be predefined to
• start any number of other tasks
• Email a set of people
Each task, when finished, may be predefined to
• start any number of other tasks
• Email a set of people
Each task, if not completed on time, may email the administrator on Monday as well as remind the persons assigned
This project involved a good bit of code, but it continues to be a great asset to producing timely videos.

Microsoft Office Automation
(PC--Microsoft Office)
Many times it's the little things that count. Users seem to appreciate these the most. MS Office has the wonderful ability to be automated to nearly the limit of imagination.
How about a button that counts the occurrences of whatever text a user enters? (I used this myself to get the statistics for the "DVD Generation" section above.) Simple, but useful.
How about automatically formatting plain text documents to something more professional?
How about a generic database lookup function? A dialog box allows a user to grab information in one table of an open document by key fields in common with another table in a separate document.
These are some of the buttons on many toolbars of happy users.
©2009 Kurtis Lininger
All rights reserved