MusicXMLの修正
楽譜ファイルをやり取りするときに、MusicXMLをやり取りすることがあると思いますが、ソフトウェアの互換性が結構厳しかったりします。
MIDIで受け取ってもよいのですが、楽譜がずれたり面倒なので、手作業でソフトウェアの互換性がうまくいっていない部分に対応してみました。
ちなみにGuitarProで生成されたxmlをFinaleで読み込んでみました。
XML/MusicXMLとは?
Extensible Markup Languageの略で、<XXXX>と</XXXX>のようなタグで囲んで文字列を修飾する記法です。
MusicXMLはこのXML形式の楽譜表記用フォーマットです。
MusicXML修正
まずは手に入れた.xmlを.musicxmlに無理やり変えてみます。
なんか8行目がおかしいらしい
エディターで開くとたしかに化けているので消してあげる
こんどは68行目がおかしい
なんだか変なスペースが空いている
正しくは以下のようになっているはず
200パートくらいあったので、一括置換
次は1869行目
ギターなどで使用するフレット番号要素ですが、このエラーが出ていたところのパートはピアノでした。おそらく元ファイルの採譜者がギタリストなので、ギター譜でもチェックできるようにしていたのでしょうが、ピアノとギターの音域の違いの関係でマイナスという不正な値が入っていたという感じかと思います。
これも正規表現で一括置換します。
<fret>.*</fret>\n
はい、無事に楽譜が表示されました。
まとめ
XMLだと拍子や拍が正確に記述でき、また楽譜上の表現記号(スラーとかクレッシェンドとか)も受け継げるので便利です。
ただソフトウェアの互換性が甘いところがあるので、今回のような場合は手作業で少し修正してみても良さそうです。