2017.04.08 - Release 4.7.8

Latest release has sharper beatgraphs, exports directly to mp3 and allows you to upload straight into mixcloud.

2017.03.23 - Cover images

The feature you all wanted but never asked for is finally here. Cover images. Yes you read that right. After more than 15 years we realized that a cover image will give your mix more personality. (That and the realization that if we ever want to upload mixes automatically to mixcloud, we might need to have them anyway).

2017.03.14 - Release 4.7.6

When placing a 120 BPM track behind a 60 BPM track, should it be played at half speed or should it be considered to be a 60BPM track as well ? Release 4.7.6 allows you to tell BpmDj what to do.

2017.03.10 - Usage statistics 2016

Which countries harbor the happy souls using BpmDj ? Below some usage statistics.
211 US, United States
105 CL, Chile
94 GB, United Kingdom
73 NL, Netherlands
55 TH, Thailand
51 IT, Italy
43 MX, Mexico
42 PL, Poland
39 RU, Russian Federation
37 FR, France
33 BE, Belgium
25 CA, Canada
24 CH, Switzerland
22 RS, Serbia
22 AU, Australia
18 ES, Spain
16 SE, Sweden
16 PE, Peru
14 ZA, South Africa
12 GR, Greece
12 BR, Brazil
11 CN, China
10 KZ, Kazakhstan
10 AT, Austria
9 RO, Romania
9 CZ, Czech Republic
7 DK, Denmark

2017.02.18 - Undo/Redo

Finally, the long awaited undo/redo has been implemented and is available version 4.7.5 onwards. Just thank me and check the donate page.

2017.02.09 - Again compatible with Android

BpmDj 4.7.4 should be compatible with the latest Android versions. Make sure you allow BpmDj to access the external storage. Also a new stable release of the Desktop implementation has been released.

2017.01.14 - Release 4.7.3

A new nearest neighbor module. Providing you with an optimal set of song candidates for your mix.

2016.11.22 - Release 4.7.1

Release 4.7.1 allows you to choose different crossfader types for the incoming and the outgoing songs. Furthermore, the spectrum modifications can be applied together with volume/panning modifications. And lastly, the cutoff value of the spectral crossfader can be choosen as well as whether it has to sweep or not.

2016.10.12 - Release 4.6.9

This release updates BpmDj with a deep believe network: instead of comparing rhythm patterns blindly, such a network tries to discern rhythmical structures and compare those instead. The first time you run BpmDj after the update it will perform a database update. During this time the analysis icon will be bright. Once it is finished, have a look into the new suggestions provided by the song selector.

2016.07.02 - 4.6.9 - beta release

To people that run the Desktop version from the Beta channel: the latest update includes a deep belief network, which should be able to provide better suggestions when adding new songs to the mix. When the updated BpmDj starts it will automatically trigger an internal database update (the analysis icon will be bright during that time). After that it should provide you with better suggestions. Furthermore, you will find two new buttons at the end of each song candidate: a + and -. These tell BpmDj that you do or do not like this song in the mix. After pressing either, the song list will adapt its search parameters and try to provide better alternatives. Note that this is all still very experimental ! For instance, an Achilles heel in the neural net training is that I train it on the my body of music (~260000 tracks); and they are certainly not all different styles. If you have a large music body and would like it included it in the training phase, please contact me. I only need a copy of the .bpmdj1 files.

2016.04.07 - 4.6.8 - Attach a playback speed to cues.

This update provides you with a kick-ass feature to modify the speed of the mix through a cue. Furthermore, now a sound engine can be assigned to each individual track.

2016.03.12 - Zathras-2

This version brings you a new version of the Zathras timestretcher. Slightly better dealing with transients and more pitch-correct. Depending on the hardware your phone might or might not be capable of running this mode.

2016.02.12 - One of the first beatgraphs ever.

Beatgraphs were invented end 2000. These are not the cosmic background radiation. Instead they are two of the first ever beatgraphs plotted. Over time the analysis improved and the plots themselve became somewhat nicer to look at.

2016.01.19 - Yixdees Winter 2016 Minimix

That beta test of BpmDj seems to go well. A great mix by Yixdee.

2016.01.18 - Beta Testing BpmDj for Desktop

