Leo's DJ Helper 2.21

Beatmixing for everybody


Table of contents

What is this?
Features
Detailed description
Installation / Requirements
Download
Tutorial - How to set up double WinAmps
Tutorial - How to do instant switches
Tutorial - Beatmixing for everyone
Tutorial - Using the "Metronome" method
Tutorial - Organizing your songs
Additional hints
License, Copyright & contact information


What is this?

The DJ Helper is a plugin for WinAmp, the "ultimate high-fidelity music player for Windows".

The DJ Helper gives WinAmp more features than professional DJ-type CD players that cost $500 or more.

Using the DJ Helper and a standard PC with two soundcards, you can master performances like a pro DJ, with unprecedented ease. In fact, the DJ Helper has already resolved many multi-hour gigs in front of hundreds of people and driving several thousand watts of music power.


Features

New in version 2.2: Three independent Cue Points, all of them savable.
New in version 2.2: Primitive loop function.
Automatic crossfade between two WinAmps with the press of a button.
New in version 2: Fade time selectable from 0 to 20 seconds.
New in version 2: Change tempo, pitch and speed of the song, all independently of each other.
New in version 2.2: Memory function for Tempo - Instant switch between two Tempo settings.
Practically unlimited range for tempo, pitch and speed changes.
New in version 2.2: Tempo and speed sliders have a +/-50% range for special effects.
Temporary pitch bend by +/- 3%.
Accurate (manual) BPM counting .
BPM value gets automatically adjusted when tempo changes.
BPM value can be saved into the mp3 file, and be automatically restored the next time you play it.
Fast forward and reverse by whole beats.
New in version 2: Hold function.
New in version 2: Cue and immediate play function.
New in version 2.2: Cue without stopping function.
Automatic gradual sliding of tempo to zero.
"Loud" pause, so that you hear where you have paused.
Set cue points with an accuracy of 0.001 second.
Cue point position can be saved into the mp3 file, and be automatically restored the next time you play it.
New in version 2.2: Separate read button for Cue Point & BPM information.
Instant play, typically 0.05 second reaction time.
Keyboard shortcuts for most commands, for fast action & response.
Supports two WinAmps for auto-fading and beat syncing.
Seamless, instant switch ("slam") between two WinAmps with the press of a button, for spectacular effects.
Automatic BPM matching between two WinAmps for beatmixing.
Automatic BPM tempo averaging between two WinAmps, so that you always stay in tune.
Drag & Drop files to be played. Cue point and BPM count will be read automatically and the song will be auto-cued to the saved cue point.
Played files get "touched", so that you can easily tell which songs you have played and in what order.
ToolTip help (a not-so-obvious feature for many WinAmp plugins).
Small file - Low processor load.


Detailed description

Nr. Function Description Keyboard shortcuts
- Open file, restore Cue Point & BPM values and Auto-Cue. Drag & Drop an mp3 or wav file from the Windows Explorer onto the DJ Helper window (NOT on the WinAmp window!). If the file contains saved Cue Point or BPM information, these will be restored and the WinAmp will go to the first predefined Cue Point and pause. Hitting Play will then immediately start playing from the Cue Point.
HINT: If no Cue Point information was saved in the file, it defaults to the start of the song (0 seconds).
(no shortcut)
1 Cue Press this to go to the predefined Cue Point and pause WinAmp. WinAmp is then "armed", pressing Play then immediately starts playing from that position. If no Cue Point has been defined for the song, it defaults to 0 seconds (start of the song).
Hitting Cue sets the volume of WinAmp to the maximum, so that you don't need to do this manually after you have used the crossfade function.
If you hold the Control key down and press the Cue button while a song is playing, the current playing position will be stored as the cue point, without stopping playing. This is useful if you want to set the cue point on the fly.
HINT: As in all Windows programs, buttons in a dialog window act when released, keys on the keyboard act when pressed. Keep this in mind to achieve accurate results.
Y, Z, N, Num5
2 First Cue Point This radio button shows the current value of the first Cue Point in seconds. Click to make this Cue Point active. F1
3 Current BPM value This field shows the current BPM value. It gets updated while you keep hitting the BPM button to the beat.
The BPM value in this field changes dynamically as you change the tempo or speed of the song.
 
4 Artist - Title This text field displays the current title of the song playing. This is useful if you want to ensure that the file playing in WinAmp is the same as the DJ Helper thinks it is. If the wrong song is shown here, click the "Read" button.
HINT: If you play a song directly in WinAmp i.e. by drag & drop on the WinAmp window, the DJ Helper does not get notified that the song changed. This can cause problems with the Cue Point and BPM settings.
 
