1 / 22

MusicXML(4R) 形式について

MusicXML(4R) 形式について. 2006 年 6 月 2 日. 野池賢二. 目次. MusicXML と MusicXML(4R) の違い 表情情報つきの MusicXML の作り方 Rencon キットについて. MusicXML とは. MusicXML とは, XML というデータ表現形式を用いた「楽譜を記述するための記述仕様」である.主に,西洋音楽の五線譜やタブ譜を記述することを目的としている http://www.recordare.com/

tannar
Download Presentation

MusicXML(4R) 形式について

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MusicXML(4R) 形式について 2006年6月2日 野池賢二

  2. 目次 • MusicXML と MusicXML(4R) の違い • 表情情報つきの MusicXML の作り方 • Rencon キットについて

  3. MusicXML とは • MusicXML とは,XML というデータ表現形式を用いた「楽譜を記述するための記述仕様」である.主に,西洋音楽の五線譜やタブ譜を記述することを目的としている • http://www.recordare.com/ • MusicXML のチュートリアル(入門書)は,http://www.recordare.com/xml/musicxml-tutorial.pdfである.楽譜の記述方法についての基本的な事項が解説されている • MusicXML の全仕様は,MusicXML の DTD にコメントとして書かれている • http://www.recordare.com/downloads.html#DTD

  4. MusicXML(4R) とは • MusicXML(4R) とは,MusicXML の仕様のうち,表情情報の記述方式を MIDI 指向に変更した仕様のこと • MusicXML の表情情報の記述形式は,チュートリアルではなく,DTD にだけ書かれている.(note.dtd) • MusicXML(4R) の表情情報の記述形式は, • Keiji Hirata, Kenzi Noike, and Haruhiro Katayose: • Proposal for a Performance Data Format, • IJCAI-03 Rencon Workshop, 2003. • http://www.brl.ntt.co.jp/people/hirata/Papers/ijcai03-rencon-xml.pdf • に書かれている

  5. MusicXML の基本構造 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"> <score-partwise> </score-partwise> パート構成の情報 <part-list> <score-part id="P1"> <part-name>Music</part-name> </score-part> </part-list> <note> <pitch> <step>C</step> <octave>4</octave> </pitch> <duration>4</duration> <type>whole</type> </note> </measure> </part> 音符ひとつ分の情報 パートひとつ分の情報 <part id="P1"> <measure number="1"> <attributes> <divisions>1</divisions> <key> <fifths>0</fifths> </key> <time> <beats>4</beats> <beat-type>4</beat-type> </time> <clef> <sign>G</sign> <line>2</line> </clef> </attributes> 小節ひとつ分の情報 四分音符あたりの時間分解能 調号の #(+), b(-) の数 拍子記号の分子 拍子記号の分母 (”Hello World” in MusicXML, MusicXML 1.1 Tutorial,http://www.recordare.com/xml/musicxml-tutorial.pdf, pp.11-14, 2006. から引用,加筆)

  6. 表情情報の記述形式 • 表情情報は,音符や休符の属性値として記述する • 属性 attack 演奏打鍵時刻の楽譜打鍵時刻からのずれをデルタタイムで記述 • 属性 release 演奏離鍵時刻の楽譜離鍵時刻からのずれをデルタタイムで記述 • 属性 dynamics Note-On Velocity 値をそのまま記述 (MusicXML(4R) 仕様) • 属性 end-dynamics Note-Off Velocity 値をそのまま記述 (MusicXML(4R) 仕様) • dynamics, end-dynamics には,Rencon の現在の聴き比べ用音源である MIDI 音源に適した表現を用いる • (オリジナルの MusicXML の dynamics, end-dynamics は,Velocity 値 90 に対する比を記述する (dyn=100/90×Vel)) • デルタタイムの基準値は,要素 <divisions> で定義された四分音符あたりの分解能値

  7. オリジナルの記述形式を修正した理由 • Velocity 値 90 が,dynamics=“100” • dynamics 値 Dyn と,Velocity 値 Vel の関係は, • Dyn = 100/90 × Vel • Dyn から Vel を逆算したときに,計算誤差によって,もとの Vel とは異なる可能性がある • ↓ • 演奏音源が MIDI 音源である場合,Vel の値が 1 異なっただけで,意図と異なる音波形が使われる可能性がある • ↓ • エントリ者の音源と聴き比べ用音源とで,意図の異なる音になる 弱い音用の音波形 強い音用の音波形 ↑元の値 Vel = 65 1 127 Dyn から得た値↑ Vel = 64 Vel →

  8. MusicXML では曖昧な属性 release の定義の明確化 音強 音符の duration は元のまま +48 遅れて打鍵する (attack=“+48”) release は,+48 か 0 か? 時刻 MusicXML: release=“+48” なのか release=“0” なのか DTD の記述からは曖昧 MusicXML(4R): release=“+48”

  9. MusicXML(4R)記述例 (a) (b) +30 dynamics -46 112 t <note dynamics="112"attack="+30"release="-46"> <pitch> <step>E</step> <octave>4</octave> </pitch> <duration>960</duration> <voice>1</voice> <type>half</type> <stem>up</stem> </note> Note-Off Velocity 情報がないときは,end-dynamics 属性を書かなくてもよい

  10. 演奏速度(テンポ)の記述形式 • 演奏速度は,要素 <sound tempo=“QBPM”>で記述する • (QBPM: Quarter note Beat / Minute,(例)♩=120) • いつ,どのように記述するのかは,MusicXML(4R) でも未定義 • 候補1:曲頭で 1 度だけ記述できるようにする • 候補2:小節ごとに記述できるようにする • どちらでも,お互いに,完全に変換可能 • 実際の使いやすさについては,Kagurame-II が実装して評価してくださると思われる

  11. 表情情報つきの MusicXML の作り方 • 表情情報の編集,演奏,出力ができる既存のソフトウェアがない(なさそう) • 既存のソフトウェアやツールで表情情報なしの MusicXML を出力しておき,それに対して自作のツールで表情情報を付加する方法が簡単 MusicXML を 出力できる ソフトウェア (例:Dolet for Finale) MusicXML を入力とし, それに表情情報を 付加するソフトウェア (例:4Ru) 表情情報なし MusicXML 表情情報つき MusicXML

  12. 2006年5月26現在での既存の MusicXML 対応ソフトウェア 読み書き 書き出しだけ 読み込みだけ http://www.recordare.com/software.html

  13. 既存のソフトウェアの評価(独断) • Finale • Sibelius • 読み書き対応 • GUI • Recordare がプラグインソフト作成に力を入れている • ユーザが多く,よく使われているようだ • abc ツール群 • 読み込みだけ? • abc と呼ばれる MML を使ったツール群.コマンドラインツールが多い • 京大奥乃研ではよく使っているらしい? • SCOREMAKER • 書き出しだけ対応(岡さんに確認済み) • 河合楽器の楽譜認識ソフト.GUI. • Igor Engraver • LilyPond • Rosegarden • シェアウェア.GUI. • 入力(読み込み)だけ対応

  14. MusicXML(4R) に対応した研究ツール • 4Ru • http://noike.info/~kenzi/research/4Ru/4Ru.html • 入力,表示,演奏,簡易編集 • 既存の MusicXML に表情情報を付加することはできる • 新規に MusicXML を生成することは(まだ)できない • xml2mp3 • http://noike.info/~kenzi/cgi-bin/xml2mp3/ • SMF, MP3 に変換 • Kagurame-II • 芝浦工大の清水 厚志さん,対応作業中 • Ha-Hi-Hun • 関西学院大学の伊藤洋介さん,対応作業中? • COPER (対応予定?) • Yutaka (対応予定?)

  15. MusicXML(4R) 処理プログラミング • 規模の小さな加工,変換 • XSLT • SAXによるプログラミング • 通常の読み書き • DOM によるプログラミング • Xerces • Java, C++, Perl など • libxml2 • C

  16. Rencon キットについて • 表情付けコンテスト Rencon のための共通学習データ,共通評価データのセット • MusicXML(4R) 形式にて配布予定 • 片寄研 演奏 Deviation DB を変換予定 • 収録曲目未定(ショパン? ドビュッシー?) • ライブラリ,ツール? • ピアノロール表示 Java Applet • ???

  17. 直近での Rencon 開催が可能な機会 • 8 月 SIG-MUS の若手デモセッション • 10 月 CrestMuse デモ • MusicXML(4R) に対応した演奏表情付けシステムが複数あれば,同じ楽譜データに対する表情付けコンテストが試行できる • Kagurame-II は,境界情報 XML を手書き追加すれば,可能になるらしい • Ha-Hi-Hun は? • COPER は? • Yutaka は?

  18. おわりに • Rencon キットの記述形式である MusicXML(4R) の仕様を,MusicXML との違いという観点で述べた

  19. メモ

  20. XML 仕様差異図 オリジナルの MusicXML 表情情報の dynamics, end-dynamics 属性に,MIDI Velocity 90 を 100(%) としたときの比の値を書く. Dolet for Finale (MusicXML Plug-in) MusicXML 仕様のサブセットが読み書きできる(一部のタグや属性に見対応). 表情情報の編集,表示,それを反映した演奏ができない MusicXML(4R) 表情情報の dynamics, end-dynamics 属性に MIDI Velocity 値をそのまま書く. release 属性の仕様を厳密に定めてある.

  21. dynamics, end-dynamics 音強 四分音符 MIDI Velocity 64 時刻 MusicXML: dynamics=“71” dyn = 100/90 × Vel = 71.111… ≒ 71 MusicXML(4R): dynamics=“64”

  22. attack, release メトロノーム速度 ♩=120 (♩=500msec.) で division = 480 とすると, 音強 四分音符 500msec 100msec MusicXML: attack=“+48” release=“+48” なのか release=“0” なのか曖昧 (「flow of duration に基づく音符の stop time」に対して 複数通りの解釈が可能) MusicXML(4R): attack=“+48” release=“+48” 時刻

More Related