(57)【要約】      （修正有）【課題】演奏コードの構成音間の音程差を維持して音高変化させる楽音発生装置を提供する。【解決手段】ＣＰＵは、第１の押鍵音高を第１目標値に、１つ前の押鍵音高を第１起点に設定し、第１の押鍵音高を第１起点から第１目標値へポルタメント発音させる。第２の押鍵音高を第２目標値に、第２の押鍵音高と第１の押鍵音高との音程差を第１目標値へ向けてポルタメント発音中の楽音の音高に加算して第２起点を設定し、第２の押鍵音高を第２起点から第２目標値へポルタメント発音させる。第３の押鍵音高を第３目標値に、第３の押鍵音高と第２の押鍵音高との音程差を第２目標値へ向けてポルタメント発音している楽音の音高に加算して第３起点を設定し、第３の押鍵音高を第３起点から第３目標値へポルタメント発音させる。【選択図】図５
2015018112.tif 000002
【特許請求の範囲】
【請求項１】
音高指定操作が行われる度に、当該音高指定操作によって指定された音高を、目標音高として設定する目標音高設定手段と、
前記音高指定操作の１つ前の音高指定操作によって指定された音高による楽音の発音がポルタメント発音中であるか否か判別する判別手段と、
前記判別手段によりポルタメント発音中であると判別された場合に、前記目標音高、前記１つ前の音高指定操作によって指定された音高、前記音高指定操作の２つ前の音高指定操作により指定された音高、及び前記ポルタメント発音されている音高夫々の関係に基づいて決定された音高を、起点音高として設定する第１の起点音高設定手段と、
前記設定された起点音高を発音開始音高として前記設定された目標音高まで連続的に音高を可変させることにより楽音のポルタメント発音を行うポルタメント発音手段と、
を有する楽音発生装置。
【請求項２】
前記第１の起点音高設定手段は、前記目標音高が前記１つ前の音高指定操作によって指定された音高及び前記音高指定操作の２つ前の音高指定操作により指定された音高より高いと判別された場合で、前記ポルタメント発音されている音高が上がっているときは、前記目標音高と前記１つ前の音高指定操作によって指定された音高との差分を、前記ポルタメント発音中の音高に加算した音高を起点音高として設定するとともに、ポルタメント発音されている音高が上がっていないときは、前記ポルタメント発音中の音高を起点音高として設定する、請求項１記載の楽音発生装置。
【請求項３】
前記第１の起点音高設定手段は、前記目標音高が前記１つ前の音高指定操作によって指定された音高より高くかつ前記音高指定操作の２つ前の音高指定操作により指定された音高より低いと判別された場合で、前記ポルタメント発音されている音高が前記目標音高より高いときは、前記目標音高と前記１つ前の音高指定操作によって指定された音高との差分を、前記ポルタメント発音中の音高に加算した音高を起点音高として設定するとともに、前記ポルタメント発音されている音高が前記目標音高より低い場合は、前記ポルタメント発音中の音高を起点音高として設定する、請求項１または２記載の楽音発生装置。
【請求項４】
前記第１の起点音高設定手段は、前記目標音高が前記１つ前の音高指定操作によって指定された音高及び前記音高指定操作の２つ前の音高指定操作により指定された音高より低いと判別された場合で、前記ポルタメント発音されている音高が上がっていないときは、前記目標音高と前記１つ前の音高指定操作によって指定された音高との差分を、前記ポルタメント発音中の音高に加算した音高を起点音高として設定するとともに、ポルタメント発音されている音高が上がっているときは、前記ポルタメント発音中の音高を起点音高として設定する、請求項１乃至３のいずれかに記載の楽音発生装置。
【請求項５】
前記第１の起点音高設定手段は、前記目標音高が前記１つ前の音高指定操作によって指定された音高より低くかつ前記音高指定操作の２つ前の音高指定操作により指定された音高より高いと判別された場合で、前記ポルタメント発音されている音高が前記目標音高より高いときは、前記目標音高と前記１つ前の音高指定操作によって指定された音高との差分を、前記ポルタメント発音中の音高に加算した音高を起点音高として設定するとともに、前記ポルタメント発音されている音高が前記目標音高より低い場合は、前記ポルタメント発音中の音高を起点音高として設定する、請求項１乃至４いずれかに記載の楽音発生装置。
【請求項６】
前記判別手段によりポルタメント発音中でないと判別された場合には、前記１つ前の音高指定操作によって指定された音高を起点音高として設定する第２の起点音高設定手段をさらに有する、請求項１乃至５のいずれかに記載の楽音発生装置。
【請求項７】
音高指定操作が行われる度に、当該音高指定操作によって指定された音高を、目標音高として設定し、
前記音高指定操作の１つ前の音高指定操作によって指定された音高による楽音の発音がポルタメント発音中であるか否か判別し、
ポルタメント発音中であると判別された場合に、前記目標音高、前記１つ前の音高指定操作によって指定された音高、前記音高指定操作の２つ前の音高指定操作により指定された音高、及び前記ポルタメント発音されている音高夫々の関係に基づいて決定された音高を、起点音高として設定し、
前記設定された起点音高を発音開始音高として前記設定された目標音高まで連続的に音高を可変させることにより楽音のポルタメント発音を行う、楽音発生方法。
【請求項８】
音高指定操作が行われる度に、当該音高指定操作によって指定された音高を、目標音高として設定するステップと、
前記音高指定操作の１つ前の音高指定操作によって指定された音高による楽音の発音がポルタメント発音中であるか否か判別するステップと、
ポルタメント発音中であると判別された場合に、前記目標音高、前記１つ前の音高指定操作によって指定された音高、前記音高指定操作の２つ前の音高指定操作により指定された音高、及び前記ポルタメント発音されている音高夫々の関係に基づいて決定された音高を、起点音高として設定するステップと、
前記設定された起点音高を発音開始音高として前記設定された目標音高まで連続的に音高を可変させることにより楽音のポルタメント発音を行うステップと、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏されたコードの構成音間の音程差を維持したまま音高変化するポリフォニック・ポルタメントを具現する楽音発生装置、楽音発生方法およびプログラムに関する。
【背景技術】
【０００２】
従来よりポルタメント機能を備えた楽音発生装置が知られている。ポルタメント機能とは、前押鍵で発音中の音高（起点）から現押鍵で発音する音高（目標値）へ滑らかに到達させる機能であり、起点と目標値との音程差にかかわらずポルタメントの変化速度を一定にしたり、起点と目標値との音程差に応じたポルタメントの変化速度を設定してポルタメントの時間を一定にするものが知られている。
【０００３】
また、例えば特許文献１に開示されているように、音程差が半音の時の基準的なポルタメントレートＲと、起点ピッチと目標ピッチとの音程差Ｉと、この音程差Ｉがポルタメント速度ｒに依存する度合いを表すインターバル依存係数Ｋとに応じてポルタメント速度ｒを算出し、算出したポルタメント速度ｒを所定周期毎に現ピッチに加算して目的ピッチまで連続的に変化させることで、例えば速いフレーズを演奏しているときはフレーズのピッチ到達が間に合わないようなことが無いようになるべく時間が一定のポルタメントとなるインターバル依存係数Ｋを設定したり、また、ゆっくりしたフレーズを演奏しているときは速度が一定のポルタメントとなるインターバル依存係数Ｋを設定することによって最適なポルタメント効果を付与する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−５３４３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上述した特許文献１に開示の技術は、モノフォニック（単音発音）を想定しており、コード演奏（和音演奏）によるポリフォニック（複音発音）・ポルタメントでは、次に述べる問題が生じる。
【０００６】
ポリフォニック・ポルタメントでは、コード演奏による複数の押鍵が発生した場合に、前押鍵の発音音高を起点とし、現押鍵の発音音高まで音高変化させる。これについて図６を参照して説明する。図６は、鍵盤上で為される前押鍵の位置および現押鍵（今回の押鍵）の位置を示すと共に、前押鍵タイミングと現押鍵タイミングとを示す図である。
【０００７】
図６において、例えば音高Ｃ１の鍵が前押鍵で発音され、今回のコード演奏として「Ｃメジャー」、すなわち構成音「Ｃ４音」、「Ｅ４音」、「Ｇ４音」を順に押鍵したものとする。そうすると、先ず「Ｃ４音」の押鍵に対しては、Ｃ１音がＣ４押鍵起点となって「Ｃ４目標」へ向かうように発音音高を変化させる。
【０００８】
次に「Ｅ４音」の押鍵に対しては、既に「Ｃ４目標」へ向かっている現在の音高、すなわちＣ１音より高い音程のＥ４押鍵起点から「Ｅ４目標」へ向かうように発音音高を変化させる。さらに「Ｇ４音」の押鍵に対しては、既に「Ｅ４目標」へ向かっている現在の音高、すなわち２音目より高い音程のＧ４押鍵起点から「Ｇ４目標」へ向かうように発音音高を変化させる。こうした音高変化では、図６に図示する通り、３つの構成音（「Ｃ４音」、「Ｅ４音」および「Ｇ４音」）が同じ音高変化を辿る為に構成音間の音程差が無く和音感が失われてしまう。
【０００９】
そこで、過去に為された複数の押鍵音高を履歴として保持しておき、複数の押鍵が同時に発生した場合に、最新の押鍵音高のみならず、それ（最新の押鍵）の１つ前の押鍵音高や、２つ前の押鍵音高を別の起点に割り当てることによって音高変化中（ポルタメント発音中）の和音感を維持する技術も案出されている。この技術について図７を参照して説明する。
【００１０】
図７において、例えば前回、構成音「Ｃ１音」、「Ｆ１音」、「Ａ♭１音」の順に押鍵してなる「Ｆマイナー」のコード演奏が為された後、今回「Ｃメジャー」のコード演奏として構成音「Ｃ４音」、「Ｅ４音」、「Ｇ４音」の順に押鍵したとする。そうすると、先ず「Ｃ４音」の押鍵に対しては、１つ前の押鍵音高「Ａ♭１音」を起点として「Ｃ４目標」へ向かうように発音音高を変化させる。
【００１１】
次に、「Ｅ４音」の押鍵に対しては、「Ｃ４音」の押鍵に応じて音高変化中の楽音が「Ｃ４目標」に到達していないことを条件に、２つ前の押鍵音高「Ｆ１音」を起点として「Ｅ４目標」へ向かうように発音音高を変化させる。さらに「Ｇ４音」の押鍵に対しては、「Ｃ４音」および「Ｅ４音」の押鍵に応じて音高変化中の各楽音がいずれも「Ｃ４目標」および「Ｅ４目標」に到達していないことを条件に、３つ前の押鍵音高「Ｃ１音」を起点として「Ｇ４目標」へ向かうように発音音高を変化させる。
【００１２】
こうした音高変化によれば、構成音間の音程差が生じて和音感を得ることが出来る反面、今回「Ｃメジャー」のコード演奏として構成音「Ｃ４音」、「Ｅ４音」、「Ｇ４音」をほぼ同時に押鍵した場合であっても、音高変化中の構成音間の音程差はＣ１／Ｇ１／Ａ♭１のＦマイナーというマイナーコードになってしまう。
【００１３】
つまり、メジャーコードを演奏したにも係わらずマイナーコードで音高変化するという和声的に好ましくない弊害が生じ、さらには「Ｃメジャー」のコード演奏がばらついた場合、すなわち構成音「Ｃ４音」、「Ｅ４音」、「Ｇ４音」が所定時間を経て順に押鍵される形であると、図８に図示するように、音高変化中の構成音間の音程差が不協和音となってしまい和音感が失われる問題も生じる。
【００１４】
従って、以上説明した内容を纏めると、先行技術に基づくポリフォニック・ポルタメントでは、演奏されたコードの構成音間の音程差を維持したまま音高変化することが出来ない、という問題がある。
【００１５】
そこで本発明は、このような事情に鑑みてなされたもので、演奏されたコードの構成音間の音程差を維持したまま音高変化するポリフォニック・ポルタメントを具現することが出来る楽音発生装置、楽音発生方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明の楽音発生装置は、音高指定操作が行われる度に、当該音高指定操作によって指定された音高を、目標音高として設定する目標音高設定手段と、
前記音高指定操作の１つ前の音高指定操作によって指定された音高による楽音の発音がポルタメント発音中であるか否か判別する判別手段と、
前記判別手段によりポルタメント発音中であると判別された場合に、前記目標音高、前記１つ前の音高指定操作によって指定された音高、前記音高指定操作の２つ前の音高指定操作により指定された音高、及び前記ポルタメント発音されている音高夫々の関係に基づいて決定された音高を、起点音高として設定する第１の起点音高設定手段と、
前記設定された起点音高を発音開始音高として前記設定された目標音高まで連続的に音高を可変させることにより楽音のポルタメント発音を行うポルタメント発音手段と、
を有することを特徴とする。
【００１７】
また、本発明の楽音発生方法では、音高指定操作が行われる度に、当該音高指定操作によって指定された音高を、目標音高として設定し、
前記音高指定操作の１つ前の音高指定操作によって指定された音高による楽音の発音がポルタメント発音中であるか否か判別し、
ポルタメント発音中であると判別された場合に、前記目標音高、前記１つ前の音高指定操作によって指定された音高、前記音高指定操作の２つ前の音高指定操作により指定された音高、及び前記ポルタメント発音されている音高夫々の関係に基づいて決定された音高を、起点音高として設定し、
前記設定された起点音高を発音開始音高として前記設定された目標音高まで連続的に音高を可変させることにより楽音のポルタメント発音を行う、ことを特徴とする。
【００１８】
更に、本発明のプログラムでは、音高指定操作が行われる度に、当該音高指定操作によって指定された音高を、目標音高として設定するステップと、
前記音高指定操作の１つ前の音高指定操作によって指定された音高による楽音の発音がポルタメント発音中であるか否か判別するステップと、
ポルタメント発音中であると判別された場合に、前記目標音高、前記１つ前の音高指定操作によって指定された音高、前記音高指定操作の２つ前の音高指定操作により指定された音高、及び前記ポルタメント発音されている音高夫々の関係に基づいて決定された音高を、起点音高として設定するステップと、
前記設定された起点音高を発音開始音高として前記設定された目標音高まで連続的に音高を可変させることにより楽音のポルタメント発音を行うステップと、
をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１９】
本発明では、演奏されたコードの構成音間の音程差を維持したまま音高変化するポリフォニック・ポルタメントを具現することが出来る。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の一形態による楽音発生装置１００の全体構成を示すブロック図である。
【図２】押鍵イベント処理の動作を示すフローチャートである。
【図３】起点処理１の動作を示すフローチャートである。
【図４】起点処理２の動作を示すフローチャートである。
【図５】押鍵イベント処理で具現されるポリフォニック・ポルタメント動作の一例を示す図である。
【図６】先行技術を説明するための図である。
【図７】先行技術を説明するための図である。
【図８】先行技術を説明するための図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施形態について説明する。
Ａ．構成
図１は、本発明の実施の一形態による楽音発生装置１００の全体構成を示すブロック図である。この図において、ＣＰＵ１０は、操作部１５に配設される各種スイッチ操作に応じて装置各部の動作形態を指定する他、鍵盤１３から出力される演奏情報に応じた楽音を生成するよう波形発生器（ＯＳＣ）１７および増幅器（ＡＭＰ）１８に指示する。また、ＣＰＵ１０は、後述する押鍵イベント処理を実行することによって、演奏されたコードの構成音間の音程差を維持したまま音高変化するポリフォニック・ポルタメントを具現する。なお、ＣＰＵ１０が実行する押鍵イベント処理については追って詳述する。
【００２２】
ＲＯＭ１１は、上記ＣＰＵ１０が実行する各種プログラムを記憶する。各種プログラムとは、後述する押鍵イベント処理を含む。ＲＡＭ１２は、ＣＰＵ１０のワークエリアとして用いられ、各種レジスタ・フラグデータを一時記憶する。各種レジスタの内には、過去に為された複数の押鍵音高や発音状態（ポルタメント発音か否か等）を履歴として記憶保持する押鍵レジスタが含まれる。
【００２３】
鍵盤１３は、押離鍵操作（演奏操作）に応じたキーオン／キーオフイベント、ノートナンバ（又は鍵番号）およびベロシティを含む演奏情報を発生してＣＰＵ１０に供給する。ポルタメント操作子１４は、ユーザ操作に応じて、ポルタメント速度を制御するパラメータを発生する。なお、本実施形態では、ポルタメント操作子１４は一定のポルタメント速度を表すパラメータを発生する。
【００２４】
操作部１５は、操作パネルに配設される各種スイッチを有し、操作されるスイッチ種に応じたスイッチイベントを発生してＣＰＵ１０に供給する。表示部１６は、ＬＣＤパネル等から構成され、ＣＰＵ１０から供給される表示制御信号に応じて装置各部の設定状態や動作状態などを画面表示する。波形発生器（ＯＳＣ）１７は、周知の波形メモリ読み出し方式で構成され、ＣＰＵ１０から供給される楽音コマンドに従った波形データを出力する。例えばＣＰＵ１０からノートナンバを含むノートオンコマンドを受領した場合には、ノートナンバに対応した読み出し速度で自己が記憶する波形データを読み出して波形出力する。
【００２５】
増幅器（ＡＭＰ）１８は、演奏情報に含まれるベロシティに基づきＣＰＵ１０が発生する音量エンベロープ波形を、前段の波形発生器１７から供給される波形データに乗算して楽音波形データを発生する。サウンドシステム１９は、増幅器１８から出力される楽音波形データをアナログ形式の楽音信号に変換した後、当該楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカから発音させる。
【００２６】
Ｂ．動作
次に、図２〜図５を参照して、上記構成による楽音発生装置１００のＣＰＵ１０が実行する押鍵イベント処理、起点処理１および起点処理２の各動作について説明する。
なお、本実施形態においては、ポルタメントは、指定される音高１つ前の押鍵により指定される音高から現在押鍵により指定された音高まで連続的に音高を変化させるものであり、この動作は押鍵がなされたときに前の押鍵された鍵が離鍵されていないことが条件である。したがって、以下に説明するフローチャートにおいては、１つ前の押鍵音高と現在の押鍵音高とが同一とならないことが前提となっている。
【００２７】
（１）押鍵イベント処理の動作
図２は、押鍵イベント処理の動作を示すフローチャートである。押鍵イベント処理は、押鍵操作に応じて鍵盤１３が演奏情報（キーオン信号、ノートナンバおよびベロシティ）を発生した場合に実行される。本処理が実行されると、ＣＰＵ１０は図２に図示するステップＳＡ１に進み、現在押鍵された鍵の音高（以下、押鍵音高と略称する）を目標値に設定する。
【００２８】
続いて、ステップＳＡ２では、１つ前の押鍵がポルタメントで発音中か否かを判断する。なお、１つ前の押鍵の発音状態は、ＲＡＭ１２が備える押鍵レジスタに登録された履歴内容に基づきチェックする。１つ前の押鍵がポルタメントで発音中でなければ、上記ステップＳＡ２の判断結果は「ＮＯ」になり、ステップＳＡ３に進み、１つ前の押鍵音高を、現押鍵による発音音高（目標値）の起点に設定する。この後、ステップＳＡ７に進み、現押鍵に対応した起点および目標値まで音高変化する楽音を発生するよう波形発生器（ＯＳＣ）１７および増幅器（ＡＭＰ）１８に指示する発音開始処理を実行して本処理を終える。
【００２９】
一方、１つ前の押鍵がポルタメントで発音中であると、上記ステップＳＡ２の判断結果は「ＹＥＳ」になり、ステップＳＡ４に進む。ステップＳＡ４では、現在の押鍵音高と、１つ前の押鍵音高とを比較する。現在の押鍵音高が高い場合には、ステップＳＡ５に進み、現在の押鍵の発音の起点を決定する起点処理１を実行する。
【００３０】
後述するように、起点処理１では、現在の押鍵音高と、２つ前の押鍵音高とを比較し、現在の押鍵音高が２つ前の押鍵音高より高ければ、ポルタメントで発音している楽音の音高が上がっているか否かを判別し、ポルタメントで発音している楽音の音高が下がっていれば、ポルタメントで発音している楽音の音高を起点に設定する。一方、ポルタメントで発音している楽音の音高が上がっていれば、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高に加算し、加算して得られた音高を起点に設定する。
【００３１】
これに対し、現在の押鍵音高が２つ前の押鍵音高より低ければ、ポルタメントで発音している楽音の音高と目標値とを比較し、目標値の方が高い場合には、ポルタメントで発音している楽音の音高を起点に設定する。一方、目標値の方が低い場合には、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高に加算し、加算して得られた音高を起点に設定する。
【００３２】
そして、起点処理１によって現在の押鍵の発音の起点が決まると、ステップＳＡ７に進み、現押鍵に対応した起点および目標値まで音高変化するよう波形発生器（ＯＳＣ）１７および増幅器（ＡＭＰ）１８に指示する発音開始処理を実行して本処理を終える。
【００３３】
さて一方、現在の押鍵音高と、１つ前の押鍵音高とを比較し、現在の押鍵音高が低い場合には、ステップＳＡ６に進み、現在の押鍵の発音の起点を決定する為の起点処理２を実行する。
【００３４】
後述するように、起点処理２では、現在の押鍵音高と、２つ前の押鍵音高とを比較し、現在の押鍵音高が２つ前の押鍵音高より高ければ、ポルタメントで発音している楽音の音高と目標値とを比較し、目標値の方が低い場合には、ポルタメントで発音している楽音の音高を起点に設定する。一方、目標値の方が高い場合には、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高から減算し、減算して得られた音高を起点に設定する。
【００３５】
これに対し、現在の押鍵音高が２つ前の押鍵音高より低ければ、ポルタメントで発音している楽音の音高が上がっているか否かを判別し、ポルタメントで発音している楽音の音高が上がっていれば、ポルタメントで発音している楽音の音高を起点に設定する。一方、ポルタメントで発音している楽音の音高が下がっていれば、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高から減算し、減算して得られた音高を起点に設定する。
【００３６】
そして、起点処理２によって現在の押鍵の発音の起点が決まると、ステップＳＡ７に進み、現押鍵に対応した起点および目標値まで音高変化する楽音を発生するよう波形発生器（ＯＳＣ）１７および増幅器（ＡＭＰ）１８に指示する発音開始処理を実行して本処理を終える。
【００３７】
（２）起点処理１の動作
次に、図３を参照して起点処理１の動作を説明する。上述した押鍵イベント処理のステップＳＡ５を介して本処理が実行されると、ＣＰＵ１０は図３に図示するステップＳＢ１に進み、現在の押鍵音高と、２つ前の押鍵音高とを比較する。以下、現在の押鍵音高の方が高い場合と、現在の押鍵音高の方が低い場合とに分けて動作説明を進める。
【００３８】
ａ．現在の押鍵音高＞２つ前の押鍵音高の場合
この場合、ステップＳＢ１を介してステップＳＢ２に進み、ポルタメントで発音している楽音の音高が上がっているか否かを判別する。ポルタメントで発音している楽音の音高が下がっている場合には、ステップＳＢ２を介してステップＳＢ３に進み、ポルタメントで発音している楽音の音高を起点に設定して本処理を終える。
【００３９】
一方、ポルタメントで発音している楽音の音高が上がっている場合には、上記ステップＳＢ２を介してステップＳＢ４に進み、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高に加算し、加算して得られた音高を起点に設定して本処理を終える。
【００４０】
ｂ．現在の押鍵音高＜２つ前の押鍵音高の場合
この場合、ステップＳＢ１を介してステップＳＢ５に進み、ポルタメントで発音している楽音の音高と目標値とを比較する。目標値の方が高い場合には、上記ステップＳＢ５を介してステップＳＢ６に進み、ポルタメントで発音している楽音の音高を起点に設定して本処理を終える。
【００４１】
一方、目標値の方が低い場合には、上記ステップＳＢ５を介してステップＳＢ７に進み、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高に加算し、加算して得られた音高を起点に設定して本処理を終える。
【００４２】
このように、起点処理１では、現在の押鍵音高と、２つ前の押鍵音高とを比較し、現在の押鍵音高が２つ前の押鍵音高より高ければ、ポルタメントで発音している楽音の音高が上がっているか否かを判別し、ポルタメントで発音している楽音の音高が下がっていれば、ポルタメントで発音している楽音の音高を起点に設定する。一方、ポルタメントで発音している楽音の音高が上がっていれば、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高に加算し、加算して得られた音高を起点に設定する。
【００４３】
これに対し、現在の押鍵音高が２つ前の押鍵音高より低ければ、ポルタメントで発音している楽音の音高と目標値とを比較し、目標値の方が高い場合には、ポルタメントで発音している楽音の音高を起点に設定する。一方、目標値の方が低い場合には、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高に加算し、加算して得られた音高を起点に設定する。
【００４４】
（３）起点処理２の動作
次に、図４を参照して起点処理２の動作を説明する。前述した押鍵イベント処理のステップＳＡ６を介して本処理が実行されると、ＣＰＵ１０は図４に図示するステップＳＣ１に進み、現在の押鍵音高と、２つ前の押鍵音高とを比較する。以下、現在の押鍵音高の方が高い場合と、現在の押鍵音高の方が低い場合とに分けて動作説明を進める。
【００４５】
ａ．現在の押鍵音高＞２つ前の押鍵音高の場合
この場合、ステップＳＣ１を介してステップＳＣ２に進み、ポルタメントで発音している楽音の音高と目標値とを比較する。目標値の方が低い場合には、ステップＳＣ２を介してステップＳＣ３に進み、ポルタメントで発音している楽音の音高を起点に設定して本処理を終える。
【００４６】
一方、目標値の方が高い場合には、上記ステップＳＣ２を介してステップＳＣ４に進み、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高から減算し、減算して得られた音高を起点に設定して本処理を終える。
【００４７】
ｂ．現在の押鍵音高＜２つ前の押鍵音高の場合
この場合、ステップＳＣ１を介してステップＳＣ５に進み、ポルタメントで発音している楽音の音高が上がっているか否かを判別する。ポルタメントで発音している楽音の音高が上がっている場合には、判断結果が「ＹＥＳ」になり、ステップＳＣ６に進み、ポルタメントで発音している楽音の音高を起点に設定して本処理を終える。
【００４８】
一方、ポルタメントで発音している楽音の音高が下がっている場合には、上記ステップＳＣ５の判断結果が「ＮＯ」になり、ステップＳＣ７に進み、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高から減算し、減算して得られた音高を起点に設定して本処理を終える。
【００４９】
このように、起点処理２では、現在の押鍵音高と、２つ前の押鍵音高とを比較し、現在の押鍵音高が２つ前の押鍵音高より高ければ、ポルタメントで発音している楽音の音高と目標値とを比較し、目標値の方が低い場合には、ポルタメントで発音している楽音の音高を起点に設定する。一方、目標値の方が高い場合には、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高から減算し、減算して得られた音高を起点に設定する。
【００５０】
これに対し、現在の押鍵音高が２つ前の押鍵音高より低ければ、ポルタメントで発音している楽音の音高が上がっているか否かを判別し、ポルタメントで発音している楽音の音高が上がっていれば、ポルタメントで発音している楽音の音高を起点に設定する。一方、ポルタメントで発音している楽音の音高が下がっていれば、現在の押鍵音高と、１つ前の押鍵音高との音程差を、ポルタメントで発音している楽音の音高から減算し、減算して得られた音高を起点に設定する。
【００５１】
（４）具体的動作の説明
次に、図５を参照して押鍵イベント処理の具体的動作を説明する。図５は、鍵盤上で為される前押鍵（前回コード演奏）の位置および現押鍵（今回コード演奏）の位置を示すと共に、前押鍵タイミングと現押鍵タイミングとを示す図であり、前回、構成音「Ｃ１音」、「Ｆ１音」、「Ａ♭１音」の順に押鍵してなる「Ｆマイナー」のコード演奏が為された後、今回「Ｃメジャー」のコード演奏として構成音「Ｃ４音」、「Ｅ４音」、「Ｇ４音」の順に押鍵する一例を図示している。
【００５２】
以下では、この一例に基づき押鍵イベント処理の具体的動作について述べる。先ず最初の「Ｃ４音」の押鍵に対しては、１つ前の押鍵音高「Ａ♭１音」をＣ４押鍵起点とし、ここから「Ｃ４目標」へ向かうように音高変化させる。
【００５３】
次に、「Ｅ４音」の押鍵に対しては、現在の押鍵音高「Ｅ４音」と、１つ前の押鍵音高「Ｃ４音」との音程差を、ポルタメントで発音している楽音（「Ｃ４目標」へ向かう音）の音高に加算し、加算して得られた音高をＥ４押鍵起点とし、ここから「Ｇ４目標」へ向かうように発音音高を変化させる。
【００５４】
さらに、「Ｇ４音」の押鍵に対しては、現在の押鍵音高「Ｇ４音」と、１つ前の押鍵音高「Ｅ４音」との音程差を、ポルタメントで発音している楽音（「Ｅ４目標」へ向かう音）の音高に加算し、加算して得られた音高をＧ４押鍵起点とし、ここから「Ｅ４目標」へ向かうように発音音高を変化させる。
【００５５】
これにより、音高変化中の構成音間の音程差はＣ４／Ｅ４／Ｇ４となり、今回演奏した「Ｃメジャー」のコード演奏がメジャーコードのまま音高変化する為、演奏されたコードの構成音間の音程差を維持したまま音高変化するポリフォニック・ポルタメントを具現することが可能になる。
【００５６】
以上説明したように、本実施形態では、少なくとも現在のコード演奏で為された第１乃至第３の現押鍵および第１の現押鍵の１つ前の押鍵の音高並びに発音状態を記憶しておき、先ず第１の現押鍵の音高を第１の目標値に設定した後、第１の現押鍵の１つ前の押鍵の音高がポルタメント発音中でなければ、当該１つ前の押鍵の音高を、第１の起点に設定する。そして、第１の現押鍵の音高を第１の起点から第１の目標値へポルタメント発音させる。
【００５７】
次に、第２の現押鍵の音高を第２の目標値に設定し、第１の現押鍵の音高がポルタメント発音中であれば、第２の現押鍵の音高と、第１の現押鍵の音高とを比較し、第２の現押鍵の音高の方が高ければ、第２の現押鍵の音高と、第１の現押鍵の１つ前の押鍵の音高とを比較し、第２の現押鍵の音高の方が高ければ、第１の目標値へ向けてポルタメント発音している楽音の音高が上がっているか否かを判別し、当該ポルタメント発音している楽音の音高が上がっていれば、第２の現押鍵の音高と第１の現押鍵の音高との音程差を、第１の目標値へ向けてポルタメント発音している楽音の音高に加算して第２の起点を設定する。そして、第２の現押鍵の音高を第２の起点から第２の目標値へポルタメント発音させる。
【００５８】
さらに、第３の現押鍵の音高を第３の目標値に設定し、第２の現押鍵の音高がポルタメント発音中であれば、第３の現押鍵の音高と、第２の現押鍵の音高とを比較し、第３の現押鍵の音高の方が高ければ、第３の現押鍵の音高と、第１の現押鍵の音高とを比較し、第３の現押鍵の音高の方が高ければ、第２の目標値へ向けてポルタメント発音している楽音の音高が上がっているか否かを判別し、当該ポルタメント発音している楽音の音高が上がっていれば、第３の現押鍵の音高と第２の現押鍵の音高との音程差を、第２の目標値へ向けてポルタメント発音している楽音の音高に加算して第３の起点を設定する。そして、第３の現押鍵の音高を第３の起点から第３の目標値へポルタメント発音させる。
【００５９】
この結果、音高変化中の構成音間の音程差は第１の押鍵の音高／第２の押鍵の音高／第３の押鍵の音高となるので、演奏されたコード（第１乃至第３の現押鍵）の構成音間の音程差を維持したまま音高変化するポリフォニック・ポルタメントを具現することが出来る。
【００６０】
なお、上述した実施形態では、三和音によるポリフォニック・ポルタメントについて言及したが、本発明の主旨は、それに限定されず、四和音（セブンスコード）や五和音（テンションコード）についても適用可能であることは言うまでもない。また、和音の構成音を同時に発音させずに順番に発音させる分散和音（アルペジオ）にも適用可能である。
【００６１】
以上、本発明の実施の一形態について説明したが、本発明はそれに限定されるものではなく、本願出願の特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。
【００６２】
（付記）
［請求項１］
音高指定操作が行われる度に、当該音高指定操作によって指定された音高を、目標音高として設定する目標音高設定手段と、
前記音高指定操作の１つ前の音高指定操作によって指定された音高による楽音の発音がポルタメント発音中であるか否か判別する判別手段と、
前記判別手段によりポルタメント発音中であると判別された場合に、前記目標音高、前記１つ前の音高指定操作によって指定された音高、前記音高指定操作の２つ前の音高指定操作により指定された音高、及び前記ポルタメント発音されている音高夫々の関係に基づいて決定された音高を、起点音高として設定する第１の起点音高設定手段と、
前記設定された起点音高を発音開始音高として前記設定された目標音高まで連続的に音高を可変させることにより楽音のポルタメント発音を行うポルタメント発音手段と、
を有する楽音発生装置。
【００６３】
［請求項２］
前記第１の起点音高設定手段は、前記目標音高が前記１つ前の音高指定操作によって指定された音高及び前記音高指定操作の２つ前の音高指定操作により指定された音高より高いと判別された場合で、前記ポルタメント発音されている音高が上がっているときは、前記目標音高と前記１つ前の音高指定操作によって指定された音高との差分を、前記ポルタメント発音中の音高に加算した音高を起点音高として設定するとともに、ポルタメント発音されている音高が上がっていないときは、前記ポルタメント発音中の音高を起点音高として設定する、請求項１記載の楽音発生装置。
【００６４】
［請求項３］
前記第１の起点音高設定手段は、前記目標音高が前記１つ前の音高指定操作によって指定された音高より高くかつ前記音高指定操作の２つ前の音高指定操作より指定された音高より低いと判別された場合で、前記ポルタメント発音されている音高が前記目標音高より高いときは、前記目標音高と前記１つ前の音高指定操作によって指定された音高との差分を、前記ポルタメント発音中の音高に加算した音高を起点音高として設定するとともに、前記ポルタメント発音されている音高が前記目標音高より低い場合は、前記ポルタメント発音中の音高を起点音高として設定する、請求項１または２記載の楽音発生装置。
【００６５】
［請求項４］
前記第１の起点音高設定手段は、前記目標音高が前記１つ前の音高指定操作によって指定された音高及び前記音高指定操作の２つ前の音高指定操作により指定された音高より低いと判別された場合で、前記ポルタメント発音されている音高が上がっていないときは、前記目標音高と前記１つ前の音高指定操作によって指定された音高との差分を、前記ポルタメント発音中の音高に加算した音高を起点音高として設定するとともに、ポルタメント発音されている音高が上がっているときは、前記ポルタメント発音中の音高を起点音高として設定する、請求項１乃至３のいずれかに記載の楽音発生装置。
【００６６】
［請求項５］
前記第１の起点音高設定手段は、前記目標音高が前記１つ前の音高指定操作によって指定された音高より低くかつ前記音高指定操作の２つ前の音高指定操作により指定された音高より高いと判別された場合で、前記ポルタメント発音されている音高が前記目標音高より高いときは、前記目標音高と前記１つ前の音高指定操作によって指定された音高との差分を、前記ポルタメント発音中の音高に加算した音高を起点音高として設定するとともに、前記ポルタメント発音されている音高が前記目標音高より低い場合は、前記ポルタメント発音中の音高を起点音高として設定する、請求項１乃至４いずれかに記載の楽音発生装置。
【００６７】
［請求項６］
前記判別手段によりポルタメント発音中でないと判別された場合には、前記１つ前の音高指定操作によって指定された音高を起点音高として設定する第２の起点音高設定手段をさらに有する、請求項１乃至５のいずれかに記載の楽音発生装置。
【００６８】
［請求項７］
音高指定操作が行われる度に、当該音高指定操作によって指定された音高を、目標音高として設定し、
前記音高指定操作の１つ前の音高指定操作によって指定された音高による楽音の発音がポルタメント発音中であるか否か判別し、
ポルタメント発音中であると判別された場合に、前記目標音高、前記１つ前の音高指定操作によって指定された音高、前記音高指定操作の２つ前の音高指定操作により指定された音高、及び前記ポルタメント発音されている音高夫々の関係に基づいて決定された音高を、起点音高として設定し、
前記設定された起点音高を発音開始音高として前記設定された目標音高まで連続的に音高を可変させることにより楽音のポルタメント発音を行う、楽音発生方法。
【００６９】
［請求項８］
音高指定操作が行われる度に、当該音高指定操作によって指定された音高を、目標音高として設定するステップと、
前記音高指定操作の１つ前の音高指定操作によって指定された音高による楽音の発音がポルタメント発音中であるか否か判別するステップと、
ポルタメント発音中であると判別された場合に、前記目標音高、前記１つ前の音高指定操作によって指定された音高、前記音高指定操作の２つ前の音高指定操作により指定された音高、及び前記ポルタメント発音されている音高夫々の関係に基づいて決定された音高を、起点音高として設定するステップと、
前記設定された起点音高を発音開始音高として前記設定された目標音高まで連続的に音高を可変させることにより楽音のポルタメント発音を行うステップと、
をコンピュータに実行させるプログラム。
【符号の説明】
【００７０】
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  鍵盤
１４  ポルタメント操作子
１５  操作部
１６  表示部
１７  波形発生器（ＯＳＣ）
１８  増幅器（ＡＭＰ）
１９  サウンドシステム
１００  楽音発生装置
【図１】
2015018112.tif 000003
【図２】
2015018112.tif 000004
【図３】
2015018112.tif 000005
【図４】
2015018112.tif 000006
【図５】
2015018112.tif 000007
【図６】
2015018112.tif 000008
【図７】
2015018112.tif 000009
【図８】
2015018112.tif 000010