Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] Fw: Csound API Question?

Date2010-10-31 02:34
From"Art Hunkins"
SubjectRe: [Cs-dev] Fw: Csound API Question?
Victor,

Thanks for bearing with me.

I am not using CsoundGUI.filechooser() because I want only to query 
soundobjects listed in the Journal, and because the way I did it, with 
ObjectChooser(), was the way recommended by those on the sugar-dev list. 
Also, for kids, I want the simple names children can choose for Journal 
entries. (The Record activity also deposits an entry for recordings made 
handily in the Journal. IMO, the Linux/Sugar directory structure and long, 
abstruse filenames are definitely *not* for kids.)

To the point: the type returned in:
      filename = jobject.file_path
is type = dbus.str
I've set the variable filename = "0", which is type str
and this is what SetChannel() is trying to send. Obvious problem, as you 
observe.

So, please can you tell me what the correct formulation of these three lines 
of code should be:

self.filename = "0" (basic declaration of variable and type)

self.filename = jobject.file_path (getting the selected soundfile's path 
from the Journal)

self.w.set_filechannel("file1", self.filename) (sending the filename to 
Csound)


I can't pass self.filename directly to set_filechannel() because the name 
may be selected before my .csd is compiled.

Thanks again for all your help.

Art Hunkins

----- Original Message ----- 
From: "Victor Lazzarini" 
To: "Art Hunkins" ; "Developer discussions" 

Sent: Saturday, October 30, 2010 3:14 AM
Subject: Re: [Cs-dev] Fw: Csound API Question?


