From 7017ea71b842451548451125d10acd5c27086e3b Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 26 Nov 2002 22:35:57 +0000 Subject: "" svn path=/trunk/; revision=262 --- externals/grill/py/build-pd-cygwin.sh | 10 -- externals/grill/py/build-pd-darwin.sh | 11 ++ externals/grill/py/build-pd-linux.sh | 2 +- externals/grill/py/config-pd-cygwin.txt | 29 ----- externals/grill/py/config-pd-darwin.txt | 31 ++++++ externals/grill/py/config-pd-linux.txt | 8 +- externals/grill/py/config-pd-msvc.txt | 6 +- externals/grill/py/makefile.pd-darwin | 72 +++++++++++++ externals/grill/py/makefile.pd-msvc | 58 ++++++++++ externals/grill/py/pd/thread-1.pd | 94 ++++++++--------- externals/grill/py/py.mpw | 91 ---------------- externals/grill/py/readme.txt | 20 +++- externals/grill/py/scripts/threads.py | 5 +- externals/grill/py/source/bound.cpp | 2 +- externals/grill/py/source/main.cpp | 14 ++- externals/grill/py/source/main.h | 6 +- externals/grill/py/source/modmeth.cpp | 2 +- externals/grill/py/source/py.cpp | 32 +++--- externals/grill/py/source/pyext.cpp | 12 +-- externals/grill/py/source/pyext.h | 14 +-- externals/grill/xsample/MPW/MakeAliases | 1 - externals/grill/xsample/maxmsp/xgroove~.help | Bin 7310 -> 8273 bytes externals/grill/xsample/source/groove.cpp | 9 +- externals/grill/xsample/source/inter.cpp | 2 +- externals/grill/xsample/source/main.cpp | 2 +- externals/grill/xsample/source/main.h | 4 +- externals/grill/xsample/source/makefile.pd-linux | 3 +- externals/grill/xsample/source/play.cpp | 4 +- externals/grill/xsample/source/record.cpp | 12 +-- externals/grill/xsample/source/xsample.cw | Bin 105160 -> 105160 bytes externals/grill/xsample/source/xsample.dsp | 8 +- externals/grill/xsample/source/xsample.mpw | 129 ----------------------- 32 files changed, 311 insertions(+), 382 deletions(-) delete mode 100644 externals/grill/py/build-pd-cygwin.sh create mode 100755 externals/grill/py/build-pd-darwin.sh delete mode 100644 externals/grill/py/config-pd-cygwin.txt create mode 100755 externals/grill/py/config-pd-darwin.txt create mode 100755 externals/grill/py/makefile.pd-darwin create mode 100644 externals/grill/py/makefile.pd-msvc delete mode 100644 externals/grill/py/py.mpw delete mode 100755 externals/grill/xsample/MPW/MakeAliases delete mode 100644 externals/grill/xsample/source/xsample.mpw (limited to 'externals/grill') diff --git a/externals/grill/py/build-pd-cygwin.sh b/externals/grill/py/build-pd-cygwin.sh deleted file mode 100644 index 8eb7bcab..00000000 --- a/externals/grill/py/build-pd-cygwin.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -. config-pd-cygwin.txt - -make -f makefile.pd-cygwin && -{ - if [ $INSTALL = "yes" ]; then - make -f makefile.pd-cygwin install - fi -} diff --git a/externals/grill/py/build-pd-darwin.sh b/externals/grill/py/build-pd-darwin.sh new file mode 100755 index 00000000..edd03207 --- /dev/null +++ b/externals/grill/py/build-pd-darwin.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +. config-pd-darwin.txt + +make -f makefile.pd-darwin && +{ + if [ $INSTPATH != "" ]; then + echo Now install as root + sudo make -f makefile.pd-darwin install + fi +} diff --git a/externals/grill/py/build-pd-linux.sh b/externals/grill/py/build-pd-linux.sh index 90e4a04a..421cb6e1 100755 --- a/externals/grill/py/build-pd-linux.sh +++ b/externals/grill/py/build-pd-linux.sh @@ -4,7 +4,7 @@ make -f makefile.pd-linux && { - if [ $INSTALL = "yes" ]; then + if [ ${INSTPATH} != "" ]; then echo Now install as root su -c "make -f makefile.pd-linux install" fi diff --git a/externals/grill/py/config-pd-cygwin.txt b/externals/grill/py/config-pd-cygwin.txt deleted file mode 100644 index 7c7bebd8..00000000 --- a/externals/grill/py/config-pd-cygwin.txt +++ /dev/null @@ -1,29 +0,0 @@ -# py/pyext - python script objects for PD and Max/MSP -# Copyright (c) 2002 Thomas Grill (xovo@gmx.net) -# - -# where is PD? -PDPATH=/cygdrive/c/programme/audio/pd - -# where do the flext libraries reside? -FLEXTPATH=${PDPATH}/flext - -# which version of Python? -PYTHONVER=python22 - -# where are the python header files? -PYTHONINCLUDE=/cygdrive/c/programme/prog/${PYTHONVER}/include - -# what is the python library file? -PYTHONLIB=/cygdrive/c/programme/prog/${PYTHONVER}/libs/${PYTHONVER}.lib - -# where should the external(s) be built? -TARGDIR=./pd-cygwin - -# should the external be installed? (yes/no) -INSTALL=yes - -# where should the external be installed? -INSTDIR=${PDPATH}/extra - - diff --git a/externals/grill/py/config-pd-darwin.txt b/externals/grill/py/config-pd-darwin.txt new file mode 100755 index 00000000..ce0275ad --- /dev/null +++ b/externals/grill/py/config-pd-darwin.txt @@ -0,0 +1,31 @@ +# py/pyext - python script objects for PD and Max/MSP +# Copyright (c) 2002 Thomas Grill (xovo@gmx.net) +# +# your c++ compiler (normally g++) +CXX=g++ + +# where are the PD header files? +# leave it blank if it is a system directory (like /usr/local/include), +# since gcc 3.2 complains about it +PDPATH=/usr/local/pd/src + +# where is the PD executable? +PD=/usr/local/pd/bin/pd + +# where do the flext libraries reside? +FLEXTPATH=/usr/local/pd/flext + +# what is the python version? +PYTHONVER=2.2 +# where are the python header files? +PYTHONINCLUDE=/usr/include/python${PYTHONVER} +# where is the python library file? +PYTHONLIB=/Volumes/Daten/Prog/packs/Python-2.2.2 + +# where should flext libraries be built? +TARGDIR=./pd-darwin +# where should the external be installed? +# (leave blank to omit installation) +INSTPATH=/usr/local/pd/extra + + diff --git a/externals/grill/py/config-pd-linux.txt b/externals/grill/py/config-pd-linux.txt index bc63be41..e3f6ccdf 100644 --- a/externals/grill/py/config-pd-linux.txt +++ b/externals/grill/py/config-pd-linux.txt @@ -3,7 +3,7 @@ # # your c++ compiler (normally g++) -CXX=g++-3.2 +CXX=g++ # where are the PD header files? # leave it blank if it is a system directory (like /usr/local/include), @@ -23,10 +23,8 @@ PYTHONLIB=/usr/lib/python${PYTHONVER}/config # where should flext libraries be built? TARGDIR=./pd-linux -# should the flext stuff be installed? (yes/no) -INSTALL=yes - -# where should py/pyext be installed? +# where should the external be installed? +# (leave blank to omit installation) INSTPATH=/usr/local/lib/pd/extra diff --git a/externals/grill/py/config-pd-msvc.txt b/externals/grill/py/config-pd-msvc.txt index e5c4d044..3787eef1 100644 --- a/externals/grill/py/config-pd-msvc.txt +++ b/externals/grill/py/config-pd-msvc.txt @@ -9,7 +9,7 @@ PDPATH=c:\programme\audio\pd FLEXTPATH=$(PDPATH)\flext # where is MS VC++? -MSVCPATH="c:\programme\prog\microsoft visual studio\VC98" +MSVCPATH=c:\programme\prog\microsoft visual studio\VC98 # which version of Python? PYTHONVER=python22 @@ -23,8 +23,6 @@ PYTHONLIB=c:\programme\prog\$(PYTHONVER)\libs\$(PYTHONVER).lib # where should the external be built? OUTPATH=pd-msvc -# should the external be installed? (yes/no) -INSTALL=yes - # where should the external be installed? +# (leave blank to omit installation) INSTDIR=$(PDPATH)\extra diff --git a/externals/grill/py/makefile.pd-darwin b/externals/grill/py/makefile.pd-darwin new file mode 100755 index 00000000..1351d834 --- /dev/null +++ b/externals/grill/py/makefile.pd-darwin @@ -0,0 +1,72 @@ +# py/pyext - python script objects for PD and Max/MSP +# Copyright (C) 2002 Thomas Grill (xovo@gmx.net) +# +# Makefile for gcc @ darwin (OSX) +# +# usage: +# to build run "make -f makefile.pd-darwin" +# to install (as root), do "make -f makefile.pd-darwin install" +# + +CONFIG=config-pd-darwin.txt + +include ${CONFIG} + +FLEXTLIB=${FLEXTPATH}/flext_t.a + +# compiler+linker stuff +INCLUDES=${PDPATH} ${FLEXTPATH} ${PYTHONINCLUDE} +LIBPATH= ${PYTHONLIB} +FLAGS=-DPD -Dunix -DMACOSX -DFLEXT_THREADS +CFLAGS=-O6 -Wno-unused -Wno-parentheses -Wno-switch -Wstrict-prototypes # -maltivec +#CFLAGS=-g +LIBS=m python${PYTHONVER} +LDFLAGS=-bundle -bundle_loader ${PD} + +# --------------------------------------------- +# the rest can stay untouched +# ---------------------------------------------- +NAME=py + +# all the source files from the package +SRCS=main.cpp py.cpp pyext.cpp bound.cpp clmeth.cpp modmeth.cpp pyargs.cpp register.cpp +HDRS=main.h pyext.h + + +DIR=source + +TARGET=$(TARGDIR)/$(NAME).pd_darwin +MAKEFILE=makefile.pd-darwin + +# default target +all: $(TARGDIR) $(TARGET) + +$(patsubst %,$(DIR)/%,$(SRCS)): $(patsubst %,$(DIR)/%,$(HDRS)) $(FLEXTLIB) $(MAKEFILE) $(CONFIG) + touch $@ + +$(TARGDIR): + mkdir $(TARGDIR) + +$(TARGDIR)/%.o : $(DIR)/%.cpp + $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES)) $< -o $@ + +$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) $(FLEXTLIB) + $(CXX) $(LDFLAGS) $^ $(patsubst %,-L%,$(LIBPATH)) $(patsubst %,-l%,$(LIBS)) -o $@ + chmod 755 $@ + +$(INSTPATH): + mkdir $(INSTPATH) + +install:: $(INSTPATH) + +install:: $(TARGET) + cp $^ $(INSTPATH) +# chown root.root $(patsubst %,$(INSTPATH)/%,$(notdir $^)) +# chmod 755 $(patsubst %,$(INSTPATH)/%,$(notdir $^)) + +.PHONY: clean + +clean: + rm -f $(TARGDIR)/*.o $(TARGET) + + diff --git a/externals/grill/py/makefile.pd-msvc b/externals/grill/py/makefile.pd-msvc new file mode 100644 index 00000000..921a7a8d --- /dev/null +++ b/externals/grill/py/makefile.pd-msvc @@ -0,0 +1,58 @@ +# py/pyext - python script object for PD and Max/MSP +# Copyright (C) 2002 Thomas Grill (xovo@gmx.net) +# +# Makefile for MSVC++ 6 +# +# usage: +# to build run "make -f makefile.pd-msvc" +# + +!include config-pd-msvc.txt + +# includes +INCPATH=/I"$(MSVCPATH)\include" /I"$(PYTHONINCLUDE)" /I"$(PDPATH)\src" /I"$(FLEXTPATH)" +LIBPATH=/LIBPATH:"$(MSVCPATH)\lib" /LIBPATH:"$(PDPATH)\bin" /LIBPATH:"$(FLEXTPATH)" +LIBS=pd.lib pthreadVC.lib flext_t-pdwin.lib $(PYTHONLIB) + +# compiler definitions and flags +DEFS=/DPD /DNT /DFLEXT_THREADS + +CFLAGS=/GR- /GX- /GD /G6 /Ox /MT + +# the rest can stay untouched +# ---------------------------------------------- + +# all the source files from the package +SRCS= main.cpp py.cpp pyext.cpp modmeth.cpp clmeth.cpp register.cpp pyargs.cpp bound.cpp +HDRS= main.h pyext.h + +# ----------------------------------------------- + +NAME=py +DIR=source + +all: $(OUTPATH) $(OUTPATH)\$(NAME).dll + +# remove build +clean: + -del /q $(OUTPATH) > nul + -rmdir $(OUTPATH) > nul + +OBJS= $(SRCS:.cpp=.obj) + +$(OUTPATH): + -mkdir $(OUTPATH) > nul + +{$(DIR)}.cpp{}.obj: + cl /c /LD $(CFLAGS) $(DEFS) $(INCPATH) $** /Fo$(OUTPATH)\$@ + +$(OUTPATH)\$(NAME).dll: $(OBJS) + cd $(OUTPATH) + link /DLL /out:$(NAME).dll /INCREMENTAL:NO $** $(LIBS) $(LIBPATH) + @-del *.exp + @-del *.lib + cd .. +!ifdef INSTPATH + @-if not exist $(INSTPATH) mkdir $(INSTPATH) + copy $@ $(INSTPATH) > nul +!endif diff --git a/externals/grill/py/pd/thread-1.pd b/externals/grill/py/pd/thread-1.pd index 892c37ce..9a873781 100644 --- a/externals/grill/py/pd/thread-1.pd +++ b/externals/grill/py/pd/thread-1.pd @@ -1,47 +1,47 @@ -#N canvas 307 249 576 388 12; -#X msg 38 265 help; -#X msg 37 290 doc; -#X msg 73 291 doc+; -#X floatatom 145 323 5 0 0; -#X text 16 14 py/pyext - Python script objects \, (C)2002 Thomas Grill -; -#X text 14 44 This demonstrates threading. See the threads.py file. -; -#X obj 145 279 pyext threads ex1; -#X obj 140 216 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; -#X msg 140 236 detach \$1; -#X floatatom 253 324 5 0 0; -#X obj 275 123 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X obj 146 127 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X obj 146 154 t b b b; -#X obj 275 150 t b b b; -#X obj 289 179 1; -#X obj 160 181 0; -#X text 87 87 without threads; -#X text 113 105 blocking; -#X text 251 85 with threads; -#X text 252 102 non-blocking; -#X text 178 345 watch that!; -#X msg 414 127 stop; -#X text 384 106 you can even stop it; -#X connect 0 0 6 0; -#X connect 1 0 6 0; -#X connect 2 0 6 0; -#X connect 6 0 3 0; -#X connect 6 1 9 0; -#X connect 7 0 8 0; -#X connect 8 0 6 0; -#X connect 10 0 13 0; -#X connect 11 0 12 0; -#X connect 12 0 6 1; -#X connect 12 1 6 2; -#X connect 12 2 15 0; -#X connect 13 0 6 1; -#X connect 13 1 6 2; -#X connect 13 2 14 0; -#X connect 14 0 7 0; -#X connect 15 0 7 0; -#X connect 21 0 6 0; +#N canvas 440 61 586 398 12; +#X msg 38 265 help; +#X msg 37 290 doc; +#X msg 73 291 doc+; +#X floatatom 145 323 5 0 0; +#X text 16 14 py/pyext - Python script objects \, (C)2002 Thomas Grill +; +#X text 14 44 This demonstrates threading. See the threads.py file. +; +#X obj 140 216 tgl 15 0 empty empty empty 0 -6 32 8 -262144 -1 -1 0 +1; +#X msg 140 236 detach \$1; +#X floatatom 253 324 5 0 0; +#X obj 275 123 bng 15 250 50 0 empty empty empty 0 -6 32 8 -258699 +-1 -1; +#X obj 146 127 bng 15 250 50 0 empty empty empty 0 -6 32 8 -258699 +-1 -1; +#X obj 146 154 t b b b; +#X obj 275 150 t b b b; +#X obj 289 179 1; +#X obj 160 181 0; +#X text 87 87 without threads; +#X text 251 85 with threads; +#X text 252 102 non-blocking; +#X text 178 345 watch that!; +#X msg 414 127 stop; +#X text 384 106 you can even stop it; +#X text 115 102 blocking; +#X obj 145 279 pyext threads ex1; +#X connect 0 0 22 0; +#X connect 1 0 22 0; +#X connect 2 0 22 0; +#X connect 6 0 7 0; +#X connect 7 0 22 0; +#X connect 9 0 12 0; +#X connect 10 0 11 0; +#X connect 11 0 22 1; +#X connect 11 1 22 2; +#X connect 11 2 14 0; +#X connect 12 0 22 1; +#X connect 12 1 22 2; +#X connect 12 2 13 0; +#X connect 13 0 6 0; +#X connect 14 0 6 0; +#X connect 19 0 22 0; +#X connect 22 0 3 0; +#X connect 22 1 8 0; diff --git a/externals/grill/py/py.mpw b/externals/grill/py/py.mpw deleted file mode 100644 index 54c507a0..00000000 --- a/externals/grill/py/py.mpw +++ /dev/null @@ -1,91 +0,0 @@ -# py - python script object for PD and MaxMSP -# Copyright (c) 2002 Thomas Grill (xovo@gmx.net) -# -# Makefile for Apple MPW-PR -# -# usage: make -f py.mpw -# -# --------------------------------------------- - -MAKEFILE = py.mpw -€MondoBuild€ = {MAKEFILE} # Make blank to avoid rebuilds when makefile is modified - -Name = py - -ObjDir = :MPW: -MaxSDK = HD Daten:Prog Stuff:Max/MSP SDK:SDK Examples -flext = ::flext: -Python = HD Daten:Prog Stuff:Packs:Python-2.2 -PythonIncludes = {Python}:Include -PythonMacIncludes = {Python}:Mac:Include -PythonCore = HD MacOS:Applications (Mac OS 9):dev:Python 2.2:PythonCore - - - -Includes = -i :,"{flext}","{MaxSDK}:Max Includes","{MaxSDK}:MSP Includes","{GUSI}include","{PythonIncludes}","{PythonMacIncludes}" -### MPW Shell - Command "Includes" was not found. - -Defines = -d MAXMSP -d USE_GUSI2 - -Sym-PPC = -sym off -Flags = -bool on -enum int -includes unix -opt speed,unroll,unswitch - - -PPCCPlusOptions = {Includes} {Sym-PPC} {Defines} {Flags} - - -### Source Files ### - -SrcFiles = main.cpp -Headers = - - -### Object Files ### - -Obj-PPC =  - "{ObjDir}main.cpp.x" - -LibFiles-Ext =  - "{flext}MPW:flext.o"  - "{MaxSDK}:Max Includes:MaxLib"  - "{MaxSDK}:MSP Includes:MaxAudioLib"  - "{PythonCore}" - -### Libraries ### - -LibFiles-PPC =  - "{SharedLibraries}StdCLib"  - "{SharedLibraries}MathLib"  - "{PPCLibraries}StdCRuntime.o"  - "{PPCLibraries}PPCCRuntime.o"  - "{PPCLibraries}MrCPlusLib.o"  - - -### Default Rules ### - -{ObjDir} Ÿ : - -.cpp.x Ÿ .cpp {€MondoBuild€} {Headers} - {PPCCPlus} {depDir}{default}.cpp -o {targDir}{default}.cpp.x {PPCCPlusOptions} - - -### Build Rules ### - -all Ÿ Folder {€MondoBuild€} {ObjDir}{Name} - -Folder ŸŸ - if !`Exists {ObjDir}` ; NewFolder {ObjDir} ; end - -{ObjDir}{Name} Ÿ {Obj-PPC} - PPCLink  - -o {Targ}  - {deps}  - {LibFiles-Ext}  - {LibFiles-PPC}  - {Sym-PPC}  - -mf -d  - -t 'iLaF'  - -c 'max2'  - -xm s  - -export main  - -main main diff --git a/externals/grill/py/readme.txt b/externals/grill/py/readme.txt index fc82880b..3173ce04 100644 --- a/externals/grill/py/readme.txt +++ b/externals/grill/py/readme.txt @@ -21,7 +21,7 @@ Package files: Goals/features of the package: -Access the flexibility of the python language in PD/MaxMSP +Access the flexibility of the python language in PD and MaxMSP PD - Load it as i library with e.g. "pd -lib py -path scripts" @@ -38,6 +38,11 @@ With the pyext you can use python classes to represent full-featured pd/Max mess Multithreading (detached methods) is supported for both objects. You can send messages to named objects or receive (with pyext) with Python methods. + +Known bugs: +There are problems with importing the "time" module, experienced with Python 2.2.2 under OSX. +Therefore, some help patches may not be functional. + ---------------------------------------------------------------------------- The py/pyext package should run with Python version >= 2.1. @@ -46,28 +51,35 @@ It has been thoroughly tested with version 2.2 The package should at least compile (and is tested) with the following compilers: -pd - Windows: +PD @ Windows: ------------- o Borland C++ 5.5 (free): edit "config-pd-bcc.txt" & run "build-pd-bcc.bat" -o Microsoft Visual C++ 6: edit the project file "py.dsp" & build +o Microsoft Visual C++ 6: usr "py.dsp" or edit "config-pd-msvc.txt" & run "build-pd-msvc.bat" -pd - linux: +PD @ linux: ----------- Python doesn't provide a shared lib by default - static linking produces huge externals Ok, debian is an exception... the precompiled binary is for debian, therefore. o GCC: edit "config-pd-linux.txt" & run "sh build-pd-linux.sh" +PD @ MacOSX: +--------------------- + +o GCC: edit "config-pd-darwin.txt" & run "sh build-pd-darwin.sh" + ---------------------------------------------------------------------------- Version history: 0.1.1: +- CHANGE: updates for flext 0.4.0 - FIX: crash when module couldn't be loaded - FIX: GetBound method (modmeth.cpp, line 138) doesn't exist in flext any more - FIX: deadlock occured when connecting to py/pyext boxes in non-detached mode - ADD: current path and path of the canvas is added to the python path +- FIX: path is not added to python path if already included 0.1.0: - completely reworked all code diff --git a/externals/grill/py/scripts/threads.py b/externals/grill/py/scripts/threads.py index e8486699..f7740bd3 100644 --- a/externals/grill/py/scripts/threads.py +++ b/externals/grill/py/scripts/threads.py @@ -29,11 +29,11 @@ class ex1(pyext._class): _outlets=2 sltime=0.2 # sleep time - loops=30 # loops to iterate + loops=20 # loops to iterate # method for bang to any inlet def bang_(self,n): - for i in range(30): + for i in range(self.loops): # if _shouldexit is true, the thread ought to stop if self._shouldexit: break @@ -41,3 +41,4 @@ class ex1(pyext._class): sleep(self.sltime) + diff --git a/externals/grill/py/source/bound.cpp b/externals/grill/py/source/bound.cpp index 651bb52b..f402480b 100644 --- a/externals/grill/py/source/bound.cpp +++ b/externals/grill/py/source/bound.cpp @@ -14,7 +14,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. t_class *pyext::px_class; pyext::py_proxy *pyext::px_head,*pyext::px_tail; -void pyext::py_proxy::px_method(py_proxy *obj,const t_symbol *s,int argc,t_atom *argv) +void pyext::py_proxy::px_method(py_proxy *obj,const t_symbol *s,int argc,const t_atom *argv) { PY_LOCK diff --git a/externals/grill/py/source/main.cpp b/externals/grill/py/source/main.cpp index 65e1d274..2522ff51 100644 --- a/externals/grill/py/source/main.cpp +++ b/externals/grill/py/source/main.cpp @@ -10,7 +10,6 @@ WARRANTIES, see the file, "license.txt," in this distribution. #include "main.h" - V py::lib_setup() { post(""); @@ -127,7 +126,7 @@ V py::m_doc() -V py::SetArgs(I argc,t_atom *argv) +V py::SetArgs(I argc,const t_atom *argv) { // script arguments C **sargv = new C *[argc+1]; @@ -202,8 +201,15 @@ V py::AddToPath(const C *dir) if(dir && *dir) { PyObject *pobj = PySys_GetObject("path"); if(pobj && PyList_Check(pobj)) { - PyObject *ps = PyString_FromString(dir); - PyList_Append(pobj,ps); + int i,n = PyList_Size(pobj); + for(i = 0; i < n; ++i) { + PyObject *pt = PyList_GetItem(pobj,i); + if(PyString_Check(pt) && !strcmp(dir,PyString_AsString(pt))) break; + } + if(i == n) { // string is not yet existent in path + PyObject *ps = PyString_FromString(dir); + PyList_Append(pobj,ps); + } } PySys_SetObject("path",pobj); } diff --git a/externals/grill/py/source/main.h b/externals/grill/py/source/main.h index 66b332cf..b4096819 100644 --- a/externals/grill/py/source/main.h +++ b/externals/grill/py/source/main.h @@ -21,7 +21,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. #error You need at least flext version 0.4.0 #endif -#define PY__VERSION "0.1.1pre3" +#define PY__VERSION "0.1.1" #define PYEXT_MODULE "pyext" // name for module @@ -66,7 +66,7 @@ protected: V GetModulePath(const C *mod,C *dir,I len); V AddToPath(const C *dir); - V SetArgs(I argc,t_atom *argv); + V SetArgs(I argc,const t_atom *argv); V ImportModule(const C *name); V ReloadModule(); @@ -98,7 +98,7 @@ protected: // ----thread stuff ------------ V m_detach(BL det) { detach = det; } - virtual V m_stop(int argc,t_atom *argv); + virtual V m_stop(int argc,const t_atom *argv); BL detach,shouldexit; I thrcount; diff --git a/externals/grill/py/source/modmeth.cpp b/externals/grill/py/source/modmeth.cpp index 51e103ed..b7d2cab0 100644 --- a/externals/grill/py/source/modmeth.cpp +++ b/externals/grill/py/source/modmeth.cpp @@ -66,7 +66,7 @@ V py::tick(py *th) th->Unlock(); } -V py::m_stop(int argc,t_atom *argv) +V py::m_stop(int argc,const t_atom *argv) { if(thrcount) { Lock(); diff --git a/externals/grill/py/source/py.cpp b/externals/grill/py/source/py.cpp index 83c5d9b5..eff88daf 100644 --- a/externals/grill/py/source/py.cpp +++ b/externals/grill/py/source/py.cpp @@ -17,29 +17,29 @@ class pyobj: FLEXT_HEADER(pyobj,py) public: - pyobj(I argc,t_atom *argv); + pyobj(I argc,const t_atom *argv); ~pyobj(); protected: - BL m_method_(I n,const t_symbol *s,I argc,t_atom *argv); + BL m_method_(I n,const t_symbol *s,I argc,const t_atom *argv); - V work(const t_symbol *s,I argc,t_atom *argv); + V work(const t_symbol *s,I argc,const t_atom *argv); V m_bang() { work(sym_bang,0,NULL); } V m_reload(); - V m_reload_(I argc,t_atom *argv); - V m_set(I argc,t_atom *argv); + V m_reload_(I argc,const t_atom *argv); + V m_set(I argc,const t_atom *argv); V m_doc_(); virtual V m_help(); // methods for python arguments - V callwork(const t_symbol *s,I argc,t_atom *argv); + V callwork(const t_symbol *s,I argc,const t_atom *argv); - V m_py_list(I argc,t_atom *argv) { callwork(sym_list,argc,argv); } - V m_py_float(I argc,t_atom *argv) { callwork(sym_float,argc,argv); } - V m_py_int(I argc,t_atom *argv) { callwork(sym_int,argc,argv); } - V m_py_any(const t_symbol *s,I argc,t_atom *argv) { callwork(s,argc,argv); } + V m_py_list(I argc,const t_atom *argv) { callwork(sym_list,argc,argv); } + V m_py_float(I argc,const t_atom *argv) { callwork(sym_float,argc,argv); } + V m_py_int(I argc,const t_atom *argv) { callwork(sym_int,argc,argv); } + V m_py_any(const t_symbol *s,I argc,const t_atom *argv) { callwork(s,argc,argv); } const t_symbol *funname; PyObject *function; @@ -72,7 +72,7 @@ private: FLEXT_LIB_V("py",pyobj) -pyobj::pyobj(I argc,t_atom *argv): +pyobj::pyobj(I argc,const t_atom *argv): function(NULL),funname(NULL) { PY_LOCK @@ -139,7 +139,7 @@ pyobj::~pyobj() -BL pyobj::m_method_(I n,const t_symbol *s,I argc,t_atom *argv) +BL pyobj::m_method_(I n,const t_symbol *s,I argc,const t_atom *argv) { if(n == 1) post("%s - no method for type %s",thisName(),GetString(s)); @@ -160,7 +160,7 @@ V pyobj::m_reload() PY_UNLOCK } -V pyobj::m_reload_(I argc,t_atom *argv) +V pyobj::m_reload_(I argc,const t_atom *argv) { PY_LOCK SetArgs(argc,argv); @@ -169,7 +169,7 @@ V pyobj::m_reload_(I argc,t_atom *argv) m_reload(); } -V pyobj::m_set(I argc,t_atom *argv) +V pyobj::m_set(I argc,const t_atom *argv) { PY_LOCK @@ -279,7 +279,7 @@ V pyobj::Reload() } -V pyobj::work(const t_symbol *s,I argc,t_atom *argv) +V pyobj::work(const t_symbol *s,I argc,const t_atom *argv) { AtomList *rargs = NULL; @@ -311,7 +311,7 @@ V pyobj::work(const t_symbol *s,I argc,t_atom *argv) } } -V pyobj::callwork(const t_symbol *s,I argc,t_atom *argv) +V pyobj::callwork(const t_symbol *s,I argc,const t_atom *argv) { if(detach) { if(shouldexit) diff --git a/externals/grill/py/source/pyext.cpp b/externals/grill/py/source/pyext.cpp index 8e971873..4df12c37 100644 --- a/externals/grill/py/source/pyext.cpp +++ b/externals/grill/py/source/pyext.cpp @@ -36,7 +36,7 @@ I pyext::pyextref = 0; PyObject *pyext::class_obj = NULL; PyObject *pyext::class_dict = NULL; -pyext::pyext(I argc,t_atom *argv): +pyext::pyext(I argc,const t_atom *argv): pyobj(NULL),pythr(NULL), inlets(0),outlets(0), methname(NULL) @@ -274,7 +274,7 @@ V pyext::m_reload() PY_UNLOCK } -V pyext::m_reload_(I argc,t_atom *argv) +V pyext::m_reload_(I argc,const t_atom *argv) { args(argc,argv); m_reload(); @@ -336,7 +336,7 @@ V pyext::m_help() post(""); } -PyObject *pyext::call(const C *meth,I inlet,const t_symbol *s,I argc,t_atom *argv) +PyObject *pyext::call(const C *meth,I inlet,const t_symbol *s,I argc,const t_atom *argv) { PyObject *ret = NULL; @@ -351,7 +351,7 @@ PyObject *pyext::call(const C *meth,I inlet,const t_symbol *s,I argc,t_atom *arg else { ret = PyEval_CallObject(pmeth, pargs); if (ret == NULL) // function not found resp. arguments not matching -#ifdef _DEBUG +#if 1 //def _DEBUG PyErr_Print(); #else PyErr_Clear(); @@ -384,7 +384,7 @@ V pyext::work_wrapper(V *data) --thrcount; } -BL pyext::callwork(I n,const t_symbol *s,I argc,t_atom *argv) +BL pyext::callwork(I n,const t_symbol *s,I argc,const t_atom *argv) { if(detach) { if(shouldexit) { @@ -401,7 +401,7 @@ BL pyext::callwork(I n,const t_symbol *s,I argc,t_atom *argv) return work(n,s,argc,argv); } -BL pyext::work(I n,const t_symbol *s,I argc,t_atom *argv) +BL pyext::work(I n,const t_symbol *s,I argc,const t_atom *argv) { BL retv = false; diff --git a/externals/grill/py/source/pyext.h b/externals/grill/py/source/pyext.h index 2aba0e8e..f0baf310 100644 --- a/externals/grill/py/source/pyext.h +++ b/externals/grill/py/source/pyext.h @@ -19,7 +19,7 @@ class pyext: FLEXT_HEADER_S(pyext,py,setup) public: - pyext(I argc,t_atom *argv); + pyext(I argc,const t_atom *argv); ~pyext(); static PyObject *pyext__doc__(PyObject *,PyObject *args); @@ -41,10 +41,10 @@ public: protected: BL m_method_(I n,const t_symbol *s,I argc,t_atom *argv); - BL work(I n,const t_symbol *s,I argc,t_atom *argv); + BL work(I n,const t_symbol *s,I argc,const t_atom *argv); V m_reload(); - V m_reload_(I argc,t_atom *argv); + V m_reload_(I argc,const t_atom *argv); V m_doc_(); virtual V m_help(); @@ -87,7 +87,7 @@ private: // bool cmp(PyObject *s,PyObject *f) const { return self == s && func == f; } // void init(PyObject *s,char *f) { self = s,func = f,nxt = NULL; } // bool cmp(PyObject *s,char *f) const { return self == s && func == f; } - static void px_method(py_proxy *c,const t_symbol *s,int argc,t_atom *argv); + static void px_method(py_proxy *c,const t_symbol *s,int argc,const t_atom *argv); }; static py_proxy *px_head,*px_tail; @@ -96,16 +96,16 @@ private: // --------------------------- - PyObject *call(const C *meth,I inlet,const t_symbol *s,I argc,t_atom *argv); + PyObject *call(const C *meth,I inlet,const t_symbol *s,I argc,const t_atom *argv); V work_wrapper(void *data); - BL callwork(I n,const t_symbol *s,I argc,t_atom *argv); + BL callwork(I n,const t_symbol *s,I argc,const t_atom *argv); class work_data: public flext::AtomAnything { public: - work_data(I _n,const t_symbol *_s,I _argc,t_atom *_argv): n(_n),AtomAnything(_s,_argc,_argv) {} + work_data(I _n,const t_symbol *_s,I _argc,const t_atom *_argv): n(_n),AtomAnything(_s,_argc,_argv) {} I n; }; diff --git a/externals/grill/xsample/MPW/MakeAliases b/externals/grill/xsample/MPW/MakeAliases deleted file mode 100755 index 681b5f17..00000000 --- a/externals/grill/xsample/MPW/MakeAliases +++ /dev/null @@ -1 +0,0 @@ -(This file must be converted with BinHex 4.0) :!!""8&"-BA"XG#!!!!!MR!!!&83XSIlYqXi!!!!5!*!(!J!!!!S!!!6-!!!!"3! !!!%!!!!iAep338G&@N956`#3$"!!N"J%!!!!!3!!!34IAe4&@&3!N!`3!!!!%!# 3"a!!N!3(!!!!"3!!!!-!N!4IAh4PH(3!N!TIAe4&@&3!N!`EL!!!!bJ!!!Z)!!! !!J#3#)!!"!#3#9pIBh0dFQPZC`#3"epI9%9B9!#3$"k`!!!!R!!!$V!!!!!#!*! ,!J#3#&pIF'PMFhPYBQpXAh0dG@*IAe4&@&3!N!`I6!!!!,3!!!p-!!!!!J#3#)! !"!J!N!FN!!!!!3!!!BaIAd4"9%%!N!`J!!!!%!!!!"!!!!!3!*!%"`!!!!-!!!! &!*!%AepNBA4K!*!+Aep%394"!*!-)!#3""!!!"!!N!3#!*!8AepXB9pcH@eLEfa IF(4b!&pI4%&833#3$#!3!!!!&!!!%"!!!!!#!*!,"`!!!!8!N!4IAfjXAh0jE@* [E&p`G()!Aep%394"!*!-)#3!!!!8!!!3*!!!!!)!N!X'!!!!#J#3"&pIC(PXC!# 3#PpI4%&833#3$#!i!!!!(!!!%$J!!!!#!*!8AepMEfeYEfi!N!KIAd4"9%%!N!` JB!!!!%!!N!F%!*!,!3#3#`%!!!!iAep-58j,484*9!#3#$!!!!!$R!!!)!!!!!1 F!!!!"`!!!!%!N!F%!!!!$J!!!"`!!!!-,h9cFLpXD@)[C(PXC!#3"J`!!!"N!!! !'$UHiV!!#3!!!!%!!#p6HA0dC@d[6'PLFQ&bH5p'FQ&YCAG[FQYc,d0[FQ96CA* fD@0PFbjQFQ&YCAG[FQX[9Q9bFfP[ER-[35p$Eh*P8f9bGQPMCA-!N!B-!!!!0!! !!"JkPeF%!$)!!!!"!!![GA0b,faTBLpXD@*6HA0dC@dZ3LjNH@aTBJ#3"3)!!!! B!!!J!*!%'3!!)@J!!!)d!!!!#`!!!&!!N!m4!!!!%3!!!!J!N"SK,!!!!!m!N"- &!!!!X!!!!!%!!!!S!!!EL!#3r`#3r`#3r`#3r`#3r`#3r`#3r`#33h`k#hJi)Ir m9#%!0$J!!!#3!!%!!*3Krm#!HJ!!1*S!"$YM!!&AHa!kI+6D&%J!!!Pri!!)I!J #TVq"rr#3!!%!#*3Krl"#R`!&IqJ#TRam'hKmRL0iI,dVH%J!!HNp2`!!NiN%-$d r!!#6b33d26m!!*1T"$Jp2`!!J5N%C)%T!!!X#3!!3B)!%(dS!kCp,%Yi6S!!)6d r!!#"+34JJ5N!!#`*!!""JJ!3I5J$TRdX5hK1J!!K5!!$@8J!!6dp2`!!J5N%A)! *!!!X!!!!3B)!#%J!""%p2`!!J5N%@)!*!!!X!!!!3B)!%(q$ihKra20i5!!$k6a r!!!iB`,N1)%!1%J!!C@!B3!i,!-!!%'#!!K)!!,C26m!!)%T"&3i!!!!N!!*!!# !(J!!I!N$H#`!!!""JJ"F18!!!$PJ!!"m#J#Z,!!!!%'#!#Km#9LZ,!!!,d##!!K p59S81@X!!B%q!!"m#9LZ,!!!!%#Lrq!X#J!!3B)!%$J+!!%p2`!!5!!!$$dr!!# !(J!!N!!*"$`i!!!!N!!"!$`i`3!mIkRVH)!G!!!X!!!!3B)!%)3*!!3X!!!!3+, rq$J*!!3pB,rrB@[rrh`!@%""J3!FJ5N!"(`*!%"!J3!3I!PB3%'"!!Km"J0iIi2 MH(r%mhKrTHYi5!!!p8J!!G9m#!+QNq(rr*!!!3!)P#(rX%+I!!9rk!+Q2(m!!$K M!6`iJ3!i5!!!IB!"!$Km#!1QI!`$H%k!!#'!!3"B1#%!8(`)!kD$iIrm6S!!)$e J!!#"Db!i,)X!!%''!!K1J!!J1+!!6ML!!!"JK"lm1'!!!MJ!!!4%!!!#1'!!1cJ !!!&%!!!#Iq!!#$f!!!#!$#!iI!N$TMf!!!"KM"!!6S!%)$eJ!!#"Db!mI@N$TNk !"#"m#!+QN!!"!!L8)Ir!15!!!*!!B3!m1!!!!CNK!$Q`!3!k1'%!1*NK!$K)!!' *J!%!5$JK!%"m#!1Q6S!!)(`)!UD3!!%!#*3Krm!mB'&`2)"cBf"ME(4JK("d5!! "0AaJ'hNiB!!"3B)!%(`$!hK,rrq91'!!!)!"!%Ji)3"!I!J$TNk!!#!!N!4IAf4 jE'4IE@pNAh4PFQeICR9ZBh-!!!"IAf4jE'4IE@&VC9pNC@aKH@9NAfe[C(9XC9p TEQPdD@&XDATPFPpMB@aXF`#3"&4SC5"VCA*ZC@`JFh9`F'pbG#"QEh)JG'KP)'4 jEQ&YD@-JE'PZDf9b)'Pc)'j[G#"`FQ9cC@jd)(4[)(*eEL"dD'Pc)("bEfGbB@d Z#J!!I!J#TN+I!!9pD!+Q2@X!!(`)!kD"L`#mIBN$TMPV!,a1J!3JI!J#TN+I!!9 pD!+Q2@X!!(`)!kD"L`#FIBN$TMPV!*a1J!3JI!J#TN+I!!9pD!+Q2@X!!(`)!kD "L`"mIBN$TMPV!(a1J!3JI!J#TN+I!!9pD!+Q2@X!!(`)!kD"L`"FIBN$TMPV!&a 1J!3JI!J#TN+I!!9pD!+Q2@X!!(`)!kD"L`!mIBN$TMPV!$a1J!3J!*!1(V!!!"i %!!!H"!!!(J3!!"i%!!!H"!#3"L"J!!!JD!#3(Ki%!*$r!*$r!*$r!*$r!*$r!*$ r!*$r!*$r!*$r!*$r!*$r!*$r!*$r!*$r!*$r!*$#"!m%!"!!!#!!N!3-$`3!%!! !)!3!!!!8!`!!%!!!%!#3"#J2#!!3!!!JE!!!!$m2#!!3!!!JF!!!!&`2#!!3!!! JG!!!!))2#!!3!!!JH!!!!*82#!!3!!!JI!!!!+m2#!!3!!!JJ!!!!-S2#!!3!!! JK!!!!1F2#!!3!!!JL!!!!3%2#!!3!!!JM!!!!5)2#!!3!!!JN!!!!!&%$`J!%!! !)*3!!!&S$`J!%!!!)*J!!!'*$`3!%!!!)!J!!!'5$`J!%!!!)*`!!!'M!3!!!3# 3"J'k!3!!!3#3"J(3!3!!!3#3"J(c!3#3#3)+!3!!!3#3"J)5!3#3#3)C!3!!!3# 3"J)I!3#3#KF!!!!9!!!!%`!!!")!!!!4!!!!&`!!!"8!!!!6!!!!%J!!!"%!!!! @J!!!!)!!N!B8!!!!'!#3"&p1@%&bCf-!AdjB3A*RGJ"IAfeSAf9iC@0eG'9ID'9 KC'9b!&pMBA4MD&pPH'0PF(4TEfjIFQ&TFf8!Af0KG'0SAf9iBf9`G'P[EPpbB@P cC9pcG'&dC3"IBf&dBfKICAKMCA"dD@pZAh*KDA0PAh0dBA4PAfPNC@jdDA4j!&p ME'pMDepKE'&bE9pbCA"XH3"IC'pIE@&MD&pZEh4TCRPIC'9KC&pZB@eP!&pNEep YB@0SAfj[G'PQH9pZEepcC@jNCA*c!&pNEepYB@0SAfj[G'PQH9p`Eh*dAf4PE'9 dC@3!Af4[AfeKBfKIEQpdD@CjAh0PEQ4IEfjMC3"IC'pIFf9aEQpcAfeKBfKIEQp dD@CjAf4PB@4IEQ&YC3"IC'pIFf9aEQpcAfeKBfKIEQpdD@CjAfj[Ah0PEQ4PFR- !Af4[Ah0PF@j[FepYB@0SAfj[G'PQH9p`Eh*dAf4PE'9dC@3!Af4[Ah0PF@j[Fep YB@0SAfj[G'PQH9pcC@jNAfpZBf8!Af9ZGQPbEfi!Ah*PBf9TGQ9IFf&YF'aPF`" I3f&XE%0[EA"[EQ9ZG%4TFh"KG'0S!&p2F'9Z4'9QBA9XG%0[EA"[EQ9ZG!"IAep VCAPYCh*IC(GKFQBbAh*PCfPcG'9bAh0PBh4TEfjc!&pIBh4SFQ9KC&pTEQPdAh* [GA4TEQ8!Af&dCAKTG!"ICA*bEQm!Af9iDA3!AfeKBfKID@jTG&pbEh9dD@jP!!! !Q(!!!!%!!!!6ZJ!!%VS!!!'+!*$c'N!!N"`I6@&VC5"KE'PKFf9c)(4[)(KcB@e `E'8JE'PLFQ&bH3!!!"B!!3#3"3i!#J!3!!!!$!#3#3)!N!8B!!!!+!#3"`J!!!! J!'3r2!!"UI!!!!$#!!!!!8j@rrJ[!hB!,`-`2+'YTdBQ(be)rrJ[!c!mU*qR4LB I)#lrq,(!Cb![!b!mBh"ZG%(Zrr`L5+'Y)SJQ(dT!CJK+V[rmC`*f!4!$*Llrp%j H6R@24fpd3fpYF'pZC@jd6@Gb!!"19J!!,`a1Z[q85J"R+PQ2,caKF'ad,cacBh" dF#'S+LKI)!aR%PQ2,``[2!!!!!&`!+JUUI4B6h!$2`#Tb(!$2`#Tb#KZrra1ANj eLN&`F'aPG&0dG@)!N!B+@1!!!b!!!!-J!*!)('&`E(3!!!!"4P*&4J#3"B"*3di M!*!&PJ!!!!%!N!3(39"36!#3"3%!!!%!!!!#J!!!"%!!!(JJ!!#%%!!"!JJ!!J) %!!3%!J!)#!%!%"3!J#!L!%"!33!Jm)#!%)N!3!L'!#!%K!!J!N!!%!%J!"!#%!! 3"!J!%!J%!#!3!J"!)!%!J%!#J3#!"))"!!K%!J!)5!3!#&J)!!4N%!!$`L!!!!& !!!!!J!!!!3!!!!1!!!!(`!!!Iq!!!2r`!!(rq!!$rr`!"rrq!!rrr`!Irrq!2rr r`(rrrq$rrrr`rrrrq2rrrrcrrrrqIrrrrcrrrriIrrrm$rrrq!Irrr!$rrrJ!Ir r`!2rri!(rrm!$rrq!!rrr!!2rrJ!"qI`!!2$i!!!!F!!!!#!!!!!!J#3#!m!N!r `m!#3$3m!$`#3#`rrm!!!m!#3#[$-h`!!$`#3#3m!$-c`!!$`!*!)m!$-cI!!!!m !N!F2!!c-h`#3"2!!N!E`!-c0m!#3"!m!N!82!!c-hpm!N!A`!*!%m!$-cIhGm!# 3"!m!!!!2!!c-hph-h`#3"I!!!2rrc-hph-$0m!#3"!m!!2lFr0rGc!`-h`#3"I! !rFc2rGc!`-$0m!#3"!m!r-`2cF`-$!!-r3#3"I!2!-$-`-$!!!cI!*!%$-m!m!b 3"!!!c0m!N!6-m!!2!-$!`!!-$0m!!!!-c`!!!2!-$!!!`-cI!!!!c2!!!!!2!-! !$!c0r!!!$-m!N!A`!!$!c0r-!!$-m!#3"3m!$!c0r-`!$-m!N!Epm-$-hmc!!-c `!*!&$phm$-hmc!!-c`#3"[hFcmcIc-!!c2!!N!Epc-r0r-`!$-m!N!Imc!rIr-! !c2!!N!F2`-r`$m`-c`#3#Irr!!$mc2!!N!d2c`#3$r!!N!T!!B!13"%J)4"##18 %Q)+3!%&!)5!L%%3BL#83*L!G3!#!!B!2`"rJ2r"rq2rmrrlrrhrr2riIr"ri2r! ri"h!!)!!!!#!!!!!$r!!N!Arm!m!N!32$!m!m!!!!2$!c`!2!!!2$!c`!!$`!2r `cpm!!!m!rGrpc2!!!2$p$p`-c`!!$`m!`-$0m!$2!2!-$-h`$2!!$`$-hm$2!!! 2m-hm$2!!!2h2hm$2!!!!r-rm$2!!!!!2r`r2!*!(m!#3"Lp6Dh*TF(4`FQpRFQ& YE3d06@&VC5"KE'PKFf9c)(4[)(KcB@e`E'8JE'PLFQ&bH3!!!")!!J#3#3%!"J! '%iN!!!!8!%m!-3,*!f`!6`!a!XN$E!#3"Jd!4Q&cC&9"8b!a,M%`-5ia-!i!!!! %$rrr!!%!!J!$!Irr!!!0!!%!!@X!N!F%!J!%!!)!"3!'$3!&!!*X!!)!!!"M!!I rrJd!"`!#6`#3"@-!#!!*$3!)!!&V!!!!"!"L!!S#!!S!!J!,!!`0!!X!!Q`!!J! %!!6rrIrm!Irp!!!"rr`!!!)!$!!#!!d!$Jd!$3!#FJ!!!!3!"`!2!"!0!!m!!@d !!!!%!!8!%3`!%3!0!!GiFf&YF'aP!!)!!!d!%!!"E`#3"[rl#rrl!!``!!K[FQP RD@jKE!!!!J!1!!)!%J!6$3!5!!*b!!!!#!!2!"3!&3d!&!!"5J!!!!J!$3!@!J! @!!)!&`!B$3!A!!&Y!!!!#!!*!"N-!"N!$J!)H'GbEfpfCAi!!J!!!J!B!!)!'J! E$3!D!!&Y!!!!#3!+!"`-!"`!$!!'H("XBAPq!!)!!!)!'`!#!"hrqJd!(3!"E3! !!!S!#`!H$!!H!!i!#(KbC@0[FQ4q!!)!!!,rqJ!!$3!9!!&[!*!'rrN,rrN!$6! !#@9iG'9bEQ&XF`!!!J!6!!)!(`!J$3!I!!*X!!)!%!!3rrMrp`(rq!!!!Irh!!! #!#!!!J!K!#)0!#%!!Q`!!!!3!"$rpJ!M!Irf!!!-!#-!#`!&)'4[)5!!!J!!!J! L!!)!*!!P$3!N!!*X!!)!%!!3rrArp!(rp3!!!Ird!!!#!#8!!J!Q!#F0!#B!!R) !!!!3!"N!+!!T$3!S!!*X!!8!%!!A!#Vrm`d!+J!#EJ!!!"!!&`!V!#`0!#X!!@d !!!!9!"IrmJVrmJ!%#Q0dER)0!#`!!Q`!"3!3!"8!,Ira$3!Y!!0*!!)!%!!9rr! !,[r[#[r`!"JZC@&bFfCQC(*KE'Pc!*!')!"KCQ4b$3!Z!!"Q!!!!%!!4![r[!!! "rr%!!!(rm`!!$3!T!!&[!*!'rqi,rqi!#M!!"Q0eFQ4TFJ!!!J!R!!)!,`!`$3! [!!*b!!!!'J!J!$%!-Jd!-3!#E!!&!"S!(J!crqd0!$-!!Qi!!!!D!"i!0!!e$3! d!!)d!!!!'`!Hrq`!0JVrl!!%#QCTE'80!$B!!@m!!!!F!"hrk`[rk`!--!!)Eh* TCfPZB@`!!!d!03!"E`!!!"S!'rrU#rrU!!S`!!CMGA*NDA)!!!(rl3!!$3!b!!& [!*!'rqN,rqN!"c!!!fpbD3!!!J!`!!)!0`!i$3!h!!*X!!)!)3!KrqMrj`(rk!! !!IrR!!!#!$J!!J!j!$S0!$N!!Q`!!!!K!#(rjJ!l!IrQ!!!-!$X!)!!D)'CTFR0 d)'4PE'9dC5"KE'`JB@aTBA0PFb!!!J!!!J!k!!)!2!!p$3!m!!0*!!)!)3!arq8 !2[rN#[rP!"JZBfpbC@4PE'mUN!3!N!D3!!!UN!30!$i!!Q`!"3!K!#d!2rrM$3! r!!)f!3!!)3!Y!%!!33d!3!!#EJ!!!#%!*!"#!%-0!%)!!6)!!!!L!#6riJVriJ! %#Q&XD@%0!%-!!@m!!!!K!#,ri3[ri3!+-!!'Bh9bC'Pb!!!0!%%!!N8!!3!P!#` !4!"&$3"%!!&[!!!!*J!Srq!,rq!!$6!!#@9iG'9bEQ&XF`!!$3"&!!%a!!!!+3! Vrpm+rpm!"!T`EQ&Y!IrM!!!#rq3!!!)!23!#!%B!4`d!4J!#E!!#!$)!-[rHrpd "rpi!!!(rh3!!!J"(!!)!5!"*$3")!!*X!!!!-J!brp`!5J(rh!!!$!"+!"N!%b" ZEhFJE@&VC5"ZCAFJEfjPFb!!!J!!!J"*!!)!5rrE$3",!!0B!!!!-J"L!%crfJ" 0$3"-!!*b!!!!4J"G!%i!6`d!6J!"E`!!!%B!4rrC#rrC!!F`!!0PH(3!!!d!6`! #EJ#3"e!!83d!8!!"-3!!!&S!A2rB#[rB!!3+F'jKE3d!83!#E!!&!%F!@J"5rpF 0!&)!!dN!!J"(!&Vre[r9!&-+rpB!'#jMEh*PBh*PE#U3"!#3"T!!!'jeE'`"rp8 !!!B!8`!$rp3!9!"9#[r8!!3+DfpME!d!9!!"E3!!!%X!62r6#[r6!!3+B@aTB3B !93!$rp)!9J"A#[r5!!3+D@jcD!d!9J!"E`!!!%m!82r4#rr4!!S`!!CMGA*NDA) !!!B!9`!$rp!!@2r2#[r3!!3+G'mJ)!d!@!!"E`!!!&-!92r1#rr1!!F`!!0[FQN !!!Erc`!!!IrA!!!,rpS!"c!!!f9iG!!!$3"0!!&[!!!!03!frmd,rmd!$6!!#@9 iG'9bEQ&XF`!!![rE!!!0!!N!!@d!N!8"!&N2!&N"-!KZG@aX!*!&!Gq%rrm!!!! H"NCTEQ4PFJ!!!"62&%!!!daN&-+L@!!!S'88ca4!!I543"6#@D3!!$JbrJ)!!!! 2Zl38ca5!!!$rU!#3"Ne"3e-!!"%!B@aTF`#3"G)!!J!!#%K%)%eKBdp6!*!6Z"p ,#8*%!*!&(JC'D@jNCA)!N$X1BEFj2m"'6N4568&$8rq3"!#3%`a6HA0dC@e[FQ4 ZCA)!!3!%!!!!(J!#!"a)4#"0B@028cT6HA0dC@e[FQ4ZCA)k4QPZC'9brrm!!!( rrJ!!!J!'!!)!@[r-$3"D!!*X!!)!N!6rbrr+!Ir,!!!"rmS!!!,rc!!!$J!#!!! 2%!!$!!Vrb3"E!&`!%3"G!&i!Arr)rmIraJ(rb3!!%!"E!!MraIr%rm2r`[r"rm$ r[rqq#[r&!"JZB@9fG'pKF("ZG@aX!!#!!!!!N!!!+T!%#rr%!!``!!K[FQPRD@j KE!!!#rr$!!d`!!PPH(4PFQjKE(-!!![r`J!+-!!'Bh9bC'Pb!!!,rm%!"c!!!fp bD3!!!Ir!!!!"rlm!!!(r[J!!$J"F!!F3rld!B2qmrlX!B3"LrlS+rld!'#jKCAC dEf&`F'jeE'`!!)!!!!#3!!!UN!30!'!!!@X!N!9M!'-#!'-!!J!&rlN#rlN!!!( r[!!!![ql!!!3!'%!!Iqi#rqi!!F`!!0PH(3!!"!!BJ!A!&N!%Iqh!"N!(!!HrlE rYIqdrl2rX[qarl!!C2q[rklrVIqXrk[rU[qTrkMrT`[rY`!--!!)Eh*TCfPZB@` !!![rYJ!0-!!*CAKdCA*ZB@ac!!!+rl8!'#jPBA*cCQCNFQ&XDA-!N!BJ!'&QC() +rl3!"!TMG'jb#rqc!!S`!!CMGA*NDA)!!!VrXJ!%#QCTE'8,rl%!"c!!!fpbD3! !#[q`!!3+B@aTB3i!C!!!%`VrV`!%#R"ZB@d+rki!'#jMEh*PC'9XEbU3"!#3"T! !!#U3"!VrV3!%#QY[Bf`+rk`!"!TMEf*U#[qV!"JZBfpbC@0ZG'8UN!3!N!B3!#U 3"!VrUJ!%#QPZFfJ+rkN!"!TdEb!J!rqS!!B+rkF!'#jMEh*PBh*PE#U3"!#3"T! !!'jeE'`4rlS!C1!5!'$K4G*2iq6PEAC&eNmTDJ`!"qJX4GP2bHV#,dAE6mRX,He E@XCFlLa!-@S-!!p2&`![aPYK!""K!"&X$!!5DfJE!!#J+Q%!%1aK!"2*B3!8bf% !&3`!&ZiX4PY2@IrM93m1!&d!!J6rTJ"P!rqQ!!-1!'8!!`!!'3!F!"i1!&i!!43 !CJi!CJ!$'!"Rrk8!D!i!C`!$'!"Trk3!DJi!D3!$'!"Vrk-!E!i!D`!$'!"Yrk) !EJi!E3!$'!"Crk%!E`VrS3!%#Q0NDA--!'m!$J!)5%3J4'&dC@i!!J!!#[qL!!3 +BfC[E!`!EJ!3!!T3FQpR)(0dG@CQ!!)!!!VrS`!%#Q0QEf`-!'`!#3!$E@&i!!) !!!VrT!!%#Q0QEf`-!'S!$3!(H(0KEA"XC3!#!!!+rk8!"!TMCQpX$!"S!!N!!de 39`!#!!!1!&m!!43!F!i!F!!$'!"ark!!FJi!F3!$'!"crjm!G!i!F`!$'!"erji !GJi!G3!$'!"hrjd!H!i!G`!$'!"jrj`!HJi!H3!$'!"CrjX!H`VrQ`!%#Q0NDA- -!(X!$J!)5%3J4'&dC@i!!J!!#[qF!!3+BfC[E!`!HJ!3!!T3FQpR)(0dG@CQ!!) !!!VrR3!%#Q0QEf`-!(J!#3!$E@&i!!)!!!VrRJ!%#Q0QEf`-!(B!$3!(H(0KEA" XC3!#!!!+rjm!"!TMCQpX$!"d!!N!!de39`!#!!!+rk!!"!TQD@aP$!"b!!d!"hK cB@e`E'8!!J!!!Ir)!!!"rmF!!!(raJ!!!'&cBh)!!3!0qYlHV3!!!3!!!"1k!!! 5ZJ!!!BT66e*8!IB!J!!F!BS!%%*14%`!!!#+3dp%43!"!*C'8N9'!!!!VNP$6L- !!!#k8dPD43!!!-C849K8!!%!dPG3Eh-!!!$UBA"XG!!!!2CMBA*L!!!"!QKQC() !!!%1D@0X0!!!!4TTBh-M!!!"*QPMFc3!!!%bFf0`G!!!!6jcBh0k!!!"5R0`FfJ !!!&@Fh4jE!!!!@)!J2rr!!!"93#3"[rr)!!!B46%k3J!!Irr&!!!I46%k63!J2r r!!!"HJ#3"CErr`!!!B8!N!6rN!3!!!&$!*!%"'Mrr`!!!"i!N!36LIrr!!!&93# 3"B$rr`!!"Ci!N!Err`!!!A8!N!Err`!!!9%!N!6T`2rr!!!&L!#3"CErr`!!!SN !N!@@rrm!!!50!*!&P[rr!!!%d3#3"B$rr`!!"EB8a6PJ!!$rr`#3#[rr!!!!@`# 3"!4Srrm!!!""!*!%))i: \ No newline at end of file diff --git a/externals/grill/xsample/maxmsp/xgroove~.help b/externals/grill/xsample/maxmsp/xgroove~.help index c26c6eff..2e4b3f03 100644 Binary files a/externals/grill/xsample/maxmsp/xgroove~.help and b/externals/grill/xsample/maxmsp/xgroove~.help differ diff --git a/externals/grill/xsample/source/groove.cpp b/externals/grill/xsample/source/groove.cpp index 5c2b056f..e5a0eaf5 100644 --- a/externals/grill/xsample/source/groove.cpp +++ b/externals/grill/xsample/source/groove.cpp @@ -26,7 +26,7 @@ class xgroove: FLEXT_HEADER(xgroove,xinter) public: - xgroove(I argc,t_atom *argv); + xgroove(I argc,const t_atom *argv); ~xgroove(); virtual BL Init(); @@ -49,7 +49,7 @@ public: V m_xzone(F xz); V m_xsymm(F xz); - V m_xshape(I argc = 0,t_atom *argv = NULL); + V m_xshape(I argc = 0,const t_atom *argv = NULL); V m_xkeep(BL k); enum xs_loop { @@ -132,7 +132,7 @@ V xgroove::setup(t_class *) } */ -xgroove::xgroove(I argc,t_atom *argv): +xgroove::xgroove(I argc,const t_atom *argv): loopmode(xsl_loop),curpos(0), _xzone(0),xzone(0),xsymm(0.5),xkeep(0),pblksz(0), znbuf(NULL),znmul(NULL),znidx(NULL),znpos(NULL), @@ -280,7 +280,7 @@ V xgroove::m_xsymm(F xs) do_xzone(); } -V xgroove::m_xshape(I argc,t_atom *argv) +V xgroove::m_xshape(I argc,const t_atom *argv) { const F pi = 3.14159265358979f; I i,sh = 0; @@ -652,6 +652,7 @@ V xgroove::m_help() post("\txzone {unit}: length of loop crossfade zone"); post("\txsymm -1,0...1: symmetry of crossfade zone inside/outside point"); post("\txshape 0/1 [param 0...1]: shape of crossfading (linear/trig)"); + post("\txkeep 0/1: try to preserve xzone/loop length"); post(""); } diff --git a/externals/grill/xsample/source/inter.cpp b/externals/grill/xsample/source/inter.cpp index 095fba6f..c88ceedb 100644 --- a/externals/grill/xsample/source/inter.cpp +++ b/externals/grill/xsample/source/inter.cpp @@ -27,7 +27,7 @@ xinter::xinter(): FLEXT_ADDMETHOD_E(0,"interp",m_interp); } -I xinter::m_set(I argc,t_atom *argv) +I xinter::m_set(I argc,const t_atom *argv) { I r = xsample::m_set(argc,argv); if(r < 0) m_reset(); // resets pos/min/max diff --git a/externals/grill/xsample/source/main.cpp b/externals/grill/xsample/source/main.cpp index 410746ff..27d66338 100644 --- a/externals/grill/xsample/source/main.cpp +++ b/externals/grill/xsample/source/main.cpp @@ -69,7 +69,7 @@ xsample::~xsample() -I xsample::m_set(I argc, t_atom *argv) +I xsample::m_set(I argc,const t_atom *argv) { return buf->Set(argc >= 1?GetASymbol(argv[0]):NULL); } diff --git a/externals/grill/xsample/source/main.h b/externals/grill/xsample/source/main.h index db78a630..5467bc1d 100644 --- a/externals/grill/xsample/source/main.h +++ b/externals/grill/xsample/source/main.h @@ -91,7 +91,7 @@ protected: virtual V m_stop() = 0; virtual BL m_reset(); - virtual I m_set(I argc,t_atom *argv); + virtual I m_set(I argc,const t_atom *argv); virtual V m_print() = 0; virtual BL m_refresh(); virtual V m_loadbang(); @@ -238,7 +238,7 @@ public: xinter(); protected: - virtual I m_set(I argc,t_atom *argv); + virtual I m_set(I argc,const t_atom *argv); virtual V m_start(); virtual V m_stop(); diff --git a/externals/grill/xsample/source/makefile.pd-linux b/externals/grill/xsample/source/makefile.pd-linux index 863a0068..2dba8cec 100644 --- a/externals/grill/xsample/source/makefile.pd-linux +++ b/externals/grill/xsample/source/makefile.pd-linux @@ -30,7 +30,8 @@ TARGDIR=../pd-linux CXX=g++-3.2 INCLUDES=$(PDPATH) FLAGS=-DPD -CFLAGS=-O6 -mcpu=pentiumpro -funroll-loops -fmove-all-movables -frerun-loop-opt -finline-functions +#CFLAGS=-O6 -mcpu=pentiumpro -funroll-loops -fmove-all-movables -frerun-loop-opt -finline-functions +CFLAGS=-O6 -mcpu=pentium3 -msse -mfpmath=sse -funroll-loops -fmove-all-movables -frerun-loop-opt -finline-functions LIBS=m # ---------------------------------------------- diff --git a/externals/grill/xsample/source/play.cpp b/externals/grill/xsample/source/play.cpp index 827d88de..6a84548f 100644 --- a/externals/grill/xsample/source/play.cpp +++ b/externals/grill/xsample/source/play.cpp @@ -22,7 +22,7 @@ class xplay: FLEXT_HEADER(xplay,xinter) public: - xplay(I argc, t_atom *argv); + xplay(I argc,const t_atom *argv); virtual BL Init(); @@ -54,7 +54,7 @@ V xplay::setup(t_class *) } */ -xplay::xplay(I argc, t_atom *argv) +xplay::xplay(I argc,const t_atom *argv) { I argi = 0; #ifdef MAXMSP diff --git a/externals/grill/xsample/source/record.cpp b/externals/grill/xsample/source/record.cpp index cc3543a3..869ca3d2 100644 --- a/externals/grill/xsample/source/record.cpp +++ b/externals/grill/xsample/source/record.cpp @@ -22,7 +22,7 @@ class xrecord: FLEXT_HEADER(xrecord,xsample) public: - xrecord(I argc,t_atom *argv); + xrecord(I argc,const t_atom *argv); virtual BL Init(); @@ -33,7 +33,7 @@ public: virtual V m_help(); virtual V m_print(); - virtual I m_set(I argc,t_atom *argv); + virtual I m_set(I argc,const t_atom *argv); virtual V m_pos(F pos); virtual V m_all(); @@ -51,7 +51,7 @@ public: virtual V m_loop(BL lp) { doloop = lp; } virtual V m_append(BL app) { if(!(appmode = app)) m_pos(0); } - virtual V m_draw(I argc,t_atom *argv); + virtual V m_draw(I argc,const t_atom *argv); protected: I inchns; @@ -105,7 +105,7 @@ V xrecord::setup(t_class *) } */ -xrecord::xrecord(I argc,t_atom *argv): +xrecord::xrecord(I argc,const t_atom *argv): dorec(false), sigmode(false),mixmode(false), appmode(true),doloop(false), @@ -211,7 +211,7 @@ V xrecord::m_pos(F pos) } -I xrecord::m_set(I argc,t_atom *argv) +I xrecord::m_set(I argc,const t_atom *argv) { I r = xsample::m_set(argc,argv); if(r < 0) m_reset(); // resets pos/min/max @@ -242,7 +242,7 @@ BL xrecord::m_reset() return xsample::m_reset(); } -V xrecord::m_draw(I argc,t_atom *argv) +V xrecord::m_draw(I argc,const t_atom *argv) { if(argc >= 1) { drintv = GetInt(argv[0]); diff --git a/externals/grill/xsample/source/xsample.cw b/externals/grill/xsample/source/xsample.cw index c9e91616..9ac0d8c8 100644 Binary files a/externals/grill/xsample/source/xsample.cw and b/externals/grill/xsample/source/xsample.cw differ diff --git a/externals/grill/xsample/source/xsample.dsp b/externals/grill/xsample/source/xsample.dsp index 6c97b49e..161c0264 100644 --- a/externals/grill/xsample/source/xsample.dsp +++ b/externals/grill/xsample/source/xsample.dsp @@ -5,17 +5,17 @@ # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 CFG=xsample - Win32 Debug -!MESSAGE Dies ist kein gόltiges Makefile. Zum Erstellen dieses Projekts mit NMAKE -!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und fόhren Sie den Befehl +!MESSAGE Dies ist kein gŸltiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und fŸhren Sie den Befehl !MESSAGE !MESSAGE NMAKE /f "xsample.mak". !MESSAGE -!MESSAGE Sie kφnnen beim Ausfόhren von NMAKE eine Konfiguration angeben +!MESSAGE Sie kšnnen beim AusfŸhren von NMAKE eine Konfiguration angeben !MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: !MESSAGE !MESSAGE NMAKE /f "xsample.mak" CFG="xsample - Win32 Debug" !MESSAGE -!MESSAGE Fόr die Konfiguration stehen zur Auswahl: +!MESSAGE FŸr die Konfiguration stehen zur Auswahl: !MESSAGE !MESSAGE "xsample - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") !MESSAGE "xsample - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") diff --git a/externals/grill/xsample/source/xsample.mpw b/externals/grill/xsample/source/xsample.mpw deleted file mode 100644 index 9e6b625e..00000000 --- a/externals/grill/xsample/source/xsample.mpw +++ /dev/null @@ -1,129 +0,0 @@ -# xsample - extended sample objects for Max/MSP and pd (pure data) -# Copyright (c) 2001,2002 Thomas Grill (xovo@gmx.net) -# -# Makefile for Apple MPW-PR -# -# usage: make -f xsample.mpw -# -# --------------------------------------------- - -MAKEFILE = xsample.mpw -€MondoBuild€ = {MAKEFILE} # Make blank to avoid rebuilds when makefile is modified - -ObjDir = ::MPW: -MaxSDK = HD Daten:Prog Stuff:Max/MSP SDK:SDK Examples -flext = :::flext: -Includes = -i :,"{flext}","{MaxSDK}:Max Includes","{MaxSDK}:MSP Includes" -Defines = -d MAXMSP - -Sym-PPC = -sym off -Flags = -bool on -enum int -includes unix -opt speed,unroll,unswitch -WarnOff = -w 35 - -PPCCPlusOptions = {Includes} {Sym-PPC} {Defines} {Flags} {WarnOff} - - -### Source Files ### - -SrcFiles = main.cpp inter.cpp groove.cpp play.cpp record.cpp -Headers = main.h - -### Object Files ### - -Obj-groove =  - "{ObjDir}main.cpp.x"  - "{ObjDir}inter.cpp.x"  - "{ObjDir}groove.cpp.x" - -Obj-play =  - "{ObjDir}main.cpp.x"  - "{ObjDir}inter.cpp.x"  - "{ObjDir}play.cpp.x" - -Obj-record =  - "{ObjDir}main.cpp.x"  - "{ObjDir}inter.cpp.x"  - "{ObjDir}record.cpp.x" - -Obj =  - "{ObjDir}main.cpp.x"  - "{ObjDir}record.cpp.x"  - "{ObjDir}play.cpp.x"  - "{ObjDir}inter.cpp.x"  - "{ObjDir}groove.cpp.x" - - -### Libraries ### - -LibFiles-Ext =  - "{flext}MPW:flext.o"  - "{MaxSDK}:Max Includes:MaxLib"  - "{MaxSDK}:MSP Includes:MaxAudioLib" - -LibFiles-PPC =  - "{SharedLibraries}StdCLib"  - "{SharedLibraries}MathLib"  - "{PPCLibraries}StdCRuntime.o"  - "{PPCLibraries}PPCCRuntime.o"  - "{PPCLibraries}MrCPlusLib.o"  - - -### Default Rules ### - -{ObjDir} Ÿ : - -.cpp.x Ÿ .cpp {€MondoBuild€} {Headers} - {PPCCPlus} {depDir}{default}.cpp -o {targDir}{default}.cpp.x {PPCCPlusOptions} - - -### Build Rules ### - -all Ÿ Folder {ObjDir}xsample -single Ÿ Folder {ObjDir}xgroove~ {ObjDir}xplay~ {ObjDir}xrecord~ - -Folder Ÿ - if !`Exists {ObjDir}` ; NewFolder {ObjDir} ; end - -{ObjDir}xgroove~ ŸŸ {Obj-groove} {LibFiles-Ext} - PPCLink  - -o {Targ}  - {deps}  - {LibFiles-PPC}  - {Sym-PPC}  - -mf -d  - -t 'iLaF' -c 'max2'  - -xm s  - -export main -main main - -{ObjDir}xplay~ ŸŸ {Obj-play} {LibFiles-Ext} - PPCLink  - -o {Targ}  - {deps}  - {LibFiles-PPC}  - {Sym-PPC}  - -mf -d  - -t 'iLaF' -c 'max2'  - -xm s  - -export main -main main - -{ObjDir}xrecord~ ŸŸ {Obj-record} {LibFiles-Ext} - PPCLink  - -o {Targ}  - {deps}  - {LibFiles-PPC}  - {Sym-PPC}  - -mf -d  - -t 'iLaF' -c 'max2'  - -xm s  - -export main -main main - -{ObjDir}xsample ŸŸ {Obj} {LibFiles-Ext} - PPCLink  - -o {Targ}  - {deps}  - {LibFiles-PPC}  - {Sym-PPC}  - -mf -d  - -t 'iLaF' -c 'max2'  - -xm s  - -export main -main main -- cgit v1.2.1