|
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);
-- /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
|