[PD-cvs] externals/grill/flext notes.txt,NONE,1.1 NEWS,1.2,1.3 build.txt,1.1,1.2 changes.txt,1.67,1.68 configure.ac,1.3,1.4 readme.txt,1.48,1.49
Thomas Grill
xovo at users.sourceforge.net
Thu Jan 6 05:59:07 CET 2005
Update of /cvsroot/pure-data/externals/grill/flext
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2605
Modified Files:
NEWS build.txt changes.txt configure.ac readme.txt
Added Files:
notes.txt
Log Message:
build system for flext-based externals
reconsidered flext::buffer:Update
improved buffer handling
added object construction and destruction flags
updated autoconf system
updated documentation
updated build system
--- NEW FILE: notes.txt ---
flext - C++ layer for Max/MSP and pd (pure data) externals
Copyright (c) 2001-2005 Thomas Grill (gr at 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
Index: configure.ac
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/configure.ac,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** configure.ac 5 Jan 2005 05:04:07 -0000 1.3
--- configure.ac 6 Jan 2005 04:59:04 -0000 1.4
***************
*** 8,12 ****
AC_INIT([flext],[0.5.0],[gr at grrrr.org],[flext])
! AM_INIT_AUTOMAKE(1.8)
--- 8,12 ----
AC_INIT([flext],[0.5.0],[gr at grrrr.org],[flext])
! AM_INIT_AUTOMAKE(1.6)
***************
*** 71,78 ****
AC_DEFINE(FLEXT_USE_SIMD);;
G5 | G4)
! OPT_FLAGS="-mtune=$enableval -march=$enableval -maltivec -faltivec -malign-natural";
AC_DEFINE(FLEXT_USE_SIMD);;
G3)
! OPT_FLAGS="-mtune=$enableval -march=$enableval -malign-natural";;
*)
;;
--- 71,78 ----
AC_DEFINE(FLEXT_USE_SIMD);;
G5 | G4)
! OPT_FLAGS="-mtune=$enableval --maltivec -faltivec -malign-natural";
AC_DEFINE(FLEXT_USE_SIMD);;
G3)
! OPT_FLAGS="-mtune=$enableval --malign-natural";;
*)
;;
***************
*** 102,106 ****
if test `uname -s` == Linux; then
! DYNAMIC_LDFLAGS="-Wl,-Bdynamic"
EXTENSION=pd_linux
SOEXT=so
--- 102,106 ----
if test `uname -s` == Linux; then
! DYNAMIC_LDFLAGS="-Wl,-Bdynamic -shared"
EXTENSION=pd_linux
SOEXT=so
***************
*** 108,120 ****
if test `uname -s` == Darwin; then
! DYNAMIC_LDFLAGS = "-version-info $API_VERSION -release $AC_PACKAGE_VERSION -dylib -dynamic -flat_namespace -undefined suppress"
! if test $system = max; then
! echo "what's the name in max???" #EXEEXT = ???
else
EXTENSION=pd_darwin
- SOEXT=dylib
- FRAMEWORKS=???
fi
fi
--- 108,122 ----
if test `uname -s` == Darwin; then
! # DYNAMIC_LDFLAGS="-version-info $API_VERSION -release $AC_PACKAGE_VERSION -dynamiclib -dynamic -flat_namespace -undefined suppress"
! DYNAMIC_LDFLAGS="-dynamiclib -dynamic -flat_namespace -undefined suppress"
! if test $system == max; then
! EXTENSION=mxo
else
EXTENSION=pd_darwin
fi
+
+ SOEXT=dylib
+ FRAMEWORKS="ApplicationServices vecLib"
fi
***************
*** 156,157 ****
--- 158,160 ----
tutorial/maxmsp/Makefile
source/Makefile])
+
Index: changes.txt
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/changes.txt,v
retrieving revision 1.67
retrieving revision 1.68
diff -C2 -d -r1.67 -r1.68
*** changes.txt 5 Jan 2005 05:04:07 -0000 1.67
--- changes.txt 6 Jan 2005 04:59:04 -0000 1.68
***************
*** 5,13 ****
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.
-
----------------------------------------------------------------------------
--- 5,8 ----
***************
*** 27,30 ****
--- 22,27 ----
- flags for object construction and destruction phase (Initing() and Exiting())
- reconsidered flext::buffer::Update
+ - enhanced buffer handling
+ - support for buffer locking (flext::buffer::Lock() and Unlock()) - it's a must for Max/MSP at least
0.4.7:
***************
*** 300,364 ****
- ----------------------------------------------------------------------------
-
- 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.)
-
-
--- 297,300 ----
Index: NEWS
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/NEWS,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** NEWS 5 Jan 2005 05:04:07 -0000 1.2
--- NEWS 6 Jan 2005 04:59:04 -0000 1.3
***************
*** 1 ****
! see changes.txt
--- 1 ----
! see notes.txt and changes.txt
Index: build.txt
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/build.txt,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** build.txt 5 Jan 2005 05:04:07 -0000 1.1
--- build.txt 6 Jan 2005 04:59:04 -0000 1.2
***************
*** 142,171 ****
- Windows - Microsoft Visual Studio projects (.vcproj files)
! 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.
- 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.
- 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)
! With your project using flext use the prefix file "flcwmax.h" or,
! alternatively "flcwmax-thr.h" for threading support.
--- 142,174 ----
- Windows - Microsoft Visual Studio projects (.vcproj files)
! 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.
+ 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.
- 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)
! With your project using flext use the prefix file "flcwmax.h" or,
! alternatively "flcwmax-thr.h" for threading support.
Index: readme.txt
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/readme.txt,v
retrieving revision 1.48
retrieving revision 1.49
diff -C2 -d -r1.48 -r1.49
*** readme.txt 5 Jan 2005 05:04:07 -0000 1.48
--- readme.txt 6 Jan 2005 04:59:04 -0000 1.49
***************
*** 48,75 ****
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"
----------------------------------------------------------------------------
--- 48,75 ----
Prerequisites:
! --- 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"
----------------------------------------------------------------------------
***************
*** 77,85 ****
Building and installing of flext and flext-based externals:
! Read the build.txt document
----------------------------------------------------------------------------
History of changes:
! Read the changes.txt document
--- 77,91 ----
Building and installing of flext and flext-based externals:
! See the build.txt document
!
! ----------------------------------------------------------------------------
+ Various notes / limitations / bug list:
+
+ Read the notes.txt document
+
----------------------------------------------------------------------------
History of changes:
! Read the changes.txt document
More information about the Pd-cvs
mailing list