| Did you try getSpout()?
Regards,
Mike
----- Original Message -----
From: "Lilith Bryant"
To:
Sent: Thursday, April 03, 2008 5:47 AM
Subject: [Csnd] Re: Re: CSound (Python) API & Output Buffers
> for my own work, rewinding the score is not a problem. i'm not trying to
> do
> realtime output at all. i just want to render independant chunks of
> dynamically created score, without having to reload the orchestra for
> every
> single chunk.
>
> i don't use the performance thread stuff at all, i simply render (in my
> own
> python thread) by loading up a bunch of notes with csoundScoreEvent, and
> then
> calling csoundPerformBuffer until i have the required amount of output.
>
> so the structural facilites of csound are currently suitable for me. its
> probably more of a python issue that i can't get the output buffer data
> out
> of csound in an efficient form.
>
> one or two simple C/SWIG functions would solve all my issues.
>
> On Thursday 03 April 2008 18:27, Steven Yi wrote:
>> Hi Lilith,
>>
>> This brings up some bigger issues but ones worth addressing.
>> Currently, as far as I know, there is no indefinite playing mode for
>> csound. Something like that might be worth putting in so that the
>> main kperf thread will just keep running even if there are no active
>> score events. If we do that, then we can introduce a
>> "csoundClearScore" method that would wipe all score events. That way,
>> you wouldn't need to rewind the score or anything, just keep it going
>> and call the csoundScoreEvent. Also, this would allow the possibility
>> of indefinite running of csound for things like installations.
>>
>> I have the feeling this has been discussed before a long while back,
>> and that there was some kind of complication due to scoreTime. I
>> remember Istvan changing it from an int to a long or something like
>> that to make the max score time longer. I can not recall all the
>> issues though.
>>
>> Lilith and everyone: Any thoughts on this? Anyone remember any
>> threads regarding this kind of thing?
>>
>> Thanks,
>> steven
>>
>> On Wed, Apr 2, 2008 at 8:10 PM, Lilith Bryant wrote:
>> > I wonder if I could tap the list here for some advice.
>> >
>> > I'm writing a score writer front-end in python using the csound API.
>> >
>> > The big idea with this project, is to be able to quickly change the
>> > score and re-render with having csound reload the whole orchestra/csd
>> > file for every simple score change. So i'm simply calling the
>> > csoundCompile and all the prequisites once at the beginning of my
>> > application (or whenever the user asks to reload the orchestra/csd)
>> >
>> > Then for each renderering, I call csoundScoreRewind and then
>> > csoundScoreEvent for each note.
>> >
>> > Which works as expected, except the output wav file simply grows with
>> > easy pass. i.e. it csoundScoreRewind doesn't clear it, like would be
>> > useful for this case.
>> >
>> > Now I can alternatively not use wav file output at all, and use
>> > csoundSetHostImplementedAudioIO and manually fish out the samples, and
>> > write them to a wav file myself. But this is python and that hideously
>> > slow.
>> >
>> > So the questions are:
>> > 1) Is there a way to restart the wav file output without reloading the
>> > orchestra/csd?
>> >
>> > OR
>> >
>> > 2) Is there a quick way to fish out the output buffer samples into a
>> > python string or array, for writing out to file using the python wav
>> > module?
>> >
>> > The best i have so far is something like:
>> >
>> > ob=csnd.csoundGetOutputBuffer(self.cs)
>> > fa=csnd.floatArray.frompointer(ob)
>> > sa=array.Array('h',[0]*buffersize*2)
>> > for n in range(buffersize*2):
>> > sa[n]=fa[n]*32767
>> > wavdata=sa.tostring()
>> >
>> > which really SUCKS performance-wise (not surprisingly).
>> >
>> > I don't want to write a C/SWIG function to do just this, since i want
>> > to
>> > be able to give this to people who aren't up to running compilers.
>> >
>> >
>> > 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"
|