PS-PurrSoftware Plugin Modules

I can build for Linux too whenever the code goes online/public, would love to test it. :slight_smile:

2 Likes

Okay, Meander is public on GitHub at https://github.com/knchaffin/Meander

I build on Win10. It will be interesting to see if it builds on MacOS and linux.

This is still a work in progress and is not ready for prime time yet. I need to write a manual page soon.

As a reminder, Meander for Rack is a sequencer, not a DSP audio module.

5 Likes

Linux:

src/Meander.cpp:331:16: error: declaration of ‘HarmonyParms MeanderState::HarmonyParms’ [-fpermissive]
  HarmonyParms  HarmonyParms;
                ^~~~~~~~~~~~
src/Meander.cpp:252:8: error: changes meaning of ‘HarmonyParms’ from ‘struct HarmonyParms’ [-fpermissive]
 struct HarmonyParms
        ^~~~~~~~~~~~
src/Meander.cpp:332:14: error: declaration of ‘MelodyParms MeanderState::MelodyParms’ [-fpermissive]
  MelodyParms MelodyParms;
              ^~~~~~~~~~~
src/Meander.cpp:274:8: error: changes meaning of ‘MelodyParms’ from ‘struct MelodyParms’ [-fpermissive]
 struct MelodyParms  
        ^~~~~~~~~~~
src/Meander.cpp:333:12: error: declaration of ‘BassParms MeanderState::BassParms’ [-fpermissive]
  BassParms BassParms;
            ^~~~~~~~~
src/Meander.cpp:319:8: error: changes meaning of ‘BassParms’ from ‘struct BassParms’ [-fpermissive]
 struct BassParms
        ^~~~~~~~~
src/Meander.cpp:334:11: error: declaration of ‘ArpParms MeanderState::ArpParms’ [-fpermissive]
  ArpParms ArpParms;
           ^~~~~~~~
src/Meander.cpp:302:8: error: changes meaning of ‘ArpParms’ from ‘struct ArpParms’ [-fpermissive]
 struct ArpParms
        ^~~~~~~~

Builds and loads on mac no problem

A few warnings but they all look totally innocuous to me.

src/Meander.cpp:25:9: warning: 'DEBUG' macro redefined [-Wmacro-redefined]
#define DEBUG(format, ...) // DEBUG(format, ...)
        ^
/Users/paul/dev/VCVRack/V1.0//Source/Rack/include/logger.hpp:12:9: note: previous definition is here
#define DEBUG(format, ...) rack::logger::log(rack::logger::DEBUG_LEVEL, __FILE__, __LINE__, format, ##__VA_ARGS__)
        ^
src/Meander.cpp:1953:10: warning: unused variable 'current_cpu_time_double' [-Wunused-variable]
                double current_cpu_time_double= (double)(current_cpu_t) / (double)CLOCKS_PER_SEC;
                       ^
src/Meander.cpp:2788:10: warning: unused variable 'systime' [-Wunused-variable]
                time_t systime=time(NULL);
                       ^
In file included from src/Meander.cpp:15:
src/Common-Noise.hpp:567:13: warning: unused function 'normalize3' [-Wunused-function]
static void normalize3(double v[3])
            ^
4 warnings generated.
1 Like

Wow, you are fast! Whew, this is a relief that it works on MacOS. I get those same warnings on my build. I need to fix them anyway. The DEBUG redefinition is what I use to cause all DEBUG() calls to be “commented out” and not compile.

Thanks for testing:)

1 Like

Looks like at least one of my fonts is not working.

1 Like

How many fonts does one need?

I got it to trigger OSCes and stuff though.

[3.792 warn src/window.cpp:36] Failed to load font /Users/paul/Documents/Rack/plugins-v1/PS-PurrSoftware/res/fonts/DejaVuSansMono.ttf

shows up in my log. And that font is indeed not in res.

Yeah looks like it is just missing

paul:~/dev/VCVRack/plugin-source/Meander$ grep -r Deja src
src/Meander.cpp:			textfont = APP->window->loadFont(asset::plugin(pluginInstance, "res/fonts/DejaVuSansMono.ttf"));
paul:~/dev/VCVRack/plugin-source/Meander$ ls -al res/
total 3416
drwxr-xr-x+ 11 paul  staff     352 Dec  8 12:03 .
drwxr-xr-x+ 13 paul  staff     416 Dec  8 12:03 ..
-rw-r--r--+  1 paul  staff   37832 Dec  8 12:03 EurostileBold.ttf
-rw-r--r--+  1 paul  staff  830004 Dec  8 12:03 LEDCalculator.ttf
-rw-r--r--+  1 paul  staff  595082 Dec  8 12:03 Meander.svg
-rw-r--r--+  1 paul  staff   71288 Dec  8 12:03 MusiSync2.ttf
-rw-r--r--+  1 paul  staff   44988 Dec  8 12:03 MusiSync3.ttf
-rw-r--r--+  1 paul  staff   53380 Dec  8 12:03 Musisync-KVLZ.ttf
-rw-r--r--+  1 paul  staff   77604 Dec  8 12:03 Musisync-qYy6.ttf
-rw-r--r--+  1 paul  staff   16624 Dec  8 12:03 Segment7Standard.ttf
-rw-r--r--+  1 paul  staff    2489 Dec  8 12:03 musisync-guide-06dd.htm

I just now committed /res/DejaVuSansMono.ttf to the repository. Sorry about that.

8 :slight_smile: Some will be removed eventually.

1 Like

I never noticed that I had the struct name and the object name the same. I guess your linux compile does a more stringent check than my Windows compile.

I will fix this. Should be an easy fix.

Thanks

Ok, let me know when done & I’ll rebuild.

I just now committed the fix to /src/Meander.cpp

Now builds fine.

1 Like

Cool. You referred to it in res/fonts and loaded it in res/ - I just fired over a teensy pull request which fixes that and adds a gitignore. Feel free to merge it or just close it if you want to push this in your regular course of work.

Oh the other tiny thing is you probably want to change your plugin.json to say

"license": "GPL-3.0-or-later",

since that would match the license. You’ll have to do this before you submit to the plugin manager.

probably want at least the tag “Polyphonic” for the module tags also.

From poking around quickly everything else looks fine. Great candidate for an azure build also! Let me know if you need any help, although I’m offline for rest of the afternoon.

1 Like

Thanks. I fixed the problem by putting alll fonts in the /res folder and properly referencing the path in Meander.cpp .

Done. Thanks!

Great! Thanks.