MixPerfect Player Documentation



This video tutorial is not fully relevant to the latest version of MixPerfect, which includes additional features. Also, the playlist panel has been replaced by icons in the player panel. An up-to-date tutorial is currently in development.

Table of Contents

1. About

MixPerfect Player is an auto DJ player designed to seamlessly mix your audio files, without significantly changing the pitch. However, some preparation is required to let the player mix songs automatically. But once you have done this, you can sit back and enjoy unique mixes time after time.

The application uses a database with manually set markers. This ensures that songs are mixed at the right points and it gives you even the option to add loops and play songs in shortened format.

Smooth and harmonious transitions are ensured, thanks to beat matching, optional gain control, beat filters and options to exclude overlapping elements in transitions, like beats, basses, melodies or vocals.

Creating random or custom playlists is easy. You can generate them based on various criteria such as BPM, genre, record label, artist, year, or country of origin. Moreover, you have options to save your playlists or export them to audio files, enabling you to listen again or sharing mixes with friends.

2. How to Start

First, select your music folder at SETTINGS. Then start adding audio files to the DATABASE (if desired, you can first import audio files into FILES to listen to them and find out their BPM's).

If there are enough records in the database, you can create and play a custom or random playlist in the PLAYER, based on adjusted SETTINGS. Playlists can also be saved and exported to audio files.

3. Database panel

Use the database to add audio files that you want MixPerfect Player to play.

3.1. "ADD RECORD" BUTTON

Click on this button to select an audiofile and add it to the database. The file that you choose must be inside a subfolder of the music directory you've selected at settings.

3.2. "EDIT" BUTTON

Click on this button to modify a selected item.

3.3. "DELETE" BUTTON

Clicking on this button will remove a selected item from the database.

3.4. "SORT" SELECT BOX

Use this to sort the list by artist, title, record label, catalog number, year, country, genre or BPM.

3.5. "SEARCH..." FIELD

Type what you looking for in this field, and the list will be filtered on your search term. Remove your text with backspace to see the full list again.

3.6. PLAYING A SONG

You can listen to a selected song with the 'play' button at the left bottom. Click on the 'stop' button to stop playing.

4. Adding or Editing a Record

To add or edit a record, you must open the the database and click on the 'Add record' button or 'Edit' button.

4.1. INPUT FIELDS

You may add song information like artist, title, label, catalog number, country, year, genre. Those fields are not required but if you enter them, you can use the filter options in settings to create playlists based on one or more of these fields. If you leave the fields 'artist' and 'title' blank, the player will show the filename as alternative.

4.2. THE GENRE FIELD

You may add multiple genres in the 'genre' field, seperating them by a comma. You can use this field to add genres like 'rock', 'techno', 'rap', but also you can add keywords like 'strong beats', 'romantic', 'german vocals', 'remix', 'sad', 'happy', 'covered song', 'male vocals' et cetera. Or you can type the name of a producer for example, so you can later create a playlist with songs made by this producer.

4.3. THE BPM FIELD

MixPerfect Player does automatically calculate the estimated BPM of the song. You may alter it, if you know the exact BPM. This is not required but can be usefull with placing markers. After you placed markers the exact BPM will be recalculated.

4.4. ADDING A SLEEVE

It is not required to add a sleeve. You can use the button next to the sleeve field or the grey square to open an image. The image file must be in the indicated sleeve folder. Allowed file extensions are: .jpg, .bmp, .png.

4.5. THE WAVEFORM

The audiofile is displayed as waveform. This make it easy to find mix points.

4.6. CHANGING THE WAVEFORM SCALE

The height of the waveform can be changed with the slider at the left of the waveform to to get a clearer picture.

4.7. ZOOM BUTTONS

Use the zoom buttons below the waveform to zoom in, zoom out, zoom to a selection or to display the full waveform.

4.8. THE CURSOR

The cursor is the yellow vertical line in the waveform. You can move it by clicking somewhere in the waveform. This is usefull for zooming and playback.

4.9. PLAYING THE SONG

You can listen to (a part) of the song with spacebar or the play button at the top left. First move the cursor to the position from where you want to listen. You can also zoom in if necessary. Then click on the stop button or hit spacebar again to stop playing.

4.10. PLACING MIXPOINTS

You can indicate mixpoints by zooming in, place the cursor at the wanted position and select a marker in the marker box at the left of the waveform. Set the selected marker by clicking the 'add' button. If you made a mistake, you can always remove a marker with the 'delete' button.

4.10.1. Intro markers (keyboard shortcuts I and SHIFT + I):

Intro markers are required and indicate the begin and end position of the intro. You get the best result if you choose the least noisy parts, for example only beats, a vocal or a melody. You can often recognize such quiet parts in the waveform. If you add a 'intro begin' marker, an 'intro end' marker is automatically set (if possible) and the intro will get a yellow color. You can do it vice versa: first add an 'intro end' marker, and an 'intro begin' marker will be set automatically. The automatically placed marker is an estimated position (based on the BPM input field) and possible must be moved a bit for an optimal result. Important: the intro must always has a length of 32 beats (this may be less If you place a loop).

4.10.2. Intro prestart marker (keyboard shortcut P):

After you have set the intro markers, you can also place an 'intro prestart' marker (if desired). This can be useful if a voice or melody starts just before the beginning of the intro. The 'intro prestart' marker must be set before the 'intro begin' marker.

4.10.3. Intro loop markers:

It is also possible to mix songs with a short intro (less than 32 beats) by placing an 'intro loop begin' marker and an 'intro loop end' marker between the intro markers. After placing those intro loop markers, right-click somewhere in the loop and enter how many times the loop must be repeated. If you don't know how to calculate this value you may also enter the number of beats between the 'intro begin' and 'intro end' markers and the number of beats between the 'intro loop begin' and 'intro loop end' markers (separate both values by a comma).

4.10.4. Intro beat markers:

If you've noticed the beats are not in sync after testing with the 'beat sync test' button, and if you are 100% sure that you made no mistakes (markers are at the correct position and loops repeat correctly), you can place a 'intro beat' marker on each beat position to correct this. It's sometimes necessary with old vinyl recordings.

4.10.5. Break markers (keyboard shortcuts B and SHIFT + B):

Break markers are required and indicate the begin and end position of the break. You get the best result if you choose the least noisy parts, for example only beats, a vocal or a melody. You can often recognize such quiet parts in the waveform. If you add a 'break begin' marker, an 'break end' marker is automatically set (if possible) and the break will get a blue color. You can do it vice versa: first add an 'break end' marker, and an 'break begin' marker will be set automatically. The automatically placed marker is an estimated position (based on the BPM input field) and and possible must be moved a bit for an optimal result. Important: the break must always has a length of 32 beats (this may be less if you place a loop).

4.10.6. Break loop markers:

It is also possible to mix songs with a short break (less than 32 beats) by placing an 'break loop begin' marker and an 'break loop end' marker between the break markers. After placing those break loop markers, right-click somewhere in the loop and enter how many times the loop must be repeated. If you don't know how to calculate this value you may also enter the number of beats between the 'break begin' and 'break end' markers and the number of beats between the 'break loop begin' and 'break loop end' markers (separate both values by a comma).

4.10.7. Break mute marker (keyboard shortcuts M):

Optionally place a 'break mute' marker if you want to switch off the sound in the break at a certain point. For example, when a melody or singing begins just before the end of the break.

4.10.8. Break continue marker (keyboard shortcuts C):

Optionally place a 'break continue' marker if you want to continue mixing a small part after the break. This can be useful to complete a sung phrase or sound effect)

