Redraw Limiter not quite working

Discuss suspected defects before submitting a bug report

Moderator: electrogear

Redraw Limiter not quite working

Postby aliasant on Sat Dec 19, 2009 11:21 pm

According to the description of the redraw limiter it should limit trigger to the redraw rate.
That isnt happening.

I started another thread, http://synthmaker.co.uk/forum/viewtopic.php?f=12&t=8851&p=62390#p62390 to see if others could verify or help me understand...

This simple test shows that there is no difference between the non limited 100 tick and the limited one.
The Redraw LImit works in a host. At least it stops trigger from coming thru when the plugin is closed.
Redraw Limiter Tests 1b.osm
(6.7 KiB) Downloaded 88 times


2 other oddities in this test osm are these:

The 100 tick seems to be quite off. I would expect it to be of 10ticks up or down but it seems to be more then that.
The test shows that it takes about 1570 milliseconds for it to count to 100. On my computer that is, but someone else mentioned a similar number.

The last little odd thing in this is the Timer.
Anything under 16ms as Duration input will act as a 10ms but if you use 16 you will see a clear difference.


This seems to mean that our plugins are using way to many triggers and wasting valuable cpu.

And again I want to ask for another timer then the built in windows one.
SM and its offsprings should use the soundcards clock for timing :(
Anything else is madness.
It's never to late to be late.....
http://martinrodensjo.smugmug.com/
User avatar
aliasant
smunatic
 
Posts: 2386
Joined: Sat Dec 30, 2006 5:49 pm
Location: Sweden

Re: Redraw Limiter not quite working

Postby rl on Sun Dec 20, 2009 4:48 pm

And again I want to ask for another timer then the built in windows one.


In my opinion this should be the #1 feature of the next SM version.

With that shaky current timer It's not even possible to build a halfway solid arpegiator.
User avatar
rl
dsp wiz
 
Posts: 1494
Joined: Mon Feb 07, 2005 10:24 pm
Location: de.earth.universe.known

Re: Redraw Limiter not quite working

Postby infuzion on Mon Dec 21, 2009 4:44 am

rl wrote:
And again I want to ask for another timer then the built in windows one.
In my opinion this should be the #1 feature of the next SM version. With that shaky current timer It's not even possible to build a halfway solid arpegiator.
Sounds like we're back into the MIDI timer request again...
Need help? First search the forum & WiKi, then post in the help forum with a clear topic, request, & OSM. Then please WiKi the correct solution. If you want my personal assistance, I charge by the hour or for an exchange of services.
infuzion
smstar
smstar
 
Posts: 6163
Joined: Wed May 04, 2005 8:02 pm
Location: Earth, USA, CO, Denver

Re: Redraw Limiter not quite working

Postby malc on Mon Dec 21, 2009 10:04 am

You're right of course. For accurate timing it's the only way and the timers we have at the moment were never intended for this purpose. The timing inaccuracies are just the nature of the Windows timer mechanism and we can't do anything to change them.

The request for sample accurate timing via a different mechanism is long standing, I do appreciate that. Hopefully we can resolve this in 2010.

The Redraw Limiter issue I replied about on the other thread. The Redraw Limiter only kicks in during automation, MIDI CC or preset changes. Also when the window is closed in a host. Outside of such events it does exactly what you're seeing...ie nothing at all :-)
User avatar
malc
smychopath
 
Posts: 3111
Joined: Tue Sep 07, 2004 11:17 pm
Location: UK

Re: Redraw Limiter not quite working

Postby aliasant on Mon Dec 21, 2009 11:59 am

malc wrote:You're right of course. For accurate timing it's the only way and the timers we have at the moment were never intended for this purpose. The timing inaccuracies are just the nature of the Windows timer mechanism and we can't do anything to change them.

The request for sample accurate timing via a different mechanism is long standing, I do appreciate that. Hopefully we can resolve this in 2010.

The Redraw Limiter issue I replied about on the other thread. The Redraw Limiter only kicks in during automation, MIDI CC or preset changes. Also when the window is closed in a host. Outside of such events it does exactly what you're seeing...ie nothing at all :-)


Thanx for the clarification Malc :)
The triggers seems to be fairly ok up to about 50/sec but then it gets worse the higher we go. Windows sux... some times... a lot .. :)

