Hi Marc, i cc the posts to the pd-devel list... you should better ask your questions there so that others can contribute and listen.
Yes, this works. (The 15 warning are just MS noise, I assume.) But I do not understand what gensym actually does. The J.M. Zmoelnig document (http://iem.kug.ac.at/pd/externals-HOWTO/HOWTO-externals-en.html) does not say much about this particular issue. Maybe you know?
gensym registeres a symbol (given by a string) in the PD messages table or fetches it from it if it's already stored. A few often used important symbols also have static equivalents as you have seen: s_float for gensym("float"), s_signal for gensym("signal") etc.
Would you recommend flext even for those people who make externals for PD only (and not for MAX). What advantages would one have?
I use it for any external but i'm biased of course. Advantages: - more compact - use C++ features (like inheritance) - a lot of convencience functions - threading Disadvantages: - small processing and memory overhead - size of externals (this will improve shortly)
There are more points to consider, please read on in http://www.parasitaere-kapazitaeten.net/~thomas/ext/flext/flext-intro.pdf http://www.parasitaere-kapazitaeten.net/~thomas/ext/flext/flext-LAD2.pdf
I am attempting to get the first example of the flext tutorial (simple
- to compile properly on win2k VC++ 6.0.
I am receiving this error:
LNK1104: cannot open file "flext_d-pdwin.lib"
Did you build the flext library beforehand? If yes, it should reside in the flext/pd-msvc folder somewhere. You'll use have to adjust the path somewhere in the project settings of the tutorial examples, so that the library can be found.
- If you're using build-pd-msvc.bat, you should edit config-pd-msvc.txt accordingly - If you are using the VC++ project, you'll have to adjust the include and library paths.
best greetings, Thomas
I use it for any external but i'm biased of course. Advantages:
- more compact
- use C++ features (like inheritance)
- a lot of convencience functions
- threading
I second this. very nice features.
Disadvantages:
- small processing and memory overhead
- size of externals (this will improve shortly)
size of externals is not too bad in linux, especially when you link to Flext as a shared library. But, I did notice that my externals are around 72k in linux, but up to 1MB under OS X (both were dynamically linked)
however, one disadvantage I see in flext is that users of your external have to download YET ANOTHER piece of software to get yours to compile or work. Would be great if Flext was distributed with PD per default as a C++ interface.
best -august.
Disadvantages:
- small processing and memory overhead
- size of externals (this will improve shortly)
size of externals is not too bad in linux, especially when you link to Flext as a shared library. But, I did notice that my externals are around 72k in linux, but up to 1MB under OS X (both were dynamically linked)
That's really strange... and i'm wondering why the OSX externals are that big because the resulting size is more than the sum the object file sizes including the flext library. I'll have to have time to read through the OSX development docs, i guess.... probably flext should be a framework on OSX.
however, one disadvantage I see in flext is that users of your external have to download YET ANOTHER piece of software to get yours to compile or work. Would be great if Flext was distributed with PD per default as a C++ interface.
I'd certainly be glad if this were the case. However, things to sort out before are - make shared flext a standard for all platforms, including a foolproof versioning system - have a few patches to PD (already in the devel branch) included into the Miller version, namely -- array time stamping -- portable stack checking - check whether data structures can be properly handled with flext
Apart from that i think flext is quite stable
best greetings, Thomas