aboutsummaryrefslogtreecommitdiff
path: root/externals/grill
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2002-11-26 22:35:57 +0000
committerThomas Grill <xovo@users.sourceforge.net>2002-11-26 22:35:57 +0000
commit7017ea71b842451548451125d10acd5c27086e3b (patch)
treeee55af9f9f4f9b2b1c060545763e553a85e6963d /externals/grill
parentae094b15eab3b833bf69a8c26492dc022d09e5fb (diff)
""
svn path=/trunk/; revision=262
Diffstat (limited to 'externals/grill')
-rw-r--r--externals/grill/py/build-pd-cygwin.sh10
-rwxr-xr-xexternals/grill/py/build-pd-darwin.sh11
-rwxr-xr-xexternals/grill/py/build-pd-linux.sh2
-rw-r--r--externals/grill/py/config-pd-cygwin.txt29
-rwxr-xr-xexternals/grill/py/config-pd-darwin.txt31
-rw-r--r--externals/grill/py/config-pd-linux.txt8
-rw-r--r--externals/grill/py/config-pd-msvc.txt6
-rwxr-xr-xexternals/grill/py/makefile.pd-darwin72
-rw-r--r--externals/grill/py/makefile.pd-msvc58
-rw-r--r--externals/grill/py/pd/thread-1.pd94
-rw-r--r--externals/grill/py/py.mpw91
-rw-r--r--externals/grill/py/readme.txt20
-rw-r--r--externals/grill/py/scripts/threads.py5
-rw-r--r--externals/grill/py/source/bound.cpp2
-rw-r--r--externals/grill/py/source/main.cpp14
-rw-r--r--externals/grill/py/source/main.h6
-rw-r--r--externals/grill/py/source/modmeth.cpp2
-rw-r--r--externals/grill/py/source/py.cpp32
-rw-r--r--externals/grill/py/source/pyext.cpp12
-rw-r--r--externals/grill/py/source/pyext.h14
-rwxr-xr-xexternals/grill/xsample/MPW/MakeAliases1
-rw-r--r--externals/grill/xsample/maxmsp/xgroove~.helpbin7310 -> 8273 bytes
-rw-r--r--externals/grill/xsample/source/groove.cpp9
-rw-r--r--externals/grill/xsample/source/inter.cpp2
-rw-r--r--externals/grill/xsample/source/main.cpp2
-rw-r--r--externals/grill/xsample/source/main.h4
-rw-r--r--externals/grill/xsample/source/makefile.pd-linux3
-rw-r--r--externals/grill/xsample/source/play.cpp4
-rw-r--r--externals/grill/xsample/source/record.cpp12
-rw-r--r--externals/grill/xsample/source/xsample.cwbin105160 -> 105160 bytes
-rw-r--r--externals/grill/xsample/source/xsample.dsp8
-rw-r--r--externals/grill/xsample/source/xsample.mpw129
32 files changed, 311 insertions, 382 deletions
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
--- a/externals/grill/xsample/maxmsp/xgroove~.help
+++ b/externals/grill/xsample/maxmsp/xgroove~.help
Binary files 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
--- a/externals/grill/xsample/source/xsample.cw
+++ b/externals/grill/xsample/source/xsample.cw
Binary files 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