I know I and others have been screaming about using the clock on the soundcard for this and to be honest I dont really know how but using a sample accurate counter and take triggers from that? Maybe built into the SM engine so we only need that one counter and code to get accurate triggers? Then it nees to be baked into the exe/vst of course but this is your job :) Wel. Damnit. All of this is your job. Just playing with ideas. It shouldnt be so hard or?
It's never to late to be late.....
http://martinrodensjo.smugmug.com/
User avatar
aliasant
smunatic
 
Posts: 2386
Joined: Sat Dec 30, 2006 5:49 pm
Location: Sweden

Re: Redraw Limiter not quite working

Postby MegaHurtz on Mon Dec 21, 2009 5:57 pm

I think it`s a bit of a paradox to want accurate green timing.
It`s always off by it`s resolution in comparrison to actual time.
My guess is it would always require secondary data to go along with it,
at the speeds given it`s yust more data.
Maybe a function call setting at clock speeds would cut the bill ?.
Visit my website at: http://www.schlukhash.nl
User avatar
MegaHurtz
smaniac
 
Posts: 1514
Joined: Mon Aug 11, 2008 5:29 pm
Location: Eindhoven/Netherlands

Re: Redraw Limiter not quite working

Postby malc on Tue Dec 22, 2009 10:50 am

Jorge has had the accurate timing thought through for some time now so we know how to do it. The problem has been that to introduce it fully was always going to need a complete overhaul of the software. By "fully", I mean a complete new events system for all the triggered data, including MIDI (basically everything but the audio code).

Whilst it would be great to have the full package, the main thing accurate timing is needed for is sequencers and such like. Introducing this system to handle just MIDI is much more achievable and can be done without the need for a re-write.
User avatar
malc
smychopath
 
Posts: 3111
Joined: Tue Sep 07, 2004 11:17 pm
Location: UK

Re: Redraw Limiter not quite working

Postby aliasant on Tue Dec 22, 2009 11:25 am

malc wrote:Jorge has had the accurate timing thought through for some time now so we know how to do it. The problem has been that to introduce it fully was always going to need a complete overhaul of the software. By "fully", I mean a complete new events system for all the triggered data, including MIDI (basically everything but the audio code).

Whilst it would be great to have the full package, the main thing accurate timing is needed for is sequencers and such like. Introducing this system to handle just MIDI is much more achievable and can be done without the need for a re-write.



Sounds like the way to go maybe?
It's never to late to be late.....
http://martinrodensjo.smugmug.com/
User avatar
aliasant
smunatic
 
Posts: 2386
Joined: Sat Dec 30, 2006 5:49 pm
Location: Sweden

Re: Redraw Limiter not quite working

Postby MegaHurtz on Tue Dec 22, 2009 12:28 pm

These things do require a rewrite of the entire program :D
Visit my website at: http://www.schlukhash.nl
User avatar
MegaHurtz
smaniac
 
Posts: 1514
Joined: Mon Aug 11, 2008 5:29 pm
Location: Eindhoven/Netherlands

Re: Redraw Limiter not quite working

Postby MegaHurtz on Tue Dec 22, 2009 12:39 pm

