|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjp.crestmuse.cmx.filewrappers.CMXFileWrapper
jp.crestmuse.cmx.filewrappers.MusicXMLWrapper
public class MusicXMLWrapper
The MusicXMLWrapper class wraps a MusicXML document.
MusicXMLWrapperクラスは, MusicXMLドキュメントをラップします.
MusicXMLについては, ここや ここなどを参照してください. 本クラスでは, PartwiseとTimewiseのうち, Partwiseのみをサポートします. また, ここの要素から情報を取り出すNodeInterfaceについては, MusicXMLのすべての要素に対応しているわけではありません.
MusicXMLWrapperオブジェクトからデータを取り出すためには, 主に2つの方法が あります. 1つは, getPartListメソッドを用いる方法です. これを用いると, Partクラスの配列が得られます. Partクラスはpart要素から情報を取り出すためのクラスです. その後, 各Partオブジェクトに対してgetMeasureListメソッドを呼び出します. そうすると, 当該part要素内のmeasure要素をラップするMeasureオブジェクトの 配列が得られます. 同様に, 各Measureオブジェクトに対してgetMusicDataListメソッドを呼び出して 当該measure要素内の要素を得ます. getMusicDataListメソッドで返されるのはMusicDataクラスの配列ですが, 実際は, その要素に合わせてNoteクラスだったりAttributeクラスだったり ForwardクラスだったりBackupクラスだったりしますので, instanceof演算子でどのクラスのインスタンスなのかを確かめた上で ダウンキャストしてすべき処理を行います. もう1つの方法は, processNotePartwiseメソッドを用いる方法です. NoteHandlerPartwiseインターフェイスを実装したクラスに 自分のしたい処理を記述して, processNotePartwiseメソッドの引数に渡すと, 上記の処理を自動的に行ってくれます.
MusicXMLWrapperクラスでは, 各音符(Noteオブジェクト)を二分木に納めたTreeViewを 提供します. TreeViewで提供されている各種メソッドを利用することで, 指定した音(Noteオブジェクト)の次の音や同時になる他の音を探索することが可能です. 現在のバージョンでは, TreeViewは2種類提供されます. 1つがPartwiseTreeViewで, パートごとに別々の二分木を構成したものです. このTreeViewでは, backup要素を使って声部をわけてある場合に, 枝わかれするように要素が追加されていきます. これは, ある音に対して同一パート(あるいは声部内)で次の音や前の音をたどるのに 便利です. もう1つがTimewiseTreeViewで, すべてのパートの音を1つの二分木にまとめて 格納したものです. これは, ある音と同時に鳴る音をパートや声部を越えてすべて洗い出すといった場面で 便利です. また, スラーを自動的に検出し, スラーに続する音の列もTreeViewで管理します.
スラーもTreeViewを利用して管理します. スラーごとにTreeViewオブジェクトが生成され, たとえば指定した音からはじまるスラーに対応するTreeViewのリストを取得するといった ことが簡単にできます. ただし, 現在のバージョンでは声部にまたがるスラーは対応しておらず, 無視されます.
入れ子のクラスの概要 | |
---|---|
class |
MusicXMLWrapper.Attributes
Attributes要素から情報を取り出すためのメソッドを提供します. |
class |
MusicXMLWrapper.Backup
backup要素から情報を取り出すためのメソッドを提供します. |
class |
MusicXMLWrapper.BarLine
|
class |
MusicXMLWrapper.Direction
Direction要素から情報を取り出すためのメソッドを提供します. |
class |
MusicXMLWrapper.DirectionType
DirectionType要素から情報を取り出すためのメソッドを提供します. |
class |
MusicXMLWrapper.Forward
forward要素から情報を取り出すためのメソッドを提供します. |
class |
MusicXMLWrapper.Measure
This class provides methods for getting information from a measure element. |
class |
MusicXMLWrapper.MusicData
MusicXMLドキュメントの要素のうち, score.dtdでmusic-dataエンティティに 指定されているもの, 具体的には note, backup, forward, direction, attributes, harmony, figured-bass, print, sound, barline, grouping, link, bookmark をラップするクラスです. |
class |
MusicXMLWrapper.Notations
notations要素内で記述される情報を取り出すためのメソッドを提供します. |
class |
MusicXMLWrapper.Note
note要素からの情報を取り出すためのメソッドを提供します. |
class |
MusicXMLWrapper.Part
This class provides methods for getting information from a "part" element. |
class |
MusicXMLWrapper.StartStopElement
StartStopElementクラスは, type属性とnumber属性を持ち, type属性はstart, stop, continueのいずれか, number属性は正の整数を 値に持つ, という性質を満たす要素をラップするクラスです. |
フィールドの概要 |
---|
クラス jp.crestmuse.cmx.filewrappers.CMXFileWrapper から継承されたフィールド |
---|
catalogFileName, linkmanager |
コンストラクタの概要 | |
---|---|
MusicXMLWrapper()
|
メソッドの概要 | |
---|---|
protected void |
analyze()
各種処理の準備として, 内部で各種ノートビューを作成します. |
int |
getCumulativeTicks(int measure,
int ticksPerBeat)
|
java.util.List<MusicXMLWrapper.Attributes> |
getMeasureAttributesList(int partIndex)
小節のattributeタグを取得します. |
java.io.InputStream |
getMIDIInputStream()
|
java.lang.String |
getMovementTitle()
楽曲タイトルを取得します. |
java.util.List<? extends TreeView<MusicXMLWrapper.Note>> |
getNoteViewsEndingWith(MusicXMLWrapper.Note note)
|
java.util.List<? extends TreeView<MusicXMLWrapper.Note>> |
getNoteViewsIncluding(MusicXMLWrapper.Note note)
|
java.util.List<? extends TreeView<MusicXMLWrapper.Note>> |
getNoteViewsStartingWith(MusicXMLWrapper.Note note)
|
MusicXMLWrapper.Part[] |
getPartList()
Returns the array of the parts contained in the MusicXML document. |
java.util.List<SimpleNoteList> |
getPartwiseNoteList(int ticksPerBeat)
|
java.util.List<TreeView<MusicXMLWrapper.Note>> |
getPartwiseNoteView()
Returns the partwise note view. |
java.util.List<? extends TreeView<MusicXMLWrapper.Note>> |
getSlurredNoteViews(byte number)
|
TreeView<MusicXMLWrapper.Note> |
getTimewiseNoteView()
Returns the non-partwise note view. |
boolean |
hasMovementTitle()
|
SCCXMLWrapper |
makeDeadpanSCCXML(int ticksPerBeat)
|
void |
makeDeadpanSCCXML(SCCXMLWrapper dest,
int ticksPerBeat)
|
void |
processNotePartwise(NoteHandlerPartwise handler)
Repeats the same process for each of music data in the MusicXML document based on the specified handler. |
void |
processNotes(CommonNoteHandler h)
|
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public MusicXMLWrapper()
メソッドの詳細 |
---|
public void processNotePartwise(NoteHandlerPartwise handler)
Repeats the same process for each of music data in the MusicXML document based on the specified handler.
指定されたハンドラに基づいて, MusicXMLドキュメントに含まれる各音楽要素に対して 同じ処理を繰り返します. このメソッドは基本的には以下の処理と等価です.
for (Part part : getPartList()) { handler.beginPart(part, this); for (Measure measure : part.getMeasureList()) { handler.beginMeasure(measure, this); for (MusicData md : measure.getMusicDataList()) handler.processMusicData(md, this); handler.endMeasure(measure, this); } handler.endPart(part, this); }
public void processNotes(CommonNoteHandler h)
PianoRollCompatible
内の processNotes
public MusicXMLWrapper.Part[] getPartList()
Returns the array of the parts contained in the MusicXML document.
MusicXMLドキュメントに含まれるパート(Partオブジェクト)の配列を返します.
public SCCXMLWrapper makeDeadpanSCCXML(int ticksPerBeat) throws java.io.IOException
java.io.IOException
public void makeDeadpanSCCXML(SCCXMLWrapper dest, int ticksPerBeat) throws java.io.IOException
java.io.IOException
public java.util.List<TreeView<MusicXMLWrapper.Note>> getPartwiseNoteView() throws javax.xml.transform.TransformerException
Returns the partwise note view.
パートごとのノートビューを取得します.
javax.xml.transform.TransformerException
public TreeView<MusicXMLWrapper.Note> getTimewiseNoteView() throws javax.xml.transform.TransformerException
Returns the non-partwise note view.
パートごとでないノートビュー(すべての音符を1つのノートビューに納めてある)を 取得します.
javax.xml.transform.TransformerException
public java.util.List<MusicXMLWrapper.Attributes> getMeasureAttributesList(int partIndex)
小節のattributeタグを取得します.
partIndex
- 声部番号(0始まり)
public java.lang.String getMovementTitle()
楽曲タイトルを取得します.
public boolean hasMovementTitle()
public int getCumulativeTicks(int measure, int ticksPerBeat)
public java.util.List<SimpleNoteList> getPartwiseNoteList(int ticksPerBeat) throws javax.xml.transform.TransformerException
PianoRollCompatible
内の getPartwiseNoteList
javax.xml.transform.TransformerException
public java.io.InputStream getMIDIInputStream() throws java.io.IOException, javax.xml.transform.TransformerException, org.xml.sax.SAXException, javax.xml.parsers.ParserConfigurationException
PianoRollCompatible
内の getMIDIInputStream
java.io.IOException
javax.xml.transform.TransformerException
org.xml.sax.SAXException
javax.xml.parsers.ParserConfigurationException
protected void analyze()
CMXFileWrapper
内の analyze
public java.util.List<? extends TreeView<MusicXMLWrapper.Note>> getSlurredNoteViews(byte number)
public java.util.List<? extends TreeView<MusicXMLWrapper.Note>> getNoteViewsIncluding(MusicXMLWrapper.Note note)
public java.util.List<? extends TreeView<MusicXMLWrapper.Note>> getNoteViewsStartingWith(MusicXMLWrapper.Note note)
public java.util.List<? extends TreeView<MusicXMLWrapper.Note>> getNoteViewsEndingWith(MusicXMLWrapper.Note note)
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |