by Richard Lightstone CAS AMPS
An Interview with James LaFarge, the developer of LectroRM, FreqFinder and Timecard Buddy.
ABOUT ME AND APP WRITING
WHAT’S YOUR BACKGROUND?
Primarily, I’m a Sound Utility that has been in the film industry for a little more than ten years. I joined NY IA Local 52 in 2008 and just recently joined Pittsburgh IA Local 489. Programming has always been a hobby of mine, but I didn’t really have experience with anything truly commercial until LectroRM.
WHAT MADE YOU START WRITING LECTRO RM?
At the time, it was just a fun experiment. One of the most interesting things to do for me is to decypher protocols. At the time, I was day playing on a movie, Nature Calls, and I asked my sound mixer to borrow his RM device just to see if I could figure it out. Once I saw what the protocol was, I figured it would be useful to have it on my Android phone. Then, I figured it would be useful to have on everyone’s phone. I was already familiar with Java, which is what Android developers use. I learned Apple’s Objective-C just to develop LectroRM for iPhone.
DID YOU HAVE ANY HELP? LIKE OUTSOURCING OR ANYTHING?
I had help with the graphics, but that was by a friend. The rest was all self-taught programming skill. Probably why there’ve been so many bugs over the years.
WHEN YOU HAVE AN IDEA, DO YOU REALLY HAVE TO LEARN TO PROGRAM TO MAKE AN APP?
The path I took, yes. But Apple and Google make billions of dollars on apps that other people create. Really, what I can attribute my ability to put out a sellable product to is that Apple and Google work very hard to make the tools and information available for people willing to put in the work. Apple developed a relatively new programming language that it very much wants programmers to use; it has a lot of great resources on how to program in it.
YOU SAID SOMETHING ABOUT ‘WORK.’ ARE YOU SURE?
Yes, and ideas can be deceptively simple. LectroRM is probably as simple as it gets. It doesn’t require any sort of web service or online support (most ideas do). The UI is relatively simple. Even updating the remote controls for a new product is relatively simple (although reconfiguring the UI can be tricky).
But every year, Apple releases a new version of iOS. Often, it causes an incompatibility with the previous versions, and maintaining backward compatibility means branching the code in multiple paths. And it is only harder with more complicated apps. This year, for example, Apple changed a large portion of its new Swift programming language. LectroRM and Freq- Finder aren’t written in it, but my new app, Timecard Buddy, will have to be reprogrammed in large part to accommodate the changes. Long story short, ideas do not have value without the time and effort spent making it a reality.
THAT SOUNDS ROUGH! IS IT WORTH IT?
For me and the comparatively simple apps I make, I believe I earn a reasonable sum. I try to set prices to reflect the work, skill and value. The market is small but substantial, and there is still a constant stream of new users. It is enough that I feel free to take time off from work to program, particularly in the winter months. More important than money though: I have experienced no greater feeling of fulfillment in my life than releasing something I have created to be used by the greater community.
SO YOU SPLIT YOUR TIME BETWEEN FILM WORK AND PROGRAMMING. DOES THAT MEAN YOU’RE REALLY NOT GOOD AT EITHER?
Ha ha, I don’t know. Splitting my time that way has the fantastic effect of providing a certain balance to my life. Film work can cause a person to disappear from the rest of the world for lengths of time, but I don’t want to stare at a computer screen my whole life either.
That said, I wasn’t formally trained in either field. I matriculated from a music program at NYU: one that focused on recording engineering but did not translate into the majority of skills I use on set. I have great appreciation for the everyday struggle of continually learning and improving.
WHERE CAN WE FIND YOUR APPS AND HOW MUCH DO THEY COST?
LectroRM, FreqFinder and Timecard Buddy are all available on the Apple App and Google Play stores. LectroRM and FreqFinder sell for $20 and $30, respectively. FreqFinder’s TVDB add-on sells for $15. Timecard Buddy is free but will have a paid ad-free version in the near future.
SO HOW DOES IT WORK?
The transmitter recognizes two audible frequencies as a 1 and a 0, respectively. When the remote is activated, you can hear the tone shift between those two frequencies as the data is communicated. The actual data is only two bytes, but there is some padding and error checking that helps the transmitter know that the data is what you want it to be.
HOW DID YOU FIGURE OUT THE DATA BEING SENT?
Well, I’m a nerd of sorts, so allow me to explain it in nerd terms. Some of you might remember a thing called Game Genie for popular 8-bit and 16-bit game systems like NES and Super NES. What it did was change pieces of memory in a game to make the player jump really high or have more lives. When Codemasters developed it, they had to look at a picture of the memory in the game and see how the memory changes while playing. From there, it’s pretty easy to see when four lives turn into three.
Looking at the RM remote control sound was like looking at the picture of memory. I could play the control sounds for two different settings and see what parts of the control sound changed. There are other parts to the equation, but most of them, like start and stop bits, still can be figured out just by comparing the control sounds to each other. The hardest part of reverse engineering a protocol is usually figuring out the checksum as it usually takes a lot of guesswork. The remote control tones use a somewhat obscure checksum algorithm that took a while to find.
SO YOU HACKED THEIR TRANSMITTER REMOTE CONTROL. DOES THAT MEAN YOU CAN MAKE IT DO COOL NEW THINGS?
Sadly, no. A few people early on, asked me if I could add features like low-cut filter control or incremental gain changes. But the remote just sends a signal. Lectrosonics has to build the interpretation of that signal into the transmitter, which is why not every transmitter supports every tone.
ALL OF THIS IS VERY BORING. WAS THERE SOME SORT OF POLITICAL SCANDAL WITH LECTROSONICS?
Scandal, no. But I still found it exciting. Lectrosonics has been stellar with me, and I’m sure they would be with anyone else who wanted to create a competing product. Understandably at first, Lectrosonics was cautious about being associated with a product they did not control. But it’s clear they appreciate that LectroRM makes their transmitters more flexible and useful. They do contact me when they want to see new functionality built in, and I am more than happy to oblige. And the remote functionality is a selling point for their transmitters, so they do use LectroRM when promoting it.
Yes and no. Instead of adding the PDR controls to LectroRM, I created a standalone app called PDRRemote. It is a near clone of LectroRM, except that it only works with the PDR device, and it’s free.
ABOUT FREQ FINDER
WHAT IS FREQ FINDER?
FreqFinder is a calculator that is designed to make transmitter channel selection with respect to intermodulation more user-friendly. When many transmitters are used in the same area in the same frequency range, the combination of their transmissions can cause interference in ways that are not easily determined by the radio operator. FreqFinder makes accounting for that interference more manageable.
HOW DO YOU KNOW ABOUT THE INTERMODULATION EFFECT?
Shared wisdom at first, experience after that and then studying when I went to write FreqFinder. When it comes to the algorithm itself, there is a common equation and set of practices employed by other software for this purpose. I’ve used Intermodulation Analysis System (IAS) fairly extensively in my work, but always for installs. I figured I could use a mobile version of the algorithm in my location jobs.
FREQ FINDER LOOKS AND WORKS VERY DIFFERENT FROM IAS THOUGH…
One of the most important parts of app writing is developing the right user interface. IAS is designed to provide a large number of compatible channels upon order. Their default calculation allows for large channel counts. While a scan can be imported, the frequencies provided do not account for the scan. For installs, large channel counts are needed, the radio atmosphere doesn’t change, and there is time to finetune and test the resulting channel lists. FreqFinder is meant to be on-the-go. Fewer channels are needed, and generating channels quickly are sacrificed for more deliberate channel selection.
I’m often asked why I don’t have a manual and my usual answer is because by design, the user interface should be self-explanatory, and if it is not, I should redesign it. Then I offer to explain any part that doesn’t seem intuitive, and that helps me know what needs to be redesigned. I also encourage users to explore. Virtually, all functions have immediately understandable and reversible effects so you won’t break the app just by pressing buttons.
WHAT WOULD YOU SAY YOU THINK ABOUT WHEN DESIGNING A USER INTERFACE?
I usually think about user interface on two levels. The first level directs people where to go. Take the iPhone version of FreqFinder for example. A fresh install has an opening screen with three buttons. The left slide menu button and title bar button navigate away from that screen but very quickly navigate back to the home screen. The ‘+’ provides the immediate feedback of adding a new button to the screen with transmitter information and an arrow on the right, indicating progression. Pressing that button moves the configuration process forward and tells the user that his goal is to configure his transmitters.
The second level of user interface requires exploration. Nonessential functions are kept behind deeper menu trees and less intuitive user controls. The title button allows multiple profiles to be made. Long pressing on a transmitter in the list will bring the user directly to the Compatible Channels list, instead of the intermediary page. These functions are not needed to use FreqFinder, but they provide welcome advanced functionality. The left slide menu provides most of the smaller configuration items, but the default settings do not need to be changed in most scenarios.
OK I’VE CONFIGURED MY TRANSMITTERS. WHAT DOES FREQ FINDER DO WITH THEM?
The meat of FreqFinder is the Compatible Channels list. Selecting channels from this list assures users that their transmitter channels are compatible with each other. To determine this list, FreqFinder works in two stages. First, it takes every combination of two or three transmitters in your profile and calculates their intermodulation products. Then, it removes from the All Channels list the channels that are close in frequency to any of the intermodulation products calculated in stage one, leaving only compatible channels. There are variations to that theme in FreqFinder, but that is the broad concept.
At first, yes, and I had to do some UI magic to make it seem fast. For example: previously, when a user selected a transmitter and the configuration page appeared, the Compatible Channels calculation would start for that transmitter before the user navigated to the Compatible Channels screen. Now, devices are much faster and I’ve optimized the calculation quite a bit so the Compatible Channels list is generated more on demand.
THAT’S PRETTY COOL! GOOD JOB!
Thanks! Unfortunately, optimizing the calculation does make it difficult to alter it later. The speed boost in hardware has helped with some changes I felt were necessary later on.
SO WHAT ABOUT THIS TVDB THING I KEEP HEARING ABOUT?
Honestly, I think it’s the most useful part of FreqFinder. In all the experience I have with radio, the most critical aspect to performance beyond intermodulation and nearby operators is competing TV stations. TVDB provides a calculation of the field strength based on location, and in my experience, that number generally correlates with how happy I am with radio performance on a given day.
HIGH PRAISE FOR THIS EXTRA IN FREQ FINDER.
Don’t get me wrong, one should look out for anything that can go wrong. But intermodulation and the random taxi dispatch aren’t always factors. TV stations are the first thing to show up on a scan. At least in the United States, our legal operating ranges are TV station channels. Knowing how strong they are for a given channel is paramount.
The FreqFinder app downloads directly from the FCC for its TV station data. I don’t run any servers or collect data to support TVDB, and it is important to give users up-to-date and authority-provided data. I’ve looked into other government agencies for other countries. Their data either needs to be translated or is not as complete or easy to access as the FCC’s. They even provided me the code I use to calculate field strength.
ABOUT TIMECARD BUDDY
Yes, but this one has a meaning. The premise is to make the transition away from paper as innocuous as possible. Also, Android hasn’t gotten much love in this respect. As such, I have centered everything around images of payroll timecards themselves. The fields are all the same, including signature pads. And the result is a PDF of the original timecard for a given payroll company complete with entered fields. From there, we add some digital trappings.
DOESN’T EVERYBODY LOVE DIGITAL TRAPPINGS?
I certainly do! Fields can be stored in templates to be used from week to week (I call it, Autofill). Multiple employees can be managed at a time. And of course, no paper!
WHAT ABOUT AUTOMATICALLY CALCULATING HOURS AND MEAL PENALTIES FOR ME?
YOU SAY TIMECARD BUDDY IS IN ITS EARLY STAGES. WHAT ELSE CAN WE EXPECT?
I don’t want to make promises, but there are ways that Timecard Buddy still feels incomplete. More calculation is one. Also, having used it for the last job, it seems clear that more work should be done for managing multiple people. A daily times email seems like a clear winner. And a little more polish. After which, I’ll release a paid version.
WILL THERE STILL BE A FREE VERSION?
Yes. My goal is to make Timecard Buddy ubiquitous, and people have a right to be cautious when it comes to their timecard. It will be the same as the paid version but with ads.