5 Play/Pause If WinAmp is playing and you press this button, WinAmp goes into a "loud pause": It repeats about 0.1 seconds of the song, starting from the current position, so that you can tell where exactly you have paused.
HINT: Maybe it will sound strange the first time you will use this function, but after you get used to it, you will be able to tell where exactly you have stopped, with a great accuracy.
HINT-2: The "loud pause" loop STARTS from the cue position. You have to take this into account for exact positioning.

If WinAmp is paused or stopped and you press this, it starts playing from the current position.
If you are paused at the Cue Point and you double-press this button (exactly as you would double-click the mouse button), you will go back and pause exactly on the Cue Point, instead of pausing at the current time. This gives you the possibility to "return" exactly onto the Cue Point, check it and change it.
HINT: The accuracy and the speed of the "loud pause" function is very dependent on the buffer size of WinAmp. See the section "Installation/Requirements" for more details.
X, M, Num2
6 Second Cue Point This radio button shows the current value of the second Cue Point in seconds. Click to make this Cue Point active. F2
7 Current pause point This text field shows the current pause point in seconds.  
8 Cue+Play Press this to immediately play from the Cue Point position. Useful for repeating parts of the song or for special effects. Backspace
9 Seek reverse Pressing this button when WinAmp is playing moves the current position by -1.3 seconds.
Pressing it when paused moves the current position by -0.030 seconds.

Beat reverse: If you hold down the "Control" key when you press this button, you will move the position by one beat, i.e. from one hit of the bass drum to the previous. Why should you need this? See the Hints section below. (You should have set the BPM value of the song for this to work).
C, Comma, Num1
10 Hold Press this to temporarily stop the music as long as the button is held down. When you release it, the music restarts immediately from exactly the same position. Useful for special effects, or for syncing the beats of the two WinAmps.
HINT: This is almost the same as holding & releasing the record on a turntable, only that it functions instaneously here.
Letter O
11 Third Cue Point This radio button shows the current value of the third Cue Point in seconds. Click to make this Cue Point active. F3
12 Short Message Short messages are shown in this field temporarily. After 15 the messages disappear.  
13 Seek forward Pressing this button when WinAmp is playing moves the current position by +1.5 seconds.
Pressing it when paused, moves the current position by +0.027 seconds.
HINT: Why different values than the Seek reverse function? Here is an example: By pressing Seek reverse and Seek forward in succession when paused, you move the Cue Point by -0.03 seconds, a very fine adjustment.
Beat forward: If you hold down the "Control" key when you press this button, you will move the position by one beat, i.e. from one hit of the bass drum to the next.
(You should have set the BPM value of the song for this to work).
V, Point, Num3
14 Tempo up Press this button to increase the tempo (speed) of the current song by 0.10%. Num+
15 Tempo slider Use this slider to set the tempo of the playing song. The pitch (musical tone) does not change. The range of the slider is -/+ 50%, but you can achieve higher values using the -/+ buttons or the keyboard.
Use this to make a song go faster or slower, which is a must if you want to do
Beatmixing.
HINT: Changing the tempo updates the BPM value accordingly.
HINT-2: The "sensitivity" of the slider is different when you are in the middle (near zero) than when you move full upwards or downwards.
 
16 Tempo zero Press this button to set the tempo (speed) of the current song to 0% immediately. Num0
17 Speed slider Use this slider to change the speed of the playing song. This has the same effect as changing the rotating speed on a turntable. The range of the slider is -/+ 50%, but you can achieve higher values using the -/+ buttons or the keyboard.
HINT: Changing the speed updates the BPM value accordingly.
HINT-2: The "sensitivity" of the slider is different when you are in the middle (near zero) than when you move full upwards or downwards.
 
18 Tempo down Press this button to decrease the tempo of the current song by 0.10%. Num-
19 Pitch slider Use this slider to set the pitch (the musical tone) of the playing song, leaving the speed unchanged. The range of the slider is -/+ 12 semitones (= one musical octave), but you can achieve higher or lower values using the -/+ buttons.
HINT: Typically, you should not change the pitch of the song too much. Setting the pitch to more than -/+5% will probably be audible, especially on songs with vocals.
HINT-2: You can use this function to match the musical tone of two songs.
 
20 Memory Exchange / set Hold the Control key down and press this button to store the current setting of the Tempo slider.
Then move the tempo slider and press this button (without control) to instantly swap the new setting of the tempo slider with the stored value. This is useful if you want to switch quickly between two tempo settings.
W
21 Help Shows a window with hints, credits and additional keyboard shortcuts. (no shortcut)
22 Save This button writes the BPM and Cue Point information into the mp3 file. It works only for mp3 files. After you save this information into the mp3 file, the next time you play the file with the DJ Helper, the BPM and Cue Point will be restored automatically, so you don't need to count BPM and locate the Cue Point again. This speeds things considerably and makes your life as a DJ much easier.
HINT: Many times, mp3 files copied from CDs onto the hard disk will be write-protected. On such case, DJ Helper shows an Err. open or Err. write message. Remove the write-protect flag in the properties of the file and try again.
HINT-2: The BPM and Cue Point information will be stored in the "Comment" field in the tags of the mp3 file. Previous information in this field will be overwritten.
HINT-3: This operation will also update the song and artist name inside the tags of the mp3 file. See
the "Hints" section below for more information.
U
23 Read Press this to read the BPM and Cue Point information from the mp3 file. Useful if you have not opened a song by drag and drop onto the DJ Helper window, but somehow else. It works only for mp3 files. R
24 Speed bend down Press this button to temporarily decrease the current speed value by 3%. Use this to synchronize the beats of the two WinAmps.
HINT: This function is most useful if the beats of the two songs are almost synchronized and are just starting to drift apart. If the beats have a big difference, then it is easier/faster to stop one song and restart it in sync with the other, than using speed bending.
Num4
25 Speed bend up Press this button to temporarily increase the current speed value by 3%.  Num6
26 Average tempos Pressing this button changes the tempos of the two WinAmps, so that their BPM values match. It changes the tempo values in a way, that the tempo difference is distributed equally around zero and none of the songs is too slow or too fast.
Why would you need this? Suppose you have already a song playing at +4% tempo and you need to match its speed to a slower song. This would require to play the slower song to an even higher tempo value (e.g. +8%), where it would probably sound funny. Using the Average tempos function brings the tempos of the two songs to appr. -1.5% and +2.5% respectively, avoiding funny audio effects.
HINT: This function requires two WinAmps.
HINT-2: The tempo of the
playing song (other WinAmp) will change gradually, the tempo of the current (preparing) song/WinAmp will change immediately.
HINT-3: Both songs have to have a BPM value different from zero for this to work.
A
27 Slide Tempo to Zero Pressing this brings the tempo to zero gradually. The tempo changes 0.20% per second, a change that should go unnoticed for most songs and audiences. The tempo and BPM values appear in parentheses when the tempo is automatically sliding, to remind you that the value is not yet final. A counter shows you how many seconds are needed for the tempo to reach the final (zero) value:

If you accidentally pressed this button and you want to cancel the operation, just change the tempo manually with the buttons or the tempo slider.
HINT: This function is useful if you have changed the tempo of a song and want to bring it back to zero, while the song is playing.
0 (zero)
28 Match BPM Press this to change the tempo of the current song, so that its BPM value matches that of the other WinAmp. The tempo of the other WinAmp does not change.
HINT: This function requires two WinAmps.
HINT-2: Both songs have to have a BPM value different from zero for this to work.
Q
29 BPM Counter Press this button together with the beat of the song, to set the BPM (Beats Per Minute) counter. The BPM value shows you the speed of the song and allows you to do beatmixing (more info on this in the "Tutorial - Beatmixing for everyone" section).
You need to press the button three times at least to get a value. The longer you keep pressing it to the beat, the more accurate value you get. Stop pressing when the BPM value does not change significantly.
HINT: If you have mistyped and want to start again, just don't hit the BPM button for three seconds. After three seconds, the previous BPM clicks are rejected.
If you hold the Control key when you press the BPM button, the BPM value will be set equal to that of the other WinAmp. This is most useful if you already have synchronized the beats of the two WinAmps using the tempo slider, so you don't need to count the BPM once again.
(This is explained in more detail in the section "Tutorial - Using the Metronome method").
B
30 Auto-Crossfade Press this to start an automatic, gradual crossfade between two WinAmps. The current WinAmp should be in cued or paused state, the other WinAmp should be in playing state. F
31 Fade time Use this slider to set the automatic crossfade time from 0 to 20 seconds. Setting a value of 0 results in a very fast, yet gradual crossfade.
HINT: It is the value in the current (paused) WinAmp that counts.
 
