Hi,
I'm trying to update my project, pdlv2, to use the new pd multi instance support and I'm having some issues which I'm assuming someone else has to have seen.
I'm getting the errors: pd: unknown message dsp 1 error: canvasmaker: no method for 'canvas' [the whole output is below, prefixed with "LIBPD:" so I can be sure of the source]
The project builds an LV2 plugin out of PD patch, using some specific markup for a patch. The major difference between it and the multi instance 'sample' in the 'c' directory of the libpd/samples folder is that it is built into a shared object that is loaded into an 'lv2' plugin host.
Here is the branch of the project I'm working on that shows the issue: https://github.com/x37v/pdlv2/tree/multiinstancelibpd
It depends on ruby, libpd, lv2 and jalv.gtk to test. I've only tried it on Linux.
An earlier commit, without the instance support, works for a single instance of the lv2 plugin: https://github.com/x37v/pdlv2/commit/1701d1b08f641a3023800f422695e733b0984f0...
I'm using libpd master: 9a0bbd2a2b461c8345d5df5e9d347510b37756db
Any ideas whats up? I used to explicitly load the libpd.so into its own memory space from a unique temp file and that worked but wasn't ideal. Real multi instance support is going to be nice once I can get that going :) It seems like it must be an initialization or compile flag issue?
Here is all the output from libpd when loaded in the host, using the most recent version of my code: LIBPD: bonk version 1.5 LIBPD: fiddle version 1.1 TEST4 LIBPD: pique 0.1 for PD version 23 LIBPD: sigmund~ version 0.07 LIBPD: pd: unknown message dsp LIBPD: LIBPD: 1LIBPD: LIBPD: error: canvasmaker: no method for 'canvas' LIBPD: verbose(4): ... you might be able to track this down from the Find menu. LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: canvas: no method for 'loadbang'
Thanks tons for any help you can provide! Alex
This is not very specific... but it turns out to be very easy to mistakenly call functions on the "main instance" and then at other moments call other functions on an instance you created. I think when Pd is compiled multi-instance it's best not to use pd_maininstance at all but only operate on another instance that you create for the purpose. But anyhow, watching the value of pd_this as the various calls are made will show if this is the problem or not.
cheers Miller
On Sun, Aug 13, 2017 at 08:29:53AM -0700, Alex wrote:
Hi,
I'm trying to update my project, pdlv2, to use the new pd multi instance support and I'm having some issues which I'm assuming someone else has to have seen.
I'm getting the errors: pd: unknown message dsp 1 error: canvasmaker: no method for 'canvas' [the whole output is below, prefixed with "LIBPD:" so I can be sure of the source]
The project builds an LV2 plugin out of PD patch, using some specific markup for a patch. The major difference between it and the multi instance 'sample' in the 'c' directory of the libpd/samples folder is that it is built into a shared object that is loaded into an 'lv2' plugin host.
Here is the branch of the project I'm working on that shows the issue: https://github.com/x37v/pdlv2/tree/multiinstancelibpd
It depends on ruby, libpd, lv2 and jalv.gtk to test. I've only tried it on Linux.
An earlier commit, without the instance support, works for a single instance of the lv2 plugin: https://github.com/x37v/pdlv2/commit/1701d1b08f641a3023800f422695e733b0984f0...
I'm using libpd master: 9a0bbd2a2b461c8345d5df5e9d347510b37756db
Any ideas whats up? I used to explicitly load the libpd.so into its own memory space from a unique temp file and that worked but wasn't ideal. Real multi instance support is going to be nice once I can get that going :) It seems like it must be an initialization or compile flag issue?
Here is all the output from libpd when loaded in the host, using the most recent version of my code: LIBPD: bonk version 1.5 LIBPD: fiddle version 1.1 TEST4 LIBPD: pique 0.1 for PD version 23 LIBPD: sigmund~ version 0.07 LIBPD: pd: unknown message dsp LIBPD: LIBPD: 1LIBPD: LIBPD: error: canvasmaker: no method for 'canvas' LIBPD: verbose(4): ... you might be able to track this down from the Find menu. LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: #X: no such object LIBPD: error: canvas: no method for 'loadbang'
Thanks tons for any help you can provide! Alex
Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev