Writing new objects
Author: Mark Danks

## 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 SGI...you 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

or

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 (zmoelnig@iem.at) if you have any problems, questions, or solutions

[return]