C++ Missing classes such as ReverdSc or MoogLadder

Hi,

I’ve been having fun with my seed, and hooked it up to my eurorack using the awesome Loewenzahnhonig. Dabbling in code and the examples and flashing a series of different things. So far, the setup guides have been very thorough and helpful.

The thing I can’t figure out though is the classes I am missing for some of the examples. For instance, the ReverbSc example or MoogLadder don’t work. When the classes are used to declare the variables there’s a red squiggly line. I read some things on the forums how this may have to do with the DaisySP_LGPL but I’m not sure how to resolve that.

Any help would be greatly appreciated.

From that page:
For standalone projects, you must add USE_DAISYSP_LGPL=1 to your makefile if you want to use the LGPL modules.

This line should be added to your Makefile anywhere before the line which includes the core Makefile.

Right, that’s indeed the thread I found. However, these seed dsp examples already have that line in their makefile. Is there an extra ‘task’ I need to run or variable that needs to point to this LGPL library?

I forgot, you’re using VS Code- there might be an extra step required to get that working. I don’t use VS Code, so I don’t know the answer, but I know others have had that problem.

Thanks @tele_player . This at least got me looking in the right direction. It definitely has to do with LGPL libraries not being linked properly. Maybe VSCode is more strict than other IDE’s, I dunno? I have a workaround by changing the daisysp.h file directly, but I’m not sure what knock on effects that may have. I’m working on Windows, VSCode, Seed, and am not using the “cortex debug” or ST-link

  • Step 1 daisysp.h comment out line 92 #ifdev USE_DAISYSP_LGPL and its #endif.
    This will allow me to use MoogLadder and ReverbSc as recognized types in the IDE, but builds will fail because of not finding the daisysp-lgpl.h file

  • Step2 daisysp.h change line 93 to #include “…/DaisySP-LGPL/Source/daisysp-lgpl.h”
    This links to the correct header file in the right folder. On build it will now use the lgpl and run into a problem there.

  • Step3 daisysp-lgpl.h comment out line 29 for the PolyPluck.h
    The file seems to be in that folder without a cpp file. Did not investigate further.

Now the build and flash work properly, and I seem to be able to use the LGPL classes.

@Takumi_Ogata, let me know when fixes are in place and I will get a fresh clone and test to verify. The overall getting started explanations have been great up until writing and flashing my own firmware without LGPL, but afterwards testing ReverbSc, Moogladder or Osc have been a let-down. Let’s fix this before the next new user comes in :smiley:

1 Like

Thank you very much @ThaYoost - had no idea what was going on when trying to use LGPL modules, this is the only thing that worked.

Would be great if the official solution could be updated!

1 Like

@Takumi_Ogata can you inform the devs or should I make a ticket for this somewhere?

I can let the team know, thanks :slight_smile:

The solution to get VSCode intellisense working correctly is to add USE_DAISYSP_LGPL to the "defines" values in .vscode/c_cpp_properties.json.

So in the DaisyExamples it should be like this:

      "defines": [
        "_DEBUG",
        "UNICODE",
        "_UNICODE",
        "USE_DAISY_LGPL"
      ],

The intellisense engine doesn’t know about the makefile, so this tells it to consider that preprocessor definition defined when indexing the code. That should make the squigglies go away. I bet this was just missed when DaisyExamples was updated for the DaisySp LGPL split.

1 Like

Just a bump to say that this issue is still extent. Tried all the suggestions and moogLadder is still not known in VSCode and does not compile in that environment. It does compile from the command line.

This worked for me after including the daisysp-lgpl.h header in the cpp file and adding USE_DAISY_LGPL to c_cpp_properties.json.

Thank you - I could have sworn that I tried that after reading your earlier comment, but I tried it again and this time it works. Thanks again. Is there some other issue that is causing the need to add the extra include ?