A synchronous audio recorder capable of recording HD audio from anywhere in the world by collecting all the audio streams together in a single package for professional and recreational use.
Having worked in podcasting for over seven years, one of the most difficult things to do is to collect audio without any form of distortion and without the fear of data loss across the Internet. At this time there are two methods to collect audio across the internet.
Skype is above and beyond the most popular VOIP client with 124 million ‘connected’ users[1]. Skype has no native option to record audio from any call. Instead, it relies on plugins from programs like Pamela, a third party Skype suite, which only includes this as part of an entire collection of services like voicemail, call forwarding, chat autoresponders, etc. And as of January 1st, 2014 Skype had disabled its API rendering Pamela and any of the native Skype recorders obsolete.
This also does not address two of the most difficult hurdles for using Skype. First, if one is not using a program like Pamela to record the VOIP stream then they must invest in a setup of expensive mixers and audio equipment that quickly becomes daunting to a starting audio enthusiast who simply wants to pick up and start recording. Suggestions for how to start recording something as a two person show across the internet immediately becomes a complex question of which equipment to get and how are you going to acquire the audio. For the trained user this issue is eventually figured out but it does prevent a barrier of entry for anyone who wishes to record audio off the internet through traditional VOIP programs.
Second and likely more important is that VOIP programs significantly reduce audio quality in exchange for faster overall connection speed. This quality reduction occurs no matter the distance as the VOIP imposes its own throttling in addition to further distortion. There has been research done outlining some of these concerns like codec, delay, de-jitter, and network issues in addition to problems brought about by the user of wifi connections. VOIP is not currently at the point where HD audio can easily be transmitted within even a short range.
There is a method to overcome the VOIP quality concerns which is to record a local version of the audio on each participating machine and then later synchronize these files together manually. This limits the audio quality only to the users audio setup and their ability to record locally. In most cases, only a very small to no investment is required to record audio at a high quality. Even many laptop and desktop microphones are complex and sensitive enough to handle this task. However, this method invokes its own set of challenges.
First, the audio is not automatically synchronized. This means that the time in which one user commits to record followed by another may include enough of a window which causes further necessary post production editing to properly line up the audio. Otherwise, the two streams would be off sync and the multiple communications would then have to be carefully rearranged using an audio editor. This might be trivial with only a few files synchronized within a short time frame but if there is a large enough delay and/or there are a large number of individual audio streams this single task can become exceptionally difficult.
The next issue is that each individual records their own audio yet this audio must be sent to a single individual for editing. If a forgetful user does not send the audio then the production sits in limbo until the handoff is made. So this method takes some of the control out of the producers hands by requiring that the performers themselves will make sure to send the audio and force them to set some standard to send these files to one another.
Lastly, any mistake made can destroy the entire recording. Since each use records their own audio it only requires one of those recordings to fail for the entire recording to be useless. This may be moot in a case like audio or acting where a line can be redone. But in podcasting and long, sustained recordings a missing audio file renders the entire production worthless. Loss of internet connection, loss of power, system failure, disk full, and more are all very real threats and make this option extremely dangerous and frustrating.
A synchronous audio recorder works on a local recording of the audio being sent alongside a VOIP call. This makes it similar to the second method of recording audio to allow us the option of native, HD audio.
We are able to overcome the synchronization and file sharing issue by designating a particular user as the Host and other users as Collaborators. The Host user will request to start a recording session and invite the collaborators. The Collaborators will join in a virtual lobby.
When the recording is ready to begin the Host then submits a ready check to the Clients to inform them they are ready to start recording.
At the point that all the clients confirm they are ready to record a slight pause will occur before all the streams begin to record. Each system will reach out to a global time server and each system will begin recording their audio stream at the exact same time based off that timeserver. This handles out first problem for local recordings as all audio in the stream will have automatically started at the same exact time.
At this point the recording has begun. From here the program works as a basic local recorder and collects only the audio stream from any host or clients who were part of the ready check. Next, the Host will call for a Stop Check. At this time, the clients will confirm and stop their recordings. This adds some further synchronization assistance but is not as important as the primary Ready Check.
After the recording has concluded for all streams the audio recorder will take the collected audio from each system and forward the audio to a easy to collect location (online hosting service within DevScruff or utilizing other cloud services like Dropbox, Google Drive, Etc).. However, since this process is automatic it ensures that the second issue no longer is in the hands of the Clients and that the audio file can be easily accessed by the Host.
The third issue given above is still a concern and future research will need to be done to mitigate some of these issues. Through intelligent design and appropriate feedback (warnings when near disk full, autosaves, etc.) we can drastically reduce the chance of any data loss.
Some of the likely applications for this software is as follows