aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2003-03-07 04:40:37 +0000
committerThomas Grill <xovo@users.sourceforge.net>2003-03-07 04:40:37 +0000
commitf237ae21678a18c8862d4e8c1f180f1d56097b17 (patch)
treecd552b2a1dca61c60f8f66f871dbc94670f738d3
parent4215d864c0baf21a4f67ed3fe44e642b84708197 (diff)
""
svn path=/trunk/; revision=455
-rw-r--r--externals/grill/dyn/src/main.cpp4
-rw-r--r--externals/grill/flext/flext.cwbin454327 -> 454327 bytes
-rw-r--r--externals/grill/flext/source/flsupport.h6
-rw-r--r--externals/grill/flext/source/flutil.cpp29
-rwxr-xr-xexternals/grill/flext/tutorial/timer1/timer1.cwbin207765 -> 207765 bytes
-rwxr-xr-xexternals/grill/xsample/maxmsp/xsample-objectmappings.txt3
-rw-r--r--externals/grill/xsample/readme.txt461
-rw-r--r--externals/grill/xsample/source/main.h2
-rwxr-xr-xexternals/grill/xsample/xsample.cwbin213671 -> 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
index e33fdf5a..89710be8 100644
--- a/externals/grill/flext/flext.cw
+++ b/externals/grill/flext/flext.cw
Binary files differ
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
index 08e05996..af4e978a 100755
--- a/externals/grill/flext/tutorial/timer1/timer1.cw
+++ b/externals/grill/flext/tutorial/timer1/timer1.cw
Binary files differ
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
index 88c1e049..43b02e21 100755
--- a/externals/grill/xsample/xsample.cw
+++ b/externals/grill/xsample/xsample.cw
Binary files differ