OT: Plug-in Development
Posted: Sat Jun 03, 2023 10:07 am
Good day,
Though this topic may initially appear not to be at all relevant, I sincerely believe that after perusing this text and then performing your own research, that this topic may indeed, become relevant - especially for SAC users.
Italics
The use of italics is important in that - at the end of the day, what is being written is my own personal view on the topic.
Preamble
It would appear that many developers today - either have not or do not build plug-ins "from scratch". Rather these developers employ the use of libraries or frameworks. Whatever these libraries or frameworks are, though relevant, are not specific to this topic. What is specific to this topic however, is with regards to problem solving, or more specifically, "debugging".
An example...
Many years ago now, I was beta-testing Guitar Rig 5 within SAC. At some point, I can across an anomaly that was submitted to Native Instruments for a possible resolve. As a beta-tester I was privy to the development platform that they were using at that time - which helped me in being able to explain the situation, as I had some experience with that particular platform. As NI was developing GR5 "from scratch" - they were able to track-down the anomaly and provide a "fix".
Fast-forward to today, as noted, many developers no longer develop software "from scratch" - but do indeed, use libraries or frameworks in their development efforts. What this means, in short, is that their ability to debug their software may be hampered by their use of such libraries and frameworks.
JUCE
One such framework is JUCE [Click_Me]. Even though JUCE is "open source" - this begs the question, "Do the developers really know what that open source data is actually doing?" From my own personal experience, it would appear that many developers really do not know what is actually going on in the source. In such cases, it would appear that though such developers are able to debug the "front end" - they have no idea what is going on in the "back end". I do hope that this makes sense.
* As was the case with SynthEdit, in JUCE, I created the GUI portion of a wave file player plug-in all without knowing any of the particulars of the actually programming language.
A personal example
To bring this all home, I use three plug-ins that were all recently updated. Prior to that update, I was able to perform scene updates in SAC to any of the plug-ins without incidence. After the update, the plug-in becomes "unresponsive". SAC is still functioning, but the plug-in is not. Reverting to the previous version - all worked as expected. Updating the plug-in, the plug-in is then unresponsive.
Quoting Sir Arthur Conan Doyle, "When you have eliminated the impossible, what is left, no matter how unlikely, is the truth"...thus, the update is the issue. I was later to discover that JUCE was used for all of the recent updates. Any attempt at a resolve from any of the developers however has proven to be thus far, unfruitful.
What does this all mean?
In short, for SAC users, it might be helpful to ascertain from the developers if any such libraries or frameworks were used in their applications.
In closing...
Though JUCE was originally developed in 2004, none of the current plug-ins - with the exception of those updates as noted above, use JUCE. In contacting a number of the developers from past plug-ins, none had used JUCE as well - though I never asked them if they might be currently using JUCE.
Also, I cannot say how many-and-what updates have occurred with JUCE itself, with the current version being, I believe, v7.
I hope that some will find this information of some practicable use?
Though this topic may initially appear not to be at all relevant, I sincerely believe that after perusing this text and then performing your own research, that this topic may indeed, become relevant - especially for SAC users.
Italics
The use of italics is important in that - at the end of the day, what is being written is my own personal view on the topic.
Preamble
It would appear that many developers today - either have not or do not build plug-ins "from scratch". Rather these developers employ the use of libraries or frameworks. Whatever these libraries or frameworks are, though relevant, are not specific to this topic. What is specific to this topic however, is with regards to problem solving, or more specifically, "debugging".
An example...
Many years ago now, I was beta-testing Guitar Rig 5 within SAC. At some point, I can across an anomaly that was submitted to Native Instruments for a possible resolve. As a beta-tester I was privy to the development platform that they were using at that time - which helped me in being able to explain the situation, as I had some experience with that particular platform. As NI was developing GR5 "from scratch" - they were able to track-down the anomaly and provide a "fix".
Fast-forward to today, as noted, many developers no longer develop software "from scratch" - but do indeed, use libraries or frameworks in their development efforts. What this means, in short, is that their ability to debug their software may be hampered by their use of such libraries and frameworks.
JUCE
One such framework is JUCE [Click_Me]. Even though JUCE is "open source" - this begs the question, "Do the developers really know what that open source data is actually doing?" From my own personal experience, it would appear that many developers really do not know what is actually going on in the source. In such cases, it would appear that though such developers are able to debug the "front end" - they have no idea what is going on in the "back end". I do hope that this makes sense.
* As was the case with SynthEdit, in JUCE, I created the GUI portion of a wave file player plug-in all without knowing any of the particulars of the actually programming language.
A personal example
To bring this all home, I use three plug-ins that were all recently updated. Prior to that update, I was able to perform scene updates in SAC to any of the plug-ins without incidence. After the update, the plug-in becomes "unresponsive". SAC is still functioning, but the plug-in is not. Reverting to the previous version - all worked as expected. Updating the plug-in, the plug-in is then unresponsive.
Quoting Sir Arthur Conan Doyle, "When you have eliminated the impossible, what is left, no matter how unlikely, is the truth"...thus, the update is the issue. I was later to discover that JUCE was used for all of the recent updates. Any attempt at a resolve from any of the developers however has proven to be thus far, unfruitful.
What does this all mean?
In short, for SAC users, it might be helpful to ascertain from the developers if any such libraries or frameworks were used in their applications.
In closing...
Though JUCE was originally developed in 2004, none of the current plug-ins - with the exception of those updates as noted above, use JUCE. In contacting a number of the developers from past plug-ins, none had used JUCE as well - though I never asked them if they might be currently using JUCE.
Also, I cannot say how many-and-what updates have occurred with JUCE itself, with the current version being, I believe, v7.
I hope that some will find this information of some practicable use?