Csound Csound-dev Csound-tekno Search About

[Csnd] Re: Re: Re: Urgent help required: is there a maximum performance duration?

Date2008-04-15 08:45
Fromvictor
Subject[Csnd] Re: Re: Re: Urgent help required: is there a maximum performance duration?
Another way I thought would be to get Python to recompile your
CSD every so often and restart playing. This way, csound is ensured
to have a reset now and then. This is the script:

from csnd import *
cs = Csound()
while(True):
  the_end = cs.Compile("mysemieternal.csd")
  while(not the_end): the_end = cs.PerformBuffer()
  cs.Reset()

I am using PerformBuffer() to reduce the number of python function
calls per sample. You can set the csound score to run for say 24 hours,
and it will be fresh every day...

Victor

----- Original Message ----- 
From: "Richard Bowers" 
To: 
Sent: Monday, April 14, 2008 11:54 PM
Subject: [Csnd] Re: Re: Urgent help required: is there a maximum performance 
duration?


> Thanks, Victor. I really should get to know and understand Python because 
> everyone seems to be using it. For now, I'll make do with a 46 day stretch 
> and turn up occasionally to reboot ;) Anyway, I'll report back if anything 
> weird happens over that 46 day period - like the computer melts or starts 
> speaking fluent Urdu or something.
>
> Best,
> Richard.
>
> victor wrote:
>> Yes, I think we can consider this behaviour a bug.
>> But one simple solution is to use a Python script:
>>
>> from csnd import *
>>
>> cs = Csound()
>> cs.Compile("myeternal.csd")
>>
>> while(True):
>>  ignore = cs.PerformKsmps()
>>
>> Call it eternal.py and run
>>
>>> python eternal.py
>>
>> This will play your CSD forever, at least if you have a score line like:
>>
>> i1 0 -1
>>
>> somewhere, as in
>>
>> 
>> 
>> -odac -b1024 -d
>> 
>> 
>> instr 1
>> karp randh 100, 2.4
>> asig vco2 10000, 440+karp
>>   out  asig
>> endin
>> 
>> 
>> i1 0 -1
>> 
>> 
>>
>> Victor
>>
>> ----- Original Message ----- From: "Richard Bowers" 
>> 
>> To: 
>> Sent: Monday, April 14, 2008 10:39 PM
>> Subject: [Csnd] Urgent help required: is there a maximum performance 
>> duration?
>>
>>
>>> I am running CSound v. 5.0 on XP and would like to set the instrument
>>> duration (and f0 duration) such that it would run for the duration of
>>> two exhibitions - in one case 30 days and in another 4 months.
>>>
>>> When I put a high number of seconds in (12960000) the program hangs. I
>>> can access other programs, such as this email client, but the CSound
>>> session in the console just sticks and produces no sound.
>>>
>>> I've also tried
>>> f0 -1
>>> with
>>> i1   0   -1
>>>
>>> I attach the csd file (it won't run, of course, because of the missing
>>> files) but someone may be able to identify a reason.
>>>
>>> Help would be greatly appreciated as I am installing this on Wednesday.
>>>
>>> --Richard.
>>>
>>>
>>> Send bugs reports to this list.
>>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe 
>>> csound"
>>
>>
>> --------------------------------------------------------------------------------
>>
>>
>>
>>> ; experiments with RMS to ascertain levels;
>>> ; detects power levels throughout ilistendur and calculates average
>>>
>>> 
>>> 
>>> ;version for university
>>> ; -+I14 -+P14
>>>
>>> ;-o dac 7 -i adc 6 -b 4000 -M0
>>> -i devaudio6 -o devaudio6 -b800 -M0
>>>
>>>
>>> 
>>> 
>>>
>>>
>>> sr=44100
>>> kr=441
>>> ksmps=100
>>> nchnls=8
>>> gkrms init 0
>>> gkrmsmean init 0
>>> gkmakenoisedur init 3
>>> gklistendur init 1
>>> gkswitch init 0
>>> gkdistance init 0
>>> gifloor init -40; after high pass filtering 100hz
>>> gilevel1 init -37
>>> gilevel2 init -35
>>> gilevel3 init -25
>>> gkvol_scale init 1
>>> gkdB init -40
>>> gkdBinv init 40
>>>
>>> ;*************************************************
>>> instr 1; LISTENING PATCH
>>> ; LISTENING SECTION
>>> kfloor init gifloor
>>> kpadding=kfloor*.1
>>> kthresh=gkrmsmean+abs(kpadding)
>>> printk2 kthresh
>>> ;asigl, asigr ins
>>> asigl, asigr diskin "foyer4.wav", 1, 0, 1
>>> asigl butterhp asigl, 100
>>> ;outs asigl, asigl
>>> kblock init 0
>>> krmsacc init 0
>>> gkrms rms asigl
>>> kdB=dbfsamp(gkrms)
>>> gkdB=kdB
>>> gkdBinv=abs(kdB)
>>> ;kmeter=(kdB < kthresh ? 0 : kdB)
>>>
>>> ; CREATE SWITCHING MECHANISM
>>> kphase phasor 1/(gklistendur+gkmakenoisedur)
>>> gkswitch table kphase, 1, 1; VALUES 0 AND 1: proportion 3 noise 1 listen
>>> gkdistance tablei kphase, 70, 1
>>> printk2 gkswitch
>>>
>>> ; WHEN SWITCH = 0 START LISTENING
>>> if gkswitch == 1 kgoto calc
>>> ;printk .1, kmeter
>>> ;krmsacc=gkrms+krmsacc; accumulate the rms values
>>> krmsacc=kdB+krmsacc; accumulate the dB values
>>> ;printk 1/ksmps, krmsacc
>>> kblock=0
>>> kgoto skip
>>> calc:
>>> if kblock=1 kgoto skip
>>> gkrmsmean=krmsacc/(kr*gklistendur); get the mean rms over one ilistendur 
>>> of listening
>>> krmsacc=0; reset accumulator to 0
>>> kblock=1
>>> skip:
>>> kfloor = gkrmsmean
>>> printk2 gkrmsmean
>>> endin
>>> ;************************************************
>>> instr 10
>>>
>>> level1:
>>> if gkrmsmean > gilevel1 kgoto level2
>>> gkmakenoisedur=17
>>> gklistendur=gkmakenoisedur/3
>>> gktranspindex1=.3
>>> gkspeedindex1=.01
>>> gkvol_scale=1
>>> kregion=1
>>> ;if gkrmsmean > gilevel1 kgoto level2; placed to enable continuous 
>>> running of level1
>>> kgoto jump
>>>
>>> level2:
>>> if gkrmsmean > gilevel2 kgoto level3
>>> gkmakenoisedur=11
>>> gklistendur=gkmakenoisedur/3
>>> gktranspindex1=.3
>>> gkspeedindex1=.1
>>> gkvol_scale=1.5
>>> kregion=2
>>>
>>> kgoto jump
>>>
>>> level3:
>>> if gkrmsmean > gilevel3 kgoto level4
>>> gkmakenoisedur=7
>>> gklistendur=gkmakenoisedur/3
>>> gktranspindex1=1
>>> gkspeedindex1=1
>>> gkvol_scale=2
>>> kregion=3
>>>
>>> kgoto jump
>>>
>>> level4:
>>> gkmakenoisedur=5
>>> gklistendur=gkmakenoisedur/3
>>> gktranspindex1=1
>>> gkspeedindex1=10
>>> gkvol_scale=3
>>> kregion=4
>>>
>>> jump:
>>> printk2 kregion
>>> endin
>>> ;****************************************************************
>>> instr 30
>>>
>>> ktransp=gktranspindex1
>>> ktransp_mobile=gktranspindex1+(gkdB*.005)
>>> kspeed=gkspeedindex1
>>> iseed=2
>>>
>>> idur1  filelen   "stanza_w01.pvx"         ; find dur of wave file
>>> idur2  filelen   "stanza_w02.pvx"
>>> idur3  filelen   "stanza_w03.pvx"
>>> idur4  filelen   "stanza_w04.pvx"
>>>
>>> kphase phasor .1
>>> krandh randh 1, 1, iseed
>>> krand randi 1, .1, iseed
>>> krand=abs(krand)
>>> kshuffle randi idur1*.01*kphase, 10, iseed
>>>
>>> kpos1 phasor ((krand/idur1)-abs(kshuffle)*krandh)*kspeed
>>> kpos2 phasor ((krand/idur2)-abs(kshuffle))*kspeed
>>> kpos3 phasor (((krand*.3)/idur3)-abs(kshuffle)*krandh)*kspeed
>>> kpos4 phasor (((krand*.01)/idur4)-abs(kshuffle))*kspeed
>>>
>>> kpos1=kpos1*idur1
>>> kpos2=kpos2*idur2
>>> kpos3=kpos3*idur3
>>> kpos4=kpos4*idur4
>>>
>>> flivew1 pvsfread kpos1, "stanza_w01.pvx", 0
>>> flivew2 pvsfread kpos2, "stanza_w02.pvx", 0
>>> flivew3 pvsfread kpos3, "stanza_w03.pvx", 0
>>> flivew4 pvsfread kpos4, "stanza_w04.pvx", 0
>>>
>>> ; SYNTAX fsig pvsanal ain, ifftsize, ioverlap, iwinsize, iwintype [, 
>>> iformat] [, iinit]
>>> kf, ka pvspitch flivew1, .05
>>> if kf>0 then
>>> klivef=kf
>>> else
>>> klivef=klivef
>>> endif
>>>
>>> kbase=100
>>> kratioa=ktransp;kbase/klivef
>>> kratiob=ktransp+krand;kbase/klivef
>>> kratioc=ktransp;kbase/klivef
>>> kratiod=ktransp_mobile;kbase/klivef
>>>
>>> flivew01 pvscale flivew1, kratioa
>>> flivew02 pvscale flivew2, kratiob
>>> flivew03 pvscale flivew3, kratioc
>>> flivew04 pvscale flivew4, kratiod
>>>
>>>
>>> alivewA pvsynth flivew01; whispered
>>> alivewB pvsynth flivew02; whispered
>>> alivewC pvsynth flivew03; whispered
>>> alivewD pvsynth flivew04; whispered
>>>
>>>
>>> ;****************************
>>> ;SPATIALISATION
>>> ;Outer speakers receive the reverberated signal only
>>> ;Inner speakers are dry
>>> ;+1 on distance prevents 0 NOISE!!
>>> kreverbsend1=.05
>>> kdist=((1-gkdistance)*10)+1
>>> ;kdistance2=10
>>> kdegree1=20
>>> aA1, aA2, aA3, aA4 locsig alivewA, kpos1*360, kdist, kreverbsend1
>>> asendaA1, asendaA2, asendaA3, asendaA4 locsend
>>>
>>> aB1, aB2, aB3, aB4 locsig alivewB, (kpos2*360)+90, kdist, kreverbsend1
>>> asendaB1, asendaB2, asendaB3, asendaB4 locsend
>>>
>>> aC1, aC2, aC3, aC4 locsig alivewC, (kpos3*360)+180, kdist, kreverbsend1
>>> asendaC1, asendaC2, asendaC3, asendaC4 locsend
>>>
>>> aD1, aD2, aD3, aD4 locsig alivewD, (kpos4*360)+270, kdist, kreverbsend1
>>> asendaD1, asendaD2, asendaD3, asendaD4 locsend
>>>
>>>
>>> achan1=(aA1+aB1+aC1+aD1)*gkvol_scale; dry to channels 1-4
>>> achan2=(aA2+aB2+aC2+aD2)*gkvol_scale;
>>> achan3=(aA3+aB3+aC3+aD3)*gkvol_scale;
>>> achan4=(aA4+aB4+aC4+aD4)*gkvol_scale;
>>>
>>> arev5=(asendaA1+asendaB1+asendaC1+asendaD1);*gkvol_scale; wet to 
>>> channels 5-8
>>> arev6=(asendaA2+asendaB2+asendaC2+asendaD2);*gkvol_scale
>>> arev7=(asendaA3+asendaB3+asendaC3+asendaD3);*gkvol_scale
>>> arev8=(asendaA4+asendaB4+asendaC4+asendaD4);*gkvol_scale
>>>
>>>
>>>
>>>
>>> ;iatten=.01
>>> achan5 nreverb arev5*gkdistance, 10, .5;
>>> achan6 nreverb arev6*gkdistance, 10, .5;
>>> achan7 nreverb arev7*gkdistance, 10, .5;
>>> achan8 nreverb arev8*gkdistance, 10, .5;
>>>
>>>
>>> ;outs asenda1+asenda3+asenda5+asenda7, asenda2+asenda4+asenda6+asenda8
>>> outo achan1, achan2, achan3, achan4, achan5, achan6, achan7, achan8
>>>
>>>
>>> endin
>>> ;*************************************************
>>> 
>>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>>> 
>>> ;f0 60000; maintaining realtime performance
>>> f0 12960000; 150 days
>>> ;f0 -1
>>> f 1 0 16 -2 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 ; switching table
>>> f5 0 4096 9 1 1 90
>>> f8 0 32 -2 .374 .3964 .42 .445 .472 .5297 .5611 .5945 .6299 .6673 .707 
>>> .7487 .7937 .8409 .8907 .9437 1 1.05946 1.1227 1.1892 1.2599 1.3356 1.5 
>>> 1.5875 1.6819 1.7821 1.8879 2 2.11892 2.245 2.3784 2.52   ; FREQUENCY 
>>> RATIOS FOR TRANSPOSING -16 TO +15
>>> f9 0 0 -23 "pitches_0-127.txt"
>>> f50 0 8192 20 2 1; hamming window
>>> f60 0 2048 10 1; sine
>>> f70 0 2048 -27 0 0 100 1 1500 1 1600 0 2047 0; envelope for 
>>> makenoise/listen used for distance
>>> f6000 0 16 -2 0.015625 .03125 .0625 .125 .25 .5 1 1 2 4 8 16 32 32 64 
>>> 128; table of transpositions
>>>
>>>
>>>
>>> ;i1 0 60000; listening
>>> i1 0 12960000
>>> ;i1 0 -1
>>>
>>> ;i10 0 60000; selecting
>>> i10 0 12960000
>>> ;i10 0 -1
>>>
>>> ;i30 0 60000; phase vocoding
>>> i30 0 12960000
>>> ;i30 0 -1
>>>
>>> e
>>>
>>>
>>>
>>> 
>>> 
>>>
>>>
>>
>>
>>
>> Send bugs reports to this list.
>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe 
>> csound"
>>
>>
>
>
>
> Send bugs reports to this list.
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe 
> csound" 


