What is it ?
TuneBook Live! begins life looking like an all-singing all-dancing upgrade to my original tunes website, Richard Robinson's Tunebook. The difference between them is that that was built in ways that made me the only person who could feed tunes into it, while this is a set of webpages and forms wrapped around a bunch of perl code wrapped around a database, which means that anbody can do it. Anybody who's logged in can store a collection of tunes here and manage them in various useful ways; and their chosen subset of "public" tunes gets published as a set of web-pages, more-or-less as a side-effect.
the History
This all came about because I like playing tunes. I first started learning tunes somewhere around '74, '75, and shortly after that I learnt that it was a good idea to write them down before I forgot them. And the more I went on playing with different people and learning different tunes from them, the more the pile of paper grew and the harder it became to find the one I was looking for. In the mid-80s I went and got involved with computers, and a while after that I concluded that they ought to be capable of organising the helpless mess that my collection of notes had by then become; so, somewhere around 1990 I set about trying to make this happen. A few years after that, along came UK home-consumer Internet access, and the next thing I knew, I was leaning on the bar of the Chemic pub in Leeds, chatting with Peter Nix about this new-fangled World-Wide-Web thing, and he put it to me that it would be a really good idea if I rigged up some html indexes for the stuff I'd accumulated and he'd put it on the Leeds University Music Department's webspace. "Don't be silly, no-one'd be interested" I said ...
So, I seem to remember that the first version of Richard Robinson's Tunebook went up in the summer of '94. Originally it contained something of the order of 1,000 tunes, and then it carried on growing as I continued to bump into tunes and type them up. In those days I was doing this on via a system involving a music-editor, a database code library and Visual C++, all running on Windows 3.1. It nearly worked, at times, but when I started hearing about a scheme called ABC, it sounded like a much better idea; I investigated, was impressed, started using it and became a linux-user as a side-effect, since when ('95), I have kept my collection of tunes as a bunch of ABC files, mostly working with them through some form of perl scripting.
Of course, once I started doing the website thing, it all got out of control. It turned out other people had stuff that they wanted to put up somewhere, and since I had the means of doing that they passed it over to me, and other stuff started accumulating, people started coming up with manscripts and things, I found myself managing an increasingly large and complicated collection. It's always been a nuisance finding ways to pick through my local storage, pick out the ones for the Leeds website, and reshape the whole lot into a suitable bundle of static files. Also, the more I spent time playing with ways of doing useful stuff with tunes, the more I started feeeling that it would be good to pass some of this experience and thought on to others, if I could find a good way of doing that. And meanwhile the WWW moved on, a lot of people put a lot of thought into developing easier ways to do more with it ...
So eventually, somewhere in Jan. '07, it became time to look into all this new-fangled dynamic website stuff. This is the result. [ For the technically curious, it's written in perl, using Catalyst plus DBIx::Class around a mySQL database, plus Template Toolkit for the output. Plus abcm2ps, yaps, abcMIDI, ghostscript and all the usual things, all behind Apache2 on a Debian 4 server ]
the Present
My first intention for it has been to make it capable of reproducing all the material and functionality of the Leeds site, using only user permissions. I now think I've achieved this (with one exception), so phase 1 of the project ends with putting up some public links and inviting people to use it, and then coping with matters arising - the aim for now is to satisfy myself that it's stable and useable, and generally shake the glitches out as people find them, hoping that none of them are very big.
The incompleteness is the "search for a sequence of notes" thing that the Leeds site can do. The code behind this is many years old and needs updating; this is a separate sub-project which may raise some inteesting questions in its own right, and I'll get round to it when I have the time to think about it.
the Future
If / when that's all sorted out ...... I have more ideas
- Being dynamically generated, I guess it will be opaque to things like JC's web search. It needs some kind of code-friendly API. (This could even be seen as phase-1-completism).
- Documents. Some kind of interface where you can deal with a list of (arbitrarily-selected) tunes as a document. Pull tunes in from the database and process them with abcm2ps etc, coming out with (presumably) a PDF download of the whole list of tunes. I want this for my own use, and will hopefully be getting on with this before too long.
- My original reason for embarking on this was that I wanted to develop a way for people to collaborate on distributed projects to type up large collections, eg from photocopies, etc. I haven't started on that aspect of things yet.
- Other formats; it should be possible, and would be nice, to include other machine-readable musical notations. MusicXML, perhaps, would be good, because that would enable people to do stuff in Sibelius/Finale and upload it here. In the very long term, it would be nice to be able to convert between ABC & MusicXML and offer each tune in either format - MusicXML is better than ABC as an interchange format between machines (it doesn't have the same problem of dialects), but I can't see many people preferring to type/edit a tune that way, ABC's much nicer for humans to deal with. That would take some serious looking into, and I'm not sure it would be possible to do without information loss. Later-for-that.
... and also some things to think about
-
If you search for a tune around the web, it's a common experience to find that there are 73 copies of it available. Looking into these reveals that most of them are copies of only a small handful of original transcriptions. This is both good news (sites disappear from time to time. If their tunes haven't been copied anywhere else they're gone) and bad (most of the copying doesn't run to checking for changes in the original).
This being Yet Another Tune Site (thinks - "yats"; I'm tempted ...), it will be adding yet more tunes to the lists on offer. I need to think about how to be most helpful over this.
Tunes that someone types up for themself are not relevant here, of course. The question is what to do when somebody finds a tune in someone else's ABC file, or web site, and makes their own copy of it ? Current thoughts are :-
- Somebody copies a tune from elsewhere into here, for the first time.
- The same, second time - another copy of one that's already here (site won't know this unless it checks; which it could do).
- Somebody stores their own copy of a tune that they've found here in the first place. I don't think there's will be a good reason to want to do this. Eventually; I have to write it. There will be a system of "Documents" or "Bookmarks", or something, which will allow people to keep sets of pointers to arbitrary other tunes.
- Of course, one might well copy an existing version, from whatever source, as a base for making your own changes, and of course this shouldn't be a problem and isn't.
- So the question is, whether to worry about duplicate copies - patrol the site for them, and do something constructive about it, and if so, what ? Hide them ?
- In connection with this, I wnder if it's sufficient to have tunes that originate here identify themselves only with the ID line, perhaps they should include specific TUNEURL lines as well, and FILEURL for the abc lists ?