> This comes back to what I said the first time you asked the question
> here. The variable 'name' in your code does not
> appear to be a string. Find out what it is and try to pass a string to
> SetChannel(). If you are selecting files, why don't you
> use CsoundGUI.filechooser(), that is designed to create a button for a
> filechooser window and pass the chosen file to
> a channel?
>
> Regards
>
> Victor
>
>
> On 30 Oct 2010, at 03:10, Art Hunkins wrote:
>
>> Victor,
>>
>> I've corrected several of my (sometimes silly) mistakes, and think
>> I've come
>> close to spotting the problem: it seems to have to do with the kind
>> of file
>> string input that SetChannel() expects.
>>
>> In a simplified script from my FileMix activity, I get this error
>> (per log):
>>
>> SECTION 1:
>> FileName =
>> /home/olpc/.sugar/default/data/5c073d96-6757-4632-b75f-
>> af09fce807afprJ92j.ogg
>> Traceback (most recent call last):
>>  File "/home/olpc/Activities/FileMix.activity/filemix.py", line 65, in
>> version3
>>    self.w.set_filechannel("file1", self.filename)
>>  File "/home/olpc/Activities/FileMix.activity/csndsugui.py", line
>> 661, in
>> set_filechannel
>>    self.csound.SetChannel(chan,name)
>>  File "/usr/lib/python2.6/site-packages/csnd.py", line 1736, in
>> SetChannel
>>    return _csnd.Csound_SetChannel(self, *args)
>> NotImplementedError: Wrong number of arguments for overloaded function
>> 'Csound_SetChannel'.
>>  Possible C/C++ prototypes are:
>>    SetChannel(Csound *,char const *,double)
>>    SetChannel(Csound *,char const *,char const *)
>>
>> Please note that the filename printed above is self.filename and a
>> bonafide
>> (and valid) soundfile located in the Journal. The code that actually
>> derives
>> the filename is:
>> self.filename = jobject.file_path
>> Apparently this is unacceptable (string) input to SetChannel().
>> Perhaps it's
>> too long, *wrong format* or something (see further below)?
>>
>> Incidentally self.filename is originally defined as:
>> self.filename = "0"
>>
>> I tried your two suggested alternatives - w.csound.SetChannel(name,
>> string)
>> and w.set_channel(name, string) - with the same result.
>>
>> Finally, compilation is indeed done prior to the SetChannel call, in
>> this
>> direct sequence:
>>   self.w.csd("FileMix.csd")
>>   self.p = False
>>   self.w.set_filechannel("file1", self.filename)
>>
>> I might also add that when I set:
>> self.filename = "ahha"
>> that "ahha" has no problem getting accepted by SetChannel() and
>> my .csd.
>> Likewise, strangely, when I paste the .ogg filename either into:
>> self.filename = "xxx.ogg"
>> or into: self.w.set_filechannel("file1", "xxx.ogg")
>> everything works fine as well.
>>
>> Can this indicate some kind of string formatting issue with regard
>> to the
>> filename?
>>
>> Art Hunkins
>>
>> ----- Original Message -----
>> From: "Victor Lazzarini" 
>> To: "Art Hunkins" ; "Developer discussions"
>> 
>> Sent: Sunday, October 24, 2010 3:58 PM
>> Subject: Re: [Cs-dev] Fw: Csound API Question?
>>
>>
>>> You should not add self.ready = True, because this is a test of
>>> compilation, which should
>>> not be done by you, only internally. In any case, the test was for
>>> it  to
>>> be False, not True. If
>>> Csound has not been compiled, the SetChannel() call will not do
>>> anything,
>>> so none of the
>>> things you've done will correctly test this.
>>>
>>> Did you try writing a simple application based on the csndsugui
>>> examples
>>> in the git repository,
>>> like the Playfile activity?
>>>
>>> I would suggest you do so. My idea for csndsugui is that some
>>> methods,
>>> like set_filechannel()
>>> do not necessarily need to be called directly. If you use a
>>> filechooser
>>> like this:
>>>
>>> win.csd("playfile.csd")
>>> win.filechooser(bbox,"soundfile")
>>>
>>> you will get a filechooser button which will open a dialog and the
>>> selected file will be
>>> passed to the CSD in the "soundfile" channe, like so:
>>>
>>> S1 chnget "soundfile"
>>> i1 strcmp S1,"0"
>>> if i1 != 0 goto continue
>>> puts "no filename selected !!", 1
>>> turnoff
>>> goto end
>>> continue:
>>> ...
>>>
>>> If you are not using this mechanism, then you may as well call the
>>> Csound
>>> class method
>>> SetChannel() directly, or via the set_channel() wrapper (which
>>> checks  if
>>> self.ready is not True).
>>>
>>> directly:
>>> obj.csound.SetChannel(name, string)
>>>
>>> via set_channel
>>> obj.set_channel(name, string)
>>>
>>> where obj is your CsoundGUI object.
>>>
>>> If csound is compiled, any of these will work. They will fail if
>>> csound
>>> is not compiled.
>>>
>>> Victor
>>>
>>> On 24 Oct 2010, at 20:21, Art Hunkins wrote:
>>>
>>>> Victor,
>>>>
>>>> Attempting to implement your pointer, I tried the following:
>>>>
>>>> 1) I added the line:
>>>> self.ready = True
>>>> before my call to set_filechannel
>>>>
>>>> 2) In the set_filechannel method (in csndsugui), I commented out
>>>> lines
>>>> 3, 5
>>>> and 6 - leaving only the call to csound.SetChannel.
>>>>
>>>> Neither of these changes made any difference; still no filename, nor
>>>> even
>>>> "ahha" passed to my csd.
>>>>
>>>> Please note that I also tried a sequence that first selects and
>>>> compiles
>>>> the
>>>> csd, whereupon the performer selects a variety of performance
>>>> parameters
>>>> passed successfully via chnexport *and selecting the desired file
>>>> from
>>>> the
>>>> Journal (our issue)*, then performing. Passing all the other values
>>>> works
>>>> fine (of course, different methods are employed). Same result.
>>>>
>>>> Any further suggestions are most welcome (from anyone).
>>>>
>>>> Victor, I really appreciate your help trying to troubleshoot me
>>>> through
>>>> this.
>>>>
>>>> Art Hunkins
>>>>
>>>> ----- Original Message -----
>>>> From: "Victor Lazzarini" 
>>>> To: "Art Hunkins" ; "Developer discussions"
>>>> 
>>>> Sent: Sunday, October 24, 2010 4:38 AM
>>>> Subject: Re: [Cs-dev] Fw: Csound API Question?
>>>>
>>>>
>>>>> The definition of the method is:
>>>>>
>>>>> def set_filechannel(self,chan,name):
>>>>> """overrides the base method, setting the channel string"""
>>>>> if not self.ready:
>>>>>     self.csound.SetChannel(chan,name)
>>>>> else:
>>>>>     BasicGUI.set_filechannel(self,chan,name)
>>>>>
>>>>> So, what happens is that if the variable 'ready' is True, this
>>>>> uses
>>>>> the
>>>>> base class method (ie. does not call
>>>>> SetChannel). Maybe that is the problem.
>>>>>
>>>>> 'ready' becomes True after a successful compilation using
>>>>> CsoundGUI.
>>>>> compile() or CsoundGUI.csd()
>>>>> or CsoundGUI.recompile().
>>>>>
>>>>>
>>>>> Victor
>>>>>
>>>>>
>>>>>
>>>>> On 24 Oct 2010, at 03:17, Art Hunkins wrote:
>>>>>
>>>>>> I've been having a terrible time getting a filename communicated
>>>>>> through
>>>>>> the
>>>>>> API to my csd (Python, XO, Sugar 0.84).
>>>>>>
>>>>>> The particular method, which works fine otherwise, and uses
>>>>>> calls  from
>>>>>> Victor's csndsugui, is as follows:
>>>>>> def choose(self, widget):
>>>>>>
>>>>>> self.chooser = ObjectChooser(parent=self,
>>>>>> what_filter=mime.GENERIC_TYPE_AUDIO)
>>>>>>
>>>>>> self.result = self.chooser.run()
>>>>>>
>>>>>> if self.result == gtk.RESPONSE_ACCEPT:
>>>>>>
>>>>>>  self.jobject = self.chooser.get_selected_object()
>>>>>>
>>>>>>  if self.jobject and self.jobject.file_path:
>>>>>>
>>>>>>    self.filename1 = self.jobject.file_path
>>>>>>
>>>>>>    print 'FileName = ', self.filename1
>>>>>>
>>>>>>    self.w.set_filechannel("filename1", self.filename1)
>>>>>>
>>>>>>
>>>>>>
>>>>>> No errors  are logged.
>>>>>>
>>>>>> Sname chnget "filename1", and puts Sname, 1
>>>>>>
>>>>>> (within an instrument in my csd) simply receives a blank filename.
>>>>>> However,
>>>>>> "FileName =" in the above code prints out correctly, i.e., the
>>>>>> file
>>>>>> has
>>>>>> been
>>>>>> correctly located.
>>>>>>
>>>>>> The same null result occurs when self.filename1 in the last line
>>>>>> of
>>>>>> above
>>>>>> code is, instead, "haha" (as illustrated in Victor's example).
>>>>>>
>>>>>> I've discovered that I was retrieving the filename before
>>>>>> the .csd  was
>>>>>> compiled. Perhaps this is a problem? In any case, I also tried
>>>>>> selecting
>>>>>> the
>>>>>> filename (i.e., running the above method, which is triggered by a
>>>>>> button
>>>>>> press) after .csd compilation and before running - same result (no
>>>>>> communication).
>>>>>>
>>>>>> I'd much appreciate any clues, please. My Python skills are so
>>>>>> minimal,
>>>>>> and
>>>>>> this issue has been stumping me for months now.
>>>>>>
>>>>>> Art Hunkins
>>>>>>
>>>>>> ----- Original Message -----
>>>>>> From: "Victor Lazzarini" 
>>>>>> To: "Art Hunkins" ; "Developer discussions"
>>>>>> 
>>>>>> Sent: Tuesday, October 12, 2010 4:58 AM
>>>>>> Subject: Re: [Cs-dev] Fw: Csound API Question?
>>>>>>
>>>>>>
>>>>>>> No, SetChannel() works properly, the script I placed here showed
>>>>>>> that
>>>>>>> it
>>>>>>> does. The problem
>>>>>>> is that your program is not giving it the right arguments. You
>>>>>>> are
>>>>>>> not
>>>>>>> giving it two strings, which
>>>>>>> is what it expects. This is what the error message says.
>>>>>>>
>>>>>>> Victor
>>>>>>>
>>>>>>> On 11 Oct 2010, at 17:48, Art Hunkins wrote:
>>>>>>>
>>>>>>>> don't now believe any of the WARNING messages, including the
>>>>>>>> final
>>>>>>>> one,
>>>>>>>> are causing the problem; I believe that the SetChannel call is
>>>>>>>> the
>>>>>>>> culprit.
>>>>>>>> (Is it possible Oeyvind is on the right track?)
>>>>>>>>
>>>>>>>> A final thought: You mentioned the Csound API hadn't been
>>>>>>>> modified
>>>>>>>> since
>>>>>>>> 5.10. I wonder if there's any chance that SoaS 0.86.3 (the Sugar
>>>>>>>> Blueberry
>>>>>>>> version I'm testing with) could be using an older API? Or  would
>>>>>>>> there
>>>>>>>> be
>>>>>>>> any
>>>>>>>> difference? The Csound is 5.10, and all *should* have been
>>>>>>>> updated
>>>>>>>> at
>>>>>>>> that
>>>>>>>> time, right?
>>>>>>>>
>>>>>>>> Art Hunkins
>>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> Nokia and AT&T present the 2010 Calling All Innovators-North
>>>>>> America
>>>>>> contest
>>>>>> Create new apps & games for the Nokia N8 for consumers in  U.S.
>>>>>> and
>>>>>> Canada
>>>>>> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in
>>>>>> marketing
>>>>>> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to
>>>>>> Ovi
>>>>>> Store
>>>>>> http://p.sf.net/sfu/nokia-dev2dev
>>>>>> _______________________________________________
>>>>>> Csound-devel mailing list
>>>>>> Csound-devel@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Nokia and AT&T present the 2010 Calling All Innovators-North America
>>>> contest
>>>> Create new apps & games for the Nokia N8 for consumers in  U.S. and
>>>> Canada
>>>> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in
>>>> marketing
>>>> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to
>>>> Ovi  Store
>>>> http://p.sf.net/sfu/nokia-dev2dev
>>>> _______________________________________________
>>>> Csound-devel mailing list
>>>> Csound-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>
>>
>>
>> ------------------------------------------------------------------------------
>> Nokia and AT&T present the 2010 Calling All Innovators-North America
>> contest
>> Create new apps & games for the Nokia N8 for consumers in  U.S. and
>> Canada
>> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in
>> marketing
>> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi
>> Store
>> http://p.sf.net/sfu/nokia-dev2dev
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>
>
> ------------------------------------------------------------------------------
> Nokia and AT&T present the 2010 Calling All Innovators-North America 
> contest
> Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in 
> marketing
> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
> http://p.sf.net/sfu/nokia-dev2dev
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel 


------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2010-10-31 10:04
FromVictor Lazzarini
SubjectRe: [Cs-dev] Fw: Csound API Question?
The thing is, python is a dynamically type language, so when you do an  
assignment

x = y()

the type of x becomes whatever y is making it to be, regardless of  
what x was before.
What you called 'basic declaration of variable and type" is not doing  
what you want,
as this is not C.

So what you need to find out is how to convert  the type in  
jobject.file_path to what
SetChannel() wants  which is effectively just a string.

I had a quick google of this and the str(...) conversion might work.

self.filename = str(jobject.file_path)

If this doesn't you might want to ask this question somewhere where  
they know how to
use dbus.

Victor

On 31 Oct 2010, at 02:34, Art Hunkins wrote:

> Victor,
>
> Thanks for bearing with me.
>
> I am not using CsoundGUI.filechooser() because I want only to query
> soundobjects listed in the Journal, and because the way I did it, with
> ObjectChooser(), was the way recommended by those on the sugar-dev  
> list.
> Also, for kids, I want the simple names children can choose for  
> Journal
> entries. (The Record activity also deposits an entry for recordings  
> made
> handily in the Journal. IMO, the Linux/Sugar directory structure and  
> long,
> abstruse filenames are definitely *not* for kids.)
>
> To the point: the type returned in:
>      filename = jobject.file_path
> is type = dbus.str
> I've set the variable filename = "0", which is type str
> and this is what SetChannel() is trying to send. Obvious problem, as  
> you
> observe.
>
> So, please can you tell me what the correct formulation of these  
> three lines
> of code should be:
>
> self.filename = "0" (basic declaration of variable and type)
>
> self.filename = jobject.file_path (getting the selected soundfile's  
> path
> from the Journal)
>
> self.w.set_filechannel("file1", self.filename) (sending the filename  
> to
> Csound)
>
>
> I can't pass self.filename directly to set_filechannel() because the  
> name
> may be selected before my .csd is compiled.
>
> Thanks again for all your help.
>
> Art Hunkins
>
> ----- Original Message -----
> From: "Victor Lazzarini" 
> To: "Art Hunkins" ; "Developer discussions"
> 
> Sent: Saturday, October 30, 2010 3:14 AM
> Subject: Re: [Cs-dev] Fw: Csound API Question?
>
>
>> This comes back to what I said the first time you asked the question
>> here. The variable 'name' in your code does not
>> appear to be a string. Find out what it is and try to pass a string  
>> to
>> SetChannel(). If you are selecting files, why don't you
>> use CsoundGUI.filechooser(), that is designed to create a button  
>> for a
>> filechooser window and pass the chosen file to
>> a channel?
>>
>> Regards
>>
>> Victor
>>
>>
>> On 30 Oct 2010, at 03:10, Art Hunkins wrote:
>>
>>> Victor,
>>>
>>> I've corrected several of my (sometimes silly) mistakes, and think
>>> I've come
>>> close to spotting the problem: it seems to have to do with the kind
>>> of file
>>> string input that SetChannel() expects.
>>>
>>> In a simplified script from my FileMix activity, I get this error
>>> (per log):
>>>
>>> SECTION 1:
>>> FileName =
>>> /home/olpc/.sugar/default/data/5c073d96-6757-4632-b75f-
>>> af09fce807afprJ92j.ogg
>>> Traceback (most recent call last):
>>> File "/home/olpc/Activities/FileMix.activity/filemix.py", line 65,  
>>> in
>>> version3
>>>   self.w.set_filechannel("file1", self.filename)
>>> File "/home/olpc/Activities/FileMix.activity/csndsugui.py", line
>>> 661, in
>>> set_filechannel
>>>   self.csound.SetChannel(chan,name)
>>> File "/usr/lib/python2.6/site-packages/csnd.py", line 1736, in
>>> SetChannel
>>>   return _csnd.Csound_SetChannel(self, *args)
>>> NotImplementedError: Wrong number of arguments for overloaded  
>>> function
>>> 'Csound_SetChannel'.
>>> Possible C/C++ prototypes are:
>>>   SetChannel(Csound *,char const *,double)
>>>   SetChannel(Csound *,char const *,char const *)
>>>
>>> Please note that the filename printed above is self.filename and a
>>> bonafide
>>> (and valid) soundfile located in the Journal. The code that actually
>>> derives
>>> the filename is:
>>> self.filename = jobject.file_path
>>> Apparently this is unacceptable (string) input to SetChannel().
>>> Perhaps it's
>>> too long, *wrong format* or something (see further below)?
>>>
>>> Incidentally self.filename is originally defined as:
>>> self.filename = "0"
>>>
>>> I tried your two suggested alternatives - w.csound.SetChannel(name,
>>> string)
>>> and w.set_channel(name, string) - with the same result.
>>>
>>> Finally, compilation is indeed done prior to the SetChannel call, in
>>> this
>>> direct sequence:
>>>  self.w.csd("FileMix.csd")
>>>  self.p = False
>>>  self.w.set_filechannel("file1", self.filename)
>>>
>>> I might also add that when I set:
>>> self.filename = "ahha"
>>> that "ahha" has no problem getting accepted by SetChannel() and
>>> my .csd.
>>> Likewise, strangely, when I paste the .ogg filename either into:
>>> self.filename = "xxx.ogg"
>>> or into: self.w.set_filechannel("file1", "xxx.ogg")
>>> everything works fine as well.
>>>
>>> Can this indicate some kind of string formatting issue with regard
>>> to the
>>> filename?
>>>
>>> Art Hunkins
>>>
>>> ----- Original Message -----
>>> From: "Victor Lazzarini" 
>>> To: "Art Hunkins" ; "Developer discussions"
>>> 
>>> Sent: Sunday, October 24, 2010 3:58 PM
>>> Subject: Re: [Cs-dev] Fw: Csound API Question?
>>>
>>>
>>>> You should not add self.ready = True, because this is a test of
>>>> compilation, which should
>>>> not be done by you, only internally. In any case, the test was for
>>>> it  to
>>>> be False, not True. If
>>>> Csound has not been compiled, the SetChannel() call will not do
>>>> anything,
>>>> so none of the
>>>> things you've done will correctly test this.
>>>>
>>>> Did you try writing a simple application based on the csndsugui
>>>> examples
>>>> in the git repository,
>>>> like the Playfile activity?
>>>>
>>>> I would suggest you do so. My idea for csndsugui is that some
>>>> methods,
>>>> like set_filechannel()
>>>> do not necessarily need to be called directly. If you use a
>>>> filechooser
>>>> like this:
>>>>
>>>> win.csd("playfile.csd")
>>>> win.filechooser(bbox,"soundfile")
>>>>
>>>> you will get a filechooser button which will open a dialog and the
>>>> selected file will be
>>>> passed to the CSD in the "soundfile" channe, like so:
>>>>
>>>> S1 chnget "soundfile"
>>>> i1 strcmp S1,"0"
>>>> if i1 != 0 goto continue
>>>> puts "no filename selected !!", 1
>>>> turnoff
>>>> goto end
>>>> continue:
>>>> ...
>>>>
>>>> If you are not using this mechanism, then you may as well call the
>>>> Csound
>>>> class method
>>>> SetChannel() directly, or via the set_channel() wrapper (which
>>>> checks  if
>>>> self.ready is not True).
>>>>
>>>> directly:
>>>> obj.csound.SetChannel(name, string)
>>>>
>>>> via set_channel
>>>> obj.set_channel(name, string)
>>>>
>>>> where obj is your CsoundGUI object.
>>>>
>>>> If csound is compiled, any of these will work. They will fail if
>>>> csound
>>>> is not compiled.
>>>>
>>>> Victor
>>>>
>>>> On 24 Oct 2010, at 20:21, Art Hunkins wrote:
>>>>
>>>>> Victor,
>>>>>
>>>>> Attempting to implement your pointer, I tried the following:
>>>>>
>>>>> 1) I added the line:
>>>>> self.ready = True
>>>>> before my call to set_filechannel
>>>>>
>>>>> 2) In the set_filechannel method (in csndsugui), I commented out
>>>>> lines
>>>>> 3, 5
>>>>> and 6 - leaving only the call to csound.SetChannel.
>>>>>
>>>>> Neither of these changes made any difference; still no filename,  
>>>>> nor
>>>>> even
>>>>> "ahha" passed to my csd.
>>>>>
>>>>> Please note that I also tried a sequence that first selects and
>>>>> compiles
>>>>> the
>>>>> csd, whereupon the performer selects a variety of performance
>>>>> parameters
>>>>> passed successfully via chnexport *and selecting the desired file
>>>>> from
>>>>> the
>>>>> Journal (our issue)*, then performing. Passing all the other  
>>>>> values
>>>>> works
>>>>> fine (of course, different methods are employed). Same result.
>>>>>
>>>>> Any further suggestions are most welcome (from anyone).
>>>>>
>>>>> Victor, I really appreciate your help trying to troubleshoot me
>>>>> through
>>>>> this.
>>>>>
>>>>> Art Hunkins
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "Victor Lazzarini" 
>>>>> To: "Art Hunkins" ; "Developer discussions"
>>>>> 
>>>>> Sent: Sunday, October 24, 2010 4:38 AM
>>>>> Subject: Re: [Cs-dev] Fw: Csound API Question?
>>>>>
>>>>>
>>>>>> The definition of the method is:
>>>>>>
>>>>>> def set_filechannel(self,chan,name):
>>>>>> """overrides the base method, setting the channel string"""
>>>>>> if not self.ready:
>>>>>>    self.csound.SetChannel(chan,name)
>>>>>> else:
>>>>>>    BasicGUI.set_filechannel(self,chan,name)
>>>>>>
>>>>>> So, what happens is that if the variable 'ready' is True, this
>>>>>> uses
>>>>>> the
>>>>>> base class method (ie. does not call
>>>>>> SetChannel). Maybe that is the problem.
>>>>>>
>>>>>> 'ready' becomes True after a successful compilation using
>>>>>> CsoundGUI.
>>>>>> compile() or CsoundGUI.csd()
>>>>>> or CsoundGUI.recompile().
>>>>>>
>>>>>>
>>>>>> Victor
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 24 Oct 2010, at 03:17, Art Hunkins wrote:
>>>>>>
>>>>>>> I've been having a terrible time getting a filename communicated
>>>>>>> through
>>>>>>> the
>>>>>>> API to my csd (Python, XO, Sugar 0.84).
>>>>>>>
>>>>>>> The particular method, which works fine otherwise, and uses
>>>>>>> calls  from
>>>>>>> Victor's csndsugui, is as follows:
>>>>>>> def choose(self, widget):
>>>>>>>
>>>>>>> self.chooser = ObjectChooser(parent=self,
>>>>>>> what_filter=mime.GENERIC_TYPE_AUDIO)
>>>>>>>
>>>>>>> self.result = self.chooser.run()
>>>>>>>
>>>>>>> if self.result == gtk.RESPONSE_ACCEPT:
>>>>>>>
>>>>>>> self.jobject = self.chooser.get_selected_object()
>>>>>>>
>>>>>>> if self.jobject and self.jobject.file_path:
>>>>>>>
>>>>>>>   self.filename1 = self.jobject.file_path
>>>>>>>
>>>>>>>   print 'FileName = ', self.filename1
>>>>>>>
>>>>>>>   self.w.set_filechannel("filename1", self.filename1)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> No errors  are logged.
>>>>>>>
>>>>>>> Sname chnget "filename1", and puts Sname, 1
>>>>>>>
>>>>>>> (within an instrument in my csd) simply receives a blank  
>>>>>>> filename.
>>>>>>> However,
>>>>>>> "FileName =" in the above code prints out correctly, i.e., the
>>>>>>> file
>>>>>>> has
>>>>>>> been
>>>>>>> correctly located.
>>>>>>>
>>>>>>> The same null result occurs when self.filename1 in the last line
>>>>>>> of
>>>>>>> above
>>>>>>> code is, instead, "haha" (as illustrated in Victor's example).
>>>>>>>
>>>>>>> I've discovered that I was retrieving the filename before
>>>>>>> the .csd  was
>>>>>>> compiled. Perhaps this is a problem? In any case, I also tried
>>>>>>> selecting
>>>>>>> the
>>>>>>> filename (i.e., running the above method, which is triggered  
>>>>>>> by a
>>>>>>> button
>>>>>>> press) after .csd compilation and before running - same result  
>>>>>>> (no
>>>>>>> communication).
>>>>>>>
>>>>>>> I'd much appreciate any clues, please. My Python skills are so
>>>>>>> minimal,
>>>>>>> and
>>>>>>> this issue has been stumping me for months now.
>>>>>>>
>>>>>>> Art Hunkins
>>>>>>>
>>>>>>> ----- Original Message -----
>>>>>>> From: "Victor Lazzarini" 
>>>>>>> To: "Art Hunkins" ; "Developer discussions"
>>>>>>> 
>>>>>>> Sent: Tuesday, October 12, 2010 4:58 AM
>>>>>>> Subject: Re: [Cs-dev] Fw: Csound API Question?
>>>>>>>
>>>>>>>
>>>>>>>> No, SetChannel() works properly, the script I placed here  
>>>>>>>> showed
>>>>>>>> that
>>>>>>>> it
>>>>>>>> does. The problem
>>>>>>>> is that your program is not giving it the right arguments. You
>>>>>>>> are
>>>>>>>> not
>>>>>>>> giving it two strings, which
>>>>>>>> is what it expects. This is what the error message says.
>>>>>>>>
>>>>>>>> Victor
>>>>>>>>
>>>>>>>> On 11 Oct 2010, at 17:48, Art Hunkins wrote:
>>>>>>>>
>>>>>>>>> don't now believe any of the WARNING messages, including the
>>>>>>>>> final
>>>>>>>>> one,
>>>>>>>>> are causing the problem; I believe that the SetChannel call is
>>>>>>>>> the
>>>>>>>>> culprit.
>>>>>>>>> (Is it possible Oeyvind is on the right track?)
>>>>>>>>>
>>>>>>>>> A final thought: You mentioned the Csound API hadn't been
>>>>>>>>> modified
>>>>>>>>> since
>>>>>>>>> 5.10. I wonder if there's any chance that SoaS 0.86.3 (the  
>>>>>>>>> Sugar
>>>>>>>>> Blueberry
>>>>>>>>> version I'm testing with) could be using an older API? Or   
>>>>>>>>> would
>>>>>>>>> there
>>>>>>>>> be
>>>>>>>>> any
>>>>>>>>> difference? The Csound is 5.10, and all *should* have been
>>>>>>>>> updated
>>>>>>>>> at
>>>>>>>>> that
>>>>>>>>> time, right?
>>>>>>>>>
>>>>>>>>> Art Hunkins
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>> Nokia and AT&T present the 2010 Calling All Innovators-North
>>>>>>> America
>>>>>>> contest
>>>>>>> Create new apps & games for the Nokia N8 for consumers in  U.S.
>>>>>>> and
>>>>>>> Canada
>>>>>>> $10 million total in prizes - $4M cash, 500 devices, nearly  
>>>>>>> $6M in
>>>>>>> marketing
>>>>>>> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to
>>>>>>> Ovi
>>>>>>> Store
>>>>>>> http://p.sf.net/sfu/nokia-dev2dev
>>>>>>> _______________________________________________
>>>>>>> Csound-devel mailing list
>>>>>>> Csound-devel@lists.sourceforge.net
>>>>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Nokia and AT&T present the 2010 Calling All Innovators-North  
>>>>> America
>>>>> contest
>>>>> Create new apps & games for the Nokia N8 for consumers in  U.S.  
>>>>> and
>>>>> Canada
>>>>> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in
>>>>> marketing
>>>>> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to
>>>>> Ovi  Store
>>>>> http://p.sf.net/sfu/nokia-dev2dev
>>>>> _______________________________________________
>>>>> Csound-devel mailing list
>>>>> Csound-devel@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Nokia and AT&T present the 2010 Calling All Innovators-North America
>>> contest
>>> Create new apps & games for the Nokia N8 for consumers in  U.S. and
>>> Canada
>>> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in
>>> marketing
>>> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi
>>> Store
>>> http://p.sf.net/sfu/nokia-dev2dev
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>>
>> ------------------------------------------------------------------------------
>> Nokia and AT&T present the 2010 Calling All Innovators-North America
>> contest
>> Create new apps & games for the Nokia N8 for consumers in  U.S. and  
>> Canada
>> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in
>> marketing
>> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi  
>> Store
>> http://p.sf.net/sfu/nokia-dev2dev
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>
>
> ------------------------------------------------------------------------------
> Nokia and AT&T present the 2010 Calling All Innovators-North America  
> contest
> Create new apps & games for the Nokia N8 for consumers in  U.S. and  
> Canada
> $10 million total in prizes - $4M cash, 500 devices, nearly $6M in  
> marketing
> Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi  
> Store
> http://p.sf.net/sfu/nokia-dev2dev
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel


------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net