We now also support the new Windows MIDI driver models (WDM). Any experiences with this one?
Does it work at all? Has anyone tested them at all?
There are known problems with input devices (some just don’t want to work) were we are unsure if thats just because they are not really supported by the manufacturers (not many applications use these drivers - except Cubase and Sonar) or if thats a bug in Renoise.
I’ve been on a festival so I haven’t really had time to make some tests with my hardwaregear on the first beta. Will try it out with my Emagic Unitor-8 and the most recent beta. There are no wdm-drivers for my midi-interface though, but it will be interesting to measure the difference anyway.
I’ve done a test . In my preferences in Renoise 1.9b2 i have no [WDM] or [emulated] behind my midi driver (emagic MT4 midi interface), but the Windows XP device manager said, that are a WDM Midi driver. I dont know…
Live playing with a midi masterkeyboard thru the MT 4 has the same latency like 1.8. I noticed no difference. Ablsolute usable.
Ok now the sync test with Cubase :
Cubase SX 2.2 with Renoise 1.9b2 as midi clock slave, connected with LoopBe1 [WDM] (nerds.de).
In the Cubase midi sync preferences is [emulated] behind every midi driver. I dont know why…ok.
I used the demo track of Renoise Diggin for Gold of sewen. I played 18 audio tracks out of Renoise and 18 audio tracks in Cubase in one time (the same PC). I noticed, that the midi offset of Renoise is about + 30 ms and you get tolerably 0-6 ms laterncy in the cubase audio tracks. That means, that the latency of the recorded stuff is fluctuating about 0-6 ms. In my case, is this not usable to make a patchwork with recordings of Renoise in Cubase.
The absolute best solution for this case is MTC (Midi Timecode). Completly hard wired. One picture is one picture. Zero latency.
Midi Clock is a totally different pair of shoes. Its simply the wrong protocol for such issues: Whatever you do, it will never be “sample” or 1ms precise.
We will need to support ReWire for such things.
Also the MIDI input has not been improved, because there simply is nothing we could do to improve it. But what you could do, is testing the MIDI output of Renoise: Testing running Renoise as Master and Cubase as Slave.
And we are excluding the [emulated] drivers, as they are usually even worse than the old non emulated MME drivers.
With Cubase 2.2 not possible, because cubase has no Midiclock In.
I used Ableton Live 6.0.5 as midi clock slave and unfortunately the same audio latency of -1 up to +6 ms with 20 ms Offset in Renoise.
Rewire is fine, but there are some Problems. Cubase or Logic cant be Rewire Slave, Live can be, but if i use this programms as Rewire Master, i have no VST plugins in Renoise and it is very circuitous with the export import thing.
Yes, thats a but confusing. But having a WDM driver doesn’t necessarily mean that it has a “Direct Music” driver. The “Direct Music” is the one that we need.
MTC will not give you better timing either. You are just exchanging beats and BPMs with wall clock (SMPTE) time. This still wont reduce the latency and wont reduce the jitter.
The only real advantage is that you can freely chose a BPM in the slave. But this doesn’t really make sense when syncing two music programs.
But back to the topic. Not sure if that was really clear:
What got improved (MIDI related in Renoise 1.9 on Windows) is:
MIDI output timing with WDM and non WDM drivers: Triggering external MIDI Synths from Renoise, or sending MIDI clock from Renoise
When available, the timing with WDM drivers will be even better than the old non WDM drivers
MIDI clock input timing with WDM. When using WDM for MIDI clock input, Renoise can now use the WDM timestamps for a more stable timing. The non WDM drivers have no timestamps, so there is nothing we could do to improve this.
The WDM drivers are turning up for the M-Audio soundcard, and I never experienced any problems while using them, or switching between non-WDM and WDM drivers.
However, I don’t know exactly where to look for the timing improvements? I performed two tests, first one was to sync Renoise to the clock signal of the drummachine, second one was to use Renoise as note trigger for the drum machine. Both tests worked fine, the latter even at ridiculous speeds (500bpm at F01!!!)
BTW: The velocity device kicks ass! It makes the Jomox so much fun to program!
I tried comparing 1.8 and 1.9 with a very simple pattern and the difference is huge, especially on high latency. I didn’t even have to compare to an ‘internal’ sound to hear that in 1.8 it goes way off.
I don’t really use HW synths/samplers, I just tried with a generic keyboard.
I also recorded the keyboard with 1.8 and 1.9 respectively.
The setup song and the recorded samples are all here: midi.xrns.
edit: It looks like 1.8 with low latency performs better than 1.9 with high latency.
I used an Edirol UA-20. On that site it says it has WDM drivers, but I don’t see any WDM anywhere (looked in the device manager and stuff). Is this WDM a MIDI only thing or is it a completely different audio driver? Where should I see the choice between WDM and non WDM? Anyway I didn’t see it anywhere, not in audio not in MIDI in/out.
Okay, so here’s my report, and I’m not sure if it is a very positive one. My MIDI-gear is an Emagic Unitor8 (serial connection, no wdm-support afaik) hooked up to a Creamware Pro-12 asb-synth (which is very responsive over midi). I’ve then ran a midi-loop and sampled it inside Renoise simultaneously in the following modes:
1.8 Directsound (5 ms) - good 1.8 ASIO (64 samples, 2ms) - very good 1.8 ASIO (2048 samples, 47 ms) - very bad, notes all over the place 1.9b3 Directsound (5 ms) - ok, not nearly as good as 1.8 DS. 1.9b3 ASIO (64 samples, 2ms) - average, occasionaly as good as 1.8 ASIO 2ms but some notes are delayed 1.9b3 ASIO (2048 samples, 47 ms) - better than 1.8 (ASIO 2048) but still average, some notes are skipping
So on my hardware, 1.8 ASIO with smallest buffer still gets the best result.
It is a little sad that my Unitor8 has Active Midi Transmission (which improves midi-timing by buffering it in the midi-interface on a earlier stage and then sending it to the synthesizer at the exact time) but there’s not much software that supports it. Maybe that would be a way to solve the problem.
Thanks for the feedback. Now thats something where we can start to improve things!
So it seems we should switch back to the 1.8 timing (no buffering) when running ASIO at latencies below 2ms (or even 4ms?) for non WDM drivers. (ASIO Buffer sizes 128 and below).
If you all say “missed notes and stuttering” you never got a hanging note, right? This should of course never happen.
Thats what WDM is about (in theory). The Unitor does not support the new WDM drivers though, but Logic uses its own unpublished driver to make use of this feature. This driver is not accessible to other applications.
Could you post some details about your hardware (which CPU, how much RAM you have). How many programs were running next to Renoise while you have tested this? Have you tried if closing them makes anything better?
Sure. My system is a Asus P5B Deluxe, Intel Core2Duo 6600, 2.4 GHz, 2 GB RAM, PCI M-Audio Delta-44, running Windows XP SP2. I only ran Renoise while doing the test (but I had Sunbelt Personal Firewall running in the background as well) so there wasn’t much to close. I haven’t noticed much difference when running applications simultaneously with Renoise, it seems pretty stable in that aspect.
I don’t think I’ve got any hanging notes from what I can recall.
It’s sad but not much to do about it as Emagic is bought by Apple and the support discontinued. Maybe I’m better off with an Edirol UM-880 in the long run, which is more recently supported and I think have WDM-drivers available as well.
I forgot to add, I ran Renoise 1.9b3 with Realtime Audio CPUs - 2 CPUs. Could this matter the result?