2018.06.20 - Save as is finally there + zip export.

Finally we are proud to bring you the 'load/save as' feature. We realize it sounds a bit weird in 2018 to make a big deal out of this. After all, which software does not have a save as ? The answer until now was: BpmDj. Indeed with its megalomaneously cutting edge technology it was able to store your data in a *gasp* database. An dit would do so automatically. And given that this was originally aimed at (implied but never said 'stupid') users, we did not feel 'up' about giving the user a choice where to save his or her data. With this release we've come clean. A quick overview
  • Open a mix -> Mix|Open -> select file or Mixes|Mix overview -> select mix
  • Save a mix as -> Mix|Save as
  • Move a mix to a new location -> Mix|Move to
  • Create a mix bundle -> Mix|Zip mix

2018.05.19 - Save/save as...

Recently we encountered a problem where a user had two parallel installs. One for version 4.8.5 and one for version 4.9.0. The former version did not respect the mp3 samplerate while the latter does. Songs with a non 44.1kHz samplerate would be playing at different speeds. After version 4.8.5, that problem had been resolved. We took care to play the old mixes still as they were created (that is at a wrong samplerate).

What happened: version 4.9.0 analyzed a bunch of new tracks. One of these tracks had an odd samplerate and was used in a mix created in 4.9.0. Then version 4.8.5 was started. It saw the newly analyzed beatgraphs and realized it did not understand what they were about and reanalyzed the tracks, writing an older version of the .bpmdj1 files to disk. That is: without the samplerate info. Some time later, version 4.9.0 imported those beatgraphs again, thereby it saw the old file format and assumed the data was still okay (except without knowing the samplerate), and let them be as they were. All fine, until that mix was opened which contained the odd tracks _with known samplerate_. There really wasn't any such track anymore. Therefore it refused to load/play that particular track. The solution was to start the latest version again with --mp3-upgrade on the directory with the flip-flopping beatgraphs.

Nevertheless, it shows a problem we are facing: many users want to have multiple installs of the software, yet a software can generally not be forward compatible. Typically what is done to solve this is to avoid data interaction between multiple installs. At the level of beatgraphms (.bpmdj1 files), this is not the case, these are shared between installs and serve as an ankerpoint to define the identity of a file. How this could be solved is not at all clear yet. Yet there is also a second problem: the mixes themselves (.bpmdjs files) are shared between installs. If version 4.8.5 sees files in a 4.9.0 install, it will assume it can write it. Equally so, a version 4.9.0 install will assume ownership over 4.8.5 files. That is a real problem because, if mix 4.8.5 is deleted in install 4.9.0, it will really be gone from disk. Install 4.8.5 might rewrite it (if it still has a cached version in the database), but if install 4.8.5 is removed before the mix is rewritten, then it will be removed.

The history of the above clusterfuck lies in the phone version of BpmDj. On a phone we were absolutely sure that only 1 BpmDj version would run and we were sure it would never go back in version numbers. On desktop this is no longer true and I believe we must face reality and start thikning about giving the user control over where his files are saved. You know: like a real 'save' and 'save as'.

2018.05.09 - How does a time signature relate to the number of beats ?

A question to the more musical notation inclined people: if we have a timesignature of 4/4, a barlength of X minutes, then we can compute the BPM by as 4 beats/X minutes. Now.... if we had a 3/4 signature, we would get 3 beat/X minutes, which means that the BPM wil be either over or underreported if we were to treat this rhythm as a 4/4 signautre. Sadly, this is what most DJ tools do. We're trying to fix that in the software and here comes the interesting part... The denominator '4' was actually never used in the previous argument. Assume we had a timesignature of 6/8. Would a multiplication with 6 really be the correct number of beats ? For highly denominated signatures, this would result in absurdly large tempos.

From what I gather this is mainly a notational matter: 6/8 is sometimes easier to write the score than 3/4 because of the note lengths. A second argument is that 6/8th has a different energy hierarchy than the 3/4th. Assuming that it is indeed related to the difference in hierarchy, then how do you actually count the beats in a bar if you look at the timesignature ?

2018.05.01 - Bug fixes

The past three months, we've been creating a testbed to verify whether the software is backward compatible. That is: can it properly load all sessions from any previous BpmDj version, despite changes to the internal data format. During this test process, we encountered many dead ends and problems in the software that were never really apparent to us. After all, song analysis is something you run once and be done with it and we did not sufficiently test that before each release. For about a year or so the software required two starts before it would analyze your tracks, and even then it would often stop for 5 seconds before continuing. In other instances we found that entire parts of the database were unnecessary.

Regarding new features: the nearest neighbors have again been overhauled, you might see that your next start will start upgrading the beatgraphs. Luckily this process is fast. About 50 milliseconds per track. Most likely your harddisk will be the bottleneck during this process.

And to give you something new as well, we added a new display option: 'delignate beatgraphs'. See menu Display|Delignate bars.

2018.02.11 - Release 4.8.9

Various bugfixes
  1. BpmDj will no longer automatically zoom in on an opened segment
  2. songs would sometimes not show up after analysis in a directory that was already being observed
  3. The 48000 to 44100 convertion did not cooperate well with Zathras
  4. Mix duplication could lead to crashes due to eq vectors being null
  5. Song colors are choosen such that they are different between consecutive songs (in as far as possible)
  6. The MP3 decoder would sometimes produce a tick at the beginning of an mp3.
  7. The beatgraph analyzer will no longer try to analyze tracks on remote machines.
  8. Much less memory consumption for the database.

2018.02.07 - Release 4.8.8

Various goodies:
  1. 32 band equalizer
  2. Manual replay gain
  3. Mix equalisation to the average equalisation profile
  4. Choosing track color
  5. Showing meta information such as location and tags for songs in the mix
  6. Targetting only previous or next song when inserting a track.
  7. Targetting multiple songs by either aiming for the cluster center or all tracks indiviudally.

2018.01.24 - Release 4.8.7

Includes various bugfixes and an enhancement to the nearest neigbors. When you choose to display lo/middle or high spectral beatgraphs, also the song selector will primarily try to match the lo/middle or high frequencies. To make this possible BpmDj will rescan all existing beatgraphs at the next startup. While it does so it will show "[nnn] <file that is being read>" in the statusbar.

2017.12.21 - Release 4.8.6

Proper samplerate support for non 44.1kHz MP3's. See the sample rates page to know how theconversion of old to new mixes is performed. Also a heads up to people planning to use BpmDj on new years eve. When you start bpmdj.jar, it will try to connect to the net to figure out which version to start (and download if necessary). If you are on a computer without network this will not work and you might need to start bpmdj-48600.jar manually from the same directory.

2017.11.09 - Release 4.8.5

BpmDj version 4.8.5 releases the power of partials-mixing onto the unwitting public. Indeed, with this new mixmode we set a new standard for audio mixing. Open a transition, click on the partials template and observe how smooth and seamless the sound blends from one point in time to another. Dear brothers and sisters, in all honesty this is the real shit. We are taking professionalism a step beyond mere 'consultant'. This is a new gold standard. Dare we say platinum ? Secondly, in all modesty -if there really is such a thing-, and by popular request, we added a file browser to the song selector. Lastly, sorting songs according to their nearest neighbors is now done by selecting the 'distance to neighbors' or 'distance to mix and shortlist' choices from the combo box topright of the songlist.

2017.10.30 - Android support discontinued

We just removed BpmDj from the google playstore. A number of factors led to this. First of all: the 5000+ users testing BpmDj were, on average, not able to create a mix containing 3 songs. So we do have a huge user interface experience problem there. That combined with 162 sales, yet only 27 people keeping it installed, suggests that the android app is a failure and/or in a market where there is no need for it. Of course, the above is not a reason to remove the app as such, except that the developer toolchain provided by Google, is so horrible weak, that with each new release we would spend days fixing whatever great and important' ideas they implemented over coffee in a feature'-meeting; yet never bothered to actually make work. The platform has been more trouble than it is worth. To the 27 actual users: try the Desktop version, it really whips the Lammas ass.

2017.10.26 - Release 4.8.4

The latest installment of our mixmate brings you drag and drop. Hold shift or control on a song and then drag it to another location. The drag and drop is implemented in such a way that dragging the track back to its original position will produce the same transition as the one you already had between those two songs. Aside from this new feature, the latency calculations have been improved and might require a new calibration. Make sure to go to the menu Output|Latency Calibration.

2017.10.05 - Release 4.8.3

The cues have been overhauled. Originally made for the phone, the userinterface did feel a bit cumbersone. Now, you can click on a cue and edit it directly. It is now possible to target all songs in the mix and in the shortlist at the same time. This improves the nearest neighbors substantially. There is a new option to check your database health: --gc. Lastly, this version improves the ergonomy of the shortlist (tracks in the mix are not shown anymore, it tries to preserve the same ordering between instantiations).

2017.09.15 - Release 4.8.1 is out

The latest installment of our synaesthetic pixel blaster BpmDj brings you a whole new panel: the shortlist. You can add and delete tracks you feel might fit in the mix, without actually adding them. The shortlist allows you to prelisten songs by seeking in their beatgraph. Aside from this, we improved zathras-1. It now works faster and a phase correction bug (duie to an uninitialized memory location) has been corrected. Freezes of the UI should be resolved as well. And lastly, the nearest neighbors focus more on the matching features than trying to find the most uniform match across the feature spectrum.

2017.09.08 - What are we working on now ?

A demo of what we're working on. The main song list will allow the user to select a set of songs he/she might consider in the mix. The candidate songs end up in a more detailed listview to the right. In that view you will also get to see the beatgraphs in advance.

2017.08.13 - How does the BpmDj Timestretcher work.

A talk on how BpmDj timestretches a soundtrack. That I am out of breath in the beginning has to do with me running to and back from our tent to get a portable right before the talk started.

2017.08.04 - Find us between Rhodes & Wilson at SHA2017

2017.06.19 - Zathas-1 at SHA 2017

A talk at the sha2017 conference. 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 The paper that accompanies this talk is at 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.

2017.05.12 - Release 4.7.9

Release 4.7.9 is finally there. It provides a completely overhauled song selector list. One that should not suffer from the update problem JavaFX dumped in our neck. And while we were at it, we also made sure it looked a lot nicer than before. Secondly, the connection to remote BpmDj installs has been overhauled as well. More info at and lastly we added some commandline options to check the health of your database. More info at

2017.04.18 - Remote playing will be removed from Phones

The upcoming release of BpmDj overhauls the remote-playing functionality in such a way that an "Android-Phone" <-> "Desktop" connection can no longer be supported in a viable manner. That means that everybody who is using that feature right now should download their missing tracks from their mixes before upgrading to the next version (which should be there in a couple of weeks). That can be done by opening the mix, going to the menu, and selecting 'Download'. This will download any missing tracks from the remote machine. If you don't do this before the upgrade, you might need to start figuring out where the MP3's are located yourself and copy them manually, which I guess nobody really likes to do.

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.