Failed to Load Custom Analyzer (saleae_spdif on Apple M2)

I’m trying to get the SPDIF analyzer working on Logic2, but running into some issues.

I was able to download and build the analyzer, moved the libAnalyzer.dylib to the saleae custom analyzer directory and restarted Logic2.

When I restarted, I got “Failed to Load Custom Analyzer… Loaded library does not have required functions”
Does this mean it will only work on logic1? Will that even work on an M2 mac?

I’m running on MacOS 13.4.1 on an M2 processor. Logic2 info below:

{"Environment":"production","Branch":"master","Commit":"05ae03a49b520156f8d69106363edc34355c2362","Version":"2.4.9","AutomationVersion":"1.0.0","MachineID":"240291bc-14fd-4986-914b-f8a451698a0f","PID":44408,"LaunchId":"0ca8b3f8-ef8d-49d9-98c8-8fe7f90325e5","Architecture":"arm64"}

Let me know if you need any additional information :smiley:

Thanks!

Thanks for reporting this, and sorry for the trouble! We’ll try compiling it over here on an M1 and see if we can reproduce the issue.

The error indicates that the software was able to load the shared library, which is a good sign. The problem is that our software isn’t able to find all 3 of the required exported functions:

extern "C" ANALYZER_EXPORT const char* __cdecl GetAnalyzerName();
extern "C" ANALYZER_EXPORT Analyzer* __cdecl CreateAnalyzer( );
extern "C" ANALYZER_EXPORT void __cdecl DestroyAnalyzer( Analyzer* analyzer );

Of course those are in the analyzer source code so we’ll need to dig into it to figure out what’s going wrong.

Hi @alvarop,

I was able to compile that and run it on an M2 MBA. These were the steps I followed:

mkdir build
cd build
cmake ..
make

The analyzer will be in build/Analyzers. I did try build_analyzer.py, but it had a handful of errors, so I switched to the cmake build.

If you’d like the analyzer I built, I can send it your way. Or if you need more help building over there, let me know.

Ryan

Oh wow, you’re right :man_facepalming:

I was using the .dylib in the bin/ directory, not the .so in the Analyzers/ directory.

Sorry for the false alarm!

1 Like

I ran into this and this topic saved my day - @markgarrison (et al) could I suggest that Logic display a warning when loading a dylib instead of a .so?

@John-K Sorry for the trouble with that, and glad you got to the bottom of it.

Which specific .dylib did you attempt to load, and which .so ended up working (including the names and locations of the files)?

You’re absolutely right that a more detailed error message would be helpful.

@timreyes I was developing my first extension and pointed the Developer Directory to the wrong place (build/bin instead of build/Analyzers)

@John-K Thanks! I figured that might have been the case, and sorry for the initial confusion. I’ll share that with the team here. A more detailed error message could certainly have helped. I think pointing to build/bin instead of build/Analyzers is a fairly common issue.

1 Like