If interested in Beta testing BpmDj for Desktop, then drop us a line.

2015.12.21 - Audio functionality on Desktop.

And so it came to pass that the export functionality also has been ported. It must be said that converting a smartphone UI to a desktop all make it appear so futile. Yes... Some better styling will be necessary, but we are not in that stage yet. First furniture, then paint.

2015.12.14 - Daylight for Desktop Beatgraphs

First light of day for beatgraphs on the desktop. Now, finish those 5468 todo items and we are done

2015.12.09 - Still working on a desktop version

We have been on and off about creating a desktop version of BpmDj, similar to the android application. Currently about 33300 lines of code are android independent and placed in their own module. 29400 lines remain android specific. From these the complete audio renderer should be moved out as well. The goal is to reduce the size of the android code as much as possible. Once done, we can rewrite the android functionality that cannot be mapped to Java in a straightforward manner: that is the entire graphics part and event handling.

2015.11.08 - Time stretching research paper

Zathras-1 extends BpmDj with a time stretcher that does not modify the pitch of the sound. This article describes how we implemented a sinusoidal modelling by measuring the amplitude and phase envelope of spectral peaks.

2015.09.28 - High quality time stretching for BpmDj

Zathras-1 is the all new time stretching technology we developed for BpmDj. It took about 9 months to create and it has finally been integrated into the product. By means of sinusoidal modelling we are able to provide you with a better quality time stretcher than current tools such as overlap-and-add or phase vocoders. Not only that, the timestretcher is reasonable fast. With the potential to timestrech 14.2 stereo tracks simultaneously on a desktop machine, our hopes are that the C++ implementation (which is only 3% faster than the Java implementation), will be sufficiently fast for most phones to at least time strech 2 stereo tracks. Turning Zathras-1 on is easy. Go to the settings dialog, select 'speed changes', from the drop down box select 'Zathras-1'.

2015.08.20 - Impressions of CCC 2015

Between grappa and storm, we got good weather and 4 people who made a mix with BpmDj. Be sure to check 'm out

2015.08.05 - Meet us at CCC 2015

This year we will again be at the Chaos Communication Camp 2015 (which takes place around Berlin)

At CCC 2011, we gave a talk on how BpmDj performs its audio analysis. Two years later, at OHM 2013, we explained how the nearest neighbor detection and associated weight matrix is created. This year, we won't talk about the project anymore, but instead give you the opportunity to meet the developers.

Actually, we want you to come to us with ~100 tracks and an idea for a mix. We will then sit together and create that mix. As a reward you will receive one of our heat sensitive cups.

2015.07.16 - Release 4.5.6: Fine tuning

  • Comes with a new wooden skin. Be sure to check it out
  • With this version you can shift the transition boundaries to exactly the place that you would like to have them.
  • We solved a long standing filter reset problem that could occur at the start of a transition. That bug has been totally and utterly detected, analyzed, reanalyzed and squashed, eliminated, eradicated until no distinction between oblivion and the bug existed.
  • We further extended the beat aligner to have a fast mode. Simply tap on the beat aligner to move the song slow or in quanta of 1/16th notes.
  • There should be fewer ticks during playback, especially in bass-rich sounds.
  • We found out that a hard crash of the device could screw up the database. This should be solved.
  • It was not possible to place am envelope at exactly the start of a sing,
  • Latency calibration is more accurate. Be sure to recalibrate your BpmDj install.
  • And lastly we upgraded the envelope visualization. Instead of the yellow and green dots in the seekbar, you can now see the exact event positions on the beatgraph, where they occur.

2015.05.19 - Version 4.6.4 released.

An important Beatgraph rendering bugfix and a new skin for ya all. If you prefer the classic black, just select it in the settings, otherwise this one is the new default.

2015.05.09 - Release 4.6.3 - Tags

This release brings you the finest of tags to your song selector.

2015.02.11 - Release 4.6.2 - bugfixes

1) Brick crossfader is drawn differently 2) Lower memory requirements 3) fixed a beatraph error that occured in 1/2000000 of the runs 4) segments could be 0 bars long 5) song envelopes could crash during seeking 6) resampler could crash in 1/1000000 samples.

2015.02.06 - Version 4.6.1 adds tempo unlocked transitions