- Instant switch
("Slam")
Press the Space key on the keyboard to start playing the current WinAmp (should be in cued or paused state) and pause the other WinAmp (should be in playing state).
With this function you
can do seamless switches between two songs. If you have the same song on both WinAmps, you can create a loop effect.
HINT: This function requires two WinAmps.
HINT-2: See the "
Hints" section below for more information on how to do loops.
Space
- Auto-Fade Press a digit from 1 to 9 on your keyboard to crossfade between two WinAmps for that number of seconds. Pressing 1 typically equals to what you would get if you would slide a real crossfader switch quite fast.
Use the Auto-Fade function for a smooth transition between the songs.
HINT: This function requires two WinAmps.
Keys 1 to 9
- Hide DJ Helper Press the H key to hide the DJ Helper window to gain space on your screen. The keyboard shortcuts work even when the DJ Helper window is hidden (the WinAmp window must be active, though). H
- Show DJ Helper Press the S key to make the DJ Helper window visible again. The DJ Helper window will automatically "dock" to the WinAmp window.
HINT: If you have moved the WinAmp window, it is a good idea to press S once.
S
- Switch DJ Helper window Press the Tab key to bring the other DJ Helper window to the foreground. Pressing Tab again returns you to the first DJ Helper window. This gives you a very fast control of both DJ Helper windows using only the keyboard. Tab


Installation / Requirements

Copy the DJ Helper DLL (Filename: dsp_djHelp.dll) into the Plugins folder of your WinAmp installation (which most probably resides under C:\Program Files\Winamp or a similar directory).

Then activate it as follows: WinAmp menu->Options->Preferences->DSP/Effect, then click the DJ Helper entry at the list at the right, then click Close.

For optimum speed and accuracy, you will have to set the WaveOut buffer of WinAmp to the smallest value that will not cause skipping or jumping. This requires some experimenting, a good point to start are values about 500 to 800ms. To change this value: WinAmp menu->Options->Preferences->Output, then click the WaveOut plugin and Configure. Set the Buffer length to the desired value and the Priority to Time Critical.

Don't forget to set WinAmp's Process priority class to Realtime. You can find this under WinAmp menu->Options->Preferences->Options.

HINT: For best results you should use WinAmp versions 2.5 to 2.65. Older 2.x versions still work but are not as exact, and 1.x versions probably will not work with the DJ Helper at all.
Versions 2.666 and newer have a completely new mp3 engine that is not as fast and responsive as the older version. In addition, the newer engine has a bug that sometimes causes WinAmp+DJ Helper to freeze. Although reported to winamp.com, nothing has happened yet...
A good place to find older WinAmp versions is www.winampheaven.com.

You will probably need a PC with a 300 MHz CPU at least. Slower CPUs will still work, but response will probably not be fast or exact enough.


Download

Click this link to download the DJ Helper DLL and a copy of these instructions (zip file, exact size 116,080 bytes).


Tutorial - How to set up double WinAmps

You will need two soundcards and two instances of WinAmp to do serious DJing. Only that way you will be able to monitor and prepare the next song while the previous is playing. You will also need a basic external mixer with two inputs (no equalizer is needed - WinAmp has one already!).

Even the cheapest soundcards will do the job, and WinAmp works with almost any soundcard around. However, it is advisable to get a decent card (at about $50 or more), because too cheap cards can cause problems: Interference, problems with plug & play, buggy drivers etc. Many advanced cards have "multithreaded" drivers that can accept input from several programs together, so even when one program is playing on that card, additional programs are also able to access it and "mix-in" their sounds (very good for jingles etc).

Installing a second soundcard into your PC is quite easy, assuming your PC and the card support Plug and Play (all modern PCs and cards do). Just plug the second card into the slot, reboot, Windows will auto-detect the new card and ask for drivers. Point Windows to the new drivers, that's it!
When selecting a second card for your PC, keep in mind that sometimes two identical sound cards will not work. Many sound drivers do not expect a second card of the same type to be present, and they cannot tell which is which. So, it is advisable to select a different card type than what you already have.

If you have to have a single soundcard, then you should configure the WinAmps so that one is playing to the left channel (i.e. shift the balance slider to the left) and the other to the right channel. Then you will need a special cable that leads each channel to a separate pair of stereo cables OR you will need a mixer/amplifier that can switch to mono, so that you have both channels playing. In this case, go to WinAmp menu->Options->Preferences->Input->MPEG Audio decoder->Decoder and uncheck the Allow stereo output box.
Make sure that you use the Directsound output driver in this case: go to
WinAmp menu->Options->Preferences->Output and select the DirectSound plugin.

To have two really independent WinAmps, you will need to duplicate the files Winamp.exe, Winamp.ini, Winamp.lks, Winamp.q1, Winamp.m3u and Winamp.pic inside the C:\Program Files\Winamp directory (or your equivalent directory). Rename the duplicates as Winamp2.exe, Winamp2.ini, Winamp2.lks, Winamp2.q1, Winamp2.m3u and Winamp2.pic respectively, like in the picture below:

To be able to launch each instance of Winamp easily, it is advisable to create separate shortcuts to each one from the Start menu or the desktop, like this:

HINT: You can even create three or more instances of WinAmp, which enables you to do special effects with jingles, etc.

Then, you will need to launch the two WinAmps and assign each one to a different soundcard. For this, go to WinAmp menu->Options->Preferences->Output->WaveOut plugin and select the appropriate card as the Output device.


Tutorial - How to set the Cue Point

Setting the Cue Point quickly and with accuracy is an important prerequisite, even for basic DJing. Most of the time, you will want to skip over the introduction of the song and start playing from a specific point inside it. This is your Cue Point.

Drag & drop an mp3 file from the Windows Explorer onto the DJ Helper window (NOT on the WinAmp window). If the Cue Point has not been set before for that file, then the DJ Helper automatically cues to the start of the song (0 seconds).

Then press Play/Pause and listen until you hear the position you want to cue to, or press Seek forward / Seek reverse to go there faster. Press Play/Pause on the position you want to cue to. DJ Helper then enters a "loud pause" mode, where you hear appr. 0,1 seconds from the paused position onwards. (IMPORTANT: You hear FROM the paused position). The position you have paused onto is shown on the DJ Helper window, in milliseconds (thousandths of a second) from the start of the song.

Most of the time, you will not get the desired cue position with the first try. So, while in the "loud pause" mode, you can move the paused position with the Seek forward / Seek reverse buttons. Once you think you have got the position you want, hit the Cue button. The current paused position is then "stored" as the Cue Point and the WinAmp is paused on that position. Hitting Play then starts playing from exactly that position.

HINT: To try your Cue Point, just hit Cue and then Play. When you hit Cue, WinAmp returns to the saved Cue Point and pauses, so that it is ready to start playing from there, when you hit Play the next time.

If you want to correct your Cue Point, hit Cue, then Play/Pause twice quickly. In this special case, the DJ Helper does not pause where it actually should, but it returns and pauses exactly on the Cue Point. Now you can correct the position with Seek forward / Seek reverse buttons. When you are satisfied, hit Cue again to store the corrected Cue Point.

If you are satisfied with your Cue Point setting, press Stop on WinAmp and click the Save button on the DJ Helper. The Cue Point position will be saved. The next time that you drag & drop this mp3 file onto the DJ Helper, it will automatically cue to the preset position. (This works only for mp3 files).

DJ Helper allows you to define three different Cue Points for each song. One typical use is: one Cue Point for the beginning of the song, one for the beginning of the vocals and one for the beginning of the chorus. This gives you maximum flexibility on how to start playing the song.


Tutorial - How to do instant switches

In an instant switch (some also call it a "Slam"), you switch from one song to the next immediately, without any mixing, crossfading or overlapping. You can use this sudden change for special effects, or when the current songs would not allow Beatmixing.

First, set the Cue Point where you want the second song to start and eventually save it. Cue to this position. Then, exactly at the moment when you want the switch to happen, press the Space key. You have already switched! Easy? OK, now let's study the important details:

For this kind of switch to succeed (= sound well), you will need to plan carefully exactly when you switch. Because the change is so sudden, you have to take care that you don't shock your audience. You cannot switch just anywhere and expect it to sound good. Imagine that you sing a song and want to switch to another: When would you do it? Probably not in the middle of the chorus, but just after it. Actually, there are some well defined "transition points" during a song, where a switch sounds best. Examples are: just after the chorus, just before or after a solo or a rhythm break, or just before the start of a new verse. Some experience will help you here.

Moreover, your switch has to be "in rhythm": The new song's rhythm has to go on from the point that the previous song ended. If you have cued the new song i.e. exactly on the hit of the bass drum, then you have to take care to switch exactly on the bass drum of the previous song. Unfortunately, many times you will not be able to do this, because you would interrupt the lyrics or the melody line. On such cases you will have to switch in the middle of the measure, which requires good reflexes and a good sense of rhythm and music.

In addition, the two songs have to be equally "loud" the moment you switch. For example, if you switch from a quiet ballad to a fast rock song, it will probably not sound well. For such cases, you should preferably use the fade functions of DJ Helper.

HINT: You can also use the fade function with a fade time of 0 seconds to achieve an instant switch. This switch is not so sudden as using the space key.


Tutorial - Beatmixing for everyone

Beatmixing is the kind of switch between two songs, when their beats are exactly synchronized. Most of the time, when the beats are in sync, you leave the songs playing together for several seconds and do a very gradual fade between them, so the audience has the impression that the beat of the one song continues into the other, or that the songs are joined together.

For a long time, the ability to do Beatmixing was considered the main criterion for a club DJ. Admittedly, doing Beatmixing with only two turntables and no other help is not an easy task. But with tools like the DJ Helper, Beatmixing is just another way to change a song.

To do Beatmixing, you should first select the appropriate songs. (Not all songs lend themselves to Beatmixing - more below). Then you need to count the BPMs (Beats Per Minute) of both songs. Hit the BPM Button together with the beat of each song, until you get quite a constant value. Save the BPM values of the songs, so that you don't need to do this again. Then find and save an appropriate Cue Point for the second song (mostly at the beat of the bass drum).

When you have measured the BPMs for both the songs, hit the "=" button on the PAUSED DJ Helper (the one that is not heard by the audience). Its tempo value will then change, so that the BPMs of the two songs will be equal.

HINT: You will soon notice here, that there is a limit on how far apart the original BPMs of the two songs can be, in order for the result not to sound funny. A difference of +/- 5% or smaller is probably OK. If the difference is bigger, you will have to slow down or speed up one or both songs too much, which will be quite audible.

Once you have the BPMs of both songs equal, try hitting the Play button, so that the second song starts in sync with the first. If you are not satisfied, hit Cue and Play to restart again, until you have both rhythms in sync. Then you can do a long fade between the two songs, letting their beats "melt" together.

HINT: If the beats are almost in sync and they have only a small difference (or they just start to drift apart), you can try to correct this with the Pitch Bend function. This slows down or speeds up one song temporarily, until the beats are matched exactly. Use this function only if the difference is really small, otherwise it is probably easier to hit Cue and Play and try again.

HINT-2: You can also use the Hold function to bring the songs in sync. Press and hold "Hold" at the start of the beat (i.e. on the bass drum) and release it together with the other song playing.

If you beatmix more that two or three songs in succession, you will soon come to a point, where you have a song that is tempoed too fast or too slow for the next mix to succeed. For such cases, you can use the "~0" or "~=" buttons.

The "~0" button brings the tempo of the current song gradually to zero. The shift is 0.20% per second, which should go unnoticed by the audience. (This is also dependent on the type/style of the song).

The "~=" button tries to "average" the tempos of the two songs, so that appr. two thirds of the tempo difference is above zero and one third below. That way, none of the two songs will be tempoed too high or too low. The tempo of the playing WinAmp is changed gradually, the non-playing WinAmp changes at once.

Unfortunately, not all songs lend themselves to Beatmixing. Apart from the BPM issues, at least one of the songs (preferably both) has to have a long section without melody and a clear beat. Otherwise, you will end up mixing the melodies or the vocals of the songs, which will not sound as you would like. (Maybe you understand now, why many special "Club" mixes have such long beat-only sections - these are a blessing for the Beatmixing DJ).


Tutorial - Using the "Metronome" method

Clicking the BPM button is a quick and practical way to find the speed of a song, but it is not very accurate. Depending on the song and your rhythm skills, you can achieve an accuracy of about +/-0.40 BPM, which is not good enough for some purposes.

A much more accurate way of measuring the BPM count of a song, is to synchronize it with another sound source that has a known BPM count. When the two sounds are in sync, then their BPMs are equal. This is the "Metronome" method.

To use the Metronome method with the DJ Helper, you will need a "reference" file with a known BPM count. You can get one such file here, (mp3 file, exact size 249,597 bytes). This sound file is artificially created to have exactly 130.00 BPM.

First, play the song you need to find the BPM of in one WinAmp and get a rough guess by clicking the BPM button. You should also set the Cue Point to the start of the rhythm, so that it will be easier to synchronize the beat.

Then, play the reference file in the second WinAmp. Click the "=" button on the first WinAmp (or use the slider), to make its BPM also equal to 130. Then press Cue and Play, to start the song together with the ticking metronome. After a couple of tries, you will make the two rhythms start together. (You may need to change the Cue Point of the song, in order to achieve that easier).

Now you have your song and the Metronome running together in sync. Ideally, the two beats should stay in sync and run together until one of them ends. But if the BPM of the song was not set correctly, the two beats will "drift" and soon they will not match. You should then tell if your song was running faster or slower than the Metronome (this needs some exercise to do quickly and reliably). Then, adjust the tempo of the song, and try once again, until you have the song and the Metronome playing in sync for at least 30 seconds. If you have achieved this, then hold the Control key and click the BPM button. This will set the BPM count of the song to the exact value.

This procedure is admittedly not as fast as just clicking the BPM button, so preferably it should not be used during a performance! But you can count the BPMs of several songs in advance and save their values, so that you don't need to do any BPM counting at all during the gig! So, if you need to find the BPM of a song just once, why not do it as good as you can?

HINT: Using the "Metronome" method, you can also adjust the Cue Point of the song so, that when you press Play, the song starts immediately in sync with the Metronome. This will help you a lot when you do Beatmixing. Again, don't forget to save your Cue Point, so that you don't need to locate it again!

Sometimes you will notice that it is almost impossible to match the beats of certain songs with the metronome. This is a problem resulting from bad ripper software or damaged CDs. When you use a feature called "jitter correction" or "dynamic sync" on such rippers, sometimes they "edit out" music samples, in order to compensate for read errors from the CD. Most of the times this editing is not audible, but it changes the beat of the song in an unpredictable way, so that beat syncing may become very difficult.


Tutorial - Organizing your songs

One of the biggest advantages of using the PC as your music source is that it allows you to organize your music exactly as you need.
No more desperate looking for a specific CD among hundreds!
No more trying to read tiny title lists ...in the dark!
No more stress with jewel cases that contain the wrong CD or are empty!
Having your songs as files on your disk allows you to sort and search in ways that are only limited by your imagination.

There are several ways to categorize your songs. The one that has proved to be most convenient (for me, at least), was to categorize mainly by genre or style of the songs. That way, you have all similar songs sorted together, so you can very quickly find a song that fits the current one.

Make folders for the most important genres, like in the image above. Inside each folder, you can create additional subfolders for finer categorization. One very useful subfolder you could create is for "Prime Time" songs. This should include the songs you definitely don't want to miss playing.

If you want to find a particular song, just use the Windows Find->Files or Folders function. You can drag & drop files directly from the search results window onto the DJ Helper window.

Another function you may find useful, is the ability to sort songs by their BPM value, so that you can easily find a song that matches the speed of the current song. For this reason, you can use any MP3 cataloger program that allows you to sort the songs by their "Comment" field, because the DJ Helper stores this information there. There are many programs that can do this, below an example using MP3 Stocker:

Another, not so elegant way to achieve the same result, is to prefix the BPM count of the song to its filename (i.e. 129_Song_title.mp3) and then sort by the filename.


Additional hints

The playing WinAmp is the one that is heard by the audience. No adjustments take place on that, normally you should not need to touch it! All editing functions and adjustments are done on the other, the preparing WinAmp. When you drag & drop a song onto one DJ Helper dialog, it becomes the active window, to indicate that it is here that you should make all tests and adjustments.

Use the keys 1, 2, 3 and 5 on the numeric keypad for setting the Cue Point and testing it. After some exercise, you will be able to set the Cue Point very quickly.
HINT: Make sure that the Num Lock key is pressed for this to work.

You should always drag & drop the files on the DJ Helper window for playing. If you change the song in WinAmp, the DJ Helper has no way of knowing that the song has changed, which can have some strange results. If you did change the song directly in WinAmp, press the Read button to update the information in the DJ Helper.

When you hold down the Control key, the look of the DJ Helper changes slightly, to remind you of the additional functions. Even the ToolTips change accordingly:

How to do loops: Just mix the track with itself! It is possible to play the same track on several WinAmps at the same time (quite difficult to do with real music CDs!). So, first set the Cue Point where you loop should start and save it. Then start playing the track on one WinAmp. Load the same track on the second WinAmp and cue to the start of the loop. When the appropriate moment comes, just press the Space key. With minimum exercise you will be able to do this quite easily.

Loops - again: DJ Helper has a hidden and unsupported loop function. It does not work as it should (i.e. the loops are not seamless), because WinAmp does not support this. It is there, only because many have requested this function desperately, even if it would not work 100% well.
To activate the hidden loop function, press Control+S in the DJ Helper window.
Please don't complain if it does not work as you expect...

Changing the tempo of a song is not effective immediately. This is most important if you change the tempo when in paused state: During the first half to one second after you start playing, you will hear the tempo change very clearly. If you change the tempo, let the song play for a couple of seconds, so that the tempo stabilizes.

One case when the Beat forward / Beat reverse function would be handy, is when you want to move into an area of the song that has no beat. Suppose you have a song with a beatless intro, and you want to synchronize this with another song. But how can you synchronize the beatless part of it? Use the Cue function to go to the first beat and then go back the desired number of beats into the beatless area.

File naming conventions: DJ Helper assumes that your song files are named in one of the following ways:
Title.mp3
Artist - Title.mp3
Album - Artist - Title.mp3
That is, the album and the artist names are optional and the separator is " - " (one space, one dash, one space).
The DJ Helper updates the mp3 tags of the song according to its filename, so you should name your songs accordingly if you want this information to appear correctly in the mp3 tags. This update happens only if there was no information in the tags before. If tags existed already, then they are left untouched.
HINT: To see the mp3 tags of a song, double-click its title in the WinAmp window.

