sponsor Vim development Vim logo Vim Book Ad

abc-vim : abc music notation syntax, 2.1 and up

 script karma  Rating 5/2, Downloaded by 249    Comments, bugs, improvements  Vim wiki

created by
Lee Savide
script type
Recently, the abc music notation standard has received a large number of updates. That said, the syntax script for it has been insanely outdated, and doesn't work well with the current format that abc is now described by. I've begun a new project at https://bitbucket.org/laughingman182/abc-vim for updating this, and would also like to include a number of other features for the language, as well. I feel that there's a need to provide for one of the few formats of music notation that works well and is easy to learn.

The main reason I began this is because I don't like how music notation software is being overpowered by commercial software like Finale & Sibelius, and have yet to see a means of music notation that simply makes as much sense as abc music notation. For more info on the updates to abc music notation, go to http://abcnotation.com/, and more importantly, to http://abcnotation.com/learn/, so you can LEARN more. :3

Personally, I believe in a system of software that does nothing BUT teach you more about how to get what you want done quickly. Vim teaches how to edit text, THROUGH text, and abc music notation is made up of text. Since music is just as much a language as any other programming language out there, you actually learn a great deal more than just how to compose music; you learn how to program code. And they weren't even trying to teach that part, is what amazed me.

In future additions, I'd like to add functions, commands, omnicompletion, error checking, and pretty much every feature I can get out of Vim for this syntax.

Please send me emails on improvements!

======== NOTICE========

ABC standard Vim scripts
Copyright 2012 Lee Savide <leesavide@gmail.com> or <laughingman182@gmail.com>

Portions of this software were based on code from the ABNF description of
the ABC standard, written by Henrik Norbeck, found at
http://www.norbeck.nu/abc/bnf/abc20bnf.htm, or as a text file at
http://www.norbeck.nu/abc/bnf/abc20bnf.txt .

Additionally, I also host a project for keeping all the related projects to abc music notation in a common repo at http://code.google.com/p/abc-standard/. All the code there is owned by the respective developers who made it, and always gets uploaded "as-is" from being extracted from the archives straight from their sites to individual folders.

This software contains code derived from the ABC standard, version 2.1. The
standard is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 3.0 Unported license. Please read the
license terms at http://creativecommons.org/licenses/by-nc-sa/3.0/, and if
you wish to, read the full license deed at
http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode. Additionally,
the ABC standard now uses keywords that conform to RFC 2119, and as such,
the standard conforms to the following:

       The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
       "OPTIONAL" in this document are to be interpreted as described in
       RFC 2119.

In addition to the key words above, the key word "VOLATILE" is used to
indicate sections which are under active discussion and/or likely to change
in some future version of the standard. Any comments used in the source
code of the Vim scripts included in this software also conform to the key
words as described above, and in RFC 2119.

Lastly, any documentation will also be under a license equal to or compatible
with the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported

Things I'd like to include support for:
* music21 (via python-enabled Vim)
* SuperCollider
* Csound
* Preview song in a spawned window, via Java (looking into porting eclim or similar, also considering Java-based PostScript viewers)
* "Indentation synchronization" - Make the spacing within a tune match according to bar lines. Vim is able to do it, I just have to figure out how.
* Regex support to read included tunes directly from tune selection directives("%%select", "%%tune", "%%voice", "%%clip", "%%break", etc.)
* Vocaloid (wishful thinking on my part)
* MikuMikuDance (for a tool to create placeholder events for song choreography)
* A microphone - to - abc tool. The idea is to be able to play an instrument in front of your computer and get the music notation right there as you play it. For that, I've begun a project: http://code.google.com/p/abc-voice/
* An integrated abc debugger. Also another project I'd like to spend time on, if possible.
* Some form of Gettext support for lyrics, and for other text in abc files, i.e., any text that isn't code, a comment, or a chord symbol.
install details
For now, copy the abc.vim script to your $VIMRUNTIME or ~/.vim/syntax/ folder.
On Windows, copy abc.vim to $VIMRUNTIME\vimfiles\syntax\.

I'm looking into using Vimball, so this will get easier to use after I get a decent set of scripts working. Currently, I'm not very good with getting Vimball to do what I want. Sorry.

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
abc.vim 1.0 2012-12-03 7.3 Lee Savide Syntax script only; Currently the only working script at the moment.
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
SourceForge.net Logo