(57)【要約】【課題】ユーザーによるデータ修正の負担を伴うことなく、楽譜データへの修正を適切に反映させる。【解決手段】入力したＭＩＤＩデータに基づいて楽譜データを生成し（Ｓ１００，１１０）、生成した楽譜データから変換した印刷データに基づいて用紙に楽譜画像を印刷し（Ｓ１２０〜１４０）、印刷した楽譜画像になされたユーザーの手書きの修正を用紙を介して読み取ってスキャンデータを生成し（Ｓ１８０〜２００）、生成したスキャンデータに基づいて手書きの修正箇所を検出し（Ｓ２１０）、検出した修正が拍数を変更する場合には拍数を調整しながら楽譜データへ順次修正内容を反映させて楽譜データを修正してから（Ｓ２２０〜２７０）、修正後の楽譜データから変換した印刷データに基づいて用紙に修正後の楽譜画像を形成する（Ｓ１２０〜１４０）。【選択図】図２
2011180326.tif 000002
【特許請求の範囲】
【請求項１】
画像データに基づいて媒体に画像を形成する画像形成手段と、
媒体に形成された画像を読み取って読取データを生成する画像読取手段と、
楽曲の演奏に関するデータに基づいて楽譜の記述規則に従って楽譜データを生成する楽譜データ生成手段と、
前記生成された楽譜データを前記画像データに変換し該変換した画像データに基づいて媒体に楽譜画像を形成するよう前記画像形成手段を制御し、前記形成された楽譜画像になされたユーザーの手書きの修正を前記媒体を介して読み取って前記読取データを生成するよう前記画像読取手段を制御し、前記生成された読取データに基づいて前記手書きの修正の内容を解析し該解析した修正の内容に基づいて前記記述規則に照らした正否の判定を伴って前記楽譜データを修正する楽譜データ修正手段と、
該修正された楽譜データを出力する楽譜データ出力手段と
を備える画像形成装置。
【請求項２】
前記楽譜データ修正手段は、前記楽譜データの修正により小節内の拍数が変更される場合には、該修正後の拍数が前記楽譜データの拍子に関する情報から定まる１小節当たりの基準拍数に一致するか否かに基づいて前記正否の判定を行なう手段である請求項１記載の画像形成装置。
【請求項３】
前記楽譜データ修正手段は、前記修正後の拍数が前記基準拍数に一致しない場合には、修正の対象となる小節と該小節に続く所定数の小節との間で拍数を調整する手段である請求項２記載の画像形成装置。
【請求項４】
前記楽譜データ修正手段は、前記修正後の拍数が前記基準拍数に対して過剰となる場合には、前記修正の対象となる小節と前記所定数の小節との間で先の小節の末尾から過剰分の拍数に相当する音符や休符を選択して後の小節の先頭に移動させて拍数を調整し、前記修正後の拍数が前記基準拍数に対して不足となる場合には、前記修正の対象となる小節と前記所定数の小節との間で後の小節の先頭から先の小節の不足分の拍数に相当する音符や休符を選択して該先の小節の末尾に移動させて拍数を調整する手段である請求項３記載の画像形成装置。
【請求項５】
前記楽譜データ修正手段による拍数の調整において、前記過剰分の拍数や前記不足分の拍数に相当する音符や休符の選択ができない場合や前記所定数の小節のうち最後尾の小節の拍数が前記基準拍数に一致しないものとなった場合に、ユーザーにエラーを報知するエラー報知手段を備える請求項４記載の画像形成装置。
【請求項６】
前記楽譜データ出力手段は、前記修正された楽譜データを前記画像データに変換し該変換した画像データに基づいて媒体に修正後の楽譜画像を形成するよう前記画像形成手段を制御することにより出力する手段である請求項１ないし５いずれか１項に記載の画像形成装置。
【請求項７】
請求項１ないし６いずれか１項に記載の画像形成装置であって、
前記媒体に形成された楽譜画像の色とは異なる色で前記手書きの修正をするようユーザーに指示を出力する指示出力手段を備え、
前記楽譜データ修正手段は、前記生成された読取データのうち前記楽譜画像の形成元の画像データに含まれる色とは異なる部分を前記手書きの修正として解析する手段である
画像形成装置。
【請求項８】
請求項１ないし７いずれか１項に記載の画像形成装置であって、
電子楽器との間でＭＩＤＩデータのやり取りが可能なＭＩＤＩインターフェースを備え、
前記楽譜データ生成手段は、前記ＭＩＤＩインターフェースを介して入力されたＭＩＤＩデータに基づいて前記楽譜データを生成する手段である
画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置に関する。
【背景技術】
【０００２】
従来より、ＳＭＦ（Standard MIDI File）などの演奏データを取り扱い可能な装置が提案されている（例えば、特許文献１参照）。この装置では、ＳＭＦのデータを表示装置に楽譜を表示するための表示用データに変換する際には、汎用言語で記述された楽譜論理データに変換することで、表示装置の種類によらず、表示用データを容易に処理して楽譜を表示することができるとしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１００７４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した装置では、表示装置におけるデータ処理を容易なものとすることができるものの、表示された楽譜に対してユーザーが何らかの修正を加えたい場合には、ユーザー自らが楽譜論理データを修正しなければならない。このため、ユーザーによっては、修正作業が大きな負担となる場合がある。
【０００５】
本発明の画像形成装置は、ユーザーによるデータ修正の負担を伴うことなく、楽譜データへの修正を適切に反映させることを主目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像形成装置は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明の画像形成装置は、
画像データに基づいて媒体に画像を形成する画像形成手段と、
媒体に形成された画像を読み取って読取データを生成する画像読取手段と、
楽曲の演奏に関するデータに基づいて楽譜の記述規則に従って楽譜データを生成する楽譜データ生成手段と、
前記生成された楽譜データを前記画像データに変換し該変換した画像データに基づいて媒体に楽譜画像を形成するよう前記画像形成手段を制御し、前記形成された楽譜画像になされたユーザーの手書きの修正を前記媒体を介して読み取って前記読取データを生成するよう前記画像読取手段を制御し、前記生成された読取データに基づいて前記手書きの修正の内容を解析し該解析した修正の内容に基づいて前記記述規則に照らした正否の判定を伴って前記楽譜データを修正する楽譜データ修正手段と、
該修正された楽譜データを出力する楽譜データ出力手段と
を備えることを要旨とする。
【０００８】
この本発明の画像形成装置では、楽曲の演奏に関するデータに基づいて楽譜の記述規則に従って楽譜データを生成し、生成した楽譜データを画像データに変換し変換した画像データに基づいて媒体に楽譜画像を形成するよう画像形成手段を制御し、楽譜画像になされたユーザーの手書きの修正を媒体を介して読み取って読取データを生成するよう画像読取手段を制御し、読取データに基づいて手書きの修正の内容を解析し解析した修正の内容に基づいて記述規則に照らした正否の判定を伴って楽譜データを修正し、修正した楽譜データを出力する。これにより、楽譜を修正する場合には、媒体に形成された楽譜画像に手書きで修正を行なえばよく、ユーザー自らが楽譜データを変更する必要がない。また、楽譜の記述規則に照らした正否の判定を伴って楽譜データを修正するから、修正内容を単に反映させるものに比して適切に反映することができる。この結果、ユーザーによるデータ修正の負担を伴うことなく、楽譜データへの修正を適切に反映させることができる。
【０００９】
また、本発明の画像形成装置において、前記楽譜データ修正手段は、前記楽譜データの修正により小節内の拍数が変更される場合には、該修正後の拍数が前記楽譜データの拍子に関する情報から定まる１小節当たりの基準拍数に一致するか否かに基づいて前記正否の判定を行なう手段であるものとすることができる。こうすれば、楽譜の修正として音符や休符の追加や削除などをした場合に、ユーザーが修正後の小節内の拍数を確認しなくてもよいため、修正時のユーザーの負担を低減させることができる。この態様の本発明の画像形成装置において、前記楽譜データ修正手段は、前記修正後の拍数が前記基準拍数に一致しない場合には、修正の対象となる小節と該小節に続く所定数の小節との間で拍数を調整する手段であるものとすることができる。こうすれば、ユーザーの負担をさらに低減させることができる。また、この態様の本発明の画像形成装置において、前記楽譜データ修正手段は、前記修正後の拍数が前記基準拍数に対して過剰となる場合には、前記修正の対象となる小節と前記所定数の小節との間で先の小節の末尾から過剰分の拍数に相当する音符や休符を選択して後の小節の先頭に移動させて拍数を調整し、前記修正後の拍数が前記基準拍数に対して不足となる場合には、前記修正の対象となる小節と前記所定数の小節との間で後の小節の先頭から先の小節の不足分の拍数に相当する音符や休符を選択して該先の小節の末尾に移動させて拍数を調整する手段であるものとすることができる。さらに、この態様の本発明の画像形成装置における前記楽譜データ修正手段による拍数の調整において、前記過剰分の拍数や前記不足分の拍数に相当する音符や休符の選択ができない場合や前記所定数の小節のうち最後尾の小節の拍数が前記基準拍数に一致しないものとなった場合に、ユーザーにエラーを報知するエラー報知手段を備えるものとすることができる。こうすれば、小節内の拍数に過不足が生じることをユーザーに知らせることができる。
【００１０】
さらに、本発明の画像形成装置において、前記楽譜データ出力手段は、前記修正された楽譜データを前記画像データに変換し該変換した画像データに基づいて媒体に修正後の楽譜画像を形成するよう前記画像形成手段を制御することにより出力する手段であるものとすることもできる。こうすれば、手書き修正の内容が楽譜画像に反映されたか否かを媒体上で確認することができる。
【００１１】
そして、本発明の画像形成装置において、前記媒体に形成された楽譜画像の色とは異なる色で前記手書きの修正をするようユーザーに指示を出力する指示出力手段を備え、前記楽譜データ修正手段は、前記生成された読取データのうち前記楽譜画像の形成元の画像データに含まれる色とは異なる部分を前記手書きの修正として解析する手段であるものとすることもできる。こうすれば、手書き修正がなされた部分を速やかに特定して手書き修正の解析をスムーズに行なうことができる。
【００１２】
また、本発明の画像形成装置において、電子楽器との間でＭＩＤＩデータのやり取りが可能なＭＩＤＩインターフェースを備え、前記楽譜データ生成手段は、前記ＭＩＤＩインターフェースを介して入力されたＭＩＤＩデータに基づいて前記楽譜データを生成する手段であるものとすることができる。
【図面の簡単な説明】
【００１３】
【図１】マルチファンクションプリンター１０の構成の概略を示す構成図。
【図２】ＭＩＤＩモード時処理ルーチンの一例を示すフローチャート。
【図３】楽譜修正ルール画面５２ａの一例を示す説明図。
【図４】手書き修正された楽譜画像の一例を示す説明図。
【図５】修正反映処理の一例を示すフローチャート。
【図６】手書き記号の特定処理の一例を示すフローチャート。
【図７】拍数調整処理の一例を示すフローチャート。
【図８】拍数調整処理の対象となる小節を含む楽譜画像の一例を示す説明図。
【発明を実施するための形態】
【００１４】
次に、本発明の実施の形態を図面に基づいて説明する。図１は本発明の画像形成装置の一実施形態であるマルチファンクションプリンター１０の構成の概略を示す構成図である。マルチファンクションプリンター１０は、図示するように、印刷データに基づいて用紙Ｓに印刷を実行するプリンターユニット２０と、ガラス台（原稿台）３６に載置された書類を読み取るスキャナーユニット３０と、メモリーカードスロット４０に挿入されたメモリーカード４２との間でデータを格納したファイルの入出力を行なうメモリーカードコントローラー４４と、各種情報を表示部５２に表示したりユーザーの指示をボタン群５４の操作を介して入力したりする操作パネル５０と、装置全体の制御を司るメインコントローラー６０とを備えている。このマルチファンクションプリンター１０では、プリンターユニット２０やスキャナーユニット３０，メモリーカードコントローラー４４，メインコントローラー６０がバス１２を介して互いに各種制御信号やデータのやり取りをすることができるよう構成されている。
【００１５】
プリンターユニット２０は、プリンターＡＳＩＣ２２とプリンター機構２４とを備えている。プリンターＡＳＩＣ２２は、プリンター機構２４を制御する集積回路であり、メインコントローラー６０から印刷指令を受けると、その印刷指令の対象となる画像の印刷データに基づいて用紙Ｓに印刷するようプリンター機構２４を制御する。また、プリンター機構２４は、印刷ヘッドから用紙Ｓへインクを吐出することにより印刷を行なう周知のインクジェット方式のカラープリンター機構として構成されている。
【００１６】
スキャナーユニット３０は、スキャナーＡＳＩＣ３２とスキャナー機構３４とを備えている。スキャナーＡＳＩＣ３２は、スキャナー機構３４を制御する集積回路であり、メインコントローラー６０からのスキャン指令を受けると、ガラス台３６に載置された書類を画像データとして読み取るようスキャナー機構３４を制御する。また、スキャナー機構３４は、周知のイメージスキャナーとして構成され、書類に向かって発光した後の反射光をレッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）の各色に分解してスキャンデータとする周知のカラーイメージセンサーを備えている。
【００１７】
メモリーカードコントローラー４４は、メモリーカードスロット４０に挿入されたメモリーカード４２との間でデータを格納したファイルの入出力を行なうものである。このメモリーカードコントローラー４４は、メモリーカードスロット４０にメモリーカード４２が接続されているとき、メモリーカード４２に記憶されているファイルを読み出してメインコントローラー６０に送信したりメインコントローラー６０からの命令を入力しその命令に基づいてメモリーカード４２にファイルを記憶したりする。
【００１８】
メインコントローラー６０は、ＣＰＵ６２を中心とするマイクロプロセッサーとして構成されており、各種処理プログラムや各種データ、各種テーブルなどを記憶したＲＯＭ６４と、一時的にスキャンデータや印刷データなどを記憶するＲＡＭ６６と、電源を切ってもデータを保持可能なフラッシュメモリー６７と、外部接続されるＭＩＤＩ（Musical Instrument Digital Interface）機器１００との間でＭＩＤＩデータの通信を可能とするＭＩＤＩインターフェース（Ｉ／Ｆ）６８と、操作パネル５０との通信を可能とする内部通信インターフェース（Ｉ／Ｆ）６９とを備えている。このメインコントローラー６０は、プリンターユニット２０やスキャナーユニット３０，メモリーカードコントローラー４４からの各種動作信号や各種検出信号を入力したり、ＭＩＤＩ機器１００からＭＩＤＩデータを入力したり、操作パネル５０のボタン群５４の操作に応じて発生する操作信号を入力したりする。また、メモリーカード４２からファイルを読み出してメインコントローラー６０へ出力する読出指令をメモリーカードコントローラー４４に出力したり、画像データの印刷を実行するようプリンターユニット２０に印刷指令を出力したり、操作パネル５０のボタン群５４のスキャン指令に基づいてガラス台３６に載置された書類を画像データとして読み取るようスキャナーユニット３０に読取指令を出力したり、ＭＩＤＩ機器１００にＭＩＤＩデータを出力したり、操作パネル５０に表示部５２の制御指令を出力したりする。なお、操作パネル５０のボタン群５４の操作により各種モードを選択可能となっており、選択可能なモードとしては、ガラス台３６に載置された書類をスキャンしてコピーするコピーモードやメモリーカード４２に記憶された画像データを用いて画像を印刷したり原稿をスキャンしてデータ化してメモリーカード４２に保存するメモリーカードモード，ＭＩＤＩ機器１００から入力されたＭＩＤＩデータを楽譜データに変換して楽譜画像を印刷したり印刷した楽譜画像に対するユーザーの修正を受け付けたりするＭＩＤＩモードなどがある。
【００１９】
次に、こうして構成された本実施形態のマルチファンクションプリンター１０の動作、特に、ＭＩＤＩモードにおける動作について説明する。図２は、メインコントローラー６０のＣＰＵ６２により実行されるＭＩＤＩモード時処理ルーチンの一例を示すフローチャートである。このルーチンは、ＭＩＤＩ機器１００がＭＩＤＩＩ／Ｆ６８に接続されると共に操作パネル５０のボタン群５４の操作によりＭＩＤＩモードが選択されたときに実行される。
【００２０】
ＭＩＤＩモード時処理が実行されると、メインコントローラー６０のＣＰＵ６２は、まず、ＭＩＤＩＩ／Ｆを介してＭＩＤＩ機器１００からＭＩＤＩデータを入力し（ステップＳ１００）、入力したＭＩＤＩデータに基づいて音符や休符，変化記号や演奏記号などを楽譜の記述規則に従った小節割りや位置の設定を伴って五線譜テンプレートにレイアウトをした楽譜データを生成する（ステップＳ１１０）。なお、本実施形態では、音符や休符，変化記号や演奏記号などの各種記号をまとめて「音楽記号」あるいは単に「記号」と称する。また、楽譜の記述規則としては、いわゆる記譜法などが該当する。ここで、五線譜テンプレートは、図示は省略するが、複数段の五線譜を有し最上段の五線の左上の位置に先頭を示す基準マークが付されたものとして予めＲＯＭ６４に記憶されており、これをＲＡＭ６６に展開して最上段の五線譜の先頭から順に音楽記号をレイアウトする。ここで、入力されるＭＩＤＩデータには、音の発生指示に関するイベントデータと各イベント間の時間間隔（音の発生タイミング）に関するデュレーションデータなどが含まれる。イベントデータには、音を発生するコマンドであるノートオンや音の発生を停止するコマンドであるノートオフ、音の高さを示すノートナンバー、音の強さを示すヴェロシティなどが含まれる。音楽データの生成は、このようなＭＩＤＩデータを先頭から順に解析し、ＭＩＤＩデータから定まる拍子に従って小節割りしながら解析結果としての音楽記号を順に五線譜テンプレート上にレイアウトすることにより行なわれる。また、小節毎にどのような記号がレイアウトされたかのデータや各小節のレイアウト位置を五線譜テンプレートの基準マークの位置と対応付けて記憶するものとした。なお、本実施形態では、黒色の五線譜テンプレート上に音符や休符などの音楽記号を青色でレイアウトして楽譜データを生成するものとした。また、五線譜テンプレートを複数ページに亘って用いる場合には、何ページ目にレイアウトしたかについても記憶するものとすればよい。
【００２１】
こうして楽譜データを生成すると、生成した楽譜データに対して色変換処理や２値化変換処理などの印刷に必要な処理を行なって用紙Ｓに楽譜画像を印刷するための印刷データを生成し（ステップＳ１２０）、ユーザーによるボタン群５４の操作により印刷指示がなされるのを待つ（ステップＳ１３０）。なお、印刷データとしては、五線譜が黒色で音符や休符などの音楽記号が青色となる印刷データが生成される。印刷指示がなされると、生成した印刷データに基づいて用紙Ｓに楽譜画像を印刷するようプリンターユニット２０に印刷指示を出力して楽譜の印刷処理を実行し（ステップＳ１４０）、表示部５２に処理選択画面（図示省略）を表示する（ステップＳ１５０）。この処理選択画面では、印刷した楽譜を修正する「修正」や楽譜データをメモリーカード４２に保存する「保存」，処理を終了する「終了」などの各種処理が選択可能に表示されている。
【００２２】
こうして処理選択画面を表示部５２に表示すると、ユーザーによるボタン群５４の操作によりどの処理が選択されたかを判定し（ステップＳ１６０）、「保存」が選択されたときには楽譜データをメモリーカード４２に保存するようメモリーカードコントローラー４４に保存指令を出力して楽譜データの保存処理を行なって（ステップＳ１７０）、本ルーチンを終了する。なお、楽譜データかＭＩＤＩデータかのいずれを保存するかをユーザーに選択させた上で保存するものとしてもよいし、両者を保存するものとしてもよい。また、ステップＳ１６０で「終了」が選択されたときには、そのまま本ルーチンを終了する。
【００２３】
一方、ステップＳ１６０で「修正」が選択されたときには、楽譜修正ルール画面５２ａを表示部５２に表示して（ステップＳ１８０）、スキャン指示がなされるのを待つ（ステップＳ１９０）。図３は、楽譜修正ルール画面５２ａの一例を示す説明図である。図示するように、修正ルールに従って印刷の色即ち五線譜の黒色や音楽記号の青色などとは異なる色（例えば、赤色や黄色など）で楽譜画像を修正する指示や修正後の楽譜画像をスキャンするための操作指示が表示されている。また、修正ルールとしては、「置換」，「移動」，「削除」，「追加」の各修正方法の指示が表示されている。このため、例えば、４分音符を８分音符に修正したい場合には、修正ルールの「置換（ア）」に従って４分音符を「○」で囲って「→」の先に８分音符を記述したり、「追加（ウ）」に従って４分音符を「○」で囲って旗記号（符尾）を付したりすればよいことがわかる。このようなユーザーの手書き修正の一例について説明する。図４は、手書き修正された楽譜画像の一例を示す説明図である。なお、図４（ａ）〜（ｄ）は、修正前は同じ楽譜画像であり、１小節目〜５小節目（５小節目は一部のみ図示）までを示す。図４（ａ）では、Ａ１が楽譜修正ルール画面５２ａの修正ルールの「追加（ア）」に従って２小節目の４分音符と連桁付き８分音符との間に新たな４分音符を追加した様子を示し、Ａ２が修正ルールの「移動（ア）」に従って２小節目の連桁付き８分音符を「○」で囲って移動先である３小節目を「→」で指定した様子を示し、Ａ３が「置換（ア）」に従って３小節目の２分音符を「○」で囲って「→」の先に４分音符を記述した様子を示す。同様に、図４（ｂ）では、Ｂ１が「削除（ア）」に従って２小節目の８分音符を「○」で囲い「×」で削除した様子を示し、Ｂ２が「追加（ウ）」に従って２小節目の「○」で囲った４分音符に付点を記述した様子を示し、Ｂ３が「削除（イ）」に従って４小節目のクレッシェンドを二重線で削除した様子を示し、Ｂ４が「追加（ア）」に従って５小節目の４分音符にシャープを追加した様子を示す。また、図４（ｃ）では、Ｃ１が２小節目の４分音符を８分音符に変更するために「追加（ウ）」に従って４分音符を「○」で囲って符尾（はた）を記述した様子を示し、Ｃ２が「追加（イ）」に従って五線譜外に記述した８分音符を「→」で追加したい位置を指定した様子を示し、Ｃ３が「置換（イ）」に従って５小節目の４分音符を「○」で囲って「→」の先に変更後の音の高さを記述した様子を示す。そして、図４（ｄ）では、Ｄ１が「置換（イ）」に従って２小節目の８分音符を「○」で囲って五線譜外に変更後の音の高さを記述した様子を示す。
【００２４】
このような修正が楽譜画像に対してなされた後、ガラス台３６に修正後の用紙Ｓがセットされてユーザーによりボタン群５４のＯＫボタンが押下されると、ステップＳ１９０でスキャン指示がなされたと判定し、スキャン処理をするようスキャナーユニット３０にスキャン指示を出力してユーザーにより手書き修正された楽譜画像のスキャン処理を実行する（ステップＳ２００）。そして、スキャンデータに基づいて印刷色とは異なる色の部分を修正箇所として検出する（ステップＳ２１０）。この処理は、ＲＧＢデータとしてのスキャンデータから、五線譜の色である黒や音楽記号の色である青以外のＲＧＢ値を示す部分を抽出するものとなる。このため、手書き修正が五線譜や音楽記号の色と同じ色でなされるものに比して修正箇所を速やかに検出することができ、修正処理をスムーズに行なうことができる。また、上述した基準マークを検出し、基準マークに対する修正箇所の位置も合わせて検出するものとした。こうして修正箇所を検出すると、楽譜の先頭を基準として最初の修正箇所を処理対象に選定して（ステップＳ２２０）、楽譜データへの修正反映処理を実行する（ステップＳ２３０）。この処理は、パターンマッチングなどの手法を用いて手書きの修正の内容を解析した上で楽譜データに反映するものであり、詳細については後述する。
【００２５】
そして、修正反映処理を実行すると、修正により１小節内の拍数が変更された可能性があるか否かを判定し（ステップＳ２４０）、変更された可能性があるときには拍数調整処理を実行する（ステップＳ２５０）。ここで、拍数が変更された可能性がある場合としては、音符や休符の数が増減する場合や音符や休符に付点が付されたり付点が削除されたりする場合などが該当する。また、拍数調整処理は、各小節内の拍数が基準拍数に対して過不足しているか否かを判定したり過不足している場合に拍数の調整を行なったりするものであり、詳細については後述する。拍数調整処理を実行したときまたはステップＳ２４０で拍数が変更された可能性がないと判定したときには、未処理の修正箇所があるか否かを判定し（ステップＳ２６０）、未処理の修正箇所があるときには次の修正箇所を処理対象に選定して（ステップＳ２７０）、ステップＳ２３０以降の処理即ち楽譜データの修正反映処理や拍数調整処理などを実行する。一方、ステップＳ２６０で未処理箇所がないと判定したときには、すべての修正箇所の処理が完了したと判断して、楽譜データへの修正反映処理や拍数調整処理においてエラーがあったか否かを判定する（ステップＳ２８０）。なお、この判定は、ＲＡＭ６６に反映不能エラーや拍数エラーが登録されているか否かに基づいて行なうことができ、それらのエラーの詳細については後述する。そして、エラーがあるときにはエラーメッセージを表示部５２に表示し（ステップＳ２９０）、エラーがないときには修正処理が正常に完了した旨のメッセージを表示部５２に表示して（ステップＳ３００）、ステップＳ１２０の処理に戻り修正後の楽譜データに基づいて印刷データを生成し、ステップＳ１３０以降の処理を実行する。これにより、修正後の楽譜データに基づいて修正後の楽譜画像を用紙Ｓに再度印刷するから、ユーザーは手書きの修正内容が反映されたか否かを用紙Ｓ上で確認することができる。以下、楽譜データへの修正反映処理と拍数調整処理の詳細について順に説明する。
【００２６】
まず、楽譜データへの修正反映処理について説明する。図５は、修正反映処理の一例を示すフローチャートである。この処理では、まず、処理対象が含まれる修正対象小節を特定してその小節に含まれる音楽記号のデータを楽譜データから入力する（ステップＳ４００）。修正対象小節の特定は、スキャンデータから検出された基準マークに対する修正箇所の位置に基づいて、楽譜データに記憶された基準マークに対する各小節のレイアウト位置を参照することにより行なうことができる。次に、パターンマッチングにより修正内容が「置換」，「移動」，「削除」，「追加」のいずれであるかを特定する（ステップＳ４１０）。ここで、上述した修正ルールに従ってなされた修正はいくつかのパターンに分類することができ、そのパターンに基づいて修正内容を特定することができる。例えば、「○」と「→」とが検出された場合には、「→」の先に何らかの手書きのオブジェクトが検出されれば「置換」と特定することができ、手書きのオブジェクトが検出されなければ「移動」と特定することができる。また、「○」と「×」が検出された場合や二重線が検出された場合には「削除」と特定することができ、手書きのオブジェクトのみが検出された場合や「→」と手書きのオブジェクトが検出された場合、「○」内に手書きのオブジェクトが検出された場合は「追加」と特定することができる。こうして修正内容を特定すると、特定した修正内容が「置換」であるか（ステップＳ４２０）、「移動」であるか（ステップＳ４３０）、「削除」であるか（ステップＳ４４０）、「追加」であるか（ステップＳ４５０）をそれぞれ判定する。
【００２７】
ステップＳ４２０で修正内容が「置換」であると判定したときには、「○」の位置から置換前の記号を特定する（ステップＳ４６０）。この処理は、処理対象小節における「○」の位置と処理対象小節に含まれる音楽記号のデータとに基づいて特定することができる。例えば、処理対象小節に含まれる音楽記号として３つの音符があり、処理対象小節における「○」の位置が先頭から４分の１程度の位置であるときには、最初の音符を置換前の記号として特定することになる。また、「○」内の記号をパターンマッチングにより特定して確認を行なうものとしてもよい。こうして置換前の記号を特定すると、置換後の記号である手書きの記号を特定する特定処理を実行する（ステップＳ４７０）。ここで、修正反映処理の説明を中断して、手書き記号の特定処理について説明する。図６は、手書き記号の特定処理の一例を示すフローチャートである。
【００２８】
手書き記号の特定処理が実行されると、まず、処理対象小節に含まれる手書き記号のオブジェクトを選定する（ステップＳ６００）。オブジェクトの選定は、例えば、「→」の先に手書きされている図形や一連の形状，数字，文字などを検出することにより行なわれる。次に選定したオブジェクトを音楽記号のうち音符や休符以外の記号（変化記号や演奏記号など）と照合して（ステップＳ６１０）、一致するものがあるか否かを判定する（ステップＳ６２０）。なお、照合用の音楽記号は、予めＲＯＭ６４に記憶されているものとした。一致するものがあるときには、手書き記号は一致した記号と特定して（ステップＳ６３０）、本処理を終了する。
【００２９】
一方、ステップＳ６２０で音符や休符以外の記号とは一致するものがないと判定したときには、選定したオブジェクトを休符と照合して（ステップＳ６４０）、一致するものがあるか否かを判定する（ステップＳ６５０）。一致するものがあるときには、手書き記号は一致した休符と特定し（ステップＳ６６０）、さらに付点があるか否かを判定する（ステップＳ６７０）。なお、付点があるか否かの判定は、オブジェクトの右の位置に点を検出できるか否かに基づいて判定することができる。付点ありと判定したときには、選定したオブジェクトの音長は一致した休符の１．５倍の音長と特定して（ステップＳ６８０）、本処理を終了する。一方、付点なしと判定したときには、一致した休符のままの音長と特定して（ステップＳ６９０）、本処理を終了する。
【００３０】
一方、ステップＳ６５０で一致する休符はないと判定したときには、選定したオブジェクトのうち音符の符頭に相当する円状の部分（楕円なども含む）を検出する（ステップＳ７００）。次に、検出した円状の部分が白抜きの円であるか否かを判定する（ステップＳ７１０）。白抜きの円と判定したときには、音符の符幹に相当する縦線が円状の部分から伸びているか否かを判定する（ステップＳ７２０）。縦線がなければ全音符と特定し（ステップＳ７３０）、縦線があれば、さらに円状の部分の右の位置に付点があるか否かを判定する（ステップＳ７４０）。付点があると判定したときには付点２分音符と特定し（ステップＳ７５０）、付点がないと判定したときには２分音符と特定する（ステップＳ７６０）。こうして音符の種類を特定すると、選定したオブジェクトの音長は各音符の音長と特定して（ステップＳ７７０）、次の処理に進む。
【００３１】
一方、ステップＳ７１０で白抜きの円ではないと判定したときには、音符の符幹に相当する線として円上の部分から伸びる縦線を検出すると共に（ステップＳ７８０）、音符の符尾に相当する線として縦線から分岐する線を検出して（ステップＳ７９０）、分岐の線の数に応じて音符を特定する（ステップＳ８００）。ここで、符頭に相当する円状の部分が白抜きではない音符としては、４分音符や８分音符，１６分音符，３２分音符などがあるが、符尾のないもの即ち分岐のないものを４分音符と特定し、符尾の数即ち分岐の線数が値１であるものを８分音符と特定し、線数が値２であるものを１６分音符と特定し、線数が値３であるものを３２分音符と特定することができる。こうして音符の種類を特定すると、付点があるか否かを判定し（ステップＳ８１０）、付点があるときには特定した音符の１．５倍の音長と特定し（ステップＳ８２０）、付点がないときには特定した音符の音長と特定する（ステップＳ８３０）。なお、連桁付きの８分音符や１６分音符などの特定は省略したが、円状の部分が２つ検出されるか否かを判定し、２つ検出されるときには連桁に相当する部分即ち縦線に交わる横線の線数に応じて音符の種類を特定するものなどとすればよい。
【００３２】
こうしてステップＳ７７０，８２０，８３０のいずれかの処理により音長を特定すると、円状の部分を貫く横線（水平線）や円状の部分の上部または下部に接する横線の検出を行ない（ステップＳ８４０）、横線が検出できたか否かを判定する（ステップＳ８５０）。この処理は、音符を五線譜外に記述する場合においては、その音高さが分かるように五線の一部を記述することになっているため、そのような横線がユーザーにより記述されたか否かを判定する処理となる。横線があると判定したときには、その横線と円状の部分と縦線との関係から音符の音の高さを特定して（ステップＳ８６０）、本処理を終了する。例えば、図４（ａ）のＡ３に示すように、五線譜外に音符とその音符の符頭の上部に接するように横線が記述されている場合、円状の部分（符頭）から縦線（符幹）が上方に伸びていることから横線は五線譜における最も下の線である第１線と判断することができ、図４の例では第１線の下に符頭が接する音の高さとして「レ」と特定することができる。一方、ユーザーにより記述された横線がないと判定したときには、印刷された五線譜内に音符が記述されていると判断できるため、五線譜上の円状の部分の位置から音の高さを特定して（ステップＳ８７０）、本処理を終了する。
【００３３】
図５の修正反映処理に戻って、こうして置換後の記号である手書きの記号を特定すると、楽譜データに記憶されている置換前の記号のデータを削除して特定した記号のデータを登録して（ステップＳ４８０）、本処理を終了する。なお、特定した記号が音符や休符の場合には、特定した音の高さや音長を含めてデータを登録する。
【００３４】
また、ステップＳ４３０で修正内容が「移動」であると判定したときには、「○」の位置から移動対象の記号を特定する（ステップＳ４９０）。この処理は、置換前の記号の特定と同様に行なうことができる。次に、「→」の先端位置から移動先を特定する（ステップＳ５００）。この処理は、例えば、「→」の先端位置を五線譜テンプレートの基準マークを基準として検出し、楽譜データに記憶された基準マークに対する各小節のレイアウト位置から移動先となる小節を特定し、特定した小節内の音楽記号のデータと「→」の先端位置とに基づいてどの記号の間が移動先であるかを判定することなどにより行なうことができる。こうして移動先を特定すると、特定した記号の元データを削除して移動先として特定した位置にデータを登録して（ステップＳ５１０）、本処理を終了する。
【００３５】
または、ステップＳ４４０で修正内容が「削除」であると判定したときには、「×」や二重線などの位置から削除対象の記号を特定する（ステップＳ５２０）。この処理は、置換前の記号の特定と同様に行なうことができる。こうして削除対象の記号を特定すると、特定した記号のデータを楽譜データから削除して（ステップＳ５３０）、本処理を終了する。
【００３６】
あるいは、ステップＳ４５０で修正内容が「追加」であると判定したときには、追加する対象記号を特定する（ステップＳ５４０）。対象記号の特定は、上述したステップＳ４７０の処理と同様に図６に示した手書き記号の特定処理により行なうことができるため説明は省略する。対象記号を特定すると、追加する位置を特定する（ステップＳ５５０）。この処理は、「→」の先端位置に基づいて特定したり、対象記号が挿入されている位置に基づいて特定したりすることができる。こうして追加する対象記号とその追加位置とを特定すると、楽譜データに追加する対象記号のデータを特定した位置に登録して（ステップＳ５６０）、本処理を終了する。なお、追加する対象記号が付点や旗記号（符尾）の場合には、修正対象となる音符や休符のデータを合わせて修正する。また、ステップＳ４２０〜Ｓ４５０で修正内容がいずれにも該当しないと判定したときには、反映不能エラーをＲＡＭ６６に登録して（ステップＳ５７０）、本処理を終了する。なお、ＲＡＭ６６に登録した反映不能エラーは、上述したＭＩＤＩモード時処理ルーチンにおけるステップＳ２９０の処理においてエラーメッセージとして表示されるから、反映できなかった手書き修正があることをユーザーに通知することができる。
【００３７】
次に、拍数調整処理について説明する。図７は、拍数調整処理の一例を示すフローチャートであり、図８は、拍数調整処理の対象となる小節を含む楽譜画像の一例を示す説明図である。なお、図８に示す楽譜画像は、修正前は図４に示す楽譜画像と同じものである。拍数調整処理では、まず、修正対象小節に対する拍子の指定情報としてＮ／Ｍ拍子（Ｎ，Ｍは自然数）の情報を取得する（ステップＳ９００）。ここで、拍子の指定情報は、通常は３／４拍子や４／４拍子などのＮ／Ｍ拍子の情報として取得され、図８に示す楽譜画像のように、ト音記号しかない場合には拍子の指定情報として４／４拍子を取得し、Ｎ，Ｍは共に値４となる。なお、この指定情報は、元の楽譜データから入力してもよいし、スキャンデータから特定してもよい。次に、修正反映処理後の楽譜データから修正対象小節における全ての音符や休符（以下、本処理の説明においては、音符には休符を含む）の音長の情報を入力する（ステップＳ９１０）。音長の情報としては、音符や休符の種類や数，付点の有無などが含まれる。次に、入力した音長の情報からＭ分音符を１単位（１拍）とする修正対象小節の拍数Ｎａを算出する（ステップＳ９２０）。拍数Ｎａの算出は、修正対象小節に含まれる全ての音符とＭ分音符の単位とに基づいて求めることができる。例えば、図８（ａ）に示す楽譜において修正対象小節である２小節目は、修正により４つの８分音符と、２つの４分音符と、１つの連桁付き８分音符（８分音符２つ分）となっており、Ｍ分音符として４分音符を１単位（１拍）とするから、拍数Ｎａは５拍となる。
【００３８】
こうして算出した拍数Ｎａが拍子の指定情報から定まる基準拍数Ｎと一致するか否かを判定し（ステップＳ９３０）、一致するときにはそのまま本処理を終了する。一方、拍数Ｎａと基準拍数Ｎとが一致しないと判定されたときには、次に、拍数Ｎａが基準拍数Ｎよりも大きいか否かを判定する（ステップＳ９４０）。この処理は、拍数Ｎａが基準拍数Ｎよりも大きくなっているために処理対象小節から直後の小節へ音符を移動させることにより拍数Ｎａを減らして調整するのか、あるいは、拍数Ｎａが基準拍数Ｎよりも小さくなっているために処理対象小節の直後の小節から処理対象小節へ音符を移動させることにより拍数Ｎａを増やして調整するのかを判断する処理となる。ステップＳ９４０で拍数Ｎａが基準拍数よりも大きいと判定したときには、修正対象小節の末尾から順に累積した拍数が値（Ｎａ−Ｎ）となる音符を選定する（ステップＳ９５０）。例えば、図８（ａ）に示す場合では、値（Ｎａ−Ｎ）は、値１（１拍）であり、２小節目の末尾から連桁付き８分音符を１拍に相当する音符として選定する。なお、ステップＳ９５０の処理では、複数の音符を選定してもよいが、選定中に累積の拍数が値（Ｎａ−Ｎ）を超えた時点で移動対象の音符を選定できないものとして処理を終了する。そして、音符を選定できたか否かを判定し（ステップＳ９６０）、選定できないと判定したときには、拍数の調整はできないため、修正対象小節の拍数エラーをＲＡＭ６６に登録して（ステップＳ１０４０）、本処理を終了する。
【００３９】
一方、ステップＳ９６０で音符を選定できたと判定したときには、選定した音符を修正対象小節の次の小節の先頭に移動して拍数を調整する（ステップＳ９７０）。このように、手書き修正を反映させることにより拍数が変更される場合には、ユーザーが修正後の小節内の拍数を確認しなくても拍数の調整が行なわれるため、修正時のユーザーの負担を低減させることができる。こうして拍数を調整すると、調整後の次の小節内における全ての音符の音長の情報を入力して（ステップＳ１０１０）、入力した音長の情報からＭ分音符を１拍とする拍数Ｎｂを算出する（ステップＳ１０２０）。そして、算出した拍数Ｎｂが基準拍数Ｎと一致するか否かを判定して（ステップＳ１０３０）、一致すると判定したときには、そのまま本処理を終了する。一方、一致しないと判定したときには、次の小節の拍数エラーをＲＡＭ６６に登録して（ステップＳ１０５０）、本処理を終了する。例えば、図８（ａ）に示す場合では、連桁付き８分音符が修正対象小節である２小節目の次の３小節目に移動されることにより、３小節目の拍数Ｎｂは、５拍と算出される。このため、拍数Ｎｂは基準拍数Ｎと一致しないと判定し、３小節目の拍数エラーが登録される。
【００４０】
一方、ステップＳ９４０で拍数Ｎａが基準拍数Ｎよりも小さいときには、修正対象小節の次の小節の先頭から順に累積した拍数が値（Ｎ−Ｎａ）となる音符を選定する（ステップＳ９８０）。例えば、図８（ｂ）に示す場合では、４小節目の連桁付き８分音符が１つ削除されるため、拍数Ｎａが３拍となり、基準拍数Ｎの４拍よりも小さいものとなる。このため、修正対象小節の４小節目の次の５小節目の先頭から１拍に相当する音符の選定を行なって、先頭の４分音符を１拍に相当する音符として選定する。なお、ステップＳ９５０と同様に、ステップＳ９８０の処理では、複数の音符を選定してもよいが、選定中に累積の拍数が値（Ｎ−Ｎａ）を超えた時点で移動対象の音符を選定できないものとして処理を終了する。そして、音符を選定できたか否かを判定し（ステップＳ９９０）、選定できないと判定したときには、修正対象小節の拍数エラーをＲＡＭ６６に登録して（ステップＳ１０６０）、本処理を終了する。
【００４１】
一方、ステップＳ９９０で音符を選定できたと判定したときには、選定した音符を修正対象小節の末尾に移動して拍数を調整する（ステップＳ１０００）。こうして拍数を調整すると、ステップＳ１０１０以降の処理即ち次の小節内の拍数の確認処理を行なって本処理を終了する。例えば、図８（ｂ）に示す場合では、５小節目の先頭の４分音符が修正対象小節の４小節目の末尾に移動されることになり、５小節目の拍数Ｎｂが不足する可能性があり、これを確認する処理が行なわれる。なお、ＲＡＭ６６に登録した拍数エラーは、上述したＭＩＤＩモード時処理ルーチンにおけるステップＳ２９０の処理においてエラーメッセージとして表示されるから、手書き修正により小節内の拍数に過不足が生じることをユーザーに知らせることができる。
【００４２】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のプリンターユニット２０が本発明の「画像形成手段」に相当し、スキャナーユニット３０が「画像読取手段」に相当し、図３のＭＩＤＩモード時処理ルーチンにおいてステップＳ１１０の処理を実行するメインコントローラー６０が「楽譜データ生成手段」に相当し、ＭＩＤＩモード時処理ルーチンにおいてステップ１２０〜１４０，Ｓ１９０〜２７０の処理を実行するメインコントローラー６０が「楽譜データ修正手段」に相当し、ＭＩＤＩモード時処理ルーチンにおいて楽譜データの修正反映処理を行なった後にステップＳ１２０〜Ｓ１４０の処理を実行するメインコントローラー６０が「楽譜データ出力手段」に相当する。また、ＭＩＤＩモード時処理ルーチンにおいてステップＳ２８０，２９０の処理を実行するメインコントローラー６０とエラーが表示される表示部５２とが「エラー報知手段」に相当し、ＭＩＤＩモード時処理ルーチンにおいてステップＳ１８０の処理を実行するメインコントローラー６０と楽譜修正ルール画面５２ａが表示される表示部５２とが「指示出力手段」に相当する。
【００４３】
以上詳述した本実施形態のマルチファンクションプリンター１０によれば、入力したＭＩＤＩデータに基づいて楽譜データを生成し、生成した楽譜データを変換した印刷データに基づいて用紙Ｓに楽譜画像を形成し、楽譜画像になされたユーザーの手書きの修正を用紙Ｓを介して読み取って読取データを生成し、生成した読取データに基づいてパターンマッチングなどにより特定した手書きの修正の内容を楽譜データに反映させ、反映により小節内の拍数が変更される場合には拍数を調整し、修正した楽譜データを変換した印刷データに基づいて用紙Ｓに修正後の楽譜画像を形成するから、ユーザーによるデータ修正を負担を伴うことなく楽譜データへの修正を適切に反映させることができる。また、ユーザーが修正後の小節内の拍数を確認しなくても小節内の拍数が変更される場合には拍数が調整されるから、修正時のユーザーの負担を低減させることができる。さらに、拍数の調整ができない場合にはエラーを報知するから、修正により小節内の拍数に過不足が生じることをユーザーに知らせることができる。そして、用紙Ｓに形成された楽譜画像の色とは異なる色で手書きの修正をするようユーザーに指示するから、修正箇所を速やかに検出して修正処理をスムーズに行なうことができる。
【００４４】
なお、本発明は上述した実施態様に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００４５】
上述した実施形態では、ＭＩＤＩデータに基づいて楽譜データを生成するものとしたが、これに限られず、ＭＩＤＩデータ以外の他の形式の演奏データに基づいて楽譜データを生成するものとしてもよい。また、演奏データに基づいて楽譜データを生成するものに限られず、スキャナーユニット３０で楽譜画像を読み取って読取データを生成し生成した読取データに基づいて楽譜データを生成するものとしてもよい。その場合、図６に示した手書き記号の特定処理の手法と同様な処理を行なうことにより、音楽記号を順次特定して楽譜データを生成するものなどとしてもよい。
【００４６】
上述した実施形態では、図６に示した手書き記号の特定処理において手書きのオブジェクトのうち音符の符頭や符幹に相当する部分を検出することにより音符の種類を特定するものとしたが、これに限られず、単なるパターンマッチングにより各種音符を特定するものとしてもよい。
【００４７】
上述した実施形態では、図７の拍数調整処理において修正対象小節と次の小節との間で拍数を調整するものとしたが、これに限られず、修正対象小節とそれに続く２以上の所定数の小節との間で拍数を調整するものとしてもよい。その場合、図７中の「修正対象小節」を「先の小節」に、「次の小節」を「後の小節」にそれぞれ読み替えて、先の小節の拍数が基準拍数Ｎよりも大きい場合に先の小節と後の小節との間で図７のステップＳ９５０〜Ｓ９７０の拍数の調整処理を繰り返し行ない、先の小節の拍数が基準拍数Ｎよりも小さい場合に先の小節と後の小節との間でステップＳ９８０〜Ｓ１０００の拍数の調整処理を繰り返し行なうものとすればよい。また、処理の途中で移動対象の音符を選定できないと判定した場合や所定数の小節のうち最後の小節の拍数が基準拍数Ｎと一致しないと判定した場合にエラーを登録するものとすればよい。なお、所定数は、予め設定された値でもよいし、ユーザーにより指定できる値であってもよい。
【００４８】
上述した実施形態では、エラーメッセージを表示部５２に表示するものとしたが、これに限られず、異常音を出力したりＬＥＤなどを発光したりしてエラーを報知するものとしてもよい。あるいは、エラーを報知しないものとしても構わない。
【００４９】
上述した実施形態では、楽譜画像の印刷の色とは異なる色で手書き修正を行なう指示を表示部５２に表示するものとしたが、これに限られず、音声などで指示してもよい。あるいは、色を指定することなく手書き修正を受け付けるものとしてもよく、その場合には、小節毎に順に元の楽譜データと読取データとの差分のデータを手書き修正部分として抽出して反映するものなどとすればよい。
【００５０】
上述した実施形態では、楽譜データへの修正を反映した後に拍数があっているか否かを確認するものとしたが、これに限られず、修正を反映する前に確認するものとしてもよい。また、拍数の確認に限られず、記譜法などの楽譜の記述規則に基づく確認であればどのような確認を行なうものとしてもよく、例えば、音の高さを変化させるシャープやフラットなどの変化記号が誤って音符の左横以外の位置に記述されていないかを確認したり、五線譜外に記述すべき強弱記号や速度記号などが五線譜内に記述されていないかなどを確認したりするものなどとしてもよい。
【００５１】
上述した実施形態では、修正後の楽譜データを常に印刷するものとしたが、これに限られず、修正後の楽譜データを表示部５２に表示するものなどとしてもよい。
【符号の説明】
【００５２】
１０  マルチファンクションプリンター、１２  バス、２０  プリンターユニット、２２  プリンターＡＳＩＣ、２４  プリンター機構、３０  スキャナーユニット、３２  スキャナーＡＳＩＣ、３４  スキャナー機構、３６  ガラス台、４０  メモリーカードスロット、４２  メモリーカード、４４  メモリーカードコントローラー、５０  操作パネル、５２  表示部、５２ａ  楽譜修正ルール画面、５４  ボタン群、６０  メインコントローラー、６２  ＣＰＵ、６４  ＲＯＭ、６６  ＲＡＭ、６７  フラッシュメモリー、６８  ＭＩＤＩＩ／Ｆ、６９  内部通信Ｉ／Ｆ、１００  ＭＩＤＩ機器、Ｓ  用紙。
【図１】
2011180326.tif 000003
【図２】
2011180326.tif 000004
【図３】
2011180326.tif 000005
【図５】
2011180326.tif 000006
【図６】
2011180326.tif 000007
【図７】
2011180326.tif 000008
【図４】
2011180326.tif 000009
【図８】
2011180326.tif 000010