|
You might have better luck with Csound::PerformKsmps().
You can use Csound::GetSpoutSize(), or calculate the size yourself as size =
sizeof(double) (or sizeof(float)) * nchnls * ksmps. You can access the input
buffer as Csound::GetSpin() and the output buffer as
Csound::GetSpout().
Note that this is the LOW LEVEL buffer, the one opcodes
actually write to. Not the intermediate level buffer that is sent to the sound
card (that one's computed by PerformBuffer()).
Don't ask me why we we have an intermediate level buffer at
all, I think it is an unnecessary complication.
----- Original Message -----
Sent: Sunday, March 16, 2008 6: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
|