Sorry for the code dump...
-
Bear with me, I somehow got mixed at multiple places and now I had to commit everything to the dev branch, but todays commit history gives serial killer vibes.
There are a few gems in there that will be documented over the span of the next days:
- complete rewrite of the profiling suite (basically a extended version of Perfetto with much tighter integration into HISE). Profile your scripts down to each line of code, quickly check the DSP tree for the worst runtime & see event dependencies across different threads (broadcaster events etc).
- complex sample group manager (the UX is still all over the place and some functions are missing but the basics are there)
- WebSocket server communication for fast data transfer between web view and HISE. Oh and the Webview should now work on Linux too - David let me know if that is the case and what needs to be done to make it REALLY work.
I tried to focus on it not breaking stuff (most of the profiling tools can be completely removed with a preprocessor flag which is disabled by default), but if something behaves nasty let me know. When it's dusted off and documented, we'll call this bad boy HISE 4.5.0...
I suggest we make these things the topics of the next HISE meetup :)
-
@Christoph-Hart said in Sorry for the code dump...:
I suggest we make these things the topics of the next HISE meetup :)
Nice, looking forward to it.
@Christoph-Hart said in Sorry for the code dump...:
WebSocket server communication for fast data transfer between web view and HISE. Oh and the Webview should now work on Linux too
Also nice, not sure what I'll use it for, but I'll give it a spin to see that it works.
-
Wonderful. I never thought to ask for better profiling but that's a great idea indeed
-
@Christoph-Hart Thanks and I love the energy, but respectfully and personally, would rather have a more reliable and consistent developer experience with the existing feature set. Just my $0.02.
-
@Christoph-Hart thank you!!
-
Getting some build errors
../../../../../HISE/hi_faust_jit/FaustJitNode.h:261:9: error: ‘NodeProfiler’ was not declared in this scope 261 | NodeProfiler np(this, data.getNumSamples());
../../../../../HISE/hi_faust_jit/../hi_faust/../hi_dsp_library/../hi_tools/hi_binary_data/hi_binary_data.h:41:88: error: static assertion failed 41 | #define LOAD_PATH_IF_URL(urlName, editorIconName) static_assert(sizeof(editorIconName) > sizeof(char*)); ids.addIfNotAlreadyThere(urlName); if (url == urlName) p.loadPathFromData(editorIconName, sizeof(editorIconName));
../../../../../HISE/hi_tools/../hi_dsp_library/../hi_tools/../JUCE/modules/juce_core/memory/juce_ContainerDeletePolicy.h:52:23: error: invalid application of ‘sizeof’ to incomplete type ‘choc::ui::WebView’ 52 | ignoreUnused (sizeof (ObjectType));
../../../../../HISE/hi_tools/../hi_dsp_library/../hi_tools/../JUCE/modules/juce_core/memory/juce_ByteOrder.h:81:21: error: call of overloaded ‘swap(long unsigned int&)’ is ambiguous 81 | return swap (value);
../../../../../HISE/hi_tools/../hi_dsp_library/../hi_tools/hi_standalone_components/ChocWebView.h:402:34: error: ‘class juce::XEmbedComponent’ has no member named ‘updateEmbeddedBounds’ 402 | #define resizeToFitCrossPlatform updateEmbeddedBounds
-
@Christoph-Hart I’m a new HISE user - I love it. I’ve been experimenting and compiling VSTs to try things out. I last built HISE shortly after the “fix compilation for real” commit 078a2487 from March 5 and it’s been smooth sailing.
I built HISE from fresh source to get in on this new serial killer agenda. I think it worked - I’m seeing fatal errors during plug-in compile that weren’t present before.
Terminal log attached, with cap blocks added to bracket the new warnings and errors.
-
@d-healey The build errors should be fixed now, but I don't have a linux machine at the moment. Can you check whether the webview shows up?
-
@Christoph-Hart This gem still seems to be active :D
struct SorryDavid: public Component { void paint(Graphics& g) override { g.fillAll(Colours::grey); g.setColour(Colours::black); g.drawText("Not there yet...", getLocalBounds().toFloat(), Justification::centred); } void doNothing(float){} void doNothing(void*){}; void doNothing(){}; };
Haha, love it
#elif JUCE_LINUX // Unfortunately I'm too stupid to figure out how to // use the Linux native handle wrapper - // that would be juce::XEmbedComponent using NativeComponentType = SorryDavid;
-
@Vitruvius I currently have a simmilar error on mac.
❌ /Users/julian/Documents/GitHub/HISE/hi_tools/hi_standalone_components/SliderPack.h:192:15: [31munknown class name 'ProfiledComponent'; did you mean 'PropertyComponent'?[0m 192 | public ProfiledComponent, [36m | ^~~~~~~~~~~~~~~~~[0m ⚠️ /Users/julian/Documents/GitHub/HISE/hi_tools/hi_standalone_components/SliderPack.h:191:20: [33mdirect base 'Component' is inaccessible due to ambiguity:[0m class hise::SliderPack -> Component [32m class hise::SliderPack -> PropertyComponent -> Component [-Winaccessible-base][0m
ProfiledComponent
class seeems to be missing on latest HISE version?I tried to compile my scriptnode and got this error from the current HISE version 1h ago.