A tempo unlcoked transition plays each track contributing to it at its normal speed.

2015.01.31 - Upcoming: Tempo unlocked transitions

Upcoming exclusive feature: tempo unlocked transitions. Both songs play at their original tempo throughout the transition. The first at 135 BPM; the second one at 146 BPM. Useful to drop the beat in the outro of the previous track.

2015.01.26 - Version 4.6.0 released

This update fixes 2 bugs: 1) ticks at the boundaries of spectral crossfaded transitions 2) a crash when a song is placed behind a song rom which the beatgraph wasn't loaded yet.

2015.01.04 - 4.5.9 - Downloads and anti-aliasing

This update allows you to download remote tracks to your phone and adds an anti-aliasing filter so that speed changes no longer produce a metallic ring.

2014.12.24 - Remote playing

This Xmas release allows you to play songs from a remote location. Run the BpmDj on one or more desktop machines and connect your phone to them.

2014.12.07 - Version 4.5.7 released

This upgrade needs to rescan your entire device.
  • Improved database performance
  • Easier mixing by halving or doubling the tempo of a song automatically
  • Reduced audio dropouts on low latency devices.
  • When BpmDj crashes it is often because it runs out of memory. In this release we lowered the allocated buffersizes for mp3 decoders and modified the volumebar to scale to a lower resolution whenever the screen density is too large.

2014.12.05 - Buy now and become part of an exclusive community

Starting 25 December 2014, BpmDj will no longer be sold. Those who bought it will receive future updates, those who didn't will need to keep working with the demo version.

2014.10.03 - Major bugfix

Release 4.5.6 pushes a major bugfix in the blocktree used in the database. When more than 16000 entries land in an index and are deleted in order from the tree, the index might become completely messed up, potentially leading to garbage mixes and so on. Because deletes don't often occur in BmpDj, this bug escaped our attention. Nevertheless it is quite a severe problem in the persistent change listeners. Long story short: upgrade necessary.

2014.09.17 - Release 4.5.4 offers manual crossfades

This release adds the possibility to manually steer the crossfader position during song transition.

2014.09.09 - Release 4.5.3 requires full reanalysis

Important: This release requires you to reanalyze all tracks you have on your phone. Once you start with this process you cannot go back to an older version.

2014.08.30 - Beta testing of new release

Getting a new BpmDj slowly on the road again. After refurbishing the entire database back-end, we also got rid of the horrendously contorted Analysis service we created to satisfy Google daemons. Long story short, the software is changing so much that we are a bit afraid of releasing it. Not only will users need to reanalyze their entire collection, at the moment they might bump into bugs we didn't spot yet. If you are up for a challenge, please contact us, then you get a beta-release before it goes officially public.

2014.07.03 - Limiter

BpmDj has just been upgraded with an output limiter. Go to the volume bar, click on the limit icon and let the loudness wars continue. When the limiter is turned on a fast acting look ahead limiter is applied to the audiostream. This makes it possible to play your songs slightly louder than originally intended and also covers any clipping issues that might result from a too strong gain. When the limiter is turned off, the output volume will adjust itself downwards whenever the amplitude exceeds 0 dB.

2014.06.11 - The Weighted Metric

Dear fans, open windows and receptive audiences, did you ever wonder how BpmDj decides which songs are close and which songs are far away ? Wonder no more describes the strategy used to train the weighted metric. The resulting kick-ass nearest neighbors and blurb I would like to add here should convince you that it is a really really cool method. You know what... I have been too long at this. Enjoy the information nonetheless.

2014.05.08 - Version 4.4.9: 3x faster analysis

Version 4.4.9 is out with a brand new analysis pipeline. Should be about 3 times faster, which makes it on common devices 9x realtime.

2014.04.18 - A nice review on BpmDj


2014.03.14 - Tutorial music.

Starting from version 4.4.7, we started to use music made by Inavon ( for the tutorial. The old demotracks can be found at

2014.03.11 - BpmDj 4.4.7 released

With this new update we provide you with 1) a kick-ass super resonant delay line and 2) a possibility to set the wanted latency. We hope you enjoy it !

2014.03.03 - A Talk at University Zürich

