Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] matlab interface

Date2008-03-16 23:22
Fromvictor
SubjectRe: [Cs-dev] matlab interface
AttachmentsNone  None  
Are you not missing Compile() after ExportForPerformance()? That is
why the calls are hanging etc. What you want is to call
Csound::PerformBuffer() once, then copy the buffer into
the destination using GetOutputBuffer(), and possibly do this
in a loop until PerformBuffer() returns non-zero (meaning the
score is finished). If you call Perform() the whole score will be
played and you'll not be able to capture the output.
 
PerformBuffer() might be better than PerformKsmps() for
you, because you will have a buffer full of samples instead
of just a ksmps one (ie. a larger one). Spout[] only holds
ksmps samples, but a buffer can have much larger sizes.
 
Victor
----- Original Message -----
Sent: Sunday, March 16, 2008 10:20 PM
Subject: Re: [Cs-dev] matlab interface

understood, but Csound::GetOutputBufferSize() returns 0 after CppSound::perform() and Csound::PerformBuffer() just hangs.  code attached

// test app for CppSound
#include "CppSound.hpp"

int main(int argc, char* argv[])
{
    // cppsound object
    CppSound* cpps = new CppSound();

    // create score
    cpps->addScoreLine("f 111 0 4096 10 1");
    cpps->addScoreLine("i 100 0 1.0 20000 220 111");
    cpps->addScoreLine("i 100 0 -1");
   
    // create orchestra
    cpps->setOrchestra("instr 100\na1 oscil p4,p5,p6\nout a1\nendin");

    // create csound command with temp orc and score
    cpps->setCommand("csound -RWdfo test.wav ./tempk.orc ./tempk.sco");
   
    // export performance
    cpps->exportForPerformance();
   
    // perform?
    cpps->perform();
    // cpps->PerformBuffer() hangs
    // cpps->Perform() hangs

    // size check (returns a zero size)
    printf("%ld\n",cpps->GetOutputBufferSize());

    // cleanup
    delete cpps;
    return 0;
}

On Sun, Mar 16, 2008 at 2:34 PM, victor <Victor.Lazzarini@nuim.ie> wrote:
Csound::GetOutputBuffer()? CppSound is derived from Csound.
----- Original Message -----
Sent: Sunday, March 16, 2008 9:15 PM
Subject: Re: [Cs-dev] matlab interface

Thanks everyone.  Viktor: your comment made me go back and verify what I was linking against, I had incorrectly built the csnd library.  fixed.
ha!  so my next question is: if I use CppSound::Perform() is there a way to get access to the performance buffer?
again thanks for all of your help and patience.

Balan

On Sun, Mar 16, 2008 at 9:47 AM, Jonatan Liljedahl <lijon@kymatica.com> wrote:
Rory Walsh wrote:
> Balan posted the code at the end of his email. I had a quick look but
> couldn't spot anything obvious. Is it Ok to call csoundScoreEvent()
> before a performance has started?

Yes, I do this in AlgoScore and it works fine.
But I don't think it's correct to call csoundInitialize() after
csoundCreate()! In AlgoScore I call csoundInitialize(0,0,0) (once)
before I do anything else with csound.

static naRef f_create(naContext ctx, naRef me, int argc, naRef *args) {
   static cs_initialized=0;
   HostData *data;
   if(!cs_initialized) {
       csoundInitialize(0,0,0);
       cs_initialized=1;
   }
   data = (HostData*)malloc(sizeof(HostData));
   data->tag = NUMARG(0);
   data->graph_cb = naNil();
   data->outvalues = naNil();
   CSOUND *cs = csoundCreate((void*)data);
   return newCsoundGhost(ctx,cs);
}
>
> Rory.
>
>
> victor wrote:
>> That seems correct. Can you quote your code?
>>
>>     ----- Original Message -----
>>     *From:* Balan Clockfactory <mailto:balanclock@gmail.com>
>>     *To:* Developer discussions <mailto:csound-devel@lists.sourceforge.net>
>>     *Sent:* Saturday, March 15, 2008 10:03 PM
>>     *Subject:* Re: [Cs-dev] matlab interface
>>
>>     I hope I'm not being a nuisance but I am currently getting an error
>>     when I call csoundScoreEvent().  The error is "invalid instrument
>>     number or name".  I am testing with a very simple instrument so I'm
>>     no
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel


--
/Jonatan         [ http://kymatica.com ]

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-devel


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/


_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-devel

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-devel



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/


_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-devel