Commit d220187f authored by thomas's avatar thomas
Browse files

updated documentation

git-svn-id: https://svn.grrrr.org/ext/trunk@960 4d9ac71a-51e6-0310-8455-cad1006bcd31
parent eb94fdb7
see changes.txt
see notes.txt and changes.txt
......@@ -141,31 +141,34 @@ su -c "make install"
- Windows - Microsoft Visual Studio projects (.vcproj files)
Please have a look at the projects delivered with flext and flext-based externals.
Please have a look at the projects delivered with flext and flext-based externals.
- MacOSX - Apple Xcode projects (.xcode bundles)
Please have a look at the projects delivered with flext and flext-based externals.
Please have a look at the projects delivered with flext and flext-based externals.
Xcode projects often use some Source Trees (definable in the Xcode Preferences).
- Flext - the flext main folder
- PD - the PD installation
- Max SDK - the Max SDK (path ending with "c74support")
- Max Common - Max common files (normally /Library/Application\ Support/Cycling\ \'74 )
- MacOSX - Metrowerks Codewarrior (.mcp files)
You should 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 SDK for Max/MSP - the path should end with /c74support
With your project using flext use the prefix file "flcwmax-x.h" or,
alternatively "flcwmax-x-thr.h" for threading support.
You should 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 SDK for Max/MSP - the path should end with /c74support
With your project using flext use the prefix file "flcwmax-x.h" or,
alternatively "flcwmax-x-thr.h" for threading support.
- MacOS9 - Metrowerks Codewarrior (.mcp files)
You should 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)
You should 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 use the prefix file "flcwmax.h" or,
alternatively "flcwmax-thr.h" for threading support.
With your project using flext use the prefix file "flcwmax.h" or,
alternatively "flcwmax-thr.h" for threading support.
......@@ -4,11 +4,6 @@ Copyright (c) 2001-2005 Thomas Grill (gr@grrrr.org)
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.
----------------------------------------------------------------------------
Version history:
......@@ -299,66 +294,5 @@ Version history:
- heavy usage of unchanged GEM code
----------------------------------------------------------------------------
Notes:
- no support for default object arguments (A_DEFFLOAT, A_DEFSYMBOL) -> use variable argument lists instead
Platform specific:
- PD does not allow signal and message to go into the same inlet (except leftmost inlet)
Restrictions in compatibility mode:
- Max allows only 9 float/int inlets
Porting to new compilers/platforms:
- enums must be int-sized!!!
- compiler must support bool type
- an STL implementation must exist
- no need of C++ exceptions or RTTI (RTTI only for GUI objects)
BUT: some libraries could use RTTI and then need run-time type information from the library! (this is known for gcc compiles)
----------------------------------------------------------------------------
TODO list:
- optimizations for object initialization and messaging
- SIMD for gcc
bugs:
- can't use MFC libraries because of global new and delete overloadings
TEST:
- PD: problems with timed buffer redrawing (takes a lot of cpu time)
- hard thread termination upon object destruction doesn't seem to work properly -> crash
- Max rounding bug ... buffer resize could be one sample less!
- flext_dsp: Max/MSP doesn't correctly report in/out channel counts
general:
- documentation
- add log messages for debugging version
- use PD's t_float and t_int types (or comparable for 32-bit safety)
- add double handlers
- add signal in/out connection query function
- support for Max qelem style
- PD: with DSP objects all float messages to left input are currently converted to signal
there should be a way to avoid this
- flext::post and flext::error should print via a worker thread (and should be unlimited in characters)
tests:
- PD: figure out what "pointer" messages do and where they occur
- buffer resize: flext_base::buffer::Frames(): should we use buffer or system sample rate?
- check whether m_dsp gets called upon deletion of a used buffer (PD and MaxMSP may behave differently).
features:
- manage running threads individually (stop, isrunning?, priority etc.)
flext - C++ layer for Max/MSP and pd (pure data) externals
Copyright (c) 2001-2005 Thomas Grill (gr@grrrr.org)
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "license.txt," in this distribution.
----------------------------------------------------------------------------
VARIOUS NOTES:
Platform specific:
- PD does not allow signal and message to go into the same inlet (except leftmost inlet)
- PD: with DSP objects all float messages to the leftmost inlet are converted to signal
Restrictions in compatibility mode:
- Max allows only 9 float/int inlets
Porting to new compilers/platforms:
- enums must be int-sized!!!
- compiler must support bool type
- an STL implementation must exist
- C++ exceptions and RTTI must be enabled
----------------------------------------------------------------------------
KNOWN BUGS:
- can't use MFC libraries because of global new and delete overloadings
- MaxMSP Mach-O DSP externals cannot be the first externals loaded (e.g. in Max Runtime)
there must be a CFM signal external loaded beforehand!!! (Max will crash otherwise)
----------------------------------------------------------------------------
TODO LIST:
- optimizations for object initialization and messaging
- SIMD for gcc
- update documentation
- add log messages for debugging version
- use PD's t_float and t_int types (or comparable for 32-bit safety)
- add double handlers
- add signal in/out connection query function
- support for Max qelem style
- flext::post and flext::error should print via a worker thread (and should be unlimited in characters)
- manage running threads individually (stop, isrunning?, priority etc.)
----------------------------------------------------------------------------
TESTS TO DO:
- PD: problems with timed buffer redrawing (takes a lot of cpu time)
- hard thread termination upon object destruction doesn't seem to work properly -> crash
- Max rounding bug ... buffer resize could be one sample less!
- flext_dsp: Max/MSP doesn't correctly report in/out channel counts
- PD: figure out what "pointer" messages do and whether they are correctly implemented in flext
- Max buffer~ resize: flext_base::buffer::Frames(): must we use buffer or system sample rate?
- check whether m_dsp gets called upon deletion of a used buffer (PD and MaxMSP may behave differently).
-> PD does call m_dsp
......@@ -47,39 +47,45 @@ cons:
Prerequisites:
o --- PD ---
You need the pd source code which is most likely part of the distribution.
Otherwise download from: http://www-crca.ucsd.edu/~msp/software.html
o --- Max/MSP ---
You will need the latest Max/MSP SDK
for Windows (http://synthesisters.com/pluggo3/downloadMaxWinSDK.php)
for OSX (http://www.synthesisters.com/sdk/max.php)
or for OS9 (ask Cycling'74 where to find that)
For OS9 threading support you'll also need the Multiprocessing library
(download at http://developer.apple.com/sdk/)
o --- SndObj ---
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 --- STK ---
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"
--- PD ---
You need the pd source code which is most likely part of the distribution.
Otherwise download from: http://www-crca.ucsd.edu/~msp/software.html
--- Max/MSP ---
You will need the latest Max/MSP SDK
for Windows (http://synthesisters.com/pluggo3/downloadMaxWinSDK.php)
for OSX (http://www.synthesisters.com/sdk/max.php)
or for OS9 (ask Cycling'74 where to find that)
For OS9 threading support you'll also need the Multiprocessing library
(download at http://developer.apple.com/sdk/)
--- SndObj ---
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
--- STK ---
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 and installing of flext and flext-based externals:
Read the build.txt document
See the build.txt document
----------------------------------------------------------------------------
Various notes / limitations / bug list:
Read the notes.txt document
----------------------------------------------------------------------------
History of changes:
Read the changes.txt document
Read the changes.txt document
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment