JW Plugins on MM?

It would be nice to have JW sequencers in MM. I reached out to Jeremy to see if he is interested in porting them.

UPDATE: He said that MM does not support graphic displays and that is an obstacle to porting them. Will this be resolved in 2.0?

2 Likes

That’ll be great. We just have to give 4MS more time to get the graphic draw and sample read/write going. My favourite JW-module below :grinning:

2 Likes

+1 to jw modules! the xy pad (gesture recorder) was one of the 1st i ever used and has a been a huge staple for my patches ever since. but like all his, has a heavy graphics aspect so im guessing it would be a while until we see his modules on mm.

yes those are my favorite sequencers, use them in every patch and I find it very hard to replicate that piano grid vibe in euro. I wouldn’t mind at all if the sequences still had to be drawn out in VCV and could then just be loaded into Meta. Maybe move the presets to a knob so pre programmed sequences could be modulated?

Now that Dev firmware had improved leaps and bounds, is it possible to do JW Modules? :cowboy_hat_face:

You would have to reach out to Jeremy and ask.

I ordered a Meta Module. I am looking at the readme for porting my modules.

11 Likes

super exciting news!!

That is awesome…welcome to the family! I am sure @danngreen would be happy to help!!

Extremely psyched for this, Jeremy.

Very cool! Welcome! And yes, please reach out for help with porting. I recommend using the v2.0-dev branch of the SDK because v2.0 is close to going into release-candidate stage, and it looks like some of your modules would benefit from a number of features in v2.0.

so stoked, been using your trigs and noteseq in every patch since day one. not sure how / if you’ll transfer these but happy for any of your modules to make it over. Thanks!

ya I got through the early steps and now I need to handle all the setSVG calls. What is the standard practice for replacing these.

I see this for converting metamodule-plugin-sdk/docs/graphics.md at main · 4ms/metamodule-plugin-sdk · GitHub

Edit: I have converted svgs to pngs. I see lots of [[deprecated]] void setSVG

It looks like that code may only be required for VCV Rack:

oh I see those are just warnings and deprecated thanks.

@danngreen
I found the actual errors and fixed them. And now I am here. It says it can’t copy plugin.json but I can right after. Not sure why. I think the rest works?!?!

[10:59 PM][~/vcv/JWMeta]cmake --build build
[0/1] Running utility command for plugin
Checking if symbols in /Users/jeremy/vcv/JWMeta/build/JWMeta.so would be resolved
All symbols found!
Creating plugin at /Users/jeremy/vcv/metamodule-plugins/JWMeta.mmplugin
Error copying file "../Rack/plugins/JW-Modules/plugin.json" to "/Users/jeremy/vcv/JWMeta/build/JWMeta/plugin.json".
FAILED: CMakeFiles/plugin.util
cd /Users/jeremy/vcv/metamodule-plugin-sdk && scripts/check_syms.py --plugin /Users/jeremy/vcv/JWMeta/build/JWMeta.so --api /Users/jeremy/vcv/metamodule-plugin-sdk/api-symbols.txt && cd /Users/jeremy/vcv/JWMeta/build && /opt/homebrew/bin/cmake -E echo "Creating plugin at /Users/jeremy/vcv/metamodule-plugins/JWMeta.mmplugin" && /opt/homebrew/bin/cmake -E rm -rf /Users/jeremy/vcv/JWMeta/build/JWMeta && /opt/homebrew/bin/cmake -E make_directory /Users/jeremy/vcv/JWMeta/build/JWMeta && /opt/homebrew/bin/cmake -E copy /Users/jeremy/vcv/JWMeta/build/JWMeta.so /Users/jeremy/vcv/JWMeta/build/JWMeta/JWMeta.so && /opt/homebrew/bin/cmake -E copy ../Rack/plugins/JW-Modules/plugin.json /Users/jeremy/vcv/JWMeta/build/JWMeta/plugin.json && /opt/homebrew/bin/cmake -E copy /Users/jeremy/vcv/JWMeta/plugin-mm.json /Users/jeremy/vcv/JWMeta/build/JWMeta/plugin-mm.json && /opt/homebrew/bin/cmake -E copy_directory /Users/jeremy/vcv/JWMeta/assets /Users/jeremy/vcv/JWMeta/build/JWMeta && /opt/homebrew/bin/cmake -E touch /Users/jeremy/vcv/JWMeta/build/JWMeta/SDK-2.0 && /opt/homebrew/bin/cmake -E make_directory ../Rack/plugins/JW-Modules/presets/ && /opt/homebrew/bin/cmake -E copy_directory ../Rack/plugins/JW-Modules/presets/ /Users/jeremy/vcv/JWMeta/build/JWMeta/presets && /opt/homebrew/bin/cmake -E rm -rf /Users/jeremy/vcv/JWMeta/build/JWMeta/.DS_Store && /opt/homebrew/bin/cmake -E make_directory /Users/jeremy/vcv/metamodule-plugins && /opt/homebrew/bin/cmake -E tar cf /Users/jeremy/vcv/metamodule-plugins/JWMeta.mmplugin /Users/jeremy/vcv/JWMeta/build/JWMeta
ninja: build stopped: subcommand failed.
[11:00 PM][~/vcv/JWMeta]cp "../Rack/plugins/JW-Modules/plugin.json" "/Users/jeremy/vcv/JWMeta/build/JWMeta/plugin.json"
[11:00 PM][~/vcv/JWMeta]

