From d1ecedf8e46d5486253436aa7fd5ba4dff19d65b Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Wed, 3 Sep 2003 02:38:08 +0000 Subject: "" svn path=/trunk/; revision=930 --- externals/grill/flext/config-pd-darwin.txt | 6 +- externals/grill/flext/flext.cw | Bin 789029 -> 789029 bytes externals/grill/flext/flext.pbproj/project.pbxproj | 159 +++++++++++++++++++-- externals/grill/flext/flext.vcproj | 4 +- externals/grill/flext/source/flatom_pr.cpp | 14 +- externals/grill/flext/source/flattr.cpp | 5 +- externals/grill/flext/source/flattr_ed.cpp | 1 - externals/grill/flext/source/flbase.cpp | 2 +- externals/grill/flext/source/flqueue.cpp | 2 +- externals/grill/flext/source/flsupport.h | 3 +- externals/grill/pool/main.cpp | 50 +++++-- externals/grill/pool/pool.pd | 8 +- externals/grill/pool/pool.vcproj | 8 +- externals/grill/pool/readme.txt | 5 +- externals/grill/vasp/config-pd-darwin.txt | 8 +- externals/grill/vasp/makefile.pd-darwin | 2 +- externals/grill/xsample/config-pd-darwin.txt | 8 +- externals/grill/xsample/makefile.pd-darwin | 6 +- externals/grill/xsample/maxmsp/xgroove~.help | Bin 7572 -> 7451 bytes externals/grill/xsample/source/groove.cpp | 54 +++++-- externals/grill/xsample/source/inter.h | 106 +++++++------- externals/grill/xsample/source/main.h | 4 +- externals/grill/xsample/xsample.cw | Bin 279503 -> 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 Binary files a/externals/grill/flext/flext.cw and b/externals/grill/flext/flext.cw 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 @@ 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 #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 @@ 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 Binary files a/externals/grill/xsample/xsample.cw and b/externals/grill/xsample/xsample.cw differ -- cgit v1.2.1