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 <danomat...@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
<adr...@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 this `work` directory supposed to be? Or `vst` and
`purevst`? 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@lists.iem.at/message/G6WKC35RKLRYGKG6SBU7XNVVJJMAKKZO/__;!!Mih3wA!DFen_RjYHJNb45mR5Hyg6bFkcnp_5FiD-L8x3J77DDNf8kSeESnTcAvpifvoHQuLXlMtgG3c4g$
To unsubscribe send an email to pd-list-le...@lists.iem.at
mailing list
UNSUBSCRIBE and account-management ->
https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!DFen_RjYHJNb45mR5Hyg6bFkcnp_5FiD-L8x3J77DDNf8kSeESnTcAvpifvoHQuLXlNkw1GM2g$
---
pd-list@lists.iem.at - the Pure Data mailinglist
https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/TNRUNARSDQYEJRVRR7YXBKGVMEWZ5LSK/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYm61iPow$
To unsubscribe send an email to pd-list-le...@lists.iem.at
mailing list
UNSUBSCRIBE and account-management ->
https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYH7gGC2w$
---
pd-list@lists.iem.at - the Pure Data mailinglist
https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/TIRTMUGDE6MPPDG5JDZGATYQXCP5CXVB/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYL9pcD7g$
To unsubscribe send an email to pd-list-le...@lists.iem.at
mailing list
UNSUBSCRIBE and account-management ->
https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYH7gGC2w$
---
pd-list@lists.iem.at - the Pure Data mailinglist
https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/II7K4ZFPH6QF4PYJ5MZJJ6PUSWZYBN62/__;!!Mih3wA!H13gOLNhjW0b3yIv3Mv32sdTdhORLrti5ptp8icO2d2-axGPFy0ONnZkiXgjTBRwNGWSwTaEgw$
To unsubscribe send an email to pd-list-le...@lists.iem.at mailing
list
UNSUBSCRIBE and account-management ->
https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!H13gOLNhjW0b3yIv3Mv32sdTdhORLrti5ptp8icO2d2-axGPFy0ONnZkiXgjTBRwNGXCIV33JQ$
---
pd-list@lists.iem.at - the Pure Data mailinglist
https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/ONACOAA2TPVCFNFLSXB6TSZA7QH5KZE6/
<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-le...@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$>
---
pd-list@lists.iem.at - the Pure Data mailinglist
https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/2KP7DOQ3EDXBB5AVMFBJJPQ735UC4A27/
To unsubscribe send an email to pd-list-le...@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> https://lists.iem.at/