(57)【要約】【課題】  演奏データを生成する編集操作を、ユーザが作成したい曲の大雑把なイメージに沿って容易に行うことのできる演奏データ編集装置の提供。【解決手段】  表示手段に表示された楽譜上に曲線が入力されると、該曲線の変化が増加から減少へと又は減少から増加へと転じている１乃至複数の極大／極小位置を特定し、記憶手段に記憶されたフレーズデータの中から極大／極小位置の出現状態が前記特定した極大／極小位置の出現状態に類似するものを抽出して、該抽出したフレーズデータに基づく音符記号を楽譜上に配置して表示する。音符記号を配置する際に相前後する各音符間の音高関係を維持したまま曲線に近づけて表示することにあわせ、該当する音符情報の音高を変換して演奏データを生成する。これにより、ユーザは楽譜上に曲線を入力するだけで、曲の大雑把なイメージを損なうことのない音楽的にありうる曲の演奏データを生成することが容易にできるようになる。【選択図】        図３
2010072223.tif 000002
【特許請求の範囲】
【請求項１】
表示手段に表示した楽譜上において個々の楽音を表す音符記号の編集操作が行われることに応じて、各音符記号に対応した音符情報を含んでなる演奏データを編集する演奏データ編集装置であって、
フレーズデータを多数記憶した記憶手段と、
前記楽譜上に曲線を入力する入力手段と、
前記入力された曲線の少なくとも一部を範囲指定する指定手段と、
前記入力された曲線を特徴付ける楽譜上の位置であって、前記指定された範囲内において該曲線の変化が増加から減少へと又は減少から増加へと転じている１乃至複数の極大／極小位置を特定する位置特定手段と、
前記記憶手段から前記指定した範囲に一致する曲長さのフレーズデータであり、かつ該フレーズデータにおける前記極大／極小位置の出現状態が前記特定した極大／極小位置の出現状態に類似するものを抽出するデータ抽出手段と、
前記抽出したフレーズデータに基づく音符記号を、相前後する各音符間の音高関係を維持したまま前記入力された曲線に近づけて表示するように前記表示手段を制御する表示制御手段と、
前記音符記号の表示にあわせて該当する音符情報の音高を変換すると共に、該音符情報を含む前記フレーズデータを前記演奏データに追加するデータ生成手段と
を具える演奏データ編集装置。
【請求項２】
前記抽出したフレーズデータにおける前記極大／極小位置を中心とする音符配列が半音進行を構成するか否かを判定する判定手段をさらに具えてなり、
前記表示制御手段は、前記極大／極小位置を中心とする音符配列が半音進行を構成しない場合に、前記極大／極小位置の前後に半音進行を構成する新規の音符記号を配置するように前記表示手段を制御し、
前記データ生成手段は、前記表示制御に応じて配置された新規の音符記号に対応する音符情報を生成して前記演奏データに追加することを特徴とする請求項１に記載の演奏データ編集装置。
【請求項３】
コンピュータに、
フレーズデータを記憶手段に多数記憶する手順と、
表示手段に楽譜を表示する手順と、
前記楽譜上に曲線を入力する手順と、
前記入力された曲線の少なくとも一部を範囲指定する手順と、
前記入力された曲線を特徴付ける楽譜上の位置であって、前記指定された範囲内において該曲線の変化が増加から減少へと又は減少から増加へと転じている１乃至複数の極大／極小位置を特定する手順と、
前記記憶手段から前記指定した範囲に一致する曲長さのフレーズデータであり、かつ該フレーズデータにおける前記極大／極小位置の出現状態が前記特定した極大／極小位置の出現状態に類似するものを抽出する手順と、
前記抽出したフレーズデータに基づく音符記号を、相前後する各音符間の音高関係を維持したまま前記入力された曲線に近づけて表示するように前記表示手段を制御する手順と、
前記音符記号の表示にあわせて該当する音符情報の音高を変換すると共に、該音符情報を含む前記フレーズデータを前記演奏データに追加する手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画面表示された楽譜上における各種楽譜記号の編集操作に従って演奏データの編集を行う演奏データ編集装置及びプログラムに関する。特に、個々の楽音を表す音符記号を楽譜上に配置して演奏データを編集（生成）する編集操作を、ユーザが作成したい曲の大雑把なイメージに沿って容易に行うことのできるようにした技術に関する。
【背景技術】
【０００２】
従来から、画面上に楽譜画面や専用の編集画面等を表示しておき、該画面上で各種の編集操作が行われることに従い演奏データを編集する演奏データ編集装置及びプログラムが知られている。こうした装置の一例を挙げると、下記に示す特許文献１又は特許文献２に記載の装置がある。また、旋律を生成する方式として、既存楽曲の楽譜情報に基づきフレーズデータを切り出し、該切り出したフレーズデータを複数組み合わせることで旋律を生成する技術が知られている（特許文献３）。
【特許文献１】特開2001−75472号公報
【特許文献２】特開2000−221976号公報
【特許文献３】特開2007−219139号公報
【０００３】
特許文献１に記載された装置では、自動演奏や自動伴奏用の演奏データに基づいて該演奏や伴奏に関連する楽譜（例えば五線譜など）を画面に表示しておき、該表示された画面においてユーザは音符記号等の追加、削除、変更あるいは移動等の編集操作を行うことによって元の演奏データを編集できるようになっている。一方、特許文献２に記載された装置では、画面上にウィンドウ（専用のデータ生成画面）を例えば１小節単位毎に複数表示しておき、該画面上で編集操作を行うことで該当する範囲毎の演奏データを編集（生成）できるようになっている。簡単に説明すると、ユーザが自動伴奏にあわせてキーボード等を操作してタッピングすることにあわせて打点のタイミングが順次に入力され、前記ウィンドウ内に入力された打点が位置表示される。その後、ユーザはマウス等を操作して前記打点位置を上下にドラッグして音高（ピッチ）を設定することが可能となっているので、これにより演奏データを生成していくことができる。また、ユーザにより入力されたピッチ変化曲線に基づき、前記打点位置においてそれぞれ音高（ピッチ）をサンプリングすることについての記載がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上述した特許文献１に記載された従来の装置において、音楽的に適切な（言い換えれば音楽的にありうる）メロディが成り立つように音符の編集操作を行うには、ユーザが音楽特に楽譜の記載に関する知識を有していることが必要とされる。すなわち、ユーザはあらかじめ生成したい曲のメロディ等をある程度正確に思いついていないと（知っていないと）楽譜上の適切な位置に音符を配置することができないので、特に曲中においてこの箇所では上に上がりたい、かけおりたい、はねるようにしたいなどの曲の大雑把なイメージしか思いつかないような初心者では、自らが思い描くような曲を生成することが非常に難しかった。この点、特許文献２に記載された従来の装置では曲の大雑把なイメージに沿うピッチ変化曲線を入力することが可能であるが、音符の配置位置は最初にユーザが入力した打点が基準とされており、ユーザは少なくともこうした打点をあらかじめ決めておく必要があるので、こうした打点をあらかじめ決めておくことも初心者にとっては難しい。そして、特許文献３に記載された従来の技術によっては、そもそもユーザの思い描く曲の時間的な変化のイメージにあうフレーズデータを選択することが難しい、という不都合があった。さらには、上記したいずれの装置／技術においても操作手順が煩雑であって使いづらかった。
【０００５】
本発明は上述の点に鑑みてなされたもので、画面表示された楽譜上に音符記号を配置する編集操作を、ユーザが作成したい曲の大雑把なイメージに沿って容易に行いながら演奏データを生成することのできるようにした演奏データ編集装置及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【０００６】
本発明に係る演奏データ編集装置は、表示手段に表示した楽譜上において個々の楽音を表す音符記号の編集操作が行われることに応じて、各音符記号に対応した音符情報を含んでなる演奏データを編集する演奏データ編集装置であって、フレーズデータを多数記憶した記憶手段と、前記楽譜上に曲線を入力する入力手段と、前記入力された曲線の少なくとも一部を範囲指定する指定手段と、前記入力された曲線を特徴付ける楽譜上の位置であって、前記指定された範囲内において該曲線の変化が増加から減少へと又は減少から増加へと転じている１乃至複数の極大／極小位置を特定する位置特定手段と、前記記憶手段から前記指定した範囲に一致する曲長さのフレーズデータであり、かつ該フレーズデータにおける前記極大／極小位置の出現状態が前記特定した極大／極小位置の出現状態に類似するものを抽出するデータ抽出手段と、前記抽出したフレーズデータに基づく音符記号を、相前後する各音符間の音高関係を維持したまま前記入力された曲線に近づけて表示するように前記表示手段を制御する表示制御手段と、前記音符記号の表示にあわせて該当する音符情報の音高を変換すると共に、該音符情報を含む前記フレーズデータを前記演奏データに追加するデータ生成手段とを具える。
【０００７】
本発明によると、ユーザにより表示手段に表示された楽譜上に曲線が入力され、該入力された曲線の少なくとも一部が範囲指定されると、指定された範囲内において曲線の特徴として該曲線の変化が増加から減少へと又は減少から増加へと転じている１乃至複数の極大／極小位置を特定する。そして、記憶手段に記憶されたフレーズデータの中から、フレーズデータにおける前記極大／極小位置の出現状態が前記特定した極大／極小位置の出現状態に類似するものを抽出し、該抽出したフレーズデータに基づく音符記号を前記楽譜上に配置して表示する。また、楽譜上に音符記号が自動配置されることにあわせて、該配置された各々の音符記号に対応する音符情報を生成して前記演奏データに追加する。ただし、フレーズデータに基づく音符記号を楽譜上に配置する際には、相前後する各音符間の音高関係を維持したまま前記入力された曲線に近づけて表示することから、該表示位置の変更にあわせて該当する音符情報の音高を変換して演奏データを生成する。このようにすると、ユーザは楽譜上に音符記号を配置する編集操作として、作成したい曲の大雑把なイメージに沿って楽譜上に曲線を入力する（描く）だけで演奏データを生成することができ、したがってユーザはこの曲線を描くといった容易な操作のみで楽譜上に何も表示されていないような状態から、例えば暫定的に音符を配列した状態での編集の基点となりうる初期の演奏データを生成して用意することができるといった利点がある。しかも、ユーザの入力したイメージを損なうことなしに、音楽的にありうる曲（メロディ）の演奏データを生成することが簡単にできて非常に便利である。
【０００８】
本発明は装置の発明として構成し実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【発明の効果】
【０００９】
この発明によれば、ユーザが入力した曲線の極大／極小位置の出現状態に類似するフレーズデータを抽出し、該フレーズデータに基づく音符記号を楽譜上に描かれた曲線にあわせて配置してユーザに提示すると共に演奏データを生成することから、ユーザは楽譜上に曲線を描くだけで既存のフレーズデータを利用して楽譜上に音符記号を配置する編集操作を容易に行うことができ、また既存のフレーズデータのイメージに囚われることなくユーザが作成したい曲の大雑把なイメージに沿う演奏データを生成することができるようになる、という効果を得る。
【発明を実施するための最良の形態】
【００１０】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【００１１】
図１は、この発明に係る演奏データ編集装置の全体構成の一実施例を示したハード構成ブロック図である。本実施例に示す演奏データ編集装置は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータによって制御される。ＣＰＵ１は、この装置全体の動作を制御する。このＣＰＵ１に対して、通信バス１Ｄ（例えばデータ及びアドレスバス）を介してＲＯＭ２、ＲＡＭ３、入力操作部４、表示部５、音源６、通信インタフェース（Ｉ／Ｆ）７、記憶装置８がそれぞれ接続されている。
【００１２】
ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種制御プログラムや各種データ等を格納する。ＲＡＭ３は、ＣＰＵ１が所定の制御プログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中の制御プログラムやそれに関連するデータを一時的に記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。
【００１３】
入力操作部４は、例えば「楽譜画面」（後述する図２参照）を表示して演奏データの生成開始／終了を指示する編集スイッチ、音符列生成モードとして「検索モード」又は「自動入力モード」（詳しくは後述する）のいずれかを設定するモード設定スイッチ、「楽譜画面」の楽譜上に音符列を自動配置するよう指示する音符生成ボタン、「楽譜画面」に表示中の音符列に応じた演奏データを再生する再生スイッチなどの他、数値データ入力用のテンキーや文字データ入力用のキーボードあるいはマウスやタッチペンなど、操作子として利用できるものであればどのようなものであってもよい。さらには、ユーザ操作に応じて演奏データを発生する例えば鍵盤等の演奏操作子であってもよい。表示部５は例えば液晶表示パネル（ＬＣＤ）等から構成され、データ生成用の「楽譜画面」は勿論のこと、楽曲データベースに記憶されている演奏データ一覧やＣＰＵ１の制御状態などの各種情報を表示する。なお、表示部５は、画面上において行われたユーザタッチ操作を検出（認識）する検知機能を有するタッチパネルであってよい。
【００１４】
音源６は複数のチャンネルで楽音信号の同時発生が可能であり、通信バス１Ｄを経由して与えられる演奏データに基づいて楽音を発生する。音源６から発生された楽音は、アンプやスピーカなどを含むサウンドシステム６Ａから発音される。この音源６から発生された楽音に対して、効果回路など（図示せず）を用いて効果を付与するようにしてよい。なお、音源６とサウンドシステム６Ａの構成には、従来のいかなる構成を用いてもよい。例えば、音源６はＦＭ、ＰＣＭ、物理モデル、フォルマント合成等の各種楽音合成方式のいずれを採用してもよく、専用のハードウェアで構成してもよいし、ＣＰＵ１によるソフトウェア処理で構成してもよい。
【００１５】
通信インタフェース（Ｉ／Ｆ）７は、当該装置と図示しない外部機器との間で制御プログラムやデータなどの各種情報を送受信するためのインタフェースである。この通信インタフェース７は、例えばMIDIインタフェース，ＬＡＮ，インターネット，電話回線等であってよく、また有線あるいは無線のものいずれかでなく双方を具えていてよい。
【００１６】
記憶装置８は、「楽譜画面」を用いて生成された演奏データや予め用意された既存曲の演奏データ（例えばフレーズ単位のMIDIデータなど）、「楽譜画面」において五線譜等を初期表示するための画面表示用の元データ（例えば譜表タイプ、１段に表示する小節数、表示段数、拍子、調号などを含む）、あるいはＣＰＵ１が実行する各種制御プログラムなどの各種情報を記憶する。前記ＲＯＭ２に制御プログラムが記憶されていない場合、この記憶装置８（例えばハードディスク）に制御プログラムを記憶させておき、それを前記ＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１に実行させることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、記憶装置８はハードディスク（HD）に限られず、フレキシブルディスク（FD）、コンパクトディスク（CD）、光磁気ディスク（MO）、あるいはDVD（Digital Versatile Disk）等の着脱自在な様々な形態の外部記録媒体を利用する記憶装置であってもよい。あるいは、半導体メモリなどであってもよい。
【００１７】
なお、上述した演奏データ編集装置において、入力操作部４や表示部５あるいは音源６などを１つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信インタフェースを用いて各装置を接続するように構成されたものであってよいことは言うまでもない。さらに、本発明に係る演奏データ編集装置及びプログラムは電子楽器や自動演奏装置、パーソナルコンピュータ、携帯電話等の携帯型通信端末、あるいはカラオケ装置やゲーム装置など、どのような形態の装置・機器に適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバ側に持たせ、端末とサーバとからなるシステム全体として所定の機能を実現するようにしてもよい。
【００１８】
次に、「楽譜画面」を用いてのデータ生成動作について説明する。図２は、データ生成動作の一実施態様を説明するために「楽譜画面」の表示例を示した概念図である。ここでは、音符列生成モードとして「自動入力モード」が設定されている場合のデータ生成動作について説明する。
【００１９】
ユーザにより編集スイッチ等の操作が行われると、画面表示用の元データに基づき五線譜のみからなる「楽譜画面」が表示部５に初期表示される。該表示された五線譜上には任意の曲線Ａを描画できるようになっており、ユーザはマウス等を用いて作成したい曲の変化に応じた大雑把なイメージに沿う曲線Ａ（つまりは曲線情報）を入力することができる。曲線Ａ（曲線情報）の入力後、ユーザにより音符生成ボタンが操作されると、描画された曲線Ａ上に１乃至複数個（この例では６個）の音符記号Ｏが自動的に配置されるようにして演奏データが生成される。この音符記号Ｏの自動配置の際には、まず曲線Ａにおける極大位置（曲線の変化が増加から減少へと転じる箇所）又は極小位置（曲線の変化が減少から増加へと転じる箇所）を特定し、これらの極大／極小位置に音符記号Ｏを各々配置する。図２に示した曲線Ａでは、第１小節の２拍目と第２小節の３拍目が極大位置、第１小節の４拍目と第３小節の２拍目が極小位置となっており、上記各位置において音符記号Ｏがそれぞれ配置されている（計４個）。
【００２０】
また、上記した極大／極小の各位置に加え、楽譜内における曲線Ａの始点及び終点の各位置に音符記号Ｏをそれぞれ自動的に配置する。こうして、図示の例ではあわせて６個の音符記号Ｏが自動的に配置される。なお、これら自動配置される音符記号Ｏの種類（つまり音長）は、同一小節内において小節線又は隣り合う極大／極小の各位置間における横軸方向の距離に応じて決定してもよいし、ユーザが任意に指定するようにしてもよい。すなわち、極大／極小の各位置に配置される音符記号Ｏの音長は予め決められた長さでもよいし、楽譜の時間軸上次の極大／極小の位置を参照して自動で算出してもよい。自動算出される音長は、次の極大／極小の位置まででもよいし、適当な音符の長さにして次の極大／極小の位置まで休符を挿入するようにしてもよい。
【００２１】
さらに、ユーザは画面上で簡単な操作を行うだけで自動配置された音符記号Ｏの他に１乃至複数個の音符記号Ｏ´を補完的に配置することができる。例えば、音符記号Ｏ´を追加したい箇所として図示のように第２小節の１〜２拍目を範囲指定しておき、前記範囲指定に応じて画面上に表示される指定領域Ｈをユーザがマウス等を用いて上下方向に拡げる又は狭めるように操作すると、該操作に応じて当該範囲において個数（ゆえに音符配置密度）を適宜に変えながら１乃至複数の音符記号Ｏ´を追加配置することができる。なお、この場合には変動する音符配置密度に応じて配置する音符種類を決定するようにしてよい。
【００２２】
具体的には、前記指定領域Ｈの上下範囲を拡げるとその範囲の音符記号Ｏ´の個数が増す一方で（図示の例では黒及び白く塗りつぶしたもの全てが配置され、当該箇所における音符の配置密度が増す）、前記指定領域Ｈの上下範囲を狭めるとその範囲の音符記号Ｏ´の個数が減る（図示の例では黒く塗りつぶしたもののみが配置され、当該箇所における音符の配置密度が減る）。音符記号Ｏ´が追加配置される箇所は、指定領域Ｈ内における曲線Ａと五線譜とが交わる箇所又は曲線Ａと五線譜における第１間等の各線間とが交わる箇所のいずれかである（図中においては、黒又は白く塗りつぶした音符記号Ｏ´が配置されている箇所が該当する）。このようにすると、曲線Ａの形状によって音符の配置密度が変わりうる。つまり、前記指定範囲内における曲線Ａの傾きが急である箇所については音符の配置密度が濃く、前記指定範囲内における曲線Ａの傾きが緩い箇所については音符の配置密度が薄い。
【００２３】
なお、音符の配置密度を変える操作方法として指定範囲を上下方向に拡げたり狭めたりするものを示したが他の方法でもよい。例えば、「音符増加（又は減少）」のボタンを選択して範囲選択するなどでもよい。音符の密度を下げるとき、極大、極小の音符のみになっていた場合には、同じ操作で休符を入れるようにしてもよい。また、操作の度合いに応じて段階的に増加・減少を行うようにしてもよい。
【００２４】
上記したように、音符記号を曲線Ａの極大／極小の各位置に合わせて配置することで、ユーザのイメージをメロディに反映させやすくしている。本願では、ユーザが作成したい曲のメロディに関する「ユーザのイメージ」を特徴的に表すのはメロディの時間的な変化なので、具体的には横軸を時間、縦軸を音高（ピッチ）の２次元平面上の曲線Ａとしてメロディを表したときに、この曲線Ａの極大、極小の出現の仕方だと考えている。すなわち、あるメロディの断片（例え場フレーズ）について「ユーザのイメージ」の特徴を調べるには、音高が上がっているメロディなのか下がっているメロディなのかそれともほとんど変化しないのかを調べる。そして音高が上がっているメロディであれば、時間的にゆっくりなだらかに上がっていくのかそれとも短い時間でかけあがるのかを調べる。音高が下がっているメロディの場合も同様に、時間的にゆっくりなだらかに下がっていくのか、それとも短い時間でかけさがるのかを調べる。メロディの断片を複数つなぎ合わせると、例えばまずはなだらかに音高が上がっていき、あるところで急に下がり、すぐにまたかけあがる、というようにメロディの音高の上下の変化の仕方がわかる。したがって、ユーザが入力した曲線Ａの極大／極小位置が、入力した曲線Ａを元にして生成されるメロディの特徴になる。
【００２５】
上述した図２に示した実施例においては、ユーザが描いた曲線Ａの特定位置（極大／極小の各位置）に音符記号Ｏを自動的に配置するが、これはあくまでも曲線Ａの形状にのっとって音符記号Ｏを配置するものであり、要はユーザがまっさらな状態から曲を作成することに他ならない。しかし、初心者が始めからまっさらな状態で曲を作成すると、メロディとしてありえない曲が作成されることがあり都合が悪いことから、既存の曲（例えばフレーズ分の演奏データ（フレーズデータ）であって、以下では音符データ列と呼んで区別する）を参考できるようにすると、ユーザは思い描く曲をより作成しやすくなる。
【００２６】
そこで、次にユーザが既存の曲を参考にしながら新規に曲を作成することができる、前記「楽譜画面」を用いたデータ生成動作について説明する。この場合には、音符列生成モードとして「検索モード」が設定されている。図３は、データ生成動作の異なる実施態様を説明するために「楽譜画面」の別の表示例を示した概念図である。なお、この図３では説明を理解しやすくするために、音符データ列に基づく複数の音符記号Ｏ´からなる音符列を楽譜上に便宜的に表示しているが、この音符列は楽譜上でなく別途に表示してユーザに提示するとよい。
【００２７】
この場合においても、表示された「楽譜画面」に、ユーザはマウス等を用いて作成したい曲の変化に応じた大雑把なイメージに沿う曲線Ａ（つまりは曲線情報）を入力する。曲線Ａ（曲線情報）の入力後、ユーザは検索範囲を指定する。ここでは小節単位に検索範囲を指定しているがこれに限らず、検索範囲は小節単位以外であってもよく、また曲線Ａの一部でなく全部であってもよい。そして、ユーザにより音符生成ボタンが操作されると、各検索範囲内に含まれる曲線Ａにおいて、該範囲の曲線Ａにおける極大位置又は極小位置を特定することで曲線Ａの特徴を抽出し、音符データ列を多数記憶した楽曲データベース（記憶手段８）から抽出した特徴と同一の特徴を持つ音符データ列を検索する（第１〜第３音符データ列）。
【００２８】
この音符データ列の検索方法は公知のどのような方法であってもよいが、一例を次に示す。まずユーザが入力した曲線Ａを分析し、極大と極小の出現状況とそれぞれの大きさを抽出する。例えばユーザが入力した曲線Ａが、まずはなだらかに音高が上がっていき第１の極大位置で急に下がってその後すぐ第１の極小位置の後でまたかけ上がっており、また第２の極大が第１の極大よりも高い音高に位置するとき、楽曲データベースよりまず第１の極大、第１の極小、第２の極大が順に出現する音符データ列を抽出し、更にその中から「第１の極大の音高＜第２の極大の音高」となる音符データ列を候補とする。
【００２９】
上記検索の結果、該当する音符データ列がある場合には、その音符データ列に基づき「楽譜画面」上に音符記号Ｏを配置することによって演奏データが生成される。ただし、その際に検索した音符データ列に基づく音符記号Ｏ´の配置位置と該当範囲における曲線Ａの描画位置とが大きく異なるような場合には（例えば図３において第２小節及び第３小節に示すように、音符データ列に基づく各音符記号Ｏ´の音高と曲線Ａが位置する音高とが著しく異なっているような場合）、音符データ列に基づく音符記号Ｏ´の配置位置を該当箇所における曲線Ａの描画位置に移動してから配置する。この際には、音符データ列に基づく各音符記号Ｏ´の互いの配置位置関係（図中において点線で示し、各区間でのメロディラインに相当する）を保持したまま移動する。したがって、最終的に音符記号Ｏが自動配置される位置は、例えば第３小節の１拍目に見られるように必ずしも曲線Ａと五線譜とが交わる箇所又は曲線Ａと五線譜における第１間等の各線間とが交わる箇所であるとは限らないし、また第１小節の４拍目又は第３小節の２拍目に見られるように必ずしも曲線Ａの極大／極小の各位置に音符記号が配置されるとは限らない。すなわち、最終的に音符記号Ｏが自動配置される位置は、曲線Ａ上に乗らず多少ずれていることもありうる。以上のように、楽譜上において検索範囲を指定して狭めると共に、音符データ列に基づく各音符記号Ｏ´の互いの配置位置関係を保持したまま移動するようにすると、検索された音符データ列に基づく音符記号の配置そのものが適用されることを防止することができる。
【００３０】
なお、検索した音符データ列が複数ある場合には、その中からもっとも曲線Ａの特徴に近い音符データ列に基づき音符記号Ｏを配置するようにしてもよいし、複数の音符データ列のうちいずれかをユーザが適宜に選択できるようにしてもよい。また、提示された音符データ列が気に入らない場合、ユーザは他の音符データ列を選択することで演奏データを生成しなおすことができる。
なお、図２と同様に音符データ列に基づき配置された音符記号Ｏに加えて、さらに曲線Ａの極大／極小の各箇所や曲線Ａの始点及び終点の各位置に音符記号Ｏを追加的に配置してもよい。また、範囲指定による音符記号の補完的な追加を行うことができてもよい。
【００３１】
上記した「楽譜画面」において、ユーザは従来と同様にして音符記号の追加（図２の音符記号Ｐ参照）、削除、変更あるいは上下左右に移動する等の編集操作を行うことができることは言うまでもない。また、音符記号Ｏが配置される前は言うに及ばず、音符記号Ｏが配置された後で曲線Ａの形状を変えたり移動したりすることができる。その場合、曲線Ａの形状変化（特に極大／極小の数）や移動にあわせて配置済みの音符記号Ｏの配置位置が変わりうるだけでなく、配置される音符記号Ｏの個数やその種類等も変わりうるのは勿論である。このようにして、「楽譜画面」上において音符記号Ｏが自動的に配置されることに伴い、楽譜上に配置された個々の音符記号Ｏに対応した演奏データ（音符データと呼ぶ）が生成され、また上記したような個々の音符記号Ｏに対する編集操作に応じて生成した音符データを編集（追加，削除，変更等）することができる。上記音符データは少なくとも時間、音高、音長に関する情報をもつ。勿論、その他に音符の種類情報や音符の向き情報などの音符表示に係る情報を持つようにしてもよい。
【００３２】
次に、上述した「楽譜画面」を用いての演奏データ生成動作を実現する「データ生成処理」について、図４を用いて説明する。図４は、「データ生成処理」の一実施例を示すフローチャートである。当該処理はＣＰＵ１により実行される処理であって、例えば編集スイッチのオン操作に従い開始されて、編集スイッチのオフ操作に従い終了される。
【００３３】
ステップＳ１は、表示部５上に五線譜のみからなる「楽譜画面」（図２参照）を初期表示する。ステップＳ２は、モード設定スイッチの操作に応じて音符列生成モードとして「検索モード」又は「自動入力モード」のいずれかを設定する。ステップＳ３は、ユーザ操作による曲線情報の入力を受け付ける。ステップＳ４は、前記入力された曲線情報に基づき「楽譜画面」に曲線Ａを描画する。ステップＳ５は、音符列生成モードが検索モードか否かを判定する。音符列生成モードが検索モードでない、つまり自動入力モードであると判定した場合には（ステップＳ５のＮＯ）、「極大／極小配列処理」を実行する（ステップＳ６）。この処理は、図２で説明した演奏データ生成動作を実現する処理である。一方、音符列生成モードが検索モードであると判定した場合には（ステップＳ５のＹＥＳ）、「近似データ配列処理」を実行する（ステップＳ７）。この処理は、図３で説明した演奏データ生成動作を実現する処理である。これらの各処理については後述する図５又は図７を用いて詳細に説明する。
【００３４】
ステップＳ８は、楽譜上で音符記号Ｏの修正操作が行われたか否か、すなわち楽譜上に配置された音符記号Ｏの追加、削除、変更あるいは移動等の操作が行われたか否かを判定する。楽譜上で音符記号Ｏの修正操作が行われたと判定した場合には（ステップＳ８のＹＥＳ）、操作に応じて表示の更新及び演奏データの更新を行う（ステップＳ９）。ステップＳ１０は、楽譜上で曲線Ａの修正操作が行われたか否かを判定する。楽譜上で曲線Ａの修正操作が行われたと判定した場合には（ステップＳ１０のＹＥＳ）、曲線情報及びそれに伴う曲線Ａの表示更新を行う（ステップＳ１１）。ステップＳ１２は、再生スイッチの操作に従い再生指示操作が行われたか否かを判定する。再生指示操作が行われた場合には（ステップＳ１２のＹＥＳ）、生成した演奏データを再生する（ステップＳ１３）。
【００３５】
図５は、「極大／極小配列処理」（図４のステップＳ６参照）の一実施例を示すフローチャートである。ステップＳ２１は、特徴ポイントリスト（図６参照）を初期化する。ステップＳ２２は、入力された曲線情報に基づき曲線Ａの極大ポイントと極小ポイントとを１乃至複数箇所において特定し、該特定したこれらの位置を特徴ポイントリストに格納する。
【００３６】
ここで、曲線情報から抽出した１乃至複数箇所の極大ポイントと極小ポイントを格納するための特徴ポイントリストについて図６を用いて説明する。図６は、特徴ポイントリストのデータ構成を示す概念図である。特徴ポイントリストはＲＡＭ３等に記憶されるものであり、「楽譜画面」上に描画された曲線Ａにおける１乃至複数の極大／極小の各位置を演奏進行順に記憶する。
【００３７】
図６に示すように、特徴ポイントリストは、極大／極小のいずれであるかを示す情報と、極大／極小の各位置（ポイント）を示す情報として「楽譜画面」に表示された楽譜の横軸に対応する時間位置及び縦軸に対応する音高位置とを記憶する。極大／極小の各位置を示す情報は画面の座標情報であってもよいが、音符データ生成のために予め表示された楽譜（五線譜）を考慮した時間位置（小節位置）や音高情報に変換して記憶しておくとよい。具体例を示すと、例えば図２に示す曲線Ａが「楽譜画面」上に描画された場合、最初に出現するのは極大でありその位置は第１小節２拍目の音高「C4」であることから、特徴ポイントリストには最初のデータ（No.1）として「極大，第１小節２拍目，72（C4）」と記憶される。以下、同様にして「極小，第１小節４拍目，67（G3）」、「極大，第２小節３拍目，74（D4）」、「極小，第３小節２拍目，69（A3）」の各データが順に記憶される（No.2〜No.4）。
【００３８】
図５の説明に戻って、ステップＳ２３は、表示中の楽譜に対応する演奏データを初期化する。ステップＳ２４は、特徴ポイントリスト中に記憶された各極大ポイントあるいは極小ポイント毎に音符記号Ｏに対応する音符データを生成して演奏データに追加する。この際に、楽譜上での音高が算出されていない場合は表示されている楽譜上での音高を算出し、位置情報と音高情報を元に音符データを生成してから演奏データに追加する。これは、曲線Ａの極大／極小位置に音符記号Ｏを各々配置する場合に該当する。ステップＳ２５は、曲線情報に基づく曲線Ａの先頭位置について表示されている楽譜上での音高を算出し、その先頭位置情報と音高情報を元に音符データを生成し演奏データの先頭に追加する。ステップＳ２６は、曲線情報に基づく曲線Ａの末尾位置について表示されている楽譜上での音高を算出し、その末尾位置情報と音高情報を元に音符データを生成し演奏データの末尾に追加する。これらは、曲線Ａの始点／終点に音符記号Ｏを各々配置する場合に該当する。ステップＳ２７は、生成した演奏データ（音符データ）に基づき形成される音符列を楽譜上に表示する。
【００３９】
ステップＳ２８は、曲線Ａの範囲選択操作及び音符密度変更指示操作が行われたか否かを判定する。曲線Ａの範囲選択操作及び音符密度変更指示操作が行われた場合には（ステップＳ２８のＹＥＳ）、音符密度増加指示つまり図２の指定領域Ｈを上下方向に拡げる指示であるか否かを判定する（ステップＳ２９）。音符密度増加指示でない場合には（ステップＳ２９のＮＯ）、極大（極小）ポイント以外にある音符記号Ｏに対応する音符データを削除する（ステップＳ３０）。音符密度増加指示である場合には（ステップＳ２９のＹＥＳ）、音符記号Ｏが配置されておらずかつ曲線Ａ上において音高が確定できる位置に音符データを生成して演奏データに追加する（ステップＳ３１）。これは、図２の指定領域Ｈを上下方向に拡げる指示に応じて、自動配置された音符記号Ｏの他に１乃至複数個の音符記号Ｏ´を補完的に配置する場合に該当する。
【００４０】
図７は、「近似データ配列処理」（図４のステップＳ７参照）の一実施例を示すフローチャートである。ステップＳ４１は、楽譜上において対象範囲選択操作が行われたか否かを判定する。対象範囲選択操作が行われていない場合には（ステップＳ４１のＮＯ）、以降の処理の実行を待機する。対象範囲選択操作が行われている場合には（ステップＳ４１のＹＥＳ）、特徴ポイントリスト（図６参照）を初期化する（ステップＳ４２）。ステップＳ４３は、入力された曲線情報に基づき対象範囲における曲線Ａの極大ポイントと極小ポイントとを特定し、該特定したこれらの位置を特徴ポイントリストに格納する。ステップＳ４４は、楽曲データベースから検索された音符データ列を格納するためのデータリストを初期化する。
【００４１】
ステップＳ４５は、楽曲データベースより対象範囲の長さの音符データ列を取り出し、極大ポイントと極小ポイントを抽出しながら特徴ポイントリストに記憶された極大ポイントと極小ポイントの出現数とその順番（極大ポイントと極小ポイントの出現状態）とを比較する。比較の結果、各ポイントの出現数と順番（出現状態）とが同じである場合には取り出した音符データ列をデータリストに追加する。なお、楽曲データベースには音符データ列毎に該データによって実現される楽譜上の曲線（メロディラインに相当する）に従う極大ポイントと極小ポイントとを予め登録しておき、該登録してある情報に従って特徴ポイントリストとの比較を行うとよい。ステップＳ４６は、次の音符データ列を探すか否かを判定する。次の音符データ列を探すと判定した場合には（ステップＳ４６のＹＥＳ）、上記ステップＳ４５の処理に戻って処理を繰り返し実行する。他方、次の音符データ列を探さないと判定した場合には（ステップＳ４６のＮＯ）、後続のステップＳ４７の処理へ進む。
【００４２】
ステップＳ４７は、データリスト内に音符データ列が複数個あるか否かを判定する。データリスト内に音符データ列が複数個あると判定した場合には（ステップＳ４７のＹＥＳ）、データリスト中の各音符データ列について、極大ポイント同士の音高の大小関係と極小ポイント同士の音高の大小関係を抽出しながら特徴ポイントリストに含まれる極大ポイント同士の音高の大小関係と極小ポイント同士の音高の大小関係が同じものを探す（ステップＳ４８）。ステップＳ４９は、該当する音符データ列があるか否かを判定する。該当する音符データ列がある場合には（ステップＳ４９のＹＥＳ）、該当する音符データ列を楽譜上に表示された曲線に音高を合わせるように調整し（つまりは音高を変換する）、ユーザに提示する（ステップＳ５０）。ステップＳ５１は、対象範囲の音符データ列を決定して（ユーザ選択／先頭の音符データ列／その他ルールによる選択などの適宜の方法による）、該決定した音高調整後の音符データ列を演奏データに追加する。ステップＳ５２は、決定した音符データ列に基づく音符記号Ｏを楽譜の対象範囲に表示する。その後、ステップＳ５４の処理へ進む。
【００４３】
上記ステップＳ４７の処理においてデータリスト内の音符データ列が複数個でないと判定された場合（ステップＳ４７のＮＯ）、又は上記ステップＳ４９の処理において該当する音符データ列がないと判定された場合には（ステップＳ４９のＮＯ）、データリストの先頭の音符データ列を楽譜上に表示する。そして、表示する音符データ列の各音高は、楽譜上に表示された曲線に合わせる（ステップＳ５３）。ここで、データリスト内に音符データ列が記憶されていない場合には、曲線Ａの極大／極小位置に音符記号Ｏを各々配置する音符データ列を生成するようにしてよい。その後、ステップＳ５４の処理へ進む。
【００４４】
ステップＳ５４は、決定した音符データ列に含まれる各極大ポイントと極小ポイントについて極大（極小）ポイントになる音符データが半音進行になっているか否かをチェックする。半音進行になっていない場合、極大（極小）ポイントに配置された音符データが半音進行になるような音符データを新規に生成し、音符データ列に挿入及び表示更新する。このとき、生成する音符データの音長は、例えば極大（極小）ポイントに配置される音符データの音長の半分程度にして前後の音符データの音長を調整するようにしてもよいし、あるいは極大（極小）ポイントになる音符データの長さを３等分した長さで、極大（極小）ポイントに配置される音符データの位置に半音下（半音上）の音符データ、次に極大（極小）のポイントに配置される音符データ、さらに次に半音下（半音上）の音符データを時間順に並べるようにしてもよい。このようにして、極大（極小）ポイントに配置された音符の前後に、これらの音符が半音進行を形成するように新規に音符データを前後に追加することで、より効果的にユーザのイメージを現した演奏データを生成できるようにしている。
【００４５】
以上のようにすると、ユーザは楽譜上に音符記号を配置する編集操作として、作成したい曲の大雑把なイメージに沿って楽譜上に曲線を入力する（描く）だけで、既存のフレーズデータを利用して演奏データを生成することができるようになる。すなわち、ユーザはこの曲線を描くといった容易な操作のみで楽譜上に何も表示されていないような状態から、例えば暫定的に音符を配列した状態での編集の基点となりうる初期の演奏データを生成して用意することができる。しかも、フレーズデータに基づく音符記号を相前後する各音符間の音高関係を維持したまま前記入力された曲線に近づけて表示すると共に、該当する音符情報の音高を変換して演奏データを生成するようにしたことから、既存のフレーズデータを利用したとしても、既存のフレーズデータのイメージに囚われることなくユーザの入力したイメージに沿う、音楽的にありうる曲（メロディ）の演奏データを生成することが簡単にできるようになる。
【００４６】
なお、上述した実施例では楽譜上に描く曲線Ａを１本とした例を示したが、複数の曲線Ａを重ねて描けるようにしてもよい。
なお、楽譜上に描く曲のイメージは曲線で表すのが望ましいが、画面上に用意された楽譜の表示領域が狭い場合など曲線を描きにくい場合には直線を複数組み合わせた折れ線形状などで描くようにしてもよい。
なお、画面に表示される楽譜の小節幅は変更可能であってよい。
なお、画面に表示される楽譜として五線譜を表示して音符記号を配置するものを例に示したがこれに限らず、例えば五線譜の代わりにピアノロールを表示しておき、その上に音符記号の代わりに音符イベントを配置するようにしてもよい。
なお、曲のイメージを表す曲線Ａはユーザが直接入力することに限らず、例えば別途作成しておいた曲線を読み込んで入力（表示）するようにしてもよい。
【００４７】
なお、楽曲データベースに記憶する音符データ列は、ユーザが作成した演奏データでもよい。また、フレーズデータに限らず１曲分の演奏データであってもよい。ただし、１曲分の演奏データを記憶している場合には、指定範囲の長さに応じてデータを切り出してから検索を行い提示する。例えば指定範囲が２小節である場合、音符データ列の先頭小節から順に１小節ずつずらしながら２小節分ずつデータを切り出して比較し、該当するものを提示するとよい。
なお、楽曲データベースに記憶する音符データ列は適宜移調して活用するようにしてよい。
なお、検索した音符データ列を表示する際には、最初の音高を曲線Ａにおける対象範囲の先頭付近の音高に合わせるように移調して表示するとよい。もしくは、対象範囲の直前の音高が決定している場合には、その音高につながるようにして検索した音符データ列の各音高をシフトするとよい。
なお、極大／極小位置に半音進行の音符データを追加する場合には、極大（極小）位置に配置された音符データとその直前にある音符データの音長とを追加した音符データの音長分だけ短くする。
【図面の簡単な説明】
【００４８】
【図１】この発明に係る演奏データ編集装置の全体構成の一実施例を示したハード構成ブロック図である。
【図２】楽譜画面の表示例を示した概念図である。
【図３】楽譜画面の別の表示例を示した概念図である。
【図４】データ生成処理の一実施例を示すフローチャートである。
【図５】極大／極小配列処理の一実施例を示すフローチャートである。
【図６】特徴ポイントリストのデータ構成を示す概念図である。
【図７】近似データ配列処理の一実施例を示すフローチャートである。
【符号の説明】
【００４９】
１…ＣＰＵ、２…ＲＯＭ、３…ＲＡＭ、４…入力操作部、５…表示部、６…音源、６Ａ…サウンドシステム、７…通信インタフェース、８…記憶装置、１Ｄ…通信バス、Ａ…曲線、Ｏ（Ｏ´，Ｐ）…音符記号、Ｈ…指定領域
【図１】
2010072223.tif 000003
【図２】
2010072223.tif 000004
【図３】
2010072223.tif 000005
【図４】
2010072223.tif 000006
【図５】
2010072223.tif 000007
【図６】
2010072223.tif 000008
【図７】
2010072223.tif 000009