Plugin formats? This is the end...

Audio Plugin Hosts and other audio software applications discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

tony tony chopper wrote:If you were a programmer you'd know it's impossible.
uh, no you launch a thread, track your processing structure externally. using an exception handler when the thread fails you read the call stack and come up with an error message. you re-build the processing structures and launch the thread again, this time with the faulting plugin disabled.

cubase has done this for years. what are you talking about?

this is a basic feature. come on, pretty much every piece of software using dynamic linkage to untrusted libraries works this way today. see firefox, vlc, countless others.

if you were a programmer you'd already have implemented this.

yes there are some exceptions that can't be handled completely, but they can be protected against. in those cases it's a severe problem, more severe than anything you should attempt to recover from. the process may have walked over memory, in which case you need to write to the log if possible and kill the entire process.

it's just that this rarely happens. most plugin faults cause issues by having access violations or other exceptions that can be caught and dealt with.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

using an exception handler
Again, exception handlers are useless, or you can imagine that no host would ever crash.

An exception sometimes tells you when (most often) an access violation occured, big deal. When it happens your app is still f**ked (even just because you skipped a precious bit of code), knowing when it happened exactly doesn't really help, it's gonna crash for real soon or later, if it hasn't yet.

But that's for the time it really triggered an access violation, as quite often it writes over a properly allocated piece of memory, and then the crash (the real access violation)/errors/weird behavior will happen later & somewhere else, could be in the host itself, or another plugin.
You can imagine that as the memory usage of the host grows, and especially with memory managers that allocate big blogs to fragment them, the chances of triggering an access violation get smaller & smaller. I love access violations, they're useful while programming, but that's what they're for, helping programmers, not making apps crashproof.

And yes, we use exceptions, like everyone. They have never fixed anything. *sometimes* the FL wrapper does detect a VST has crashed & disables it. It's very rare to see it happen, & very rare that the app stays alive after this.
To catch divisions by zero maybe I would consider them half-useful, and even there I'd rather let them pass through and only cause audio glitches, handling the exception could bring more troubles.


cubase has done this for years. what are you talking about?
ok, I didn't know that Cubase couldn't crash because of plugins.. that's nice.. I so wanted our bridge to be turned into a safety plugin playpen, while all I needed was the magical exception handler?
DOLPH WILL PWNZ0R J00r LAWZ!!!!

Post

uh, the access violation exception is passed to the exception handler before the write, not afterward.

response should be to immediately kill the process and rebuild the processing structures, like i said.

you continue ranting on and on about how this isn't possible because you assume i'm talking about doing something which isn't, while i'm not talking about that and why would i?

of course it's possible, and it works fine. it's been working fine for a decade and is implemented in countless applications.

so it's more effort to do this. well duh.

that's your job.
To catch divisions by zero maybe I would consider them half-useful, and even there I'd rather let them pass through and only cause audio glitches, handling the exception could bring more troubles.
no, actually. having the entire application's audio system lock up and output +inf or nan is not more useful than hearing a single-buffer glitch and having everything restored and working immediately afterward.

when flstudio locks up, it requires a restart. you might as well not capture the exception at all.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

tony tony chopper wrote:But that's for the time it really triggered an access violation, as quite often it writes over a properly allocated piece of memory, and then the crash (the real access violation)/errors/weird behavior will happen later & somewhere else, could be in the host itself, or another plugin.
padding.

i know this stuff doesn't work perfectly, but it's possible to do quite a lot.

there are ways to handle everything perfectly given enough effort. so when the user associates a crash with the host, they're not completely wrong in that.

it would be nice though if they'd get a message that clearly said where the last relative position on the call-stack before the error was. if it's plugin -> host -> plugin -> system, you can print "host -> plugin" and suggest that the plugin was probably at fault.

you can also implement a crash reporter that sends this information back to your server and add this information to a database. then you could optionally do it your way and when the user loads the plugin, report to them all the crash information that has been gathered. you can flag various plugins "good", "unknown", "bad".

yes it's all a huge amount of work.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

