[Cs-dev] Re: [Csnd] Csound 5 GUI frontends
Date | 2006-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" |
Date | 2006-04-28 02:23 |
From | David Ogborn |
Subject | Re: [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" |
Date | 2006-04-28 09:37 |
From | Istvan Varga |
Subject | Re: Csound 5 GUI frontends |
Attachments | None |
Date | 2006-04-28 10:27 |
From | Istvan Varga |
Subject | Re: [Cs-dev] Re: [Csnd] Csound 5 GUI frontends |
Attachments | None |
Date | 2006-04-29 12:09 |
From | Istvan Varga |
Subject | Re: Csound 5 GUI frontends |
Attachments | None |
Date | 2006-04-29 15:10 |
From | Istvan Varga |
Subject | Re: Csound 5 GUI frontends |
Attachments | None |
Date | 2006-04-30 03:13 |
From | David Akbari |
Subject | Re: 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 |
Date | 2006-04-30 09:54 |
From | Istvan Varga |
Subject | Re: Csound 5 GUI frontends |
Attachments | None |
Date | 2006-04-30 11:08 |
From | Rory 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 |