Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] API: string channels...

Date2006-08-28 20:14
FromVictor Lazzarini
SubjectRe: [Cs-dev] API: string channels...
The only thing I can think is that the memory
contents of my_string are not "hello\n". You can
try, instead, calling the API function just once
after compilation, after you allocate memory
for your string (you've done that, haven't you?).
The memory pointed by my_string and the channel
will be connected and you can write to that memory
so anything you write there will appear at the channel.

Then you can copy the string message
to that location at the click of the button.

Victor

>
> I just tried to call csoundGetCha.. directly from my
> button function. I  create and allocate space for
> my_string in my main class constructor but  I still only
> see rubbish characters? My OnButtonClick function looks
> like this
>
> void __fastcall TForm1::OnButtonClick(TObject *Sender)
> {
> csoundGetChannelPtr(pd->instance, (MYFLT **)&my_string,
> "menu1", CSOUND_INPUT_CHANNEL | CSOUND_STRING_CHANNEL);
> strcpy(my_string, "hello\n");
> }
>
> There must be something being assigned to the channel as
> the rubbish  characters only appear once I press my
> button. If they're was nothing be  sent to the channel
> Csound would not be printing anything at all, right?
>
> Rory.
>
>
> Victor Lazzarini wrote:
> > Try to create my_string outside your Set... function,
> > passing it to it as a parameter.  In fact you can do the
> > csoundGetCh... call outside and then just copy the
> > string in your function.
> > What the csoundGet.... is doing is linking a channel
> > with the string location you created.  Anything written
> > into that location will appear on the channel.
> >
> > At 15:11 28/08/2006, you wrote:
> >> Hi Victor, I've just tried your code which as you said
> works. I did have >> to cast the result of malloc to a
> char*, maybe this is because we are >> using different
> compilers? Anyway I then tried it out in a GUI >>
> application. I basically modified my previous function to
> look like this: >>
> >> void SetValueInChannelStr(CSOUND *cs, char *name,
> AnsiString string){ >>             char *my_string;
> >>             my_string =
> (char*)malloc(csoundGetStrVarMaxLen(cs)); >>
> int result; >>             result = csoundGetChannelPtr(cs
> , (MYFLT **)&my_string, name, >>
> CSOUND_INPUT_CHANNEL | CSOUND_STRING_CHANNEL); >>
>    //change 'hello' to AnsiString string once it works...
> >>             if (!result)strcpy(my_string, "hello"); >>
>           } >>
> >> I have it set up so that SetValueInChannelStr() is
> called when I press a >> button. The problem is that when
> I run my test instead of "hello" being >> printed to the
> screen I get rubbish characters. Any idea why this might
> >> be happening? >>
> >> Rory.
> >>
> >>
> >> Victor Lazzarini wrote:
> >>> and here's a simple example that works:
> >>>
> >>> int main(int argc, char **argv)
> >>> {
> >>>      CSOUND  *csound;
> >>>      char    *fname = NULL;
> >>>      int     i, result;
> >>>      char *string;
> >>>
> >>>      /* initialise Csound library */
> >>>      csoundInitialize(&argc, &argv, 0);
> >>>
> >>>      /*  Create Csound. */
> >>>      csound = csoundCreate(NULL);
> >>>
> >>>      string = malloc(csoundGetStrVarMaxLen(csound));
> >>>      /*  One complete performance cycle. */
> >>>      result = csoundCompile(csound, argc, argv);
> >>>      result = csoundGetChannelPtr(csound, (MYFLT
> **)&string, "pitch", >>>      CSOUND_INPUT_CHANNEL |
> CSOUND_STRING_CHANNEL); >>>       strcpy(string,
> "hello\n"); >>>
> >>>      while (!result){
> >>>        result = csoundPerformKsmps(csound);
> >>>      }
> >>>      /* delete Csound instance */
> >>>      csoundDestroy(csound);
> >>>      free(string);
> >>>      return (result >= 0 ? 0 : result);
> >>> }
> >>>
> >>>
> >>>
> >>>
> >>> At 13:10 28/08/2006, you wrote:
> >>>> The 'string' argument does not get passed to
> csoundGetChannelPtr(), so >>>> csound never gets it.
> >>>>
> >>>>
> >>>>> }
> >>>>>
> //--------------------------------------------------------
> ------ >>>>> void SetValueInChannelStr(CSOUND *cs, char
> *name, char* string) >>>>> {
> >>>>>   MYFLT   *pvalue_tmp;
> >>>>>   int result;
> >>>>>   result = csoundGetChannelPtr(cs, &pvalue_tmp, name
> , >>>>>   CSOUND_INPUT_CHANNEL | CSOUND_STRING_CHANNEL);
> >>>>>   char *pvalue = reinterpret_cast *>(pvalue_tmp); >>>>>   if (!result)strcpy(pvalue, "test
> string"); >>>>> }
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> ----------------------------------------------------------
> --------------- >>>>> Using Tomcat but need to do more?
> Need to support web services, security? >>>>> Get stuff
> done quickly with pre-integrated technology to make your
> job >>>> easier
> >>>>> Download IBM WebSphere Application Server v.1.0.1
> based on Apache  >> Geronimo
> >>>>>
>
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> >>>>> _______________________________________________
> >>>>> Csound-devel mailing list
> >>>>> Csound-devel@lists.sourceforge.net
> >>>>>
> https://lists.sourceforge.net/lists/listinfo/csound-devel
> >>>> Victor Lazzarini >>>> Music Technology Laboratory
> >>>> Music Department
> >>>> National University of Ireland, Maynooth
> >>>>
> >>>>
> >>>>
> ----------------------------------------------------------
> --------------- >>>> Using Tomcat but need to do more?
> Need to support web services, security? >>>> Get stuff
> done quickly with pre-integrated technology to make your
> job  >> easier
> >>>> Download IBM WebSphere Application Server v.1.0.1
> based on Apache Geronimo >>>>
>
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> >>>> _______________________________________________
> >>>> Csound-devel mailing list
> >>>> Csound-devel@lists.sourceforge.net
> >>>>
> https://lists.sourceforge.net/lists/listinfo/csound-devel
> >>> Victor Lazzarini >>> Music Technology Laboratory
> >>> Music Department
> >>> National University of Ireland, Maynooth
> >>>
> >>>
> >>>
> ----------------------------------------------------------
> --------------- >>> Using Tomcat but need to do more? Need
> to support web services, security? >>> Get stuff done
> quickly with pre-integrated technology to make your job
> >> easier >>> Download IBM WebSphere Application Server
> v.1.0.1 based on Apache Geronimo >>>
>
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> >>> _______________________________________________
> >>> Csound-devel mailing list
> >>> Csound-devel@lists.sourceforge.net
> >>>
> https://lists.sourceforge.net/lists/listinfo/csound-devel
> >>> >>
> ----------------------------------------------------------
> --------------- >> Using Tomcat but need to do more? Need
> to support web services, security? >> Get stuff done
> quickly with pre-integrated technology to make your job
> easier >> Download IBM WebSphere Application Server
> v.1.0.1 based on Apache Geronimo >>
>
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> >> _______________________________________________
> >> Csound-devel mailing list
> >> Csound-devel@lists.sourceforge.net
> >>
> >
> >
> https://lists.sourceforge.net/lists/listinfo/csound-devel
> > Victor Lazzarini Music Technology Laboratory
> > Music Department
> > National University of Ireland, Maynooth
> >
> >
> >
> ----------------------------------------------------------
> > --------------- Using Tomcat but need to do more? Need
> > to support web services, security? Get stuff done
> quickly with pre-integrated technology to make your job
> > easier Download IBM WebSphere Application Server v.1.0.1
> > based on Apache Geronimo
>
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> > _______________________________________________
> > Csound-devel mailing list
> > Csound-devel@lists.sourceforge.net
> >
> >
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>
> ----------------------------------------------------------
> --------------- Using Tomcat but need to do more? Need to
> support web services, security? Get stuff done quickly
> with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on
> Apache Geronimo
>
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2006-08-28 22:16
FromRory Walsh
SubjectRe: [Cs-dev] API: string channels...
Hi Victor, I've tried that but no joy. Here is what I try

pd->result = csoundCompile(pd->instance, 2, cmdl);
my_string = (char*)malloc(csoundGetStrVarMaxLen(pd->instance));
csoundGetChannelPtr(pd->instance, (MYFLT **)&my_string, "menu1",
CSOUND_INPUT_CHANNEL | CSOUND_STRING_CHANNEL);

then whenever a users hits the button it copies a value to my_string 
using strcpy() but I still only get rubbish. I also tested to see if the 
rubbish characters change when I change the contents of the the string 
but they don't, they're still the same. I also double checked to make 
sure that "hello" is being written to 'my_string' and it most definitely 
is. It seems that my main application can read the contents of my_string 
but csound can't, any ideas? Thanks for your help so far.

Rory.


Victor Lazzarini wrote:
> The only thing I can think is that the memory
> contents of my_string are not "hello\n". You can
> try, instead, calling the API function just once
> after compilation, after you allocate memory
> for your string (you've done that, haven't you?).
> The memory pointed by my_string and the channel
> will be connected and you can write to that memory
> so anything you write there will appear at the channel.
> 
> Then you can copy the string message
> to that location at the click of the button.
> 
> Victor
> 
>> I just tried to call csoundGetCha.. directly from my
>> button function. I  create and allocate space for
>> my_string in my main class constructor but  I still only
>> see rubbish characters? My OnButtonClick function looks
>> like this
>>
>> void __fastcall TForm1::OnButtonClick(TObject *Sender)
>> {
>> csoundGetChannelPtr(pd->instance, (MYFLT **)&my_string,
>> "menu1", CSOUND_INPUT_CHANNEL | CSOUND_STRING_CHANNEL);
>> strcpy(my_string, "hello\n");
>> }
>>
>> There must be something being assigned to the channel as
>> the rubbish  characters only appear once I press my
>> button. If they're was nothing be  sent to the channel
>> Csound would not be printing anything at all, right?
>>
>> Rory.
>>
>>
>> Victor Lazzarini wrote:
>>> Try to create my_string outside your Set... function,
>>> passing it to it as a parameter.  In fact you can do the
>>> csoundGetCh... call outside and then just copy the
>>> string in your function.
>>> What the csoundGet.... is doing is linking a channel
>>> with the string location you created.  Anything written
>>> into that location will appear on the channel.
>>>
>>> At 15:11 28/08/2006, you wrote:
>>>> Hi Victor, I've just tried your code which as you said
>> works. I did have >> to cast the result of malloc to a
>> char*, maybe this is because we are >> using different
>> compilers? Anyway I then tried it out in a GUI >>
>> application. I basically modified my previous function to
>> look like this: >>
>>>> void SetValueInChannelStr(CSOUND *cs, char *name,
>> AnsiString string){ >>             char *my_string;
>>>>             my_string =
>> (char*)malloc(csoundGetStrVarMaxLen(cs)); >>
>> int result; >>             result = csoundGetChannelPtr(cs
>> , (MYFLT **)&my_string, name, >>
>> CSOUND_INPUT_CHANNEL | CSOUND_STRING_CHANNEL); >>
>>    //change 'hello' to AnsiString string once it works...
>>>>             if (!result)strcpy(my_string, "hello"); >>
>>           } >>
>>>> I have it set up so that SetValueInChannelStr() is
>> called when I press a >> button. The problem is that when
>> I run my test instead of "hello" being >> printed to the
>> screen I get rubbish characters. Any idea why this might
>>>> be happening? >>
>>>> Rory.
>>>>
>>>>
>>>> Victor Lazzarini wrote:
>>>>> and here's a simple example that works:
>>>>>
>>>>> int main(int argc, char **argv)
>>>>> {
>>>>>      CSOUND  *csound;
>>>>>      char    *fname = NULL;
>>>>>      int     i, result;
>>>>>      char *string;
>>>>>
>>>>>      /* initialise Csound library */
>>>>>      csoundInitialize(&argc, &argv, 0);
>>>>>
>>>>>      /*  Create Csound. */
>>>>>      csound = csoundCreate(NULL);
>>>>>
>>>>>      string = malloc(csoundGetStrVarMaxLen(csound));
>>>>>      /*  One complete performance cycle. */
>>>>>      result = csoundCompile(csound, argc, argv);
>>>>>      result = csoundGetChannelPtr(csound, (MYFLT
>> **)&string, "pitch", >>>      CSOUND_INPUT_CHANNEL |
>> CSOUND_STRING_CHANNEL); >>>       strcpy(string,
>> "hello\n"); >>>
>>>>>      while (!result){
>>>>>        result = csoundPerformKsmps(csound);
>>>>>      }
>>>>>      /* delete Csound instance */
>>>>>      csoundDestroy(csound);
>>>>>      free(string);
>>>>>      return (result >= 0 ? 0 : result);
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> At 13:10 28/08/2006, you wrote:
>>>>>> The 'string' argument does not get passed to
>> csoundGetChannelPtr(), so >>>> csound never gets it.
>>>>>>
>>>>>>> }
>>>>>>>
>> //--------------------------------------------------------
>> ------ >>>>> void SetValueInChannelStr(CSOUND *cs, char
>> *name, char* string) >>>>> {
>>>>>>>   MYFLT   *pvalue_tmp;
>>>>>>>   int result;
>>>>>>>   result = csoundGetChannelPtr(cs, &pvalue_tmp, name
>> , >>>>>   CSOUND_INPUT_CHANNEL | CSOUND_STRING_CHANNEL);
>>>>>>>   char *pvalue = reinterpret_cast> *>(pvalue_tmp); >>>>>   if (!result)strcpy(pvalue, "test
>> string"); >>>>> }
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>> ----------------------------------------------------------
>> --------------- >>>>> Using Tomcat but need to do more?
>> Need to support web services, security? >>>>> Get stuff
>> done quickly with pre-integrated technology to make your
>> job >>>> easier
>>>>>>> Download IBM WebSphere Application Server v.1.0.1
>> based on Apache  >> Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>>>>>> _______________________________________________
>>>>>>> Csound-devel mailing list
>>>>>>> Csound-devel@lists.sourceforge.net
>>>>>>>
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>>> Victor Lazzarini >>>> Music Technology Laboratory
>>>>>> Music Department
>>>>>> National University of Ireland, Maynooth
>>>>>>
>>>>>>
>>>>>>
>> ----------------------------------------------------------
>> --------------- >>>> Using Tomcat but need to do more?
>> Need to support web services, security? >>>> Get stuff
>> done quickly with pre-integrated technology to make your
>> job  >> easier
>>>>>> Download IBM WebSphere Application Server v.1.0.1
>> based on Apache Geronimo >>>>
>>
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>>>>> _______________________________________________
>>>>>> Csound-devel mailing list
>>>>>> Csound-devel@lists.sourceforge.net
>>>>>>
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>> Victor Lazzarini >>> Music Technology Laboratory
>>>>> Music Department
>>>>> National University of Ireland, Maynooth
>>>>>
>>>>>
>>>>>
>> ----------------------------------------------------------
>> --------------- >>> Using Tomcat but need to do more? Need
>> to support web services, security? >>> Get stuff done
>> quickly with pre-integrated technology to make your job
>>>> easier >>> Download IBM WebSphere Application Server
>> v.1.0.1 based on Apache Geronimo >>>
>>
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>>>> _______________________________________________
>>>>> Csound-devel mailing list
>>>>> Csound-devel@lists.sourceforge.net
>>>>>
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>> ----------------------------------------------------------
>> --------------- >> Using Tomcat but need to do more? Need
>> to support web services, security? >> Get stuff done
>> quickly with pre-integrated technology to make your job
>> easier >> Download IBM WebSphere Application Server
>> v.1.0.1 based on Apache Geronimo >>
>>
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>>> _______________________________________________
>>>> Csound-devel mailing list
>>>> Csound-devel@lists.sourceforge.net
>>>>
>>>
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>> Victor Lazzarini Music Technology Laboratory
>>> Music Department
>>> National University of Ireland, Maynooth
>>>
>>>
>>>
>> ----------------------------------------------------------
>>> --------------- Using Tomcat but need to do more? Need
>>> to support web services, security? Get stuff done
>> quickly with pre-integrated technology to make your job
>>> easier Download IBM WebSphere Application Server v.1.0.1
>>> based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>>
>>>
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>> ----------------------------------------------------------
>> --------------- Using Tomcat but need to do more? Need to
>> support web services, security? Get stuff done quickly
>> with pre-integrated technology to make your job easier
>> Download IBM WebSphere Application Server v.1.0.1 based on
>> Apache Geronimo
>>
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
> 
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
> 

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net