Ah okay, thanks for the info as that's good to know the differences there! On Mon, Oct 27, 2008 at 11:17 AM, victor wrote: > Does not quite work in Python because of the GIL (since > we almost always use performance threads). I have > wrapped manually the callbacks to take care of that. However > I use a certain mechanism to pass data that is probably the > problem that makes it incompatible with CppSound. > > Victor > ----- Original Message ----- From: "Steven Yi" > To: > Sent: Monday, October 27, 2008 6:13 PM > Subject: [Csnd] Re: Re: Re: Re: Re: Re: Re: Re: Querying available audio > devices > > >> For Java, I'm using the CsoundCallbackWrapper class. I think Istvan >> put this in a long while ago to get around dealing with pointers in >> Java, but it works well. I subclass from CsoundCallbackWrapper and >> override the MessageCallback method, and when initializing the object >> pass in a Csound object and call SetMessageCallback on the wrapper, >> like this: >> >> blueCallbackWrapper = new BlueCallbackWrapper(csound); >> blueCallbackWrapper.SetMessageCallback(); >> >> I'm not sure if this is available in Python, but if so, it might be >> worth checking out (and you can override other methods, like those for >> MIDI in and out, Yield callback, etc.). >> >> steven >> >> On Mon, Oct 27, 2008 at 10:03 AM, victor wrote: >>> >>> I don't know about CppSound, but the callbacks work fine >>> with the Csound class. >>> >>> Victor >>> ----- Original Message ----- From: "Chuckk Hubbard" >>> >>> To: >>> Sent: Monday, October 27, 2008 2:45 PM >>> Subject: [Csnd] Re: Re: Re: Re: Re: Re: Querying available audio devices >>> >>> >>>> Using CppSound instead of Csound, the cs.Compile() line gives me a >>>> segmentation fault and crashes the interpreter. >>>> For me, Csound messages print to the interpreter terminal by default; >>>> I haven't yet been able to stop them. >>>> I used this: >>>> >>>> import csnd >>>> csdlog = '' >>>> def csdsave(s): >>>> global csdlog >>>> csdlog += s >>>> >>>> cs = csnd.CppSound() >>>> cs.PreCompile() >>>> cs.SetMessageCallback(csdsave) >>>> cs.Compile("test.csd") >>>> >>>> Python exits. >>>> -Chuckk >>>> >>>> On Mon, Oct 27, 2008 at 3:39 PM, victor >>>> wrote: >>>>> >>>>> Works here: >>>>> >>>>> import csnd >>>>> cs = csnd.Csound() >>>>> >>>>> cs.PreCompile() >>>>> >>>>> def somefunc(s): >>>>> print s >>>>> >>>>> cs.SetMessageCallback(somefunc) >>>>> >>>>> cs.Compile("test.csd") >>>>> >>>>> ... messages get printed to the interpreter terminal >>>>> >>>>> >>>>> Victor >>>>> >>>>> >>>>> >>>>> >>>>> ----- Original Message ----- From: "Chuckk Hubbard" >>>>> >>>>> To: >>>>> Sent: Monday, October 27, 2008 1:18 PM >>>>> Subject: [Csnd] Re: Re: Re: Re: Querying available audio devices >>>>> >>>>> >>>>>> More precisely, I get: >>>>>> >>>>>>>>> cs.SetPythonMessageCallback(csdlog) >>>>>> >>>>>> Traceback (most recent call last): >>>>>> File "", line 1, in >>>>>> File "/usr/lib/python2.5/csnd.py", line 1737, in >>>>>> SetPythonMessageCallback >>>>>> return _csnd.Csound_SetPythonMessageCallback(*args) >>>>>> AttributeError: 'module' object has no attribute >>>>>> 'Csound_SetPythonMessageCallback' >>>>>> >>>>>> >>>>>> Looking a little closer it looks like that's actually a problem, not >>>>>> just me doing the wrong thing. I'll try replacing my csnd.py and >>>>>> _csnd.so files. >>>>>> -Chuckk >>>>>> >>>>>> On Mon, Oct 27, 2008 at 3:08 PM, Chuckk Hubbard >>>>>> wrote: >>>>>>> >>>>>>> The closest I have available is .setPythonMessageCallback() for >>>>>>> CppSound, and .SetPythonMessageCallback() for Csound class. >>>>>>> .SetPythonMessageCallback() somehow can't find the attribute, >>>>>>> although >>>>>>> it is listed with dir(CppSound) and help(CppSound), and >>>>>>> .setPythonMessageCallback() takes 1 argument (self), won't take a >>>>>>> function as argument. >>>>>>> >>>>>>> -Chuckk >>>>>>> >>>>>>> On Mon, Oct 27, 2008 at 2:53 PM, victor >>>>>>> wrote: >>>>>>>> >>>>>>>> Use the Csound() (or derived) class and the >>>>>>>> Csound::SetMessageCallback() >>>>>>>> method. >>>>>>>> >>>>>>>> the callback should be something like >>>>>>>> >>>>>>>> def mcallback(s): >>>>>>>> # s is a string >>>>>>>> # e.g. you can print it >>>>>>>> print s >>>>>>>> >>>>>>>> >>>>>>>> cs.SetMessageCallback(mcallback) >>>>>>>> >>>>>>>> >>>>>>>> Victor >>>>>>>> ----- Original Message ----- From: "Chuckk Hubbard" >>>>>>>> >>>>>>>> To: >>>>>>>> Sent: Monday, October 27, 2008 12:04 PM >>>>>>>> Subject: [Csnd] Re: Re: Querying available audio devices >>>>>>>> >>>>>>>> >>>>>>>>> Sounds like a plan. I'll let people choose from whichever modules >>>>>>>>> are >>>>>>>>> available for their platform and then see the devices for whatever >>>>>>>>> they choose. >>>>>>>>> >>>>>>>>> I tried directing both stderr and stdout to file objects, and >>>>>>>>> didn't >>>>>>>>> pick up the Csound output from cs.compile(). Anyone know how I do >>>>>>>>> that in Python? >>>>>>>>> >>>>>>>>> -Chuckk >>>>>>>>> >>>>>>>>> On Mon, Oct 27, 2008 at 11:12 AM, victor >>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> For -+rtaudio you can just check the platform OS and the >>>>>>>>>> modules for each are well-defined (ie portaudio and alsa for >>>>>>>>>> linux, >>>>>>>>>> etc). >>>>>>>>>> >>>>>>>>>> The only way I think is to run csound with -odac99, then parse >>>>>>>>>> the message output. >>>>>>>>>> >>>>>>>>>> Perhaps an API function to do this might be possible, but it >>>>>>>>>> will need to be implemented by the IO modules. >>>>>>>>>> >>>>>>>>>> Regards >>>>>>>>>> >>>>>>>>>> Victor >>>>>>>>>> >>>>>>>>>> ----- Original Message ----- From: "Chuckk Hubbard" >>>>>>>>>> >>>>>>>>>> To: "Csound List" >>>>>>>>>> Sent: Monday, October 27, 2008 7:54 AM >>>>>>>>>> Subject: [Csnd] Querying available audio devices >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> Is there a way to do this with the API? To build a list of >>>>>>>>>>> available >>>>>>>>>>> devices to show in my app? >>>>>>>>>>> I think it would have to know possible values for both -+rtaudio >>>>>>>>>>> and >>>>>>>>>>> -odac, no? >>>>>>>>>>> >>>>>>>>>>> -Chuckk >>>>>>>>>>> -- >>>>>>>>>>> http://www.badmuthahubbard.com >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 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" >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> http://www.badmuthahubbard.com >>>>>>>>> >>>>>>>>> >>>>>>>>> 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" >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> http://www.badmuthahubbard.com >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> http://www.badmuthahubbard.com >>>>>> >>>>>> >>>>>> 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" >>>>> >>>> >>>> >>>> >>>> -- >>>> http://www.badmuthahubbard.com >>>> >>>> >>>> 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" > > > > Send bugs reports to this list. > To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe > csound" >