From 9afde55c5e20b9f2c4e9d644277f9706f519342c Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 30 Dec 2003 03:37:34 +0000 Subject: "" svn path=/trunk/; revision=1244 --- externals/grill/flext/build-pd-bcc.bat | 4 +- externals/grill/flext/build-pd-msvc.bat | 4 +- externals/grill/flext/makefile.pd-darwin | 2 +- externals/grill/flext/source/flcwpd-x-thr.h | 32 ++- externals/grill/flext/source/flcwpd-x.h | 38 ++- externals/grill/flext/source/flsimd.cpp | 183 +++++++++--- externals/grill/vasp/pd-ex/loudness.pd | 414 ++++++++++++++-------------- externals/grill/vasp/pd/vasp.rms.pd | 32 +-- externals/grill/xsample/config-pd-linux.txt | 1 - externals/grill/xsample/xsample.cw | Bin 394881 -> 394881 bytes 10 files changed, 447 insertions(+), 263 deletions(-) (limited to 'externals') diff --git a/externals/grill/flext/build-pd-bcc.bat b/externals/grill/flext/build-pd-bcc.bat index ff3668d6..b1e6eaf4 100644 --- a/externals/grill/flext/build-pd-bcc.bat +++ b/externals/grill/flext/build-pd-bcc.bat @@ -1 +1,3 @@ -@echo --- Building flext with BorlandC++ --- make -f makefile.pd-bcc \ No newline at end of file +@echo --- Building flext with BorlandC++ --- + +make -f makefile.pd-bcc diff --git a/externals/grill/flext/build-pd-msvc.bat b/externals/grill/flext/build-pd-msvc.bat index b179efc1..d865c01d 100644 --- a/externals/grill/flext/build-pd-msvc.bat +++ b/externals/grill/flext/build-pd-msvc.bat @@ -1 +1,3 @@ -@echo --- Building flext with MS Visual C++ --- nmake -f makefile.pd-msvc clean nmake -f makefile.pd-msvc \ No newline at end of file +@echo --- Building flext with MS Visual C++ --- +nmake -f makefile.pd-msvc clean + nmake -f makefile.pd-msvc diff --git a/externals/grill/flext/makefile.pd-darwin b/externals/grill/flext/makefile.pd-darwin index a8bb24be..dd4e8a84 100644 --- a/externals/grill/flext/makefile.pd-darwin +++ b/externals/grill/flext/makefile.pd-darwin @@ -32,7 +32,7 @@ CFLAGS_S=-DFLEXT_SHARED -DFLEXT_EXPORTS LSHFLAGS= -dylib -dynamic -flat_namespace -undefined suppress # frameworks -FRAMEWORKS=Carbon veclib +#FRAMEWORKS=Carbon veclib # ---------------------------------------------- diff --git a/externals/grill/flext/source/flcwpd-x-thr.h b/externals/grill/flext/source/flcwpd-x-thr.h index a0bae5de..56a193ef 100755 --- a/externals/grill/flext/source/flcwpd-x-thr.h +++ b/externals/grill/flext/source/flcwpd-x-thr.h @@ -1 +1,31 @@ -/* flext - C++ layer for Max/MSP and pd (pure data) externals Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net) For information on usage and redistribution, and for a DISCLAIMER OF ALL WARRANTIES, see the file, "license.txt," in this distribution. */ /* This is the prefix file for CodeWarrior projects - OS X version */ #ifndef _FLEXT_CW_PD_X_THR_H #define _FLEXT_CW_PD_X_THR_H #define FLEXT_THREADS #if 0 /* old CodeWarrior version (<= 6) don't have sigset_t defined which is needed for pthreads */ #if defined(__MWERKS__) && (__MWERKS__ <= 0x6000) typedef unsigned int sigset_t; #define _CW_NOPRECOMP // no precompiled headers #endif #endif #include "flcwpd-x.h" #endif \ No newline at end of file +/* + +flext - C++ layer for Max/MSP and pd (pure data) externals + +Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net) +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "license.txt," in this distribution. + +*/ + +/* This is the prefix file for CodeWarrior projects - OS X version */ + +#ifndef _FLEXT_CW_PD_X_THR_H +#define _FLEXT_CW_PD_X_THR_H + +#define FLEXT_THREADS + +#if 0 +/* + old CodeWarrior version (<= 6) don't have sigset_t defined which + is needed for pthreads +*/ +#if defined(__MWERKS__) && (__MWERKS__ <= 0x6000) + typedef unsigned int sigset_t; + #define _CW_NOPRECOMP // no precompiled headers +#endif +#endif + +#include "flcwpd-x.h" + +#endif diff --git a/externals/grill/flext/source/flcwpd-x.h b/externals/grill/flext/source/flcwpd-x.h index 7dfaa4b4..3a5087ae 100755 --- a/externals/grill/flext/source/flcwpd-x.h +++ b/externals/grill/flext/source/flcwpd-x.h @@ -1 +1,37 @@ -/* flext - C++ layer for Max/MSP and pd (pure data) externals Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net) For information on usage and redistribution, and for a DISCLAIMER OF ALL WARRANTIES, see the file, "license.txt," in this distribution. */ /* This is the prefix file for CodeWarrior projects - OS X version */ #ifndef _FLEXT_CW_PD_X_H #define _FLEXT_CW_PD_X_H #ifndef __MWERKS__ #error "This header file is for CodeWarrior only." #endif #define FLEXT_SYS 2 #define FLEXT_USE_SIMD #define TARGET_API_MAC_CARBON 1 #define _POSIX_C_SOURCE #ifndef _CW_NOPRECOMP // #include // #include #endif #if __option(sym) || !__option(opt_dead_code) #define FLEXT_DEBUG #endif /* #define _LOG */ #endif \ No newline at end of file +/* + +flext - C++ layer for Max/MSP and pd (pure data) externals + +Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net) +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "license.txt," in this distribution. + +*/ + +/* This is the prefix file for CodeWarrior projects - OS X version */ + +#ifndef _FLEXT_CW_PD_X_H +#define _FLEXT_CW_PD_X_H + +#ifndef __MWERKS__ + #error "This header file is for CodeWarrior only." +#endif + +#define FLEXT_SYS 2 +#define FLEXT_USE_SIMD + +#define TARGET_API_MAC_CARBON 1 +#define _POSIX_C_SOURCE + +#ifndef _CW_NOPRECOMP +// #include +// #include +#endif + +#if __option(sym) || !__option(opt_dead_code) + #define FLEXT_DEBUG +#endif + +/* #define _LOG */ + +#endif diff --git a/externals/grill/flext/source/flsimd.cpp b/externals/grill/flext/source/flsimd.cpp index 4d92aa48..fdb544c5 100755 --- a/externals/grill/flext/source/flsimd.cpp +++ b/externals/grill/flext/source/flsimd.cpp @@ -37,20 +37,19 @@ WARRANTIES, see the file, "license.txt," in this distribution. #include // 3DNow! #elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__MWERKS__) && defined(__ALTIVEC__) #if FLEXT_OSAPI == FLEXT_OSAPI_MAC_MACH - #include + #include + #include #else - #include + #include #endif #pragma altivec_model on #include -// #include #include #elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__GNUG__) && defined(__ALTIVEC__) #include -// #include - #include + #include #endif #endif // FLEXT_USE_SIMD @@ -334,7 +333,7 @@ inline void StoreUnaligned( vector unsigned char v, vector unsigned char *where) vec_st( high, 16, where ); } -inline vector float LoadUnaligned(float *v ) +inline vector float LoadUnaligned(const float *v ) { return (vector float)LoadUnaligned((vector unsigned char *)v); } @@ -348,6 +347,11 @@ inline bool IsVectorAligned(const void *where) { return reinterpret_cast(where)&(sizeof(vector float)-1) == 0; } + +inline vector float LoadValue(const float &f) +{ + return IsVectorAligned(&f)?vec_splat(vec_ld(0,(vector float *)&f),0):LoadUnaligned(&f); +} #endif @@ -479,14 +483,14 @@ loopuu: while(cnt--) *(dst++) = *(src++); } else -#elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__VEC__) && defined(__VECTOROPS__) - { +#elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__VECTOROPS__) + if(true) { int n = cnt>>2,n4 = n<<2; - cnt -= n4; vScopy(n4,(vector float *)src,(vector float *)dst); - src += n4,dst += n4; + cnt -= n4,src += n4,dst += n4; while(cnt--) *(dst++) = *(src++); } + else #endif // _MSC_VER #endif // FLEXT_USE_SIMD { @@ -558,18 +562,18 @@ loopu: while(cnt--) *(dst++) = s; } else -#elif 0 //FLEXT_CPU == FLEXT_CPU_PPC && defined(__VEC__) +#elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__ALTIVEC__) if(GetSIMDCapabilities()&simd_altivec && IsVectorAligned(dst)) { - vector float svec = IsVectorAligned(&s)?vec_splat(vec_ld(0,(vector float *)&s),0):LoadUnaligned(&s); - int n = cnt>>4,n4 = n<<4; - cnt -= n4; + vector float svec = LoadValue(s); + int n = cnt>>4; + cnt -= n<<4; while(n--) { vec_st(svec,0,dst); vec_st(svec,16,dst); vec_st(svec,32,dst); vec_st(svec,48,dst); - dst += 64; + dst += 16; } while(cnt--) *(dst++) = s; @@ -688,19 +692,33 @@ loopu: while(cnt--) *(dst++) = *(src++)*op; } else -#elif 0 //FLEXT_CPU == FLEXT_CPU_PPC && defined(__VEC__) +#elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__VDSP__) + if(true) { + vsmul(src,1,&op,dst,1,cnt); + } + else +#elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__ALTIVEC__) if(GetSIMDCapabilities()&simd_altivec && IsVectorAligned(src) && IsVectorAligned(dst)) { - vector float opvec = IsVectorAligned(&op)?vec_splat(vec_ld(0,(vector float *)&op),0):LoadUnaligned(&op); - vector float addvec = (vector float)vec_splat_u32(0); - int n = cnt>>4,n4 = n<<4; - cnt -= n4; + const vector float arg = LoadValue(op); + const vector float zero = (vector float)(0); + int n = cnt>>4; + cnt -= n<<4; - while(n--) { - vec_st(vec_madd(vec_ld( 0,src),opvec,addvec), 0,dst); - vec_st(vec_madd(vec_ld(16,src),opvec,addvec),16,dst); - vec_st(vec_madd(vec_ld(32,src),opvec,addvec),32,dst); - vec_st(vec_madd(vec_ld(48,src),opvec,addvec),48,dst); - src += 64,dst += 64; + for(; n--; src += 16,dst += 16) { + vector float a1 = vec_ld( 0,src); + vector float a2 = vec_ld(16,src); + vector float a3 = vec_ld(32,src); + vector float a4 = vec_ld(48,src); + + a1 = vec_madd(a1,arg,zero); + a2 = vec_madd(a2,arg,zero); + a3 = vec_madd(a3,arg,zero); + a4 = vec_madd(a4,arg,zero); + + vec_st(a1, 0,dst); + vec_st(a2,16,dst); + vec_st(a3,32,dst); + vec_st(a4,48,dst); } while(cnt--) *(dst++) = *(src++)*op; @@ -924,8 +942,34 @@ loopuu: while(cnt--) *(dst++) = *(src++) * *(op++); } else -#elif 0 // FLEXT_CPU == FLEXT_CPU_PPC && defined(__VEC__) - if(GetSIMDCapabilities()&simd_sse) { +#elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__VDSP__) + if(true) { + vmul(src,1,op,1,dst,1,cnt); + } + else +#elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__ALTIVEC__) + if(GetSIMDCapabilities()&simd_altivec && IsVectorAligned(src) && IsVectorAligned(op) && IsVectorAligned(dst)) { + const vector float zero = (vector float)(0); + int n = cnt>>4; + cnt -= n<<4; + + for(; n--; src += 16,op += 16,dst += 16) { + vector float a1 = vec_ld( 0,src),b1 = vec_ld( 0,op); + vector float a2 = vec_ld(16,src),b2 = vec_ld(16,op); + vector float a3 = vec_ld(32,src),b3 = vec_ld(32,op); + vector float a4 = vec_ld(48,src),b4 = vec_ld(48,op); + + a1 = vec_madd(a1,b1,zero); + a2 = vec_madd(a2,b2,zero); + a3 = vec_madd(a3,b3,zero); + a4 = vec_madd(a4,b4,zero); + + vec_st(a1, 0,dst); + vec_st(a2,16,dst); + vec_st(a3,32,dst); + vec_st(a4,48,dst); + } + while(cnt--) *(dst++) = *(src++) * *(op++); } else #endif // _MSC_VER @@ -1054,8 +1098,30 @@ loopu: while(cnt--) *(dst++) = *(src++)+op; } else -#elif 0 //FLEXT_CPU == FLEXT_CPU_PPC && defined(__VEC__) - if(GetSIMDCapabilities()&simd_altivec) { +#elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__ALTIVEC__) + if(GetSIMDCapabilities()&simd_altivec && IsVectorAligned(src) && IsVectorAligned(dst)) { + const vector float arg = LoadValue(op); + int n = cnt>>4; + cnt -= n<<4; + + for(; n--; src += 16,dst += 16) { + vector float a1 = vec_ld( 0,src); + vector float a2 = vec_ld(16,src); + vector float a3 = vec_ld(32,src); + vector float a4 = vec_ld(48,src); + + a1 = vec_add(a1,arg); + a2 = vec_add(a2,arg); + a3 = vec_add(a3,arg); + a4 = vec_add(a4,arg); + + vec_st(a1, 0,dst); + vec_st(a2,16,dst); + vec_st(a3,32,dst); + vec_st(a4,48,dst); + } + + while(cnt--) *(dst++) = *(src++)+op; } else #endif // _MSC_VER @@ -1277,9 +1343,35 @@ void flext::AddSamples(t_sample *dst,const t_sample *src,const t_sample *op,int while(cnt--) *(dst++) = *(src++) + *(op++); } else -#elif 0 //FLEXT_CPU == FLEXT_CPU_PPC && defined(__VEC__) - { +#elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__VDSP__) + if(true) { + vadd(src,1,op,1,dst,1,cnt); + } + else +#elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__ALTIVEC__) + if(GetSIMDCapabilities()&simd_altivec && IsVectorAligned(src) && IsVectorAligned(op) && IsVectorAligned(dst)) { + int n = cnt>>4; + cnt -= n<<4; + + for(; n--; src += 16,op += 16,dst += 16) { + vector float a1 = vec_ld( 0,src),b1 = vec_ld( 0,op); + vector float a2 = vec_ld(16,src),b2 = vec_ld(16,op); + vector float a3 = vec_ld(32,src),b3 = vec_ld(32,op); + vector float a4 = vec_ld(48,src),b4 = vec_ld(48,op); + + a1 = vec_add(a1,b1); + a2 = vec_add(a2,b2); + a3 = vec_add(a3,b3); + a4 = vec_add(a4,b4); + + vec_st(a1, 0,dst); + vec_st(a2,16,dst); + vec_st(a3,32,dst); + vec_st(a4,48,dst); + } + while(cnt--) *(dst++) = *(src++) + *(op++); } + else #endif // _MSC_VER #endif // FLEXT_USE_SIMD { @@ -1418,8 +1510,31 @@ loopu: while(cnt--) *(dst++) = *(src++)*opmul+opadd; } else -#elif 0 //FLEXT_CPU == FLEXT_CPU_PPC && defined(__VEC__) - if(GetSIMDCapabilities()&simd_altivec) { +#elif FLEXT_CPU == FLEXT_CPU_PPC && defined(__ALTIVEC__) + if(GetSIMDCapabilities()&simd_altivec && IsVectorAligned(src) && IsVectorAligned(dst)) { + const vector float argmul = LoadValue(opmul); + const vector float argadd = LoadValue(opadd); + int n = cnt>>4; + cnt -= n<<4; + + for(; n--; src += 16,dst += 16) { + vector float a1 = vec_ld( 0,src); + vector float a2 = vec_ld(16,src); + vector float a3 = vec_ld(32,src); + vector float a4 = vec_ld(48,src); + + a1 = vec_madd(a1,argmul,argadd); + a2 = vec_madd(a2,argmul,argadd); + a3 = vec_madd(a3,argmul,argadd); + a4 = vec_madd(a4,argmul,argadd); + + vec_st(a1, 0,dst); + vec_st(a2,16,dst); + vec_st(a3,32,dst); + vec_st(a4,48,dst); + } + + while(cnt--) *(dst++) = *(src++)*opmul+opadd; } else #endif // _MSC_VER diff --git a/externals/grill/vasp/pd-ex/loudness.pd b/externals/grill/vasp/pd-ex/loudness.pd index 0aa18a02..b4fe5710 100644 --- a/externals/grill/vasp/pd-ex/loudness.pd +++ b/externals/grill/vasp/pd-ex/loudness.pd @@ -1,207 +1,207 @@ -#N canvas 258 35 637 398 12; -#N canvas 0 0 450 300 graph1 0; -#X array filter 1024 float 1; -#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; -#A 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; -#X coords 0 10 1023 -10 200 140 1; -#X restore 412 91 graph; -#X obj 171 129 table buf 10; -#X obj 37 128 wedit buf; -#X obj 44 203 bng 25 250 50 0 empty empty start 0 -6 0 8 -24198 -1 --1; -#N canvas 289 57 385 501 do 0; -#X obj 40 20 inlet; -#X obj 38 452 outlet; -#X obj 38 175 vasp.parts; -#X msg 40 91 vasp buf; -#N canvas 0 0 256 335 accum 0; -#X obj 31 158 +; -#X obj 65 159 f; -#X obj 32 95 t f b; -#X obj 64 229 /; -#X obj 111 158 1; -#X obj 112 183 +; -#X obj 146 184 f; -#X obj 32 53 inlet; -#X obj 64 276 outlet; -#X obj 169 53 inlet; -#X text 171 28 reset; -#X text 31 31 value; -#X obj 169 79 t b; -#X obj 167 106 0; -#X connect 0 0 1 0; -#X connect 1 0 0 1; -#X connect 1 0 3 0; -#X connect 2 0 0 0; -#X connect 2 1 4 0; -#X connect 3 0 8 0; -#X connect 4 0 5 0; -#X connect 5 0 6 0; -#X connect 6 0 5 1; -#X connect 6 0 3 1; -#X connect 7 0 2 0; -#X connect 9 0 12 0; -#X connect 12 0 13 0; -#X connect 13 0 1 1; -#X connect 13 0 6 1; -#X restore 37 382 pd accum; -#X text 129 174 loop over fragments; -#X text 112 380 make average of fragments; -#X msg 102 217 radio detach 1; -#X obj 122 126 vasp.f?; -#X obj 139 92 vasp.! @ref filter; -#X obj 138 261 vasp.db2pow; -#X obj 40 52 t b b; -#N canvas 0 0 257 314 frag 0; -#X obj 40 210 vasp.rms; -#X obj 40 92 vasp.rfft; -#X obj 40 176 vasp.r!fft; -#X obj 40 136 vasp.*; -#X obj 41 65 vasp.!; -#X obj 44 25 inlet; -#X obj 39 248 outlet; -#X obj 152 22 inlet; -#X connect 0 0 6 0; -#X connect 1 0 3 0; -#X connect 2 0 0 0; -#X connect 3 0 2 0; -#X connect 4 0 1 0; -#X connect 5 0 4 0; -#X connect 7 0 3 1; -#X restore 37 319 pd frag; -#X text 107 315 filter fragment and calc rms; -#X connect 0 0 11 0; -#X connect 2 0 12 0; -#X connect 3 0 2 0; -#X connect 4 0 1 0; -#X connect 7 0 12 0; -#X connect 8 0 2 1; -#X connect 9 0 8 0; -#X connect 9 0 10 0; -#X connect 10 0 12 1; -#X connect 11 0 3 0; -#X connect 11 1 4 1; -#X connect 11 1 7 0; -#X connect 11 1 9 0; -#X connect 12 0 4 0; -#X restore 44 284 pd do; -#X obj 44 348 nbx 5 18 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 -14 -261689 -1 -1 0.699669 256; -#N canvas 277 107 454 304 2db 0; -#X obj 38 19 inlet; -#X obj 40 58 powtodb; -#X obj 40 88 - 100; -#X obj 41 124 outlet; -#X connect 0 0 1 0; -#X connect 1 0 2 0; -#X connect 2 0 3 0; -#X restore 44 311 pd 2db; -#X text 36 101 load/play buffer; -#X msg 44 246 vasp buf; -#X text 129 347 weighted loudness (decibels); -#N canvas 312 40 678 619 filter 0; -#X obj 46 26 inlet; -#X obj 46 544 vasp.= @ref filter; -#X obj 46 508 t b a; -#X obj 45 572 vasp.u; -#X msg 44 104 0; -#X obj 43 60 route flat dbA dbB dbC; -#X msg 87 102 env -77.8 8 -56.7 16 -39.4 31.5 -26.2 63 -16.1 125 -8.6 -250 -3.2 500 0 1000 1.2 2000 1 4000 -1.1 8000 -6.6 16000 -15.8 31500 -; -#X obj 392 11 loadbang; -#X obj 392 36 samplerate~; -#X obj 45 476 vasp.tilt; -#X obj 107 448 /; -#X text 156 336 large enough temporary buffer; -#X obj 44 338 vasp.! 100000; -#X obj 296 66 / 2; -#X obj 462 14 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 295 38 r smpfrq; -#X obj 43 365 vasp.=; -#X obj 44 309 t b a; -#X obj 67 422 vasp.f?; -#X obj 44 394 t a a b; -#X obj 134 421 vasp.s? @ref filter; -#X msg 129 158 env -43.6 8 -28.5 16 -17.1 31.5 -9.3 63 -4.2 125 -1.3 -250 -0.3 500 0 1000 -0.1 2000 -0.7 4000 -2.9 8000 -8.4 16000 -17.6 -31500; -#X msg 170 221 env -17.7 8 -8.5 16 -3 31.5 -0.8 63 -0.2 125 0 250 0 -500 0 1000 -0.2 2000 -0.8 4000 -3 8000 -8.5 16000 -17.7 31500; -#X text 124 476 resample; -#X connect 0 0 5 0; -#X connect 1 0 3 0; -#X connect 2 0 1 0; -#X connect 2 1 1 1; -#X connect 4 0 17 0; -#X connect 5 0 4 0; -#X connect 5 1 6 0; -#X connect 5 2 21 0; -#X connect 5 3 22 0; -#X connect 6 0 17 0; -#X connect 7 0 8 0; -#X connect 8 0 13 0; -#X connect 9 0 2 0; -#X connect 10 0 9 1; -#X connect 12 0 16 0; -#X connect 13 0 12 1; -#X connect 14 0 8 0; -#X connect 15 0 13 0; -#X connect 16 0 19 0; -#X connect 17 0 12 0; -#X connect 17 1 16 1; -#X connect 18 0 10 0; -#X connect 19 0 9 0; -#X connect 19 1 18 0; -#X connect 19 2 20 0; -#X connect 20 0 10 1; -#X connect 21 0 17 0; -#X connect 22 0 17 0; -#X restore 471 344 pd filter; -#X msg 416 300 flat; -#X msg 464 299 dbA; -#X obj 11 10 cnv 15 600 50 empty empty loudness 10 22 0 24 -260818 --1 0; -#X text 202 41 http://www.parasitaere-kapazitaeten.net; -#X text 203 25 needs vasp and wedit; -#X text 203 10 get weighted loudness \, (C)2003 Thomas Grill; -#X msg 499 299 dbB; -#X msg 536 300 dbC; -#X connect 3 0 8 0; -#X connect 4 0 6 0; -#X connect 6 0 5 0; -#X connect 8 0 4 0; -#X connect 11 0 10 0; -#X connect 12 0 10 0; -#X connect 17 0 10 0; -#X connect 18 0 10 0; +#N canvas 258 35 637 398 12; +#N canvas 0 0 450 300 graph1 0; +#X array filter 1024 float 1; +#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; +#A 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; +#X coords 0 10 1023 -10 200 140 1; +#X restore 412 91 graph; +#X obj 171 129 table buf 10; +#X obj 37 128 wedit buf; +#X obj 44 203 bng 25 250 50 0 empty empty start 0 -6 0 8 -24198 -1 +-1; +#N canvas 289 57 385 501 do 0; +#X obj 40 20 inlet; +#X obj 38 452 outlet; +#X obj 38 175 vasp.parts; +#X msg 40 91 vasp buf; +#N canvas 0 0 256 335 accum 0; +#X obj 31 158 +; +#X obj 65 159 f; +#X obj 32 95 t f b; +#X obj 64 229 /; +#X obj 111 158 1; +#X obj 112 183 +; +#X obj 146 184 f; +#X obj 32 53 inlet; +#X obj 64 276 outlet; +#X obj 169 53 inlet; +#X text 171 28 reset; +#X text 31 31 value; +#X obj 169 79 t b; +#X obj 167 106 0; +#X connect 0 0 1 0; +#X connect 1 0 0 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 2 1 4 0; +#X connect 3 0 8 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 5 1; +#X connect 6 0 3 1; +#X connect 7 0 2 0; +#X connect 9 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 1 1; +#X connect 13 0 6 1; +#X restore 37 382 pd accum; +#X text 129 174 loop over fragments; +#X text 112 380 make average of fragments; +#X msg 122 212 radio detach 1; +#X obj 190 125 vasp.f?; +#X obj 188 90 vasp.! @ref filter; +#X obj 138 261 vasp.db2pow; +#X obj 40 52 t b b; +#N canvas 0 0 257 314 frag 0; +#X obj 40 210 vasp.rms; +#X obj 40 92 vasp.rfft; +#X obj 40 176 vasp.r!fft; +#X obj 40 136 vasp.*; +#X obj 41 65 vasp.!; +#X obj 44 25 inlet; +#X obj 39 248 outlet; +#X obj 152 22 inlet; +#X connect 0 0 6 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X connect 7 0 3 1; +#X restore 37 319 pd frag; +#X text 107 315 filter fragment and calc rms; +#X connect 0 0 11 0; +#X connect 2 0 12 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 7 0 12 0; +#X connect 8 0 2 1; +#X connect 9 0 8 0; +#X connect 9 0 10 0; +#X connect 10 0 12 1; +#X connect 11 0 3 0; +#X connect 11 1 4 1; +#X connect 11 1 7 0; +#X connect 11 1 9 0; +#X connect 12 0 4 0; +#X restore 44 284 pd do; +#X obj 44 348 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 14 +-261689 -1 -1 0 256; +#N canvas 277 107 454 304 2db 0; +#X obj 38 19 inlet; +#X obj 40 58 powtodb; +#X obj 40 88 - 100; +#X obj 41 124 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X restore 44 311 pd 2db; +#X text 36 101 load/play buffer; +#X msg 44 246 vasp buf; +#X text 129 347 weighted loudness (decibels); +#N canvas 312 40 678 619 filter 0; +#X obj 46 26 inlet; +#X obj 46 544 vasp.= @ref filter; +#X obj 46 508 t b a; +#X obj 45 572 vasp.u; +#X msg 44 104 0; +#X obj 43 60 route flat dbA dbB dbC; +#X msg 87 102 env -77.8 8 -56.7 16 -39.4 31.5 -26.2 63 -16.1 125 -8.6 +250 -3.2 500 0 1000 1.2 2000 1 4000 -1.1 8000 -6.6 16000 -15.8 31500 +; +#X obj 392 11 loadbang; +#X obj 392 36 samplerate~; +#X obj 45 476 vasp.tilt; +#X obj 107 448 /; +#X text 156 336 large enough temporary buffer; +#X obj 44 338 vasp.! 100000; +#X obj 296 66 / 2; +#X obj 462 14 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 295 38 r smpfrq; +#X obj 43 365 vasp.=; +#X obj 44 309 t b a; +#X obj 67 422 vasp.f?; +#X obj 44 394 t a a b; +#X obj 134 421 vasp.s? @ref filter; +#X msg 129 158 env -43.6 8 -28.5 16 -17.1 31.5 -9.3 63 -4.2 125 -1.3 +250 -0.3 500 0 1000 -0.1 2000 -0.7 4000 -2.9 8000 -8.4 16000 -17.6 +31500; +#X msg 170 221 env -17.7 8 -8.5 16 -3 31.5 -0.8 63 -0.2 125 0 250 0 +500 0 1000 -0.2 2000 -0.8 4000 -3 8000 -8.5 16000 -17.7 31500; +#X text 124 476 resample; +#X connect 0 0 5 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 2 1 1 1; +#X connect 4 0 17 0; +#X connect 5 0 4 0; +#X connect 5 1 6 0; +#X connect 5 2 21 0; +#X connect 5 3 22 0; +#X connect 6 0 17 0; +#X connect 7 0 8 0; +#X connect 8 0 13 0; +#X connect 9 0 2 0; +#X connect 10 0 9 1; +#X connect 12 0 16 0; +#X connect 13 0 12 1; +#X connect 14 0 8 0; +#X connect 15 0 13 0; +#X connect 16 0 19 0; +#X connect 17 0 12 0; +#X connect 17 1 16 1; +#X connect 18 0 10 0; +#X connect 19 0 9 0; +#X connect 19 1 18 0; +#X connect 19 2 20 0; +#X connect 20 0 10 1; +#X connect 21 0 17 0; +#X connect 22 0 17 0; +#X restore 471 344 pd filter; +#X msg 416 300 flat; +#X msg 464 299 dbA; +#X obj 11 10 cnv 15 600 50 empty empty loudness 10 22 0 24 -260818 +-1 0; +#X text 202 41 http://www.parasitaere-kapazitaeten.net; +#X text 203 25 needs vasp and wedit; +#X text 203 10 get weighted loudness \, (C)2003 Thomas Grill; +#X msg 499 299 dbB; +#X msg 536 300 dbC; +#X connect 3 0 8 0; +#X connect 4 0 6 0; +#X connect 6 0 5 0; +#X connect 8 0 4 0; +#X connect 11 0 10 0; +#X connect 12 0 10 0; +#X connect 17 0 10 0; +#X connect 18 0 10 0; diff --git a/externals/grill/vasp/pd/vasp.rms.pd b/externals/grill/vasp/pd/vasp.rms.pd index 9cad83b2..dc8cfd4a 100644 --- a/externals/grill/vasp/pd/vasp.rms.pd +++ b/externals/grill/vasp/pd/vasp.rms.pd @@ -1,16 +1,16 @@ -#N canvas 270 238 447 421 12; -#X obj 35 118 vasp.!; -#X obj 35 163 vasp.sqr; -#X obj 36 252 sqrt; -#X obj 35 63 inlet; -#X obj 35 330 outlet; -#X text 98 119 make temporary buffer; -#X text 92 332 RMS; -#X obj 35 201 vasp.qmean; -#X text 125 203 mean value; -#X text 32 12 calculate RMS value of a vasp; -#X connect 0 0 1 0; -#X connect 1 0 7 0; -#X connect 2 0 4 0; -#X connect 3 0 0 0; -#X connect 7 0 2 0; +#N canvas 270 238 447 421 12; +#X obj 35 118 vasp.!; +#X obj 35 163 vasp.sqr; +#X obj 35 272 sqrt; +#X obj 35 63 inlet; +#X obj 35 330 outlet; +#X text 98 119 make temporary buffer; +#X text 92 332 RMS; +#X obj 35 201 vasp.qmean; +#X text 125 203 mean value; +#X text 32 12 calculate RMS value of a vasp; +#X connect 0 0 1 0; +#X connect 1 0 7 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 7 0 2 0; diff --git a/externals/grill/xsample/config-pd-linux.txt b/externals/grill/xsample/config-pd-linux.txt index be08468b..e89b6e98 100755 --- a/externals/grill/xsample/config-pd-linux.txt +++ b/externals/grill/xsample/config-pd-linux.txt @@ -4,7 +4,6 @@ # your c++ compiler (if not g++) #CXX=g++ -CXX=g++-3.2 # where does the PD installation reside? PD=/usr/local/lib/pd diff --git a/externals/grill/xsample/xsample.cw b/externals/grill/xsample/xsample.cw index b205fd6b..a4e4df80 100755 Binary files a/externals/grill/xsample/xsample.cw and b/externals/grill/xsample/xsample.cw differ -- cgit v1.2.1