Maybe @etcetc has some ideas since he has done a ton of porting.

Found this on ChatGPT:

error: ninja: build stopped: subcommand failed

indicates that the ninja build system encountered a failure while executing a build command. The issue is usually caused by one of the following:

  1. Compilation Errors – A source file failed to compile due to syntax errors, missing headers, or incompatible code.
  2. Linker Errors – The build failed due to unresolved symbols or missing libraries.
  3. Dependency Issues – Some required dependencies (libraries, toolchains, or files) are missing or incorrectly configured.
  4. Permissions Issues – Lack of permissions to write or access necessary files.
  5. Out of Memory – The system ran out of memory while building large projects.
  6. Incorrect Configuration – A misconfigured build script (e.g., CMakeLists.txt) could generate an invalid Ninja build file.

How to Debug:

  • Look at the error message before this one in your terminal output. Ninja stops when a command fails, so the actual cause is usually in the preceding lines.
  • Run ninja -v for verbose output to see exactly what command failed.
  • Try rm -rf build/ && ninja to clean and rebuild.
  • If using CMake, regenerate Ninja files: cmake --fresh . -B build && cd build && ninja
  • Check system logs for memory or permission issues.
Run Build Command(s): /Users/jeremy/vcv/ninja/ninja -v
[0/1] cd /Users/jeremy/vcv/metamodule-plugin-sdk && scripts/check_syms.py --plugin /Users/jeremy/vcv/JWMeta/build/JWMeta.so --api /Users/jeremy/vcv/metamodule-plugin-sdk/api-symbols.txt && cd /Users/jeremy/vcv/JWMeta/build && /opt/homebrew/bin/cmake -E echo "Creating plugin at /Users/jeremy/vcv/metamodule-plugins/JWMeta.mmplugin" && /opt/homebrew/bin/cmake -E rm -rf /Users/jeremy/vcv/JWMeta/build/JWMeta && /opt/homebrew/bin/cmake -E make_directory /Users/jeremy/vcv/JWMeta/build/JWMeta && /opt/homebrew/bin/cmake -E copy /Users/jeremy/vcv/JWMeta/build/JWMeta.so /Users/jeremy/vcv/JWMeta/build/JWMeta/JWMeta.so && /opt/homebrew/bin/cmake -E copy ../Rack/plugins/JW-Modules/plugin.json /Users/jeremy/vcv/JWMeta/build/JWMeta/plugin.json && /opt/homebrew/bin/cmake -E copy /Users/jeremy/vcv/JWMeta/plugin-mm.json /Users/jeremy/vcv/JWMeta/build/JWMeta/plugin-mm.json && /opt/homebrew/bin/cmake -E copy_directory /Users/jeremy/vcv/JWMeta/assets /Users/jeremy/vcv/JWMeta/build/JWMeta && /opt/homebrew/bin/cmake -E touch /Users/jeremy/vcv/JWMeta/build/JWMeta/SDK-2.0 && /opt/homebrew/bin/cmake -E make_directory ../Rack/plugins/JW-Modules/presets/ && /opt/homebrew/bin/cmake -E copy_directory ../Rack/plugins/JW-Modules/presets/ /Users/jeremy/vcv/JWMeta/build/JWMeta/presets && /opt/homebrew/bin/cmake -E rm -rf /Users/jeremy/vcv/JWMeta/build/JWMeta/.DS_Store && /opt/homebrew/bin/cmake -E make_directory /Users/jeremy/vcv/metamodule-plugins && /opt/homebrew/bin/cmake -E tar cf /Users/jeremy/vcv/metamodule-plugins/JWMeta.mmplugin /Users/jeremy/vcv/JWMeta/build/JWMeta
Checking if symbols in /Users/jeremy/vcv/JWMeta/build/JWMeta.so would be resolved
All symbols found!
Creating plugin at /Users/jeremy/vcv/metamodule-plugins/JWMeta.mmplugin
Error copying file "../Rack/plugins/JW-Modules/plugin.json" to "/Users/jeremy/vcv/JWMeta/build/JWMeta/plugin.json".
FAILED: CMakeFiles/plugin.util
cd /Users/jeremy/vcv/metamodule-plugin-sdk && scripts/check_syms.py --plugin /Users/jeremy/vcv/JWMeta/build/JWMeta.so --api /Users/jeremy/vcv/metamodule-plugin-sdk/api-symbols.txt && cd /Users/jeremy/vcv/JWMeta/build && /opt/homebrew/bin/cmake -E echo "Creating plugin at /Users/jeremy/vcv/metamodule-plugins/JWMeta.mmplugin" && /opt/homebrew/bin/cmake -E rm -rf /Users/jeremy/vcv/JWMeta/build/JWMeta && /opt/homebrew/bin/cmake -E make_directory /Users/jeremy/vcv/JWMeta/build/JWMeta && /opt/homebrew/bin/cmake -E copy /Users/jeremy/vcv/JWMeta/build/JWMeta.so /Users/jeremy/vcv/JWMeta/build/JWMeta/JWMeta.so && /opt/homebrew/bin/cmake -E copy ../Rack/plugins/JW-Modules/plugin.json /Users/jeremy/vcv/JWMeta/build/JWMeta/plugin.json && /opt/homebrew/bin/cmake -E copy /Users/jeremy/vcv/JWMeta/plugin-mm.json /Users/jeremy/vcv/JWMeta/build/JWMeta/plugin-mm.json && /opt/homebrew/bin/cmake -E copy_directory /Users/jeremy/vcv/JWMeta/assets /Users/jeremy/vcv/JWMeta/build/JWMeta && /opt/homebrew/bin/cmake -E touch /Users/jeremy/vcv/JWMeta/build/JWMeta/SDK-2.0 && /opt/homebrew/bin/cmake -E make_directory ../Rack/plugins/JW-Modules/presets/ && /opt/homebrew/bin/cmake -E copy_directory ../Rack/plugins/JW-Modules/presets/ /Users/jeremy/vcv/JWMeta/build/JWMeta/presets && /opt/homebrew/bin/cmake -E rm -rf /Users/jeremy/vcv/JWMeta/build/JWMeta/.DS_Store && /opt/homebrew/bin/cmake -E make_directory /Users/jeremy/vcv/metamodule-plugins && /opt/homebrew/bin/cmake -E tar cf /Users/jeremy/vcv/metamodule-plugins/JWMeta.mmplugin /Users/jeremy/vcv/JWMeta/build/JWMeta
ninja: build stopped: subcommand failed.

it doesn’t actually do this-> Creating plugin at /Users/jeremy/vcv/metamodule-plugins/JWMeta.mmplugin

Isn’t the json file supposed to be:

plugin-mm.json ?

As far as I know it reads data out of the original plugin.json as specified in CMakeLists.txt as seen in here metamodule-plugin-sdk/README.md at v2.0-dev · 4ms/metamodule-plugin-sdk · GitHub