VCVRack / library

Database for the VCV Library
https://library.vcvrack.com/
386 stars 82 forks source link

HolonicSystems-Free #525

Closed hdavid closed 3 years ago

hdavid commented 6 years ago

Hi VCV Rack Team,

we have put together a plugin we would like you to release on the plugins page.

The commit id of the last version is ba81886c4092c35d0c8d2838886e3dd932d5a8f0 And the repo is located at : https://github.com/hdavid/VCVRack-Holon.ist.git

At the moment we depend on Bonjour on MacOS, but it works out of the box no need to include any external lib/headers while using the standard SDK and build toolchain you provide. However in the future we would like to support mDNS on Linux (most likely using Avahi) and Win64 (not sure about which lib we will use there). Do you have some advice on the approach to take there ?

And here Manifest :

{
  "name": "Holonic Systems - Free",
  "author": "Holonic Systems",
  "license": "CC0 1.0",
  "pluginUrl": "https://github.com/hdavid/VCVRack-Holon.ist",
  "authorUrl": "https://holonic.systems/",
  "authorEmail": "henri@holonic.systems",
  "manualUrl": "https://github.com/hdavid/VCVRack-Holon.ist/blob/master/README.md",
  "sourceUrl": "https://github.com/hdavid/VCVRack-Holon.ist.git",
  "latestVersion": "0.6.0",
  "status": "available"
}

Thanks a lot in advance

cschol commented 6 years ago

Thank you for submitting your plugin.

I filed one issue (https://github.com/hdavid/VCVRack-Holon.ist/issues/1) related to logging, which needs to be resolved before it can be included in the Plugin Manager. Resolved.

In general, the plugins distributed via the Plugin Manager have be available and buildable for all 3 platforms (Windows, GNU Linux, macOS) from the same source via make.

If you need special libraries your plugin to work, which are not provided by the Rack runtime, the plugin must provide the libraries at build and at runtime. git submodules are a good way to get external source code integrated in the plugin source tree. A make dep target is a canonical way to build dependencies for the plugin as part of the build process. For example, the Fundamental plugin uses libsamplerate as an external dependency (does not use make dep, but it is a simple example of how to integrate an external library).

Lastly, please pay attention to licensing issues with libraries you provide with your plugin.

hdavid commented 6 years ago

okay ! That's all clear. Thank you !

Currently the plugin builds on all platform.

About the libraries, the plugin relies on TinyOSC that is provided under ISC License, so we are fine. And we will of course make sure extra libraries we may add in the future are compatible licence wise too.

Finally, when can we expect the plugin in the plugin manager ?

AndrewBelt commented 6 years ago

Yes, all plugins need to build on all three platforms to be added to the plugin manager. You can be added to the list, but it won't have an Add button.

hdavid commented 6 years ago

Hi Andrew, it does build on windows mac and Linux at the moment :) Please let me know if it does not in your build tool chain.

cschol commented 6 years ago

Thanks for resolving the logging issues. I have integrated the plugin. Andrew will let us know if there are issues with the official tool chain and we go from there.

AndrewBelt commented 6 years ago

Build fails on (at least) Linux.

src/MdnsServer.hpp:17:33: fatal error: avahi-client/client.h: No such file or directory
 #include <avahi-client/client.h>

If not immediately fixable, could @cschol remove the submodule from repos/?

hdavid commented 6 years ago

fixed, can you use commit : 7cb5b1fb0baef5f668ae4c572639e92d4cf28556

cschol commented 6 years ago

@AndrewBelt See if this fixes it. If not, I'll remove the submodule.

AndrewBelt commented 6 years ago

Two issues on Mingw: Your Makefile needs to use

include $(RACK_DIR)/arch.mk
ifdef ARCH_WIN

instead of the $(OS) thing, otherwise that condition block is not entered.

Also,

x86_64-apple-darwin15-clang++-libc++  -std=c++11 -stdlib=libc++  -DSLUG=HolonicSystems-Free -fPIC -I/home/vortico/src/VCV/community/Rack-SDK/include -I/home/vortico/src/VCV/community/Rack-SDK/dep/include -DVERSION=0.6.0 -MMD -MP -g -O3 -march=nocona -ffast-math -fno-finite-math-only -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.7 -c -o build/src/HolonicSystems-Free.cpp.o src/HolonicSystems-Free.cpp
src/MdnsServer.cpp:254:3: error: use of undeclared identifier 'htons'
                htons(port), // port number
                ^
hdavid commented 6 years ago

Hi,

Thanks

Fixed all #ifdef to ARCH_LIN, ARCH_WINor ARCH_MAC. also tested it still compiled fine on all three architectures.

cschol commented 6 years ago

I pulled in this latest update. I am wondering though why we get different results between his system and the official build system.

hdavid commented 6 years ago

i was thinking of the very same thing.

i complied on a real windows and real linux and real mac. and it worked there (for the same reason it did not fail on the missing includes for avahi) Some of the code/lib i used had various way to select the arch APPLE, _WIN32, WIN64 etc... i suppose they were set on the physical systems i used, but not in your cross compiling toolchain.

This is why i now use only ARCH_<WIN|MAC|LIN> and it should behave the same as in your toolchain now.

On that topic, is it easy to install your cross compiling tool chain ? if you would have a simple script to install it on macos i would totally use it :)

AndrewBelt commented 6 years ago

Nothing was done about the error above, skipping build.

No, it is not easy to install my toolchain.

cschol commented 6 years ago

Should I remove the submodule for now and leave the manifest?

AndrewBelt commented 6 years ago

My memory is fuzzy, but perhaps just an include header is needed?

cschol commented 6 years ago

Is the build error on WIndows or macOS?

cschol commented 6 years ago

htons is defined in src/byteorder.h. I don't see it included in MdnsServer.cpp. Maybe that's it?

hdavid commented 6 years ago

hi,

sorry i forgot so send you the last commit. my apologies !

The error was there : https://github.com/hdavid/VCVRack-Holon.ist/blob/master/src/MdnsServer.cpp#L253 this line was wrongly included because of the dubious #ifdef

this should be fixed, and this section properly excluded for Linux and Mac, with this commit : 62836327dfff73e9567c758491b3bffb34610573 https://github.com/hdavid/VCVRack-Holon.ist/commit/62836327dfff73e9567c758491b3bffb34610573

hdavid commented 6 years ago

Hi @cschol ,

I believe we fixed all the standing issues, and the plugin has been tested on Windows, Mac and Linux. Do you think we could get this released this week on the plugins page ?

the last commit is 62836327dfff73e9567c758491b3bffb34610573

cheers,

Henri

cschol commented 6 years ago

@AndrewBelt Have you had a chance to try this latest version?

AndrewBelt commented 6 years ago

Still

src/MdnsServer.cpp:253:3: error: use of undeclared identifier 'htons'
                htons(port), // port number
                ^

on Mac.

AndrewBelt commented 6 years ago

htohs is defined in arpa/inet.h on Mac. You need to add that include header to MdnsServer.cpp or hpp.

hdavid commented 6 years ago

Hi Andrew,

Thanks a lot for providing the error message. I am actually confused as for why it did compile on my machine without complaining though. With such kind of error it should not compile anywhere. Maybe because the option -undefined dynamic_lookup in plugin.mk ?

anyhow thanks tracking that one down. i committed the fix : cdfd202cafc8dffd5f35affd6040d5444644f30f

AndrewBelt commented 6 years ago

Some Mac SDKs and compiler versions allow noncompliant code, some don't. Had nothing to do with linking, it's in the compilation stage.

AndrewBelt commented 6 years ago

Updated build

hdavid commented 6 years ago

Hi,

i released a new version of the plugins. could you update the build ? thanks a lot in advance. the commit id is : 5bb288c4e851ff7259ea6f125242128c24f846b0

cheers

AndrewBelt commented 6 years ago

Updated build

hdavid commented 5 years ago

Hi,

we released a new version of our plugins. could you include them in the build. the last commit is 190d8e43934c62c68736c31da790ab75a511c509

the version is 0.6.2

thanks a lot in advance,

Henri

AndrewBelt commented 5 years ago

Updated build

hdavid commented 5 years ago

Hi @AndrewBelt and @cschol

we have a minor update to publish our of plugins, version 0.6.3 with this commit hash : 92ca1e4e8b3b33ec59d38cd9909807718796eeca

thanks a lot for all your hard work

AndrewBelt commented 5 years ago

Updated build

hdavid commented 5 years ago

Hello VCV Team !

We have updated our plugins and added a couple of modules too. version: 0.6.4 commit hash : ac575192fd39bf3c0800ea784edb625bbeb15d52

thanks a lot in advance

Henri

AndrewBelt commented 5 years ago

Was the version not bumped?

hdavid commented 5 years ago

hi Andrew,

Previously submitted version was 0.6.3 and this version is 0.6.4, both in json and makefile are updated. currently available version is 0.6.3 : https://vcvrack.com/plugins.html#holonic

or i am missing smth ?

cheers

henri

AndrewBelt commented 5 years ago

Perhaps @cschol's commit didn't pull in that version?

cschol commented 5 years ago

Weird, sorry about that. I'll check that when I get home.

cschol commented 5 years ago

Fixed. Sorry about that.

AndrewBelt commented 5 years ago

Updated build

hdavid commented 5 years ago

thanks !

hdavid commented 5 years ago

Hi, it's me again :)

Small bug fix in the quantiser needs to be released. Sorry about this. version : 0.6.5 commit hash : 7491676db8308211591886994be665e0c8b32517 cheers

AndrewBelt commented 5 years ago

Updated build

hdavid commented 5 years ago

Hi,

Some bug fixes for quantiser. Could you update the build ? version 0.6.6 commit hash : 759e483fef2eb90ee90c6f6f8cbefcb96c45aecd

thanks a lot in advance

hdavid commented 5 years ago

Hi,

i made added a few features and bug fixes to our plugins. new version is: 0.6.7 commit hash: af58b359be3097a316e757859a845df883ae9c0e

for VCV Rack 1.0 branch: v1 version: 1.0.0 commit hash: 0d8d756d9af812a0b5d02dac1b936f4696697a7a

thanks a lot in advance

Henri

cschol commented 5 years ago

Invalid tags in plugin.json: https://github.com/hdavid/VCVRack-Holon.ist/issues/8

hdavid commented 5 years ago

Hi,

fixed new version is: 0.6.7 commit hash: af58b359be3097a316e757859a845df883ae9c0e

for VCV Rack 1.0 branch: v1 version: 1.0.0 commit hash: d8519da26d114e2cfa811f9c1dd4cdbd36f06307

thanks a lot in advance

Henri

hdavid commented 5 years ago

Hi,

While upgrading to 1.0, we made a mistake in the slugs and the slug of the our plugin suite was mistakenly changed. This leads to a duplicated entry in the list of plugins on the plugins page on VCV site and the inability to load old presets. Sorry about this.

Could you remove from the plugins page our plugins with slug 'HolonicSystemsFree' and only keep the entry 'HolonicSystems-Free'. I already committed a fix for this, the last version 1.0.1 is with commit hash 9e0146ea0188edcce68fef56ca01b11d64a157ff

If possible easily, it would be great for the users the users that registered 'HolonicSystemsFree' to be migrated to 'HolonicSystems-Free' so that they continue to receive future updates and can share patches with other users.

Sorry for the troubles and thanks a lot in advance !

Henri

cschol commented 5 years ago

I integrated the new version 1.0.1. @AndrewBelt should look at the duplicate entry in the plugin manager list. I am not quite sure if that will be resolved automatically.

AndrewBelt commented 5 years ago

Duplicate entry removed.

hdavid commented 5 years ago

Hi Team,

Some minor fixes for our clock divider. Commit hash : 9d1d0c9d2739ef028539be8638c164388343b2a4

cheers,

henri

hdavid commented 4 years ago

Hi,

A small bug fix for the Holonic Systems plugins !

the commit hash is: 2d64e00b3c292ac36be9e7d426f66ceaf4fe9acb https://github.com/hdavid/VCVRack-Holon.ist/commit/2d64e00b3c292ac36be9e7d426f66ceaf4fe9acb thanks a lot !

regards,

Henri