Csound Csound-dev Csound-tekno Search About

[Cs-dev] Re: [Csnd] Csound 5 GUI frontends

Date2006-04-28 01:43
From"Michael Gogins"
Subject[Cs-dev] Re: [Csnd] Csound 5 GUI frontends
I've played with your frontend, and looked a little bit at the sources.

Basically, I like what you have done.  I like the transport controls and 
time counter, I think this is very useful, not least because its function 
will be obvious to musicians who are not programmers. I also like the fields 
for adding soundfile ID tags.

I suggest that we combine CsoundVST and your GUI to make a standard frontend 
for Csound 5. I think this can be done in a way that would please both those 
who do not wish to install Python and those who do, reduce duplication of 
effort, and make Csound 5 more maintainable.

First, allow me to point out some minor problems, then I will make some 
suggestions.

The first problem is that there is a black console window, then there is a 
second console window (with a white background) for Csound messages. The 
first window can be omitted with the right linker flag, I think. Probably, 
you have just left this in for debugging purposes.

The second problem is that configuration dialog has no "close" button 
(though Alt-F4 does close it), and it's a modal dialog so when it's open, 
you can't run Csound. This is obviously easy to fix in FLTK.

I think it might be a problem that you construct the Csound command line 
entirely from dialogs. Perhaps there should also be a text field for 
additional flags by hand?

Now for my suggestions.

The main suggestion is to allow, but not require, the frontend to use 
Python.  This can be done by (a) calling Python via dl_open and dl_sym (or 
the Windows equivalents) instead of linking statically, and (b) by changing 
the Python Csound API to permit plugging an existing instance of Csound into 
Python (CsoundVST does it the other way round, creates Csound in Python then 
extracts it for the GUI). This would enable Csound operated via Python to 
print messages to the console, operate the time counter, etc. In other 
words, if the frontend can load the Python library, it will unhide a script 
editing button and plug its already created instance of Csound into Python. 
If the script field is populated, the script will be executed, instead of 
compiling and running the Csound files.

Dynamically loading Python in this way did not used to be possible on 
Windows before Python 2.4. because the Python functions did not used to be 
exported in the Python DLL, but they are now. This opens a lot of things up 
and makes it possible for the program to run if Python is not present.

As Steven Yi suggested, this may possible with other scripting languages as 
well.

Other suggestions follow.

I think it would be desirable to add a button that links to the Csound HTML 
help with a configurable path. FLTK has some sort of HTML browser, though 
I'm not sure it's good enough for this.

I think "Seek" or "Goto" is a better term than "Apply" for the score offset, 
which is a nice feature.

Putting dummy widgets in so as not to break widget orcs is a good idea.

Did you look at John Ramsdell's flCsound? He had a feature of placing FLTK 
graphs onto separate tabs that would be nice to have.

Anyway, let me know what you think. I am not going to make any more changes 
to CsoundVST for the time being.

Regards,
Mike

----- Original Message ----- 
From: "Istvan Varga" 
To: 
Sent: Thursday, April 27, 2006 6:25 PM
Subject: Re: [Csnd] Csound 5 GUI frontends


> On Friday 28 April 2006 00:03, jpff@codemist.co.uk wrote:
>
>> So again my small free time is wasted.  Time to stop and go back to
>> writing music.
>
> Well, I mainly created this frontend to learn more about using FLTK
> and fluid, and also in response to recent criticism about Csound 5
> being "command line only". It remains to be seen if anyone actually
> finds it useful in practice, and if not, I will probably remove it
> from the CVS.
> -- 
> Send bugs reports to this list.
> To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk
> 




-------------------------------------------------------
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

Date2006-04-28 02:23
FromDavid Ogborn
SubjectRe: [Cs-dev] Re: [Csnd] Csound 5 GUI frontends
Hello Michael, John and csound-devel list,

I think that the fact that Csound 5 does not come with any particular
front-end, far from representing a liability is in fact an advantage.
It encourages the independent development of multiple "front-ends" to
reflect the great diversity of work processes employed by a great
diversity of electronic sound artists.

I wonder what the community would gain by a certain front-end being
declared as the "standard" front-end.  Why not distribute all front-ends
as separate programs with Csound 5 as their major/only prerequisite?

Yours truly,
David

Michael Gogins wrote:
> I've played with your frontend, and looked a little bit at the sources.
> 
> Basically, I like what you have done.  I like the transport controls and
> time counter, I think this is very useful, not least because its
> function will be obvious to musicians who are not programmers. I also
> like the fields for adding soundfile ID tags.
> 
> I suggest that we combine CsoundVST and your GUI to make a standard
> frontend for Csound 5. I think this can be done in a way that would
> please both those who do not wish to install Python and those who do,
> reduce duplication of effort, and make Csound 5 more maintainable.
> 
> First, allow me to point out some minor problems, then I will make some
> suggestions.
> 
> The first problem is that there is a black console window, then there is
> a second console window (with a white background) for Csound messages.
> The first window can be omitted with the right linker flag, I think.
> Probably, you have just left this in for debugging purposes.
> 
> The second problem is that configuration dialog has no "close" button
> (though Alt-F4 does close it), and it's a modal dialog so when it's
> open, you can't run Csound. This is obviously easy to fix in FLTK.
> 
> I think it might be a problem that you construct the Csound command line
> entirely from dialogs. Perhaps there should also be a text field for
> additional flags by hand?
> 
> Now for my suggestions.
> 
> The main suggestion is to allow, but not require, the frontend to use
> Python.  This can be done by (a) calling Python via dl_open and dl_sym
> (or the Windows equivalents) instead of linking statically, and (b) by
> changing the Python Csound API to permit plugging an existing instance
> of Csound into Python (CsoundVST does it the other way round, creates
> Csound in Python then extracts it for the GUI). This would enable Csound
> operated via Python to print messages to the console, operate the time
> counter, etc. In other words, if the frontend can load the Python
> library, it will unhide a script editing button and plug its already
> created instance of Csound into Python. If the script field is
> populated, the script will be executed, instead of compiling and running
> the Csound files.
> 
> Dynamically loading Python in this way did not used to be possible on
> Windows before Python 2.4. because the Python functions did not used to
> be exported in the Python DLL, but they are now. This opens a lot of
> things up and makes it possible for the program to run if Python is not
> present.
> 
> As Steven Yi suggested, this may possible with other scripting languages
> as well.
> 
> Other suggestions follow.
> 
> I think it would be desirable to add a button that links to the Csound
> HTML help with a configurable path. FLTK has some sort of HTML browser,
> though I'm not sure it's good enough for this.
> 
> I think "Seek" or "Goto" is a better term than "Apply" for the score
> offset, which is a nice feature.
> 
> Putting dummy widgets in so as not to break widget orcs is a good idea.
> 
> Did you look at John Ramsdell's flCsound? He had a feature of placing
> FLTK graphs onto separate tabs that would be nice to have.
> 
> Anyway, let me know what you think. I am not going to make any more
> changes to CsoundVST for the time being.
> 
> Regards,
> Mike
> 
> ----- Original Message ----- From: "Istvan Varga" 
> To: 
> Sent: Thursday, April 27, 2006 6:25 PM
> Subject: Re: [Csnd] Csound 5 GUI frontends
> 
> 
>> On Friday 28 April 2006 00:03, jpff@codemist.co.uk wrote:
>>
>>> So again my small free time is wasted.  Time to stop and go back to
>>> writing music.
>>
>> Well, I mainly created this frontend to learn more about using FLTK
>> and fluid, and also in response to recent criticism about Csound 5
>> being "command line only". It remains to be seen if anyone actually
>> finds it useful in practice, and if not, I will probably remove it
>> from the CVS.
>> -- 
>> Send bugs reports to this list.
>> To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk
>>
> 
> 
> 
> 
> -------------------------------------------------------
> 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-04-28 09:37
FromIstvan Varga
SubjectRe: Csound 5 GUI frontends
AttachmentsNone  

Date2006-04-28 10:27
FromIstvan Varga
SubjectRe: [Cs-dev] Re: [Csnd] Csound 5 GUI frontends
AttachmentsNone  

Date2006-04-29 12:09
FromIstvan Varga
SubjectRe: Csound 5 GUI frontends
AttachmentsNone  

Date2006-04-29 15:10
FromIstvan Varga
SubjectRe: Csound 5 GUI frontends
AttachmentsNone  

Date2006-04-30 03:13
FromDavid Akbari
SubjectRe: Csound 5 GUI frontends
Thank you to Michael, Istvan, and Graham.

I have successfully compiled csound5gui and tested it on Mac OS X.
http://www.csounds.com/akbari/csound5gui_test.png

Here's the Makefile I used - perhaps this could be added to the CVS  
tree as "Makefile-osx" ? This is made assuming that the csound5gui  
source tree should nominally live two levels down from the csound5  
source tree, as indicated by Istvan and the CFLAGS parameter in the  
Makefile.

## don't add this line ##

PROGRAM = csound5gui
CXX = g++
CXXFLAGS = -Wall -W -ansi -pedantic -g -O -I. -I../../H  
-I../../interfaces
LIBS = -L/usr/local/lib -lfltk -lpthread -framework Carbon -framework  
ApplicationServices -lsupc++ -L../.. -L/usr/X11R6/lib -lX11  
../../libcsound.a -lstdc++ -lsndfile -lpthread

#  
------------------------------------------------------------------------ 
-----

include Makefile.base

## EOF ##

Note that the -framework flags and the -lsupc++ were indicated by the  
fltk-config program as the proper flags to link with on OS X.

A few notes about what Michael and Istvan reported about the FL::lock  
and FL::unlock function -

I downloaded FLTK 1.1.7 (stable release) from fltk.org and ./configured  
it however for whatever reason, it did **NOT** add the required  
-lstdc++ in the makeinclude !! Thus it was throwing undefined symbol  
errors until I tossed the symbols in Google and realized they belong to  
-lstdc++.

* OS X users have to manually edit the makeinclude file for FLTK 1.1.7  
and add -lstdc++ to get FLTK 1.1.7 to compile properly with  
--enable-threads and --enable-shared. Previously I just compiled it  
without thread support as a shared library because I guess it didn't  
have symbols referenced in libstdc++.

Anyway, nice work and thanks for the advice!


-David

Date2006-04-30 09:54
FromIstvan Varga
SubjectRe: Csound 5 GUI frontends
AttachmentsNone  

Date2006-04-30 11:08
FromRory Walsh
Subject[Cs-dev] FLTK opcodes/frontends [was: Csound 5 GUI frontends]
Hi everyone, Istvan recently mentioned how the fltk opcodes are 
problematic when using them in a frontend, I have noticed this myself 
but thought the problems were down to my own implementation errors. I've 
noticed that I can run a fltk csd fine but once I close the fltk window 
or stop the performance I get a crash. Do anyone have any advice on how 
I might prevent this from happening?

Rory.

Istvan Varga wrote:
> Thanks, I add the Makefile to the CVS sources. Did you have success
> with using the widget opcodes ? Those often tend to be problematic
> when used from a GUI frontend, so reports on how well they work are
> interesting (note that you need to disable performing in a separate
> thread). The widgets and graphs are usable on Linux and Windows, but
> the FLTK library should be compiled as a shared, and not a static
> library.
> 
> On Sunday 30 April 2006 04:13, David Akbari wrote:
> 
>> Thank you to Michael, Istvan, and Graham.
>>
>> I have successfully compiled csound5gui and tested it on Mac OS X.
>> http://www.csounds.com/akbari/csound5gui_test.png
>>
>> Here's the Makefile I used - perhaps this could be added to the CVS  
>> tree as "Makefile-osx" ? This is made assuming that the csound5gui  
>> source tree should nominally live two levels down from the csound5  
>> source tree, as indicated by Istvan and the CFLAGS parameter in the  
>> Makefile.
>>
>> ## don't add this line ##
>>
>> PROGRAM = csound5gui
>> CXX = g++
>> CXXFLAGS = -Wall -W -ansi -pedantic -g -O -I. -I../../H  
>> -I../../interfaces
>> LIBS = -L/usr/local/lib -lfltk -lpthread -framework Carbon -framework  
>> ApplicationServices -lsupc++ -L../.. -L/usr/X11R6/lib -lX11  
>> ../../libcsound.a -lstdc++ -lsndfile -lpthread
>>
>> #  
>> ------------------------------------------------------------------------ 
>> -----
>>
>> include Makefile.base
>>
>> ## EOF ##
>>
>> Note that the -framework flags and the -lsupc++ were indicated by the  
>> fltk-config program as the proper flags to link with on OS X.
>>
>> A few notes about what Michael and Istvan reported about the FL::lock  
>> and FL::unlock function -
>>
>> I downloaded FLTK 1.1.7 (stable release) from fltk.org and ./configured  
>> it however for whatever reason, it did **NOT** add the required  
>> -lstdc++ in the makeinclude !! Thus it was throwing undefined symbol  
>> errors until I tossed the symbols in Google and realized they belong to  
>> -lstdc++.
>>
>> * OS X users have to manually edit the makeinclude file for FLTK 1.1.7  
>> and add -lstdc++ to get FLTK 1.1.7 to compile properly with  
>> --enable-threads and --enable-shared. Previously I just compiled it  
>> without thread support as a shared library because I guess it didn't  
>> have symbols referenced in libstdc++.
>>
>> Anyway, nice work and thanks for the advice!
>>
>>
>> -David
>>


-------------------------------------------------------
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