jpboggis

Atomix Productions employee responsible for hardware MIDI/HID controller support.

For technical support, please either contact support http://www.virtualdj.com/contact/index.html or post in the appropriate forum, e.g: http://www.virtualdj.com/forums/31/Hardware_Technical_Support.html

If you are a manufacturer and you would like us to add support for your hardware to VirtualDJ and/or would like to include VirtualDJ LE with it, please contact us via support: http://www.virtualdj.com/contact/index.html



Wed 22 Jun 11 @ 5:36 am


Skipping, stuttering and other sound break-up/glitches are caused by performance issues with your computer and/or incorrect configuration in VirtualDJ.

Common causes are:

  • OS X permission issues. If these are incorrect, then this can cause applications to not function correctly and other unexpected problems. Please see http://guides.macrumors.com/Repairing_Permissions for instructions.

  • Computer that is not powerful enough or does not have sufficient memory (RAM) - The recommended requirements can be found on the following page (Ideally your computer should exceed these): http://www.virtualdj.com/products/virtualdj/index.html

  • Overheating - Make sure that your computer has adequate ventilation and the cooling fans are still operational and are not being blocked. Most computers will slow down the CPU when it starts to overheat, reducing performance considerably. Overheating can also cause your computer to crash or freeze. For a laptop, a DJ laptop stand is a recommended to allow all round ventilation.

  • Out-of-date illegal versions of the software. If this is the case, please download and try VirtualDJ Home FREE - http://www.virtualdj.com/download/free.html - If you like the software, and wish to use Pro features, then please support it and its future development by purchasing it: http://www.virtualdj.com/buy/index.html

  • Unnecessary software running in the background. Make sure that you do not have other unnecessary applications open at the same time as VirtualDJ that may be using excessive system resources.

  • The skin (User interface) has been resized or maximised. On some systems, this can cause increased CPU usage depending on the capabilities of the graphics card and whether fast or quality resizing has been chosen in CONFIG -> Performances (Quality will result in better quality resized graphics but higher CPU usage as a result.) Please either use the skin at its correct size or download and use a skin that better suits your screen resolution from http://www.virtualdj.com/addons/skins.html

  • Newer MacBook Pro models have two video cards - One basic card to extend battery life and a higher performance card for better graphics performance. Make sure that the higher performance card is enabled by going to System Preferences -> Energy Saver and choosing Graphics: -> Higher Performance



Distortion when using two separate sound cards

When using two different sound cards on a Mac, you may get this issue if the two cards have different capabilities to each other (E.g: 44100 Hz for one card and 48000 Hz for the other.)

To check and correct if necessary:

  • Go to MacOS Utilities -> Audio MIDI Setup.

  • In Audio MIDI Setup, make sure that you are viewing Audio devices, not MIDI devices (Click on the Audio Devices tab, or in newer versions of MacOS, View menu -> Show Audio Window)

  • Depending on your version of MacOS you should either see a list of audio devices or the properties of the default device.

  • In newer versions of MacOS, click on each sound card in the list of sound devices. Then click on the OUTPUT tab and check that it is set to 44100.0 Hz and 2ch-16 bit.

  • In older versions, choose each sound card in the Properties For: drop-down list. Then check that it is set to 44100.0 Hz and 2-ch 16 bit.


NOTE: For live performance and best sound quality, a proper dedicated multi-channel DJ sound card is strongly recommended, such as Numark DJIO or Native Instuments Audio 2 DJ with either VirtualDJ Pro Basic or the full VirtualDJ Professional: http://www.virtualdj.com/products/comparison.html

NOTE: Home FREE and VirtualDJ Broadcaster are limited software do not support external multi-channel sound cards.


Incorrect permissions for VirtualDJ folder and database

Please check the permissions on your VirtualDJ folder are set correctly, otherwise VirtualDJ may not be able to save the database and all changes that you have made (BPM, comments, etc.) will be lost when you close the software:

  • Use Finder to browse to the folder /users/YOURNAME/Documents folder (Or /users/YOURNAME/Library/VirtualDJ for new installations of VirtualDJ v7.0.3 and above.)

  • Right-click (CMD+click) on the VirtualDJ folder.

  • Choose Get Info from the pop-up menu.

  • In the bottom right corner of the Get Info dialog, click on the pad-lock icon and unlock it (You may be prompted for your user password.)

  • Then just above that to the left is the Permissions list. Make sure that your user account has Read/Write permissions set.

  • Just below the Permissions box there is a button with a gear graphic on it - Click on it and choose the 'Apply to all included' items.

  • Once changed, close the Get Info dialogue box to apply the changes.


NOTE: If you use external drives, you will also need to do the above for each external drive (Located in /Volumes)

NOTE: If your external drive is PC NTFS formatted, then VirtualDJ will not be able to write to it and save your database information. The drive must either be natively formatted for Mac use only, or if you wish to also use it on a PC, it must be formatted FAT32. By default, Mac can't write to PC NTFS formatted drives, however 3rd party tools may allow you to do this.



Fri 27 May 11 @ 12:18 pm


LED's only support two states - On (0x7F) and Off (0x00) (Although the off can alternatively be a different value to produce a dim LED if the controller supports this.)

To implement different colours via the LED's value (Velocity) requires a more complex mapping. You should be able to do this by creating a definition for each different colour with the appropriate value and specify zero="" so that no value is sent to turn off the LED, e.g:

Definition:
<led note="0x01" value="0x12" zero="" name="LED_X_RED" />
<led note="0x01" value="0x30" zero="" name="LED_X_ORANGE" /> (Guessed value)
<led note="0x01" value="0x65" zero="" name="LED_X_GREEN" />


Mapping:
<map value="LED_X_RED" action="play ? off : cue" />
<map value="LED_X_ORANGE" action="play ? off : cue ? off : on" />
<map value="LED_X_GREEN" action="play" />


This should make the LED green when the song is playing, red when stopped at the cue point and orange when stopped away from the cue point (Or if the cue point is not set.)

The mapping needs to be designed so that only one of the states for the LED is true at any one time (I.e: So it's not trying to both set the LED red and green at the same time.)


Wed 19 Jan 11 @ 6:15 am


4 deck internal software mixer configruation:

For 4 deck software mixing using the software mixer built into VirtualDJ via all 4 channel sliders, set the following:

  • Set the switch on back of DN-MC6000 to PC MIX

  • Select MIDI as the source for each channel.

  • Press CF Mode to choose both AUDIO and VIDEO (Or if you prefer to use the crossfader for video only, choose VIDEO.)

  • In VirtualDJ, go to CONFIG -> Sound Setup and set your sound settings as follows:

    Inputs: Line INs
    Outputs: Headphones (Master: Chan 1&2 / Headphones: Chan 3&4)
    Sound card: ASIO -> Denon ASIO Driver (Mac: 4-out card -> DN-MC6000)

  • Click APPLY

2 deck external hardware mixer configruation:

For 2 deck (Left/right) hardware audio mixing using the hardware mixing capabilities of the DN-MC6000 via the middle two channels, set the following:

  • Set the switch on back of DN-MC6000 to INT MIX

  • Select USB/MIDI as the source for the middle two channels.

  • Press CF Mode to choose VIDEO.

    IMPORTANT: Make sure that the AUDIO light is off, otherwise you will also control the internal software mixer of VirtualDJ and will not be able to headphone pre-listen from the MC6000. This is because the audio is faded out by VirtualDJ before it reaches the sound card of the MC6000 and its hardware mixer. Make sure that the software crossfader in VirtualDJ is always in the centre.

    Alternatively, in VirtualDJ Pro you can disable the software audio crossfader in VirtualDJ itself by going to CONFIG -> Options and setting Crossfader to Disabled.

  • In VirtualDJ, go to CONFIG -> Sound Setup and set your sound settings as follows:

    Inputs: Line INs
    Outputs: External Mixer
    Sound card: ASIO -> Denon ASIO Driver (Mac: 4-out card -> DN-MC6000)

  • Click APPLY

  • In previous firmware there was a bug that would still send the position of the crossfader, volume sliders and EQ knobs to VirtualDJ at start-up in INT MIX mode, which may result in these not being in their default positions and affecting audio mixing via the real mixer in the DN-MC6000.

    This problem is now fixed in the latest firmware, which can be downloaded from: http://www.denondj.com

    For older firmware, a work around is to go to CONFIG -> Mappers, choose the DN-MC6000 in the drop-down list and click + (Add.) Choose ONINIT in the drop-down list and enter the following in the Action: box:

    crossfader 50% & deck 1 volume 100% & deck 1 eq_low 50% & deck 1 eq_mid 50% & deck 1 eq_high 50% & deck 2 volume 100% & deck 2 eq_low 50% & deck 2 eq_mid 50% & deck 2 eq_high 50% & deck 3 volume 100% & deck 3 eq_low 50% & deck 3 eq_mid 50% & deck 3 eq_high 50% & deck 4 volume 100% & deck 4 eq_low 50% & deck 4 eq_mid 50% & deck 4 eq_high 50%

    Alternatively, change the mappings for VOLUME, EQ_HIGH, EQ_MID, EQ_LOW and CROSSFADER to: nothing

    This will disable each of these controls (If you wish to use it as a software mixer again in future, you will need to change them back to volume, eq_high, eq_mid, eq_low and crossfader respectively.)


VirtualDJ Pro only: If you wish to change the order of the software MIDI mixer channels (PC MIX mode only) to 3 -> 1 -> 2 -> 4 instead of 1 -> 2 -> 3 -> 4 :

  • Go to CONFIG -> Mappers and choose the Denon DN-MC6000 in the drop-down list.

  • Find the mapping for VOLUME

  • Change the mapping Action: to the following:

    action_deck 1 ? deck 3 volume_slider : action_deck 2 ? deck 1 volume_slider : action_deck 3 ? deck 2 volume_slider : deck 4 volume_slider

  • Repeat the above for the following other items, replacing each occurrence of volume_slider with the appropriate verb as indicated below:

    PFL: pfl
    EQ_LOW: eq_low
    EQ_MID: eq_mid
    EQ_HIGH: eq_high
    GAIN: gain_slider

NOTE: Custom mapping is only possible in the full VirtualDJ Professional. If you are using VirtualDJ LE (Limited Edition) that comes with the DN-MC6000, you will need to upgrade at a discount by going to http://www.virtualdj.com/buy/index.html


Windows WDM audio instead of ASIO

VirtualDJ Pro on Windows PC only: if you wish to use WDM drivers instead of ASIO, you can do this via advanced sound configuration. WDM drivers do not allow low latency audio (Important for fast scratch response), but are more simple and less susceptible to issues such as sound break-up, stuttering, etc.

  • Go to CONFIG -> Sound Setup and choose Outputs: Advanced

  • Then click [+] and add the following:

    4 deck software mixing (PC MIX):

    Master | Speakers (MC6000) | Output 1&2
    Headphones | Speakers (MC6000) | Output 3&4

    2 deck hardware mixing (INT MIX):

    Deck 1 | Speakers (MC6000) | Output 1&2
    Deck 2 | Speakers (MC6000) | Output 3&4

  • Click APPLY.

NOTE: If you have problems with sound break-up, stuttering, etc. when using the ASIO driver, you may have performance issues with your computer and/or incorrect configuration in VirtualDJ. Please see http://www.virtualdj.com/homepage/jpboggis/blogs/4094/Common_performance_issues_and_solutions.html for a list of common causes and their solutions.


Troubleshooting:

  • Make sure that the PC / Mac switch on the back of the DN-MC6000 is set correctly for the type of computer that you are using using.

  • If you experience problems with the DN-MC6000 controller freezing, please download and install the latest drivers and firmware from http://www.denondj.com (A complete guide on how to update your firmware can be found here.

  • If the LOAD B button does not function, this means that you are running an out-of-date version of VirtualDJ. Please update to the latest version (v7.0.2 or later) by registering your serial number on the page http://www.virtualdj.com/users/edit.html (If you have not done so already) and then going to the Download Center: http://www.virtualdj.com/download/updates.html

  • If the ASIO driver fails to install, make sure that you are logged in as a user with administrator permissions and UAC (User Account Control) in Windows Vista or 7 is disabled. For instructions on how to disable UAC, please search Google for: disable uac

  • If the DN-MC6000 refuses to work as a MIDI controller or only appears in CONFIG -> Mappers as Simple MIDI Wrapper then you may have accidentally changed the MIDI channel by pressing SHIFT + SAMPLER/EFFECTS/RECORD. To correct this problem, press SHIFT + BROWSE to set it back to the default MIDI channels.

  • If a jogwheel will not scratch, press SHIFT + << to turn scratching (Vinyl mode) on.

  • If you prefer scratch turned off, press SHIFT + >> to turn scratching off (The jogwheel will always pitch bend when the song is playing.)


Return to Controller Config & Troubleshooting...


Mon 05 Jul 10 @ 3:47 pm


If you are using an external MIDI controller, you may find that the pitch slider stops working and the only way to get it function again is move the slider up and down until it 'catches'.

This is a safety feature common to all external MIDI controllers.

If the real pitch slider position on the controller does not match the software pitch slider position as shown on the VirtualDJ skin, then all movement of the pitch slider on the controller will be ignored until you move it to the correct position (As shown on-screen.)

This is to prevent a sudden jump in pitch that would occur if there is a big difference between software/hardware slider positions and you move the hardware slider. The software slider would instantly jump to the hardware position, which if you are not using keylock will be very noticeable to your audience.

To avoid a mismatch every time you load a new song, you should disable the following options under CONFIG -> Options: Auto Pitch Matching and Pitch Reset on Load. Both of these will change the software pitch slider position appropriately on song load, resulting in a mismatch.

Using SYNC will also cause pitch mismatch.


Thu 24 Jun 10 @ 7:23 am


To map/change mappings:

  • Go to CONFIG -> Mappers

  • Choose the appropriate device from the drop-down list, e.g: Keyboard, Hercules DJ Console, etc. or Simple MIDI Wrapper for a MIDI capable controller that does not have built-in (Native) support.

  • Click the + (Add) button, then press the key/button or move the knob/slider that you wish to map.

  • Type an appropriate action in the Action: box, e.g: hot_cue 1


For further information, please see:

http://www.virtualdj.com/wiki/VDJScript%20Examples.html
http://www.virtualdj.com/wiki/VDJscript.html
http://www.virtualdj.com/wiki/VDJscript_verbs.html



Fri 04 Jun 10 @ 4:39 am


If you are using a standard external hardware audio DJ mixer and VirtualDJ configured to output its decks to separate channels on the mixer (CONFIG -> Sound Setup -> Outputs: External Mixer) then you will hear both the live and pre-listened to decks in your recording/broadcast if you attempt to record or broadcast your set.

This is because VirtualDJ has no way of knowing where the crossfader/volume sliders are on the external mixer and which channels are currently playing out live. As far as its concerned, its volume sliders are up and crossfader is in the middle, so both channels are being output live and as such, both will be recorded and/or broadcast.

To be able to record/broadcast, you will need to connect a suitable cable to the REC OUT or RECORD output of your external mixer and connect this into the line input of your computer's sound card.

Choose the appropriate sound card's Line Input as your recording/broadcasting source (Recording Loop Back using advanced sound config in VirtualDJ v7 Pro or Basic) or use 3rd party audio recording software such as Audacity: http://audacity.sourceforge.net or 3rd party broadcasting software.

NOTE: If your mixer does not have a REC OUT output, the BOOTH output can be used instead providing this is a line-level signal (I.e: Red/white RCA phono sockets.) Make sure that you adjust the booth output to an appropriate level using its knob, because this will affect the overall level of the recording/broadcast.



Sun 16 May 10 @ 10:47 pm


If you have a MIDI capable external audio DJ mixer (E.g: Pioneer DJM-700 or 800), then you DO NOT need to map EQ's, volume, gain, etc. to control VirtualDJ's software mixer.

You should use the hardware controls on your mixer only to directly manipulate the sound. Mapping volume and/or the audio crossfader will prevent you from headphone pre-listening directly from the mixer (Because the sound is faded out by VirtualDJ before it reaches the external mixer.)

The only features that you normally need to map on an external mixer are the crossfader for video crossfading and possibly spare unused knobs/buttons/sliders for triggering effects, samples, etc.

NOTE: In VirtualDJ v7 there are now new fake_* verbs that allow the crossfader, volume and EQ's to be mapped so that they move on the VirtualDJ skin, but are not applied in software to the sound. This allows you to manipulate the sound in hardware from the mixer as well as having the on-screen controls move appropriately. The new verbs are as follows:

fake_crossfader
fake_volume
fake_eq_high
fake_eq_mid
fake_eq_low



Mon 19 Apr 10 @ 7:28 pm


NOTE: If you are using a Mac, please see: http://www.virtualdj.com/homepage/jpboggis/blogs/4485/Common_performance_issues_and_solutions_(Mac).html


Common causes of performance issues that may cause sound skipping, stuttering, distortion and other problems include:

  • Computer that is not powerful enough or does not have sufficient memory (RAM) - The recommended requirements can be found on the following page (Ideally your computer should exceed these): http://www.virtualdj.com/products/virtualdj/index.html

    NOTE: Even if your computer is above the recommended requirements, it may not perform well until it has been optimised for demanding low latency audio applications such as VirtualDJ. This is because many laptops and computers are only designed and tested by the manufacturer with home and/or office users in mind, so they are not configured properly for demanding audio applications such as VirtualDJ. This guide will help you optimise your computer for VirtualDJ.

  • Overheating - Make sure that your computer has adequate ventilation and the cooling fans are still operational and are not being blocked. Most computers will slow down the CPU when it starts to overheat, reducing performance considerably. Overheating can also cause your computer to crash or freeze. For a laptop, a DJ laptop stand is a recommended to allow all round ventilation.

  • (VirtualDJ v5/v6 only) Performance settings in VirtualDJ Pro are set too high for your computer to handle. Go to CONFIG -> Performances and move the performance slider towards the left.

  • Wireless networking. Some wireless network drivers are poorly designed and will cause latency issues. Try turning this off or disabling wireless. Also, check to see whether updated drivers are available from your computer manufacturer's website.

  • ACPI battery in some laptops can cause latency issues. To check, remove the laptop's battery. If this cures the problem, disable ACPI battery in Windows device manager.

  • ASIO buffer is set too low - If you are using an ASIO sound card, please check that CONFIG -> Performances -> Latency is set to Auto and try increasing the ASIO buffer size under CONFIG -> Sound Setup -> ASIO Config (You will need to restart VirtualDJ between each change for it to take effect.) Repeat until you find the optimal setting for your computer.

    If you are using the Hercules DJ Console Edition, click on the DJ icon in the Windows task bar to open the Hercules control panel. This will allow you to adjust the ASIO buffer size.

  • Otherwise, if you are not using ASIO, check that CONFIG -> Performances -> Latency is set to Auto and try enabling or disabling Safe Mode.

  • If you are using a MIDI controller that has a built-in sound card or you are using an external DJ sound card (E.g: Numark DJIO), then Windows may also be trying to use it as its default playback device, which in some cases may cause a conflict. Make sure that Windows is set to use your computer's own built-in sound card as its default device (Start -> Control Panel -> Sound -> Manage audio devices)

  • Out-of-date drivers, BIOS or firmware. Please visit the website of your computer's manufacturer and ensure that you have the latest installed. Also, make sure that you have the latest drivers for any DJ hardware (External sound cards, MIDI controllers, etc.) that you are using. Download links for hardware commonly used with VirtualDJ can be found on the following page: http://www.virtualdj.com/wiki/Common_Device_Drivers.html

  • Out-of-date versions of the software. Please ensure that you have the latest version installed from the Download Center http://www.virtualdj.com/download/updates.html or the latest trial http://www.virtualdj.com/download/trial.html

  • Viruses and spyware present on your system - Please ensure that your anti-virus software is fully up-to-date and perform a full scan of your system. If viruses are found, then after removing them reboot your computer and perform another full scan. Repeat until no further viruses are found.

  • Unnecessary software running in the background. Manufacturers often install unnecessary 'bloatware' applications on computers that can cause performance issues.

    NOTE: To appear to give greater value for money, new computers are also often loaded with lots of unnecessary software (Bloatware) that the user will probably never use, which can also cause performance issues. A clean, fresh install of Windows from the original Microsoft installation CD's is recommended if you have this option available. Make sure that you backup any important files first.

  • A processor (CPU) or memory (RAM) intensive scheduled task such as a full virus scan of your system is starting and then using too many system resources. In particular, virus scans can often be configured by default to start in the early hours of the morning when you may still be DJ'ing. Missed scans will often re-schedule for 10-15 minutes after you next start your computer.

  • Anti-virus software can have an adverse effect on slower computers. If you are not connected to the Internet, turn this off temporarily while using VirtualDJ. Also, make sure that your virus software is not scheduled to perform a scan of your computer at a time when you may be at a gig (Commonly a task is scheduled to start in the early hours of the morning.)

  • Laptop optimised for battery life or power saving rather than performance - Go to the Windows Control Panel -> Power Settings and make sure that your computer is set for maximum performance. IMPORTANT: Make sure that your computer has adequate ventilation (For a laptop, a DJ laptop stand is a recommended to allow all round ventilation.)

  • The skin (User interface) has been resized or maximised. On some systems, this can cause increased CPU usage depending on the capabilities of the graphics card and whether fast or quality resizing has been chosen in CONFIG -> Performances (Quality will result in better quality resized graphics but higher CPU usage as a result.) Please either use the skin at its correct size or download and use a skin that better suits your screen resolution from http://www.virtualdj.com/addons/skins.html (Available to registered licensed users only.)

  • UAC (User Account Control) in Vista/Windows 7 can cause problems and should be disabled. For instructions on how to do this, please search Google for: turn off uac

  • If you are using Windows Vista/7, try changing the desktop theme to Windows Basic. Right-click on Windows desktop, choose Personalize and choose Windows Basic in the list of themes.

  • If you get slow or choppy video performance then this may be because your computer has dual video cards - One for high performance and the other lower performance to conserve battery life. Your computer is probably using the lower performance card for VirtualDJ, resulting in poor video performance.

    You can normally choose which video card to run VirtualDJ with by right-clicking on its icon and then choosing from the pop-up menu. Make sure that your computer is also configured for maximum performance in Control Panel -> Power Options - Please see: [[My video output runs slowly or is very choppy]].

  • Due to faulty drivers, some video cards can cause video problems on some new computers. This is normally caused by the drivers incorrectly reporting more memory than what is actually physically available in the card. If you are experiencing problems with your computer running out of memory or freezing when playing video, try installing the latest version of the drivers for your video card. These can normally be obtained from the support/driver download area of your computer manufacturer's website.

    NOTE: In some cases, the manufacturer may not have released an update yet that fixes the problem. If this is the case, try installing an OLDER version of the driver, if available (I.e: A version of the driver before this bug was introduced.)

    If this does not resolve the problem, then you can use the Registry Tool ( http://www.virtualdj.com/addons/2170/Registry_Tool.html ) to adjust the maximum video memory that VirtualDJ can use (VideoMemMaxUse) to a more suitable setting, e.g: 128


The DPC Latency checker can be used to check for performance issues with your computer: http://www.thesycon.de/deu/latency_check.shtml

If your computer has DPC latency issues (Red spikes or high yellow ones), then LatencyMon (Windows Vista or 7 only) can help you identify the processes that are causing the problem: http://www.resplendence.com/latencymon - Or if you are using Windows XP, you can use RATT: http://www.microsoft.com/whdc/devtools/tools/ratt.mspx

Please see the following guide for further optimisations that you can make (Requires Adobe Acrobat Reader): http://ts.hercules.com/faqs/eng/her_eng_00364.pdf


Thu 07 Jan 10 @ 1:45 pm


Pre-analysing all your songs at home prior to a gig is strongly recommended.

This will ensure that all files have the correct gain, BPM, key and the ID3 tags have been read.

In particular, this will avoid the sudden change in volume that can occur when loading an unanalysed song and starting it playing before loading is complete (This is due to the fact that the correct gain setting is not known until the song has been loaded in full.)


The easiest way to do this is the following:

(1) Create a new filter folder by clicking the blue + folder icon at the top of the left-hand section of the browser.

(2) In the Name box, enter: Files to be scanned

(3) In the Filter box, enter: isscanned=0

(4) Now when you click on this folder, it will show all files in your database that need analysing.

NOTE: Please ensure that you add all new music to your search database by browsing to the folder where it is located, right-clicking on it and then choosing Add to search DB

(5) Press CTRL+A to select all files.

(6) Right click on a file and choose Scan for BPMs


This will take some time for a large number of files (You can set it going and leave it, e.g: Overnight.)

You can stop the process at any time and then resume it later by repeating steps 5 and 6.

When you add new music to your database in future, simply add the music to your search database and then repeat steps 5 and 6 to analyse it.



Thu 30 Jul 09 @ 4:51 pm


If you manually beat match by ear, then fine pitch adjustment with a high resolution pitch slider on a MIDI/HID controller is very important.

Most older and/or cheap/budget MIDI controllers normally only have 128 steps to their pitch slider (7-bit.) At 6% pitch range, this will allow you to make adjustments of +/- 0.09%, which is precise enough in most cases for most users, but limits matching songs with wider variances in BPM.

At greater ranges, the precision is lost and precise matching will be very difficult or even impossible, resulting in you either being slightly too fast or too slow and the beats gradually drifting.

With 7-bit MIDI (128 steps):

  • At 8% pitch range, the adjustments increase to +/- 0.125%.
  • At 12%, the adjustments increase to +/- 0.19%.
  • At 34%, the adjustments are +/- 0.53%!


The 128 pitch steps is a limitation of 7-bit MIDI. VirtualDJ itself is able to perform much more precise adjustments.

By manufacturers using 14-bit MIDI or the USB HID (Human Interface Device) protocol (As used by USB mice and keyboards), this limitation can be overcome.

With 1024 steps, you can make +/- 0.02% adjustments at 12% pitch range, allowing very accurate beat matching. Even at 34% you can still make +/- 0.07% adjustments.


Here is a selection of some controllers that have more than 128 steps for their pitch slider:

  • Vestax VCI-300 - MIDI, 1024 steps.
  • Denon DN-MC6000 - MIDI, 1024 steps.
  • Denon DN-HC4500/HC5000 - MIDI, 1024 steps.
  • Denon DN-S1200 - MIDI, 1024 steps.
  • Hercules DJ Console 4-Mx/4Set - MIDI, 256 steps.
  • Reloop DigitalJockey series - MIDI, 1024 steps.
  • Numark DMC-2 - HID, 1016 steps.
  • PCDJ DAC-3 - HID, 256 steps.


NOTE: Most mid/high end MIDI controllers (Numark, Denon, Pioneer, etc.) released within the last few years will normally have more than 128 steps. HID controllers will normally have a minimum of 256 steps. For confirmation, please check with the manufacturer before purchasing.

NOTE: If you are using timecode CD's or vinyl, the pitch precision will match the capabilities of the CD or record deck that you are using.



Sun 21 Jun 09 @ 2:13 pm


Control 4 decks with a 2 deck controller (E.g: Hercules DJ Console):

Change the mapping of the PFL button (If it has one) to the following:

select ? device_side 'left' ? deck 1 leftdeck ? on & deck 3 leftdeck & deck 3 select : on & deck 1 leftdeck & deck 1 select : deck 2 rightdeck ? on & deck 4 rightdeck & deck 4 select : on & deck 2 rightdeck & deck 2 select : select


Pressing the PFL button will select the deck for headphone pre-listen if it's not currently selected, otherwise it will toggle between controlling decks 1 & 3 on the left side or decks 2 & 4 on the right.

Alternatively, you can assign a separate button that is present on both sides of the controller to the following:

device_side 'left' ? deck 1 leftdeck ? deck 3 leftdeck : on & deck 1 leftdeck : deck 2 rightdeck ? deck 4 rightdeck : on & deck 2 rightdeck


This will toggle between decks 1 & 3 on the left side and decks 2 & 4 on the right, with the button LED (If it has one) indicating which deck is selected (On = 3/4)

NOTE: On a single deck controller, you can use the action invert_controllers to change which deck it is assigned to. By default, this is assigned to the EJECT button of the controller if it has one.


Toggle single timecode between the decks using TAB:

If you are using a single timecode deck, then by default when you press TAB, it will not follow the selected deck. You must manually assign it in the SCRATCH section of the default skin.

To make it follow the selected deck as you press TAB, simply change the mapping for the TAB key to the following:

deck active select & get hastimecode ? timecode_active : nothing



Toggle vinyl (Scratch) mode on/off for all decks with a single button:

If you are using a controller such as a Hercules DJ Console that has a single SCRATCH button to toggle vinyl (Scratch) mode on/off, then you will find that this only works for the first two decks. Simply change the mapping for the button as follows to make it work for all 4 (Or 6) decks:

4 decks:

deck 1 vinyl_mode on ? deck 1 vinyl_mode off & deck 2 vinyl_mode off & deck 3 vinyl_mode off & deck 4 vinyl_mode off : deck 1 vinyl_mode on & deck 2 vinyl_mode on & deck 3 vinyl_mode on & deck 4 vinyl_mode on

6 decks:

deck 1 vinyl_mode on ? deck 1 vinyl_mode off & deck 2 vinyl_mode off & deck 3 vinyl_mode off & deck 4 vinyl_mode off & deck 5 vinyl_mode off & deck 6 vinyl_mode off : deck 1 vinyl_mode on & deck 2 vinyl_mode on & deck 3 vinyl_mode on & deck 4 vinyl_mode on & deck 5 vinyl_mode on & deck 6 vinyl_mode on



Use a combination of buttons to trigger two different actions (I.e: SHIFT button):

VDJscript for the button that will act as the modifier, i.e: SHIFT:


set '$shift' 1 while_pressed


Button to perform two different actions depending on the state of SHIFT button, e.g: FX:

var '$shift' ? effect 'backspin' active : effect 'Flanger' active


This causes the button to trigger flanger on its own, and backspin if SHIFT+button is pressed.


Toggle a specific effect on/off with a button:

effect 'Flanger' active


(Replace Flanger with any other effect name of your choice.)


Toggle a specific video effect on/off with a button:

video_fx_select 'Strobe' & video_fx



Adjust FX parameter using the jogwheel:

Change the jogwheel mapping to the following:

effect active ? effect slider 1 : jogwheel


(Use touchwheel instead of jogwheel for a touch sensitive jogwheel.)

To adjust parameter 1 with the left jogwheel and parameter 2 with the right jogwheel on a dual-deck controller:

deck active effect active ? device_side 'left' ? deck active effect slider 1 : deck active effect slider 2 : jogwheel



Double/half loop using the jogwheel (When a loop is active)l:

Change the jogwheel mapping to the following:

loop ? param_smaller 0% ? cycle %jog -100 & var %jog ? nothing : loop_half 1 : cycle %jog 100 & var %jog ? nothing : loop_double 1 : jogwheel


The sensitivity can be adjusted by changing the value 100 (Smaller = More sensitive.)

(As above, use touchwheel instead of jogwheel for a touch sensitive jogwheel.)


Adjust loop length using a knob or slider (When a loop is active)l:

loop ? param_smaller 12% ? loop 0.125 ? nothing : loop 0.125 : param_smaller 24% ? loop 0.25 ? nothing : loop 0.25 : param_smaller 36% ? loop 0.5 ? nothing : loop 0.5 : param_smaller 48% ? loop 1 ? nothing : loop 1 : param_smaller 60% ? loop 2 ? nothing : loop 2 : param_smaller 72% ? loop 4 ? nothing : loop 4 : param_smaller 84% ? loop 8 ? nothing : loop 8 : loop 16 ? nothing : loop 16 : nothing


To invert the behaviour of the slider, add param_invert, e.g:

loop ? param_invert & param_smaller 12% ? loop 0.125 ? nothing : loop 0.125 : param_smaller 24% ? loop 0.25 ? nothing : loop 0.25 : param_smaller 36% ? loop 0.5 ? nothing : loop 0.5 : param_smaller 48% ? loop 1 ? nothing : loop 1 : param_smaller 60% ? loop 2 ? nothing : loop 2 : param_smaller 72% ? loop 4 ? nothing : loop 4 : param_smaller 84% ? loop 8 ? nothing : loop 8 : loop 16 ? nothing : loop 16 : nothing


NOTE: To adjust loop length with an endless encoder knob (One that can be turned continuously with no stopping point), use:

param_greater 0 ? loop_double : loop_half



Assign different actions for the same button/knob on each side of a dual-deck controller:

The controller definitions for dual-deck controllers such as the Hercules DJ Console RMX, Denon DN-HC4500, etc. are setup so that each button only needs to be mapped once (E.g: PLAY is mapped once to play_pause instead of needing to map it twice (Once for each deck.)

This is done for convenience and to make the mapping considerably simpler, because in most cases, the button, knob, etc. will perform the same function on both sides.

However, you can make a mapping perform different functions for each side by using device_side, e.g:

device_side 'left' ? sampler play_stop : effect active


This would make a button trigger a sample on the left side and effect on the right.

Of course, the action will be applied to appropriate deck based on which side it's on. You can also get around this by preceding the action with the following:

deck left to apply to left deck.
deck right to apply to right deck.
deck 1 to apply to deck 1.
deck 2 to apply to deck 2.
deck 3 to apply to deck 3.
deck 4 to apply to deck 4.
deck active to apply to the active deck (The one playing out live.)
deck default to apply to the default deck (The one being cued up/pre-listened to.)

E.g:

device_side 'left' ? deck active sampler play_stop : deck active effect active


NOTE: Old VirtualDJ v6 mappings using action_deck should be changed to action_deck


Trigger a different function if the button is held down for a given amount of time:

By using holding, you can get a button to perform two different functions depending on whether it's 'clicked' or held down and then released. The amount of time in milliseconds can be optionally specified. E.g: A LOAD button on a controller could be mapped to the following:

holding 2000ms ? unload : load


This will cause the button to load the selected song from the browser if the button is clicked, and unload the song from the deck if the button is held down for 2 seconds and then released.

NOTE: You should be careful using holding with actions where timing is critical, such as hot_cue. This is because the function is triggered when the button is released rather than pressed, resulting in a small random delay depending on how fast you press and release the button. For load/unload, this is not important, but if you are trying to play a hot cue on the beat, this delay may result in your mix being slightly out of time.


Make buttons perform different functions depending on what mode is selected:

First map a button to cycle through the modes, e.g: For 4 different modes Normal, Effects, Video and Sampler:

cycle 'mode' 4 & var_equal 'mode' 1 ? show_text "Effects|Mode" : var_equal 'mode' 2 ? show_text "Video|Mode" : var_equal 'mode' 3 ? show_text "Sampler|Mode" : show_text "Normal|Mode"


If your controller does not have text displays, then map the button to:

cycle 'mode' 4


And map the LED of the button (BUTTONNAME_LED) to indicate the mode:

var_equal 'mode' 1 ? on : var_equal 'mode' 2 ? on blink : var_equal 'mode' 3 ? on blinkfast : off



The variable 'mode' now holds the mode number, which you can then use in the mapping for each button that will act differently depending on the mode, e.g: You could map a button as follows:

var_equal 'mode' 1 ? effect 'Flanger' active : var_equal 'mode' 2 ? video_fx_select 'Negative' & video_fx : var_equal 'mode' 3 ? sampler 1 play_stop : hot_cue 1


The button will act as follows:

Normal: Hot cue #1
Effects: Turns flanger on/off
Video: Turns the video effect 'Negative' on/off
Sampler: Plays sample #1


Fine pitch adjustment with a knob:

Assigning the following to an endless encoder knob on your controller (If it has one) will allow you to make very fine pitch adjustments.

param_greater 0 ? pitch +0.01% : pitch -0.01%


Alternatively, you can map two buttons to the following:

pitch -0.01%

pitch +0.01%



Protected CUE button:

Changing the mapping of the CUE button of a controller to the following will prevent the cue point from being accidentally changed by pressing the CUE button when the song is paused away from the cue point. To change the cue point, it must be deleted first.

play ? cue_stop : hot_cue ? cue_stop ? cue_stop : pause_stop : cue_stop



CUP (Cue and play):

This feature will go to the current cue point while the button is held down, then start the song playing as soon as the button is released. If the song is already playing, it will jump to the cue point and continue playing.

play ? goto_cue : down ? goto_cue : play



CUE button that does not modify existing cue points

Map the CUE button to the following:

play ? cue_stop : hot_cue ? cue ? cue : down ? stop : cue : set_cue



Stutter button:

The following implements a stutter button. The first press sets the stutter point (Loop in.) Further presses stutter the music from that point. If the button is not used for a few seconds, it will reset automatically.

NOTE: When a loop is active, the button will perform reloop.

Map the button to the following:

var 'shift' ? loop_in & loop_out & loop_exit : loop_in ? reloop & loop_out : loop_in


Map the button LED (If it has one) separately to the following:

loop ? off : loop_in ? blink : off



'Chop' between both decks:

The following will pause the active playing deck and start the opposite deck playing:

deck active pause & deck default play & deck active select



A.Cue Scratch:

This feature will jump to the current cue point when the jogwheel is touched, allowing you to scratch from that point. Once the jogwheel is released, it will jump back to the cue point again and continue playing the song from that point.

If no cue point is currently set, then this can also be used to set the cue point by scratching. The cue point will be set when you release the jogwheel.

NOTE: This will only work on controllers that have touch-sensitive jogwheels.

Map a button to toggle this feature on/off:

toggle 'acue'


Then add the following to the jogwheel's touch sensor mapping (Usually named JOG_TOUCH):

& var 'acue' ? down ? hot_cue ? goto_cue & play : nothing : hot_cue ? goto_cue & play : set_cue


E.g:

touchwheel_touch & var 'acue' ? down ? hot_cue ? goto_cue & play : nothing : hot_cue ? goto_cue & play : set_cue


If you don't want it to jump back to the cue point again after performing your scratch, add the following to the jogwheel's touch sensor instead of the above:

& var 'acue' ? down ? hot_cue ? goto_cue & play : nothing : hot_cue ? play : set_cue


NOTE: If the button for toggling A.Cue scratch mode on/off is not on the same side of the controller, or is in the middle mixer section (If it has one), then you will need to use '$acue' for the variable name above instead of 'acue'.

NOTE: On a Hercules 4-Mx or 4Set, please use the following for JOG_TOUCH:

touchwheel_touch & var '$acue' ? play ? hot_cue ? stop & goto_cue & play : nothing : play : nothing



Simple MIDI Wrapper invert pitch slider

When mapping the pitch slider with Simple MIDI wrapper, you may find that the slider is inverted, so that moving the slider up speeds the song up instead of slowing it down (As on most DJ CD players and vinyl decks.) To invert the pitch slider so that it behaves correctly (Up slows down), simply map it as follows:

param_invert & pitch_slider



Simple MIDI Wrapper Endless Encoder Knobs and Jogwheels

Simple MIDI wrapper only supports very basic MIDI such as buttons, sliders and knobs with a min/max stopping point. Other features such as endless encoder knobs, jogwheels and LED's ideally require a controller definition to work optimally: http://www.virtualdj.com/wiki/ControllerDefinitionMIDI.html

However, you can map an endless encoder knob in Simple MIDI Wrapper by using the following:

param_greater 50% ? action 1 : action 2


E.g:

param_greater 50% ? browser_scroll +1 : browser_scroll -1


And you can map a jogwheel using the following:

param_greater 50% ? jogwheel +0.1% : jogwheel -0.1%


For a dual-deck controller, you will need to add the appropriate deck in front of each action:

deck left param_greater 50% ? deck left jogwheel +0.1% : deck left jogwheel -0.1%
deck right param_greater 50% ? deck right jogwheel +0.1% : deck right jogwheel -0.1%


For a touch-sensitive jogwheel, you will need to use touchwheel instead of jogwheel in the above mappings and also map touchwheel_touch to the touch sensor.



Use left/right jogwheels to browse folders and songs on a dual-deck controller:

Map the jogwheel to:

wheel_mode "browser" ? device_side 'left' ? browser_window "folders,folders" & jogwheel : browser_window "songs,songs" & jogwheel : jogwheel


Map the button to toggle browsing on/off to:

wheel_mode "browser" ? deck left wheel_mode "jog" & deck right wheel_mode "jog" : deck left wheel_mode "browser" & deck right wheel_mode "browser"




Denon HC-DNH4500 A1/A2 buttons:

To make the A1/A2 buttons behave similar to how they do on Denon CD players, change their mappings as follows:

A1 = set 'A1' 1 while_pressed & var 'FLIP' ? delete_cue 98 & loop_exit : hot_cue 98 & loop_in & set 'ABTN' 1
A2 = set 'A2' 1 while_pressed & var 'FLIP' ? delete_cue 99 & loop_exit : hot_cue 99 & loop_in & set 'ABTN' 2
B = var 'FLIP' ? loop_exit : loop ? loop_half : loop_out

LED_A1_DIMMER = hot_cue 98
LED_A2_DIMMER = hot_cue 99

LED_A1 = loop ? var_equal 'ABTN' 1 ? on : off : off
LED_A2 = loop ? var_equal 'ABTN' 2 ? on : off : off

LCD_LOOP1_( = loop ? var_equal 'ABTN' 1 ? on : off : off
LCD_LOOP1_A1 = hot_cue 98
LCD_LOOP1_B = loop ? var_equal 'ABTN' 1 ? on : off : off
LCD_LOOP1_) = loop ? var_equal 'ABTN' 1 ? on : off : off

LCD_LOOP2_( = loop ? var_equal 'ABTN' 2 ? on : off : off
LCD_LOOP2_A2 = hot_cue 99
LCD_LOOP2_B = loop ? var_equal 'ABTN' 2 ? on : off : off
LCD_LOOP2_) = loop ? var_equal 'ABTN' 2 ? on : off : off

FLIP = set 'FLIP' 1 while_pressed & holding 1000ms ? delete_cue 98 & delete_cue 99 & loop_exit : var 'A1' ? wheel_mode "jog" : var 'A2' ? wheel_mode "jog" : loop ? wheel_mode "loop_move,loop_out,loop_in,jog" : wheel_mode "jog"


NOTE: This uses cue points 98 and 99 - If you don't want these saved in your song, please ensure that you ensure that you clear them first (Hold FLIP for 1 second or press FLIP+A1 and/or FLIP+A2)


[[Supported Controllers]]


Sun 27 Nov 05 @ 9:17 pm


Portable video setup:

  • Sony Viao NS11j/s laptop (Windows 7 Professional 64-bit, Core 2 Duo, 4Gb RAM, 500Gb hard disk.)
  • Vestax VCI-300
  • Stanton Uberstand


Rackmount audio-only setup:

  • Sony Viao VGN-S3XP laptop (Centrino 2Ghz, 1Gb RAM, 80Gb hard disk, Windows XP.)
  • Denon DN-HC4500 controller.
  • Pioneer DJM-3000 mixer.
  • Denon DND-D4500 CD player.
  • External 2Tb USB hard disk.


Other equipment owned:

  • Reloop DigitalJockey Interface Edition 1 MIDI controller.
  • Denon DN-S1200 MIDI controller/CD player.
  • Synq PCM-1 MIDI controller.
  • Numark DMC-2 controller.
  • PCDJ DAC-3 controller.
  • Gemini direct drive turntables.
  • Echo Indigo DJx
  • ESI Maya44 USB ASIO sound card.



Site map
(C)opyright Atomix Productions 2014

Software
Hardware
ContentUnlimited
Goodies
VirtualDJ Pro versione completa
VirtualDJ Pro Basic
VirtualDJ Broadcaster
VirtualDJ Home GRATIS
VirtualDJ LE
Comparazione
Numark CUE
VirtualVinyl
VirtualDJ iRemote
AtomixMP3
eJay DJMixStation
DJ-Box
PerchŔ Virtualdj?
Vdj per Video DJ (Vdj)
Vdj per i DJ Scratcher
Vdj per i Club DJ
Vdj per DJ Mobili
What's new
Caratteristiche
Screenshots
VirtualDJ Home GRATIS
Manuali Utente
Plugins
Aggiornamento Software
Materiale Promozionale
SDK svilupatori
Timecode CD
Skins
Effetti
Controllers
Linguaggi
Samples audio
Sfondi per Desktop
Tools
Forums
Rete Utenti
Wiki e Manuali
Radio
Rivista
Social Web
Creare un nuovo utente
Atomix Productions
Informativa sulla privacy
VIP DJs
Richieste
Controlla le tue richieste
Wiki e Manuali