aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/readme.txt
blob: 14569af40769ca9a94776d2d4240b52fa8c1ea1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
flext - C++ layer for Max/MSP and pd (pure data) externals

Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net)
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "license.txt," in this distribution.  

This package seeks to encourage the development of open source software
for the pd and Max/MSP platforms.

Donations for further development of the package are highly appreciated.
Visit https://www.paypal.com/xclick/business=t.grill%40gmx.net&item_name=flext&no_note=1&tax=0&currency_code=EUR

----------------------------------------------------------------------------

o for PD you need the pd source code (which is most likely part of the distribution)
  download from: http://www-crca.ucsd.edu/~msp/software.html

o for Max/MSP you will also need the Max/MSP SDK for OS9 (http://www.cycling74.com/products/dlmaxmsp.html) 
  or OSX (http://www.cycling74.com/products/dlxmax.html)
  and for threading the Multiprocessing library (download at http://developer.apple.com/sdk/)

o if you choose to compile with SndObj support you will need the respective library
  download from: http://www.may.ie/academic/music/musictec/SndObj/main.html

o if you choose to compile with STK support you will need the respective package and build a library
  download from: http://ccrma-www.stanford.edu/software/stk/
  For linking it may preferable to use a library of all the STK objects.
  Under linux you can create one from the STK directory with something like
  "g++ -c -pipe -I include -D __LINUX_OSS__ src/*.cpp && ar r libstk.a *.o && rm -f *.o"

----------------------------------------------------------------------------


BUILDING & INSTALLING:
======================


pd - Windows:
-------------
o Microsoft Visual C++ 6 or 7: 
	edit "config-pd-msvc.txt"
	start a dos-shell (cmd.exe) and set the compiler environment (vcvars32.bat)
	run "build-pd-msvc.bat" 

o Borland C++ 5.5 (free): 
	edit "config-pd-bcc.txt"
	run "build-pd-bcc.bat" 

o Cygwin: edit "config-pd-cygwin.txt" & run "sh build-pd-cygwin.sh" 
	additional settings (e.g. target processor, compiler flags) can be made in makefile.pd-cygwin


With your project using flext, be sure to define "FLEXT_SYS=2".


pd - linux:
-----------
o GCC,ICC: edit "config-pd-linux.txt" & run "sh build-pd-linux.sh" 
	additional settings (e.g. target processor, compiler flags) can be made in makefile.pd-linux

Several variations of the flext library will be built: release and debug version of single-threaded and multi-threaded static libraries and of a multi-threaded shared library, respectively.
These will be installed into the flext directory given in config-pd-linux.txt. For the shared libraries to be found, be sure to specify the flext folder in the /etc/ld.so.conf.


With your project using flext, be sure to define "FLEXT_SYS=2".


pd - MacOSX:
-----------
o GCC: edit "config-pd-darwin.txt" & run "sh build-pd-darwin.sh" 
	additional settings (e.g. target processor, compiler flags) can be made in makefile.pd-darwin


With your project using flext, be sure to define "FLEXT_SYS=2".


Max/MSP - Windows:
------------------
o Microsoft Visual C++ 6 or 7: edit "config-max-msvc.txt" & run "build-max-msvc.bat" 


With your project using flext, be sure to define "FLEXT_SYS=1".


Max/MSP - MacOS 9:
------------------
o Metrowerks CodeWarrior: edit & use the "flext.cw" project file

You must have the following "Source Trees" (CW preferences, not project specific!) defined:
"flext" - Pointing to the flext main directory
"Cycling74" - Pointing to the Cycling 74 SDK
"MP SDK" - Pointing to the Multiprocessing SDK (for threading support)


With your project using flext, be sure to define "FLEXT_SYS=1" 
- alternatively use the prefix file "flcwmax.h" or "flcwmax-thr.h" for threading support.


Max/MSP - MacOSX:
------------------
o Metrowerks CodeWarrior: edit & use the "flext.cw" project file

You must have the following "Source Trees" (CW preferences, not project specific!) defined:
"OS X Volume" - Pointing to your OSX boot drive
"flext" - Pointing to the flext main directory
"Cycling74 OSX" - Pointing to the Cycling 74 SDK for xmax
"MP SDK" - Pointing to the Multiprocessing SDK (for threading support)


With your project using flext, be sure to define "FLEXT_SYS=1" 
- alternatively use the prefix file "flcwmax-x.h" or "flcwmax-x-thr.h" for threading support.


----------------------------------------------------------------------------

Goals/features of the package:

pros:
- better readability of code compared to straight C externals
- faster development, more robust coding
- sharing of common methods and data by using base classes
- any input to any inlet (with the exception of signal streams)
- transparent use of threads for methods
- libraries of externals in MaxMSP
- more than 3 typed creation arguments possible for MaxMSP

cons:
- introduces a small overhead to speed of message handling 
- overhead in object size (due to possibly unneeded code)

see flext.h, fldefs.h and flclass.h for the documented base definitions and classes