Hi, I attempted to create a simple Lilypond Server the last few days, and for anyone's who interested, please give your comments (on the codings, concept or whatever) , or even better, if you can improve on it, (or maybe you can set up a server). I'm not on the lilypond-devel list, so please c.c. me. And also, if anyone wants to use my unworthy codes, or package it in lilypond, just go ahead to do so. See notes below.
Thanks, Joshua Koo NOTES - - - - - How it works: Server is written in python. Client needs java (likely 1.4). Start the Server on a machine with Lilypond "python LilypondServer.py" Compile the java class. "javac LilyClient.java" Run the client. "java LilyClient [ip address or hostname of server]" Make sure you have a lilypond file in your directory. type "upload foo.ly" where foo.ly is your lilypond file. Lilypond will run on the file after file is uploaded. Any errors or output by Lilypond will be shown to the client. When done, you can try to download the output files eg. "get foo.midi" File will be saved to the directory. Type "bye" to say bye to server Background. I don't think this idea is new, as I found mentions of this idea in the past mailing lists. However, this idea came to me not long ago, when I tried out coLinux [ www.colinux.org ]. Since it can run most linux applications on windows, I thought it can be a alternative to cygwin, without the hassle to modify the sources. For a user to use LilyTool with Lilypond on coLinux, I thought the 2 options is either do all the work on coLinux (in the shell or on desktop "remotely") or continue using lilytool on windows, but use a network connection to run Lilypond. The more I thought about it, the more benefits I could think of. ^ I wouldnt need a cygwin on every windows, or a Lilypond on every pc. ^ I could run coLinux daemon in the background and run Lilypond as if ran out of no where ^ I could have a slow pc but run Lilypond thru the network on a fast machine. When the topic of "Easier Lilypond Tutorial", I thought, ^ A public lilypond server would allow many others to try Lilypond without installing linux or lilypond. ^ Having Lilypond Server can free out utilisation of the current Pcs, needing just a light client (maybe just lilytool, or maybe java or python client), and bring the load to the server. ^ Different Lilypond Servers can cater to different lilypond versions. My ideas continue expanding... ^ Maybe there should be a Lilypond Server Webpage. Allow generation of lilypond to pictues(png). Maybe create an account, login, type a set of lilypond codes. Click post, and request will be sent to the lilypond server, output is accessed thru the webpage (midis, pdfs..) Working on a big piece of music while on the move? Login and continue editing the pieces. ^ Distributed Lilypond / Load sharing. Users who have lilypond installed, could actually just run the server during idle pc periods. All these lilypond Servers can contact a lilypond manager which will assign jobs (perphaps from the main Lilypond Server or webpage queue) and oh wait,we got a beogulf of .... ;) Future Enhancements: (possible) + More functionality - bug fixes, error handling, multiple files support... + Lilytool Integration + More security + Compression and hash checks for file transfer + Maybe multi-threading or non-blocking Server + Webserver/Webservice add-on + Clustered Servers + Caching, version control (i'm dreaming)
lilypondserver.py
Description: Binary data
LilyClient.java
Description: Binary data
_______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel