-
Notifications
You must be signed in to change notification settings - Fork 122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JPverb for SuperNova fix #149
base: main
Are you sure you want to change the base?
Conversation
looking great, though I strongly object against manual editing of faust-generated cpp files. Thanks! |
Thanks for the feedback! OK I'll take it upstream. |
Curious to learn about the outcome of this, I just submitted the freshly compiled HOA UGens and can't wait to learn if they work for supernova. |
@florian-grond Great to know about your HOA port! I'm guessing they won't, without using the patched Faust template I intend to create. |
Fantastic @carlocapocasa, the patched Faust template will be much appreciated. |
Hi @carlocapocasa I was curious if you had integrated the supernova patch to Faust already? |
OK I narrowed down the fix with the latest version of the cpp file. Two things are required to make it work in SuperNova: (1) The
Couldn't figure out what to change in Faust yet to make that work. |
OK I asked the Faust people to merge my pull request grame-cncm/faust#69 to include the supernova API version function. I am less sure about what to do about SC_FAUST_PREFIX- they are using it for their faust2sc script, but it prefixes every possible plugin name with "Faust", so it is more an accident that the plugin loads with scsynth- supernova is correct to assume the plugin is called FaustJPverb. I am wondering if the simplest solution would not be to make an exception with manual patching in this case- the faust people specifically request one do so when compiling without the faust2sc script. |
@florian-grond This is not all that trivial- for a quick fix to immediately compile your plugin, refer to the minimal manual patching above. |
Will check when back, thanks!
…On Jul 18, 2017 8:28 PM, "Carlo Capocasa" ***@***.***> wrote:
@florian-grond <https://github.com/florian-grond> This is not all that
trivial- for a quick fix to immediately compile your plugin, refer to the
minimal manual patching above.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#149 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABVJxmWsIcjQGCejw1t0jHgkKqQ8p7jxks5sPU2vgaJpZM4N9gQg>
.
|
Great news! Faust merged the patch. As soon as we get the plugin to accept SC_FAUST_PREFIX="" from CMakeList.txt we may start compiling Faust plugins with SuperNova support with the latest master-dev Faust. |
great ! a good step forward |
Okay I've got it licked- The makefile was not setting the faust prefix for targets JPverb_supernova and Greyhole_supernova- just JPverb and Greyhole. Therefore, the Faust prefix was not disabled and it could not be loaded. As a side effect, NDEBUG was not set for JPverb_supernova and Greyhole_superova either, which is why we were seeing some Faust debug output- this was not what the faust template intended and this pull request fixes this issue as well. I modified the pull request to purely affect the CMakeLIsts.txt. |
I wonder why travis fails- builds fine for me. Edit: fix needed to be conditional on SUPERNOVA flag. @scztt, thanks a lot for setting CI up. |
What's the state of this? @carlocapocasa , sorry to follow up so late in the process, is this still a non-stale PR? |
Yeah, this will merge and is necessary to build JPverb working on supernova as well as get rid of some error messages that look like Faust-plugins are noisy, but it's really the build system's fault. |
ok, I'll have a look at it ASAP. |
No worries! Thanks for looking into it! |
Do I see this right and I'd need to re-run faust1 (in its latest versions) to generate c++ code in order for your changes to take effect? |
I believe Carlos changes to make Faust fit for supernova did, in fact, add
some lines to the C++ code, I plan to test it soon on the SC-HOA plugins.
www.grond.at
…On Tue, Nov 7, 2017 at 2:15 PM, LFSaw ***@***.***> wrote:
Do I see this right and I'd need to re-run faust to generate c++ code in
order for the changes to take effect?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#149 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABVJxitE6jtkYgbCS68a3ayeB-9c0aqiks5s0KxMgaJpZM4N9gQg>
.
|
I guess, you mean
? |
Pure conservatism- we know that the present code worked for lots of people, but merely think that the new code will work for lots of people. In my estimation, a benefit to end users, such as improved performance, would justify the change, while a benefit to us developers, such as the satisfying application of principle, would not. |
my idea behind this is:
I'd like to provide material that is easily (and documented'ly (?)) to be repeated by anyone else but me, in case there are things coming up that e.g. make a change in the faust-code necessary (this is what triggered my last update).
That's my reason why I don't want to mess with generated code...
In case you'd like to fumble around with it, I'm happy to get an update pf this PR that consists of
+ updated FAUST file (if needed)
+ updated (generated) c++ file
+ updated [faust_src/README.md](https://github.com/supercollider/sc3-plugins/blob/master/source/DEINDUGens/faust_src/README.md)
I'd find it important that both c++ sources (for `Greyhole`, `JPVerb`) are built with the same faust version.
If you don't, I'll try to find time to do this (hopefully soon) myself.
… On 08. Nov 2017, at 19:49, Carlo Capocasa ***@***.***> wrote:
Pure conservatism- we know that the present code worked for lots of people, but merely think that the new code will work for lots of people.
In my estimation, a benefit to end users, such as improved performance, would justify the change, while a benefit to us developers, such as the satisfying application of principle, would not.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub, or mute the thread.
|
I was kinda sure that the README contains the git-sha of the faust version used but this is apparently not the case. For the future, I think this is a good idea, though.
… On 08. Nov 2017, at 20:31, Till Bovermann ***@***.***> wrote:
my idea behind this is:
I'd like to provide material that is easily (and documented'ly (?)) to be repeated by anyone else but me, in case there are things coming up that e.g. make a change in the faust-code necessary (this is what triggered my last update).
That's my reason why I don't want to mess with generated code...
In case you'd like to fumble around with it, I'm happy to get an update pf this PR that consists of
+ updated FAUST file (if needed)
+ updated (generated) c++ file
+ updated [faust_src/README.md](https://github.com/supercollider/sc3-plugins/blob/master/source/DEINDUGens/faust_src/README.md)
I'd find it important that both c++ sources (for `Greyhole`, `JPVerb`) are built with the same faust version.
If you don't, I'll try to find time to do this (hopefully soon) myself.
> On 08. Nov 2017, at 19:49, Carlo Capocasa ***@***.***> wrote:
>
> Pure conservatism- we know that the present code worked for lots of people, but merely think that the new code will work for lots of people.
>
> In my estimation, a benefit to end users, such as improved performance, would justify the change, while a benefit to us developers, such as the satisfying application of principle, would not.
>
> —
> You are receiving this because your review was requested.
> Reply to this email directly, view it on GitHub, or mute the thread.
>
|
@carlocapocasa, I updated the |
Thanks, great stuff! It will take a little while until I'll be able to context-switch my brain back to SC dev to test it properly, but I'll get to it as soon as I can. |
others are welcome to test, too :) |
Fantastic Till, will test soon!
…On Thursday, November 16, 2017, LFSaw ***@***.***> wrote:
others are welcome to test, too :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#149 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABVJxj9cbLcpE31kgb2fT2sD6TrMEITcks5s3CZ8gaJpZM4N9gQg>
.
--
www.grond.at
|
As far as the noisy (i.e. debug messages) supernova Ugens are concerned, I just submitted a PR for the HOA Ugens where we fix this by adding to The CmakeList.txt: if (NOT CMAKE_BUILD_TYPE MATCHES Debug) now using cmake in release mode (-DCMAKE_BUILD_TYPE=Release) results in no debug noise no more for all Faust based Ugens |
I don't get any debug messages here, also without the fix suggested by @florian-grond . |
OK so I've got a supernova setup again! @LFSaw No dice! From checking the repo, the minimum faust version that contains my supernova patch is 2.5.9 I gave it a quick test with 2.15.11 (latest in arch linux) and that builds and works fine. Would you like to do the rebuild for release or shall I? |
Rebased the build file patch onto the current master and compiled JPverb and Greyhole from faust source using 2.5.11 according to readme instructions. |
I consider this branch stale. In fact, I have not worked on this for a long time and am currently not able to contribute any time to this issue. Sorry. |
Looking a little bit deeper, I see that I did not file this PR, so it is not really my thing to tell about the staleness of this PR, sorry. Just saying that I neither know about the status of this, nor do I have the time looking into it atm. If someone decides to go along with this, please remember to add possible changes to the README (incl. how to compile the C sources from the faust patch files). cheers |
I upstreamed the fix to Faust so regenerating the DEIND .cpp files with any recent Faust version is enough, discarding this branch. I can do that. |
Sorry @capocasa - is this branch still in dev or stale? :D If you want to get this merged it would be great to rebase it from |
Aw, awesome! I understand, there are a lot of tickets in SuperCollider, thank you for helping to maintain it. I wanted to help too but ultimately couldn't... Sure I'll rebase it. |
In my ongoing quest to find native SuperCollider equivalents to various sound processing that people are used to from everyday music listening, I found JPverb to be just what the doctor ordered. Lush reverb, complex and algorithmic, somewhat Alesis-ish but still unique. Unfortunately, supernova didn't recognize the compiled plugin library file
.so
.I figured out that Faust-Generated UGens like JPverb use the string
Faust
for their symbols, and, without really taking the time to understand the details, I figured out you can just replace all instances of the StringFaust
with the plugin name and SuperNova will work just fine (along with a server flag):To modify any Faust-generated supercollider ugen to work with Supernova.
I took the liberty of applying this to JPverb manually. If there are no complaints, I would take this upstream to the Faust .CPP template for supercollider.