BpmDj is a tool to mix music on your phone. It uses beatgraphs to visualize the music in 2 dimensionsd. By sliding such images over each other, the user can align and mix his music. The software also helps the DJ to navigate his music collection by calculating the nearest neighbors towards any song in its database. The talk focuses on the scientific aspects of BpmDj. It starts off with fine tunings we made to an autodifference-based tempo detector. Then we explain how rhythmical patterns are extracted and normalised, which provides us with a series of content vectors in a >1000 dimensional space. To store these points we created a novel data structure that allows us to find the k nearest neighbors by accessing less than 30% of the data, and with 20% less storage than needed by vector approximation files. The last part of the talk focuses on a fast converging distance metric learning. It learns the weights of the various dimensions by using their cross correlation function. Thereby it learns a true distance metric (as opposed to a distance function).

2014.02.26 - New feature: Reverb/Echo

The update to 4.4.6 introduces a new song effect: the reverb. Nothing new, but something that was missing from BpmDj nonetheless.

2014.02.25 - BpmDj Demo on Kindle

Hello, BpmDj is now also available on Kindle. A pitty that I don't have a kindle myself to test it. If you do have such device and feel willing to help me out here, could you please contact me ?

2014.02.18 - Mobile version of the website

Allthough BpmDj target smartphones and tablets, we never really bothered to make a website that was easy browsable on smartphones. This update should fix that.

2014.02.11 - Kids on Xmas Eve play with BpmDj

In particular they enjoy whipping out their favorite script and punch in our servers ip address.

2014.02.04 - Preview of new navigation screen

After a break of a couple of months (and playing an inappropriate number of Candy Crush games), we figured that BpmDj could use a main screen to help users navigate. This is a small preview. A release will take place once we went through all other screens as well.

2014.01.22 - New years party

A set I played at a new years party in the French Ardennes (2007->2008). Because the set was quite long I tried to recreate it with BpmDj and figured out that the error messages when the files are larger than 2G are incorrect. If the mix is longer than 3 hours 20 minutes the files could not be created, but the warning was a 'disk full' error. In this mix I experimented with the no-op crossfader and the panning crossfader. I also noticed that I play each artist multiple times. My apologies for that, let's hope you like them artists.

2014.01.09 - Panning Crossfaders

This small update introduces 2 new crossfading types. A panning crossfader that shifts a song from one loudspeaker to the next and a no-op crossfader for those moments where the old song has a natural ending and the new song has a natural intro.

2014.01.08 - Dance

'A Little Dancing', originally made in 2009 on a Mackie mixing desk and a kaoss effect pad, the result flanged too much. So in 2013 I remade it using the brand new BpmDj. The songs are pretty old (90-ies) and are ... well... very synthy at times. I hope you enjoy these blasts from the past.

2013.12.29 - Train Trip Jam by Just Friday

"Short noise techno made during a train trip with a minimalistic setup... Should have seen other passengers' faces;" Another mixtape for the end of year by Just Friday. We think this is by far the best mixtape ever made with BpmDj (excluding our own staff of course *hehe*).

2013.12.18 - Club Ham & Cheese

Just recreated a Dance Club to hit your neighbors with. Well, actually recreated it because it was originally made in 2009 with a Behringer mixing desk and a Kaoss pad, which resulted in a flanging sound. A couple of days ago I remade the mix, threw out some songs that didn't fit and exported the stuff. Probably not everyones taste but relaxing nonetheless. (The original version of 2009 is at

2013.12.13 - A Dutch Warehouse

A first-timer mix created by Just Friday. Quoted: 'A quick test of BpmDj. This mix was made in something like 20 minutes (yes, I know, it's a 53 minutes mix, but BpmDj is a timeline editor...). Let's discover the app functionality with me ;)'

2013.12.08 - Tempo Detection, Rhythm Extraction & Nearest Neighbors in Music Land

A talk explaining the research behind BpmDj. The first part explains how tempo of music is measured. The second part of the talk explains how rhythm patterns can be obtained from music. The third part explains a method to teach a distance metric what songs are near and far.

2013.11.24 - Cues

Just added cues to BpmDj. Updates are being pushed into Google play as we speak.

2013.11.14 - Bugfix Release

