- merge v0.01 --> Añadido fileselector - Añadidas fuentes de Gem y Pure Data - pix2jpg incluído en Gem. Archivos de construcción de Gem modificados. - Añadido fichero ompiling.txt con instrucciones de compilación
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 | |
| 
 | |
| <HTML>
 | |
|   <HEAD>
 | |
| 	 <TITLE>Pd Documentation 4</TITLE>
 | |
|     <meta http-equiv="Content-Type" content="text/html">
 | |
| 	 <link rel="stylesheet" type="text/css" href="pdmanual.css" media="screen">
 | |
|   </HEAD>
 | |
| 
 | |
| 
 | |
| <BODY>
 | |
| 
 | |
| <H2>Pd Documentation chapter 4: writing Pd objects in C</H2>
 | |
| 
 | |
| <P>
 | |
| <A href="index.htm#s4"> back to table of contents </A>
 | |
| <BR><BR>
 | |
| </P> 
 | |
| 
 | |
| <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
 | |
| successfully.  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>
 |