lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Lilypond Server


From: Joshua KooOOoOOo
Subject: Lilypond Server
Date: Sat, 12 Mar 2005 21:18:59 +0800

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)

Attachment: lilypondserver.py
Description: Binary data

Attachment: LilyClient.java
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]