Issues in exported AAX plugins: drawing panels and buttons, sliding a panel
-
@ustk Thanks. The software I am using is Sourcetree, which is the same as what Christoph uses. There are several options. While I understand the overall concept and what I am trying to do, I am not sure if I am doing it right.
-
@Christoph-Hart I confirmed that "Reset current branch to this commit" is the correct way.
Here is how my travel through time went for the last few hours. I am using VS2022.
-
I first tried compiling AAX using the 2.6.1 SDK going back several months, and only the latest commits would compile the plugin.
-
I swapped the AAX for the earlier 2.4.1 version. When I wasn't able to compile plugins with it either, I just tried to compile HISE.
-
I went as far back as Oct 2022 and tried dozens of times to compile HISE, moving up a month or a couple of weeks. Up until August 2023, it is impossible to compile HISE as it is getting a lot of errors and warnings.
So, the earliest I can compile is August 10, 2023. I compiled the AAX with that version, and the issue I reported still exists. This is using the old AAX SDK.
So, since I am unable to compile anything earlier than this date, this approach is a dead end.
Next step: create a simple project with just one issue, like do something on NoteOn?
-
-
@gorangrooves have you resaved the projucer file before compiling after jumping around in the git history? This will solve most compile errors (there are a few intermediate states which don‘t compile but most commits should work.
-
@Christoph-Hart I did. I would close Projucer, open updated Projucer project and clean build in VS before compiling.
-
@gorangrooves Something might be messing up in your local repo, you should definitely be able to build HISE all the way back to the first commit, except for those occasional commits that no-one can compile.
-
@d-healey I'll try again. I'll delete everything locally and start fresh.
-
@d-healey @Christoph-Hart I deleted the local HISE repository and started fresh. I was able to compile HISE from Jan 5th, 2023 and AAX.
My plugin displayed the GUI properly, but panel sliding (timer) and onNoteOn are not working. That leads me to believe that there are several issues introduced at different HISE development stages. I will continue to hunt down and document exactly what happened and when and will report here.
-
@Christoph-Hart I remembered I still had a backup of my old plugin version where those problematic features were working. I compiled it with the newest HISE and latest AAX SDK, and all those functions worked. The panel slides out, on NoteOn works. Whatever I had then working, it works now.
So, the problem lies somewhere in my project, but only for exported AAX.
Where do I go from here?
-
@gorangrooves said in Issues in exported AAX plugins: drawing panels and buttons, sliding a panel:
Where do I go from here?
Did you use git to keep track of changes in your project?
-
Yes, git would be super nice for this. If you haven't used git yet, it's time to do so, then commit your earlier version and then overwrite it with your current project it will show you all changes.
-
@Christoph-Hart I've been meaning to do the Git, but am not familiar enough with it and am pressed for the time.
I've restructured the project significantly, so I am not sure Git would be of much help other than telling me that everything is different now I used to have all sections of the project on the onInit. Now, they are split into files integrated with include.
I guess this will be a trial-and-error process. If I can at least get to the bits of code that are misbehaving, you could provide the clues as to why. The maddening thing is that it all works in HISE, compiled app, and VST, so there is no indication of anything being wrong.
-
@gorangrooves said in Issues in exported AAX plugins: drawing panels and buttons, sliding a panel:
Now, they are split into files integrated with include.
That will help. Comment out all of the includes. Then re-add them one by one until the problem happens.
-
@d-healey Yes, I'll do that.
-
@gorangrooves Hard to say what exactly is causing that but I would scan everything related to
repaint()
calls or when you start / stop any timers. -
@Christoph-Hart Yeah, I'll turn off things that use timers, see if other sections improve, and go from there.
-
@Christoph-Hart @d-healey Alright, guys. After going down every single rabbit hole, disabling everything in my plugin until there was almost nothing left, while still having the same issues, I came upon a discovery.
I closed the GUI in Pro Tool and re-opened it, and bam, my sliding panel was working!
I then recompiled my plugins with all the features and loaded them into PT. When the GUI comes up at the start, it is messed up, and things don't work, but as soon as I close it and reopen it, everything is perfect. WTF?!
There is only one more thing I can think of that I can try: make sure all my LAF scripts are at the very end.
-
@Christoph-Hart I moved the LAF to the end of the plugin, but that didn't change anything.
BTW I have these warnings with the current HISE version.
Interface: Skipping changed() callback during onInit for stopBtn Interface: WARNING: time between abort checks 502 ms) is above timeout (500 ms). goto @0 Interface: WARNING: time between abort checks 502 ms) is above timeout (500 ms). goto @0 Interface: Skipping changed() callback during onInit for autoplayBtn Interface: Skipping changed() callback during onInit for AddChSlider1 Interface: Skipping changed() callback during onInit for PillButton4 Interface: Skipping changed() callback during onInit for dawTempoBtn
Sometimes, the "time between abort checks" is greater, like 700ms.
Could that have anything to do with it?
-
@gorangrooves The skip warnings are not critical, they are just reporting what went previously unnoticed.
Are you using a background thread in HiseScript? The other warning should fire only when you have a background thread where you don't check if the thread should exit regularly.
-
@Christoph-Hart Yes, there is a background thread for the MIDI loop browser.
So, I disabled LAF for the plugin, but the results were still the same in PT. Certain things are not working until the GUI is closed and reopened.
What does all this mean? Where do we go from here?
-
I managed to strip the plugin to the bare bone and get those components working. Now, I'll enable one by one, compile, load...rinse, repeat.