Midi timing And WDM MIDI experiences?

I would like to know if someone of you has actually noticed a difference in Renoise 1.9, regarding the MIDI timing; if all the hard work was actually a bit useful ;)

Especially those who had problems with the timing in older Renoise release.

Also, as described here:

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.

I hope this getting better.



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.

MTC is my favorite.

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:

  1. 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

  2. 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.

I have a hardware drum machine around, I’ll do a test with it to see if there’s a any noticable difference from 1.8 to 1.9

Edit: OK, so I had the time to play around. I experienced no problems, everything working fine. This is my hardware setup:

Laptop: Toshiba 1.8gHz Pentium M / 1.5Gb ram
Sound card: M-Audio Firewire Audiophile (attached to PMCCIA Firewire bus)
External hardware: Jomox X-Base drum machine

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!

Thanks for the feedback.

If you never had problems with the timing, this is of course hard to test/notice. To make the difference more obvious, you could compare the following:

  • Start Renoise 1.8 and do a nifty, very fast drum pattern, with lots of retriggers and stuff that triggers an external synth (like your jomox)

  • Now raise up the latency (using ASIO) to the biggest buffer size your device can do

  • Start Renoise 1.9 and use a non WDM driver with the same latency settings / song

  • Start Renoise 1.9 and use a WDM driver with the same latency settings / song

1.8 should be worse (the bigger the buffer sizes, the bigger the timing errors will be)
1.9 with non WDM drivers should be good
1.9 with WDM drivers should be perfect

OK I tried with different latencies, with much more obvious results:

Renoise 1.9b3

  • 2048 samples: Without WDM, a lot of missed notes and stuttering. With WDM driver, mucho improvement. But still not a setting I would recommend…
  • 512 samples (my normal latency): Without WDM, some notes are skipped. With WDM - perfect result!

Renoise 1.8

  • 2048 samples: unusable…
  • 512 samples: stuttering/some notes skipped

WDM is sweet !

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.

From the amount of animo for this thread can one conclude most Renoise users are solely softwarebased?

I’ll do testing and comparsions witn my NL3 on this weekend, and 'll report at monday!

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.

Here’s the testfile with all the recordings, so you can listen for yourself: http://undone.se/misc/midi_test.xrns

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.

Also, this (post 21 and onwards) is interesting reading: http://www.mzee.com/forum/showthread.php?t…9759&page=2

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.

Hi taktik,

Nope, I never experienced any hanging notes, even at the “worst” test scenarios.

My soundcard has 256 samples as the minimum setting, so I guess I can’t really be helpful there :frowning:

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?

-> 1.9b3 Directsound (5 ms) - ok, not nearly as good as 1.8 DS.

I have a similliar setup here, and DS at 5ms works better here with MME devices. Let me test this again. The timing improvements should of course not result in worse timing, compared to 1.8

-> 1.9b3 ASIO (64 samples, 2ms) - average, occasionaly as good as 1.8 ASIO 2ms but some notes are delayed

This will be fixed in the next beta, but 64 samples is nothing you can really work with in practice (with Audio/VST and stuff), or?

Nearly everything depends on this ;), so it wouldn’t hurt to test this.

Thats right. A mid buffersize for normal work is 256 samples for me.
BTW: about 1.9 midi. I didn’t do indeep tests, but is seems that midi works much more confident now. 'll do more sests asap!

Okay, I did some more testing and whether I ran 1 or 2 cpu’s didn’t change anything really.

Nah not really. I normally run 512 samples. But it would suffice for sampling MIDI-equipment on the other hand. Well, I just tested the minimum/maximum values really.