4.10.9. Break beat markers:

If you've noticed the beats are not in sync after testing with the 'beat sync test' button, and if you are 100% sure that you made no mistakes (markers are at the correct position and loops repeat correctly), you can place a 'break beat' marker on each beat position to correct this. It's sometimes neccesary with old vinyl recordings. TIP: Intro and break must have approximately have the same length. To check whether this is the case, you can doubleclick on the blue or yellow part to compare their lengths.

4.11. Skip markers (keyboard shortcuts S and SHIFT + S):

With skip markers you can shorten a song. During playback, MixPerfect Player will skip the part between the 'skip begin' and 'skip end' markers. If you do this well, you will not notice this during playback. For example, set the 'skip start' marker at the first beat of a chorus. Then search for a chorus later in the song and put the 'end marker' on the first beat of that chorus. To test whether the cut sounds good you can place the cursor in front of the 'skip begin' marker and click on the play button. Please note that skip markers can only be placed between the 'intro end' marker and 'break begin' marker.

4.12. INTRO AND BREAK CHECKBOXES

Above the waveform you see checkboxes for the intro and break. It's not required to select any of these checkboxes, but if you want to create harmonious mixes, it's recommended to use them. Listen which elements (vocal, bass, melody, beat) you hear in the intro and break and select those checkboxes. Optionally you can also select the intro-fade-in checkbox (useful if the intro starts loud or with incomplete vocals), and select the break-fade-out checkbox (useful if the break has a loud ending).

4.13. "BEAT SYNC TEST" BUTTON

You will get only smooth transitions if the markers are placed correctly. The 'Beat sync test' is a tool to check if you did it right. Click on the 'Beat sync test' button at the top left to open the beat sync test window. You see 2 players: one for the intro and one for the break. The time durations of both players must be the same.

If you play the intro or break you will hear overlapping beats. You can change the volume of the overlapping beats with the slider on the top. The overlapped beats must be in sync with the beats of the song. If this is not the case, click 'close' button to return to the database and check if markers are in the right place. Correct their positions where neccesary.

4.14. SAVING THE RECORD

If you've passed the beat sync test, you can save the record by clicking the 'save' button at the top right.

5. Files panel

Here you can import your audio files, so you can listen to them and add the songs that you like to the database. Also you can see the BPM of each song. This is especially usefull If you have few songs in the database. By first adding audio files of one BPM value, And then adding audio files of a subsequent BPM value, there are no major differences in BPM and the player can be used immediately.

5.1. "ADD FOLDER" BUTTON

Click on this button to select folder with audio files. This must be a subfolder of the music directory you've selected at settings. You can cancel the file scanning process anytime and also resume by clicking on 'Add folder' button again and select the same folder.

5.2. "CLEAR LIST" BUTTON

Clicking on this button will remove all files.

5.3. "DELETE FROM LIST" BUTTON

Clicking on this button will remove a selected file.

5.4. "ADD TO DATABASE" BUTTON

Click on this button to add a selected file to the database. If a file has been added it will show 'Yes' in the 'Added' column.

5.5. "SORT" SELECT BOX

Use this to sort the list by BPM, file, folder or 'added'.

5.6. "SEARCH...." FIELD

Type what you looking for in this field, and the list will be filtered on your search term. Remove your text with backspace to see the full list again.

5.7. PLAYNG A SONG

You can listen to a selected song with the play button at the left bottom. Click on the stop button to stop playing.

6. Settings panel

Adjust the settings to create a desired playlists. Changed settings can affect the length of playlists, but you can always restore the default values by clicking the 'default' button on the top left. The following options can be set:

6.1. DIRECTORIES:

Path audio files (required):
The main folder where your audio files are stored.

Path sleeve files (required):
The main folder where your sleeve files are stored. You may leave it blank if you don't want to display sleeve images.

6.2. GUI THEME

Color:
Sets the theme of the graphical user interface. Default is the most basic theme: Light.

6.3. PLAYLIST LENGTH:

Minimum number of songs:
The minimum number of songs the playlist must contain (a value between 2 and 999).

Maximum number of songs:
The maximum number of songs the playlist must contain (a value between 2 and 999).

Minimum playback time:
Minimum playback duration of the playlist (a duration between 2 minutes and 10 hours).

Maximum playback time:
Maximum playback duration of the playlist (a duration between 2 minutes and 10 hours, or infinite length). Maximum playback duration. If Infinite is selected and a random playlist is loaded, an infinite mix will play.

6.4. SONG LENGTH:

Shorten songs:
If you have placed skip-markers in songs, these songs can be played in abbreviated form. Default is Random, which plays songs alternately short and long, but you can also choose 'Always' Or 'Never' to play the songs in their original length.

6.5. REPEATING:

Unique songs before repeating:
Prevents the repetition of the same songs. The choosen value determines how many unique songs should be played before a previously played song is repeated. You can choose a value between 2 and 100.

6.6. SPEED:

BPM of first song:
The BPM value of the first song in the playlist. The selection list contains BPM's of songs from the database. Default is random.

BPM order of songs:
Determine whether the speed of songs in the playlist should change in ascending, descending or random order.

