commit 01ea98f703f292e6ffaaafd481bd7cf45dc6cebc Author: Jezra Date: Tue Aug 13 19:30:00 2013 -0700 Initialized repo diff --git a/README.md b/README.md new file mode 100644 index 0000000..6a51a5e --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +bwwtolily will attempt to convert a .bww or .bmw file to a lilypond +(http://lilypond.org) parsable file. Not all of the embellishments +get converted properly, this is espessially true with piobaireachd, +and the program will list the embellishments that were not converted. + +If you recognize an embellishment that isn't being parsed, please +send an email regarding the embellishment to jezra@jezra.net and I +will try to add the embellishment to the application. + +usage: +>bwwtolily -i /path/to/a/bww/file + +optionally, using the "-l" flag will try to run lilypond on the +created .ly file +example: +>bwwtolily -i /path/to/bww/file -l + diff --git a/bwwtolily.py b/bwwtolily.py new file mode 100755 index 0000000..f31287f --- /dev/null +++ b/bwwtolily.py @@ -0,0 +1,406 @@ +#!/usr/bin/env python +''' +bwwtolily: will convert a bww file to a lilypond file +copyright: 2008 Jezra Lickter +GPL v3 +''' +from optparse import OptionParser +import sys,os,re,subprocess + +version = "0.4.0" + +#define the class that will convert a bww file to a lilypond file +class bwwtolily : + + def __init__(self,addmidi=False): + self.tune_elements = [] + self.most_recent_note = 0 + self.in_note_group=False + self.slur_tie_pending = False + self.last_group_close=0 + '''compile a few regex queries''' + #make a regex to determine if something is a lilypond note + self.regex_lilynote= re.compile("[abcdefgAG][0-9]*") + #try to determine the time signature + self.sig_regex = re.compile("([0-9])_([0-9])") + #a regex to find notes + self.regex_note_info=re.compile("(?P[A-Z]+)(?P[a-z]*)_(?P