How To Use BpmDj: bpmplay


Introduction

BpmDJ containts three distinct part. The first program is the player, the second program is the selector and the third program is the music-analyzer. In this section we will explain the details of the player. The player is only concerned with one song at a time.

Using the Player


The player can be started with ./bpmplay. Normally, the selector will start a player with tht ecorrect arguments. If you need to start it yourself have a look at the command line arguments (at the end of this file). The player has a number of keys enumerated below:

Keys, Buttons & Displays

Position/Size

The top LCD shows the current playing position (in seconds)
The bottom LCD shows the total playing time of the entire track.
Both values take into the account the current playing speed.

Nudging

1/32 note forward
1/32 note backward
1/8 note forward. This is useful if you have the two beats interleaving each other.
beat forward

Shifting Measures

2 One measure forward
1 One measure backward
5 Four measures forward
4 Four measures backward
8 Eight measures forward
7 Eight measures backward

Tempo

<target>  Selects the target tempo of the song.
<normal>  Selects the normal tempo of the song.
0, <normal-witch>  automatically changes the tempo of the song until it is playing at its normal tempo. This action takes 10s.
<fast-switch>      takes 5 seconds to reach the target tempo.
<slow-switch>      takes 60 seconds to reach the target tempo.
<tempo-slider>     can be used to modify the tempo. This tempo modification is a percentage of the current playying tempo, which can be either the target tempo, the normal tempo or somewhere in between.

The three LCD's refer to, from left to right, the target tempo, the normal tempo, and the current playing speed.

Cues

/            marks the current position and places it in the cue.
<space>      stops and starts the song. If a cue is available the song will automatically restart at that position.
<restart-button> can be used to restart the song at position 0.
{            shift the cue 8 measures backward
}            shift the cue 8 measures forward
(            shift the cue 1/32 backward
)            shift the cue 1/32 forward
z, x, c, v      four positions where you can store cues. You do this by pressing the capital Alt-z, Alt-x, Alt-c or Alt-v. If a cue is present at the given position, the button is colored green, otherwise it is colored red. The normal letters z,x,c,v will retrieve a cue from its respective position. If the song was not yet playing it immediately starts playing. If it was playing the player will shift back to the cue, respecting the current position in the measure.

LFO's

The player contains a number of low frequency oscilators (LFO's). When you start one by clicking its button, it will start immediatelly and modify the volume of the sound over time. The LFO will have a period that matches the tempo of the song. For every oscilator available, we show the volume modification ofer time.

Switch off the LFO section
b, break  Break LFO. At 95% of 4M it will suddenly stop and the continue again at 4M.

large break graph

s, slow up saw small; S, fasr saw up  Slow and fast saw up LFO's

slow saw up largefast upsaw


r, slow down saw; R, fast down saw   Slow and fast saw down LFO's

slow down saw largefast saw down large

p, slow panning; P, fast pan  Slow and fast panning LFO (mid, right, mid, left). In the picture below, blue is completely switched to the left, red is completely switched to the right.

slow pan largefast pan large

Metronome. Aside from the LFO's that modify ponly the volume, there is also a metronome that will generate at every beat a ping.

Loops

The loop section can be used to repeat the same piece of audio over and over again.

<no>  Switch off looping
<1B>  When you press this buttonb the track will jump back 1B and will keep on doing so every time it reaches the same position.
<1M>  .. guess..
<4M>  ..guess...

Some Scenarios

Scenario 1: Simple Beatmixing

Before we can even think of playing we need to generate the index files:

  • Go to your DJ directory. Be sure all your music is in ./music and that a directory ./index exists. If this is the case continue
  • Enter 'cbpm-count music/A.mp3'
  • Enter 'cbpm-count music/B.mp3'
  • Move both .idx files to ./index
  • Start song A by typing 'bpmplay index/A.idx' (instead of using bpmplay, it would also be possible to use cbpm-play)
  • A first song is playing, called A.mp3. We now want to switch to the second song (B.mp3)
  • Be sure to switch of the gain of channel B and turn the volume down of channel B.
  • Enter 'bpmplay -m index/A.idx index/B.mp3' on the computer. If both index files exist he will automatically start playing at the target tempo (the tempo of song A)
  • Listen to song B in your headphone (push PFL of channel B) and press / at the beginning of a phrase.
  • Now we stop song B by pushing <space>
  • Now listen to song A in your headphone (push PFL of channel A). Press <space> at the beginning of a phrase. Now song B will jump back to the first mark. Hence, both songs should be synchronized. Of course this is not the case
  • Slide song B a bit to the left or to the right with +,  - . If the beats match, listen a while longer to see which direction you have to nudge to keep them in sync. You can listen two both songs together by pushing the PFL of channel A and channel B.
  • Jump back or forth in song B till you are where you want to be with 7 and 8.
  • Switch all PFL's off. Increase the volume of channel B until maximum. Remove the bass drum of channel A with the low band filter.
  • Slowly remove channel A (or remove channel A abruptly when appropriate)
  • Scenario 2: cue's

    Of course not all music should be beat mixed. Sometimes a switch can be done by kicking in song B at the right moment. This requires the ability to start song B where we want.

  • Listen to song B, hit '/' or '[' at the position you want to start the song.
  • Push <space>. The music will stop. If you now push <space>) the music will immediately start at the cue. If the position is wrong. Push ' (' (or ')') to shift the cue forward and backward. You can shift the cue 8 measures at a time by using '{' and '}'.
  • Hit <space> again. Turn on the volume of channel B and at the right moment push <space> again.
  • There are 4 different cues, which are saved to disk. These are called the Z-cue, the X-cue, the C-cue and the V-cue. Setting a cue to the current cue is done by pushing the capital Z, X, C or V. Retrieving a cue is done by pushing a small x, c, v or z. When retrieving a cue the program will immediately jump to that position. If you leave the program, the cue-configuration will be saved to disk for the next time you start that song. If you are playing a lot of music you might want to develop your own standards for this.

    Scenario 3: Using stored cues to do a fast beatmix

    Suppose we have a song with a number of cues. Which have been stored to disk. If we want to mix this song at this position over another song we start the song at the right tempo (cbpm-play -m). We load the current cue by pushing the small letter ('z' for example). If this is done we listen to the playing song and at the right moment (the start of a phrase) we push ']'. The beats should be slightly off. This is due to a latency in the transmission of the keypress and the arrival of the keypress at the program (hence, I can't solve this problem). Now start nudging ('+' and '-') until the beats are good.

    Scenario 4: LFO's

    Some extra fun can be done by using a number of LFO's.

  • At the top of a beat push 'p'. You will now hear the music spinning from left to right. If you are tired of this effect, push 'n'
  • At the beginning of a phrase push ' b'. In 4 measures a sound break will occur right before the 5th measure.
  • Scenario 5: Using the Metronome

    You can use a build in metronome to check whether your cue's are positioned at the beginning of a measure. To do this load the correct cue (press z, x, c or v) and press 'm' to start the metronome. Now pause the song by pressing spacebar: ' '. Press spacebar again to start at the current cue. The metronome will also restart at its beginning. If the cue is correct the metronome should sound together with a beat. If this isn't the case press ' (' or ' )' to shift the cue a bit back or forth. When you press one of those, you the music will stop. Press spacebar ' ' again to start at the new position. Repeat this process until the beats match the metronome. At last, store the cue in one of the 4 positions.

    Scenario 6: Exactly positioning a cue

     If you want to place a cue exactly at the beginning of a beat you first need to place it somewhere around the beat. Afterwards you can shift it back and forth with the '(' and ')' keys until it is exactly at the start of the beat. However, there is a tool that can help in deciding whether the start of the beat is exactly the start of the beat and this is the 'r' function. This is a LFO that slowly decreases the volume to zero (over 1 or 2 measures) and then maximizes the volume again. If you have the cue exactly at the beat and you press 'r' you will hear every start with a beat. If it is a bit too early positioned you will hear some noise, a beat and then the rest (press ')' in that case). If the cue is placed a bit too late you will very likely completely miss the entire beat (press '('). After you have positioned a cue at a correct position, press 'n' to bring back the sound to normal and press 'Z','X','C' or 'V' to store it for later retrieval.

    The Segment Sequencer

    The bpmdj player contains a sequencer. This serquencer can take an input stream and reshuffle it before it is send to the DSP device. This allows the ultra-hyper-modern non-stop-rocking mega-cool and groovy dj to be just a little bit better than any body else. (Well, so far the pep-talk)

    Modus Operandi of the Sequencer




    The segment sequencer can be activated by pressing the 'Start Seq' button. From that moment it starts counting and reshuffling segments of the music. The length of every segment is determined in the combobox. In the example above the length of every segment is 1/16th note. The number of sequences is determined in the spinbox. In this 64. This means that the sequencer will reshuffle the measures of the next 64/16th notes, or the next 4 measures.

    Display

    The upper horizontal  bar shows what should normally be playing.
    The 2nd horizontal bar shows what the sequencer will play. In this case the output will be the same as the input.
    The 3th horizontal bar allows every segment to be played at a higher or lower speed
    The bottom horizontal bar determines the volume at which a segment should be played.

    Keys & Buttons

    The 'start seq' button starts the sequencer. When the song is paused, it will immediatelly start the song.
    The 'stop seq' button stops the sequencer. When manually stopping the sequence the audiostream simple continues where it was playing at that time. So it will not jump back to the beginning or the end of the entire segment.
    The 'continue' button: when all segments are played, the song simply continues at the last position of the input stream.
    The 'restart' button: when all segments are played, the song simply continues at the start position of the input stream.
    The 'Z, X, C & V' buttons: when all segments are played, the song wil ljump to the given cue.
    The 'stop' buttons: when all segments are played, the song wil simply stop.
    The 'loop' box: If this box is checked then the segment sequencer will not stop and always restart its tream at the beginning. This effectively replaces the loop functionality of previous versions. When the loop button is released the sequencer will continue all sequences end then select the requested exit strategy (stop, continue, Z, X, C, V or restart). In contrast, when the stop seq pbutton is pressed when looping. The segment sequencer will immediatelly stop and simply continue where it currenlty was in the output stream.

    Examples

    Below we present some nice examples of how the sequencer can be used

    Reverse playing


    In the upperbar (the input map) the blue blocks are entirily right, while in the lower bar (the output map), these blocks are positioned to the left. In other words, this sequence will play the input stream backward. This effect is especially usefull when the segment size is choosen to be 1/4th note. In this case, one segment corresponds to one beat and playing the song in reverse dos not offer that much unwelcome artefacts. It actually makes it better sometimes :)

    Bassdrum Climax Roll

    In this example we have taken the first hit, which is normally the bassdrum when you press 'start seq', and repeated it the following next 64 times. If the segment size is choosen to be 1/16th note then we have a nive bassdrum roll. The lowest white line is the volume, which we have modified to increase the volume slowly until the break before the song really starts.

    Slicing

    Sometimes, in monotone and quite boring songs it is usefull top do something surprising. This can be done by inserting extra rythm or slices. In the above example, we first finish the first bass drum entirily, we stop and then repeat it a number of times. This can be used either as a fill-in or as the start of some interesting song.

    Subtle Rythm Modifications


    The above example contains a number of subtle rythm modifications. given the 64 segments at 1/16th note. We know that the Bassdrums are located every 4 boxes. This knowledge is used to place between every 4th and 5th bassdrum another one. The white lines show where the copying has happened.


    Copyright (c) Werner Van Belle 2001-2007
    e-mail: werner@yellowcouch.org
    http://bpmdj.yellowcouch.org/