diff options
-rw-r--r-- | externals/grill/dyn/src/main.cpp | 4 | ||||
-rw-r--r-- | externals/grill/flext/flext.cw | bin | 454327 -> 454327 bytes | |||
-rw-r--r-- | externals/grill/flext/source/flsupport.h | 6 | ||||
-rw-r--r-- | externals/grill/flext/source/flutil.cpp | 29 | ||||
-rwxr-xr-x | externals/grill/flext/tutorial/timer1/timer1.cw | bin | 207765 -> 207765 bytes | |||
-rwxr-xr-x | externals/grill/xsample/maxmsp/xsample-objectmappings.txt | 3 | ||||
-rw-r--r-- | externals/grill/xsample/readme.txt | 461 | ||||
-rw-r--r-- | externals/grill/xsample/source/main.h | 2 | ||||
-rwxr-xr-x | externals/grill/xsample/xsample.cw | bin | 213671 -> 213671 bytes |
9 files changed, 342 insertions, 163 deletions
diff --git a/externals/grill/dyn/src/main.cpp b/externals/grill/dyn/src/main.cpp index afec7057..79af2089 100644 --- a/externals/grill/dyn/src/main.cpp +++ b/externals/grill/dyn/src/main.cpp @@ -262,7 +262,7 @@ dyn::dyn(int argc,const t_atom *argv): pxin[i] = (proxyin *)object_new(sig?pxins_class:pxin_class); pxin[i]->init(this,sig); t_binbuf *b = binbuf_new(); - binbuf_text(b,sig?"dyn-in~":"dyn-in",7); + binbuf_text(b,(char *)(sig?"dyn-in~":"dyn-in"),7); ToCanvas(&pxin[i]->obj,b,i*100,10); // place them left-to-right } @@ -272,7 +272,7 @@ dyn::dyn(int argc,const t_atom *argv): pxout[i] = (proxyout *)object_new(sig?pxouts_class:pxout_class); pxout[i]->init(this,i,sig); t_binbuf *b = binbuf_new(); - binbuf_text(b,sig?"dyn-out~":"dyn-out",8); + binbuf_text(b,(char *)(sig?"dyn-out~":"dyn-out"),8); ToCanvas(&pxout[i]->obj,b,i*100,500); // place them left-to-right } diff --git a/externals/grill/flext/flext.cw b/externals/grill/flext/flext.cw Binary files differindex e33fdf5a..89710be8 100644 --- a/externals/grill/flext/flext.cw +++ b/externals/grill/flext/flext.cw diff --git a/externals/grill/flext/source/flsupport.h b/externals/grill/flext/source/flsupport.h index 760083a8..f7e65899 100644 --- a/externals/grill/flext/source/flsupport.h +++ b/externals/grill/flext/source/flsupport.h @@ -516,10 +516,10 @@ public: */ //! Send a message to a symbol (bound to an object) - static bool Forward(const t_symbol *s,int argc,const t_atom *argv); + static bool Forward(const t_symbol *sym,const t_symbol *s,int argc,const t_atom *argv); - static bool Forward(const t_symbol *s,AtomList &args) { return Forward(s,args.Count(),args.Atoms()); } - static bool Forward(const char *s,AtomList &args) { return Forward(MakeSymbol(s),args.Count(),args.Atoms()); } + static bool Forward(const t_symbol *sym,AtomAnything &args) { return Forward(sym,args.Header(),args.Count(),args.Atoms()); } + static bool Forward(const char *sym,AtomAnything &args) { return Forward(MakeSymbol(sym),args.Header(),args.Count(),args.Atoms()); } //! @} FLEXT_S_MSG diff --git a/externals/grill/flext/source/flutil.cpp b/externals/grill/flext/source/flutil.cpp index 09c75377..be9329cd 100644 --- a/externals/grill/flext/source/flutil.cpp +++ b/externals/grill/flext/source/flutil.cpp @@ -15,27 +15,44 @@ WARRANTIES, see the file, "license.txt," in this distribution. #include "flext.h" #include <string.h> +#if FLEXT_OS == FLEXT_OS_WIN +#include <windows.h> +#endif + void flext::CopyMem(void *dst,const void *src,int bytes) { +#if FLEXT_OS == FLEXT_OS_WIN + MoveMemory(dst,src,bytes); +#elif FLEXT_OS == FLEXT_OS_MAC + BlockMoveData(src,dst,bytes); +#else memcpy(dst,src,bytes); +#endif } void flext::ZeroMem(void *dst,int bytes) { +#if FLEXT_OS == FLEXT_OS_WIN + ZeroMemory(dst,bytes); +#elif FLEXT_OS == FLEXT_OS_MAC + BlockZero(dst,bytes); +#else memset(dst,0,bytes); +#endif } -bool flext::Forward(const t_symbol *recv,int argc,const t_atom *argv) +bool flext::Forward(const t_symbol *recv,const t_symbol *s,int argc,const t_atom *argv) { - t_class **cl = (t_class **)recv->s_thing; + void *cl = recv->s_thing; if(!cl) return false; #if FLEXT_SYS == FLEXT_SYS_PD - pd_forwardmess(cl,argc,(t_atom *)argv); + pd_typedmess((t_class **)cl,(t_symbol *)s,argc,(t_atom *)argv); +#elif FLEXT_SYS == FLEXT_SYS_MAX + typedmess(recv->s_thing,(t_symbol *)s,argc,(t_atom *)argv); #else - #error Not implemented +#error Not implemented #endif - - return true; + return true; } diff --git a/externals/grill/flext/tutorial/timer1/timer1.cw b/externals/grill/flext/tutorial/timer1/timer1.cw Binary files differindex 08e05996..af4e978a 100755 --- a/externals/grill/flext/tutorial/timer1/timer1.cw +++ b/externals/grill/flext/tutorial/timer1/timer1.cw diff --git a/externals/grill/xsample/maxmsp/xsample-objectmappings.txt b/externals/grill/xsample/maxmsp/xsample-objectmappings.txt new file mode 100755 index 00000000..d11f5f92 --- /dev/null +++ b/externals/grill/xsample/maxmsp/xsample-objectmappings.txt @@ -0,0 +1,3 @@ +max objectfile xgroove~ xsample; +max objectfile xplay~ xsample; +max objectfile xrecord~ xsample; diff --git a/externals/grill/xsample/readme.txt b/externals/grill/xsample/readme.txt index 97476164..26f9b54b 100644 --- a/externals/grill/xsample/readme.txt +++ b/externals/grill/xsample/readme.txt @@ -1,151 +1,310 @@ -xsample - extended sample objects for Max/MSP and pd (pure data)
-
-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.
-
-Donations for further development of the package are highly appreciated.
-
-----------------------------------------------------------------------------
-
-IMPORTANT INFORMATION for all MaxMSP users:
-
-It is advisable to put the xsample shared library file into the "max-startup" folder. Hence it will be
-loaded at Max startup.
-
-If you want to load the xsample library on demand, create a [xsample] object in Max/MSP.
-
-----------------------------------------------------------------------------
-
-You will need the flext C++ layer for PD and Max/MSP externals to compile this.
-see http://www.parasitaere-kapazitaeten.net/ext
-
-
-Package files:
-- readme.txt: this one
-- gpl.txt,license.txt: GPL license stuff
-- main.h,main.cpp,inter.cpp,inter.ci: base class definition for all the other objects
-- record.cpp: xrecord~
-- play.cpp: xplay~
-- groove.cpp: xgroove~
-
-----------------------------------------------------------------------------
-
-The package should at least compile (and is tested) with the following compilers:
-
-pd - Windows:
--------------
-o Microsoft Visual C++ 6: edit "xsample.dsp" project file
-> due to a compiler bug the optimization using templates is not functional
-
-pd - linux:
------------
-o GCC: edit "config-pd-linux.txt" and run "sh ./build-pd-linux.sh"
-> various versions of GCC die during compile with template optimization turned on
-
-pd - OSX:
------------
-o GCC: edit "config-pd-darwin.txt" and run "sh ./build-pd-darwin.sh"
-> various versions of GCC die during compile with template optimization turned on
-
-Max/MSP - MacOS9:
-----------------
-o Metrowerks CodeWarrior: edit "xsample.cw" project file functions
-
-o Apple MPW-PR: edit & use the "flext.mpw" makefile
-
-Max/MSP - MacOSX:
-----------------
-o Metrowerks CodeWarrior: edit "xsample.cw" project file functions
-
-
-----------------------------------------------------------------------------
-
-Goals/features of the package:
-
-- portable and effective sample recording/playing objects for pd and Max/MSP
-- MSP-like groove~ object for PD
-- message- or signal-triggered recording object with mix-in capability
-- avoid the various bugs of the original MSP2 objects
-- multi-channel capability
-- live update of respective buffer/array content
-- switchable 4-point or linear interpolation for xplay~/xgroove~ object
-- cross-fading loop zone (inside or outside to loop) for xgroove~
-
-----------------------------------------------------------------------------
-
-Version history:
-
-0.3.0:
-- added resources to MaxMSP build
-- xgroove~, xrecord~: introduced a loop/end bang outlet
-- added MaxMSP buffer resize recognition
-- xgroove~: introduced a crossfading loop zone
-- adapted source for flext 0.4.1 - most methods within class scope
-- introduced attributes
-- restructured make procedures
-- corrected names of PD makefile, set help names
-- fixed scale mode bug with xgroove~
-- added validity check for buffers
-
-0.2.4:
-- according to flext 0.2.3 changed sample type to t_sample (S)
-- xrecord~: fixed mix mode bug
-- fixed argument buffer problem
-
-0.2.3:
-- using flext 0.2.2 - xsample is now a library under MaxMSP
-- cleaner gcc makefile
-- xgroove~, xrecord~: added "all" message to select entire buffer length
-- xgroove~, xplay~: revisited dsp methods, restructured the code, fixed small interpolation bugs
-- xgroove~, xplay~: added linear interpolation (message "interp 2")
-- enabled 0 output channels -> xgroove~: position output only
-- xgroove~: added bidirectional looping (message "loop 2")
-
-0.2.2:
-- using flext 0.2.0
-- xrecord~ for PD: new flext brings better graphics update behavior
-- xrecord~: recording position doesn't jump to start when recording length is reached
-- fixed bug with refresh message (min/max reset)
-- xgroove~: position (by pos message) isn't sample rounded anymore
-- reset/refresh messages readjust dsp routines to current buffer format (e.g. channel count)
-- corrected Max/MSP assist method for multi-channel
-- fixed xplay~ help method
-- changed syntax to x*~ [channels=1] [buffer] for future enhancements (MaxMSP only, warning for old syntax)
-- fixed small bug concerning startup position in xgroove~ and xrecord~
-- fixed deadly bug in xplay~ dsp code (only active with template optimization)
-
-0.2.1:
-- no leftmost float inlet for position setting - use pos method
-- changed dsp handling for flext 0.1.1 conformance
-- workarounds for buggy/incomplete compilers
-- prevent buffer warning message at patcher load (wait for loadbang)
-- fixed bug: current pos is reset when changing min or max points
-
-0.2.0:
-- first version for flext
-
----------------------------------------------------------------------------
-
-
-TODO list:
-
-general:
-
-- do a smooth (line~) mixin in xrecord~ help patch
-
-features:
-- multi-buffer handling (aka multi-channel for pd)
-- vasp handling
-- performance comparison to respective PD/Max objects
-- anti-alias filter? (possible?)
-
-- delay min/max changes when cur pos in cross-fade zone
-
-tests:
-- reconsider startup sequence of set buffer,set units,set sclmode,set pos/min/max
-
-bugs:
-- PD: problems with timed buffer redrawing (takes a lot of cpu time) - flext bug?
-- Apple MPW doesn't correctly compile template optimization
-- Max help files aren't correctly opened due to xsample objects residing in a library
+xsample - extended sample objects for Max/MSP and pd (pure data) + + + +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. + + + +Donations for further development of the package are highly appreciated. + + + +---------------------------------------------------------------------------- + + + +IMPORTANT INFORMATION for all MaxMSP users: + + + +1) For OSX it is best to put the xsample file somewhere in your Max/MSP search path and drop the file + +xsample-objectmappings.txt into the folder /Library/Application Support/Cycling '74/init . + + + +2) Otherwise (or for OS9) it is advisable to put the xsample shared library file into the "max-startup" folder. + +Hence it will be loaded at Max startup. + + + +3) If you want to load the xsample library on demand, create a [xsample] object in Max/MSP. + + + +---------------------------------------------------------------------------- + + + +You will need the flext C++ layer for PD and Max/MSP externals to compile this. + +see http://www.parasitaere-kapazitaeten.net/ext + + + + + +Package files: + +- readme.txt: this one + +- gpl.txt,license.txt: GPL license stuff + +- main.h,main.cpp,inter.cpp,inter.ci: base class definition for all the other objects + +- record.cpp: xrecord~ + +- play.cpp: xplay~ + +- groove.cpp: xgroove~ + + + +---------------------------------------------------------------------------- + + + +The package should at least compile (and is tested) with the following compilers: + + + +pd - Windows: + +------------- + +o Microsoft Visual C++ 6: edit "xsample.dsp" project file + +> due to a compiler bug the optimization using templates is not functional + + + +pd - linux: + +----------- + +o GCC: edit "config-pd-linux.txt" and run "sh ./build-pd-linux.sh" + +> various versions of GCC die during compile with template optimization turned on + + + +pd - OSX: + +----------- + +o GCC: edit "config-pd-darwin.txt" and run "sh ./build-pd-darwin.sh" + +> various versions of GCC die during compile with template optimization turned on + + + +Max/MSP - MacOS9: + +---------------- + +o Metrowerks CodeWarrior: edit "xsample.cw" project file functions + + + +o Apple MPW-PR: edit & use the "flext.mpw" makefile + + + +Max/MSP - MacOSX: + +---------------- + +o Metrowerks CodeWarrior: edit "xsample.cw" project file functions + + + + + +---------------------------------------------------------------------------- + + + +Goals/features of the package: + + + +- portable and effective sample recording/playing objects for pd and Max/MSP + +- MSP-like groove~ object for PD + +- message- or signal-triggered recording object with mix-in capability + +- avoid the various bugs of the original MSP2 objects + +- multi-channel capability + +- live update of respective buffer/array content + +- switchable 4-point or linear interpolation for xplay~/xgroove~ object + +- cross-fading loop zone (inside or outside to loop) for xgroove~ + + + +---------------------------------------------------------------------------- + + + +Version history: + + + +0.3.0: + +- added resources to MaxMSP build + +- xgroove~, xrecord~: introduced a loop/end bang outlet + +- added MaxMSP buffer resize recognition + +- xgroove~: introduced a crossfading loop zone + +- adapted source for flext 0.4.1 - most methods within class scope + +- introduced attributes + +- restructured make procedures + +- corrected names of PD makefile, set help names + +- fixed scale mode bug with xgroove~ + +- added validity check for buffers + +- Max/MSP OSX: new file xsample-objectmappings.txt fixes load of library on finding correct helpfiles! + + + +0.2.4: + +- according to flext 0.2.3 changed sample type to t_sample (S) + +- xrecord~: fixed mix mode bug + +- fixed argument buffer problem + + + +0.2.3: + +- using flext 0.2.2 - xsample is now a library under MaxMSP + +- cleaner gcc makefile + +- xgroove~, xrecord~: added "all" message to select entire buffer length + +- xgroove~, xplay~: revisited dsp methods, restructured the code, fixed small interpolation bugs + +- xgroove~, xplay~: added linear interpolation (message "interp 2") + +- enabled 0 output channels -> xgroove~: position output only + +- xgroove~: added bidirectional looping (message "loop 2") + + + +0.2.2: + +- using flext 0.2.0 + +- xrecord~ for PD: new flext brings better graphics update behavior + +- xrecord~: recording position doesn't jump to start when recording length is reached + +- fixed bug with refresh message (min/max reset) + +- xgroove~: position (by pos message) isn't sample rounded anymore + +- reset/refresh messages readjust dsp routines to current buffer format (e.g. channel count) + +- corrected Max/MSP assist method for multi-channel + +- fixed xplay~ help method + +- changed syntax to x*~ [channels=1] [buffer] for future enhancements (MaxMSP only, warning for old syntax) + +- fixed small bug concerning startup position in xgroove~ and xrecord~ + +- fixed deadly bug in xplay~ dsp code (only active with template optimization) + + + +0.2.1: + +- no leftmost float inlet for position setting - use pos method + +- changed dsp handling for flext 0.1.1 conformance + +- workarounds for buggy/incomplete compilers + +- prevent buffer warning message at patcher load (wait for loadbang) + +- fixed bug: current pos is reset when changing min or max points + + + +0.2.0: + +- first version for flext + + + +--------------------------------------------------------------------------- + + + + + +TODO list: + + + +general: + + + +- do a smooth (line~) mixin in xrecord~ help patch + + + +features: + +- multi-buffer handling (aka multi-channel for pd) + +- vasp handling + +- performance comparison to respective PD/Max objects + +- anti-alias filter? (possible?) + + + +- delay min/max changes when cur pos in cross-fade zone + + + +tests: + +- reconsider startup sequence of set buffer,set units,set sclmode,set pos/min/max + + + +bugs: + +- PD: problems with timed buffer redrawing (takes a lot of cpu time) - flext bug? + +- Apple MPW doesn't correctly compile template optimization + +- Max help files aren't correctly opened due to xsample objects residing in a library (FIXED for OSX!!!) + diff --git a/externals/grill/xsample/source/main.h b/externals/grill/xsample/source/main.h index fbbb693b..23fdca1d 100644 --- a/externals/grill/xsample/source/main.h +++ b/externals/grill/xsample/source/main.h @@ -11,7 +11,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. #ifndef __XSAMPLE_H #define __XSAMPLE_H -#define XSAMPLE_VERSION "0.3.0pre5" +#define XSAMPLE_VERSION "0.3.0pre6" #define FLEXT_ATTRIBUTES 1 diff --git a/externals/grill/xsample/xsample.cw b/externals/grill/xsample/xsample.cw Binary files differindex 88c1e049..43b02e21 100755 --- a/externals/grill/xsample/xsample.cw +++ b/externals/grill/xsample/xsample.cw |