response should be to immediately kill the process and rebuild the processing structures, like i said.
the process? the only process involved is the whole app & all the plugins.. (unless there's a bridge involved as I wrote). If you mean kill the DLL, that's where it's probably gonna crash as well.

you can also implement a crash reporter that sends this information back to your server and add this information to a database. then you could optionally do it your way and when the user loads the plugin, report to them all the crash information that has been gathered. you can flag various plugins "good", "unknown", "bad".
I don't like plugin blacklisting (I believe some hosts do that locally) because it can discredit a plugin (or company), which is fine if the plugin is crap, but again you can never be sure of that, it can crash because of an uncompatibility (related to some of the obscure plugin specs), because of another resource, or because of something not even related to the plugin.

I keep asking Fred to make a 100% safe bridge so that when users try a new plugin, we'd advise him to use it for a week in its own bridge playpen, and once they're sure of it, they can free it & use it normally (for better efficiency).
DOLPH WILL PWNZ0R J00r LAWZ!!!!

Post

Greed = proprietary "technology" [same shi* - different package] = new formats.

I would say that people shouldn't support any new formats, be it a plugin, a picture, a document, but people are too dumb to see the big picture - why?. Sorry, but nobody sees further than his/her own ars*.

It's just greed, nothing else. Every firm that is trying to push it's own format of anything is just onto making more money in hope it will be next VST, PDF, DOC. It's as simple as that. For us users it does not have any implications except usually giving some more money to somebody else this time around. It could be just peanuts, but a pile of peanuts gets bigger and bigger...

Fuc* that shi*. I want to see a few open formats for everything, and let's forget about any proprietary format.

AAX? baah RE? baah... I say stuff it.

For example, VST plugins could work in every DAW on the market, but don't. Why? Greed of the likes like Digidesign and now Propellerheads to push their proprietary formats. Firms invent them just to grab some more piece of a "cake". Is it so hard to understand???

And then [the most stupid] people say that [say] a TDM plugin sounds better than VST counterpart :lol: :lol: :lol: when it's just that they've paid more for a proprietary Digidesign version of the plugin. Insane. :-o You should see how the "translation" process work... :lol: It's the same shi*!!!!

I have to go to the toilet now. Thank you. :lol:

p.s. regarding proprietary formats, firms like to draw people to use them so they wouldn't have to work on making a better app. Once you're in, you have to cope with their dodgy or not app. If all formats were open source, they would have to make a better app for fear that people would use some other app. Toilet thinking makes wonders, eh? ;)
Last edited by DuX on Fri Mar 23, 2012 1:14 am, edited 1 time in total.
It is no measure of health to be well adjusted to a profoundly sick society. - Jiddu Krishnamurti

Post

DuX wrote:Greed = proprietary "technology" [same shi* - different package] = new formats.
Format *is* technology, this is an academic point but completely true. That this fact gets manipulated for greed doesn't invalidate the need for new formats to innovate around content and information. A simple example - ASCII wasn't enough to handle the 90s.

Post

DuX wrote:Greed = proprietary "technology" [same shi* - different package] = new formats.

I would say that people shouldn't support any new formats, be it a plugin, a picture, a document, but people are too dumb to see the big picture - why?. Sorry, but nobody sees further than his/her own ars*.

It's just greed, nothing else. Every firm that is trying to push it's own format of anything is just onto making more money in hope it will be next VST, PDF, DOC. It's as simple as that. For us users it does not have any implications except usually giving some more money to somebody else this time around. It could be just peanuts, but a pile of peanuts gets bigger and bigger...

Fuc* that shi*. I want to see a few open formats for everything, and let's forget about any proprietary format.

AAX? baah RE? baah... I say stuff it.

For example, VST plugins could work in every DAW on the market, but don't. Why? Greed of the likes like Digidesign and their proprietary formats. Firms invent them just to grab some more piece of cake. Is it so hard to understand?

And then [the most stupid] people say that [say] a TDM plugin sounds better than VST counterpart :lol: :lol: :lol: when it's just that they've paid more for a proprietary Digidesign version of the plugin. Insane. :-o You should see how the "translation" process work... :lol: It's the same shi*!!!!

I have to go to the toilet now. Thank you. :lol:
It's not quite so simple. At least not in every case.

There are situations where a custom format can provide better integration and functionality with a given host. In the case of Cakewalk users can still use VST and even DX plugins - and I can't see that changing anytime soon. And those formats are continually leveraged and supported (like in FX Chains 2.0 for instance).

But ProChannel modules provide a level of functionality and integration that can only be provided by an extended format.
"No computer tells me what to do. When my Garmin GPS tells me to turn right I turn left. I haven't been home in 5 years."

Post

tony tony chopper wrote:
response should be to immediately kill the process and rebuild the processing structures, like i said.
the process? the only process involved is the whole app & all the plugins.. (unless there's a bridge involved as I wrote). If you mean kill the DLL, that's where it's probably gonna crash as well.
yes i've been referring to a bridged situation when i say process. unless it's possible to safely detach the dll from the host's main process (which because of the inability to call destructors, it isn't) then you'd have to do that for it to work at all.

unless there is some way to allocate a fixed block of memory to a specific dll and have the processor handle exceptions when the dll tries to work outside that range - the same as a process - but as far as i'm aware that still isn't available. perhaps in amd64?

