Personal tools
You are here: Home downloads Gem Documentation Manual Ye olde Gem Manual Writing new objects
Document Actions

9. Writing new objects

Up one level
Gem can be extended just like Pd...
Writing new objects

Creating new GEM objects

Look at the source code :-)  GEM is written in C++, which means that you have to jump through some hopes to interact properly with Pd, which is written in C.  If you look in Base/CPPExtern.h, you will see a collection of macros which you can use to help you create new objects.  Use one of the GEM objects which is closest to what you want to do as a template.

One problem on will need to

setenv LD_LIBRARY_PATH "/where/ever/pd/gem"

so that rld (the run-time linker) can find the GEM dso.  Because you are linking with GEM, Pd isn't involved with the run time linking process; it is all done when Pd calls dlopen.

On NT, there is much the same problem...

set your PATH environment variable to \where\ever\pd\gem


make sure that your new .dll is located in the same directory where GEM is.

On NT, all of the classes and functions are exported through declexport/declimport.  You shouldn't have to do anything to call the functions.  I have not had any problems making other dll's which are loaded into Pd at runtime.  You need to make certain that you are exporting the correct functions.  If your dll cannot find the gem.dll, then it will silently fail.

And of course, e-mail IOhannes m zmölnig ( if you have any problems, questions, or solutions


by IOhannes m zmoelnig last modified 2007-07-03 07:06 PM

Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser