Csound Csound-dev Csound-tekno Search About

Common Music and Csound 5

Date2005-10-10 18:43
FromMichael Gogins
SubjectCommon Music and Csound 5
I will undertake a Lisp or Scheme binding for Csound 5 so that the Csound API can be called natively from Common Music.

Before I do this, I would like to know which version of Scheme or Lisp I should target. I will be doing the development work on Windows and Linux. Rick Taube's book comes with CLisp for Windows and this also can be used on OS X and Linux, so I would guess this is the best target.  CLisp runs Common Music just fine on my PC. 

I do not have time to maintain multiple bindings, so I need to know the best compromise.

Unfortunately, the most mature SWIG facilities for Lisp are actually for Guile and MzScheme (both Scheme). On my PC, Guile does not run and building it requires many dependencies, which I can obtain if consensus favors Guile over CLisp.

As part of this work, I will be moving the C++ form of the Csound API from the CsoundVST project into the Csound API library proper, and also moving the Python wrappers. 

This will NOT introduce any additional dependencies in the Csound API library build except for SWIG, and I can book in the generated wrapper code so that even SWIG is not required for the normal build.

Please advise me which is the best version of Lisp or Scheme to use for Common Music and the Csound API.

I would like to finish this work before Csound 5 achieves release status.

Thanks,
Mike


Date2005-10-10 19:04
FromDave Phillips
SubjectRe: [Cs-dev] Common Music and Csound 5
Hi Michael:

  Consider recent releases of CMUCL and/or SBCL if CM's new realtime 
services will be involved.

Best,

dp


Michael Gogins wrote:

>I will undertake a Lisp or Scheme binding for Csound 5 so that the Csound API can be called natively from Common Music.
>
>Before I do this, I would like to know which version of Scheme or Lisp I should target. I will be doing the development work on Windows and Linux. Rick Taube's book comes with CLisp for Windows and this also can be used on OS X and Linux, so I would guess this is the best target.  CLisp runs Common Music just fine on my PC. 
>
>I do not have time to maintain multiple bindings, so I need to know the best compromise.
>
>Unfortunately, the most mature SWIG facilities for Lisp are actually for Guile and MzScheme (both Scheme). On my PC, Guile does not run and building it requires many dependencies, which I can obtain if consensus favors Guile over CLisp.
>
>As part of this work, I will be moving the C++ form of the Csound API from the CsoundVST project into the Csound API library proper, and also moving the Python wrappers. 
>
>This will NOT introduce any additional dependencies in the Csound API library build except for SWIG, and I can book in the generated wrapper code so that even SWIG is not required for the normal build.
>
>Please advise me which is the best version of Lisp or Scheme to use for Common Music and the Csound API.
>
>I would like to finish this work before Csound 5 achieves release status.
>
>Thanks,
>Mike
>
>
>
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by:
>Power Architecture Resource Center: Free content, downloads, discussions,
>and more. http://solutions.newsforge.com/ibmarch.tmpl
>_______________________________________________
>Csound-devel mailing list
>Csound-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/csound-devel
>
>  
>



-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-10-10 19:50
FromRick Taube
Subject[Cs-dev] Re: Common Music and Csound 5
On Oct 10, 2005, at 12:43 PM, Michael Gogins wrote:

> I will undertake a Lisp or Scheme binding for Csound 5 so that the 
> Csound API can be called natively from Common Music.
>
> Before I do this, I would like to know which version of Scheme or Lisp 
> I should target. I will be doing the development work on Windows and 
> Linux. Rick Taube's book comes with CLisp for Windows and this also 
> can be used on OS X and Linux, so I would guess this is the best 
> target.  CLisp runs Common Music just fine on my PC.
>
> I do not have time to maintain multiple bindings, so I need to know 
> the best compromise.

Hi, In my opinion the best compromise would be to write your code using 
CFFI for Common Lisp -- that way your code should run in every Lisp 
that CFFI supports, and it currently supports most CLs on all the major 
platforms. You can read about CFFI here:

	http://common-lisp.net/project/cffi/

Note that currently CM does not use CFFI yet but I will definately be 
moving to it (both CM and Lambda-GTK) in the fairly near future At any 
rate that would not have any bearing on your work, ehich if I 
understandd it, could be used by any common lisp (or scheme) program.

For Scheme there is no simple solution -- my understanding is that the 
next release of Gauche Scheme  (0.8.6) will include an "easy" FFI 
interface.

	http://www.shiro.dreamhost.com/scheme/gauche/

If you do a scheme binding I would perfer Gauche over Guile, mainly 
because we have CM's realtime scheduler working in Gauche (sort of...), 
but also because I have had too many problems trying to build Guile on 
OS X. Hoever CM 2.7.0 does run in Guile, Gauche and STklos Schemes.

> As part of this work, I will be moving the C++ form of the Csound API 
> from the CsoundVST project into the Csound API library proper, and 
> also moving the Python wrappers.

An FFI to C++ will entail additional headache, there is a project 
called Verragano that does this, I belileve that it uses CFFI to help 
do this:

	http://common-lisp.net/project/fetter/
>
> I would like to finish this work before Csound 5 achieves release 
> status.

Depending on what you want to do, another possibilty would be to 
connect Csound and CM using OSC via UDP -- I think that OSC/UDP is 
working in CM right now, or if it isnt, it will be very shortly (ie 
days not weeks)

