On 5/31/25 14:50, Miller Puckette wrote:
I've been trying to figure out how that could happen without success. libpd should be defining the missing symbol (s_signal). This is a shot int he dark but can you try "nm libpd.a" from the .../pd/libpd directory? I get this:
sp@bang:~/pd/libpd$ nm libpd.a |grep s_sig 00000000000000a0 D s_signal
I get the following:
U s_signal
U s_signal
U s_signal
U s_signal
so I guess the symbol is missing. I tried deleting everything in the libpd directory (apart from the Makefile, README and the test_libpd directory) and to re-build it with
|make MORECFLAGS=-DVST_CLEANSER MORESRC=[...path-to...]/PureVST/source/vst_cleanser.c|
but the result is the same
... so libpd.a is defining the (apparently missing) symbol. If yours is missing, then somehow the libpd.a build missed including vst_cleanser.c from the pureVST source. But if yours is present like mine is (which I expect you to find) then something about the linker command is funny. You could then run "cmake --build . --verbose" so that we could both look at how the linker is getting invoked on our respective systems.
Meanwihle... in trying to recompile everything from scratch I now get a problem further down the line (a segfault trying to run Steinberg's 'validator'.) I had to start all over and add -DSMTG_RUN_VST_VALIDATOR=FALSE to the cmake command - then, unexpectedly, I was able to load the plugin under ardour and all seemed fine. But something seems to be pretty fragile here :)
Miller
On 5/30/25 3:16 PM, Alexandros Drymonitis wrote:
Replying to list. I went a bit further, but got an error with
cmake --build .
after the selftests were run successfully. Here's the error:[ 91%] Built target validator [ 91%] Generating VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/test-patch.pd to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd [ 91%] Generating VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png [ 92%] Generating VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png [ 92%] Generating VST3/Release/PureVST.vst3/Contents/Resources/background.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/background.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/background.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/onoff_button.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/pdeditor.uidesc to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_background.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png [ 94%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle_2.0x.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png [ 94%] Building CXX object CMakeFiles/PureVST.dir/source/pdprocessor.cpp.o [ 94%] Building CXX object CMakeFiles/PureVST.dir/source/pdcontroller.cpp.o [ 95%] Building CXX object CMakeFiles/PureVST.dir/source/pdentry.cpp.o [ 95%] Building CXX object CMakeFiles/PureVST.dir/home/alex/Applications/vst3sdk/public.sdk/source/main/linuxmain.cpp.o [ 95%] Linking CXX shared module VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so dlopen failed. /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so: undefined symbol: s_signalgmake[2]: *** [CMakeFiles/PureVST.dir/build.make:207: VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so] Error 1 gmake[2]: *** Deleting file 'VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so' gmake[1]: *** [CMakeFiles/Makefile2:389: CMakeFiles/PureVST.dir/all] Error 2 gmake: *** [Makefile:91: all] Error 2
On 5/30/25 12:30, Miller Puckette wrote:
I think you're almost there but now I'm goint to revise the README to be more explicit. From the (empty) build directory I type this:
SRC=[...path-to...]/purevst
cmake -DCMAKE_BUILD_TYPE=Release -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC
(all on one line) and then this:
cmake --build .
It could be that as you looked at the README you saw the 'cmake -DCMAKE_BUILD_TYPE=Release...' command broken into two lines - I should find a way to prevent that from happening :)
Miller
On 5/30/25 9:57 AM, Alexandros Drymonitis wrote:
OK, I downloaded PureVST (sorry, had to figure this out earlier) and unpacked it. I created a build directory and changed to that. I also corrected the paths to the VST3 SDK and Pd's source (well, Pd's directory that includes the src/ directory, not the actual src/ directory; that's what I got I should do from the CMakeLists.txt file) and I run:
cmake -DCMAKE_BUILD_TYPE=Release
but I got the following error:
CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases. CMake Error: The source directory "/home/alex/Applications/puredata/PureVST-0.5/build" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI.
Perhaps something is missing in the command, like a double dot? I know nothing about CMake, so this could be rather trivial...
On 5/30/25 10:22, Miller Puckette via Pd-list wrote:
Hmm... the directions could have been clearer, sorry....
vst_cleanser.c is in the pureVTS source, not in the Pd source. If you've downloaded and unpacked the PureVST source tarball it should be just "purevst/source/vst_cleanser.c". And yes, no trailing period (I think my markdown-to-html converter remove the space I had put between the filename and the period).
and yes, 'wherever the sources landed" refers to the pureVST source (currently https://msp.ucsd.edu/tools/purevst/PureVST-0.5.src.tgz ) whic need dwonloading and unpacking before even making this version of libpd.
cheers Miller
On 5/30/25 8:39 AM, Alexandros Drymonitis wrote:
I'm trying to compile pureVST from source on Debian 12. I built the VST SDK and following pureVST's README, I've gone up to the following step
make MORECFLAGS=-DVST_CLEANSER
insinde the libpd directory.I don't quite understand the following steps. Right after this, the README reads that I should type
MORESRC=../../work/vst/purevst/source/vst_cleanser.c.
Being inside the libpd directory, where will the two parent directories lead me, since the path starts with ../../? Also, where is this
work
directory supposed to be? Orvst
andpurevst
? Are these directories Miller created in his system?I did a
find . -name vst_cleanser.c
from my home directory and found nothing (BTW, is the dot at the end supposed to be there?).Then the instructions follow like this:
Then using the PureVST source tree, consult the CMakeLists.txt file and correct the path settings for the VST SDK and for the Pd source. Then make an empty build directory, and using a shell or terminal window, change directory to the build directory and try to get these to work in sequence: |SRC=~/work/vst/purevst| [… or wherever the sources landed] |cmake -DCMAKE_BUILD_TYPE=Release -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC| |cmake --build .|
It mentions "or wherever the sources landed". Which sources? After building libpd? And in which directory should all the cmake command be executed?
pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!DFen_RjYHJNb45m...
pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-...
pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-...
pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!H13gOLNhjW0b3yI...
Hmm... I've been building libpd in .../pd/libpd using the included makefile, which I think builds ".o" files that get plunked into the libpd directory, without referring to the ones used to build the Pd app itself. But if that's not safe I'd better change my ways :)
Miller
On 5/31/25 5:01 PM, Dan Wilcox wrote:
Did you build desktop or on that same dir? If so, you need to clean it as it doesn't use multiple instances.
enohp ym morf tnes
Dan Wilcox danomatika.com robotcowboy.com
On May 31, 2025, at 4:16 PM, Alexandros Drymonitis adrcki@gmail.com wrote:
On 5/31/25 14:50, Miller Puckette wrote:
I've been trying to figure out how that could happen without success. libpd should be defining the missing symbol (s_signal). This is a shot int he dark but can you try "nm libpd.a" from the .../pd/libpd directory? I get this:
sp@bang:~/pd/libpd$ nm libpd.a |grep s_sig 00000000000000a0 D s_signal
I get the following:
U s_signal U s_signal U s_signal U s_signal
so I guess the symbol is missing. I tried deleting everything in the libpd directory (apart from the Makefile, README and the test_libpd directory) and to re-build it with
|make MORECFLAGS=-DVST_CLEANSER MORESRC=[...path-to...]/PureVST/source/vst_cleanser.c|
but the result is the same
... so libpd.a is defining the (apparently missing) symbol. If yours is missing, then somehow the libpd.a build missed including vst_cleanser.c from the pureVST source. But if yours is present like mine is (which I expect you to find) then something about the linker command is funny. You could then run "cmake --build . --verbose" so that we could both look at how the linker is getting invoked on our respective systems.
Meanwihle... in trying to recompile everything from scratch I now get a problem further down the line (a segfault trying to run Steinberg's 'validator'.) I had to start all over and add -DSMTG_RUN_VST_VALIDATOR=FALSE to the cmake command - then, unexpectedly, I was able to load the plugin under ardour and all seemed fine. But something seems to be pretty fragile here :)
Miller
On 5/30/25 3:16 PM, Alexandros Drymonitis wrote:
Replying to list. I went a bit further, but got an error with
cmake --build .
after the selftests were run successfully. Here's the error:[ 91%] Built target validator [ 91%] Generating VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/test-patch.pd to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd [ 91%] Generating VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png [ 92%] Generating VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png [ 92%] Generating VST3/Release/PureVST.vst3/Contents/Resources/background.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/background.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/background.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/onoff_button.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/pdeditor.uidesc to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_background.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png [ 94%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle_2.0x.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png [ 94%] Building CXX object CMakeFiles/PureVST.dir/source/pdprocessor.cpp.o [ 94%] Building CXX object CMakeFiles/PureVST.dir/source/pdcontroller.cpp.o [ 95%] Building CXX object CMakeFiles/PureVST.dir/source/pdentry.cpp.o [ 95%] Building CXX object CMakeFiles/PureVST.dir/home/alex/Applications/vst3sdk/public.sdk/source/main/linuxmain.cpp.o [ 95%] Linking CXX shared module VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so dlopen failed. /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so: undefined symbol: s_signalgmake[2]: *** [CMakeFiles/PureVST.dir/build.make:207: VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so] Error 1 gmake[2]: *** Deleting file 'VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so' gmake[1]: *** [CMakeFiles/Makefile2:389: CMakeFiles/PureVST.dir/all] Error 2 gmake: *** [Makefile:91: all] Error 2
On 5/30/25 12:30, Miller Puckette wrote:
I think you're almost there but now I'm goint to revise the README to be more explicit. From the (empty) build directory I type this:
SRC=[...path-to...]/purevst
cmake -DCMAKE_BUILD_TYPE=Release -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC
(all on one line) and then this:
cmake --build .
It could be that as you looked at the README you saw the 'cmake -DCMAKE_BUILD_TYPE=Release...' command broken into two lines - I should find a way to prevent that from happening :)
Miller
On 5/30/25 9:57 AM, Alexandros Drymonitis wrote:
OK, I downloaded PureVST (sorry, had to figure this out earlier) and unpacked it. I created a build directory and changed to that. I also corrected the paths to the VST3 SDK and Pd's source (well, Pd's directory that includes the src/ directory, not the actual src/ directory; that's what I got I should do from the CMakeLists.txt file) and I run:
cmake -DCMAKE_BUILD_TYPE=Release
but I got the following error:
CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases. CMake Error: The source directory "/home/alex/Applications/puredata/PureVST-0.5/build" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI.
Perhaps something is missing in the command, like a double dot? I know nothing about CMake, so this could be rather trivial...
On 5/30/25 10:22, Miller Puckette via Pd-list wrote: > Hmm... the directions could have been clearer, sorry.... > > vst_cleanser.c is in the pureVTS source, not in the Pd source. > If you've downloaded and unpacked the PureVST source tarball it > should be just "purevst/source/vst_cleanser.c". And yes, no > trailing period (I think my markdown-to-html converter remove > the space I had put between the filename and the period). > > and yes, 'wherever the sources landed" refers to the pureVST > source (currently > https://msp.ucsd.edu/tools/purevst/PureVST-0.5.src.tgz ) whic > need dwonloading and unpacking before even making this version > of libpd. > > cheers > Miller > > > On 5/30/25 8:39 AM, Alexandros Drymonitis wrote: >> >> I'm trying to compile pureVST from source on Debian 12. I built >> the VST SDK and following pureVST's README, I've gone up to the >> following step
make MORECFLAGS=-DVST_CLEANSER
insinde the >> libpd directory. >> >> I don't quite understand the following steps. Right after this, >> the README reads that I should type >>MORESRC=../../work/vst/purevst/source/vst_cleanser.c.
>> >> Being inside the libpd directory, where will the two parent >> directories lead me, since the path starts with ../../? Also, >> where is thiswork
directory supposed to be? Orvst
and >>purevst
? Are these directories Miller created in his system? >> >> I did afind . -name vst_cleanser.c
from my home directory >> and found nothing (BTW, is the dot at the end supposed to be >> there?). >> >> Then the instructions follow like this: >> >>>> >> Then using the PureVST source tree, consult the CMakeLists.txt >> file and correct the path settings for the VST SDK and for the >> Pd source. Then make an empty build directory, and using a >> shell or terminal window, change directory to the build >> directory and try to get these to work in sequence: >> >> |SRC=~/work/vst/purevst| >> >> [… or wherever the sources landed] >> >> |cmake -DCMAKE_BUILD_TYPE=Release >> -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE >> -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC| >> >> |cmake --build .| >> >>
>> >> It mentions "or wherever the sources landed". Which sources? >> After building libpd? And in which directory should all the >> cmake command be executed? >> >> >> --- >> pd-list@lists.iem.at - the Pure Data mailinglist >> https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis... >> >> >> To unsubscribe send an email to pd-list-leave@lists.iem.at >> mailing list >> UNSUBSCRIBE and account-management -> >> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!DFen_RjYHJNb45m... > > > --- > pd-list@lists.iem.at - the Pure Data mailinglist > https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis... > > > To unsubscribe send an email to pd-list-leave@lists.iem.at > mailing list > UNSUBSCRIBE and account-management -> > https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-...
pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-...
pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!H13gOLNhjW0b3yI...
pd-list@lists.iem.at - the Pure Data mailinglist https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/ONACOAA2TP... https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/ONACOAA2TPVCFNFLSXB6TSZA7QH5KZE6/__;!!Mih3wA!GwioqHVz2NJb6qQ_ulbW6dl93xxtdRGL09f75VrVlsv9I4cGjByATpkhsAbf4b7s8siQWPByswFMVRY$
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.iem.at/ https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!GwioqHVz2NJb6qQ_ulbW6dl93xxtdRGL09f75VrVlsv9I4cGjByATpkhsAbf4b7s8siQWPByrMZobbE$
Maybe my comment was a red herring, but to explain: I have run into the issue on my own system (and by an issue or two others have posted), that if you build desktop pd, at least using the auto tools build, the generated .o files will not contain the multi instance stuff. If you later build libpd within the libpd directory, the makefile there will reuse the existing .o files even though it's trying to build with PDINSTANCE set, which can lead to link issues. The way forward is to clean the main dir before building libpd itself to be sure.
On May 31, 2025, at 5:01 PM, Dan Wilcox danomatika@gmail.com wrote:
Did you build desktop or on that same dir? If so, you need to clean it as it doesn't use multiple instances.
enohp ym morf tnes
Dan Wilcox danomatika.com robotcowboy.com
On May 31, 2025, at 4:16 PM, Alexandros Drymonitis adrcki@gmail.com wrote:
On 5/31/25 14:50, Miller Puckette wrote:
I've been trying to figure out how that could happen without success. libpd should be defining the missing symbol (s_signal). This is a shot int he dark but can you try "nm libpd.a" from the .../pd/libpd directory? I get this:
sp@bang:~/pd/libpd$ nm libpd.a |grep s_sig 00000000000000a0 D s_signal
I get the following:
U s_signal U s_signal U s_signal U s_signal
so I guess the symbol is missing. I tried deleting everything in the libpd directory (apart from the Makefile, README and the test_libpd directory) and to re-build it with
make MORECFLAGS=-DVST_CLEANSER MORESRC=[...path-to...]/PureVST/source/vst_cleanser.c
but the result is the same
... so libpd.a is defining the (apparently missing) symbol. If yours is missing, then somehow the libpd.a build missed including vst_cleanser.c from the pureVST source. But if yours is present like mine is (which I expect you to find) then something about the linker command is funny. You could then run "cmake --build . --verbose" so that we could both look at how the linker is getting invoked on our respective systems.
Meanwihle... in trying to recompile everything from scratch I now get a problem further down the line (a segfault trying to run Steinberg's 'validator'.) I had to start all over and add -DSMTG_RUN_VST_VALIDATOR=FALSE to the cmake command - then, unexpectedly, I was able to load the plugin under ardour and all seemed fine. But something seems to be pretty fragile here :)
Miller
On 5/30/25 3:16 PM, Alexandros Drymonitis wrote:
Replying to list. I went a bit further, but got an error with
cmake --build .
after the selftests were run successfully. Here's the error:[ 91%] Built target validator [ 91%] Generating VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/test-patch.pd to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd [ 91%] Generating VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png [ 92%] Generating VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png [ 92%] Generating VST3/Release/PureVST.vst3/Contents/Resources/background.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/background.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/background.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/onoff_button.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/pdeditor.uidesc to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_background.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png [ 94%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle_2.0x.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png [ 94%] Building CXX object CMakeFiles/PureVST.dir/source/pdprocessor.cpp.o [ 94%] Building CXX object CMakeFiles/PureVST.dir/source/pdcontroller.cpp.o [ 95%] Building CXX object CMakeFiles/PureVST.dir/source/pdentry.cpp.o [ 95%] Building CXX object CMakeFiles/PureVST.dir/home/alex/Applications/vst3sdk/public.sdk/source/main/linuxmain.cpp.o [ 95%] Linking CXX shared module VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so dlopen failed. /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so: undefined symbol: s_signalgmake[2]: *** [CMakeFiles/PureVST.dir/build.make:207: VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so] Error 1 gmake[2]: *** Deleting file 'VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so' gmake[1]: *** [CMakeFiles/Makefile2:389: CMakeFiles/PureVST.dir/all] Error 2 gmake: *** [Makefile:91: all] Error 2
On 5/30/25 12:30, Miller Puckette wrote:
I think you're almost there but now I'm goint to revise the README to be more explicit. From the (empty) build directory I type this:
SRC=[...path-to...]/purevst
cmake -DCMAKE_BUILD_TYPE=Release -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC
(all on one line) and then this:
cmake --build .
It could be that as you looked at the README you saw the 'cmake -DCMAKE_BUILD_TYPE=Release...' command broken into two lines - I should find a way to prevent that from happening :)
Miller
On 5/30/25 9:57 AM, Alexandros Drymonitis wrote:
OK, I downloaded PureVST (sorry, had to figure this out earlier) and unpacked it. I created a build directory and changed to that. I also corrected the paths to the VST3 SDK and Pd's source (well, Pd's directory that includes the src/ directory, not the actual src/ directory; that's what I got I should do from the CMakeLists.txt file) and I run:
cmake -DCMAKE_BUILD_TYPE=Release
but I got the following error:
CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases. CMake Error: The source directory "/home/alex/Applications/puredata/PureVST-0.5/build" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI.
Perhaps something is missing in the command, like a double dot? I know nothing about CMake, so this could be rather trivial...
On 5/30/25 10:22, Miller Puckette via Pd-list wrote: > Hmm... the directions could have been clearer, sorry.... > > vst_cleanser.c is in the pureVTS source, not in the Pd source. If you've downloaded and unpacked the PureVST source tarball it should be just "purevst/source/vst_cleanser.c". And yes, no trailing period (I think my markdown-to-html converter remove the space I had put between the filename and the period). > > and yes, 'wherever the sources landed" refers to the pureVST source (currently https://msp.ucsd.edu/tools/purevst/PureVST-0.5.src.tgz ) whic need dwonloading and unpacking before even making this version of libpd. > > cheers > Miller > > > On 5/30/25 8:39 AM, Alexandros Drymonitis wrote: >> >> I'm trying to compile pureVST from source on Debian 12. I built the VST SDK and following pureVST's README, I've gone up to the following step
make MORECFLAGS=-DVST_CLEANSER
insinde the libpd directory. >> >> I don't quite understand the following steps. Right after this, the README reads that I should typeMORESRC=../../work/vst/purevst/source/vst_cleanser.c.
>> >> Being inside the libpd directory, where will the two parent directories lead me, since the path starts with ../../? Also, where is thiswork
directory supposed to be? Orvst
andpurevst
? Are these directories Miller created in his system? >> >> I did afind . -name vst_cleanser.c
from my home directory and found nothing (BTW, is the dot at the end supposed to be there?). >> >> Then the instructions follow like this: >> >>>> >> Then using the PureVST source tree, consult the CMakeLists.txt file and correct the path settings for the VST SDK and for the Pd source. Then make an empty build directory, and using a shell or terminal window, change directory to the build directory and try to get these to work in sequence: >> >> |SRC=~/work/vst/purevst| >> >> [… or wherever the sources landed] >> >> |cmake -DCMAKE_BUILD_TYPE=Release -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC| >> >> |cmake --build .| >> >>
>> >> It mentions "or wherever the sources landed". Which sources? After building libpd? And in which directory should all the cmake command be executed? >> >> >> --- >> pd-list@lists.iem.at mailto:pd-list@lists.iem.at - the Pure Data mailinglist >> https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis... >> >> To unsubscribe send an email to pd-list-leave@lists.iem.at mailto:pd-list-leave@lists.iem.at mailing list >> UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!DFen_RjYHJNb45m... > > > --- > pd-list@lists.iem.at mailto:pd-list@lists.iem.at - the Pure Data mailinglist > https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis... > > To unsubscribe send an email to pd-list-leave@lists.iem.at mailto:pd-list-leave@lists.iem.at mailing list > UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-...
pd-list@lists.iem.at mailto:pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis... To unsubscribe send an email to pd-list-leave@lists.iem.at mailto:pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-...
pd-list@lists.iem.at mailto:pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis... To unsubscribe send an email to pd-list-leave@lists.iem.at mailto:pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!H13gOLNhjW0b3yI...
pd-list@lists.iem.at - the Pure Data mailinglist https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/ONACOAA2TP...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.iem.at/
Dan Wilcox danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/
I think that must be exactly what's going on. I never use the automake system (it's far too complicated for me to understand) and so I don't end up confusing the libpd build. So yes, as Dan says, or alternatively just get a clean copy of the Pd source and build libpd in it using only the Makefile in the libpd directory. I'll update the pureVST README accordingly :)
Miller
On 5/31/25 9:32 PM, Dan Wilcox wrote:
Maybe my comment was a red herring, but to explain: I have run into the issue on my own system (and by an issue or two others have posted), that if you build desktop pd, at least using the auto tools build, the generated .o files will not contain the multi instance stuff. If you later build libpd within the libpd directory, the makefile there will reuse the existing .o files even though it's trying to build with PDINSTANCE set, which can lead to link issues. The way forward is to clean the main dir before building libpd itself to be sure.
On May 31, 2025, at 5:01 PM, Dan Wilcox danomatika@gmail.com wrote:
Did you build desktop or on that same dir? If so, you need to clean it as it doesn't use multiple instances.
enohp ym morf tnes
Dan Wilcox danomatika.com robotcowboy.com
On May 31, 2025, at 4:16 PM, Alexandros Drymonitis adrcki@gmail.com wrote:
On 5/31/25 14:50, Miller Puckette wrote:
I've been trying to figure out how that could happen without success. libpd should be defining the missing symbol (s_signal). This is a shot int he dark but can you try "nm libpd.a" from the .../pd/libpd directory? I get this:
sp@bang:~/pd/libpd$ nm libpd.a |grep s_sig 00000000000000a0 D s_signal
I get the following:
U s_signal U s_signal U s_signal U s_signal
so I guess the symbol is missing. I tried deleting everything in the libpd directory (apart from the Makefile, README and the test_libpd directory) and to re-build it with
|make MORECFLAGS=-DVST_CLEANSER MORESRC=[...path-to...]/PureVST/source/vst_cleanser.c|
but the result is the same
... so libpd.a is defining the (apparently missing) symbol. If yours is missing, then somehow the libpd.a build missed including vst_cleanser.c from the pureVST source. But if yours is present like mine is (which I expect you to find) then something about the linker command is funny. You could then run "cmake --build . --verbose" so that we could both look at how the linker is getting invoked on our respective systems.
Meanwihle... in trying to recompile everything from scratch I now get a problem further down the line (a segfault trying to run Steinberg's 'validator'.) I had to start all over and add -DSMTG_RUN_VST_VALIDATOR=FALSE to the cmake command - then, unexpectedly, I was able to load the plugin under ardour and all seemed fine. But something seems to be pretty fragile here :)
Miller
On 5/30/25 3:16 PM, Alexandros Drymonitis wrote:
Replying to list. I went a bit further, but got an error with
cmake --build .
after the selftests were run successfully. Here's the error:[ 91%] Built target validator [ 91%] Generating VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/test-patch.pd to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd [ 91%] Generating VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png [ 92%] Generating VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png [ 92%] Generating VST3/Release/PureVST.vst3/Contents/Resources/background.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/background.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/background.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/onoff_button.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/pdeditor.uidesc to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_background.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png [ 94%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle_2.0x.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png [ 94%] Building CXX object CMakeFiles/PureVST.dir/source/pdprocessor.cpp.o [ 94%] Building CXX object CMakeFiles/PureVST.dir/source/pdcontroller.cpp.o [ 95%] Building CXX object CMakeFiles/PureVST.dir/source/pdentry.cpp.o [ 95%] Building CXX object CMakeFiles/PureVST.dir/home/alex/Applications/vst3sdk/public.sdk/source/main/linuxmain.cpp.o [ 95%] Linking CXX shared module VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so dlopen failed. /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so: undefined symbol: s_signalgmake[2]: *** [CMakeFiles/PureVST.dir/build.make:207: VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so] Error 1 gmake[2]: *** Deleting file 'VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so' gmake[1]: *** [CMakeFiles/Makefile2:389: CMakeFiles/PureVST.dir/all] Error 2 gmake: *** [Makefile:91: all] Error 2
On 5/30/25 12:30, Miller Puckette wrote:
I think you're almost there but now I'm goint to revise the README to be more explicit. From the (empty) build directory I type this:
SRC=[...path-to...]/purevst
cmake -DCMAKE_BUILD_TYPE=Release -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC
(all on one line) and then this:
cmake --build .
It could be that as you looked at the README you saw the 'cmake -DCMAKE_BUILD_TYPE=Release...' command broken into two lines - I should find a way to prevent that from happening :)
Miller
On 5/30/25 9:57 AM, Alexandros Drymonitis wrote: > OK, I downloaded PureVST (sorry, had to figure this out earlier) > and unpacked it. I created a build directory and changed to > that. I also corrected the paths to the VST3 SDK and Pd's source > (well, Pd's directory that includes the src/ directory, not the > actual src/ directory; that's what I got I should do from the > CMakeLists.txt file) and I run: > >
cmake -DCMAKE_BUILD_TYPE=Release
> > but I got the following error: > >> CMake Warning: > No source or binary directory provided. Both will be assumed > to be the > same as the current working directory, but note that this > warning will > become a fatal error in future CMake releases. > > > CMake Error: The source directory > "/home/alex/Applications/puredata/PureVST-0.5/build" does not > appear to contain CMakeLists.txt. > Specify --help for usage, or press the help button on the CMake > GUI. >
> > Perhaps something is missing in the command, like a double dot? > I know nothing about CMake, so this could be rather trivial... > > On 5/30/25 10:22, Miller Puckette via Pd-list wrote: >> Hmm... the directions could have been clearer, sorry.... >> >> vst_cleanser.c is in the pureVTS source, not in the Pd source. >> If you've downloaded and unpacked the PureVST source tarball it >> should be just "purevst/source/vst_cleanser.c". And yes, no >> trailing period (I think my markdown-to-html converter remove >> the space I had put between the filename and the period). >> >> and yes, 'wherever the sources landed" refers to the pureVST >> source (currently >> https://msp.ucsd.edu/tools/purevst/PureVST-0.5.src.tgz ) whic >> need dwonloading and unpacking before even making this version >> of libpd. >> >> cheers >> Miller >> >> >> On 5/30/25 8:39 AM, Alexandros Drymonitis wrote: >>> >>> I'm trying to compile pureVST from source on Debian 12. I >>> built the VST SDK and following pureVST's README, I've gone up >>> to the following stepmake MORECFLAGS=-DVST_CLEANSER
insinde >>> the libpd directory. >>> >>> I don't quite understand the following steps. Right after >>> this, the README reads that I should type >>>MORESRC=../../work/vst/purevst/source/vst_cleanser.c.
>>> >>> Being inside the libpd directory, where will the two parent >>> directories lead me, since the path starts with ../../? Also, >>> where is thiswork
directory supposed to be? Orvst
and >>>purevst
? Are these directories Miller created in his system? >>> >>> I did afind . -name vst_cleanser.c
from my home directory >>> and found nothing (BTW, is the dot at the end supposed to be >>> there?). >>> >>> Then the instructions follow like this: >>> >>>>>> >>> Then using the PureVST source tree, consult the CMakeLists.txt >>> file and correct the path settings for the VST SDK and for the >>> Pd source. Then make an empty build directory, and using a >>> shell or terminal window, change directory to the build >>> directory and try to get these to work in sequence: >>> >>> |SRC=~/work/vst/purevst| >>> >>> [… or wherever the sources landed] >>> >>> |cmake -DCMAKE_BUILD_TYPE=Release >>> -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE >>> -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC| >>> >>> |cmake --build .| >>> >>>
>>> >>> It mentions "or wherever the sources landed". Which sources? >>> After building libpd? And in which directory should all the >>> cmake command be executed? >>> >>> >>> --- >>> pd-list@lists.iem.at - the Pure Data mailinglist >>> https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis... >>> >>> >>> To unsubscribe send an email to pd-list-leave@lists.iem.at >>> mailing list >>> UNSUBSCRIBE and account-management -> >>> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!DFen_RjYHJNb45m... >> >> >> --- >> pd-list@lists.iem.at - the Pure Data mailinglist >> https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis... >> >> >> To unsubscribe send an email to pd-list-leave@lists.iem.at >> mailing list >> UNSUBSCRIBE and account-management -> >> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-... > > > > > > --- > pd-list@lists.iem.at - the Pure Data mailinglist > https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis... > > To unsubscribe send an email to pd-list-leave@lists.iem.at > mailing list > UNSUBSCRIBE and account-management -> > https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-...
pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!H13gOLNhjW0b3yI...
pd-list@lists.iem.at - the Pure Data mailinglist https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/ONACOAA2TP... https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/ONACOAA2TPVCFNFLSXB6TSZA7QH5KZE6/__;!!Mih3wA!B0Ztb3bKDXO49q0TIoFj6vE-WyzQvxFsliQ5bnHnzTgpIcqU6lpaq_BJiVj8U7BvIcF2vqWhrBw5zlI$
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.iem.at/ https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!B0Ztb3bKDXO49q0TIoFj6vE-WyzQvxFsliQ5bnHnzTgpIcqU6lpaq_BJiVj8U7BvIcF2vqWhNZG5x6o$
Dan Wilcox danomatika.com https://urldefense.com/v3/__http://danomatika.com__;!!Mih3wA!B0Ztb3bKDXO49q0TIoFj6vE-WyzQvxFsliQ5bnHnzTgpIcqU6lpaq_BJiVj8U7BvIcF2vqWhG_UmnDY$ robotcowboy.com https://urldefense.com/v3/__http://robotcowboy.com__;!!Mih3wA!B0Ztb3bKDXO49q0TIoFj6vE-WyzQvxFsliQ5bnHnzTgpIcqU6lpaq_BJiVj8U7BvIcF2vqWhZFq3JbU$
On 6/1/25 10:14, Miller Puckette wrote:
I think that must be exactly what's going on. I never use the automake system (it's far too complicated for me to understand) and so I don't end up confusing the libpd build. So yes, as Dan says, or alternatively just get a clean copy of the Pd source and build libpd in it using only the Makefile in the libpd directory. I'll update the pureVST README accordingly :)
Miller
On 5/31/25 9:32 PM, Dan Wilcox wrote:
Maybe my comment was a red herring, but to explain: I have run into the issue on my own system (and by an issue or two others have posted), that if you build desktop pd, at least using the auto tools build, the generated .o files will not contain the multi instance stuff. If you later build libpd within the libpd directory, the makefile there will reuse the existing .o files even though it's trying to build with PDINSTANCE set, which can lead to link issues. The way forward is to clean the main dir before building libpd itself to be sure.
I downloaded Pd's source and built libpd only (I have already built Pd) and the whole process worked! Is what I'm looking for the PureVST.so file? When I set the path to this file in Reaper's or Ardour's VST search paths I do get a PureVST-0.5(msp)(20 ch) plugin, but it's a window with 20 sliders. There's an "open" button for Pd's gui, but clicking on it just freezes both software (Reaper or Ardour) whether the track where I set the plugin plays or not.
I've read that Reaper has some issues with this, not sure if it's this one. Are we supposed to be able to patch within the plugin like it is with plugdata? If not, what do these sliders do?
Thanks for the help so far.
It sounds like pureVST is loading (hence the sliders and the 20 channels) but that it isn't finding its way to the GUI, which it borrows from an installed Pd application. The plug-in searches in ~/pd and in /usr/lib/pd (which I think is the normal place that the automake stuff puts it) - or more specifically, it needs to find TCL files as ~/pd/tcl/pd-gui.tcl (etc) or as /usr/lib/pd/tcl/pd-gui.tcl etc. Next on my own dolist is to search for derivative filenames such as "pd-0.55-2" etc.
OTOH it shouldn't freeze if it can't find them... that's something for me to try to fix.
cheers Miller
On 6/1/25 9:43 AM, Alexandros Drymonitis wrote:
On 6/1/25 10:14, Miller Puckette wrote:
I think that must be exactly what's going on. I never use the automake system (it's far too complicated for me to understand) and so I don't end up confusing the libpd build. So yes, as Dan says, or alternatively just get a clean copy of the Pd source and build libpd in it using only the Makefile in the libpd directory. I'll update the pureVST README accordingly :)
Miller
On 5/31/25 9:32 PM, Dan Wilcox wrote:
Maybe my comment was a red herring, but to explain: I have run into the issue on my own system (and by an issue or two others have posted), that if you build desktop pd, at least using the auto tools build, the generated .o files will not contain the multi instance stuff. If you later build libpd within the libpd directory, the makefile there will reuse the existing .o files even though it's trying to build with PDINSTANCE set, which can lead to link issues. The way forward is to clean the main dir before building libpd itself to be sure.
I downloaded Pd's source and built libpd only (I have already built Pd) and the whole process worked! Is what I'm looking for the PureVST.so file? When I set the path to this file in Reaper's or Ardour's VST search paths I do get a PureVST-0.5(msp)(20 ch) plugin, but it's a window with 20 sliders. There's an "open" button for Pd's gui, but clicking on it just freezes both software (Reaper or Ardour) whether the track where I set the plugin plays or not.
I've read that Reaper has some issues with this, not sure if it's this one. Are we supposed to be able to patch within the plugin like it is with plugdata? If not, what do these sliders do?
Thanks for the help so far.
On 6/1/25 11:53, Miller Puckette wrote:
It sounds like pureVST is loading (hence the sliders and the 20 channels) but that it isn't finding its way to the GUI, which it borrows from an installed Pd application. The plug-in searches in ~/pd and in /usr/lib/pd (which I think is the normal place that the automake stuff puts it) - or more specifically, it needs to find TCL files as ~/pd/tcl/pd-gui.tcl (etc) or as /usr/lib/pd/tcl/pd-gui.tcl etc. Next on my own dolist is to search for derivative filenames such as "pd-0.55-2" etc.
I've built Pd from source so all these files are in /usr/local/ on my computer. Is there to force PureVST to look there? I also built the new source I downloaded where I built libpd prior to building Pd, but still no luck.
So I guess the tcl files are in /usr/local/puredata/tcl/ ? In this case, you could just make a symbolic link to your home directory:
ln -s /usr/local/puredata ~/pd
(this will clutter your home directory; I need to make /usr/local/puredata be one of the places pureVST searches by default. I also just learned that on Debian pd seems to live in /usr/lib/puredata and not /usr/lib/pd as I had assumed.
Alternatively, you could just go change "/usr/lib/pd" to /usr/local/puredata in the pureVST source and remake - but I imagine it's sompler for now to just make the symbolic link.
cheers Miller
On 6/2/25 3:51 PM, Alexandros Drymonitis wrote:
On 6/1/25 11:53, Miller Puckette wrote:
It sounds like pureVST is loading (hence the sliders and the 20 channels) but that it isn't finding its way to the GUI, which it borrows from an installed Pd application. The plug-in searches in ~/pd and in /usr/lib/pd (which I think is the normal place that the automake stuff puts it) - or more specifically, it needs to find TCL files as ~/pd/tcl/pd-gui.tcl (etc) or as /usr/lib/pd/tcl/pd-gui.tcl etc. Next on my own dolist is to search for derivative filenames such as "pd-0.55-2" etc.
I've built Pd from source so all these files are in /usr/local/ on my computer. Is there to force PureVST to look there? I also built the new source I downloaded where I built libpd prior to building Pd, but still no luck.
Success! I created a ~/pd/ directory and created the symbolic link as you said and it works! Now, what do these twenty sliders do?
On 6/2/25 16:59, Miller Puckette via Pd-list wrote:
So I guess the tcl files are in /usr/local/puredata/tcl/ ? In this case, you could just make a symbolic link to your home directory:
ln -s /usr/local/puredata ~/pd
(this will clutter your home directory; I need to make /usr/local/puredata be one of the places pureVST searches by default. I also just learned that on Debian pd seems to live in /usr/lib/puredata and not /usr/lib/pd as I had assumed.
Alternatively, you could just go change "/usr/lib/pd" to /usr/local/puredata in the pureVST source and remake - but I imagine it's sompler for now to just make the symbolic link.
cheers Miller
On 6/2/25 3:51 PM, Alexandros Drymonitis wrote:
On 6/1/25 11:53, Miller Puckette wrote:
It sounds like pureVST is loading (hence the sliders and the 20 channels) but that it isn't finding its way to the GUI, which it borrows from an installed Pd application. The plug-in searches in ~/pd and in /usr/lib/pd (which I think is the normal place that the automake stuff puts it) - or more specifically, it needs to find TCL files as ~/pd/tcl/pd-gui.tcl (etc) or as /usr/lib/pd/tcl/pd-gui.tcl etc. Next on my own dolist is to search for derivative filenames such as "pd-0.55-2" etc.
I've built Pd from source so all these files are in /usr/local/ on my computer. Is there to force PureVST to look there? I also built the new source I downloaded where I built libpd prior to building Pd, but still no luck.
pd-list@lists.iem.at - the Pure Data mailinglist https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/3TO5OL6XLR...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.iem.at/
It sure looks like |vst_cleanser.o never made it into libpd, despite the extra arg to the makefile... perhaps because the Makefile isn't recent enough (in which case you won't see the string MORESRC in the Makefile in [...]/libpd ). You can get the very latest this way: git clone git@github.com:pure-data/pure-data.git (or if you don't want to deal with git, just point your browser there and look under the code button for a zip archive.) BUT... I still don't know why libpd.a is showing s_signal undefined - all the sources should be compiled with PDINSTANCE in which case s_signal isn't referenced anywhere. If some of those object files are looking for s_signal Iwould expect pureVST to crash when a patch gets loaded. You'll get a lot of output but if you try "nm *.o" and fish for s_signal you might find the offending object files. I have no idea how they could be getting compiled that way. thanks Miller | On 5/31/25 4:15 PM, Alexandros Drymonitis wrote:
On 5/31/25 14:50, Miller Puckette wrote:
I've been trying to figure out how that could happen without success. libpd should be defining the missing symbol (s_signal). This is a shot int he dark but can you try "nm libpd.a" from the .../pd/libpd directory? I get this:
sp@bang:~/pd/libpd$ nm libpd.a |grep s_sig 00000000000000a0 D s_signal
I get the following:
U s_signal U s_signal U s_signal U s_signal
so I guess the symbol is missing. I tried deleting everything in the libpd directory (apart from the Makefile, README and the test_libpd directory) and to re-build it with
|make MORECFLAGS=-DVST_CLEANSER MORESRC=[...path-to...]/PureVST/source/vst_cleanser.c|
but the result is the same
... so libpd.a is defining the (apparently missing) symbol. If yours is missing, then somehow the libpd.a build missed including vst_cleanser.c from the pureVST source. But if yours is present like mine is (which I expect you to find) then something about the linker command is funny. You could then run "cmake --build . --verbose" so that we could both look at how the linker is getting invoked on our respective systems.
Meanwihle... in trying to recompile everything from scratch I now get a problem further down the line (a segfault trying to run Steinberg's 'validator'.) I had to start all over and add -DSMTG_RUN_VST_VALIDATOR=FALSE to the cmake command - then, unexpectedly, I was able to load the plugin under ardour and all seemed fine. But something seems to be pretty fragile here :)
Miller
On 5/30/25 3:16 PM, Alexandros Drymonitis wrote:
Replying to list. I went a bit further, but got an error with
cmake --build .
after the selftests were run successfully. Here's the error:[ 91%] Built target validator [ 91%] Generating VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/test-patch.pd to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd [ 91%] Generating VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png [ 92%] Generating VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png [ 92%] Generating VST3/Release/PureVST.vst3/Contents/Resources/background.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/background.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/background.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/onoff_button.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/pdeditor.uidesc to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_background.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png [ 93%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png [ 94%] Generating VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png [SMTG] Copied /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle_2.0x.png to /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png [ 94%] Building CXX object CMakeFiles/PureVST.dir/source/pdprocessor.cpp.o [ 94%] Building CXX object CMakeFiles/PureVST.dir/source/pdcontroller.cpp.o [ 95%] Building CXX object CMakeFiles/PureVST.dir/source/pdentry.cpp.o [ 95%] Building CXX object CMakeFiles/PureVST.dir/home/alex/Applications/vst3sdk/public.sdk/source/main/linuxmain.cpp.o [ 95%] Linking CXX shared module VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so dlopen failed. /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so: undefined symbol: s_signalgmake[2]: *** [CMakeFiles/PureVST.dir/build.make:207: VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so] Error 1 gmake[2]: *** Deleting file 'VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so' gmake[1]: *** [CMakeFiles/Makefile2:389: CMakeFiles/PureVST.dir/all] Error 2 gmake: *** [Makefile:91: all] Error 2
On 5/30/25 12:30, Miller Puckette wrote:
I think you're almost there but now I'm goint to revise the README to be more explicit. From the (empty) build directory I type this:
SRC=[...path-to...]/purevst
cmake -DCMAKE_BUILD_TYPE=Release -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC
(all on one line) and then this:
cmake --build .
It could be that as you looked at the README you saw the 'cmake -DCMAKE_BUILD_TYPE=Release...' command broken into two lines - I should find a way to prevent that from happening :)
Miller
On 5/30/25 9:57 AM, Alexandros Drymonitis wrote:
OK, I downloaded PureVST (sorry, had to figure this out earlier) and unpacked it. I created a build directory and changed to that. I also corrected the paths to the VST3 SDK and Pd's source (well, Pd's directory that includes the src/ directory, not the actual src/ directory; that's what I got I should do from the CMakeLists.txt file) and I run:
cmake -DCMAKE_BUILD_TYPE=Release
but I got the following error:
CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases. CMake Error: The source directory "/home/alex/Applications/puredata/PureVST-0.5/build" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI.
Perhaps something is missing in the command, like a double dot? I know nothing about CMake, so this could be rather trivial...
On 5/30/25 10:22, Miller Puckette via Pd-list wrote:
Hmm... the directions could have been clearer, sorry....
vst_cleanser.c is in the pureVTS source, not in the Pd source. If you've downloaded and unpacked the PureVST source tarball it should be just "purevst/source/vst_cleanser.c". And yes, no trailing period (I think my markdown-to-html converter remove the space I had put between the filename and the period).
and yes, 'wherever the sources landed" refers to the pureVST source (currently https://msp.ucsd.edu/tools/purevst/PureVST-0.5.src.tgz ) whic need dwonloading and unpacking before even making this version of libpd.
cheers Miller
On 5/30/25 8:39 AM, Alexandros Drymonitis wrote: > > I'm trying to compile pureVST from source on Debian 12. I built > the VST SDK and following pureVST's README, I've gone up to the > following step
make MORECFLAGS=-DVST_CLEANSER
insinde the > libpd directory. > > I don't quite understand the following steps. Right after this, > the README reads that I should type >MORESRC=../../work/vst/purevst/source/vst_cleanser.c.
> > Being inside the libpd directory, where will the two parent > directories lead me, since the path starts with ../../? Also, > where is thiswork
directory supposed to be? Orvst
and >purevst
? Are these directories Miller created in his system? > > I did afind . -name vst_cleanser.c
from my home directory and > found nothing (BTW, is the dot at the end supposed to be there?). > > Then the instructions follow like this: > >> > Then using the PureVST source tree, consult the CMakeLists.txt > file and correct the path settings for the VST SDK and for the > Pd source. Then make an empty build directory, and using a shell > or terminal window, change directory to the build directory and > try to get these to work in sequence: > > |SRC=~/work/vst/purevst| > > [… or wherever the sources landed] > > |cmake -DCMAKE_BUILD_TYPE=Release > -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE > -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC| > > |cmake --build .| > >
> > It mentions "or wherever the sources landed". Which sources? > After building libpd? And in which directory should all the > cmake command be executed? > > > --- > pd-list@lists.iem.at - the Pure Data mailinglist > https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis... > > > To unsubscribe send an email to pd-list-leave@lists.iem.at > mailing list > UNSUBSCRIBE and account-management -> > https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!DFen_RjYHJNb45m...
pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-...
pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-...
pd-list@lists.iem.at - the Pure Data mailinglist https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lis...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!H13gOLNhjW0b3yI...