Later tonight we will be launching a new version of Zencastr with a primary focus on addressing the nasty audio drift issues that some of you have experienced. This update has been a long time coming but it was important that we got this right. I appreciate all of you who patiently provided feedback and bug reports through this frustrating time.
I have spent the last several weeks rebuilding the recording pipeline from the ground up. This should not only address the audio drift problem but make the app run more smoothly all around. A side benefit is that we now have a much better foundation to build on moving forward. I'm excited about the possibilities this opens up for the future.
What Caused All of this
Up until now, all code in the Zencastr application ran in the same process. This worked ok most of the time but it was vulnerable to situations where a computer's resources became strained. You could end up with a tug-of-war happening between the code powering the user interface and the code that was recording the audio. If it got bad enough, this would cause the recording code to get behind and miss little slivers of audio here and there. Thus causing the audio to drift noticeably out of sync over the course of a podcast.
This was a relatively rare problem up until last September when some updates that shipped in Chrome and Firefox inadvertently exacerbated the issue making it a much more common problem. As painful as this was to deal with, there is a silver lining. These changes were part of a larger transition that is now enabling a much better way of writing audio related code in the browser.
What Has Changed
Using brand new features available starting in Chrome 64, we can now totally segregate the audio recording code from the rest of the application. This means no more tug-of-war between the recording code and the user interface. Also it gives us extra freedom to add more immersive and interactive elements to the application.
A Recording Studio Experience
The most immediately noticeable change is that each participant's track now spans the page horizontally. And without such tight performance constraints, we are now able to draw and animate audio waveforms live as you record to create a more recording studio like experience. It feels like a much better direction to me but let me know how you find it.
Health Checks to Catch Problems Before They Start
A thorough diagnostic health check is run on every participant before the recording begins. If any critical issues are uncovered, a log of the health check will reveal itself with details about the problem and how to resolve it. Below is an example of the health check log showing that a user's mic wan't able to he accessed. Since this is a 'critical' issue, it will need to be resolved before the recording can continue.
Real-time Monitoring of Local and Cloud Backups
Underneath each participant's track is an informative footer that shows health check status, selected microphone, available storage space, and real-time stats on the progress of the local and cloud backups. The goal being to alert you of any problems with uploads or backups as soon as they are happening so you can address them on the spot. For instance, If you notice that the local backups aren't progressing, it would be prudent to stop the recording and investigate if the guest may using their browsers Private Browsing mode which can disrupt this process.
If you find these extra details distracting, simply click on the tab hanging underneath the footer and it will disappear leaving a simple and minimal UI.
Thanks for taking the time to check out our latest features. I think you will find this to be update to be a solid step up in performance, reliability, and usability. Be sure to let me know what you think in the comments. What would you like to see in future releases?