22
MusicXML(4R) 形形形形形形 形形形形 2006 形 6 形 2 形

MusicXML(4R) 形式について

  • Upload
    tannar

  • View
    56

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

MusicXML(4R) 形式について

野池賢二

2006 年 6 月 2 日

目次

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

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

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

• に書かれている

<note> <pitch> <step>C</step> <octave>4</octave> </pitch> <duration>4</duration> <type>whole</type> </note> </measure> </part></score-partwise>

<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>

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> <part-list> <score-part id="P1"> <part-name>Music</part-name> </score-part> </part-list>

(” Hello World” in MusicXML, MusicXML 1.1 Tutorial,http://www.recordare.com/xml/musicxml-tutorial.pdf, pp.11-14, 2006. から引用,加筆)

音符ひとつ分の情報

パートひとつ分の情報

パート構成の情報

小節ひとつ分の情報

拍子記号の分子

拍子記号の分母

調号の #(+), b(-) の数

四分音符あたりの時間分解能

表情情報の記述形式• 表情情報は,音符や休符の属性値として記述する

属性 attack演奏打鍵時刻の楽譜打鍵時刻からのずれをデルタタイムで記述

属性 release演奏離鍵時刻の楽譜離鍵時刻からのずれをデルタタイムで記述

属性 dynamicsNote-On Velocity 値をそのまま記述 (MusicXML(4R) 仕様 )

属性 end-dynamicsNote-Off Velocity 値をそのまま記述 (MusicXML(4R) 仕様 )

• dynamics, end-dynamics には, Rencon の現在の聴き比べ用音源である MIDI 音源に適した表現を用いる

(オリジナルの MusicXML の dynamics, end-dynamics は,Velocity 値 90 に対する比を記述する (dyn=100/90×Vel) )

デルタタイムの基準値は,要素 <divisions> で定義された四分音符あたりの分解能値

• Velocity 値 90 が, dynamics=“100”• dynamics 値 Dyn と, Velocity 値 Vel の関係は,• Dyn = 100/90 × Vel• Dyn から Vel を逆算したときに,計算誤差によって,

もとの Vel とは異なる可能性がある• ↓

• 演奏音源が MIDI 音源である場合, Vel の値が 1 異なっただけで,意図と異なる音波形が使われる可能性がある

• ↓• エントリ者の音源と聴き比べ用音源とで,意図の異な

る音になる

オリジナルの記述形式を修正した理由

弱い音用の音波形 強い音用の音波形

1 127 Vel →↑ 元の値

Vel = 65

Dyn から得た値↑

Vel = 64

MusicXML では曖昧な属性 release の定義の明確化

時刻

音強

+48 遅れて打鍵する

( attack=“+48” )

MusicXML:

  release=“+48” なのか release=“0” なのか DTD の記述からは曖昧

MusicXML(4R):

  release=“+48”

音符の duration は元のまま

release は, +48 か 0 か ?

MusicXML(4R) 記述例

<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>

dyna

mic

s +30

-46

112

(a)

(b)

t

Note-Off Velocity 情報がないときは,end-dynamics 属性を書かなくてもよい

演奏速度(テンポ)の記述形式

演奏速度は,要素 <sound tempo=“QBPM”> で記述する

(QBPM: Quarter note Beat / Minute , ( 例 )♩=120)

いつ,どのように記述するのかは, MusicXML(4R) でも未定義

候補1:曲頭で 1 度だけ記述できるようにする 候補2:小節ごとに記述できるようにする

どちらでも,お互いに,完全に変換可能 実際の使いやすさについては, Kagurame-II が実装

して評価してくださると思われる

表情情報つきの MusicXML の作り方• 表情情報の編集,演奏,出力ができる既存のソフトウェアがない(なさそう)

• 既存のソフトウェアやツールで表情情報なしの MusicXML を出力しておき,それに対して自作のツールで表情情報を付加する方法が簡単

MusicXML を出力できるソフトウェア

(例: Dolet for Finale )

MusicXML を入力とし,それに表情情報を

付加するソフトウェア(例: 4Ru )

表情情報なしMusicXML

表情情報つきMusicXML

2006 年 5 月 26 現在での既存の MusicXML 対応ソフトウェア

http://www.recordare.com/software.html

読み書き

書き出しだけ

読み込みだけ

既存のソフトウェアの評価(独断)• Finale• Sibelius

– 読み書き対応– GUI– Recordare がプラグインソフト作成に力を入れている– ユーザが多く,よく使われているようだ

• abc ツール群– 読み込みだけ?– abc と呼ばれる MML を使ったツール群.コマンドラインツールが多い

– 京大奥乃研ではよく使っているらしい?• SCOREMAKER

– 書き出しだけ対応(岡さんに確認済み)– 河合楽器の楽譜認識ソフト. GUI .

• Igor Engraver• LilyPond• Rosegarden

– シェアウェア. GUI .– 入力(読み込み)だけ対応

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 (対応予定?)

MusicXML(4R) 処理プログラミング

• 規模の小さな加工,変換– XSLT– SAX によるプログラミング

• 通常の読み書き– DOM によるプログラミング

• Xerces– Java, C++, Perl など

• libxml2– C

Rencon キットについて

• 表情付けコンテスト Rencon のための共通学習データ,共通評価データのセット

• MusicXML(4R) 形式にて配布予定–片寄研 演奏 Deviation DB を変換予定–収録曲目未定(ショパン? ドビュッシー?)

• ライブラリ,ツール?–ピアノロール表示 Java Applet– ???

直近での Rencon 開催が可能な機会

• 8 月 SIG-MUS の若手デモセッション• 10 月 CrestMuse デモ

• MusicXML(4R) に対応した演奏表情付けシステムが複数あれば,同じ楽譜データに対する表情付けコンテストが試行できる

– Kagurame-II は,境界情報 XML を手書き追加すれば,可能になるらしい

– Ha-Hi-Hun は?– COPER は?– Yutaka は?

おわりに• Rencon キットの記述形式である MusicXML

(4R) の仕様を, MusicXML との違いという観点で述べた

メモ

XML 仕様差異図オリジナルの MusicXML

表情情報の dynamics, end-dynamics 属性に, MIDI Velocity 90 を 100(%) としたときの比の値を書く.

Dolet for Finale (MusicXML Plug-in)

MusicXML 仕様のサブセットが読み書きできる(一部のタグや属性に見対応).

表情情報の編集,表示,それを反映した演奏ができない

MusicXML(4R)

表情情報の dynamics, end-dynamics 属性に MIDI Velocity 値をそのまま書く.

release 属性の仕様を厳密に定めてある.

dynamics, end-dynamics

時刻

音強

MIDI Velocity 64

MusicXML: dynamics=“71”

dyn = 100/90 × Vel = 71.111… 71≒

MusicXML(4R): dynamics=“64”

四分音符

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”