2015年11月1日日曜日

Google App Script / MusicXML メタ情報の追加

ライブラリ更新

第二引数に関数を渡してルート要素を操作できるように変更。ここでヘッダ情報を追加する。
特定の情報のみに対応した場合、他の情報を追加したい時、ライブラリ側の対応が必要になるので、
コールバック関数を渡す形式にして、自由に情報を追加できるようにした。


var addHeaderCallback = function(root) {

  // ヘッダ情報のコンテナとなる identification要素を作成
  var identification = LibMusicXML.createIdentificationElement();
  
  // エンコーディングに関する情報
  var encoding = LibMusicXML.createEncodingElement({
    encoder: "",
    software: "",
    description: "",
  });

  // 独自情報を追記
  var misc = LibMusicXML.createMiscElement({
    "rm-version": "1.02",
    "rm-firstkey": "C",
    "rm-lastkey": "Cm",
  });

  // 各要素を親へ追加する
  identification.addContent(encoding);
  identification.addContent(misc);
  root.addContent(0, identification);

  // 題名と作業番号
  root.addContent(0, LibMusicXML.createWorkElement("TITLE", "1");

};

var xml = LibMusicXML.toMusicXML(LibMusicXML._flatten(rows), addHeaderCallback);

identification 要素へ追記するメタ情報としては、他に、"source", "rights", "relation" 等が有り、
Dublin Core を参考にしている。 参考サイト: Dublin Core: メタデータを記述するボキャブラリ

関数名が長いけど補完が効くので、識別子の部分を短くすれば、キータイプ量は減らせます。

0 件のコメント:

コメントを投稿