Open jamsden opened 2 years ago
After getting beyond the compilation errors, I was able to build SmartAmpPro.component, but when scanning the component on Logic Pro X startup, SmartAmpPro crashes during plugin validation with:
validating Audio Unit SmartAmpPro by GuitarML:
AU Validation Tool
Version: 1.7.0
Copyright 2003-2019, Apple Inc. All Rights Reserved.
Specify -h (-help) for command options
Manufacturer String: GuitarML AudioUnit Name: SmartAmpPro Component Version: 1.0.0 (0x10000)
TESTING OPEN TIMES: COLD: JUCE v6.1.4 File: /Users/jamsden/Documents/GitHub/NumCpp/include/NumCpp/NdArray/NdArrayIterators.hpp Function: NdArrayConstIterator Line: 72 Error: NdArray has not been initialized.libc++abi.dylib: terminating with uncaught exception of type std::runtime_error: File: /Users/jamsden/Documents/GitHub/NumCpp/include/NumCpp/NdArray/NdArrayIterators.hpp Function: NdArrayConstIterator Line: 72 Error: NdArray has not been initialized.
validation result: crashed validation
This stack trace from the crash might be relevant:
8 com.GuitarML.SmartAmpPro 0x0000000109b3f251 nc::NdArray<float, std::1::allocator
I was running into the same use..
I think since JUCE 6 you have to use JUCE_MODAL_LOOPS_PERMITTED=1 in your CMakeList or Projucer to use the FileExplorer.
So I got the plugin running with a dirty hack.
For off all be sure using NumCPP Version >= 2.4.1 (otherwise you will run into some linking errors).
But the plugin still crashes at startup. The reason for the crash is due to this File -> NumCpp\include\NumCpp\NdArray\NdArrayIterators.hpp
in Line 67-74 (Version 2.4.1)
explicit NdArrayConstIterator(pointer ptr) :
ptr_(ptr)
{
if (ptr == nullptr)
{
THROW_RUNTIME_ERROR("NdArray has not been initialized.");
}
}
By commeting out the Line: //THROW_RUNTIME_ERROR("NdArray has not been initialized.");
you can run and use the plugin.
I didn't fount time yet to have a deeper look for that error.
Hope it helps someone!
@vackva Thank you for the help! SmartAmpPro has not been in active development for awhile, but it's on my list to bring up to date and improve the interface between the plugin and tensorflow. And yes, if you use later than JUCE 6.08 it will not be able to compile the file browser part of the code, reference this open issue on NeuralPi: https://github.com/GuitarML/NeuralPi/issues/28
Sure, took me some time to figure that out and I'm sure others will run into the same issue :)
I also have a working CMake build (CMakeLists.txt), I could share this as well if you are interested in that.
Glad to see some activity. I hope to put some time into this once it's working again.
I'm trying to build SmartAmpPro on MacOS 10.15.7 using Projucer 6.1.4, boost_78_0, and Xcode 12.4.
I'm getting 5 compilation errors in PluginEditor.cpp, all similar to: No member named 'browseForMultipleFilesToOpen' in 'juce::FileChooser'. I have looked at the header files that are getting included and the missing members are there. Haven't done much C++ in many years, but I don't see any solution. Any idea how to fix this?
My Projucer.app Header search paths is: $(HOME)/eigen/ ~/Documents/GitHub/json/include ~/Documents/GitHub/NumCpp/include ~/Developer/boost_1_78_0
The missing methods are in in juce_FileChooser.h, but are not include unless JUCE_MODAL_LOOPS_PERMITTED is defined.
I resolved the issue by adding JUCE_MODAL_LOOPS_PERMITTED=1 in the SmartAppPro Exporter Preprocessor Definitions, but I'm not sure that's the correct solution.