Time Stretching BpmDj

Presented at Still Hacking Anyway (SHA2017), Aug. 6, 2017, 10:40 p.m. (60 minutes)

How to modify the speed of audio without altering its pitch ? #Making Time stretching of audio tracks can be easily done by either interpolating missing samples (slowing down the track), or by throwing away samples (speeding up the track). A drawback is that this results in a pitch change. In order to overcome these issues, we created a time stretcher that would not alter the pitch when the playback speed changed. In this talk we discuss how we created a fast, high quality time stretcher, which is now an integral part of BpmDj. We explain how a sinusoidal model is extracted from the input track, its envelope modeled and then used to synthesize a new audio track. The synthesis timestretches the envelope of all participating sines, yet retains the original pitch. The resulting time stretcher uses only a frame overlap of 4, which reduces the amount of memory access and computation compared to other techniques. Demos of the time stretcher can be heard at http://werner.yellowcouch.org/log/zathras/ The paper that accompanies this talk is at http://werner.yellowcouch.org/Papers/zathras15/ We assume the listener will have a notion about Fourier analysis. We do however approach the topic equally from an educational as well as from a research perspective.

Presenters:

  • Werner Van Belle
    I obtained my PhD at the Vrije Universiteit Brussel in 2003. My dissertation was about distributed systems. Afterwards I was more interested in signal processing. I worked at ETH Zürich and helped creating Audiotool. Currently I am developing BpmDj. I obtained my PhD at the Vrije Universiteit Brussel in 2003. My dissertation was about distributed systems. Afterwards I was more interested in signal processing. In particular one project, which I had started in 2001, kept growing throughout the years. * BpmDj is software to mix music visually. It relies on a novel method to visualize music, called beatgraphs. A beatgraph plots the energy content of a track along two dimensions. From top to bottom 1 bar is shown, and then in the same image, from left to right all bars are shown. This visualization makes it possible to easily overlay tracks and align their beats. BpmDj further finds similar sounding music through nearest neighbor detection, it measures tempo, provides a series of filters, a limiter, a time stretcher and export functionality. All in all: a complete product ready to be used. Aside from that one large project, there are a couple of smaller ones that were also quite interesting. * Cryosleep is software that generates brainwaves by forcing a binaural beat to appear. It does this however not by generating two competing tones. Instead it takes an audio track of your choice and modifies the sound inaudibly such that both channels cancel out X times per second. This is supposed to synchronize the listeners’ brain and thereby potentially help people relax. Oddly, the emails I get about this program are mostly from nutcases and people with behavioral issues. * Flow is an object oriented database that replaced SQL as backend in BpmDj. The database supports a transactional memory, virtual paging, garbage collection, garbage compaction, change listeners and petri-nets. Next to these two projects, there are some scientific achievements of which I’m proud. * developed a new method to normalize measurements from biological samples. This led to a variety of published papers, by researchers, who would otherwise find no information in their data. The paper explains that to analyze biological material both absolute and relative errors must be modeled. This can be done by setting out error distributions in function of the intensity of the signal. If one does so, happiness ensues. * developed a novel method to find the k nearest neighbors by accessing less than 30% of the data in high dimensional space (>1000 dimensions). The only competing technique are vector approximation files, but compared to that one , we store about 20% less data. The presentation I gave at OHM2013 summarizes the technique quite well. ‘~30% data access. 1000+ dimensional uniform spaces‘ * In 2007, I developed a technique to find images in larger images through Fourier analysis. The technique normalizes both needle and haystack images before it will send them through a standard cross correlation algorithm. Then there is research which opened opportunities but where the ‘inventive’ step took a lot less work. * Tempo detection of music. In 2001 I invented a technique to measure tempo accurately. Over the years it became only more accurate. The tempo detector itself is used in BpmDj, and can be seen at work in the current Android version of the software. * A similar story for a method we developed to analyze 2-dimensional electrophoretic gels. Invented/created in a couple of days. Published in a couple of months. Yet, the project itself continued. New data, new publications, patent applications, proposals etc.

Links:

Similar Presentations: