快速登录:  

Forum: VirtualDJ Technical Support

话题: Audio glitches specifically with Touchwheel function

由于该帖子已年深日久,可能包含陈旧过时或描述错误的信息。

HutuCatHome userMember since 2018
I'm building a custom MIDI controller and am running into an issue getting it fully working with VDJ8 on Windows 10.

To start I configured my rotary encoder as a JOGWHEEL - this works flawlessly, however without actual platter control, scratching this way is very unpleasant.

So as I started hooking more things up I changed my encoder to a TOUCHWEEL and set my capacitive touch sensor as TOUCHWHEEL_TOUCH. At this point everything still functions 'correctly' - while the track is playing tapping the jogwheel causes the record to pause/unpause - and moving the jogwheel while touched moves the track forward/backward EXCEPT now there are frequent pops/glitches while doing so.

While the track is paused I can go into the controller options and swap between JOGWHEEL and TOUCHWEEL - jogwheel always works flawflessly and touchwheel always has pops and glitches even if I force touch to always be on.

Is there something that I'm missing that would improve the audio performance of touchwheel? Or perhaps is there a way to get jogwheel to be more responsive, i.e. using my touch sensor as a hold/unhold button? I tried the default hold action and it is very sluggish, doesn't work for cutting etc.

I will eventually try this on Mac to see if it's happening cross platform - it will just be a bit of a pain to set up the arduino software a second time.


ALSO - VDJ seems to reduce joghwheel inputs by exactly 25% - my encoder puts out 4096 positional ticks per full rotation but if I enter 4096 in the Device then a full rotation of the jogwheel only turns the virtual record 75% of the way - setting it to 3072 fixes, even though I am certain that it is sending out 4096 CC MIDI messages per rotation. Any insight on this would also be appreciated though the simple numerical adjustment I mentioned eases this issue greatly.
 

发表时间 Sat 09 Jun 18 @ 6:30 am
Audio glitches are most likely caused by your soundcard - not the jogwheel.

You don't mention what soundcard you're using. If it's just the one built into your computer then it's probably not up to the job. DJing (or for that matter any audio related stuff) is best done with a low latency audio interface - one that (on PC) has ASIO support.
 

发表时间 Sat 09 Jun 18 @ 6:55 am
HutuCatHome userMember since 2018
If that were the case the audio glitches would be present regardless of whether I was using the jog as a touchwheel or a jogwheel. As a jogwheel there are no audio artifacts even though the exact same MIDI messages are being sent from the controller.

I've also used this exact hardware setup with DVS, no audio glitches with DVS either.

So:

DVS - works fine
Jogwheel configured as jogwheel in controller settings - works fine
Jogwheel configured as touchwheel in controller settings - audio glitches

With the last two I am keeping the controller definition in the Devices directory exactly the same - only the mapping is changing.

So to answer your question VDJ audio output is just going through the internal soundcard on my PC but in light of the symptoms above it hardly seems like the soundcard would be to blame otherwise there would be glitches from jogwheel setting and likely from DVS as well. I definitely agree an ASIO soundcard would lower the playback latency - but an external soundcard is not required to simply output audio from VDJ.
 

发表时间 Sat 09 Jun 18 @ 7:49 am
HutuCatHome userMember since 2018
Further developments - seems to be a Windows 10 issue only, on my Macbook Pro also running VDJ8 it works without audio glitches (again no dedicated audio card there either).

However strangely enough even though the mac version is producing glitch free audio I had to set the ticks/revolution all the way down to 2048 to match one revolution of the jog to one revolution of the virtual record. So strange that the controller is outputting 4096, the windows one wants 3072 in the settings and mac wants 2048...
 

发表时间 Sat 09 Jun 18 @ 8:24 am
That just reinforces what I was saying, because typically a pro audio interface will use ASIO on Windows to get around any inherent latency, whereas Mac will commonly not use any special driver (although there are exceptions).

Have you tried adjusting the latency settings in VDJ on Windows?
 

发表时间 Sat 09 Jun 18 @ 8:45 am
HutuCatHome userMember since 2018
Presuming it's a soundcard issue, why in the world does it not occur when the jogwheel is set to jogwheel? The answer can only lie in the software - setting that option doesn't magically make a soundcard appear from thin air - yet that alone is sufficient to get the audio playing glitch free in the same exact setup.

It must be an issue with how touchwheel ticks are processed specifically on windows - touchwheel ticks and jogwheel ticks are supposed to behave exactly the same except touchwheel ticks do not register unless a touch note is 'on' - merely toggling the option shouldn't be affecting audio playback yet it is.

I will try to tinker in OSX from now on to avoid further issues - though in addition to the playback issues there is also the weird issue where on windows I had to set the 'full' for the jog device type to 3072 and on OSX to 2048 when in both cases the actual value should be 4096.
 

发表时间 Sat 09 Jun 18 @ 9:08 am
djdadPRO InfinityDevelopment ManagerMember since 2005
Indeed seems like a latency issue, meaning that has to do with the sound card you are using. So, just take any controller, and try increasing the latency. You will notice that the higher the latency , the worse is the scratching experience.
for sound cards with ASIO, you need to adjust latency from the ASIO utility of the sound card.
for non-ASIO (WASAPI), you can adjust (reduce) the latency setting from VDJ->OPTIONS

BTW, are you trying to map your controller as Simple Midi or are you creating a device file (definition) ?
 

发表时间 Sat 09 Jun 18 @ 2:25 pm
HutuCatHome userMember since 2018
It's a controller I'm making from an Arduino so there's no latency control that I'm aware of from the controller side - if there's an option in VDJ8 I haven't been able to locate it.

When I hooked up a DVS turntable via USB, I was able to use ASIO4ALL (no native ASIO drivers for the PT-01S/USB, sadly) and turn the latency all the way down to 64 samples @ 44.1khz or ~1.4ms. Even with the latency turned all the way down there were 0 audio glitches and scratching seemed pretty snappy although due to the particulars of my setup there was lag between the needle and the fader.

However when recognizing controllers I don't see the option of routing through ASIO4ALL like there is in the sound options where you select DVS as a deck input. In fact even when expanding the options all the way I didn't see any options that really seemed to indicate latency control.

I did mention that I'm making custom mappings so yes I've created a device file. The device file seems to work perfectly it's all up to ONE line in the MAPPERS file that causes issues:

<map value="JOG" action="jogwheel" />

^^ If it's set to this the audio is glitch-free


<map value="JOG" action="touchwheel" />

^^ If it's set to this then there are audio glitches only on win 10. OSX works fine


Again I really feel like if latency was the root cause then there should be glitches in both configurations, why are there only glitches on the touchwheel action when everything else is exactly the same?
 

发表时间 Sat 09 Jun 18 @ 6:26 pm
AdionPRO InfinityCTOMember since 2006
Can you make a recording of the distortion?
 

发表时间 Sun 10 Jun 18 @ 2:19 am
HutuCatHome userMember since 2018
So you guys can see specifically what I'm talking about, I recorded a video:

https://youtu.be/NhkgTk5G2zo

djdad - I followed your advice and tried to do more digging on the audio out side of things. The default sound device I was using (WASAPI) was at 1k samples with 22ms latency, with no option anywhere for me to push it up or down.

Then I recalled I had some virtual sound devices installed like voicemeeter and ASIO4ALL, so I tried ASIO4ALL so that I could pick sample rates, thinking maybe I had to push it higher than even 1k samples for some reason in order to get the audio to play smoothly - but in ASIO4ALL latency seems to matter much less and I can get glitch free playback at around 128 samples ~2ms. However I did notice that if I set it to 'jogwheel' I can go all the way down to the minimum of 64 samples with no issue, so I do think that's definite evidence that the touchwheel setting seems to be adding extra requirements to the audio pathway.


I'm still curious as to why my controller sends out 4096 MIDI CC messages per rotation, but on Win 10 I have to define the device like so:

<jog cc="0x24" full="3072" name="JOG" deck="1" />

and on OSX:

<jog cc="0x24" full="2048" name="JOG" deck="1" />

in order for one jogwheel rotation to match 1 record revolution - both of those should really have full="4096" - I checked that my jog sensitivity is at 1.00 in the settings.
 

发表时间 Sun 10 Jun 18 @ 6:33 pm
AdionPRO InfinityCTOMember since 2006
Did you check with midiox or similar that your jog touch message is not triggering repeatedly while scratching?
 

发表时间 Sun 10 Jun 18 @ 9:46 pm
HutuCatHome userMember since 2018
Yeah, I've even mapped the 'touch' note to a button instead just to be sure. Also the issue with the # of ticks to make a full rotation not matching occurs on both jogwheel and touchwheel, so at least that one does not seem to be touch related.
 

发表时间 Sun 10 Jun 18 @ 11:29 pm


(陈旧帖子或论坛版块会自动关闭)