The DJ Helper saves the Cue Point and BPM information in the comment field of the mp3 tags. It is possible to enter this information directly there, if you happen to know it from somewhere else (many records show on the cover the BPM speed of the songs).
HINT: To see the mp3 tags of a song, double-click its title in the WinAmp window. The format is bbb.bb%cccccc%cccccc%cccccc, where bbb.bb the BPM and cccccc the three Cue Point times in milliseconds:

How to create a playlist "the day after": All tracks that are played using the DJ Helper are touched (of course, if they are not write-protected) and their modification date is set to exactly when they were played. That way you can see which songs you have played in that great gig yesterday! From the Windows menu select Start->Find->Files or Folders, and then click Date->Find all files->Modified->During the previous 1 day(s). In the search results click on the Modified column heading to sort these by the modification date. Your list is ready.

Why does the crossfade function not sound that good? Not all soundcards produce the same sound volume for the same volume setting. This has the result that crossfading may not sound so smooth and gradual as you may expect. Unfortunately, there is no easy cure for this, than trying a different sound driver or soundcard.

Why does the DJ Helper works so bad when playing from an audio CD? Because in this case, WinAmp does not really play the sound. In reality, the sound is generated in the CD-ROM drive and is directly transferred from there to the sound card. Because almost all CD-ROM drives offer only basic audio playing support, the seeking speed and accuracy are quite bad. And because WinAmp is only pretending that it plays the music, the tempo slider does not work either.

Why does the music sound chopped? Most probably WinAmp or your computer is not fast enough. Sometimes you can try adjusting the "Blocksize" parameters in WinAmp, under WinAmp menu->Options->Preferences->Output, then click the WaveOut plugin and Configure.

Why DJ Helper does not have an automatic BPM counting function? Because all automatic BPM code and methods I could find were too inaccurate and too processor-time consuming. Even "professional" BPM counters have failed badly, even for songs with a clear beat - not mentioning what happened with hip-hop or latin songs (try yourself, is very funny!). To summarize: Automatic BPM counting is a very "sexy" feature, just like automatic speech recognition, but does not work well in practice. On the other hand, manual BPM counting is very easy and reliable. And you have to be good in following the rhythm, if you want to be a successful DJ!

A usable mp3 file collection will need a hard disk with at least 10 GB free space or more. Populating this collection is not an easy task, it will take several weeks or months to transfer your music to the disk. But don't forget, your CD or vinyl collection was also not built in a day!


Additional information

Starting point of this project was the DSP SDK from Justin Frankel, the creator of WinAmp. I was very happy to rediscover this information on the WinAmp.com site, after it had disappeared for several months.

The tempo and speed changing routines come from Olli "Ortiz" Parviainen (oparviai@iki.fi) and his PaceMaker plugin. Tons of thanks to Olli!

Additional ideas came from the PitchFork plugin by Liket, another great DJ plugin for WinAmp. Too bad this has disappeared from the WinAmp web site...

WinAmp has a very flexible and open architecture and its plugin system is very powerful. However, there were some functions I missed, which prevented several more powerful features to be built into the DJ Helper:
It is not possible to tell WinAmp to play up to a specific time in the song and then execute a specific callback function.
Jumping to another point inside the song takes about 0.02 seconds of silence. Although this looks like too little, it is audible enough to prevent making a loop function.
There is no way to query the current volume setting of WinAmp (or at least I was too blind to find it).
A callback function that gets called when the current track changes would also be very convenient.
Maybe these features could be implemented into future versions of WinAmp, because I don't think they are that complicated to program.

The DJ Helper was developed with Microsoft Visual C++ 6.0, Professional Edition, between November 1999 and March 2000. Version 2 was developed in June/July 2000, Version 2.2 in January 2001.

 


License, copyright and contact information

Copyright ⌐ Leonidas Drisis, November 1999 - January 2001 (to_skripto@yahoo.com).

Tempo & pitch change routines Copyright ⌐ Olli Parviainen (oparviai@iki.fi).

This program is Charityware: You can pass freely copies of the DJ Helper. If you like it, please give what you think it is worth, to a welfare organization of your choice (e.g. Red Cross, GreenPeace, WWF, Amnesty International, etc. - to mention just some well known ones).

Any direct or indirect use of this software for commercial purposes without the permission of the author is strictly prohibited.

I will be happy to hear any ideas and suggestions for improving the DJ Helper, or any impressions from using it. Don't hesitate to email me at any time.

 

This page created: 2000-03-14
Last modification: 2001-01-29