aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--externals/grill/flext/config-pd-darwin.txt6
-rw-r--r--externals/grill/flext/flext.cwbin789029 -> 789029 bytes
-rwxr-xr-xexternals/grill/flext/flext.pbproj/project.pbxproj159
-rw-r--r--externals/grill/flext/flext.vcproj4
-rw-r--r--externals/grill/flext/source/flatom_pr.cpp14
-rw-r--r--externals/grill/flext/source/flattr.cpp5
-rw-r--r--externals/grill/flext/source/flattr_ed.cpp1
-rw-r--r--externals/grill/flext/source/flbase.cpp2
-rwxr-xr-xexternals/grill/flext/source/flqueue.cpp2
-rw-r--r--externals/grill/flext/source/flsupport.h3
-rw-r--r--externals/grill/pool/main.cpp50
-rw-r--r--externals/grill/pool/pool.pd8
-rw-r--r--externals/grill/pool/pool.vcproj8
-rw-r--r--externals/grill/pool/readme.txt5
-rwxr-xr-xexternals/grill/vasp/config-pd-darwin.txt8
-rwxr-xr-xexternals/grill/vasp/makefile.pd-darwin2
-rwxr-xr-xexternals/grill/xsample/config-pd-darwin.txt8
-rwxr-xr-xexternals/grill/xsample/makefile.pd-darwin6
-rw-r--r--externals/grill/xsample/maxmsp/xgroove~.helpbin7572 -> 7451 bytes
-rw-r--r--externals/grill/xsample/source/groove.cpp54
-rwxr-xr-xexternals/grill/xsample/source/inter.h106
-rw-r--r--externals/grill/xsample/source/main.h4
-rwxr-xr-xexternals/grill/xsample/xsample.cwbin279503 -> 279503 bytes
23 files changed, 338 insertions, 117 deletions
diff --git a/externals/grill/flext/config-pd-darwin.txt b/externals/grill/flext/config-pd-darwin.txt
index 7b1a0fb9..f26bf03a 100644
--- a/externals/grill/flext/config-pd-darwin.txt
+++ b/externals/grill/flext/config-pd-darwin.txt
@@ -3,10 +3,10 @@
#
# your c++ compiler (define only if it's different than g++)
-# CXX=g++
+CXX=g++-3.3
# where are the PD header files? (m_pd.h, m_imp.h, g_canvas.h)
-PDPATH=/usr/local/pd/src
+PDPATH=/Users/thomas/Desktop/pd-0.37-test8/src
# where is the SndObj include directory?
# (leave blank or comment out to disable SndObj support)
@@ -21,7 +21,7 @@ TARGDIR=./pd-darwin
# where should flext libraries be installed?
# (leave blank to omit installation)
-INSTDIR=/usr/local/pd/flext
+INSTDIR=/usr/local/lib/pd/flext
# additional compiler flags
# (check if they fit for your system!)
diff --git a/externals/grill/flext/flext.cw b/externals/grill/flext/flext.cw
index 5d64cb85..60cdd1eb 100644
--- a/externals/grill/flext/flext.cw
+++ b/externals/grill/flext/flext.cw
Binary files differ
diff --git a/externals/grill/flext/flext.pbproj/project.pbxproj b/externals/grill/flext/flext.pbproj/project.pbxproj
index 58f090cd..c936555b 100755
--- a/externals/grill/flext/flext.pbproj/project.pbxproj
+++ b/externals/grill/flext/flext.pbproj/project.pbxproj
@@ -37,6 +37,7 @@
F5128F2503864E5501A80AC9,
F5128F2603864E5501A80AC9,
);
+ hasScannedForEncodings = 1;
isa = PBXProject;
mainGroup = 0867D691FE84028FC02AAC07;
productRefGroup = 034768DDFF38A45A11DB9C8B;
@@ -131,6 +132,7 @@
F5B1FAC8041191190179CFEF,
F598D263044CC4A001A80AC9,
F598D264044CC4A001A80AC9,
+ E9BDCC4104F4D7C1008929A0,
);
isa = PBXGroup;
name = Source;
@@ -142,66 +144,153 @@
//082
//083
//084
+//E90
+//E91
+//E92
+//E93
+//E94
+ E9BDCC4104F4D7C1008929A0 = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ name = flattr_ed.cpp;
+ path = source/flattr_ed.cpp;
+ refType = 4;
+ };
+ E9BDCC4204F4D7C1008929A0 = {
+ fileRef = E9BDCC4104F4D7C1008929A0;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E9BDCC4304F4D7C1008929A0 = {
+ fileRef = E9BDCC4104F4D7C1008929A0;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E9BDCC4404F4D7C1008929A0 = {
+ fileRef = E9BDCC4104F4D7C1008929A0;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E9BDCC4504F4D7C1008929A0 = {
+ fileRef = E9BDCC4104F4D7C1008929A0;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E9BDCC4604F4D7C1008929A0 = {
+ fileRef = E9BDCC4104F4D7C1008929A0;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E9BDCC4704F4D7C1008929A0 = {
+ fileRef = E9BDCC4104F4D7C1008929A0;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E9BDCC4804F4D7C1008929A0 = {
+ fileRef = E9BDCC4104F4D7C1008929A0;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E9BDCC4904F4D7C1008929A0 = {
+ fileRef = E9BDCC4104F4D7C1008929A0;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E9BDCC4A04F4D7C1008929A0 = {
+ fileRef = E9BDCC4104F4D7C1008929A0;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E9BDCC4B04F4D7C1008929A0 = {
+ fileRef = E9BDCC4104F4D7C1008929A0;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+//E90
+//E91
+//E92
+//E93
+//E94
//F50
//F51
//F52
//F53
//F54
F504A66B03CE39F501A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flatom_app.cpp;
path = source/flatom_app.cpp;
refType = 4;
};
F504A66C03CE39F501A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flatom_part.cpp;
path = source/flatom_part.cpp;
refType = 4;
};
F504A66D03CE39F501A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flitem.cpp;
path = source/flitem.cpp;
refType = 4;
};
F504A66E03CE39F501A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flmeth.cpp;
path = source/flmeth.cpp;
refType = 4;
};
F504A66F03CE39F501A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flmsg.cpp;
path = source/flmsg.cpp;
refType = 4;
};
F504A67003CE39F501A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flprefix.h;
path = source/flprefix.h;
refType = 4;
};
F504A67103CE39F501A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flproxy.cpp;
path = source/flproxy.cpp;
refType = 4;
};
F504A67203CE39F501A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flqueue.cpp;
path = source/flqueue.cpp;
refType = 4;
};
F504A67303CE39F501A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flstk.cpp;
path = source/flstk.cpp;
refType = 4;
};
F504A67403CE39F501A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flstk.h;
path = source/flstk.h;
@@ -514,150 +603,175 @@
name = Deployment;
};
F55CED7B0383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flatom_pr.cpp;
path = source/flatom_pr.cpp;
refType = 2;
};
F55CED7C0383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flatom.cpp;
path = source/flatom.cpp;
refType = 2;
};
F55CED7D0383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flattr.cpp;
path = source/flattr.cpp;
refType = 2;
};
F55CED7E0383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flbase.cpp;
path = source/flbase.cpp;
refType = 2;
};
F55CED7F0383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flbase.h;
path = source/flbase.h;
refType = 2;
};
F55CED800383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flbuf.cpp;
path = source/flbuf.cpp;
refType = 2;
};
F55CED810383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flclass.h;
path = source/flclass.h;
refType = 2;
};
F55CED860383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldefs.h;
path = source/fldefs.h;
refType = 2;
};
F55CED870383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldoxygen.h;
path = source/fldoxygen.h;
refType = 2;
};
F55CED880383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldsp.cpp;
path = source/fldsp.cpp;
refType = 2;
};
F55CED890383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldsp.h;
path = source/fldsp.h;
refType = 2;
};
F55CED8A0383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flext.cpp;
path = source/flext.cpp;
refType = 2;
};
F55CED8B0383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flext.h;
path = source/flext.h;
refType = 2;
};
F55CED8C0383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flinternal.h;
path = source/flinternal.h;
refType = 2;
};
F55CED8D0383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fllib.cpp;
path = source/fllib.cpp;
refType = 2;
};
F55CED8E0383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flmspbuffer.h;
path = source/flmspbuffer.h;
refType = 2;
};
F55CED8F0383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flout.cpp;
path = source/flout.cpp;
refType = 2;
};
F55CED900383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flsndobj.cpp;
path = source/flsndobj.cpp;
refType = 2;
};
F55CED910383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flsndobj.h;
path = source/flsndobj.h;
refType = 2;
};
F55CED920383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flstdc.h;
path = source/flstdc.h;
refType = 2;
};
F55CED930383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flsupport.cpp;
path = source/flsupport.cpp;
refType = 2;
};
F55CED940383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flsupport.h;
path = source/flsupport.h;
refType = 2;
};
F55CED950383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flthr.cpp;
path = source/flthr.cpp;
refType = 2;
};
F55CED960383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flutil.cpp;
path = source/flutil.cpp;
refType = 2;
};
F55CED970383E50201A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flxlet.cpp;
path = source/flxlet.cpp;
@@ -738,6 +852,7 @@
F5B1FACE0411935C0179CFEF,
F5CBC62004757C1C01A0C81C,
F5CBC62104757C1D01A0C81C,
+ E9BDCC4B04F4D7C1008929A0,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -786,7 +901,6 @@
name = "PD@OSX single";
productName = "PD@OSX";
productReference = F55CEDC20383E6E401A80AC9;
- shouldUseHeadermap = 0;
};
F55CEDC20383E6E401A80AC9 = {
isa = PBXLibraryReference;
@@ -963,7 +1077,6 @@
productInstallPath = /usr/local/pd/flext;
productName = "PD@OSX";
productReference = F55CEE120383F55201A80AC9;
- shouldUseHeadermap = 0;
};
F55CEDF70383F55201A80AC9 = {
buildActionMask = 2147483647;
@@ -1079,6 +1192,7 @@
F5B1FACF041193680179CFEF,
F5CBC62204757C2201A0C81C,
F5CBC62304757C2301A0C81C,
+ E9BDCC4A04F4D7C1008929A0,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -1211,7 +1325,6 @@
productInstallPath = /usr/local/pd/flext;
productName = "PD@OSX";
productReference = F55CEE2F0383F57A01A80AC9;
- shouldUseHeadermap = 0;
};
F55CEE140383F57A01A80AC9 = {
buildActionMask = 2147483647;
@@ -1327,6 +1440,7 @@
F5B1FAD0041193740179CFEF,
F5CBC62404757C2601A0C81C,
F5CBC62504757C2701A0C81C,
+ E9BDCC4904F4D7C1008929A0,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -1459,7 +1573,6 @@
productInstallPath = /usr/local/pd/flext;
productName = "PD@OSX";
productReference = F55CEE4C0383F59B01A80AC9;
- shouldUseHeadermap = 0;
};
F55CEE310383F59B01A80AC9 = {
buildActionMask = 2147483647;
@@ -1575,6 +1688,7 @@
F5B1FACD0411918B0179CFEF,
F598D265044CC4A001A80AC9,
F598D266044CC4A001A80AC9,
+ E9BDCC4804F4D7C1008929A0,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -1696,7 +1810,6 @@
isa = PBXAggregateTarget;
name = "all PD@OSX";
productName = "PD@OSX";
- shouldUseHeadermap = 0;
};
F55CEE530383F9A301A80AC9 = {
isa = PBXTargetDependency;
@@ -1715,12 +1828,14 @@
target = F55CEE300383F59B01A80AC9;
};
F598D263044CC4A001A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flbind.cpp;
path = source/flbind.cpp;
refType = 4;
};
F598D264044CC4A001A80AC9 = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = flsimd.cpp;
path = source/flsimd.cpp;
@@ -1768,7 +1883,6 @@
name = "Max@OSX threaded";
productName = "PD@OSX";
productReference = F59A5FAD0386DF3201A80AC9;
- shouldUseHeadermap = 0;
};
F59A5F920386DF3201A80AC9 = {
buildActionMask = 2147483647;
@@ -1881,6 +1995,7 @@
F504A6A203CE3C2801A80AC9,
F504A6A303CE3C2901A80AC9,
F504A6A403CE3C2901A80AC9,
+ E9BDCC4604F4D7C1008929A0,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -2012,7 +2127,6 @@
name = "Max@OSX single";
productName = "PD@OSX";
productReference = F5AAF632038683E801A80AC9;
- shouldUseHeadermap = 0;
};
F5AAF617038683E801A80AC9 = {
buildActionMask = 2147483647;
@@ -2125,6 +2239,7 @@
F504A69A03CE3C1E01A80AC9,
F504A69B03CE3C1F01A80AC9,
F504A69C03CE3C2001A80AC9,
+ E9BDCC4704F4D7C1008929A0,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -2227,6 +2342,7 @@
refType = 3;
};
F5B1FAC8041191190179CFEF = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fltimer.cpp;
path = source/fltimer.cpp;
@@ -2286,7 +2402,6 @@
name = "jMax@OSX single";
productName = "PD@OSX";
productReference = F5C2051103D403B401A80AC9;
- shouldUseHeadermap = 0;
};
F5C204EE03D403B401A80AC9 = {
buildActionMask = 2147483647;
@@ -2405,6 +2520,7 @@
F5C2050C03D403B401A80AC9,
F5C2050D03D403B401A80AC9,
F5C2050E03D403B401A80AC9,
+ E9BDCC4504F4D7C1008929A0,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -2578,7 +2694,6 @@
name = "jMax@OSX threaded";
productName = "PD@OSX";
productReference = F5C2062403D470B401A80AC9;
- shouldUseHeadermap = 0;
};
F5C2060103D470B401A80AC9 = {
buildActionMask = 2147483647;
@@ -2697,6 +2812,7 @@
F5C2061F03D470B401A80AC9,
F5C2062003D470B401A80AC9,
F5C2062103D470B401A80AC9,
+ E9BDCC4404F4D7C1008929A0,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -2848,14 +2964,17 @@
F5CBC5B604757A5901A0C81C,
);
buildSettings = {
+ CC = "/usr/bin/gcc-3.3";
+ CPLUSPLUS = "/usr/bin/g++-3.3";
DEBUGGING_SYMBOLS = NO;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
- HEADER_SEARCH_PATHS = /usr/local/pd/src;
+ GCC_VERSION = 3.x;
+ HEADER_SEARCH_PATHS = /Volumes/Daten/Prog/pd/pd/src;
INSTALL_PATH = /usr/local/lib;
LIBRARY_STYLE = DYNAMIC;
OPTIMIZATION_CFLAGS = "-O3";
- OTHER_CFLAGS = "-D FLEXT_SYS_PD -D FLEXT_SHARED -D FLEXT_THREADS -D FLEXT_USE_SIMD -Wno-switch -Wno-long-double";
+ OTHER_CFLAGS = "-D FLEXT_SYS_PD -D FLEXT_SHARED -D FLEXT_PDLOCK -D FLEXT_USE_SIMD -Wno-switch -Wno-long-double -faltivec -maltivec -fkeep-inline-functions";
OTHER_LDFLAGS = "-lgcc -lstdc++ -flat_namespace -undefined suppress";
OTHER_LIBTOOL_FLAGS = "";
OTHER_REZFLAGS = "";
@@ -2872,7 +2991,6 @@
productInstallPath = /usr/local/lib;
productName = "PD@OSX";
productReference = F5CBC5B704757A5901A0C81C;
- shouldUseHeadermap = 0;
};
F5CBC59304757A5901A0C81C = {
buildActionMask = 2147483647;
@@ -2994,6 +3112,7 @@
F5CBC5B404757A5901A0C81C,
F5CBC61E04757C1401A0C81C,
F5CBC61F04757C1401A0C81C,
+ E9BDCC4204F4D7C1008929A0,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
@@ -3145,60 +3264,70 @@
refType = 3;
};
F5CBC5B804757BC801A0C81C = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldefs_attradd.h;
path = source/fldefs_attradd.h;
refType = 4;
};
F5CBC5B904757BC801A0C81C = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldefs_attrcb.h;
path = source/fldefs_attrcb.h;
refType = 4;
};
F5CBC5BA04757BC801A0C81C = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldefs_attrvar.h;
path = source/fldefs_attrvar.h;
refType = 4;
};
F5CBC5BB04757BC801A0C81C = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldefs_hdr.h;
path = source/fldefs_hdr.h;
refType = 4;
};
F5CBC5BC04757BC801A0C81C = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldefs_methadd.h;
path = source/fldefs_methadd.h;
refType = 4;
};
F5CBC5BD04757BC801A0C81C = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldefs_methbind.h;
path = source/fldefs_methbind.h;
refType = 4;
};
F5CBC5BE04757BC801A0C81C = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldefs_methcall.h;
path = source/fldefs_methcall.h;
refType = 4;
};
F5CBC5BF04757BC801A0C81C = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldefs_methcb.h;
path = source/fldefs_methcb.h;
refType = 4;
};
F5CBC5C004757BC801A0C81C = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldefs_meththr.h;
path = source/fldefs_meththr.h;
refType = 4;
};
F5CBC5C104757BC801A0C81C = {
+ fileEncoding = 30;
isa = PBXFileReference;
name = fldefs_setup.h;
path = source/fldefs_setup.h;
@@ -3826,11 +3955,11 @@
buildSettings = {
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
- HEADER_SEARCH_PATHS = /usr/local/pd/src;
+ HEADER_SEARCH_PATHS = /Volumes/Daten/Prog/pd/pd/src;
INSTALL_PATH = /usr/local/lib;
LIBRARY_STYLE = DYNAMIC;
OPTIMIZATION_CFLAGS = "-O0";
- OTHER_CFLAGS = "-DFLEXT_SYS_PD -DFLEXT_DEBUG -DFLEXT_SHARED -DFLEXT_THREADS -DFLEXT_USE_SIMD -Wno-switch -Wno-long-double";
+ OTHER_CFLAGS = "-DFLEXT_SYS_PD -DFLEXT_DEBUG -DFLEXT_SHARED -DFLEXT_PDLOCK -DFLEXT_USE_SIMD -Wno-switch -Wno-long-double -faltivec -maltivec -fkeep-inline-functions";
OTHER_LDFLAGS = "-lgcc -lstdc++ -flat_namespace -undefined suppress";
OTHER_LIBTOOL_FLAGS = "";
OTHER_REZFLAGS = "";
@@ -3847,7 +3976,6 @@
productInstallPath = /usr/local/lib;
productName = "PD@OSX";
productReference = F5CBC69B047584CD01A0C81C;
- shouldUseHeadermap = 0;
};
F5CBC66A047584CD01A0C81C = {
buildActionMask = 2147483647;
@@ -4029,6 +4157,7 @@
F5CBC695047584CD01A0C81C,
F5CBC696047584CD01A0C81C,
F5CBC697047584CD01A0C81C,
+ E9BDCC4304F4D7C1008929A0,
);
isa = PBXSourcesBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
diff --git a/externals/grill/flext/flext.vcproj b/externals/grill/flext/flext.vcproj
index 303c23ac..121ba62c 100644
--- a/externals/grill/flext/flext.vcproj
+++ b/externals/grill/flext/flext.vcproj
@@ -174,7 +174,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="c:\programme\audio\pd\src,f:\prog\audio\sndobj\include,f:\prog\audio\stk\include"
+ AdditionalIncludeDirectories="f:\prog\pd\pd-cvs\src,f:\prog\audio\sndobj\include,f:\prog\audio\stk\include"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;FLEXT_SYS=2;FLEXT_USE_SIMD"
BasicRuntimeChecks="3"
RuntimeLibrary="5"
@@ -275,7 +275,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="c:\programme\audio\pd\src,f:\prog\audio\sndobj\include,f:\prog\audio\stk\include"
+ AdditionalIncludeDirectories="f:\prog\pd\pd-cvs\src,f:\prog\audio\sndobj\include,f:\prog\audio\stk\include"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;FLEXT_SYS=2;FLEXT_USE_SIMD"
StringPooling="TRUE"
RuntimeLibrary="4"
diff --git a/externals/grill/flext/source/flatom_pr.cpp b/externals/grill/flext/source/flatom_pr.cpp
index 20ae6cad..a77374b9 100644
--- a/externals/grill/flext/source/flatom_pr.cpp
+++ b/externals/grill/flext/source/flatom_pr.cpp
@@ -33,7 +33,7 @@ bool flext::PrintAtom(const t_atom &a,char *buf,int bufsz)
}
else if(IsPointer(a)) {
STD::sprintf(buf,"%p",GetPointer(a));
- }
+ }
#if FLEXT_SYS == FLEXT_SYS_PD
else if(a.a_type == A_DOLLAR) {
STD::sprintf(buf,"$%d",a.a_w.w_index);
@@ -41,6 +41,12 @@ bool flext::PrintAtom(const t_atom &a,char *buf,int bufsz)
else if(a.a_type == A_DOLLSYM) {
STD::sprintf(buf,"$%s",GetString(a));
}
+#elif FLEXT_SYS == FLEXT_SYS_MAX
+ else if(a.a_type == A_DOLLAR) {
+ STD::sprintf(buf,"$%d",a.a_w.w_long);
+ }
+#else
+//#pragma message("Not implemented")
#endif
else {
ERRINTERNAL();
@@ -66,6 +72,12 @@ bool flext::PrintList(int argc,const t_atom *argv,char *buf,int bufsz)
return ok;
}
+bool flext::AtomList::Print(char *buffer,int buflen) const
+{
+ return flext::PrintList(Count(),Atoms(),buffer,buflen);
+}
+
+
bool flext::ScanAtom(t_atom &a,const char *buf)
{
// skip whitespace
diff --git a/externals/grill/flext/source/flattr.cpp b/externals/grill/flext/source/flattr.cpp
index 10c46af0..52d46872 100644
--- a/externals/grill/flext/source/flattr.cpp
+++ b/externals/grill/flext/source/flattr.cpp
@@ -27,8 +27,9 @@ WARRANTIES, see the file, "license.txt," in this distribution.
flext_base::AttrItem::AttrItem(const t_symbol *t,metharg tp,methfun f,int fl):
Item(t,0,NULL),index(0),
- flags(fl|afl_shown),counter(NULL),
- argtp(tp),fun(f)
+ flags(fl|afl_shown),
+ argtp(tp),fun(f),
+ counter(NULL)
{}
flext_base::AttrItem::~AttrItem()
diff --git a/externals/grill/flext/source/flattr_ed.cpp b/externals/grill/flext/source/flattr_ed.cpp
index fddbb69b..a75e3715 100644
--- a/externals/grill/flext/source/flattr_ed.cpp
+++ b/externals/grill/flext/source/flattr_ed.cpp
@@ -328,7 +328,6 @@ void flext_base::cb_GfxProperties(t_gobj *c, t_glist *)
for(int i = 0; i < cnt; ++i) {
const t_symbol *sym = GetSymbol(la[i]);
- const char *bcur = b;
// get attribute
AttrItem *gattr = th->FindAttrib(sym,true);
diff --git a/externals/grill/flext/source/flbase.cpp b/externals/grill/flext/source/flbase.cpp
index 0619b796..357df17e 100644
--- a/externals/grill/flext/source/flbase.cpp
+++ b/externals/grill/flext/source/flbase.cpp
@@ -114,7 +114,7 @@ const t_symbol *flext_obj::GetParamSym(const t_symbol *sym,t_canvas *c)
}
else
#else
- #pragma warning("Not implemented")
+ #pragma message("Not implemented")
#endif
return sym;
}
diff --git a/externals/grill/flext/source/flqueue.cpp b/externals/grill/flext/source/flqueue.cpp
index d47666e3..a75b4a89 100755
--- a/externals/grill/flext/source/flqueue.cpp
+++ b/externals/grill/flext/source/flqueue.cpp
@@ -22,7 +22,7 @@ WARRANTIES, see the file, "license.txt," in this distribution.
class qmsg
{
public:
- qmsg(flext_base *b): th(b),nxt(NULL),tp(tp_none) {}
+ qmsg(flext_base *b): nxt(NULL),th(b),tp(tp_none) {}
~qmsg();
qmsg *nxt;
diff --git a/externals/grill/flext/source/flsupport.h b/externals/grill/flext/source/flsupport.h
index bf37c355..c2eaa18f 100644
--- a/externals/grill/flext/source/flsupport.h
+++ b/externals/grill/flext/source/flsupport.h
@@ -17,7 +17,6 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#include "flstdc.h"
-
class FLEXT_SHARE FLEXT_CLASSDEF(flext);
typedef class FLEXT_CLASSDEF(flext) flext;
@@ -535,7 +534,7 @@ public:
AtomList &Part(int offs,int len) { return (*this = GetPart(offs,len)); }
//! Represent as a string
- bool Print(char *buffer,int buflen) const { return flext::PrintList(Count(),Atoms(),buffer,buflen); }
+ bool Print(char *buffer,int buflen) const;
protected:
int cnt;
diff --git a/externals/grill/pool/main.cpp b/externals/grill/pool/main.cpp
index 135872b3..0cf73ccd 100644
--- a/externals/grill/pool/main.cpp
+++ b/externals/grill/pool/main.cpp
@@ -9,6 +9,7 @@ WARRANTIES, see the file, "license.txt," in this distribution.
*/
#include "pool.h"
+#include <string>
#define POOL_VERSION "0.2.0pre"
@@ -139,6 +140,8 @@ private:
static pooldata *GetPool(const S *s);
static V RmvPool(pooldata *p);
+ std::string MakeFilename(const C *fn) const;
+
FLEXT_CALLVAR_V(mg_pool,ms_pool)
FLEXT_ATTRVAR_B(absdir)
FLEXT_ATTRVAR_B(echo)
@@ -209,7 +212,7 @@ pooldata *pool::head,*pool::tail;
V pool::setup(t_classid c)
{
post("");
- post("pool %s - hierarchical storage object,(C)2002-2003 Thomas Grill",POOL_VERSION);
+ post("pool %s - hierarchical storage object, (C)2002-2003 Thomas Grill",POOL_VERSION);
post("");
head = tail = NULL;
@@ -874,8 +877,11 @@ V pool::load(I argc,const A *argv,BL xml)
if(!flnm)
post("%s - %s: no filename given",thisName(),sym);
- else if(!(xml?pl->LoadXML(flnm):pl->Load(flnm)))
- post("%s - %s: error loading data",thisName(),sym);
+ else {
+ string fl(MakeFilename(flnm));
+ if(!(xml?pl->LoadXML(fl.c_str()):pl->Load(fl.c_str())))
+ post("%s - %s: error loading data",thisName(),sym);
+ }
echodir();
}
@@ -891,8 +897,11 @@ V pool::save(I argc,const A *argv,BL xml)
if(!flnm)
post("%s - %s: no filename given",thisName(),sym);
- else if(!(xml?pl->SaveXML(flnm):pl->Save(flnm)))
- post("%s - %s: error saving data",thisName(),sym);
+ else {
+ string fl(MakeFilename(flnm));
+ if(!(xml?pl->SaveXML(fl.c_str()):pl->Save(fl.c_str())))
+ post("%s - %s: error saving data",thisName(),sym);
+ }
echodir();
}
@@ -908,8 +917,11 @@ V pool::lddir(I argc,const A *argv,BL xml)
if(!flnm)
post("%s - %s: invalid filename",thisName(),sym);
- else if(!(xml?pl->LdDirXML(curdir,flnm,0):pl->LdDir(curdir,flnm,0)))
- post("%s - %s: directory couldn't be loaded",thisName(),sym);
+ else {
+ string fl(MakeFilename(flnm));
+ if(!(xml?pl->LdDirXML(curdir,fl.c_str(),0):pl->LdDir(curdir,fl.c_str(),0)))
+ post("%s - %s: directory couldn't be loaded",thisName(),sym);
+ }
echodir();
}
@@ -941,7 +953,8 @@ V pool::ldrec(I argc,const A *argv,BL xml)
if(!flnm)
post("%s - %s: invalid filename",thisName(),sym);
else {
- if(!(xml?pl->LdDirXML(curdir,flnm,depth,mkdir):pl->LdDir(curdir,flnm,depth,mkdir)))
+ string fl(MakeFilename(flnm));
+ if(!(xml?pl->LdDirXML(curdir,fl.c_str(),depth,mkdir):pl->LdDir(curdir,fl.c_str(),depth,mkdir)))
post("%s - %s: directory couldn't be saved",thisName(),sym);
}
@@ -960,7 +973,8 @@ V pool::svdir(I argc,const A *argv,BL xml)
if(!flnm)
post("%s - %s: invalid filename",thisName(),sym);
else {
- if(!(xml?pl->SvDirXML(curdir,flnm,0,absdir):pl->SvDir(curdir,flnm,0,absdir)))
+ string fl(MakeFilename(flnm));
+ if(!(xml?pl->SvDirXML(curdir,fl.c_str(),0,absdir):pl->SvDir(curdir,fl.c_str(),0,absdir)))
post("%s - %s: directory couldn't be saved",thisName(),sym);
}
@@ -979,7 +993,8 @@ V pool::svrec(I argc,const A *argv,BL xml)
if(!flnm)
post("%s - %s: invalid filename",thisName(),sym);
else {
- if(!(xml?pl->SvDirXML(curdir,flnm,-1,absdir):pl->SvDir(curdir,flnm,-1,absdir)))
+ string fl(MakeFilename(flnm));
+ if(!(xml?pl->SvDirXML(curdir,fl.c_str(),-1,absdir):pl->SvDir(curdir,fl.c_str(),-1,absdir)))
post("%s - %s: directory couldn't be saved",thisName(),sym);
}
@@ -1051,3 +1066,18 @@ V pool::RmvPool(pooldata *p)
}
}
+std::string pool::MakeFilename(const C *fn) const
+{
+#if FLEXT_SYS == FLEXT_SYS_PD
+ C *sl = strrchr(fn,'/');
+ if(!sl) sl = strrchr(fn,'\\');
+ if(!sl) {
+ const C *p = GetString(canvas_getdir(thisCanvas()));
+ return string(p)+'/'+fn;
+ }
+ else
+ return fn;
+#else
+ return fn;
+#endif
+}
diff --git a/externals/grill/pool/pool.pd b/externals/grill/pool/pool.pd
index 3319914b..eab56fc3 100644
--- a/externals/grill/pool/pool.pd
+++ b/externals/grill/pool/pool.pd
@@ -1,4 +1,4 @@
-#N canvas 12 3 934 690 12;
+#N canvas 12 3 936 692 12;
#X msg 295 108 set 1 2 3;
#X obj 308 619 print K;
#X msg 607 211 getall;
@@ -94,7 +94,7 @@
#X connect 23 0 26 0;
#X restore 718 511 pd dirs;
#X text 715 485 directory operations;
-#N canvas 0 0 819 451 file 0;
+#N canvas 0 0 821 453 file 0;
#X text 117 207 save dir and subdirs;
#X text 117 165 save data in current dir;
#X text 117 253 load data into current dir;
@@ -127,6 +127,8 @@
#X msg 473 228 svxrec pool.xml;
#X msg 472 274 ldxdir pool.xml;
#X msg 472 321 ldxrec pool.xml;
+#X text 26 398 If the file name is given without a path specification
+the folder containing the current patcher will be used.;
#X connect 20 0 9 0;
#X connect 21 0 9 0;
#X connect 22 0 9 0;
@@ -202,6 +204,7 @@ Grill;
#X text 332 457 can be given for optimal performance;
#X msg 428 218 get 3;
#X msg 299 227 set 3 -1 1;
+#X msg 41 518 getmethods;
#X connect 0 0 72 0;
#X connect 2 0 72 0;
#X connect 3 0 72 0;
@@ -236,3 +239,4 @@ Grill;
#X connect 72 4 64 0;
#X connect 75 0 72 0;
#X connect 76 0 72 0;
+#X connect 77 0 72 0;
diff --git a/externals/grill/pool/pool.vcproj b/externals/grill/pool/pool.vcproj
index 3b04751b..6370595d 100644
--- a/externals/grill/pool/pool.vcproj
+++ b/externals/grill/pool/pool.vcproj
@@ -24,7 +24,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="c:\programme\audio\pd\src,f:\prog\max\flext\source"
+ AdditionalIncludeDirectories="f:\prog\pd\pd-cvs\src,f:\prog\max\flext\source"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;FLEXT_SYS=2"
StringPooling="TRUE"
RuntimeLibrary="4"
@@ -45,7 +45,7 @@
OutputFile="pd-msvc/pool.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
- AdditionalLibraryDirectories="c:\programme\audio\pd\bin,f:\prog\max\flext\pd-msvc"
+ AdditionalLibraryDirectories="f:\prog\pd\pd-cvs\bin,f:\prog\max\flext\pd-msvc"
ProgramDatabaseFile=".\pd-msvc/r/pool.pdb"
ImportLibrary=".\pd-msvc/r/pool.lib"
TargetMachine="1"/>
@@ -89,7 +89,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="c:\programme\audio\pd\src,f:\prog\max\flext\source"
+ AdditionalIncludeDirectories="f:\prog\pd\pd-cvs\src,f:\prog\max\flext\source"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;FLEXT_SYS=2"
BasicRuntimeChecks="3"
RuntimeLibrary="5"
@@ -111,7 +111,7 @@
OutputFile=".\pd-msvc/d/pool.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
- AdditionalLibraryDirectories="c:\programme\audio\pd\bin,f:\prog\max\flext\pd-msvc"
+ AdditionalLibraryDirectories="f:\prog\pd\pd-cvs\bin,f:\prog\max\flext\pd-msvc"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\pd-msvc/d/pool.pdb"
ImportLibrary=".\pd-msvc/d/pool.lib"
diff --git a/externals/grill/pool/readme.txt b/externals/grill/pool/readme.txt
index 4812eb28..2985a3a1 100644
--- a/externals/grill/pool/readme.txt
+++ b/externals/grill/pool/readme.txt
@@ -46,8 +46,8 @@ pd - darwin (MacOSX):
---------------------
o GCC: edit "config-pd-darwin.txt" & run "sh build-pd-darwin.sh"
-Max/MSP - MacOS9:
------------------
+Max/MSP - MacOS9/X:
+-------------------
o CodeWarrior: edit "pool.cw" and build
----------------------------------------------------------------------------
@@ -62,6 +62,7 @@ Version history:
- extensive use of hashing for keys and directories
- database can be saved/loaded as XML data
- fixed bug with stored numbers starting with - or +
+- file names without paths will use the folder of the current patcher
0.1.0:
- first public release
diff --git a/externals/grill/vasp/config-pd-darwin.txt b/externals/grill/vasp/config-pd-darwin.txt
index 5ddbb67d..30ad23e2 100755
--- a/externals/grill/vasp/config-pd-darwin.txt
+++ b/externals/grill/vasp/config-pd-darwin.txt
@@ -3,10 +3,10 @@
#
# your c++ compiler (define only if it's different than g++)
-# CXX=g++
+CXX=g++-3.3
# where does the PD installation reside?
-PD=/usr/local/pd
+PD=/usr/local/lib/pd
# where are the PD header files?
# leave it blank if it is a system directory (like /usr/local/include),
@@ -14,7 +14,7 @@ PD=/usr/local/pd
PDINC=${PD}/src
# where is the PD executable?
-PDBIN=${PD}/bin/pd
+PDBIN=/usr/local/bin/pd
# where do the flext libraries reside?
FLEXTPATH=${PD}/flext
@@ -34,4 +34,4 @@ HELPDIR=${PD}/doc/5.reference
# additional compiler flags
# (check if they fit to your system!)
-UFLAGS=-malign-power -maltivec
+UFLAGS=-malign-power -faltivec -maltivec
diff --git a/externals/grill/vasp/makefile.pd-darwin b/externals/grill/vasp/makefile.pd-darwin
index 89ee3f47..5b11c0d5 100755
--- a/externals/grill/vasp/makefile.pd-darwin
+++ b/externals/grill/vasp/makefile.pd-darwin
@@ -22,7 +22,7 @@ CFLAGS=-O6 ${UFLAGS} -fmove-all-movables -frerun-loop-opt -fprefetch-loop-arrays
#CFLAGS+=-funroll-loops -freduce-all-givs -fschedule-insns2 -foptimize-register-move
LIBS=m
LDFLAGS=-bundle -bundle_loader $(PDBIN)
-FRAMEWORKS=Carbon
+FRAMEWORKS=Carbon veclib
# ----------------------------------------------
# the rest can stay untouched
diff --git a/externals/grill/xsample/config-pd-darwin.txt b/externals/grill/xsample/config-pd-darwin.txt
index 0d4ef217..175a9b4b 100755
--- a/externals/grill/xsample/config-pd-darwin.txt
+++ b/externals/grill/xsample/config-pd-darwin.txt
@@ -3,10 +3,10 @@
#
# your c++ compiler (if not g++)
-# CXX=g++
+CXX=g++-3.3
# where does the PD installation reside?
-PD=/usr/local/pd
+PD=/usr/local/lib/pd
# where are the PD header files?
# leave it blank if it is a system directory (like /usr/local/include),
@@ -14,7 +14,7 @@ PD=/usr/local/pd
PDINC=${PD}/src
# where is the PD executable?
-PDBIN=${PD}/bin/pd
+PDBIN=/usr/local/bin/pd
# where do the flext libraries reside?
FLEXTPATH=${PD}/flext
@@ -32,5 +32,5 @@ HELPDIR=${PD}/doc/5.reference
# additional compiler flags
# (check whether they fit your system!)
-UFLAGS=-malign-power -maltivec
+UFLAGS=-malign-power -maltivec -faltivec
diff --git a/externals/grill/xsample/makefile.pd-darwin b/externals/grill/xsample/makefile.pd-darwin
index e0f49793..ac182d27 100755
--- a/externals/grill/xsample/makefile.pd-darwin
+++ b/externals/grill/xsample/makefile.pd-darwin
@@ -13,15 +13,15 @@ CONFIG=config-pd-darwin.txt
include ${CONFIG}
-FLEXTLIB=$(FLEXTPATH)/libflext.a
+FLEXTLIB=$(FLEXTPATH)/flext.a
# compiler stuff
INCLUDES=$(PDINC)
FLAGS=-DFLEXT_SYS=2
-CFLAGS=${UFLAGS} -dynamic -O6 -Wno-unused -Wno-parentheses -Wno-switch -Wstrict-prototypes -funroll-loops -fmove-all-movables -frerun-loop-opt -fno-rtti -fno-exceptions
+CFLAGS=${UFLAGS} -dynamic -O6 -Wno-unused -Wno-parentheses -Wno-switch -Wstrict-prototypes -funroll-loops -fmove-all-movables -frerun-loop-opt -fno-rtti -fno-exceptions
LIBS=m gcc
LDFLAGS=$(FLEXTLIB) -bundle -bundle_loader $(PDBIN)
-FRAMEWORKS=Carbon
+FRAMEWORKS=Carbon veclib
# ----------------------------------------------
# the rest can stay untouched
diff --git a/externals/grill/xsample/maxmsp/xgroove~.help b/externals/grill/xsample/maxmsp/xgroove~.help
index ff604245..24b052b8 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 90e9c5f8..accfc0d9 100644
--- a/externals/grill/xsample/source/groove.cpp
+++ b/externals/grill/xsample/source/groove.cpp
@@ -39,6 +39,7 @@ public:
virtual BL m_reset();
virtual V m_pos(F pos);
+ V m_posmod(F pos);
virtual V m_all();
virtual V m_min(F mn);
virtual V m_max(F mx);
@@ -79,9 +80,16 @@ protected:
inline V setpos(F pos)
{
- if(pos < curmin) pos = curmin;
- else if(pos > curmax) pos = curmax;
- curpos = pos;
+ if(pos < znsmin) curpos = znsmin;
+ else if(pos > znsmax) curpos = znsmax;
+ else curpos = pos;
+ }
+
+ inline V setposmod(F pos)
+ {
+ F p = pos-znsmin;
+ if(p >= 0) curpos = znsmin+fmod(p,znsmax-znsmin);
+ else curpos = znsmax+fmod(p,znsmax-znsmin);
}
inline V mg_pos(F &v) const { v = curpos*s2u; }
@@ -116,6 +124,7 @@ private:
}
FLEXT_CALLBACK_F(m_pos)
+ FLEXT_CALLBACK_F(m_posmod)
FLEXT_CALLBACK_F(m_min)
FLEXT_CALLBACK_F(m_max)
FLEXT_CALLBACK(m_all)
@@ -150,6 +159,7 @@ V xgroove::setup(t_classid c)
FLEXT_CADDATTR_VAR(c,"min",mg_min,m_min);
FLEXT_CADDATTR_VAR(c,"max",mg_max,m_max);
FLEXT_CADDATTR_VAR(c,"pos",mg_pos,m_pos);
+ FLEXT_CADDMETHOD_(c,0,"posmod",m_posmod);
FLEXT_CADDATTR_VAR_E(c,"loop",loopmode,m_loop);
@@ -266,6 +276,12 @@ V xgroove::m_pos(F pos)
setpos(pos?pos/s2u:0);
}
+// motivated by Tim Blechmann
+V xgroove::m_posmod(F pos)
+{
+ setposmod(pos?pos/s2u:0);
+}
+
V xgroove::m_all()
{
xsample::m_all();
@@ -315,21 +331,30 @@ V xgroove::m_xshape(I argc,const t_atom *argv)
if(argc >= 1 && CanbeInt(argv[0])) xshape = GetAInt(argv[0]);
if(argc >= 2 && CanbeFloat(argv[1])) {
xshparam = GetAFloat(argv[1]);
+/*
// clip to 0..1
if(xshparam < 0) xshparam = 0;
else if(xshparam > 1) xshparam = 1;
+*/
}
I i;
switch(xshape) {
case 1:
+ // sine half wave
for(i = 0; i <= XZONE_TABLE; ++i)
- znmul[i] = ((sin(i*(pi/XZONE_TABLE)-pi/2.)+1)/2)*xshparam+i*(1./XZONE_TABLE)*(1-xshparam);
+ znmul[i] = sin(i*pi/(XZONE_TABLE*2))*xshparam+i*(1.f/XZONE_TABLE)*(1.f-xshparam);
+ break;
+ case 2:
+ // sine full wave
+ for(i = 0; i <= XZONE_TABLE; ++i)
+ znmul[i] = ((sin(i*(pi/XZONE_TABLE)-pi*0.5f)+1.f)*0.5f)*xshparam+i*(1.f/XZONE_TABLE)*(1.f-xshparam);
break;
case 0:
default:
+ // linear
for(i = 0; i <= XZONE_TABLE; ++i)
- znmul[i] = i*(1./XZONE_TABLE);
+ znmul[i] = i*(1.f/XZONE_TABLE);
}
}
@@ -607,6 +632,8 @@ V xgroove::s_pos_loopzn(I n,S *const *invecs,S *const *outvecs)
register D o = curpos;
for(I i = 0; i < n; ++i) {
+ // \TODO: exploit relationships: smin <= lmin, smax >= lmax
+
// normalize offset
if(o >= smax) {
o = fmod(o-smin,plen)+smin;
@@ -644,27 +671,35 @@ V xgroove::s_pos_loopzn(I n,S *const *invecs,S *const *outvecs)
}
// normalize and store current playing position
+ if(o < znsmin) o += plen;
setpos(o);
+ // calculate samples (1st voice)
playfun(n,&pos,outvecs);
- arrscale(n,pos,pos);
-
if(inzn) {
- // only if we were in cross-fade zone
+ // only if we are in cross-fade zone
+
+ // calculate samples in loop zone (2nd voice)
playfun(n,&znpos,znbuf);
- arrscale(n,znidx,znpos,-XZONE_TABLE,-1);
+ // calculate counterpart in loop fade
+ arrscale(n,znidx,znpos,XZONE_TABLE,-1);
+ // calculate fade coefficients
zonefun(znmul,0,XZONE_TABLE+1,n,1,1,&znidx,&znidx);
zonefun(znmul,0,XZONE_TABLE+1,n,1,1,&znpos,&znpos);
+ // mix voices for all channels
for(I o = 0; o < outchns; ++o) {
F *ov = outvecs[o],*ob = znbuf[o];
for(I i = 0; i < n; ++i,ov++,ob++)
*ov = (*ov)*znidx[i]+(*ob)*znpos[i];
}
}
+
+ // rescale position vector
+ arrscale(n,pos,pos);
}
else
s_pos_off(n,invecs,outvecs);
@@ -791,6 +826,7 @@ V xgroove::m_help()
post("\t@max {unit}: set maximum playing point");
post("\tall: select entire buffer length");
post("\tpos {unit}: set playing position (obeying the current scale mode)");
+ post("\tposmod {unit}: set playing position (modulo into min/max range)");
post("\tbang/start: start playing");
post("\tstop: stop playing");
post("\trefresh: checks buffer and refreshes outlets");
diff --git a/externals/grill/xsample/source/inter.h b/externals/grill/xsample/source/inter.h
index e7f929e8..a87c4ac1 100755
--- a/externals/grill/xsample/source/inter.h
+++ b/externals/grill/xsample/source/inter.h
@@ -32,19 +32,21 @@ TMPLDEF V xinter::st_play1(const S *bdt,const I smin,const I smax,const I n,cons
for(I i = 0; i < n; ++i,++si) {
register const I oint = (I)(*(pos++));
register const S *fp;
- if(oint < smin) {
+
+ if(oint >= smin)
+ if(oint < smax) {
+ // normal
+ fp = bdt+oint*BCHNS;
+ }
+ else {
+ // position > last sample ... take only last sample
+ fp = bdt+(smin == smax?smin:smax-1)*BCHNS;
+ }
+ else {
// position < 0 ... take only 0th sample
fp = bdt+smin*BCHNS;
}
- else if(oint >= smax) {
- // position > last sample ... take only last sample
- fp = bdt+(smin == smax?smin:smax-1)*BCHNS;
- }
- else {
- // normal
- fp = bdt+oint*BCHNS;
- }
-
+
for(I ci = 0; ci < OCHNS; ++ci)
sig[ci][si] = fp[ci];
}
@@ -77,26 +79,27 @@ TMPLDEF V xinter::st_play2(const S *bdt,const I smin,const I smax,const I n,cons
const F o = *(pos++);
register const I oint = (I)o;
- if(oint < smin) {
+ if(oint >= smin)
+ if(oint < maxo) {
+ // normal interpolation
+ register const F frac = o-oint;
+ register const S *const fp0 = bdt+oint*BCHNS;
+ register const S *const fp1 = fp0+BCHNS;
+ for(I ci = 0; ci < OCHNS; ++ci)
+ sig[ci][si] = fp0[ci]+frac*(fp1[ci]-fp0[ci]);
+ }
+ else {
+ // position is past last sample -> take the last sample
+ register const S *const fp = bdt+maxo*BCHNS;
+ for(I ci = 0; ci < OCHNS; ++ci)
+ sig[ci][si] = fp[ci];
+ }
+ else {
// position is before first sample -> take the first sample
register const S *const fp = bdt+smin*BCHNS;
for(I ci = 0; ci < OCHNS; ++ci)
sig[ci][si] = fp[ci];
}
- else if(oint >= maxo) {
- // position is past last sample -> take the last sample
- register const S *const fp = bdt+maxo*BCHNS;
- for(I ci = 0; ci < OCHNS; ++ci)
- sig[ci][si] = fp[ci];
- }
- else {
- // normal interpolation
- register const F frac = o-oint;
- register const S *const fp0 = bdt+oint*BCHNS;
- register const S *const fp1 = fp0+BCHNS;
- for(I ci = 0; ci < OCHNS; ++ci)
- sig[ci][si] = fp0[ci]+frac*(fp1[ci]-fp0[ci]);
- }
}
// clear rest of output channels (if buffer has less channels)
@@ -137,7 +140,35 @@ TMPLDEF V xinter::st_play4(const S *bdt,const I smin,const I smax,const I n,cons
register F frac;
register const S *fa,*fb,*fc,*fd;
- if(oint <= smin) {
+ if(oint > smin)
+ if(oint < maxo-2) {
+ // normal case
+
+ fa = bdt+oint*BCHNS-BCHNS;
+ frac = o-oint;
+ fb = fa+BCHNS;
+ #ifdef __VEC__
+ vec_dst(fa,pf,0);
+ #endif
+ fc = fb+BCHNS;
+ fd = fc+BCHNS;
+ }
+ else {
+ // after the end
+
+ if(oint > maxo) oint = maxo,o = (float)smax;
+ frac = o-oint;
+
+ fb = bdt+oint*BCHNS;
+ fa = fb-BCHNS;
+
+ // \TODO what about wraparound (in loop/palindrome mode) ?
+ fc = fb >= maxp?maxp:fb+BCHNS;
+ fd = fc >= maxp?maxp:fc+BCHNS;
+ }
+ else {
+ // before the beginning
+
// if oint < first sample set it to first sample
// \TODO what about wraparound (in loop/palindrome mode) ?
if(oint < smin) oint = smin,o = (float)smin;
@@ -150,28 +181,7 @@ TMPLDEF V xinter::st_play4(const S *bdt,const I smin,const I smax,const I n,cons
fc = fb+BCHNS;
fd = fc+BCHNS;
}
- else if(oint >= maxo-2) {
- if(oint > maxo) oint = maxo,o = (float)smax;
- frac = o-oint;
-
- fb = bdt+oint*BCHNS;
- fa = fb-BCHNS;
-
- // \TODO what about wraparound (in loop/palindrome mode) ?
- fc = fb >= maxp?maxp:fb+BCHNS;
- fd = fc >= maxp?maxp:fc+BCHNS;
- }
- else {
- fa = bdt+oint*BCHNS-BCHNS;
- frac = o-oint;
- fb = fa+BCHNS;
-#ifdef __VEC__
- vec_dst(fa,pf,0);
-#endif
- fc = fb+BCHNS;
- fd = fc+BCHNS;
- }
-
+
register F f1 = 0.5f*(frac-1.0f);
register F f3 = frac*3.0f-1.0f;
diff --git a/externals/grill/xsample/source/main.h b/externals/grill/xsample/source/main.h
index e174915b..367632d6 100644
--- a/externals/grill/xsample/source/main.h
+++ b/externals/grill/xsample/source/main.h
@@ -12,7 +12,7 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#define __XSAMPLE_H
-#define XSAMPLE_VERSION "0.3.0pre14"
+#define XSAMPLE_VERSION "0.3.0pre15"
#define FLEXT_ATTRIBUTES 1
@@ -154,7 +154,7 @@ protected:
inline F scale(F smp) const { return (smp-sclmin)*sclmul; }
static V arrscale(I n,const S *in,S *out,S add,S mul) { flext::ScaleSamples(out,in,mul,add,n); }
- inline V arrscale(I n,const S *in,S *out) const { arrscale(n,in,out,(S)-sclmin,sclmul); }
+ inline V arrscale(I n,const S *in,S *out) const { arrscale(n,in,out,-sclmin*sclmul,sclmul); }
static V arrmul(I n,const S *in,S *out,S mul) { flext::MulSamples(out,in,mul,n); }
inline V arrmul(I n,const S *in,S *out) const { arrmul(n,in,out,(S)(1./s2u)); }
diff --git a/externals/grill/xsample/xsample.cw b/externals/grill/xsample/xsample.cw
index 0a6c5c08..768cf65c 100755
--- a/externals/grill/xsample/xsample.cw
+++ b/externals/grill/xsample/xsample.cw
Binary files differ