| But of course I did not consider the possible overflow problems.
I wonder if my example would run forever really...
Victor
----- Original Message -----
From: "victor"
To:
Sent: Monday, April 14, 2008 11:41 PM
Subject: [Csnd] Re: Urgent help required: is there a maximum performance
duration?
> 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"
|