XHip--Please finish your synth!!

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

aciddose wrote:it is unexpected behaviour. if you'd like to hear steinberg themselves say that only their implementations are correct, all you need to do is ask them: "which hosts can i use as a reference when developing vst plugins?"
Are you saying you code xhip by trial-and-error from observing a Steinberg host's behavior? Of course not, you (like everybody else) go by what the VST SDK specifies. Unfortunately for all of us it is extremely vague on a large number of issues, but unless a plugin or host is in clear violation of what *is* specified you cannot call it a faulty implementation or a bug.

Besides, I'm sure you are aware of the fact that even the Steinberg hosts do not play by the SDK rules in a number of cases. VSTack reports that it can handle any number of input/output channels, whereas in reality it is restricted to mono or stereo in/out. Wavelab reports that it is *always* processing in realtime (or always offline, I don't remember which). Does that make it OK for other hosts to do the same?

-- dj!

Post

AdmiralQuality wrote::lol:
The dude as returned.. :borg:

- bManic
"Wisdom is wisdom, regardless of the idiot who said it." -an idiot

"They don't ban hate speech; they ban speech they hate." -an oracle

Post

AdmiralQuality wrote:
aciddose wrote:fairly amusing aq isnt it, especially when the fact is that when a user asks you for a feature you do not want to implement, you tell them "sorry, it'll never happen. goodbye."
Does Poly-Ana exhibit this bug in Sonar? Cuz she don't sort either.

Again, this is yet another example of your "customers" getting what they paid for and you blaming the entire industry for your own lazy mistakes.

I'll go away now, just had to have a little giggle at your attitude.
Giggle at Aciddose's attitude? Dude.. you must be kidding! :lol:

- bManic
"Wisdom is wisdom, regardless of the idiot who said it." -an idiot

"They don't ban hate speech; they ban speech they hate." -an oracle

Post

well, other hosts are not supposed to exist you see. vst isnt an open standard or a standard at all. it is a proprietary specification for plugins that work specifically with steinberg's audio software.

anyway if somebody wants to code this it is easy. you should add a insert() function to the midievent class. parameter should be the event before the event you want to insert. wiggle the pointers to insert the event and keep the linked-list linear.

in the process() function rather than skipping events as i do now, when you find an out-of-order event go into the sorting context and loop through for each delta value. first eliminate any values which are negative. (#1 they should be ignored in the processevents() function actually.) find all deltas which are equal to the current delta value and insert those events after the current event. after each insertion increment the current event. upon reaching the last event, restart at the current event. when the current event is equal to zero the list will be fully sorted.

1) if ((*ev)->type == kVstMidiType && (*ev)->data[0] != (char)0xFE && (*ev)->deltaFrames >= 0)

i'll implement this when i get around to it. i have other work to do which is not software related.

Post

aciddose wrote:well, other hosts are not supposed to exist you see. vst isnt an open standard or a standard at all. it is a proprietary specification for plugins that work specifically with steinberg's audio software.
VST SDK wrote:The Steinberg VST Plug-In Software Development Kit can be used freely subject to certain licensing conditions by anyone interested in developing Plug-Ins, or to extend an application so that it's capable of hosting VST Plug-Ins.
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."

Post

regarding why their plugins "work" - probably this is not an intended behaviour, rather a side-effect. i suspect if you dasm their plugins you'll be able to find that they use a stl-list for events rather than a hand-coded linkedlist and in such a stl-list sorting is automatic. i suspect you'll also find if you do stress-testing that cpu use jumps when extremely large numbers of events are sent to these plugins.

that is merely speculation of course and they may have implemented what i describe in my above post. that in my opinion is extremely unlikely, though.

Post

whyterabbyt; that is all very nice, however i can just as easily claim that xhip is designed to help with your arthritis in some document and use that as proof for such a statement. i'd say the purpose of the 'sdk' is more accurately shown by the 'sdk' itself.

Post

