From 57045df5fe3ec557e57dc7434ac1a07b5521bffc Mon Sep 17 00:00:00 2001
From: Guenter  Geiger <ggeiger@users.sourceforge.net>
Date: Mon, 29 Jul 2002 17:06:19 +0000
Subject: This commit was generated by cvs2svn to compensate for changes in
 r58, which included commits to RCS files with non-trunk default branches.

svn path=/trunk/; revision=59
---
 pd/doc/1.manual/x4.htm | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)
 create mode 100644 pd/doc/1.manual/x4.htm

(limited to 'pd/doc/1.manual/x4.htm')

diff --git a/pd/doc/1.manual/x4.htm b/pd/doc/1.manual/x4.htm
new file mode 100644
index 00000000..5fe5d25d
--- /dev/null
+++ b/pd/doc/1.manual/x4.htm
@@ -0,0 +1,59 @@
+<HTML>
+<HEAD>
+<TITLE>Pd Documentation</TITLE>
+</HEAD>
+<BODY bgcolor="#ffffff">
+<SMALL>
+<div style="width:6.5in; margin-left:.5in">
+
+<CENTER> <B>
+Pd Documentation chapter 4: writing Pd objects in C
+</B> </CENTER>
+<BR>
+<H5> <A href=index.htm#s4> back to table of contents </A></H5> 
+ <BR><BR>
+<P>
+
+You can write your own objects that you and others can use in their Pd
+applications.  You can write them in C or (if you're smart and brave) in C++ or
+FORTRAN. 
+
+<P> HOW EXTERNS ARE LOADED 
+
+<P> Whenever you type the name of an object
+(into an "object" text box) that Pd doesn't yet know about, Pd looks for a
+relocatable object file, named, for instance, "profile.pd_irix5".  Pd looks
+first in the directory containing the patch, then in directories in its
+"path."  Pd will then add whatever object is defined there to its "class list,"
+which is the set of all Pd classes you can use.  If all this works, Pd then
+attempts again to create the object you asked for, this time perhaps
+sucessfully.  There is no difference between an object defined this way and an
+object built into Pd.
+
+<P> Once you load a new object into Pd, it's there for the duration of your Pd
+session.  If you load another Pd document which supplies a different version of
+some Pd object, the object won't be updated.  IF you're working on a new object
+and decide to change it, you have to exit and re-enter Pd to get the change to
+take.
+
+<P> In the "externs" subdirectory of the documentation you
+can find simple examples of "externs" with their source code and test patches;
+there are many other on the web (see <a href="x1.htm#s2">section 1.2 </A>).
+
+<P> Iohannes Zmoelnig has written an excellent guide to writing externs at
+<A href="http://iem.kug.ac.at/pd/externals-HOWTO/">
+         http://iem.kug.ac.at/pd/externals-HOWTO/</A> .
+
+<P> A paper by Theo Stojanov on the subject is at:
+<A href="http://www.music.mcgill.ca/~theo/html/audio/pd_externs.pdf">
+http://www.music.mcgill.ca/~theo/html/audio/pd_externs.pdf </A> .
+
+<P> NT HINT: In NT, Pd is compiled using Visual C 6.0.  If you have VC 5.x
+your externs won't compile against Pd; you'll get an error about "disk full
+or bad DLL."  Simply recompile Pd under 5.x and the problem goes away.  Externs
+compiled under 5.x and 6.x are binary compatible; it's just the compilation
+that's sensitive.
+
+
+</BODY>
+</HTML>
-- 
cgit v1.2.1