aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/xsample
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2003-11-19 03:37:40 +0000
committerThomas Grill <xovo@users.sourceforge.net>2003-11-19 03:37:40 +0000
commitd5c627a611f9b9801d40c3345446c789c9900c5d (patch)
treefab502304d9513eb56ef595255a1357912c69b28 /externals/grill/xsample
parent5aa36d82aa1122e4cda553006dd55cb3ac6afd79 (diff)
""
svn path=/trunk/; revision=1195
Diffstat (limited to 'externals/grill/xsample')
-rw-r--r--externals/grill/xsample/config-pd-msvc.txt3
-rw-r--r--externals/grill/xsample/makefile.pd-msvc2
-rw-r--r--externals/grill/xsample/source/record.cpp146
3 files changed, 79 insertions, 72 deletions
diff --git a/externals/grill/xsample/config-pd-msvc.txt b/externals/grill/xsample/config-pd-msvc.txt
index e69617a7..26aeb5ab 100644
--- a/externals/grill/xsample/config-pd-msvc.txt
+++ b/externals/grill/xsample/config-pd-msvc.txt
@@ -9,7 +9,8 @@ PDPATH=c:\programme\audio\pd
FLEXTPATH=$(PDPATH)\flext
# where is MS VC++?
-MSVCPATH=c:\programme\prog\microsoft visual studio\VC98
+# (not necessary if the build started with the compiler environment)
+# MSVCPATH=c:\programme\prog\microsoft visual studio\VC98
# where should the external be built?
OUTPATH=pd-msvc
diff --git a/externals/grill/xsample/makefile.pd-msvc b/externals/grill/xsample/makefile.pd-msvc
index 2f0ebc52..8b82928b 100644
--- a/externals/grill/xsample/makefile.pd-msvc
+++ b/externals/grill/xsample/makefile.pd-msvc
@@ -17,7 +17,7 @@ LIBS=pd.lib pthreadVC.lib flext-pdwin.lib
# compiler definitions and flags
DEFS=/DFLEXT_SYS=2
-CFLAGS=/GR- /GX- /GD /G6 /Ox /ML
+CFLAGS=/GR- /GX- /GD /G6 /Ox /EHsc /ML
# the rest can stay untouched
# ----------------------------------------------
diff --git a/externals/grill/xsample/source/record.cpp b/externals/grill/xsample/source/record.cpp
index 51fd56fc..cc9e074b 100644
--- a/externals/grill/xsample/source/record.cpp
+++ b/externals/grill/xsample/source/record.cpp
@@ -335,52 +335,55 @@ TMPLDEF V xrecord::s_rec(I n,S *const *invecs,S *const *outvecs)
else {
// don't append
switch(mixmode) {
- case 0:
- for(i = 0; i < ncur; ++i,++si) {
- if(*(on++) >= 0)
- {
- for(int ci = 0; ci < ICHNS; ++ci)
- bf[ci] = sig[ci][si];
- bf += BCHNS;
- *(pos++) = p,p += pf,++o;
- }
- else {
- *(pos++) = p = scale(o = 0);
- bf = buf->Data();
- }
- }
- break;
- case 1:
- for(i = 0; i < ncur; ++i,++si) {
- register const S g = *(on++);
- if(g >= 0) {
- for(int ci = 0; ci < ICHNS; ++ci)
- bf[ci] = bf[ci]*(1.-g)+sig[ci][si]*g;
- bf += BCHNS;
- *(pos++) = p,p += pf,++o;
- }
- else {
- *(pos++) = p = scale(o = 0);
- bf = buf->Data();
- }
- }
- break;
- case 2:
- for(i = 0; i < ncur; ++i,++si) {
- if(*(on++) >= 0)
- {
- for(int ci = 0; ci < ICHNS; ++ci)
- bf[ci] += sig[ci][si];
- bf += BCHNS;
- *(pos++) = p,p += pf,++o;
- }
- else {
- *(pos++) = p = scale(o = 0);
- bf = buf->Data();
- }
- }
- break;
- }
+ case 0: {
+ for(i = 0; i < ncur; ++i,++si) {
+ if(*(on++) >= 0)
+ {
+ for(int ci = 0; ci < ICHNS; ++ci)
+ bf[ci] = sig[ci][si];
+ bf += BCHNS;
+ *(pos++) = p,p += pf,++o;
+ }
+ else {
+ *(pos++) = p = scale(o = 0);
+ bf = buf->Data();
+ }
+ }
+ break;
+ }
+ case 1: {
+ for(i = 0; i < ncur; ++i,++si) {
+ register const S g = *(on++);
+ if(g >= 0) {
+ for(int ci = 0; ci < ICHNS; ++ci)
+ bf[ci] = bf[ci]*(1.-g)+sig[ci][si]*g;
+ bf += BCHNS;
+ *(pos++) = p,p += pf,++o;
+ }
+ else {
+ *(pos++) = p = scale(o = 0);
+ bf = buf->Data();
+ }
+ }
+ break;
+ }
+ case 2: {
+ for(i = 0; i < ncur; ++i,++si) {
+ if(*(on++) >= 0)
+ {
+ for(int ci = 0; ci < ICHNS; ++ci)
+ bf[ci] += sig[ci][si];
+ bf += BCHNS;
+ *(pos++) = p,p += pf,++o;
+ }
+ else {
+ *(pos++) = p = scale(o = 0);
+ bf = buf->Data();
+ }
+ }
+ break;
+ }
+ }
}
}
else {
@@ -388,30 +391,33 @@ TMPLDEF V xrecord::s_rec(I n,S *const *invecs,S *const *outvecs)
// Altivec optimization for that!
switch(mixmode) {
- case 0:
- for(int ci = 0; ci < ICHNS; ++ci) {
- register S *b = bf+ci;
- register const F *s = sig[ci];
- for(i = 0; i < ncur; ++i,b += BCHNS,++s) *b = *s;
- }
- si += ncur;
- break;
- case 1:
- for(i = 0; i < ncur; ++i,++si) {
- register const S w = *(on++);
- for(int ci = 0; ci < ICHNS; ++ci)
- bf[ci] = bf[ci]*(1.-w)+sig[ci][si]*w;
- bf += BCHNS;
- }
- break;
- case 2:
- for(int ci = 0; ci < ICHNS; ++ci) {
- register S *b = bf+ci;
- register const F *s = sig[ci];
- for(i = 0; i < ncur; ++i,b += BCHNS,++s) *b += *s;
- }
- si += ncur;
- break;
+ case 0: {
+ for(int ci = 0; ci < ICHNS; ++ci) {
+ register S *b = bf+ci;
+ register const F *s = sig[ci];
+ for(i = 0; i < ncur; ++i,b += BCHNS,++s) *b = *s;
+ }
+ si += ncur;
+ break;
+ }
+ case 1: {
+ for(i = 0; i < ncur; ++i,++si) {
+ register const S w = *(on++);
+ for(int ci = 0; ci < ICHNS; ++ci)
+ bf[ci] = bf[ci]*(1.-w)+sig[ci][si]*w;
+ bf += BCHNS;
+ }
+ break;
+ }
+ case 2: {
+ for(int ci = 0; ci < ICHNS; ++ci) {
+ register S *b = bf+ci;
+ register const F *s = sig[ci];
+ for(i = 0; i < ncur; ++i,b += BCHNS,++s) *b += *s;
+ }
+ si += ncur;
+ break;
+ }
}
for(i = 0; i < ncur; ++i) {