Date2008-04-15 17:48
FromRichard Bowers
Subject[Csnd] Re: Re: Re: Re: Urgent help required: is there a maximum performance duration?
Thanks v. much, Victor. I'll run this by the technical bods at the 
University - they would know Python and be able to implement your 
suggestion.

--Richard.

victor wrote:
> Another way I thought would be to get Python to recompile your
> CSD every so often and restart playing. This way, csound is ensured
> to have a reset now and then. This is the script:
>
> from csnd import *
> cs = Csound()
> while(True):
>  the_end = cs.Compile("mysemieternal.csd")
>  while(not the_end): the_end = cs.PerformBuffer()
>  cs.Reset()
>
> I am using PerformBuffer() to reduce the number of python function
> calls per sample. You can set the csound score to run for say 24 hours,
> and it will be fresh every day...
>
> Victor
>
> ----- Original Message ----- From: "Richard Bowers" 
> 
> To: 
> Sent: Monday, April 14, 2008 11:54 PM
> Subject: [Csnd] Re: Re: Urgent help required: is there a maximum 
> performance duration?
>
>
>> Thanks, Victor. I really should get to know and understand Python 
>> because everyone seems to be using it. For now, I'll make do with a 
>> 46 day stretch and turn up occasionally to reboot ;) Anyway, I'll 
>> report back if anything weird happens over that 46 day period - like 
>> the computer melts or starts speaking fluent Urdu or something.
>>
>> Best,
>> Richard.
>>
>> victor wrote:
>>> Yes, I think we can consider this behaviour a bug.
>>> But one simple solution is to use a Python script:
>>>
>>> from csnd import *
>>>
>>> cs = Csound()
>>> cs.Compile("myeternal.csd")
>>>
>>> while(True):
>>>  ignore = cs.PerformKsmps()
>>>
>>> Call it eternal.py and run
>>>
>>>> python eternal.py
>>>
>>> This will play your CSD forever, at least if you have a score line 
>>> like:
>>>
>>> i1 0 -1
>>>
>>> somewhere, as in
>>>
>>> 
>>> 
>>> -odac -b1024 -d
>>> 
>>> 
>>> instr 1
>>> karp randh 100, 2.4
>>> asig vco2 10000, 440+karp
>>>   out  asig
>>> endin
>>> 
>>> 
>>> i1 0 -1
>>> 
>>> 
>>>
>>> Victor
>>>
>>> ----- Original Message ----- From: "Richard Bowers" 
>>> 
>>> To: 
>>> Sent: Monday, April 14, 2008 10:39 PM
>>> Subject: [Csnd] Urgent help required: is there a maximum performance 
>>> duration?
>>>
>>>
>>>> I am running CSound v. 5.0 on XP and would like to set the instrument
>>>> duration (and f0 duration) such that it would run for the duration of
>>>> two exhibitions - in one case 30 days and in another 4 months.
>>>>
>>>> When I put a high number of seconds in (12960000) the program hangs. I
>>>> can access other programs, such as this email client, but the CSound
>>>> session in the console just sticks and produces no sound.
>>>>
>>>> I've also tried
>>>> f0 -1
>>>> with
>>>> i1   0   -1
>>>>
>>>> I attach the csd file (it won't run, of course, because of the missing
>>>> files) but someone may be able to identify a reason.
>>>>
>>>> Help would be greatly appreciated as I am installing this on 
>>>> Wednesday.
>>>>
>>>> --Richard.
>>>>
>>>>
>>>> Send bugs reports to this list.
>>>> To unsubscribe, send email sympa@lists.bath.ac.uk with body 
>>>> "unsubscribe csound"
>>>
>>>
>>> -------------------------------------------------------------------------------- 
>>>
>>>
>>>
>>>
>>>> ; experiments with RMS to ascertain levels;
>>>> ; detects power levels throughout ilistendur and calculates average
>>>>
>>>> 
>>>> 
>>>> ;version for university
>>>> ; -+I14 -+P14
>>>>
>>>> ;-o dac 7 -i adc 6 -b 4000 -M0
>>>> -i devaudio6 -o devaudio6 -b800 -M0
>>>>
>>>>
>>>> 
>>>> 
>>>>
>>>>
>>>> sr=44100
>>>> kr=441
>>>> ksmps=100
>>>> nchnls=8
>>>> gkrms init 0
>>>> gkrmsmean init 0
>>>> gkmakenoisedur init 3
>>>> gklistendur init 1
>>>> gkswitch init 0
>>>> gkdistance init 0
>>>> gifloor init -40; after high pass filtering 100hz
>>>> gilevel1 init -37
>>>> gilevel2 init -35
>>>> gilevel3 init -25
>>>> gkvol_scale init 1
>>>> gkdB init -40
>>>> gkdBinv init 40
>>>>
>>>> ;*************************************************
>>>> instr 1; LISTENING PATCH
>>>> ; LISTENING SECTION
>>>> kfloor init gifloor
>>>> kpadding=kfloor*.1
>>>> kthresh=gkrmsmean+abs(kpadding)
>>>> printk2 kthresh
>>>> ;asigl, asigr ins
>>>> asigl, asigr diskin "foyer4.wav", 1, 0, 1
>>>> asigl butterhp asigl, 100
>>>> ;outs asigl, asigl
>>>> kblock init 0
>>>> krmsacc init 0
>>>> gkrms rms asigl
>>>> kdB=dbfsamp(gkrms)
>>>> gkdB=kdB
>>>> gkdBinv=abs(kdB)
>>>> ;kmeter=(kdB < kthresh ? 0 : kdB)
>>>>
>>>> ; CREATE SWITCHING MECHANISM
>>>> kphase phasor 1/(gklistendur+gkmakenoisedur)
>>>> gkswitch table kphase, 1, 1; VALUES 0 AND 1: proportion 3 noise 1 
>>>> listen
>>>> gkdistance tablei kphase, 70, 1
>>>> printk2 gkswitch
>>>>
>>>> ; WHEN SWITCH = 0 START LISTENING
>>>> if gkswitch == 1 kgoto calc
>>>> ;printk .1, kmeter
>>>> ;krmsacc=gkrms+krmsacc; accumulate the rms values
>>>> krmsacc=kdB+krmsacc; accumulate the dB values
>>>> ;printk 1/ksmps, krmsacc
>>>> kblock=0
>>>> kgoto skip
>>>> calc:
>>>> if kblock=1 kgoto skip
>>>> gkrmsmean=krmsacc/(kr*gklistendur); get the mean rms over one 
>>>> ilistendur of listening
>>>> krmsacc=0; reset accumulator to 0
>>>> kblock=1
>>>> skip:
>>>> kfloor = gkrmsmean
>>>> printk2 gkrmsmean
>>>> endin
>>>> ;************************************************
>>>> instr 10
>>>>
>>>> level1:
>>>> if gkrmsmean > gilevel1 kgoto level2
>>>> gkmakenoisedur=17
>>>> gklistendur=gkmakenoisedur/3
>>>> gktranspindex1=.3
>>>> gkspeedindex1=.01
>>>> gkvol_scale=1
>>>> kregion=1
>>>> ;if gkrmsmean > gilevel1 kgoto level2; placed to enable continuous 
>>>> running of level1
>>>> kgoto jump
>>>>
>>>> level2:
>>>> if gkrmsmean > gilevel2 kgoto level3
>>>> gkmakenoisedur=11
>>>> gklistendur=gkmakenoisedur/3
>>>> gktranspindex1=.3
>>>> gkspeedindex1=.1
>>>> gkvol_scale=1.5
>>>> kregion=2
>>>>
>>>> kgoto jump
>>>>
>>>> level3:
>>>> if gkrmsmean > gilevel3 kgoto level4
>>>> gkmakenoisedur=7
>>>> gklistendur=gkmakenoisedur/3
>>>> gktranspindex1=1
>>>> gkspeedindex1=1
>>>> gkvol_scale=2
>>>> kregion=3
>>>>
>>>> kgoto jump
>>>>
>>>> level4:
>>>> gkmakenoisedur=5
>>>> gklistendur=gkmakenoisedur/3
>>>> gktranspindex1=1
>>>> gkspeedindex1=10
>>>> gkvol_scale=3
>>>> kregion=4
>>>>
>>>> jump:
>>>> printk2 kregion
>>>> endin
>>>> ;****************************************************************
>>>> instr 30
>>>>
>>>> ktransp=gktranspindex1
>>>> ktransp_mobile=gktranspindex1+(gkdB*.005)
>>>> kspeed=gkspeedindex1
>>>> iseed=2
>>>>
>>>> idur1  filelen   "stanza_w01.pvx"         ; find dur of wave file
>>>> idur2  filelen   "stanza_w02.pvx"
>>>> idur3  filelen   "stanza_w03.pvx"
>>>> idur4  filelen   "stanza_w04.pvx"
>>>>
>>>> kphase phasor .1
>>>> krandh randh 1, 1, iseed
>>>> krand randi 1, .1, iseed
>>>> krand=abs(krand)
>>>> kshuffle randi idur1*.01*kphase, 10, iseed
>>>>
>>>> kpos1 phasor ((krand/idur1)-abs(kshuffle)*krandh)*kspeed
>>>> kpos2 phasor ((krand/idur2)-abs(kshuffle))*kspeed
>>>> kpos3 phasor (((krand*.3)/idur3)-abs(kshuffle)*krandh)*kspeed
>>>> kpos4 phasor (((krand*.01)/idur4)-abs(kshuffle))*kspeed
>>>>
>>>> kpos1=kpos1*idur1
>>>> kpos2=kpos2*idur2
>>>> kpos3=kpos3*idur3
>>>> kpos4=kpos4*idur4
>>>>
>>>> flivew1 pvsfread kpos1, "stanza_w01.pvx", 0
>>>> flivew2 pvsfread kpos2, "stanza_w02.pvx", 0
>>>> flivew3 pvsfread kpos3, "stanza_w03.pvx", 0
>>>> flivew4 pvsfread kpos4, "stanza_w04.pvx", 0
>>>>
>>>> ; SYNTAX fsig pvsanal ain, ifftsize, ioverlap, iwinsize, iwintype 
>>>> [, iformat] [, iinit]
>>>> kf, ka pvspitch flivew1, .05
>>>> if kf>0 then
>>>> klivef=kf
>>>> else
>>>> klivef=klivef
>>>> endif
>>>>
>>>> kbase=100
>>>> kratioa=ktransp;kbase/klivef
>>>> kratiob=ktransp+krand;kbase/klivef
>>>> kratioc=ktransp;kbase/klivef
>>>> kratiod=ktransp_mobile;kbase/klivef
>>>>
>>>> flivew01 pvscale flivew1, kratioa
>>>> flivew02 pvscale flivew2, kratiob
>>>> flivew03 pvscale flivew3, kratioc
>>>> flivew04 pvscale flivew4, kratiod
>>>>
>>>>
>>>> alivewA pvsynth flivew01; whispered
>>>> alivewB pvsynth flivew02; whispered
>>>> alivewC pvsynth flivew03; whispered
>>>> alivewD pvsynth flivew04; whispered
>>>>
>>>>
>>>> ;****************************
>>>> ;SPATIALISATION
>>>> ;Outer speakers receive the reverberated signal only
>>>> ;Inner speakers are dry
>>>> ;+1 on distance prevents 0 NOISE!!
>>>> kreverbsend1=.05
>>>> kdist=((1-gkdistance)*10)+1
>>>> ;kdistance2=10
>>>> kdegree1=20
>>>> aA1, aA2, aA3, aA4 locsig alivewA, kpos1*360, kdist, kreverbsend1
>>>> asendaA1, asendaA2, asendaA3, asendaA4 locsend
>>>>
>>>> aB1, aB2, aB3, aB4 locsig alivewB, (kpos2*360)+90, kdist, kreverbsend1
>>>> asendaB1, asendaB2, asendaB3, asendaB4 locsend
>>>>
>>>> aC1, aC2, aC3, aC4 locsig alivewC, (kpos3*360)+180, kdist, 
>>>> kreverbsend1
>>>> asendaC1, asendaC2, asendaC3, asendaC4 locsend
>>>>
>>>> aD1, aD2, aD3, aD4 locsig alivewD, (kpos4*360)+270, kdist, 
>>>> kreverbsend1
>>>> asendaD1, asendaD2, asendaD3, asendaD4 locsend
>>>>
>>>>
>>>> achan1=(aA1+aB1+aC1+aD1)*gkvol_scale; dry to channels 1-4
>>>> achan2=(aA2+aB2+aC2+aD2)*gkvol_scale;
>>>> achan3=(aA3+aB3+aC3+aD3)*gkvol_scale;
>>>> achan4=(aA4+aB4+aC4+aD4)*gkvol_scale;
>>>>
>>>> arev5=(asendaA1+asendaB1+asendaC1+asendaD1);*gkvol_scale; wet to 
>>>> channels 5-8
>>>> arev6=(asendaA2+asendaB2+asendaC2+asendaD2);*gkvol_scale
>>>> arev7=(asendaA3+asendaB3+asendaC3+asendaD3);*gkvol_scale
>>>> arev8=(asendaA4+asendaB4+asendaC4+asendaD4);*gkvol_scale
>>>>
>>>>
>>>>
>>>>
>>>> ;iatten=.01
>>>> achan5 nreverb arev5*gkdistance, 10, .5;
>>>> achan6 nreverb arev6*gkdistance, 10, .5;
>>>> achan7 nreverb arev7*gkdistance, 10, .5;
>>>> achan8 nreverb arev8*gkdistance, 10, .5;
>>>>
>>>>
>>>> ;outs asenda1+asenda3+asenda5+asenda7, asenda2+asenda4+asenda6+asenda8
>>>> outo achan1, achan2, achan3, achan4, achan5, achan6, achan7, achan8
>>>>
>>>>
>>>> endin
>>>> ;*************************************************
>>>> 
>>>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>>>> 
>>>> ;f0 60000; maintaining realtime performance
>>>> f0 12960000; 150 days
>>>> ;f0 -1
>>>> f 1 0 16 -2 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 ; switching table
>>>> f5 0 4096 9 1 1 90
>>>> f8 0 32 -2 .374 .3964 .42 .445 .472 .5297 .5611 .5945 .6299 .6673 
>>>> .707 .7487 .7937 .8409 .8907 .9437 1 1.05946 1.1227 1.1892 1.2599 
>>>> 1.3356 1.5 1.5875 1.6819 1.7821 1.8879 2 2.11892 2.245 2.3784 
>>>> 2.52   ; FREQUENCY RATIOS FOR TRANSPOSING -16 TO +15
>>>> f9 0 0 -23 "pitches_0-127.txt"
>>>> f50 0 8192 20 2 1; hamming window
>>>> f60 0 2048 10 1; sine
>>>> f70 0 2048 -27 0 0 100 1 1500 1 1600 0 2047 0; envelope for 
>>>> makenoise/listen used for distance
>>>> f6000 0 16 -2 0.015625 .03125 .0625 .125 .25 .5 1 1 2 4 8 16 32 32 
>>>> 64 128; table of transpositions
>>>>
>>>>
>>>>
>>>> ;i1 0 60000; listening
>>>> i1 0 12960000
>>>> ;i1 0 -1
>>>>
>>>> ;i10 0 60000; selecting
>>>> i10 0 12960000
>>>> ;i10 0 -1
>>>>
>>>> ;i30 0 60000; phase vocoding
>>>> i30 0 12960000
>>>> ;i30 0 -1
>>>>
>>>> e
>>>>
>>>>
>>>>
>>>> 
>>>> 
>>>>
>>>>
>>>
>>>
>>>
>>> Send bugs reports to this list.
>>> To unsubscribe, send email sympa@lists.bath.ac.uk with body 
>>> "unsubscribe csound"
>>>
>>>
>>
>>
>>
>> Send bugs reports to this list.
>> To unsubscribe, send email sympa@lists.bath.ac.uk with body 
>> "unsubscribe csound" 
>
>
>
> Send bugs reports to this list.
> To unsubscribe, send email sympa@lists.bath.ac.uk with body 
> "unsubscribe csound"
>
>