1. Detecting song tempo's
DjRun needs to know the tempo, expressed in Beats Per Minute(BPM), of your songs before it can use them. Luckily, you don't have to do too much. DjRun will make a best effort to detect this by itself, using various methods. When DjRun is detecting song tempo's, a looking glass icon is shown in the Android notification bar. In the app itself, the progress of the current task can be monitored at the bottom. There is also an abort button to stop the detection process. DjRun will automatically restart detecting where it left off at startup, or you can manually relaunch the detection process through the menu.
These are the automated methods DjRun supports:
Online Tempo Lookup (Pro only)
Users of DjRun are sending their detected tempo's to our servers. No personal data is sent at all, only song info and tempo data. DjRun Pro can automatically query this ever growing database for tempo information already present. If not present, it will continue with the other methods. Over time, this method will become more and more effective.
Scan Tempo Metadata
A song file often contains more information than the music itself, the so called metadata. This includes information like the artist, the title, the album, etc. Some file formats also support tempo information, embedded in the song file. DjRun can read most of them. In practice, these tempo fields are mostly empty. However, there are a lot of computer programs that are capable of filling in the tempo metadata, often a lot faster than your phone could handle. If you have a slow phone and lots of music, you can first let such a program run over your music collection. DjRun will pick up the filled in tempi.
DjRun can analyze the audio of songs to automatically extract the tempo. It uses an advanced algorithm that can handle various styles and types of music. Since BPM is not an exactly defined concept, DjRun might sometimes detect a different BPM than what you feel it should. You can always correct this by manually tapping the tempo from within the song browser. If DjRun cannot definitely make out the tempo, it will not do so and a question mark will appear next to the song in the song browser. Doing audio analysis on the limited CPU's available in most phones can take some time, so be patient. DjRun will show the progress of the detection per song in an extra smaller progress bar.
DjRun additionally supports this manual method:
Tapping The Tempo
When you click on a song in the song browser and select Tap the tempo , you can tap to the beat along with the music. When the BPM stabilizes, don't forget to save.
DjRun will first apply the method which yields the fastest and/or best detection. When this fails, the song will later be processed by a slower/less precise method. A method will always be applied on all the songs before the next method starts. The progress bar shows the progress of the current method only. In the song browser, songs which are still in for detection are shown with '...' next to them. Songs that have undergone all methods without success will show a question mark.
Positioning your phone
DjRun generally adapts to the way you want to carry you phone. However, it needs to be subject to the actual movement. For example, when using it while cycling, your phone should be strapped to your leg or be kept in a low pocket to feel the movement of your leg. When running, you may carry your phone in about every way you can imagine, including in your pocket and on an arm-strap.
Dealing with the Android bug: No sensors when screen is turned off
Unfortunately, a lot of older phones from the Android 2.2 era are required to keep the screen turned on to use DjRun. They are affected by an annoying Android firmware bug. This causes them to deactivate the accelerometers when the screen is turned off, not permitting any apps to read phone movement. Luckily, this has been fixed in most recent devices. If you are affected by this bug (DjRun will try to detect it and notify you if you are), you can try to update your phone firmware. If this is not possible, the only solution is to leave your screen on. You can activate this option in the settings.
Which songs DjRun uses
By default, DjRun uses all sound files it can find on your phone. When a song gets a BPM assigned, it will be taken into consideration when picking the next song to play. There are 2 ways to limit the songs DjRun plays.
- You can check or uncheck the use checkbox, when you click on the song in the song browser. Unused songs will show up with a smaller font in the song browser. This is the preferred way to exclude sounds like ringtones and voice recordings.
- You can use playlists(Pro only). DjRun reads any standard playlist file format it finds on your phone, as reported by Android. Playlists can be constructed with the standard Android music app or any app capable. Please note that the order of the songs in the playlist does not matter; for DjRun it simply acts as the selection of a subset of your songs.
How DjRun selects what song to play
Of course, as you probably know by now, DjRun picks the songs based on the current stride rate. But it does more than simply picking the closest match.
Songs that are 2 or 4 times faster or slower are also taken into consideration. This is because most songs follow a measure that is dividable by 2. Also, a lot of songs will have a detected tempo that is exactly double or half as fast as they feel. DjRun still gives a slight preferences to songs with an exact match, but not at any cost.
DjRun tries to avoid repeating the same songs over and over again as much as it possibly can. If there is unsufficient matching music available, it has to pick songs that match less precisely in order to avoid exaggerated repetition. Therefore, to really enjoy a lot of variation, you should load it with as much music as possible. Activating Dynamic playback tempo (Pro only) can also help a lot in this respect: Songs with a less matching tempo will be sped up or slowed down to match exactly, greatly increasing the potential of songs DjRun can pick.
3. Settings and ModesYou can setup DjRun to react to your stride rate the way you want. These are some settings that affect it's behaviour:
When DjRun's not sure about your stride rate, it won't report anything and nothing will happen. Basically, the sensitivity option selects how sure DjRun should be before reporting a stride rate. With a high sensitivity, it will make a funded guess when unsure, with the risk of being wrong. This might be desired for some sports with unsteady movement. When unsure, definitely leave this setting on normal.
Automatically change song
When checked, DjRun will automatically skip to the next song when the tempo of the current song doesn't match your stride rate any longer.
Allowed song tempo difference
This only applies when Automatically change song is turned on. If you set this to 10%, DjRun will change songs when your stride rate differs from the song tempo by 10% or more.
Dynamic Playback Tempo (Pro only)
When Dynamic Playback Tempo is enabled in the settings, DjRun will adjust the playback speed of the song to stay in sync with the stride rate. This doesn't affect the pitch of the song and retains great audio quality. Chances are, you will not even notice. What you will notice is the perfect synchronization to your stride rate. This advanced feature requires a ARM v7a type CPU or better. A slower CPU will result in choppy playback. If you are unsure about your CPU, as a general guideline, any 800 Mhz+ CPU should suffice.
Please be aware that using this feature requires that your songs have an accurate BPM assigned. Suppose the assigned song tempo would be just 1 BPM too low. While you are running in sync, DjRun would see you go faster than the BPM it thinks the song has. It would react to this by increasing the playback tempo with 1 BPM. As a result, you'd probably speed up to stay in sync. At this point, of course, DjRun again thinks it's playing too slow and accelerates the music once more. Man and machine would be pushing eachother till the end of time, or less dramatic, the end of the song. Luckily, DjRun is smart enough to detect this kind of behaviour for small errors like 1 BPM and pull out of it. But larger errors will yield the unwanted behaviour of contineously speeding up or slowing down.
Also note that dynamic playback tempo is independent of the other settings affecting DjRun's behaviour. If you have automatically change song activated, DjRun will still change the song once the stride rate is too far off the original song tempo. We advice you to turn this option off to enjoy the truly amazing sensation of controlling the music with your pace and letting the music help you to keep it steady.
Pin Mode (Pro only)
Pin mode can be activated with the pin button, located to the left of the play button. Pushing it again will turn off Pin mode. When in Pin mode, the stride rate detection is bypassed and you can manually pin the desired stride rate for your trainings. Simply drag the green running icon to the desired value. If dynamic tempo playback is enabled, DjRun will make sure that the songs are always perfectly in sync with your desired tempo. If not, it depends on the amount of music you have that matches this tempo.