VCVRack / VCV-Prototype

Other
130 stars 23 forks source link

Add SuperCollider script engine #8

Closed AndrewBelt closed 3 years ago

AndrewBelt commented 4 years ago

https://supercollider.github.io/

Advantages:

Disadvantages:


TODOs

AndrewBelt commented 4 years ago

@brianlheim I've given you write access to this repo. Write to this branch instead of yours from now on.

See my last commit. Some points we need to resolve:

mossheim commented 4 years ago

I've given you write access to this repo.

thanks!

Write to this branch instead of yours from now on.

to master? or to a supercollider branch on your repo?

If libsndfile is required, it needs to be built and linked as a static library. If not required, make the supercollider build not require it.

no problem, i can and will turn off that dependency

If possible, see if you can install supercollider with $(MAKE) install (uncommented in Makefile) instead of link to headers and static libs in supercollider's build directory.

i explained this in a comment on the PR comment --

ah, forgot to mention -- against your suggestion, i am still linking the library from within the SC build folder. i really do not want to run make install because that would necessitate building extra executables and libraries (scsynth in particular), and i already need a bunch of other static libraries that get built in there anyway.

I've tested this on Linux so not sure if it works for Mac, and I'd guess it definitely doesn't work on Windows. You'll need to use ifdef ARCH_WIN and edit the libraries in the Makefile.

i'm not sure what you're referring to -- perhaps you're looking at an old version of the branch? i no longer define all the libraries directly in the Makefile, i rely on CMake to list them.

I haven't even looked at the C++ yet. I'll have another TODO list once I review.

great! just let me know.

mossheim commented 4 years ago

i've edited the OP comment to start a todo list, i find that helpful to work with

AndrewBelt commented 4 years ago

to master?

master is fine with me, but you can add feature branches if this is how you work.

i no longer define all the libraries directly in the Makefile, i rely on CMake to list them.

I want you to define all linker flags in the Makefile. This is so we know exactly what is being done to obtain the plugin.so/dylib/dll library.

mossheim commented 4 years ago

This is so we know exactly what is being done to obtain the plugin.so/dylib/dll library.

why is that important to you? the current method is much more robust in my opinion. i don't have to spend time figuring out what the link like should be on every platform that way, or updating it if it changes. if it's a matter of being able to see what libraries are linked in, perhaps i could just print those out in another step?

AndrewBelt commented 4 years ago

Linker flags interact heavily between other libraries, so I need to be able to see exactly what is happening on each platform. Choosing linker flags is a task that should be controlled by the application that links, not the library.

mossheim commented 4 years ago

alright, i will add those in soon

AndrewBelt commented 4 years ago

Would you be interested in finishing this script engine?

mossheim commented 4 years ago

yes! sorry, i got sidelined by some other projects and general supercollider maintenance. thank you for pinging me. i will try to find some time in the next week to finish up what i started.

AndrewBelt commented 4 years ago

Cool, just didn't want your previous work to go to waste!

mossheim commented 4 years ago

hey @AndrewBelt , just wanted to let you know that i haven't forgotten about this! i will make the changes you requested this weekend, does that sound good?