djex wrote:Besides, I'm sure you are aware of the fact that even the Steinberg hosts do not play by the SDK rules in a number of cases. VSTack reports that it can handle any number of input/output channels, whereas in reality it is restricted to mono or stereo in/out. Wavelab reports that it is *always* processing in realtime (or always offline, I don't remember which). Does that make it OK for other hosts to do the same?

-- dj!

Post

aciddose wrote:i suspect if you dasm their plugins you'll be able to find that they use a stl-list for events rather than a hand-coded linkedlist and in such a stl-list sorting is automatic.
No, afaik you have to call sort() :)

Post

not in a sorted list. i meant that i think they use a sorted list where events are always inserted in the correct order. (the insertion point is selected based upon the value of the data to be inserted) (ok, after checking that ten pounder, is what i'm thinking of called a 'set' ? otherwise perhaps the behaviour is intended but it is still never mentioned in the 'sdk' and so is therefore _not_ the expected behaviour.)

djex; i dont know what you're on about, but yes. if you write another host just like wavelab, it is allowed to always say it processes in real time. in fact any host can say that, or might decide just to ignore that 'opcode'.

regarding "VSTack reports that it can handle any number of input/output channels"

that sounds like a genuine bug. talk to steinberg about that one, not me.
Last edited by aciddose on Thu Oct 11, 2007 2:47 pm, edited 1 time in total.

Post

aciddose wrote:whyterabbyt; that is all very nice, however i can just as easily claim that xhip is designed to help with your arthritis in some document and use that as proof for such a statement.
well, you could try to. assuming we can get you to stick to a common definition of 'arthritis'.

but what's actually happened here is someone has said 'xhip was never to be used to cure arthritis' and someone else points at that documentation and says 'well it looks like it was. Maybe you're just a habitual liar, though.

The question of whether it does cure arthritis is entirely different, as you know.
i'd say the purpose of the 'sdk' is more accurately shown by the 'sdk' itself.
well, that's clearly not the privision of 'reference implementations', despite what you've said.
Last edited by whyterabbyt on Thu Oct 11, 2007 2:44 pm, edited 1 time in total.
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."

Post

aciddose wrote:not in a sorted list. i meant that i think they use a sorted list where events are always inserted in the correct order. (the insertion point is selected based upon the value of the data to be inserted)
Yeah, but there's no stl list that is automatically sorted. You'd have to resort to using a set instead of a list if you want automatic sorting.

Post

aciddose wrote:i dont know what you're on about, but yes. if you write another host just like wavelab, it is allowed to always say it processes in real time. in fact any host can say that, or might decide just to ignore that 'opcode'.
Which is a clear violation of the SDK specs. A host shd return its current process level, not always "realtime" or always "offline". So what makes it OK for Wavelab to do this? The fact that it is a Steinberg host?
that sounds like a genuine bug. talk to steinberg about that one, not me.
Well, you seemed to be claiming that the Steinberg hosts' behavior is what plugin builders shd conform to? Steinberg hosts are the reference that others shd abide by, right?

-- dj!

Post

"Which is a clear violation of the SDK specs."

quote of this?

"you seemed to be claiming that the Steinberg hosts' behavior is what plugin builders shd conform to?"

yes, and whyterabbyt is as usual completely lacking a common sense interpretation of what i've said. it seems like he spends time on this forum only to have petty arguments with people and launch absolutely unfounded personal attacks. see his history for the evidence of this.

back on topic: i said "plugins", not "hosts". a plugin designer should assume that the process level is not always accurate, and in fact, doesnt it say that in the source comments? if it doesnt then it must be a genuine bug. obviously if it is specified that the host will always report correctly then that is the correct behaviour.

Post

aciddose wrote: "you seemed to be claiming that the Steinberg hosts' behavior is what plugin builders shd conform to?"

yes, and whyterabbyt is as usual completely lacking a common sense interpretation of what i've said.
actually it looks more like you're you're the one lacking a 'common-sense interpretation'; you'd rather avoid doing something properly, to account for real-world usage, and then try to justify it on inconsistent and spurious reasoning, than admit any possibility that your assumptions might not be correct.
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."

Post Reply

Return to “Instruments”