This was my intern project as an Audio SWE intern at Dolby Laboratories during Summer 2022. Submitted for patent review.
While I cannot reveal many details about this project, I’m happy to chat more.
Overview
Situation + Problem
Engineers on my team wanted a tool to detect audio features of a given album, specifically whether it was “gapless” or not. “Gapless” mean that there are no definitive pauses, gaps, or fade in/outs between songs (e.g. Pink Floyd’s “Dark Side of the Moon”), which makes it difficult to encode each track in a parallel, concurrent manner, while non-gapless albus can be encoded concurrently.
One gapless transition between songs in an album will qualify the entire album as gapless. Because there was no automated tool to determine if an album was gapless vs. non-gapless, all albums were encoded in a linear fashion.
Solution
Build a tool to determine whether an album is gapless or non-gapless, output the verdict in a format that can be easily parsed and integrated into the existing encoding pipeline, and write thorough documentation.
I planned, built, tested, and iterated a tool from scratch that ingests an entire Dolby Atmos album leveraging one of their C++ SDKs to read the content of each track in order.
I then used a Python digital signal processing library called Librosa to extract numeric data from the audio signals and analyze them at transition points between songs.
Then, the tool would output a verdict of for the album (gapless vs. non-gapless), include visualizations of the analyzed data, and export the audio samples of the analyzed song transitions to allow the user to go back and verify the results.
Skills + Learnings
Some skills I learned and refined during this project were:
- Parsing through a professional SDK and understanding its documentation
- C++, Python, and audio digital signal processing libraries like Librosa
- Conducting lots of research beforehand to find out needs of other engineers and translate them into code (e.g. code structure, documentation needs, output format, etc.)
- Starting a project from scratch and making sure it is structured in a way that can be easily built off of by other engineers. My team went on to further develop my tool and submit it for a patent review.