Gregory Dyke and Paul Rosen are pleased to announce version 1.0 of abcjs.
Abcjs is an open source parsing and rendering tool for ABC written
entirely in javascript, so it allows sheet music to be rendered as both
standard notation and MIDI entirely with the browser.
Thanks to whoever moved this post . I couldn’t figure where to put it since it is in no way specific to irish music. But I suppose here is as good as anywhere.
I have not had much of a chance to play with it, but I like the instant revision and highlighting features (or what ever you would call them) It also seems tolerant of missing lines of information up top for quick jots of information.
Thanks Tirno! This is an amazing and great piece of work!
It enables truly collaborative online tunebook creation and could revolutionize thesessionorg.
I’ve just created an add-on for PmWiki, which integrates abcjs with PmWiki and lets users create and edit tunebooks in the wiki, each tune saved as a wiki page, and each tunebook represented as a group of wiki pages. The project page is here: http://www.pmwiki.org/wiki/Cookbook/AbcTunebook
Playing with editing and displaying tunes I found this discrepancy: the abcjs editor script will render a tune even if there is no X: field in the abc, but the abcjs plugin script will refuse to render such abc. This leads to a possible confusion when an editor creates an abc without X: field, which show fine, then saves it and finds that no score is shown on the page because of the missing X: field.
Personally I’d like to see that a missing X: field still renders as score in both editor and plugin. I don’t see much use for index numbering with just one tune per page.
Another tech question: The demo page HTML shows several divs for canvas0, canvas1, canvas2 and canvas3. It looks only the first is used. Why the others?
another thing:
when a tune is written in parts A and B like
abcd|efga:|
agfe|dcba:|
the player will play AABAB instead of AABB, i.e the second (part B) repeat will start at the beginning, not at the beginning of part B.
I can force it to repeat correctly with
abcd|efga:|
|:agfe|dcba:|
but the starting |: should not be necessary IMO.
The AbcTunebook add-on looks great. I have some friends at my session who just spent 2 weeks setting up a website which does precisely that, so I expect other people will like it.
I had never actually used abc_plugin in conjunction with abc_editor - although I’ve been planning to all along. In retrospect, that’s a pretty obvious problem
The thing is, abc being text based, any text could be considered to be “abc with errors”. I use the X: field to trigger that what follows is abc…
I don’t know whether to add in the T: and K: (and maybe other) fields as triggers - I might end up trying to render perfectly normal text. Maybe I should also search for a special classname and use that to know that I should expect the contents to be abc? Ideas?
Greg, I wonder if there is any css hook (class or id) I could use to suppress printing of the abc text when the page is rendered via abcjs_plugin. The abc text is in
tags, but when I use a style class on these to suppress display when printing, I get no score displayed as well. I’d like to be able to use css so the score can get printed, without the abc text underneath.
Thank you !!! Really cool, and does indeed look A+ in FireFox for Mac.
The only thing I ran into right off was that the player seemed highly caffeinated, but that might have been the M: in the tune I was trying, or my QT plugin (though I couldn’t figure out how to change it).
I’ll go back and check.
I don’t know why you guys did this, but I’m so grateful you did! Thanks again!
Good suggestion, hans - it will be included in the next release.
Cathy, glad you like it. The player does go kind of fast I suppose. You can always slow it down with the Q: field. Try Q:1/2=100 for a more relaxed rhythm
Thanks Greg! It is not doing quite what I want but perhaps that is impossible? At least I can now create a page which shows the abc text, and a print-view page which does not show the text, just the score.
The abcjs editor gives options to use empty divs for “canvas”, “music”, “midi” and “warnings”, and so let me achieve some layout control, and use css styling on the elements.
But the abcjs plugin does not give me those options. Could that be added? Then I would for instance be able to display the score above the text (the first release had that), and style the elements.
And I have a few more wishes:
I’d like to see (admin) options to set a variable for the default midi instrument used (first you used program 1 “bright piano”, then changed to 2 “electric piano”), and to set a variable for basic speed (default baseduration, but without influencing any Q: field settings etc.).
Ideally a javascript control like a slider would also be cool, so users could control midi playback speed. But this is probably a lot of bother and a lot of code.
Each tune is stored on its own page, and it prints nicely.
The tunebook is set up as one group of wiki pages,
but one could expand this and have any number of tunebooks on the same wiki site.
As it is a wiki, it would be perfect for collaborative tune collections. Notes and comments could be added to the tune page, and other media included, like mp3 files in embedded players, videos etc.
I may bolt on a wiki commenting module for easy adding of comments.
Awesome. This is exactly the sort of thing I was
thinking of trying but didn’t have the plugin skillz
to pull off.
hans, looks like a good start to the wiki you were
talking about a few months back! For some reason
the MIDI speed changer doesn’t work for me,
though… Is that functional yet? (Firefox 3.6 on XP,
Quicktime plugin is playing the MIDI within the
browser)
Are you installing the plugin on a PmWiki system of your own, or do you mean it does not work on my demo?
If you are installing new, you won’t have the abcjs version I am using, because I got from Greg a pre-release version, which has the extra hooks and midi options I was asking for. My demo is ahed of the times!
If it is on my site: make sure you press the Select button. This will save the choosen option to the page, and the page reloads and the midi will get redone using the new value. You need to be logged in in order to do that. There is no ‘instant’ way of changing the tempo, but we can feed a value to the abcjs midi-writing component.
Just finished my first attempt at notating and editing an entire tune in ABCJS editor – and an especially snarly tune at that – and have to say it was just grand; almost seamless. The joys of instant notation
I ESPECIALLY love the highlight feature that shows you where you are in the tune. Little things like that are a big help when you’re deep in the ABC weeds.
And thanks for the “Q-tip”! I always forget to include that field; it worked a treat.
On your site, I click on the slowest setting,
click the Select button, the page reloads,
Quicktime plugin takes a second to reload
the MIDI. Same speed as before. I’ve tried
each of the RadioButtons, and always the
speed is as if generated with “Q: 200”.
I’m not sure if it’s supposed to, but the line
“slow - - - - - 1 - - - fast” doesn’t change
either after the Select click. Nor does the
yellow highlighted background around the
middle RadioButton.
I can only think that you may not have used ‘login’ with password on the index page.
I changed the display now, so one won’t see the option to change tempo unless logged in.
The tempo changer is rather rudimentary, the text above does not change, nor the yellow highlight of what is factor 1, i.e. “default”. But the quarters per minute number does change.
Perhaps there is another bug somewhere though, if you can’t get it going.