Support for Bagpipe Player (bww) files

• May 1, 2010 - 12:01
S5 - Suggestion

One of the 'default' apps used for bagpipe music is Bagpipe Player - a windows based application.
This thing cranks out bww files, which are plaintext files.

It would be wonderful if MuseScore would be able to read these files.


Currently I am implementing a simple bww to musicxml converter. Even though I intend it to be completely independent from MuseScore, as far as I am concerned it could be part of the MuseScore distribution. Progress is reasonable, but I may not be in time for the 0.9.6 release.

That's terrific news! Bagpipers all around the word will be really pleased!
How do you plan to do the integration with MuseScore? Your bww 2 musicxml is a command line tool or integrated in MuseScore via File -> Open.
I guess it will be hard to incorporate it in 0.9.6. RC1 has been published one week ago and appears to be quite stable. So the release will be out in the next10 days I guess. It's also hard to include new strings and have them translated.

For the time being it is a command line tool: bww in, musicxml out. There is no integration with MuseScore (yet). I want to be able to build a standalone version first, as that may find use beyond MuseScore. It is also easy to build, the only dependency is Qt.

Proof of concept version is done (although not good enough to publish yet). The converted MusicXML version of is attached, including a screenshot of what it looks like in MuseScore.

Attachment Size
AuldHoose.xml 27.16 KB
AuldHoose.png 197.97 KB

I hope this can be deployed as a plugin. The local bag pipers from my hometown will be delighted with this new opportunity. Thx Leon!

From a user experience perspective it would be better if the importer worked from the Open dialog like other importers rather than an isolated script in the plugin menu.

First version will be only the converter, but I will put the bww file reading part in a separate library. Next step is to also integrate that library into the normal file / open dialog. This will not take a lot of extra effort and we will have direct bww import into MuseScore and a separate converter from bww to musicxml without duplicate code.

Initial, incomplete, implementation of reading bww files is available in MuseScore as of SVN revision 3128. Please test and report any issues.

Unfortunatly, I can't compile lexer.cpp and the bww2mxml "package" on Windows. I got the following error :

C:\Musescore\mscore\bww2mxml\lexer.cpp:30:19: error: QRegExp: No such file or di
C:\Musescore\mscore\bww2mxml\lexer.cpp:31:19: error: QtDebug: No such file or di
In file included from C:\Musescore\mscore\bww2mxml\lexer.cpp:33:
C:\Musescore\mscore\bww2mxml\/lexer.h:30:19: error: QString: No such file or dir
C:\Musescore\mscore\bww2mxml\/lexer.h:31:23: error: QStringList: No such file or
C:\Musescore\mscore\bww2mxml\/lexer.h:32:23: error: QTextStream: No such file or
In file included from C:\Musescore\mscore\bww2mxml\/lexer.h:34,
from C:\Musescore\mscore\bww2mxml\lexer.cpp:33:
C:\Musescore\mscore\bww2mxml\/symbols.h:59: error: 'QString' does not name a typ
In file included from C:\Musescore\mscore\bww2mxml\lexer.cpp:33:
C:\Musescore\mscore\bww2mxml\/lexer.h:50: error: 'QString' does not name a type
C:\Musescore\mscore\bww2mxml\/lexer.h:52: error: 'QString' has not been declared

C:\Musescore\mscore\bww2mxml\/lexer.h:53: error: 'QTextStream' does not name a t
C:\Musescore\mscore\bww2mxml\/lexer.h:54: error: 'QString' does not name a type
C:\Musescore\mscore\bww2mxml\/lexer.h:55: error: 'QStringList' does not name a t
C:\Musescore\mscore\bww2mxml\/lexer.h:57: error: 'QString' does not name a type
C:\Musescore\mscore\bww2mxml\lexer.cpp: In constructor 'Bww::Lexer::Lexer(QIODev
C:\Musescore\mscore\bww2mxml\lexer.cpp:42: error: class 'Bww::Lexer' does not ha
ve any field named 'in'
C:\Musescore\mscore\bww2mxml\lexer.cpp:42: error: class 'Bww::Lexer' does not ha
ve any field named 'value'
C:\Musescore\mscore\bww2mxml\lexer.cpp:44: error: 'qDebug' was not declared in t
his scope
C:\Musescore\mscore\bww2mxml\lexer.cpp: In member function 'void Bww::Lexer::get
C:\Musescore\mscore\bww2mxml\lexer.cpp:57: error: 'qDebug' was not declared in t
his scope
C:\Musescore\mscore\bww2mxml\lexer.cpp:60: error: 'list' was not declared in thi
s scope

Looks like the header files cannot be found. Of course, on my SuSE box it works OK and I believe I am using a standard C++ idiom for include files. Nevertheless, could you try replacing "#include QRegExp" by "#include qregexp.h" and check if that helps ? (square brackets removed as the website does not handle that)

Does using only Qt works ? (in the bww2mxml directory you can do "qmake; make" to build the command line converter). This excludes MuseScore settings as a possible cause.

Does Qt itself (or its demos) build OK ? TrollTech also uses "#include QRegExp" etc.

I am unable to help here, I cannot build on WIndows. Furthermore, I will be unable to mail for about a week. Apologies for the trouble I am causing you.

Title Support for bww files Support for Bagpipe Player (bww) files
Status (old) active fixed

bww2mxml compiles on Windows in latest trunk.