Maximum BPM distance:
Determines how much the pitch can be adjusted (a value between 0.5 and 1.0). The lower the value, the less noticeable the pitch adjustment. You can choose a value between 0.5 and 9.5. Default is 2.0, which adjust the pitch no more than 2 bpm lower or higher. This does not mean that the playlist cannot contain songs with a lower or higher BPM. The trick is that if a song being mixed has about the same speed as the current playing speed, it will continue at the original speed after mixing.

Pitch reset:
Determines when the pitch will be adjusted to the original speed of a song. This way, the playlist can contain songs with very different BMP values ​​without excessively adjusting the pitch. The lower the value, the less noticeable the pitch adjustment.

6.7. TRANSITIONS:

Keep beats going:
Choose whether transitions always must have beats. Default is Yes, which prevents that some transitions don't have beats.

Filter overlapped beats:
Specifies which song(s) should have filtered beats during a transition. During a transition it sounds better if the beats of one song sound less heavy. Possible options are 'Current song', 'Next song', 'Both songs' Or 'None'.

Combine beats:
Choose whether beats from 2 songs can be combined during transitions. This option only has an effect if the database contains songs for which you have indicated whether beats are audible in the intro or in the break. Default is 'Yes', which results in overlapping beats.

Combine basses:
Choose whether basses from 2 songs can be combined during transitions. This option only has an effect if the database contains songs for which you have indicated whether basses are audible in the intro or in the break. Default is 'No', which results in more harmonic transitions but fewer mix combinations are possible.

Combine vocals:
Choose whether vocals from 2 songs can be combined during transitions. This option only has an effect if the database contains songs for which you have indicated whether vocals are audible in the intro or in the break. Default is 'No', which results in more harmonic transitions but fewer mix combinations are possible.

Combine melodies:
Choose whether melodies from 2 songs can be combined during transitions. This option only has an effect if the database contains songs for which you have indicated whether melodies are audible in the intro or in the break. Default is 'No', which results in more harmonic transitions but fewer mix combinations are possible.

Always combine if no matches left:
Generates a longer playlist if set to Yes.

6.8. FILTERS:

The filter boxes contain data that you have added to the database. By selecting one or more items (hold Ctrl-key and click left mouse button) you can generate playlists with songs from specific artists, years, countries, record labels or genres.

Evolution mode:
Below the filter box with years you can enable/disable the Evolution mode. Enabled it generate a random playlist with songs arranged chronologically by year, with (if possible) approximately the same number of songs per year. Evolution mode will be ignored if 'Maximum playback time' is set to 'infinite'.

Data.s ""

7. Player panel

You can only play a mix if you have added enough records to the database and created (or loaded) a random or custom playlist.

7.1. PLAYER CONTROLS

Use the icons at the top left to start playing, pause, stop playing, or jump to the previous or next track. To play or pause you may also double click on a song in the playlist, or use the keyboard shortcut ALT + P. An alternative way to skip to another song is by clicking on a song in the playlist.

Volume:
Click on the speaker icon to adjust the sound level.

Dynamic amplitude:
The icon to the left of the speaker can be used to enable or disable dynamic amplitude. Enabling makes the sound level of all songs approximately the same. However, this can make soft moments undesirably too loud and make fades in and fades out inaudible. TIP: If you use mp3's, an alternative and better method to make all songs approximately the same loudness is to use the free program MP3Gain, which can be downloaded at https://mp3gain.sourceforge.net/

Rewind / fast forward:
You can rewind or fast forward a song using the slider at the top right. During a transition it is not possible to use the slider.

7.2. Loading a playlist:

Every time you run MixPerfect Player , it will load the playlist from the previous session by default. However, sometimes you want to restore an earlier saved playlist. If you load a playlist, the current playlist will be overwritten. The default folder for saved playlists is mixperfect/playlists, but you may choose any folder to load a playlist.

7.3. Saving the current playlist:

Every time you run MixPerfect Player, it will load the playlist from the previous session by default. However If you want to make sure that you can restore a playlist at anytime, you can save it. The default folder for saving playlists is mixperfect/playlists, but you may choose any folder to save the playlist. The playlist file will be saved with the extension '.mix', so don't change that.

7.4. Creating a random playlist:

Random playlists are based on your prefered settings. The length of a random playlist depends on the settings and the amount of songs in the database. Also it is important that you have selected a music folder at the settings.

7.5. Creating a custom playlist:

Before you create a custom playlist, make sure that you have selected a music folder at the settings and that the database contains enough songs.

The picklist:

The picklist shows the songs that you may add to your custom playlist. The list is based on prefered settings. The amount of songs to choose from depends on the settings and the amount of songs in the database. If you add a song to the custom playlist, the picklist will only show songs that can be mixed with the song you've added.

'Sort' select box:

Use this to sort the list by BPM, artist, record label, year or country.

'Search...' field:

Type what you looking for in this field, and the list will be filtered on your search term. Remove your text with backspace to see the full list again.

Playing a song:

You can listen to a selected song with the 'play' button at the left bottom. Click on the 'stop' button to stop playing.

'Add' button:

Use this button to add a selected song to the custom playlist.

The custom playlist:

The custom playlist contains songs that you've added from the picklist.

'Remove last song' button:

Click on this button to delete the last song in the custom playlist.

Playing a transition:

You can listen how the transition of a selected song to the next song sounds with the 'play' button at the left bottom. Click on the 'stop' button to stop playing.

'Load' button

Click on this button to load a previously saved custom playlist. Please note that the settings of the loaded custom playlist may differ from the current settings (if you have changed them in the meantime). Adjust them if needed before adding new songs.

'Save' button

Click on this button to save the custom playlist.

'Apply' button:

Click on this button to load the custom playlist into the Player Panel.

7.6. Exporting the current playlist to a text file:

You can export the current playlist to a text file. The default folder for exporting playlists is mixperfect/exports, but you may choose also another folder.

7.7. Exporting the current playlist to an audio file:

You can export the current playlist to an audio file. The default folder for exporting playlists is mixperfect/exports, but you may choose also another folder.

Editing a selected song:

Press ALT + O or right click on a selected song to edit the song info and mix-markers/

7.9. Replace a selected song with an alternative song:

If in the settings the option 'Always combine if no matches left' is enabled, a !-sign can appear after some tracknumbers. This indicates that the previous and next transition of those songs may not sound harmonious due to different vocals, bass lines, or melodies being mixed together. In that case an random alternative song can be choosen by selecting the song and pressing ALT + A.

7.10. KEYBOARD SHORTCUTS

The following shortcut keys can be used:

  • ALT + P - play / pause.
  • ALT + R - create a random playlist.
  • ALT + C - create a custom playlist.
  • ALT + S - save the current playlist.
  • ALT + L - load a playlist.
  • ALT + E - export the current playlist to an mp3-file.
  • ALT + O - edit the selected song (song info and mix-markers)
  • ALT + A - replace song with random alternative song (useful if the transition from the song to another song does not sound harmonious).

8. Upgrade panel

The upgrade section shows the current MixPerfect Player version and automatically checks for updates. If a new version is available, a button will appear to upgrade to the latest version.

9. Credits

Programmed by Martin Verlaan, (c) 2024-2025 the Netherlands (contributions by PureBasic forum members Wilbert (waveform assembler procedure) and ChrisRfr (ObjectTheme library)).

Used programming language: PureBasic, (c) Fantaisie Software, France.

Used audio library: BASS, (c) Un4seen Developments Ltd, UK.

Used BASS Add-ons:

  • BASSmix, (c) Un4seen Developments Ltd, UK.
  • BASSOPUS, (c) Un4seen Developments Ltd, UK.
  • BASSFLAC, (c) Un4seen Developments Ltd, UK.
  • BASSenc, (c) Un4seen Developments Ltd, UK.
  • BASSenc_FLAC, (c) Un4seen Developments Ltd, UK.
  • BASSenc_MP3, (c) Un4seen Developments Ltd, UK.
  • BASSenc_OGG, (c) Un4seen Developments Ltd, UK.
  • BASSenc_OPUS, (c) Un4seen Developments Ltd, UK.
  • BASS_AAC, (c) Sebastian Andersson (contributions by M. Bakker, Nero AG).
  • BASS_FX, (c) Arthur Aminov, Israel.
  • TAGS, (c) Wraith (contributions by Ian Luck, Dylan Fitterer, Chris Troesken).

Used icons: icons8.com, (c) icons8.com.

Used font: Bebabs-Regular, (c) Ryoichi Tsnunekawa, Japan.