aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/xsample
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill/xsample')
-rw-r--r--externals/grill/xsample/source/groove.cpp43
-rw-r--r--externals/grill/xsample/source/main.h2
-rwxr-xr-xexternals/grill/xsample/xsample.cwbin155147 -> 213671 bytes
-rw-r--r--externals/grill/xsample/xsample.dsp2
4 files changed, 17 insertions, 30 deletions
diff --git a/externals/grill/xsample/source/groove.cpp b/externals/grill/xsample/source/groove.cpp
index 60bf617b..6355b1a0 100644
--- a/externals/grill/xsample/source/groove.cpp
+++ b/externals/grill/xsample/source/groove.cpp
@@ -276,7 +276,7 @@ V xgroove::m_xzone(F xz)
{
bufchk();
_xzone = xz < 0?0:xz;
- do_xzone();
+// do_xzone();
s_dsp();
}
@@ -335,6 +335,8 @@ V xgroove::m_xkeep(BL k)
V xgroove::do_xzone()
{
+ if(!s2u) return; // this can happen if DSP is off
+
xzone = _xzone/s2u;
I smin = curmin,smax = curmax,plen = smax-smin; //curlen;
if(xsymm < 0) {
@@ -346,7 +348,7 @@ V xgroove::do_xzone()
// desired crossfade points
znmin = smin+xzone*xsymm,znmax = smax+xzone*(xsymm-1);
// extra space at beginning and end
- F o1 = znmin-xzone,o2 = buf->Frames()-(znmax+xzone);
+ F o1 = znmin-xzone,o2 = buf->Frames()-(znmax+xzone);
if(o1 < 0 || o2 < 0) { // or (o1*o2 < 0)
if(o1+o2 < 0) {
@@ -595,7 +597,9 @@ V xgroove::s_dsp()
switch(loopmode) {
case xsl_once: SETSIGFUN(posfun,SIGFUN(s_pos_once)); break;
case xsl_loop:
- if(xzone > 0) {
+ if(_xzone > 0) {
+ // xzone might not be set yet (is done in do_xzone() )
+
const I blksz = Blocksize();
if(pblksz != blksz) {
@@ -610,34 +614,17 @@ V xgroove::s_dsp()
pblksz = blksz;
}
+ do_xzone(); // recalculate (s2u may have been 0 before)
+
SETSIGFUN(posfun,SIGFUN(s_pos_loopzn));
// linear interpolation should be just ok for fade zone, no?
-/*
- if(interp == xsi_4p)
- switch(outchns) {
- case 1: SETSTFUN(zonefun,TMPLSTF(st_play4,1,1)); break;
- case 2: SETSTFUN(zonefun,TMPLSTF(st_play4,1,2)); break;
- case 4: SETSTFUN(zonefun,TMPLSTF(st_play4,1,4)); break;
- default: SETSTFUN(zonefun,TMPLSTF(st_play4,1,-1));
- }
- else if(interp == xsi_lin)
-*/
- switch(outchns) {
- case 1: SETSTFUN(zonefun,TMPLSTF(st_play2,1,1)); break;
- case 2: SETSTFUN(zonefun,TMPLSTF(st_play2,1,2)); break;
- case 4: SETSTFUN(zonefun,TMPLSTF(st_play2,1,4)); break;
- default: SETSTFUN(zonefun,TMPLSTF(st_play2,1,-1));
- }
-/*
- else
- switch(outchns) {
- case 1: SETSTFUN(zonefun,TMPLSTF(st_play1,1,1)); break;
- case 2: SETSTFUN(zonefun,TMPLSTF(st_play1,1,2)); break;
- case 4: SETSTFUN(zonefun,TMPLSTF(st_play1,1,4)); break;
- default: SETSTFUN(zonefun,TMPLSTF(st_play1,1,-1));
- }
-*/
+ switch(outchns) {
+ case 1: SETSTFUN(zonefun,TMPLSTF(st_play2,1,1)); break;
+ case 2: SETSTFUN(zonefun,TMPLSTF(st_play2,1,2)); break;
+ case 4: SETSTFUN(zonefun,TMPLSTF(st_play2,1,4)); break;
+ default: SETSTFUN(zonefun,TMPLSTF(st_play2,1,-1));
+ }
}
else
SETSIGFUN(posfun,SIGFUN(s_pos_loop));
diff --git a/externals/grill/xsample/source/main.h b/externals/grill/xsample/source/main.h
index 03d5d261..fbbb693b 100644
--- a/externals/grill/xsample/source/main.h
+++ b/externals/grill/xsample/source/main.h
@@ -11,7 +11,7 @@ WARRANTIES, see the file, "license.txt," in this distribution.
#ifndef __XSAMPLE_H
#define __XSAMPLE_H
-#define XSAMPLE_VERSION "0.3.0pre4"
+#define XSAMPLE_VERSION "0.3.0pre5"
#define FLEXT_ATTRIBUTES 1
diff --git a/externals/grill/xsample/xsample.cw b/externals/grill/xsample/xsample.cw
index 71f32471..88c1e049 100755
--- a/externals/grill/xsample/xsample.cw
+++ b/externals/grill/xsample/xsample.cw
Binary files differ
diff --git a/externals/grill/xsample/xsample.dsp b/externals/grill/xsample/xsample.dsp
index 18119476..e92f5bdb 100644
--- a/externals/grill/xsample/xsample.dsp
+++ b/externals/grill/xsample/xsample.dsp
@@ -79,7 +79,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib pd.lib flext_d-pdwin.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"c:\programme\audio\pd\bin\\" /libpath:"..\flext\pd-msvc\\"
+# ADD LINK32 kernel32.lib user32.lib pd.lib flext_d-pdwin.lib ippsa6l.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"c:\programme\audio\pd\bin\\" /libpath:"..\flext\pd-msvc\\"
!ENDIF