Latest news about BpmDj
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 ->
- 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
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
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
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
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
- BpmDj will no longer automatically zoom in on an opened segment
- songs would sometimes not show up after analysis in a directory that
was already being observed
- The 48000 to 44100 convertion did not cooperate well with Zathras
- Mix duplication could lead to crashes due to eq vectors being null
- Song colors are choosen such that they are different between
consecutive songs (in as far as possible)
- The MP3 decoder would sometimes produce a tick at the beginning of an
- The beatgraph analyzer will no longer try to analyze tracks on remote
- Much less memory consumption for the database.
2018.02.07 - Release 4.8.8
- 32 band equalizer
- Manual replay gain
- Mix equalisation to the average equalisation profile
- Choosing track color
- Showing meta information such as location and tags for songs in the mix
- Targetting only previous or next song when inserting a track.
- 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. more...
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
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
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
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 http://bpmdj.yellowcouch.org/remote.html
and lastly we added some commandline options to check the health of
your database. More info at http://bpmdj.yellowcouch.org/dbcheck.html
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
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
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
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
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
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
- There should be fewer ticks during playback, especially in
- 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
- Latency calibration is more accurate. Be sure to recalibrate your
- 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
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
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
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
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
(http://audiotool.com/user/trancefreak12) 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
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. http://www.mixcloud.com/5dbb/cheese-ham/ (The original
version of 2009 is at http://www.mixcloud.com/absinthe/clubby-cheese-mixed-by-trance-logan-2009/)
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
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
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
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
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
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 https://www.youtube.com/user/bpmdjyt
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.
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+
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
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
ftp://bpmdj.yellowcouch.org/bpmdj/ to download the latest patchlevel.