If you`d be able to dump array`s.. say as a list or pcm.
You could use an array together with a ramp. in an all green environment.
Maybe even utilise an object to request data from the conventional wave output`s.
So that you can use the current syntax to declare an output for the array.
Visit my website at: http://www.schlukhash.nl
User avatar
MegaHurtz
smaniac
 
Posts: 1514
Joined: Mon Aug 11, 2008 5:29 pm
Location: Eindhoven/Netherlands

Re: Redraw Limiter not quite working

Postby Tzarls on Tue Dec 22, 2009 11:32 pm

Malc, is it possible to generate green triggers from the stream world? I mean, instead of doing some major surgery to install a new event system, couldn´t you just begin by creating a primitive that receives streams and sends green triggers? Me and some guys requested this kind of solution for the timing issues, and I really think that, if it is possible to do such a thing, then it would allow for some nice and interesting stuff while we wait for the major overhaul.
Tzarls
smanatic
 
Posts: 770
Joined: Tue Nov 11, 2008 5:43 am
Location: Peru

Re: Redraw Limiter not quite working

Postby trogluddite on Wed Dec 23, 2009 12:01 am

Tzarls wrote:is it possible to generate green triggers from the stream world?


Second that - even just a simple streambool to trigger on true/false transitions would have a thousand and one uses
Feel free to use any schematics and algorithms I post on the forum in your own designs - a credit is appreciated (but not a requirement).
Don't stagnate, mutate to create. Without randomness and serendipity the earth would be just another barren rock.
User avatar
trogluddite
smychopath
 
Posts: 3025
Joined: Mon Oct 20, 2008 3:52 pm
Location: Yorkshire, UK

Re: Redraw Limiter not quite working

Postby infuzion on Wed Dec 23, 2009 2:42 am

Tzarls wrote:Malc, is it possible to generate green triggers from the stream world? I mean, instead of doing some major surgery to install a new event system, couldn´t you just begin by creating a primitive that receives streams and sends green triggers?
I guess one could figure out a way to send a float value every _x_ samples, but I still don't think it will be sample-accurate. The green system seems to use a heart-beat, just like Adobe Flash uses "frames" & Max/MSP uses packets. So even if the Stream to Float could have a value ready every 1000 samples, the green system might not be ready on the 1000th sample to pick it up. (I hope I'm not misrepresenting SM Malc?)

I do like the idea of auto-sending a value every 500+ samples though (which can be used for triggers, better meters, etc). It will eat CPU if your not careful, but I like the idea better than having to use a Trigger + Mono To Float.
Need help? First search the forum & WiKi, then post in the help forum with a clear topic, request, & OSM. Then please WiKi the correct solution. If you want my personal assistance, I charge by the hour or for an exchange of services.
infuzion
smstar
smstar
 
Posts: 6163
Joined: Wed May 04, 2005 8:02 pm
Location: Earth, USA, CO, Denver

Re: Redraw Limiter not quite working

Postby malc on Wed Dec 23, 2009 9:26 am

@Tzarls:

That is possible yes. In fact that's pretty much how the events system works. So yes you could go as far as generating the event but then convert it to a trigger for use with the current system instead of introducing a new system where the events flow from component to component. This way you would get the timing aspect of the new system at least.

As infuzion points out you'd have to be careful not to do too much processing or cpu will be compromised. Might be better for us to pass the trigger across threads so that the audio thread can continue while the trigger flurry processes.
User avatar
malc
smychopath
 
Posts: 3111
Joined: Tue Sep 07, 2004 11:17 pm
Location: UK

Re: Redraw Limiter not quite working

Postby rl on Wed Dec 23, 2009 11:10 am

Maybe this article could be helpful: http://msdn.microsoft.com/en-us/magazine/cc163996.aspx .
(Creating an accurate timer is a major headache on windows)

When deriving triggers from stream processing, bear in mind that the VST hosts does the sample processing _before_ the buffer will be sent to the soundcard. E.g. when generating a midi event from that trigger audio and midi might be not in sync (dependent on the soundcard's latency)
User avatar
rl
dsp wiz
 
Posts: 1494
Joined: Mon Feb 07, 2005 10:24 pm
Location: de.earth.universe.known

Next

Return to Bugs

Who is online

Users browsing this forum: Google [Bot] and 2 guests

cron