An update to BpmDj was released. The changes are mainly bugfix related and well... the bugs were hard ones to crack.
  • a better analysis queue that allows you to set three priorities: lo, middle and high (A weakHashMap has weak keys not values. Figuring that out took a lot of Java reference tracing)
  • a filesystem scanning that allows loops in the filesystem and (Java <1.7 can't detect loops easily and android does not allow me always hierarchical access to thing that are accessible)
  • lastly a better mp3 decoding in cases the mp3 has a large image included in the mp3 (xing headers combined with large images lead to a faulty frame size, something that was only visible when seeking in front of an mp3).
Anyway, all is good now. Looking forward to even more obscure bugs, which will undoubtedly be even harder to crack.

2013.11.07 - BpmDj rejected from Google Play for Education

No kidding... How can a mixtape app _not_ be eductational. "Thank you for submitting your app for inclusion in Google Play for Education. When we reviewed BpmDj on the Nexus 7, we found a few issues noted below that need to be addressed: Limited educational value."

2013.10.29 - Electrohouse

Electrohouse, a mix originally made by The Marquis. After obtaining the songs in the mix, we loaded them all up into BpmDj and remade the mix.

2013.10.19 - Join our Beta Program

Together with the just released live version, we also reopened the beta-program. This allows you to use the full application at the cost that it might sometimes crash. The beta version will automatically share usage information as well as stack traces with us, enabling to improve the product.

2013.10.18 - BpmDj Live !

A Live version of BpmDj has just been released. With this update we introduce a second stream which plays independently from the monitor stream. To use this feature you will need either a splitter-jack (which converts a stereo jack to two stereo jacks, each carrying the mono signal), or use a mixingdesk to route the mono signal from each channel to the main speakers or the headphones.

2013.10.12 - Chilly DJ Willy

Two hours chill.

2013.10.10 - Version 4.4.0 out

The latest update includes an even tighter latency calibration than before and guides new users through the analysis stage. For those interested in buying: you can do so now at only 20% of the target price. Plans for the future include a live version whereby one phone will inform another one of what has to be played. Also the website has been updated to provide you with the same content as the facebook and g+ pages. And finally, there is a fresh Tumblr blog where we will be posting some more technical/arty info.

2013.10.03 - Latency Calibration

The latest update allows you to calibrate the latencies of your device. Also, if you consider buying BpmDj: do it now at only 15% of the target price.

2013.10.01 - Spectral Crossfading

This short video explains the spectral crossfader by demonstrating it on 2 songs. The two tracks used for the demonstration are Skyline by G-Light and Albinoni by Infected Mushroom

2013.09.28 - A mix for lazy sundays

2013.09.25 - Automixing

A last improvement before the end-of-year rush: Automixing. When you add, insert or replace a song, BpmDj will try to guess where a transition might be useful. This automixing feature is obviously not bulletproof but gives you a better starting place to start creating your mix from. With less time needed to craft your transition, you have more time to focus on the song selection. The changes will be automatically be pushed into the Demo and Full versions.

2013.09.18 - Speed Mixing

Speed Mixing: in about 6 minutes we create a mix of an hour. Of course all songs were already in the workspace so we only had to beatmatch them.

2013.09.02b - Mala Reordered

A new mix we created to test the Windroy emulator. Just a selection and reordering of some of the sub-bass tracks of the CD 'Cuba' by 'Mala'. Was removed from mixcloud due to copyright facism.

2013.09.02 - Windroy Android Emulator

Hello, good news ! There exists a windows android emulator that is sufficiently fast to run BpmDj smoothly.

2013.08.28 - Free Demo Version

A free demo version has been release through Google play. It should give you a good feel what the application is about. The demo version only allows you to edit up to three songs.

2013.08.21 - Making Mixtapes

A new tutorial on 'making mixtapes'. In proof tested style (there are 4 categories of junkies) we talk you through the obstacles of creating a great mixtape. Demonstrates 6 transitions: End-to-end; begin-to-end; begin-to-begin; break-to-break and intro-over-outro. Be sure to try them.

2013.08.18 - A Mix made by Twisted Switch.

The transition at 8'30" is rather interesting to hear.

2013.08.15 - New Product Page

Just brought a new product page online. Have a look and let us know what you think.

2013.08.06 - Tempo Detection

A video illustrating tempo detection. 4 elements are shown. The top panel is the delay buffer, which allows us to go back in time. The white lines are traces throughout the buffer. Every time a new sample comes in the values at the trace positions are differentiated towards the incoming sample. That result is then shown in the second panel. The absolute value of those are then calculated and plotted in the third panel. The last panel is the accumulated autodifference (top left is 0,0 so this plot is flipped on the y axs). The tempo is found in the accumulated autodifference (at the bottom) as absolute value of a strong peak as well as the distances between peaks in the autodifference plot. The plot shows three frequency bands by overlaying red, green and blue to conver respectively the lo, mid and hi ranges.

2013.07.23 - Dawn of BpmDj

Dawn: BpmDj has been released through google play. A fine moment to thank Yixdee (and his grandma), Khoi, Dj. Fred, Wiliam Lachoua, Calum Price, Tornsage, Stefano Fasciani, Jan Tchorz, Kepz, Jam Bam, Shho, Mr. Bernardsky, Infuythsion and others who have either actively supported the development as beta-tester, track producer, graphic artist or have been there to discuss BpmDj. The beta release people downloaded will upgrade automatically to the latest release version.

2013.07.02b - Hack ?

To those who found the 'Hack' button... That button will crash the app because it calls functionality that ain't there. The intent was never to beta-release with that button present. Alas... I forgot to remove it before publishing. For the curious ones: that button helped me generating the movies at

2013.07.02 - Guerila Marketing

Time for some guirilla marketting at festivals. A 1.5m x 1.5m banner has just arrived.

2013.06.29 - Spoken Tutorial

Just brought a spoken tutorial online. Essentially the tutorial after the application installs.

2013.06.26 - Yixdee vs Kepz

A 52 minutes mix of two interesting artists: Yixdee and Kepz. I started out by downloading all of Yixdees 161 songs, chose those who sounded properly French (allthough he is Corsican) and then interleaved them with songs from the master of Australian chill: Kepz. The result is a relaxed tension, useful for a summer near the sea. Enjoy.

2013.06.23 - First BpmDj T-shirt ever !

2013.06.20 - HTC Arrived

Yes, a HTC One phone has arrived to test BpmDj on it. Very nice pone. A lot faster than that tablet I bought. Let's see whether the app is usable on small devices.

2013.06.11 - HTC Phone ?

I'm receiving feedback on a number of HTC One phones that 'reset' their playcounter after turning the phone, or after locking the screen. Other people have spurious crashes. I'm trying to investigate that now but at first sight it has to do with the ridicoulous resolution these phones have ~460DPI. Generating images at this resolution is asking for outofmemory exceptions (and the consequent restart). If you have a HTC One/related phone, I might need your help to test updates because I don't have one myself.

2013.06.07 - Beta release updated

An update to the beta release has been published. Mainly the menu system has been revised because there was no way to match the old menu system (pre honeycomb) with the new menu system (post honey comb).

2013.06.03 - Facist phone providers

Because the previous beta release was often not installable due to facist phone providers, we also offer a beta release through google play. To join the beta program you will first need to join the BpmDj group at G+ (, after which you can test the beta release by going to

2013.05.27 - Talk at OHM2013

At OHM2013 I will talk about the tempo detection as implemented in BpmDj. The talk will largely be a rerun of the talk I gave at CCC2011, with some newly added value, such as a. live tempo detection, b. development of a weighing matrix and c. a revisitation of beatgraph visualisation. I guess they accepted this talk because the previous one went lost due to a video mixup. The old talk is at

2013.05.17 - A Beta release

2013.02.02 - An Overview of Beatgraphs

An overview of beatgraphs, since its inception (2001) until now.

2012.12.04 - Long time since

It has been a year since I compiled BpmDj myself. Recently I found out that it poses some serious challenges to compile this under Debian and/or Ubuntu. The debian problems had to do with a too recent gcc compiler and C libraries, and required adding a unistd inclusion at various places. The Ubuntu problems were more serous and had to do with the fact that the linker is by default 'intelligent', which means that it could not resolve fftw and Qt libraries, unless we specified the objects and libraries in the correct order (That's how intelligent it actually is). These issues have now been solved (I hope), and should result in an easier compilation process. See to download the latest patchlevel.