Hope this helps!

--rick



-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-devel

Date2005-10-10 20:34
FromIstvan Varga
SubjectRe: Common Music and Csound 5
Michael Gogins wrote:

> As part of this work, I will be moving the C++ form of the Csound API
 > from the CsoundVST project into the Csound API library proper, and also
 > moving the Python wrappers.
> 
> This will NOT introduce any additional dependencies in the Csound API
 > library build except for SWIG, and I can book in the generated wrapper
 > code so that even SWIG is not required for the normal build.

Why is it absolutely necessary to integrate the C++ and other wrappers
into the main library ?

Date2005-10-11 02:59
FromAnthony Kozar
SubjectRe: [Cs-dev] Common Music and Csound 5
Mike, 

I really appreciate that you are taking on the Lisp/Scheme binding!  Rick's
advice is definitely probably the best to follow :)

Regarding the C++ and Python wrappers:  I admit that I do not see the
necessity of putting them into the main library.  BUT,  I know that many
people have voiced similar feelings over several of my proposed additions to
Csound 5.  I have reached the point where I "know for certain" that my
additions are necessary and I am willing to accept that you are motivated by
similar conviction.

Therefore, follow through with what you know to be true!  (I hope to do the
same with my proposals before Csound 5 is released :)  I have just one
request for the bindings.  Can you please make it so that it is possible to
build without them via some compiler defines or something.  There is an old
version of SWIG for MacOS 9, but it seems likely to me that it will not work
for this (just guessing).

Thanks! That's all that I need!

Anthony Kozar
anthonykozar AT sbcglobal DOT net
http://akozar.spymac.net/


Michael Gogins wrote on 10/10/05 1:43 PM:

> As part of this work, I will be moving the C++ form of the Csound API from the
> CsoundVST project into the Csound API library proper, and also moving the
> Python wrappers. 
> 
> This will NOT introduce any additional dependencies in the Csound API library
> build except for SWIG, and I can book in the generated wrapper code so that
> even SWIG is not required for the normal build.



-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-10-11 03:31
From"M. Edward (Ed) Borasky"
Subject[Cs-dev] Re: [CM] Common Music and Csound 5
Speaking mostly as a Linux user, the best Lisp for Common Music in my 
environment has proved to be CMUCL. SBCL is "almost" there but CMUCL 
supports Rick's new GUI out of the box. Clisp doesn't support the GUI 
but will run CM. Guile doesn't support the GUI but will run CM. GCL 
won't run CM.

On the Windows side, I haven't used any Lisp but the CygWin port of 
Clisp. Most of the CygWin Lisp/Scheme packages use Clisp or Guile. In 
any event, both Clisp and Guile are ready on CygWin, so the choice is up 
to you.

So ... Rick ... how difficult would it be to put the CM GUI up on Clisp 
or Guile?

Michael Gogins wrote:

>I will undertake a Lisp or Scheme binding for Csound 5 so that the Csound API can be called natively from Common Music.
>
>Before I do this, I would like to know which version of Scheme or Lisp I should target. I will be doing the development work on Windows and Linux. Rick Taube's book comes with CLisp for Windows and this also can be used on OS X and Linux, so I would guess this is the best target.  CLisp runs Common Music just fine on my PC. 
>
>I do not have time to maintain multiple bindings, so I need to know the best compromise.
>
>Unfortunately, the most mature SWIG facilities for Lisp are actually for Guile and MzScheme (both Scheme). On my PC, Guile does not run and building it requires many dependencies, which I can obtain if consensus favors Guile over CLisp.
>
>As part of this work, I will be moving the C++ form of the Csound API from the CsoundVST project into the Csound API library proper, and also moving the Python wrappers. 
>
>This will NOT introduce any additional dependencies in the Csound API library build except for SWIG, and I can book in the generated wrapper code so that even SWIG is not required for the normal build.
>
>Please advise me which is the best version of Lisp or Scheme to use for Common Music and the Csound API.
>
>I would like to finish this work before Csound 5 achieves release status.
>
>Thanks,
>Mike
>
>
>
>_______________________________________________
>Cmdist mailing list
>Cmdist@ccrma.stanford.edu
>http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist
>
>  
>

-- 
M. Edward (Ed) Borasky

http://www.borasky-research.net/
http://borasky-research.blogspot.com/

http://pdxneurosemantics.com
http://pdx-sales-coach.com
http://algocompsynth.com



-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-devel

Date2005-10-11 07:59
FromStéphane Rollandin
SubjectRe: Common Music and Csound 5
Michael Gogins wrote:

> Please advise me which is the best version of Lisp or Scheme to use for Common Music and the Csound API.

CLisp seems a good Lisp candidate, althoulg SBCL would probably be a 
better one if the Windows port was available at last.

as for Scheme, PLT Scheme has my preference.


I'm not familiar with C developement (last time I coded C was 15 years 
ago or so), so my question may be stupid, but here it is: why do you 
have to write a specific binding for each and every langage ? all 
high-level langages have a FFI protocol; couldn't Csound expose whatever 
functions/interfaces are necessary so that the binding can easily be 
written on the other langage side ?

(I'm specifically interested into a Squeak Smalltalk binding)


regards,

Stef