rpms/olpcsound/devel csd-comment-termination.patch, NONE, 1.1 jack-pulseaudio.patch, NONE, 1.1 libstdutil-fix.patch, NONE, 1.1 ogg-opcode-fix.patch, NONE, 1.1 rtalsa-sched.patch, NONE, 1.1 sfont-envelope.patch, NONE, 1.1 olpcsound.spec, 1.1, 1.2
Peter Robinson
pbrobinson at fedoraproject.org
Sat Oct 25 14:51:15 UTC 2008
- Previous message: rpms/ardour/F-9 ardour-2.5-HOST_NOT_FOUND.patch, NONE, 1.1 ardour-2.5-gcc43.patch, 1.1, 1.2 ardour.spec, 1.16, 1.17 sources, 1.7, 1.8 ardour-2.1-SConstruct.patch, 1.3, NONE
- Next message: rpms/ardour/F-9 ardour-2.6-SConstruct.patch,NONE,1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: pbrobinson
Update of /cvs/pkgs/rpms/olpcsound/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22766
Modified Files:
olpcsound.spec
Added Files:
csd-comment-termination.patch jack-pulseaudio.patch
libstdutil-fix.patch ogg-opcode-fix.patch rtalsa-sched.patch
sfont-envelope.patch
Log Message:
- Merge from OLPC-3 to mainline
csd-comment-termination.patch:
--- NEW FILE csd-comment-termination.patch ---
Fix comment termination parsing
Patch taken from csound CVS
Index: olpcsound-5.08.92/Engine/rdorch.c
===================================================================
--- olpcsound-5.08.92.orig/Engine/rdorch.c
+++ olpcsound-5.08.92/Engine/rdorch.c
@@ -201,7 +201,7 @@ static int skiporccomment(CSOUND *csound
return;
}
}
- if (c == '*' && mode == 0) mode = 1;
+ if (c == '*') mode = 1; /* look for end of comment */
else if (c == '/' && mode == 1) {
return srccnt;
}
jack-pulseaudio.patch:
--- NEW FILE jack-pulseaudio.patch ---
Patch to include jack and pulseaudio in the
csound build (scons buildOLPC=1)
Index: olpcsound-5.08.92/SConstruct
===========================================================================
--- SConstruct.old
+++ SConstruct
@@ -339,8 +339,8 @@ if commonEnvironment['buildOLPC'] == '1'
commonEnvironment['useGettext'] = '1'
commonEnvironment['useDouble'] = '0'
commonEnvironment['usePortAudio'] = '0'
- commonEnvironment['useJack'] = '0'
- jackFound = False
+ commonEnvironment['useJack'] = '1'
+ #jackFound = False
commonEnvironment['buildCsoundAC'] = '0'
commonEnvironment['buildCsound5GUI'] = '0'
commonEnvironment['useDouble'] = '0'
@@ -639,12 +639,12 @@ boostFound = configure.CheckHeader("boos
gmmFound = configure.CheckHeader("gmm/gmm.h", language = "C++")
alsaFound = configure.CheckLibWithHeader("asound", "alsa/asoundlib.h", language = "C")
oscFound = configure.CheckLibWithHeader("lo", "lo/lo.h", language = "C")
-if not buildOLPC:
- jackFound = configure.CheckLibWithHeader("jack", "jack/jack.h", language = "C")
-if not buildOLPC:
- pulseaudioFound = configure.CheckHeader("pulse/simple.h", language = "C")
-else:
- pulseaudioFound = 0
+#if not buildOLPC:
+jackFound = configure.CheckLibWithHeader("jack", "jack/jack.h", language = "C")
+#if not buildOLPC:
+pulseaudioFound = configure.CheckHeader("pulse/simple.h", language = "C")
+#else:
+#pulseaudioFound = 0
stkFound = configure.CheckHeader("Opcodes/stk/include/Stk.h", language = "C++")
pdhfound = configure.CheckHeader("m_pd.h", language = "C")
tclhfound = configure.CheckHeader("tcl.h", language = "C")
@@ -1480,7 +1480,7 @@ makePlugin(pluginEnvironment, 'gabnew',
Opcodes/gab/newgabopc.c
'''))
makePlugin(pluginEnvironment, 'hrtfnew', 'Opcodes/hrtfopcodes.c')
-if (not buildOLPC) and jackFound:
+if jackFound:
makePlugin(pluginEnvironment, 'jackTransport', 'Opcodes/jackTransport.c')
if (not buildOLPC) and boostFound:
makePlugin(pluginEnvironment, 'chua', 'Opcodes/chua/ChuaOscillator.cpp')
libstdutil-fix.patch:
--- NEW FILE libstdutil-fix.patch ---
Fix libstdutil.so loading, removing hetro
Index: olpcsound-5.08.92/util/std_util.c
=============================================================
--- olpcsound-5.08.92/util/std_util.c.old
+++ olpcsound-5.08.92/util/std_util.c
@@ -37,10 +37,10 @@ PUBLIC int csoundModuleCreate(CSOUND *cs
err |= pv_export_init_(csound);
err |= pv_import_init_(csound);
err |= xtrct_init_(csound);
+ err |= hetro_init_(csound);
#endif
err |= cvanal_init_(csound);
err |= dnoise_init_(csound);
- err |= hetro_init_(csound);
err |= lpanal_init_(csound);
err |= mixer_init_(csound);
err |= pvanal_init_(csound);
ogg-opcode-fix.patch:
--- NEW FILE ogg-opcode-fix.patch ---
Fix liboggplay linking
Index: olpcsound-5.08.92/SConstruct
===================================================================
--- olpcsound-5.08.92/SConstruct.old
+++ olpcsound-5.08.92/SConstruct
@@ -1463,7 +1463,7 @@ makePlugin(pluginEnvironment, 'partikkel
makePlugin(pluginEnvironment, 'shape', ['Opcodes/shape.c'])
if buildOLPC :
oggEnvironment = pluginEnvironment.Copy()
- makePlugin(oggEnvironment, 'ogg', ['Opcodes/ogg.c'])
+ makePlugin(oggEnvironment, 'oggread', ['Opcodes/ogg.c'])
oggEnvironment.Append(LIBS=['vorbisfile'])
makePlugin(pluginEnvironment, 'vosim', ['Opcodes/Vosim.c'])
rtalsa-sched.patch:
--- NEW FILE rtalsa-sched.patch ---
Patch to add scheduler priority setting to alsa module
Index: olpcsound-5.08.92/InOut/rtalsa.c
==============================================================
--- olpcsound-5.08.92/InOut/rtalsa.c.old
+++ olpcsound-5.08.92/InOut/rtalsa.c
@@ -46,6 +46,12 @@
#include <termios.h>
#include <errno.h>
#include <alsa/asoundlib.h>
+#include <sched.h>
+#include <unistd.h>
+#include <signal.h>
+#include <sys/mman.h>
+#include <sys/resource.h>
+
#include "soundio.h"
@@ -89,6 +95,40 @@ static const unsigned char dataBytes[16]
0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 1, 1, 2, 0
};
+
+
+int set_scheduler_priority(CSOUND *csound, int priority)
+{
+ struct sched_param p;
+
+ memset(&p, 0, sizeof(struct sched_param));
+ if (priority < -20 || priority > sched_get_priority_max(SCHED_RR)) {
+ csound->Message(csound, "--scheduler: invalid priority value; the allowed range is:");
+ csound->Message(csound," -20 to -1: set nice level");
+ csound->Message(csound," 0: normal scheduling, but lock memory");
+ csound->Message(csound," 1 to %d: SCHED_RR with the specified priority "
+ "(DANGEROUS)", sched_get_priority_max(SCHED_RR));
+ return -1;
+ }
+ /* set scheduling policy and priority */
+ if (priority > 0) {
+ p.sched_priority = priority;
+ if (sched_setscheduler(0, SCHED_RR, &p) != 0) {
+ csound->Message(csound,"csound: cannot set scheduling policy to SCHED_RR");
+ }
+ else csound->Message(csound,"csound: setting scheduling policy to SCHED_RR\n");
+ }
+ else {
+ /* nice requested */
+ if (setpriority(PRIO_PROCESS, 0, priority) != 0) {
+ csound->Message(csound,"csound: cannot set nice level to %d",
+ priority);
+ }
+ }
+ return 0;
+}
+
+
/* sample conversion routines for playback */
static void MYFLT_to_short(int nSmps, MYFLT *inBuf, int16_t *outBuf, int *seed)
@@ -462,6 +502,7 @@ static int rtrecord_(CSOUND *csound, MYF
{
DEVPARAMS *dev;
int n, m, err;
+
dev = (DEVPARAMS*) csound->rtRecord_userdata;
if (dev->handle == NULL) {
@@ -508,7 +549,7 @@ static void rtplay_(CSOUND *csound, cons
{
DEVPARAMS *dev;
int n, err;
-
+
dev = (DEVPARAMS*) csound->rtPlay_userdata;
if (dev->handle == NULL)
return;
@@ -893,14 +934,29 @@ static int midi_out_close_file(CSOUND *c
return retval;
}
+
+
+
/* module interface functions */
PUBLIC int csoundModuleCreate(CSOUND *csound)
{
+
+ int minsched, maxsched, *priority;
+ csound->CreateGlobalVariable(csound, "::priority", sizeof(int));
+ priority = (int *) (csound->QueryGlobalVariable(csound, "::priority"));
+ if (priority == NULL)
+ csound->Message(csound, "warning... could not create global var\n");
+ minsched = -20;
+ maxsched = (int) sched_get_priority_max(SCHED_RR);
+ csound->CreateConfigurationVariable(csound, "rtscheduler", priority, CSOUNDCFG_INTEGER, 0, &minsched, &maxsched,
+ "RT scheduler priority, alsa module", NULL);
+
/* nothing to do, report success */
if (csound->oparms->msglevel & 0x400)
csound->Message(csound, "ALSA real-time audio and MIDI module "
"for Csound by Istvan Varga\n");
+
return 0;
}
@@ -911,6 +967,16 @@ PUBLIC int csoundModuleInit(CSOUND *csou
int i;
char buf[9];
+ csCfgVariable_t *cfg;
+ int priority;
+ cfg = csound->QueryConfigurationVariable(csound, "rtscheduler");
+ priority = *(cfg->i.p);
+
+ if(priority != 0) set_scheduler_priority(csound, priority);
+
+ csound->DeleteConfigurationVariable(csound, "rtscheduler");
+ csound->DestroyGlobalVariable(csound, "::priority");
+
s = (char*) csound->QueryGlobalVariable(csound, "_RTAUDIO");
i = 0;
if (s != NULL) {
sfont-envelope.patch:
--- NEW FILE sfont-envelope.patch ---
Index: olpcsound-5.08.92/Opcodes/sf.h
======================================
--- olpcsound-5.08.92/Opcodes/sf.h.old
+++ olpcsound-5.08.92/Opcodes/sf.h
@@ -56,6 +56,10 @@ struct _splitType {
SHORT scaleTuning;
SHORT initialAttenuation;
SHORT pan;
+ MYFLT attack;
+ MYFLT decay;
+ MYFLT sustain;
+ MYFLT release;
} PACKED;
typedef struct _splitType splitType;
Index: olpcsound-5.08.92/Opcodes/sfont.h
======================================
--- olpcsound-5.08.92/Opcodes/sfont.h.old
+++ olpcsound-5.08.92/Opcodes/sfont.h
@@ -49,42 +49,50 @@ typedef struct {
typedef struct {
OPDS h;
MYFLT *out1, *out2, *ivel, *inotnum,*xamp, *xfreq;
- MYFLT *ipresethandle, *iflag, *ioffset;
+ MYFLT *ipresethandle, *iflag, *ioffset, *ienv;
int spltNum;
SHORT *base[MAXSPLT], mode[MAXSPLT];
- DWORD end[MAXSPLT], startloop[MAXSPLT], endloop[MAXSPLT];
+ DWORD end[MAXSPLT], startloop[MAXSPLT], endloop[MAXSPLT], ti[MAXSPLT];
double si[MAXSPLT],phs[MAXSPLT];
- MYFLT leftlevel[MAXSPLT], rightlevel[MAXSPLT];
+ MYFLT leftlevel[MAXSPLT], rightlevel[MAXSPLT], attack[MAXSPLT], decay[MAXSPLT], sustain[MAXSPLT], release[MAXSPLT];
+ MYFLT attr[MAXSPLT], decr[MAXSPLT];
+ MYFLT env[MAXSPLT];
} SFPLAY;
typedef struct {
OPDS h;
- MYFLT *out1, *ivel, *inotnum,*xamp, *xfreq, *ipresethandle, *iflag, *ioffset;
+ MYFLT *out1, *ivel, *inotnum,*xamp, *xfreq, *ipresethandle, *iflag, *ioffset, *ienv;
int spltNum;
SHORT *base[MAXSPLT], mode[MAXSPLT];
- DWORD end[MAXSPLT], startloop[MAXSPLT], endloop[MAXSPLT];
+ DWORD end[MAXSPLT], startloop[MAXSPLT], endloop[MAXSPLT], ti[MAXSPLT];
double si[MAXSPLT],phs[MAXSPLT];
- MYFLT attenuation[MAXSPLT] ;
+ MYFLT attenuation[MAXSPLT],attack[MAXSPLT], decay[MAXSPLT], sustain[MAXSPLT], release[MAXSPLT];
+ MYFLT attr[MAXSPLT], decr[MAXSPLT];
+ MYFLT env[MAXSPLT];
} SFPLAYMONO;
typedef struct {
OPDS h;
MYFLT *out1, *ivel, *inotnum, *xamp, *xfreq, *instrNum;
- MYFLT *sfBank, *iflag, *ioffset;
+ MYFLT *sfBank, *iflag, *ioffset, *ienv;
int spltNum;
SHORT *base[MAXSPLT], mode[MAXSPLT];
- DWORD end[MAXSPLT], startloop[MAXSPLT], endloop[MAXSPLT];
+ DWORD end[MAXSPLT], startloop[MAXSPLT], endloop[MAXSPLT], ti[MAXSPLT];
double si[MAXSPLT],phs[MAXSPLT];
- MYFLT attenuation[MAXSPLT] ;
+ MYFLT attenuation[MAXSPLT],attack[MAXSPLT], decay[MAXSPLT], sustain[MAXSPLT], release[MAXSPLT];
+ MYFLT attr[MAXSPLT], decr[MAXSPLT];
+ MYFLT env[MAXSPLT];
} SFIPLAYMONO;
typedef struct {
OPDS h;
MYFLT *out1, *out2, *ivel, *inotnum, *xamp, *xfreq;
- MYFLT *instrNum, *sfBank, *iflag, *ioffset;
+ MYFLT *instrNum, *sfBank, *iflag, *ioffset, *ienv;
int spltNum;
SHORT *base[MAXSPLT], mode[MAXSPLT];
- DWORD end[MAXSPLT], startloop[MAXSPLT], endloop[MAXSPLT];
+ DWORD end[MAXSPLT], startloop[MAXSPLT], endloop[MAXSPLT], ti[MAXSPLT];
double si[MAXSPLT],phs[MAXSPLT];
- MYFLT leftlevel[MAXSPLT], rightlevel[MAXSPLT];
+ MYFLT leftlevel[MAXSPLT], rightlevel[MAXSPLT],attack[MAXSPLT], decay[MAXSPLT], sustain[MAXSPLT], release[MAXSPLT];
+ MYFLT attr[MAXSPLT], decr[MAXSPLT];
+ MYFLT env[MAXSPLT];
} SFIPLAY;
Index: olpcsound-5.08.92/Opcodes/sfont.c
======================================
--- olpcsound-5.08.92/Opcodes/sfont.c.old
+++ olpcsound-5.08.92/Opcodes/sfont.c
@@ -373,6 +373,27 @@ static int SfPlay_set(CSOUND *csound, SF
p->leftlevel[spltNum] = (MYFLT) sqrt(1.0-pan) * attenuation;
p->rightlevel[spltNum] = (MYFLT) sqrt(pan) * attenuation;
p->mode[spltNum]= split->sampleModes;
+ p->attack[spltNum] = split->attack*csound->ekr;
+ p->decay[spltNum] = split->decay*csound->ekr;
+ p->sustain[spltNum] = split->sustain;
+ p->release[spltNum] = split->release*csound->ekr;
+
+ if(*p->ienv > 1) {
+ p->attr[spltNum] = 1.0/(csound->ekr*split->attack);
+ p->decr[spltNum] = pow((split->sustain+0.0001), 1.0/(csound->ekr*split->decay+0.0001));
+ if(split->attack != 0.0) p->env[spltNum] = 0.0;
+ else p->env[spltNum] = 1.0;
+ }
+ else if (*p->ienv > 0) {
+ p->attr[spltNum] = 1.0/(csound->ekr*split->attack);
+ p->decr[spltNum] = (split->sustain-1.0)/(csound->ekr*split->decay);
+ if(split->attack != 0.0) p->env[spltNum] = 0.0;
+ else p->env[spltNum] = 1.0;
+ }
+ else {
+ p->env[spltNum] = 1.0;
+ }
+ p->ti[spltNum] = 0;
spltNum++;
}
}
@@ -410,28 +431,42 @@ static int SfPlay_set(CSOUND *csound, SF
while (*phs < *startloop) *phs += looplength; \
}
+#define ExpEnvelope \
+ if (*tinc < *attack) *env += *attr;\
+ else if (*tinc < *decay + *attack) *env *= *decr; \
+ else *env = *sustain; \
+ (*tinc)++; \
+
+#define LinEnvelope \
+ if (*tinc < *attack) *env += *attr;\
+ else if (*tinc < *decay + *attack) *env += *decr; \
+ else *env = *sustain; \
+ (*tinc)++; \
+
#define Unlooped \
if (*phs > *end) break; \
if (*phs < FL(0.0)) *phs = FL(0.0); \
#define Mono_out \
- out1[n] += *attenuation * out; \
+ out1[n] += *attenuation * out * (*env); \
*phs += si;
#define Stereo_out \
- out1[n] += *left * out;\
- out2[n] += *right * out;\
+ out1[n] += *left * out * (*env);\
+ out2[n] += *right * out * (*env);\
*phs += si;
static int SfPlay(CSOUND *csound, SFPLAY *p)
{
- MYFLT *out1 = p->out1, *out2 = p->out2;
+ MYFLT *out1 = p->out1, *out2 = p->out2, *env = p->env;
int n, nsmps = csound->ksmps, j = p->spltNum, arate;
SHORT **base = p->base;
- DWORD *end = p->end, *startloop= p->startloop, *endloop= p->endloop;
+ DWORD *end = p->end, *startloop= p->startloop, *endloop= p->endloop, *tinc = p->ti;
SHORT *mode = p->mode;
double *sampinc = p->si, *phs = p->phs;
- MYFLT *left= p->leftlevel, *right= p->rightlevel;
+ MYFLT *left= p->leftlevel, *right= p->rightlevel, *attack = p->attack, *decr = p->decr,
+ *decay = p->decay, *sustain= p->sustain, *release = p->release, *attr = p->attr;
+
arate = (p->XINCODE) ? 1 : 0;
memset(out1, 0, nsmps*sizeof(MYFLT));
@@ -441,22 +476,27 @@ static int SfPlay(CSOUND *csound, SFPLAY
while (j--) {
double looplength = *endloop - *startloop;
MYFLT *freq = p->xfreq;
-
+
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Linear_interpolation Stereo_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Linear_interpolation Stereo_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- left++; right++, mode++, end++;
+ left++; right++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++; env++; attr++; decr++;
}
}
else {
@@ -466,17 +506,22 @@ static int SfPlay(CSOUND *csound, SFPLAY
double si = *sampinc * freq;
if (*mode == 1 || *mode ==3) {
int flag =0;
- for (n=0;n<nsmps;n++) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
+ for (n=0;n<nsmps;n++) {
Linear_interpolation Stereo_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Linear_interpolation Stereo_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- left++; right++, mode++, end++;
+ left++; right++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++; env++;attr++; decr++;
}
}
if (arate) {
@@ -498,13 +543,14 @@ static int SfPlay(CSOUND *csound, SFPLAY
static int SfPlay3(CSOUND *csound, SFPLAY *p)
{
- MYFLT *out1 = p->out1, *out2 = p->out2;
+ MYFLT *out1 = p->out1, *out2 = p->out2, *env = p->env;
int n, nsmps = csound->ksmps, j = p->spltNum, arate;
SHORT **base = p->base;
- DWORD *end = p->end, *startloop = p->startloop, *endloop = p->endloop;
+ DWORD *end = p->end, *startloop = p->startloop, *endloop = p->endloop, *tinc = p->ti;
SHORT *mode = p->mode;
double *sampinc = p->si, *phs = p->phs;
- MYFLT *left= p->leftlevel, *right= p->rightlevel;
+ MYFLT *left= p->leftlevel, *right= p->rightlevel, *attack = p->attack, *decr = p->decr,
+ *decay = p->decay, *sustain= p->sustain, *release = p->release, *attr = p->attr;
arate = (p->XINCODE) ? 1 : 0;
memset(out1, 0, nsmps*sizeof(MYFLT));
@@ -517,19 +563,24 @@ static int SfPlay3(CSOUND *csound, SFPLA
/* nsmps = csound->ksmps; */
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Cubic_interpolation Stereo_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Cubic_interpolation Stereo_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- left++; right++, mode++, end++;
+ left++; right++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++; env++;attr++; decr++;
}
}
else {
@@ -538,17 +589,22 @@ static int SfPlay3(CSOUND *csound, SFPLA
double looplength = *endloop - *startloop, si = *sampinc * freq;
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Cubic_interpolation Stereo_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Cubic_interpolation Stereo_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- left++; right++, mode++, end++;
+ left++; right++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++; env++;attr++; decr++;
}
}
@@ -630,6 +686,27 @@ static int SfPlayMono_set(CSOUND *csound
split->startLoopOffset - start;
p->endloop[spltNum] = sample->dwEndloop + split->endLoopOffset - start;
p->mode[spltNum]= split->sampleModes;
+ p->attack[spltNum] = split->attack*csound->ekr;
+ p->decay[spltNum] = split->decay*csound->ekr;
+ p->sustain[spltNum] = split->sustain;
+ p->release[spltNum] = split->release*csound->ekr;
+
+ if(*p->ienv > 1) {
+ p->attr[spltNum] = 1.0/(csound->ekr*split->attack);
+ p->decr[spltNum] = pow((split->sustain+0.0001), 1.0/(csound->ekr*split->decay+0.0001));
+ if(split->attack != 0.0) p->env[spltNum] = 0.0;
+ else p->env[spltNum] = 1.0;
+ }
+ else if (*p->ienv > 0) {
+ p->attr[spltNum] = 1.0/(csound->ekr*split->attack);
+ p->decr[spltNum] = (split->sustain-1.0)/(csound->ekr*split->decay);
+ if(split->attack != 0.0) p->env[spltNum] = 0.0;
+ else p->env[spltNum] = 1.0;
+ }
+ else {
+ p->env[spltNum] = 1.0;
+ }
+ p->ti[spltNum] = 0;
spltNum++;
}
}
@@ -641,13 +718,14 @@ static int SfPlayMono_set(CSOUND *csound
static int SfPlayMono(CSOUND *csound, SFPLAYMONO *p)
{
- MYFLT *out1 = p->out1 ;
+ MYFLT *out1 = p->out1 , *env = p->env;
int n, nsmps = csound->ksmps, j = p->spltNum, arate;
SHORT **base = p->base;
- DWORD *end= p->end, *startloop= p->startloop, *endloop= p->endloop;
+ DWORD *end= p->end, *startloop= p->startloop, *endloop= p->endloop, *tinc = p->ti;
SHORT *mode = p->mode;
- double *sampinc = p->si, *phs = p->phs;
- MYFLT *attenuation = p->attenuation;
+ double *sampinc = p->si, *phs = p->phs;
+ MYFLT *attenuation = p->attenuation, *attack = p->attack, *decr = p->decr,
+ *decay = p->decay, *sustain= p->sustain, *release = p->release, *attr = p->attr;
arate = (p->XINCODE) ? 1 : 0;
@@ -662,17 +740,22 @@ static int SfPlayMono(CSOUND *csound, SF
int flag =0;
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
Linear_interpolation Mono_out Looped
}
}
else if (*phs < *end) {
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
Linear_interpolation Mono_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- attenuation++, mode++, end++;
+ attenuation++, mode++, end++; attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
else {
@@ -683,16 +766,21 @@ static int SfPlayMono(CSOUND *csound, SF
if (*mode == 1 || *mode ==3) {
int flag =0;
for (n=0;n<nsmps;n++) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
Linear_interpolation Mono_out Looped
}
}
else if (*phs < *end) {
for (n=0;n<nsmps;n++) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
Linear_interpolation Mono_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- attenuation++, mode++, end++;
+ attenuation++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
if (arate) {
@@ -712,13 +800,14 @@ static int SfPlayMono(CSOUND *csound, SF
static int SfPlayMono3(CSOUND *csound, SFPLAYMONO *p)
{
- MYFLT *out1 = p->out1;
+ MYFLT *out1 = p->out1, *env = p->env;
int n, nsmps = csound->ksmps, j = p->spltNum, arate;
SHORT **base = p->base;
- DWORD *end = p->end, *startloop = p->startloop, *endloop = p->endloop;
+ DWORD *end = p->end, *startloop = p->startloop, *endloop = p->endloop, *tinc = p->ti;
SHORT *mode = p->mode;
double *sampinc = p->si, *phs = p->phs;
- MYFLT *attenuation = p->attenuation;
+ MYFLT *attenuation = p->attenuation,*attack = p->attack, *decr = p->decr,
+ *decay = p->decay, *sustain= p->sustain, *release = p->release, *attr = p->attr;
arate = (p->XINCODE) ? 1 : 0;
@@ -731,19 +820,24 @@ static int SfPlayMono3(CSOUND *csound, S
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Cubic_interpolation Mono_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Cubic_interpolation Mono_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- attenuation++, mode++, end++;
+ attenuation++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
else {
@@ -753,17 +847,22 @@ static int SfPlayMono3(CSOUND *csound, S
double si = *sampinc * freq;
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Cubic_interpolation Mono_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Cubic_interpolation Mono_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- attenuation++, mode++, end++;
+ attenuation++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
if (arate) {
@@ -837,6 +936,28 @@ static int SfInstrPlay_set(CSOUND *csoun
p->leftlevel[spltNum] = (FL(1.0)-pan) * attenuation;
p->rightlevel[spltNum] = pan * attenuation;
p->mode[spltNum]= split->sampleModes;
+
+ p->attack[spltNum] = split->attack*csound->ekr;
+ p->decay[spltNum] = split->decay*csound->ekr;
+ p->sustain[spltNum] = split->sustain;
+ p->release[spltNum] = split->release*csound->ekr;
+
+ if(*p->ienv > 1) {
+ p->attr[spltNum] = 1.0/(csound->ekr*split->attack);
+ p->decr[spltNum] = pow((split->sustain+0.0001), 1.0/(csound->ekr*split->decay+0.0001));
+ if(split->attack != 0.0) p->env[spltNum] = 0.0;
+ else p->env[spltNum] = 1.0;
+ }
+ else if (*p->ienv > 0) {
+ p->attr[spltNum] = 1.0/(csound->ekr*split->attack);
+ p->decr[spltNum] = (split->sustain-1.0)/(csound->ekr*split->decay);
+ if(split->attack != 0.0) p->env[spltNum] = 0.0;
+ else p->env[spltNum] = 1.0;
+ }
+ else {
+ p->env[spltNum] = 1.0;
+ }
+ p->ti[spltNum] = 0;
spltNum++;
}
}
@@ -847,13 +968,15 @@ static int SfInstrPlay_set(CSOUND *csoun
static int SfInstrPlay(CSOUND *csound, SFIPLAY *p)
{
- MYFLT *out1= p->out1, *out2= p->out2;
+ MYFLT *out1= p->out1, *out2= p->out2, *env = p->env;
int n, nsmps= csound->ksmps, j = p->spltNum, arate;
SHORT **base = p->base;
- DWORD *end= p->end, *startloop= p->startloop, *endloop= p->endloop;
+ DWORD *end= p->end, *startloop= p->startloop, *endloop= p->endloop, *tinc = p->ti;
SHORT *mode = p->mode;
double *sampinc = p->si, *phs = p->phs;
- MYFLT *left= p->leftlevel, *right= p->rightlevel;
+ MYFLT *left= p->leftlevel, *right= p->rightlevel, *attack = p->attack, *decr = p->decr,
+ *decay = p->decay, *sustain= p->sustain, *release = p->release, *attr = p->attr;
+
arate = (p->XINCODE) ? 1 : 0;
@@ -867,19 +990,24 @@ static int SfInstrPlay(CSOUND *csound, S
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Linear_interpolation Stereo_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Linear_interpolation Stereo_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- left++; right++, mode++, end++;
+ left++; right++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
else {
@@ -889,17 +1017,22 @@ static int SfInstrPlay(CSOUND *csound, S
double si = *sampinc * freq;
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Linear_interpolation Stereo_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Linear_interpolation Stereo_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- left++; right++, mode++, end++;
+ left++; right++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
@@ -922,13 +1055,15 @@ static int SfInstrPlay(CSOUND *csound, S
static int SfInstrPlay3(CSOUND *csound, SFIPLAY *p)
{
- MYFLT *out1= p->out1, *out2= p->out2;
+ MYFLT *out1= p->out1, *out2= p->out2,*env =p->env;
int n, nsmps= csound->ksmps, j = p->spltNum, arate;
SHORT **base = p->base;
- DWORD *end= p->end, *startloop= p->startloop, *endloop= p->endloop;
+ DWORD *end= p->end, *startloop= p->startloop, *endloop= p->endloop, *tinc = p->ti;
SHORT *mode = p->mode;
double *sampinc = p->si, *phs = p->phs;
- MYFLT *left= p->leftlevel, *right= p->rightlevel;
+ MYFLT *left= p->leftlevel, *right= p->rightlevel,
+ *attack = p->attack, *decr = p->decr,
+ *decay = p->decay, *sustain= p->sustain, *release = p->release, *attr = p->attr;
arate = (p->XINCODE) ? 1 : 0;
@@ -942,19 +1077,24 @@ static int SfInstrPlay3(CSOUND *csound,
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Cubic_interpolation Stereo_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Cubic_interpolation Stereo_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- left++; right++, mode++, end++;
+ left++; right++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
else {
@@ -964,17 +1104,22 @@ static int SfInstrPlay3(CSOUND *csound,
double si = *sampinc * freq;
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Cubic_interpolation Stereo_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Cubic_interpolation Stereo_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- left++; right++, mode++, end++;
+ left++; right++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
@@ -1044,6 +1189,27 @@ static int SfInstrPlayMono_set(CSOUND *c
split->startLoopOffset - start;
p->endloop[spltNum] = sample->dwEndloop + split->endLoopOffset - start;
p->mode[spltNum]= split->sampleModes;
+ p->attack[spltNum] = split->attack*csound->ekr;
+ p->decay[spltNum] = split->decay*csound->ekr;
+ p->sustain[spltNum] = split->sustain;
+ p->release[spltNum] = split->release*csound->ekr;
+
+ if(*p->ienv > 1) {
+ p->attr[spltNum] = 1.0/(csound->ekr*split->attack);
+ p->decr[spltNum] = pow((split->sustain+0.0001), 1.0/(csound->ekr*split->decay+0.0001));
+ if(split->attack != 0.0) p->env[spltNum] = 0.0;
+ else p->env[spltNum] = 1.0;
+ }
+ else if (*p->ienv > 0) {
+ p->attr[spltNum] = 1.0/(csound->ekr*split->attack);
+ p->decr[spltNum] = (split->sustain-1.0)/(csound->ekr*split->decay);
+ if(split->attack != 0.0) p->env[spltNum] = 0.0;
+ else p->env[spltNum] = 1.0;
+ }
+ else {
+ p->env[spltNum] = 1.0;
+ }
+ p->ti[spltNum] = 0;
spltNum++;
}
}
@@ -1054,14 +1220,15 @@ static int SfInstrPlayMono_set(CSOUND *c
static int SfInstrPlayMono(CSOUND *csound, SFIPLAYMONO *p)
{
- MYFLT *out1= p->out1 ;
+ MYFLT *out1= p->out1, *env = p->env;
int n, nsmps= csound->ksmps, j = p->spltNum, arate;
SHORT **base = p->base;
- DWORD *end= p->end, *startloop= p->startloop, *endloop= p->endloop;
+ DWORD *end= p->end, *startloop= p->startloop, *endloop= p->endloop, *tinc = p->ti;
SHORT *mode = p->mode;
double *sampinc = p->si, *phs = p->phs;
- MYFLT *attenuation = p->attenuation;
+ MYFLT *attenuation = p->attenuation, *attack = p->attack, *decr = p->decr,
+ *decay = p->decay, *sustain= p->sustain, *release = p->release, *attr = p->attr;;
arate = (p->XINCODE) ? 1 : 0;
@@ -1074,19 +1241,24 @@ static int SfInstrPlayMono(CSOUND *csoun
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Linear_interpolation Mono_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Linear_interpolation Mono_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- attenuation++, mode++, end++;
+ attenuation++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
else {
@@ -1096,17 +1268,22 @@ static int SfInstrPlayMono(CSOUND *csoun
double si = *sampinc * freq;
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Linear_interpolation Mono_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Linear_interpolation Mono_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- attenuation++, mode++, end++;
+ attenuation++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
if (arate) {
@@ -1126,13 +1303,14 @@ static int SfInstrPlayMono(CSOUND *csoun
static int SfInstrPlayMono3(CSOUND *csound, SFIPLAYMONO *p)
{
- MYFLT *out1= p->out1 ;
+ MYFLT *out1= p->out1, *env = p->env ;
int n, nsmps= csound->ksmps, j = p->spltNum, arate;
SHORT **base = p->base;
- DWORD *end= p->end, *startloop= p->startloop, *endloop= p->endloop;
+ DWORD *end= p->end, *startloop= p->startloop, *endloop= p->endloop, *tinc = p->ti;
SHORT *mode = p->mode;
double *sampinc = p->si, *phs = p->phs;
- MYFLT *attenuation = p->attenuation;
+ MYFLT *attenuation = p->attenuation,*attack = p->attack, *decr = p->decr,
+ *decay = p->decay, *sustain= p->sustain, *release = p->release, *attr = p->attr;;
arate = (p->XINCODE) ? 1 : 0;
@@ -1145,19 +1323,24 @@ static int SfInstrPlayMono3(CSOUND *csou
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Cubic_interpolation Mono_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
double si = *sampinc * freq[n];
Cubic_interpolation Mono_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- attenuation++, mode++, end++;
+ attenuation++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
else {
@@ -1167,17 +1350,22 @@ static int SfInstrPlayMono3(CSOUND *csou
double si = *sampinc * freq;
if (*mode == 1 || *mode ==3) {
int flag =0;
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Cubic_interpolation Mono_out Looped
}
}
else if (*phs < *end) {
+ if(*p->ienv > 1) { ExpEnvelope }
+ else if (*p->ienv > 0) { LinEnvelope }
for (n=0;n<nsmps;n++) {
Cubic_interpolation Mono_out Unlooped
}
}
phs++; base++; sampinc++; endloop++; startloop++;
- attenuation++, mode++, end++;
+ attenuation++, mode++, end++;attack++; decay++; sustain++;
+ release++; tinc++;env++;attr++; decr++;
}
}
if (arate) {
@@ -1379,6 +1567,7 @@ static void fill_SfStruct(CSOUND *csound
else {
splitType *split;
split = &layer->split[ll];
+ split->attack = split->decay = split->sustain = split->release = FL(0.0);
if (GoverridingRootKey != UNUSE)
split->overridingRootKey = (BYTE) GoverridingRootKey;
if (GcoarseTune != UNUSE)
@@ -1466,6 +1655,27 @@ static void fill_SfStruct(CSOUND *csound
case endloopAddrsCoarseOffset:
split->endLoopOffset += igen[m].genAmount.shAmount * 32768;
break;
+ case delayVolEnv:
+ csound->Message(csound, "del: %f\n", (double) igen[m].genAmount.shAmount);
+ break;
+ case attackVolEnv: /*attack */
+ split->attack = (MYFLT) pow(2, igen[m].genAmount.shAmount/1200.0);
+ //csound->Message(csound, "att: %f\n", split->attack );
+ break;
+ //case holdVolEnv: /*hold 35 */
+ case decayVolEnv: /*decay */
+ split->decay = (MYFLT) pow(2, igen[m].genAmount.shAmount/1200.0);
+ //csound->Message(csound, "dec: %f\n", split->decay);
+ break;
+ case sustainVolEnv: /*sustain */
+ split->sustain = (MYFLT) pow(10, -igen[m].genAmount.shAmount/20.0);
+ //csound->Message(csound, "sus: %f\n", split->sustain);
+ break;
+ case releaseVolEnv: /*release */
+ split->release = (MYFLT) pow(2, igen[m].genAmount.shAmount/1200.0);
+ //csound->Message(csound, "rel: %f\n", split->release);
+ break;
+
case keynum:
/*csound->Message(csound, "");*/
break;
@@ -2280,24 +2490,24 @@ static int sflooper_process(CSOUND *csou
static OENTRY localops[] = {
{ "sfload",S(SFLOAD), 1, "i", "T", (SUBR)SfLoad, NULL, NULL },
{ "sfpreset",S(SFPRESET), 1, "i", "iiii", (SUBR)SfPreset },
-{ "sfplay", S(SFPLAY), 5, "aa", "iixxioo", (SUBR)SfPlay_set,
+{ "sfplay", S(SFPLAY), 5, "aa", "iixxiooo", (SUBR)SfPlay_set,
NULL, (SUBR)SfPlay },
-{ "sfplaym", S(SFPLAYMONO), 5, "a", "iixxioo", (SUBR)SfPlayMono_set,
+{ "sfplaym", S(SFPLAYMONO), 5, "a", "iixxiooo", (SUBR)SfPlayMono_set,
NULL, (SUBR)SfPlayMono },
{ "sfplist",S(SFPLIST), 1, "", "i", (SUBR)Sfplist },
{ "sfilist",S(SFPLIST), 1, "", "i", (SUBR)Sfilist },
{ "sfpassign",S(SFPASSIGN), 1, "", "iip", (SUBR)SfAssignAllPresets },
-{ "sfinstrm", S(SFIPLAYMONO),5, "a", "iixxiioo", (SUBR)SfInstrPlayMono_set,
+{ "sfinstrm", S(SFIPLAYMONO),5, "a", "iixxiiooo", (SUBR)SfInstrPlayMono_set,
NULL, (SUBR)SfInstrPlayMono },
-{ "sfinstr", S(SFIPLAY), 5, "aa", "iixxiioo", (SUBR)SfInstrPlay_set,
+{ "sfinstr", S(SFIPLAY), 5, "aa", "iixxiiooo", (SUBR)SfInstrPlay_set,
NULL,(SUBR)SfInstrPlay },
-{ "sfplay3", S(SFPLAY), 5, "aa", "iixxioo", (SUBR)SfPlay_set,
+{ "sfplay3", S(SFPLAY), 5, "aa", "iixxiooo", (SUBR)SfPlay_set,
NULL, (SUBR)SfPlay3 },
-{ "sfplay3m", S(SFPLAYMONO), 5, "a", "iixxioo", (SUBR)SfPlayMono_set,
+{ "sfplay3m", S(SFPLAYMONO), 5, "a", "iixxiooo", (SUBR)SfPlayMono_set,
NULL,(SUBR)SfPlayMono3 },
-{ "sfinstr3", S(SFIPLAY), 5, "aa", "iixxiioo", (SUBR)SfInstrPlay_set,
+{ "sfinstr3", S(SFIPLAY), 5, "aa", "iixxiiooo", (SUBR)SfInstrPlay_set,
NULL, (SUBR)SfInstrPlay3 },
-{ "sfinstr3m", S(SFIPLAYMONO), 5, "a", "iixxiioo",(SUBR)SfInstrPlayMono_set,
+{ "sfinstr3m", S(SFIPLAYMONO), 5, "a", "iixxiiooo",(SUBR)SfInstrPlayMono_set,
NULL, (SUBR)SfInstrPlayMono3 },
{ "sflooper", S(sflooper), 5, "aa", "iikkikkkoooo", (SUBR)sflooper_init,
NULL, (SUBR)sflooper_process },
Index: olpcsound.spec
===================================================================
RCS file: /cvs/pkgs/rpms/olpcsound/devel/olpcsound.spec,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- olpcsound.spec 20 Jun 2008 12:00:16 -0000 1.1
+++ olpcsound.spec 25 Oct 2008 14:50:45 -0000 1.2
@@ -1,13 +1,20 @@
Summary: Csound - sound synthesis language and library, OLPC subset
Name: olpcsound
Version: 5.08.92
-Release: 2%{?dist}
+Release: 11%{?dist}
URL: http://csound.sourceforge.net/
License: LGPLv2+
Group: Applications/Multimedia
Source: http://downloads.sourceforge.net/csound/olpcsound-%version.tar.bz2
+Patch0: csd-comment-termination.patch
+Patch1: ogg-opcode-fix.patch
+Patch2: libstdutil-fix.patch
+Patch3: sfont-envelope.patch
+Patch4: jack-pulseaudio.patch
+Patch5: rtalsa-sched.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: swig python scons alsa-lib-devel liblo-devel libsndfile-devel
+BuildRequires: jack-audio-connection-kit-devel
BuildRequires: libpng-devel libjpeg-devel libvorbis-devel libogg-devel gettext python-devel
%define python_site_dir %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
@@ -25,6 +32,12 @@
%prep
%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
%build
%{_bindir}/scons buildOLPC=1 customCCFLAGS="%{optflags}" customCXXFLAGS="%{optflags}"
@@ -63,6 +76,34 @@
%changelog
+* Fri Aug 22 2008 Victor Lazzarini <vlazzarini at nuim.ie> - 5.08.92-11
+ - removed pulseaudio dependency
+
+* Fri Aug 22 2008 Victor Lazzarini <vlazzarini at nuim.ie> - 5.08.92-10
+ - fixed jack dependency
+
+* Fri Aug 15 2008 Victor Lazzarini <vlazzarini at nuim.ie> - 5.08.92-9
+ - add patches for including jack and pulseaudio modules on the build,
+ and rt scheduler priority setting code to alsa module.
+
+* Mon Aug 11 2008 Victor Lazzarini <vlazzarini at nuim.ie> - 5.08.92-8
+ - add patch for amplitude envelopes on soundfont opcodes
+
+* Mon Aug 11 2008 Victor Lazzarini <vlazzarini at nuim.ie> - 5.08.92-7
+ - add patch to fix libstdutil.so loading
+
+* Mon Aug 11 2008 Victor Lazzarini <vlazzarini at nuim.ie> - 5.08.92-6
+ - fixed specfile patch numbering
+
+* Mon Aug 11 2008 Victor Lazzarini <vlazzarini at nuim.ie> - 5.08.92-5
+ - fixed CVS tag issue
+
+* Mon Aug 11 2008 Victor Lazzarini <vlazzarini at nuim.ie> - 5.08.92-4
+ - add patch to fix liboggplay linking
+
+* Mon Jul 27 2008 Daniel Drake <dsd at laptop.org> - 5.08.92-3
+ - add patch from CVS to fix csd comment termination parsing
+
* Wed May 28 2008 Victor.Lazzarini <vlazzarini at nuim.ie> - 5.08.92-2
- fixed version format in changelog
- fixed permissions of Opcodes/hrtfopcodes.c and Util/mixer.c in srcs
- Previous message: rpms/ardour/F-9 ardour-2.5-HOST_NOT_FOUND.patch, NONE, 1.1 ardour-2.5-gcc43.patch, 1.1, 1.2 ardour.spec, 1.16, 1.17 sources, 1.7, 1.8 ardour-2.1-SConstruct.patch, 1.3, NONE
- Next message: rpms/ardour/F-9 ardour-2.6-SConstruct.patch,NONE,1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list