it wasn't so long ago that the ia32 processors couldn't do any exception handling or process/thread management at all. while it sucks that they never really implemented full multiple "user ring" controls for sub-processes i guess it isn't too surprising. what would be surprising and a shame is if none of this is available in amd64. i haven't looked into it.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

xh3rv wrote:
DuX wrote:Greed = proprietary "technology" [same shi* - different package] = new formats.
Format *is* technology, this is an academic point but completely true. That this fact gets manipulated for greed doesn't invalidate the need for new formats to innovate around content and information. A simple example - ASCII wasn't enough to handle the 90s.
Of course, I didn't say new formats are unnecessary, but when you look at it from aside [so to speak] a lot of them are even now unnecessary. We have a chaos of different formats of the files. Some [fortunately] die off, and some survive somehow. Imagine a world where a text file would be in txt format, a multimedia document would be [some kind of] a PDF and everybody could read it in their favourite app on any OS? Every kind of a file has it's own open source format and there are like 30 formats, every each of them readable by different OSes? [except that when coding is just not compatible with the processor used] That's what I'm talking about. There's too much UNNECESSARY fragmentation of the formats, be it a picture, a movie, a plugin, or whatever. ;) Especially between differnt OSes. In a perfect world, I should be able to read the same document in OS-X, Linux, Windows or whatever, but it's not quite true mostly due to everybody pushing the proprietary formats.

Anyway, your point is good. ;)

Cheers!
Last edited by DuX on Fri Mar 23, 2012 1:28 am, edited 1 time in total.
It is no measure of health to be well adjusted to a profoundly sick society. - Jiddu Krishnamurti

Post

Brandon {Cakewalk} wrote:
DuX wrote:Greed = proprietary "technology" [same shi* - different package] = new formats. ...
It's not quite so simple. At least not in every case.

...

But ProChannel modules provide a level of functionality and integration that can only be provided by an extended format.
yes, so really the blame lies with steinberg for their ignorance of the need for such features and their poor direction and lack of leadership.

while vst3 did do some things, it was totally ignorant of a lot of others. one step forward and two steps back of course.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

aciddose wrote:
Brandon {Cakewalk} wrote:
DuX wrote:Greed = proprietary "technology" [same shi* - different package] = new formats. ...
It's not quite so simple. At least not in every case.

...

But ProChannel modules provide a level of functionality and integration that can only be provided by an extended format.
yes, so really the blame lies with steinberg for their ignorance of the need for such features and their poor direction and lack of leadership.

while vst3 did do some things, it was totally ignorant of a lot of others. one step forward and two steps back of course.
VST3 is a great example, Thanks AD! I've been watching the whole VST3 "issue" closely... two years ago? Steinberg has disappointed me a lot, but OTOH what else can you expect from the Yamaha corporation? Feeding the poor?? :lol: riiight It's all about focussing on the "target groups" and getting their money. Let me take this opportunity to remind you that the "target group" is probably about 5-10% of the [young and stupid] world's population. Just btw.

The only comfort is chilli beans that I make. Come over for a grab. :) :lol:
Last edited by DuX on Fri Mar 23, 2012 1:50 am, edited 1 time in total.
It is no measure of health to be well adjusted to a profoundly sick society. - Jiddu Krishnamurti

Post

Oh yeah speaking of format wars..............

:hihi:

Post

Nobody likes chilli beans?!?!?!? :lol:
It is no measure of health to be well adjusted to a profoundly sick society. - Jiddu Krishnamurti

Post

i think vst3 was the pet project of a specific programmer. it isn't entirely his fault though, as my inside information includes design by committee, fools leading the ignorant and other such cliches.

the real problem is that the arguments were going on between different groups, none of which were qualified. you have the PHB types, nearly-extinct dinosaur c programmers, code-monkeys, "artists" who poke their noses into technical business and try to make it easy for their types to understand. then you have to also factor in all the outside influences including existing software authors/companies, members on the vst mailing list and so on.

the first thing you hear in this type of situation is "every solution involves compromise". that's simply not true. every poor solution involves compromise - in other words the solutions which take the least effort. when this is said, they're including "oh jeez, i'll have to do work?" as a compromise.

...and that's what you get.

R&D to the modern business person seems like insanity. you invest large sums of capital into projects that may lead to zero profit. the only potential for profits are in the form of long-term technology developments, opening up avenues leading to new products which can then produce real capital profits.

another extremely significant problem is that people keep their heads down. lets say there is a problem you notice - if you poke your head up and point that problem out, it tends to either be ignored, or it becomes your responsibility. nay-sayers and pessimists are labeled as such - not as wise and cautious, but seen only as a source of doom-and-gloom.

the concept of long-term sustainability, cooperation and development simply doesn't exist in that consciousness.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post Reply

Return to “Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)”