(57)【要約】【課題】演奏データ容量を削減しながらも演奏される演奏音を木目細かく連続的に修飾する演奏装置を提供する。【解決手段】区間および差分値を含むコマンドセットから構成される演奏データを用いる。ＣＰＵ１３は、現在処理対象のコマンドセットの区間（ｔｉｃｋ数換算）を差分値で整数型除算して差分値「１」当たりに要するティック数を取得する。取得したティック数に達する毎に、絶対値化される前の差分値が「負」の場合には、当該コマンドセットで指定される制御対象の値を「−１」すると共に、差分値を「−１」して更新する。一方、絶対値化される前の差分値が「正」の場合には、当該コマンドセットで指定される制御対象の値を「＋１」すると共に、差分値を「−１」して更新する。【選択図】図７
2018060121.tif 000002
【特許請求の範囲】
【請求項１】
入力データに含まれる楽音の或る区間と前記区間に再生される前記楽音の変化量に関連する値に応じて、前記区間における前記入力データを補間して前記楽音を再生する再生部
を備える演奏装置。
【請求項２】
前記補間とは、コマンドセット形式の前記入力データに含まれる、少なくとも音高、モジュレーション及びボリュームのうちのいずれか１つを示す識別子に基づいて、前記楽音の少なくとも音高、モジュレーション及びボリュームのうちのいずれか１つが前記区間で変化するように前記入力データを補間することである、請求項１に記載の演奏装置。
【請求項３】
前記再生部は、
盛り上げデータの再生指示に基づいて、前記盛り上げデータの前記入力データを補間して前記楽音を再生する、請求項１または２のいずれかに記載の演奏装置。
【請求項４】
前記区間の分解能が前記変化量より大きい場合に、前記変化量のうちの或る整数値が変化するのに要する時間分解能を算出する算出部を備え、
前記再生部は、
前記楽音が、前記時間分解能に対応する時間毎に前記或る整数値分変化するように、前記入力データを補間して前記楽音を再生する、請求項１から３のいずれかに記載の演奏装置。
【請求項５】
前記区間の分解能が前記変化量より小さい場合に、数１式における整数値ｙの初期値を１として算出される時間分解能ｘであって、小数点以下が切り捨てられた整数値であるｘが０のときに、ｘが１以上になるまでｙの値を１ずつ増加させて繰り返しｘを算出するｘ算出部
【数１】
2018060121.tif 000004
を備え、
前記再生部は、
前記ｘ算出部により算出されたｘの時間分解能毎に整数値（ｙ＋１）変化させ、前記ｘ以外の時間分解能は整数値ｙ変化させることにより、前記入力データを補間して前記楽音を再生する、請求項１から４のいずれかに記載の演奏装置。
【請求項６】
演奏装置に用いられる演奏方法であって、
前記演奏装置が、
入力データに含まれる楽音の或る区間と前記区間に再生される前記楽音の変化量に関連する値に応じて、前記区間における前記入力データを補間して前記楽音を再生する
ことを特徴とする演奏方法。
【請求項７】
演奏装置に搭載されるコンピュータに、
入力データに含まれる楽音の或る区間と前記区間に再生される前記楽音の変化量に関連する値に応じて、前記区間における前記入力データを補間して前記楽音を再生するステップを実行させることを特徴とするプログラム。
【請求項８】
演奏入力操作に応じた演奏入力情報を発生する演奏入力部と、
請求項１乃至５の何れかに記載の演奏装置と、
前記演奏入力部が発生する演奏入力情報に応じた楽音を発生する音源部と、
を具備することを特徴とする電子楽器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏データの容量を削減しながらも演奏される演奏音を木目細かく連続的に修飾する演奏装置、演奏方法、プログラムおよび電子楽器に関する。
【背景技術】
【０００２】
シーケンサと呼ばれ、曲を構成する各音符の音高や発音タイミングを表す演奏データを、演奏パート（楽器パート）に対応させた複数のトラック毎にメモリ記憶しておき、そのメモリに記憶された各トラック毎の演奏データを、曲のテンポに同期して順次読み出して再生（演奏）する演奏装置が知られている。この種の装置として、例えば特許文献１には、一つのトラックにドラム音色と非ドラム音色とを混在させたシーケンスデータを再生可能にした演奏装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１６９５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来の演奏装置では、演奏データを構成するコマンドセットに従って音高や音量などを制御するが、連続的な変化も全てコマンドセット単位で行う。具体的には、例えば図１０に図示する一例のように、演奏する演奏音の音量レベルを「０」から「５０」まで変化させる場合には、５組のコマンドセットを用いて音量レベルの値を段階的に制御することで連続的な変化を実現する。なお、１つのコマンドセットは、ｃｏｍｍａｎｄの実行タイミングを表すイベント時刻ｓｔｅｐ、制御内容（イベント）を表すｃｏｍｍａｎｄおよび設定値ｖａｌｕｅから構成される。
【０００５】
したがって、より木目細かく連続的に変化させるにはコマンドセットの数が増えてしまい演奏データの容量増加を招致するという問題が生じる。
本発明は、このような事情に鑑みてなされたもので、演奏データ容量を削減しながらも演奏される演奏音を木目細かく連続的に修飾することができる演奏装置、演奏方法、プログラムおよび電子楽器を提供することを目的としている。
【課題を解決するための手段】
【０００６】
本発明の演奏装置は、入力データに含まれる楽音の或る区間と前記区間に再生される前記楽音の変化量に関連する値に応じて、前記区間における前記入力データを補間して前記楽音を再生する再生部を具備することを特徴とする。
【０００７】
本発明の演奏方法は、前記演奏装置が入力データに含まれる楽音の或る区間と前記区間に再生される前記楽音の変化量に関連する値に応じて、前記区間における前記入力データを補間して前記楽音を再生ことを特徴とする。
【０００８】
本発明のプログラムは、演奏装置に搭載されるコンピュータに、入力データに含まれる楽音の或る区間と前記区間に再生される前記楽音の変化量に関連する値に応じて、前記区間における前記入力データを補間して前記楽音を再生するステップを実行させることを特徴とする。
【発明の効果】
【０００９】
本発明では、演奏データ容量を削減しながらも演奏される演奏音を木目細かく連続的に修飾することが出来る。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１実施形態による電子楽器１００の電気的構成を示すブロック図である。
【図２】図２（ａ）はＲＯＭ１４のデータ構成を示すメモリマップ、図２（ｂ）はＲＡＭ１５のデータ構成を示すメモリマップである。
【図３】図３（ａ）は演奏データＰＤ（Ｎ）の構成を示す図、図３（ｂ）は盛り上げデータＭＤ（Ｎ）の構成を示す図、図３（ｃ）は演奏データＰＤ（Ｎ）のコマンドセットの内容を説明するための図である。
【図４】図４（ａ）〜（ｃ）は、ＣＰＵ１３が実行する再生開始操作処理、盛り上げ開始操作処理およびＴｉｃｋイベント処理の各動作をそれぞれ示すフローチャートである。
【図５】図５（ａ），（ｂ）は、ＣＰＵ１３が実行するトラックｔｉｃｋ処理および盛り上げ機能ｔｉｃｋ処理の各動作を示すフローチャートである。
【図６】ＣＰＵ１３が実行する盛り上げコマンド処理の動作を示すフローチャートである。
【図７】ＣＰＵ１３が実行するｔｉｃｋ処理の動作を示すフローチャートである。
【図８】ＣＰＵ１３が実行する第２実施形態による盛り上げコマンド処理の動作を示すフローチャートである。
【図９】ＣＰＵ１３が実行する第２実施形態によるｔｉｃｋ処理の動作を示すフローチャートである。
【図１０】従来例の課題を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施形態について説明する。
Ａ．構成
図１は、本発明の第１実施形態による電子楽器１００の全体構成を示すブロック図である。この図において、鍵盤１０は演奏入力操作（押離鍵操作）に応じたキーオン／キーオフ信号、鍵番号およびベロシティ等からなる演奏入力情報を発生する。鍵盤１０が発生する演奏入力情報は、ＣＰＵ１３においてＭＩＤＩ形式のノートオン／ノートオフイベントに変換された後、音源部１６に供給される。
【００１２】
操作部１１は、装置電源をパワーオン／パワーオフする電源スイッチの他、例えば演奏する曲を選択する曲選択スイッチ、再生開始（演奏の開始）を指示する再生開始スイッチ、盛り上げ開始を指示する盛り上げ開始スイッチ等の各種操作スイッチを備え、これら各スイッチ操作に応じた種類のスイッチイベントを発生する。操作部１１が発生する各種スイッチイベントはＣＰＵ１３に取り込まれる。
【００１３】
表示部１２は、液晶表示パネルおよび表示ドライバ等から構成され、ＣＰＵ１３から供給される表示制御信号に応じて、楽器各部の設定状態や動作状態などを画面表示する。ＣＰＵ１３は、操作部１１から供給される各種スイッチイベントに基づき装置各部の動作状態を設定する他、鍵盤１０から供給される演奏入力情報に基づき音源部１６に楽音データＷの発生を指示する。
【００１４】
また、ＣＰＵ１３は、再生開始スイッチ操作に応じて音源部１６に演奏の開始を指示したり、盛り上げ開始スイッチ操作に応じて、演奏により再生中の演奏音を盛り上げデータ（後述する）に従って盛り上げ修飾するように音源部１６に指示する。こうした本発明の要旨に係るＣＰＵ１３の特徴的な処理動作、すなわち後述する再生開始操作処理、盛り上げ開始操作処理、Ｔｉｃｋイベント処理、トラックｔｉｃｋ処理、盛り上げｔｉｃｋ処理、コマンド処理およびｔｉｃｋ処理の各動作の内容については追って詳述する。
【００１５】
ＲＯＭ１４は、図２（ａ）に図示するように、プログラムエリアＰＡ、演奏データエリアＰＤＡおよび盛り上げデータエリアＭＤＡを備える。ＲＯＭ１４のプログラムエリアＰＡには、ＣＰＵ１３にロードされる各種制御プログラムが記憶される。各種制御プログラムとは、後述する再生開始操作処理、盛り上げ開始操作処理、Ｔｉｃｋイベント処理、トラックｔｉｃｋ処理、盛り上げｔｉｃｋ処理、コマンド処理およびｔｉｃｋ処理を含む。
【００１６】
ＲＯＭ１４の演奏データエリアＰＤＡには、複数の曲の演奏データＰＤ（１）〜ＰＤ（ｎ）が記憶される。これら演奏データＰＤ（１）〜ＰＤ（ｎ）の内、前述した曲選択スイッチ操作で選択された演奏データＰＤ（Ｎ）が、ＣＰＵ１３の制御の下に、当該演奏データエリアＰＤＡから読み出されてＲＡＭ１５の再生データエリアＳＤＡ（図２（ｂ）参照）に格納される。
【００１７】
ＲＯＭ１４の盛り上げデータエリアＭＤＡには、複数の盛り上げデータＭＤ（１）〜ＭＤ（ｎ）が記憶される。これら盛り上げデータＭＤ（１）〜ＭＤ（ｎ）の内、盛り上げ選択スイッチ操作により選択された盛り上げデータＭＤ（Ｎ）が、ＣＰＵ１３の制御の下に、当該演奏データエリアＰＤＡから読み出されてＲＡＭ１５の再生データエリアＳＤＡ（図２（ｂ）参照）に格納される。
【００１８】
ＲＡＭ１５は、図２（ｂ）に図示するように、ワークエリアＷＡおよび再生データエリアＳＤＡを備える。ＲＡＭ１５の再生データエリアＳＤＡには、曲選択スイッチ操作で選択された曲の演奏データＰＤ（Ｎ）と、この演奏データＰＤ（Ｎ）に対応付けられた盛り上げデータＭＤ（Ｎ）とが、ＣＰＵ１３の制御の下に、ＲＯＭ１４から読み出されて格納される。
【００１９】
演奏データＰＤ（Ｎ）は、システムトラックおよび複数の演奏トラックから構成される。システムトラックには、タイムベース（分解能）、曲名、テンポ（ＢＰＭ）および拍子等の曲属性が格納される。曲の各演奏パート（楽器パート）に対応させた複数の演奏トラックには、それぞれ対応する演奏パートを構成する各音符の音高や発音タイミングを表す他、音高や音量等の制御対象の変化させる演奏データＰＤが格納される。
【００２０】
演奏データＰＤ（Ｎ）は、図３（ａ）に図示するように、３つの情報（「ｓｔｅｐ」、「ｃｏｍｍａｎｄ」および「ｖａｌｕｅ」）を含むコマンドセットを、曲進行に対応した時系列順にアドレッシングして形成される。このコマンドセットにおいて、ｓｔｅｐはイベント時刻であり、曲頭からの経過時間でｃｏｍｍａｎｄの実行タイミングを表し、ｃｏｍｍａｎｄはノートオン・ノートオフイベント、ピッチベンド（音高制御）、コントロールチェンジ（音量制御）等の制御内容を表し、ｖａｌｕｅは設定値を表す。
【００２１】
盛り上げデータＭＤ（Ｎ）は、上述した演奏データＰＤ（Ｎ）の各演奏パート（楽器パート）に対応させた複数の演奏トラックから構成される。各演奏トラックには、それぞれ対応する演奏パートの曲調を盛り上げるように演奏データＰＤを修飾（アレンジ）する盛り上げデータＭＤが格納される。盛り上げデータＭＤ（Ｎ）は、図３（ｂ）に図示するように、「ｓｔｅｐ」、「ｃｏｍｍａｎｄ」、「ｓｅｃｔｉｏｎ」および「ｄｉｆｆ」から構成されるコマンドセットを曲進行に対応する時系列順にアドレッシングして形成される。
【００２２】
こうしたコマンドセットにおいて、ｓｔｅｐはイベント時刻であり、曲頭からの経過時間でｃｏｍｍａｎｄの実行タイミングを表し、ｃｏｍｍａｎｄはノートオン・ノートオフイベント、ピッチベンド（音高制御）、コントロールチェンジ（音量制御）等の制御内容を表し、ｓｅｃｔｉｏｎはｃｏｍｍａｎｄを実行する区間を表し、ｄｉｆｆは差分値（又は到達値）を表す。
【００２３】
つまり、従来の演奏データでは、図１０に図示した一例のように、「ｓｔｅｐ（イベント時刻）」、「ｃｏｍｍａｎｄ（制御対象）」および「ｖａｌｕｅ（設定値）」から構成されるコマンドセットを用いて演奏音の音量レベルを「０」から「５０」まで変化させる場合には、５組のコマンドセットで音量レベルの値を段階的に設定して連続的な変化を実現するのに対し、本発明による演奏データでは、図３（ｃ）に図示する一例の通り、１つのコマンドセットに含まれるｓｅｃｔｉｏｎ（区間）およびｄｉｆｆ（差分値又は到達値）に基づいて連続的変化を定義する。こうしたデータ形態とすることで演奏データの容量削減を図ることが可能になる。
【００２４】
また、１つのコマンドセットに含まれるｓｅｃｔｉｏｎ（区間）およびｄｉｆｆ（差分値又は到達値）で定義される連続的変化を実現する為、本発明ではｔｉｃｋ単位で制御対象の値を制御する。ｔｉｃｋとは、６０／ＢＰＭ（テンポ）／タイムベース（分解能）で算出される最少単位時間である。例えば図３（ｃ）に図示する一例の場合には、６ｔｉｃｋ経過毎に制御対象の値を＋１増加させる制御を行うことで連続的変化となり、これ故、制御対象を木目細かく連続的に修飾することが可能になる。こうしたｔｉｃｋ単位の制御については追って詳述する。
【００２５】
ＲＡＭ１５のワークエリアＷＡには、ＣＰＵ１３の処理に用いられる各種レジスタ・フラグデータが一時記憶される。図２（ｂ）には、本発明の要旨に係る主要なレジスタ・フラグデータを図示している。この図において、曲属性は、再生データエリアＳＤＡに格納された演奏データＰＤ（Ｎ）のシステムトラックから抽出したタイムベース（分解能）、曲名、テンポ（ＢＰＭ）および拍子等を含む。フラグｐｌａｙｅｒ＿ｓｔａｔｅは、再生開始スイッチ操作に応じて演奏開始となった場合に「ＰＬＡＹ」、演奏停止となった場合に「ＳＴＯＰ」となる。
【００２６】
フラグｅｘｃｉｔｅ＿ｓｔａｔｅは、盛り上げスイッチ操作に応じて盛り上げ開始となった場合に「ＰＬＡＹ」、盛り上げ停止となった場合に「ＳＴＯＰ」となる。レジスタｄｉｆｆには、処理対象のコマンドセットに含まれる差分値ｄｉｆｆが一時記憶される。フラグｓｉｇｎ＿ｆｌａｇは、コマンドセットから取得した差分値ｄｉｆｆの値が正の場合に「０」、負の場合に「１」となるフラグである。レジスタｔｉｃｋｎｕｍには、差分値「１」あたりに要するｔｉｃｋ数が一時記憶される。カウンタｃｏｕｎｔｅｒは、ｔｉｃｋ数を計数する。
【００２７】
次に、再び図１を参照して電子楽器１００の構成について説明を進める。図１において、音源部１６は、周知の波形メモリ読み出し方式にて構成される複数の発音チャンネルを備え、ＣＰＵ１３から供給され、演奏入力情報に基づくノートオン／ノートオフイベントに従って楽音データを発生する。
【００２８】
また、音源部１６は、再生開始スイッチ操作に応じて演奏開始となった場合に、ＣＰＵ１３がＲＡＭ１５の再生データエリアＳＤＡから読み出す演奏データＰＤ（Ｎ）を再生して各演奏トラック毎の演奏音データを発生したり、盛り上げ開始スイッチ操作に応じて盛り上げ開始となった場合に、ＣＰＵ１３がＲＡＭ１５の再生データエリアＳＤＡから読み出す盛り上げデータＭＤ（Ｎ）を再生して演奏中の演奏音データを修飾する。
【００２９】
サウンドシステム１７は、音源部１６から出力される楽音データ／演奏音データを、アナログ形式の楽音信号／演奏音信号に変換し、当該楽音信号／演奏音信号から不要ノイズを除去する等のフィルタリングを施した後、これを増幅してスピーカ（不図示）から発音させる。
【００３０】
Ｂ．動作
次に、上記構成による電子楽器１００の動作として、ＣＰＵ１３が実行する再生開始操作処理、盛り上げ開始操作処理、Ｔｉｃｋイベント処理、トラックｔｉｃｋ処理、盛り上げｔｉｃｋ処理、コマンド処理およびｔｉｃｋ処理の各動作について図４〜図７を参照して説明する。なお、以下に述べる動作の説明では、ことわりが無い限り動作主体はＣＰＵ１３である。
【００３１】
（１）再生開始操作処理の動作
図４（ａ）は、ＣＰＵ１３が実行する再生開始操作処理の動作を示すフローチャートである。電子楽器１００がパワーオンされた状態で、ユーザが操作部１１の再生開始スイッチを操作したとする。すると、ＣＰＵ１３は図４（ａ）に図示するステップＳＡ１に処理を進め、曲選択スイッチ操作より選択された演奏データＰＤ（Ｎ）を、ＲＯＭ１４の演奏データエリアＰＤＡ（図２（ａ）参照）から読み出してＲＡＭ１５の再生データエリアＳＤＡ（図２（ｂ）参照）に格納する。
【００３２】
次に、ステップＳＡ２では、再生データエリアＳＤＡに格納した演奏データＰＤ（Ｎ）のシステムトラックから曲属性を抽出し、これを初期値としてＲＡＭ１５のワークエリアＷＡにセットする。この後、ステップＳＡ３に進み、演奏データＰＤ（Ｎ）の再生位置をデータ先頭に相当する読み出し開始アドレスにセットする。そして、ステップＳＡ４では、次のコマンドセットを取得し、続くステップＳＡ５では、フラグｐｌａｙｅｒ＿ｓｔａｔｅを「ＰＬＡＹ」にセットして本処理を終える。
【００３３】
（２）盛り上げ開始操作処理の動作
図４（ｂ）は、ＣＰＵ１３が実行する盛り上げ開始操作処理の動作を示すフローチャートである。電子楽器１００がパワーオンされた状態で、ユーザが操作部１１の盛り上げ開始スイッチを操作したとする。すると、ＣＰＵ１３は図４（ｂ）に図示するステップＳＢ１に処理を進め、盛り上げ選択操作により選択された盛り上げデータＭＤ（Ｎ）を、ＲＯＭ１４の盛り上げデータエリアＭＤＡ（図２（ａ）参照）から読み出してＲＡＭ１５の再生データエリアＳＤＡ（図２（ｂ）参照）に格納する。
【００３４】
次に、ステップＳＢ２では、再生データエリアＳＤＡに格納した盛り上げデータＭＤ（Ｎ）から最初のコマンドセットを初期値として取得する。この後、ステップＳＢ３に進み、盛り上げデータＭＤ（Ｎ）の再生位置をデータ先頭に相当する読み出し開始アドレスにセットする。そして、ステップＳＢ４では、次のコマンドセットを取得し、続くステップＳＢ５では、フラグｅｘｃｉｔｅ＿ｓｔａｔｅを「ＰＬＡＹ」にセットして本処理を終える。
【００３５】
（３）Ｔｉｃｋイベント処理の動作
図４（ｃ）は、ＣＰＵ１３が実行するＴｉｃｋイベント処理の動作を示すフローチャートである。本処理は、タイマインタラプトによりｔｉｃｋ（最少単位時間）毎に割り込み実行される。なお、ｔｉｃｋ（最少単位時間）とは、６０／ＢＰＭ（テンポ）／タイムベース（分解能）で算出される時間である。
【００３６】
本処理の実行タイミングになると、ＣＰＵ１３は図４（ｃ）に図示するステップＳＣ１に進み、フラグｐｌａｙｅｒ＿ｓｔｅｔｅが「ＰＬＡＹ」であるか否か、すなわち演奏データＰＤ（Ｎ）の再生を開始したか否かを判断する。フラグｐｌａｙｅｒ＿ｓｔｅｔｅが「ＳＴＯＰ」、つまり演奏データＰＤ（Ｎ）の再生が停止していれば、本処理を終えるが、演奏データＰＤ（Ｎ）の再生を開始してフラグｐｌａｙｅｒ＿ｓｔｅｔｅが「ＰＬＡＹ」ならば、次のステップＳＣ２に進み、後述するトラックｔｉｃｋ処理を実行する。
【００３７】
次に、ステップＳＣ３に進み、フラグｅｘｃｉｔｅ＿ｓｔｅｔｅが「ＰＬＡＹ」であるか否か、すなわち盛り上げデータＭＤ（Ｎ）の再生を開始したか否かを判断する。フラグｅｘｃｉｔｅ＿ｓｔｅｔｅが「ＳＴＯＰ」、つまり盛り上げデータＭＤ（Ｎ）の再生が停止していれば、本処理を終えるが、盛り上げデータＭＤ（Ｎ）の再生を開始してフラグｅｘｃｉｔｅ＿ｓｔｅｔｅが「ＰＬＡＹ」ならば、次のステップＳＣ４に進み、後述する盛り上げ機能ｔｉｃｋ処理を実行する。
【００３８】
（４）トラックｔｉｃｋ処理の動作
図５（ａ）は、ＣＰＵ１３が実行するトラックｔｉｃｋ処理の動作を示すフローチャートである。前述したＴｉｃｋイベント処理（図４（ｃ）参照）のステップＳＣ２を介して本処理が実行されると、ＣＰＵ１３は図５（ａ）に図示するステップＳＤ１に処理を進め、コマンド実行タイミングに達したか否かを判断する。コマンド実行タイミングに達していなければ、判断結果は「ＮＯ」になり、後述のステップＳＤ５に処理を進める。
【００３９】
一方、コマンド実行タイミングに達すると、上記ステップＳＤ１の判断結果が「ＹＥＳ」になり、ステップＳＤ２に進み、トラックコマンド処理を実行する。トラックコマンド処理では、後述するように、現在処理対象とされている演奏トラックの演奏データＰＤ（Ｎ）のコマンドセットから差分値ｄｉｆｆおよび区間ｓｅｃｔｉｏｎを取得し、取得した差分値ｄｉｆｆの正負に応じてフラグｓｉｇｎ＿ｆｌａｇに「１（正）」又は「０（負）」をセットする。そして、ｔｉｃｋ数換算された区間ｓｅｃｔｉｏｎを差分値ｄｉｆｆで整数型除算し、これにより差分値「１」当たりに要するティック数ｔｉｃｋｎｕｍを取得した後、ｔｉｃｋ数を計数するカウンタｃｏｕｎｔｅｒをゼロリセットする。
【００４０】
次に、ステップＳＤ３に進むと、ＣＰＵ１３は、演奏データＰＤ（Ｎ）の読み出しアドレスを歩進し、続くステップＳＤ４では、歩進した読み出しアドレスに応じて読み出した次のコマンドセットを取得する。
【００４１】
（５）盛り上げ機能ｔｉｃｋ処理の動作
図５（ｂ）は、ＣＰＵ１３が実行する盛り上げ機能ｔｉｃｋ処理の動作を示すフローチャートである。前述したＴｉｃｋイベント処理（図４（ｃ）参照）のステップＳＣ４を介して本処理が実行されると、ＣＰＵ１３は図５（ｂ）に図示するステップＳＥ１に処理を進め、コマンド実行タイミングに達したか否かを判断する。コマンド実行タイミングに達していなければ、判断結果は「ＮＯ」になり、後述のステップＳＥ５に処理を進める。
【００４２】
一方、コマンド実行タイミングに達すると、上記ステップＳＥ１の判断結果が「ＹＥＳ」になり、ステップＳＥ２に進み、盛り上げコマンド処理を実行する。盛り上げコマンド処理では、後述するように、現在処理対象の演奏トラックに対応付けられた盛り上げデータＭＤ（Ｎ）のコマンドセットから差分値ｄｉｆｆおよび区間ｓｅｃｔｉｏｎを取得し、取得した差分値ｄｉｆｆの正負に応じてフラグｓｉｇｎ＿ｆｌａｇに「１（正）」又は「０（負）」をセットする。そして、ｔｉｃｋ数換算された区間ｓｅｃｔｉｏｎを差分値ｄｉｆｆで整数型除算し、これにより差分値「１」当たりに要するティック数ｔｉｃｋｎｕｍを取得した後、ｔｉｃｋ数を計数するカウンタｃｏｕｎｔｅｒをゼロリセットする。
【００４３】
次に、ステップＳＥ３に進むと、ＣＰＵ１３は、盛り上げデータＭＤ（Ｎ）の読み出しアドレスを歩進し、続くステップＳＥ４では、歩進した読み出しアドレスに応じて読み出した次のコマンドセットを取得する。そして、ステップＳＥ５を介してｔｉｃｋ処理を実行する。
【００４４】
ｔｉｃｋ処理では、後述するように、差分値ｄｉｆｆが「０」より大きく、かつカウンタｃｏｕｎｔｅｒの値がティック数ｔｉｃｋｎｕｍに達すると、絶対値化される前の差分値ｄｉｆｆが「負」ならば、現在処理対象のコマンドセット中のｃｏｍｍａｎｄで指定される制御対象の値をデクリメント（減算）すると共に、差分値ｄｉｆｆをデクリメント（減算）して更新し、一方、差分値ｄｉｆｆが「正」ならば、現在処理対象のコマンドセット中のｃｏｍｍａｎｄで指定される制御対象の値をインクリメント（加算）すると共に、差分値ｄｉｆｆをデクリメント（減算）して更新した後、本処理を終える。
【００４５】
（６）盛り上げコマンド処理の動作
図６は、ＣＰＵ１３が実行する盛り上げコマンド処理の動作を示すフローチャートである。上述した盛り上げ機能ｔｉｃｋ処理（図５（ｂ）参照）のステップＳＥ２を介して本処理が実行されると、ＣＰＵ１３は図６に図示するステップＳＦ１に進み、現在処理対象とされているコマンドセットから差分値ｄｉｆｆおよび区間ｓｅｃｔｉｏｎを取得する。
【００４６】
例えば現在処理対象とされているコマンドセットが、ピッチベンドで差分値ｄｉｆｆの値が「６３」、区間ｓｅｃｔｉｏｎの値が「４拍」であったとする。また、演奏データＰＤ（Ｎ）のタイムベース（分解能）が「９６」であると、区間ｓｅｃｔｉｏｎはｔｉｃｋ数に換算して「３８４」（４拍×９６）となる。
【００４７】
次いで、ステップＳＦ２では、差分値ｄｉｆｆが「０」より小さいか否かを判断する。差分値ｄｉｆｆが「０」以上ならば、判断結果は「ＮＯ」になり、ステップＳＦ３に進み、フラグｓｉｇｎ＿ｆｌａｇに「０」をセットして差分値ｄｉｆｆの値が正である旨を表す。一方、差分値ｄｉｆｆが「０」より小さければ、上記ステップＳＦ２の判断結果は「ＹＥＳ」になり、ステップＳＥ４に進み、フラグｓｉｇｎ＿ｆｌａｇに「１」をセットして差分値ｄｉｆｆの値が負である旨を表すと共に、差分値ｄｉｆｆに「−１」を乗算して絶対値化する。
【００４８】
そして、ステップＳＦ５に進むと、区間ｓｅｃｔｉｏｎ（ｔｉｃｋ数換算）を差分値ｄｉｆｆで整数型除算し、これにより差分値「１」当たりに要するティック数ｔｉｃｋｎｕｍを取得する。上記一例の場合、（４拍×９６）／６３よりティック数ｔｉｃｋｎｕｍは「６」となる。つまり６ｔｉｃｋ毎に差分値ｄｉｆｆが「１」増加することを意味する。この後、ステップＳＦ６に進み、ｔｉｃｋ数を計数するカウンタｃｏｕｎｔｅｒをゼロリセットして本処理を終える。
【００４９】
このように、盛り上げコマンド処理では、現在処理対象とされているコマンドセットから差分値ｄｉｆｆおよび区間ｓｅｃｔｉｏｎを取得し、取得した差分値ｄｉｆｆの正負に応じてフラグｓｉｇｎ＿ｆｌａｇに「１（正）」又は「０（負）」をセットする。そして、ｔｉｃｋ数換算された区間ｓｅｃｔｉｏｎを差分値ｄｉｆｆで整数型除算し、これにより差分値「１」当たりに要するティック数ｔｉｃｋｎｕｍを取得した後、ｔｉｃｋ数を計数するカウンタｃｏｕｎｔｅｒをゼロリセットする。
【００５０】
（７）ｔｉｃｋ処理の動作
図７は、ＣＰＵ１３が実行するｔｉｃｋ処理の動作を示すフローチャートである。前述した盛り上げ機能ｔｉｃｋ処理（図５（ｂ）参照）のステップＳＥ５を介して本処理が実行されると、ＣＰＵ１３は図７に図示するステップＳＧ１に進み、差分値ｄｉｆｆが「０」より大きいか否かを判断する。差分値ｄｉｆｆが「０」以下ならば、判断結果は「ＮＯ」になり、本処理を終えるが、差分値ｄｉｆｆが「０」より大きければ、判断結果は「ＹＥＳ」になり、次のステップＳＧ２に処理を進める。
【００５１】
ステップＳＧ２では、ｔｉｃｋ数を計数するカウンタｃｏｕｎｔｅｒの値が、上述のコマンド処理（図６参照）において算出したティック数ｔｉｃｋｎｕｍに達したか否かを判断する。カウンタｃｏｕｎｔｅｒの値がティック数ｔｉｃｋｎｕｍに達していなければ、判断結果は「ＮＯ」になり、ステップＳＧ８に進み、カウンタｃｏｕｎｔｅｒの値をインクリメントして歩進させた後、一旦本処理を終える。
【００５２】
これに対し、カウンタｃｏｕｎｔｅｒの値がティック数ｔｉｃｋｎｕｍに達すると、上記ステップＳＧ２の判断結果は「ＹＥＳ」になり、次のステップＳＧ３に処理を進める。ステップＳＧ３では、フラグｓｉｇｎ＿ｆｌａｇが「１」、つまり差分値ｄｉｆｆが負であるか否かを判断する。差分値ｄｉｆｆが負の場合には、判断結果が「ＹＥＳ」になり、ステップＳＧ４に処理を進める。
【００５３】
ステップＳＧ４では、例えば現在処理対象のコマンドセットに含まれるｃｏｍｍａｎｄで指定される制御対象が「ピッチベンド」である場合には、現在のピッチベンド値をデクリメント（「−１」減算）する。
【００５４】
一方、フラグｓｉｇｎ＿ｆｌａｇが「０」、つまり差分値ｄｉｆｆが正の場合には、上記ステップＳＧ３の判断結果が「ＮＯ」になり、ステップＳＧ５に処理を進め、例えば現在処理対象としているコマンドセットに含まれるｃｏｍｍａｎｄで指定される制御対象が「ピッチベンド」である場合には、現在のピッチベンド値をインクリメント（「＋１」加算）する。なお、現在のピッチベンドセンシティビティの値が「２」で、ピッチベンドの値の範囲が「０〜１２７」の場合、ピッチベンド値「１２７」で「＋２（２つ半音上げ）」、「６４」で「０（センター）」、「０」で「−２（２つ半音下げ）」になる。
【００５５】
こうして、カウンタｃｏｕｎｔｅｒの値がティック数ｔｉｃｋｎｕｍに達し、現在処理対象としているコマンドセットに含まれるｃｏｍｍａｎｄで指定される制御対象の値をインクリメント（加算）もしくはデクリメント（減算）し終えると、ステップＳＧ６に進み、差分値ｄｉｆｆをデクリメント（減算）して更新する。この後、ステップＳＧ７に進み、一旦カウンタｃｏｕｎｔｅｒをゼロリセットした後、続くステップＳＧ８では、次回ｔｉｃｋ処理の為にカウンタｃｏｕｎｔｅｒをインクリメントして歩進させて本処理を終える。
【００５６】
このように、ｔｉｃｋ処理では、差分値ｄｉｆｆが「０」より大きく、かつカウンタｃｏｕｎｔｅｒの値がティック数ｔｉｃｋｎｕｍに達すると、絶対値化される前の差分値ｄｉｆｆが「負」ならば、現在処理対象のコマンドセット中のｃｏｍｍａｎｄで指定される制御対象の値をデクリメント（減算）すると共に、差分値ｄｉｆｆもデクリメント（減算）して更新し、一方、差分値ｄｉｆｆが「正」ならば、現在処理対象のコマンドセット中のｃｏｍｍａｎｄで指定される制御対象の値をインクリメント（加算）すると共に、差分値ｄｉｆｆをデクリメント（減算）して更新する。
【００５７】
以上説明したように、第１実施形態では、区間ｓｅｃｔｉｏｎおよび差分値ｄｉｆｆを含むコマンドセットから構成される演奏データＰＤ（Ｎ）を用い、現在処理対象のコマンドセットから取得した差分値ｄｉｆｆの正負に応じてフラグｓｉｇｎ＿ｆｌａｇに「１（正）」又は「０（負）」をセットすると共に、ｔｉｃｋ数換算された区間ｓｅｃｔｉｏｎを差分値ｄｉｆｆで整数型除算して差分値「１」当たりに要するティック数ｔｉｃｋｎｕｍを取得する。
【００５８】
そして、差分値ｄｉｆｆが「０」より大きく、かつカウンタｃｏｕｎｔｅｒの値がティック数ｔｉｃｋｎｕｍに達すると、絶対値化される前の差分値ｄｉｆｆが「負」ならば、現在処理対象のコマンドセット中のｃｏｍｍａｎｄで指定される制御対象の値をデクリメント（減算）すると共に、差分値ｄｉｆｆもデクリメント（減算）して更新し、一方、差分値ｄｉｆｆが「正」ならば、現在処理対象としているコマンドセット中のｃｏｍｍａｎｄで指定される制御対象の値をインクリメント（加算）すると共に、差分値ｄｉｆｆをデクリメント（減算）して更新するので、演奏データ容量を削減しながらも演奏される演奏音を木目細かく連続的に修飾することが出来る。
【００５９】
加えて、第１実施形態では、演奏される演奏音の曲調を盛り上げるよう修飾（アレンジ）する盛り上げデータＭＤ（Ｎ）についても、上述した演奏データＰＤ（Ｎ）と同様、連続的変化を表現する区間ｓｅｃｔｉｏｎおよび差分値ｄｉｆｆを備えたコマンドセットで構成する為、盛り上げデータの容量を削減しながらも演奏される演奏音を木目細かく連続的に盛り上げることが出来る。
【００６０】
Ｃ．第２実施形態
次に、第２実施形態によるコマンド処理およびｔｉｃｋ処理の動作を説明する。上述の第１実施形態では、１ｔｉｃｋ当たりの差分値を最大±１としており、これ以上のレートによる変化に追随することが出来ない。そこで第２実施形態では、±１「差分値／ｔｉｃｋ」を超えるレートの変化に対応可能なコマンド処理およびｔｉｃｋ処理の各動作について図８〜図９を参照して説明する。
【００６１】
（１）第２実施形態による盛り上げコマンド処理の動作
図８は、ＣＰＵ１３が実行する第２実施形態による盛り上げコマンド処理の動作を示すフローチャートである。前述した第１実施形態と同様、盛り上げ機能ｔｉｃｋ処理（図５（ｂ）参照）のステップＳＥ２を介して本処理が実行されると、ＣＰＵ１３は図８に図示するステップＳＨ１に進み、現在処理対象のコマンドセットから差分値ｄｉｆｆおよび区間ｓｅｃｔｉｏｎを取得する。
【００６２】
例えば現在処理対象のコマンドセットが、ピッチベンドで差分値ｄｉｆｆの値が「１２０」、区間ｓｅｃｔｉｏｎの値が「１拍」であったとする。また、演奏データＰＤ（Ｎ）のタイムベース（分解能）が「４８」であると、区間ｓｅｃｔｉｏｎはｔｉｃｋ数に換算して「４８」（１拍×４８）となる。
【００６３】
次いで、ステップＳＨ２では、差分値ｄｉｆｆが「０」より小さいか否かを判断する。差分値ｄｉｆｆが「０」以上ならば、判断結果は「ＮＯ」になり、ステップＳＨ３に進み、フラグｓｉｇｎ＿ｆｌａｇに「０」をセットして差分値ｄｉｆｆの値が正である旨を表す。一方、差分値ｄｉｆｆが「０」より小さければ、上記ステップＳＨ２の判断結果は「ＹＥＳ」になり、ステップＳＨ４に進み、フラグｓｉｇｎ＿ｆｌａｇに「１」をセットして差分値ｄｉｆｆの値が負である旨を表すと共に、差分値ｄｉｆｆに「−１」を乗算して絶対値化する。
【００６４】
そして、ステップＳＨ５に進むと、次式（１）の整数型除算でＸ値を算出すると共に、Ｙ値に初期値「１」をセットする。上記一例の場合、次式（１）に区間ｓｅｃｔｉｏｎの値「４８」、差分値ｄｉｆｆの値「１２０」を代入すると、整数型除算によるＸ値は「０」となる。
Ｘ＝区間ｓｅｃｔｉｏｎ／（差分値ｄｉｆｆ−区間ｓｅｃｔｉｏｎ）…（１）
【００６５】
続いて、ステップＳＨ６では、上記（１）式で算出されるＸ値が「０」であるか否かを判断する。Ｘ値が「０」になると、判断結果は「ＹＥＳ」になり、次のステップＳＨ７に処理を進める。ステップＳＨ７では、Ｙ値をインクリメント（Ｙ＋１）して歩進させ、続くステップＳＨ８では、歩進させた（Ｙ＋１）値を区間ｓｅｔｉｏｎの値に乗算し、当該区間ｓｅｔｉｏｎを（Ｙ＋１）倍したＳＥＣ値を算出する。上記一例の場合、４８×２よりＳＥＣ値は「９６」となる。
【００６６】
そして、ステップＳＨ９では、次式（２）の整数型除算でＸ値を算出する。上記一例の場合、次式（２）に区間ｓｅｃｔｉｏｎの値「４８」、差分値ｄｉｆｆの値「１２０」、ＳＥＣ値「９６」を代入すると、整数型除算によるＸ値は「２」となる。
Ｘ＝区間ｓｅｃｔｉｏｎ／（差分値ｄｉｆｆ−区間ｓｅｃｔｉｏｎ）…（２）
【００６７】
このように、ステップＳＨ６〜ＳＨ９では、毎ｔｉｃｋ、値を幾つ（Ｙ）変更するかと、更に何（Ｘ）ｔｉｃｋに１回は更に１を加えた値（Ｙ＋１）変更するかを決める処理を実行する。上記一例の場合、上述したように、Ｙ値が「２」のときにＸ値が「２」、つまり毎ｔｉｃｋ、加算（又は減算）する値を「２」とするが、Ｘ値「２」ｔｉｃｋに１回は加算（又は減算する値）を「３」とすることが決定する。
【００６８】
これにより、後述する第２実施形態によるｔｉｃｋ処理では、カウンタｃｏｕｎｔｅｒの値が「２」以外では、加算（又は減算）する値を「２」とし、カウンタｃｏｕｎｔｅｒの値が「２」では、加算（又は減算）する値を「３」にする。そして、上記（２）式で算出されるＸ値が「０」以外になると、上述したステップＳＨ６の判断結果が「ＮＯ」になり、ステップＳＨ１０に進み、ｔｉｃｋ数を計数するカウンタｃｏｕｎｔｅｒをゼロリセットして本処理を終える。
【００６９】
（２）第２実施形態によるｔｉｃｋ処理の動作
図９は、ＣＰＵ１３が実行する第２実施形態によるｔｉｃｋ処理の動作を示すフローチャートである。前述した第１実施形態と同様、前述した盛り上げ機能ｔｉｃｋ処理（図５（ｂ）参照）のステップＳＥ５を介して本処理が実行されると、ＣＰＵ１３は図９に図示するステップＳＪ１に進み、差分値ｄｉｆｆが「０」より大きいか否かを判断する。差分値ｄｉｆｆが「０」以下ならば、判断結果は「ＮＯ」になり、本処理を終えるが、差分値ｄｉｆｆが「０」より大きければ、判断結果が「ＹＥＳ」になり、次のステップＳＪ２に処理を進める。
【００７０】
ステップＳＪ２では、ｔｉｃｋ数を計数するカウンタｃｏｕｎｔｅｒの値が、上述のコマンド処理（図８参照）で算出したＸ値に一致したか否かを判断する。カウンタｃｏｕｎｔｅｒの値がＸ値に一致しなければ、判断結果は「ＮＯ」になり、ステップＳＪ５に進み、上述のコマンド処理（図８参照）で算出したＹ値を変更量ＮにセットしてステップＳＪ６に進む。
【００７１】
これに対し、カウンタｃｏｕｎｔｅｒの値がＸ値に一致すると、上記ステップＳＪ２の判断結果は「ＹＥＳ」になり、次のステップＳＪ３に処理を進める。ステップＳＪ３では、上述のコマンド処理（図８参照）において算出した（Ｙ＋１）値を変更量ＮにセットしてステップＳＪ６に進む。
【００７２】
そして、ステップＳＪ６では、フラグｓｉｇｎ＿ｆｌａｇが「１」、つまり差分値ｄｉｆｆが負であるか否かを判断する。差分値ｄｉｆｆが負の場合には、判断結果が「ＹＥＳ」になり、ステップＳＪ７に進む。ステップＳＪ７では、例えば現在処理対象のコマンドセットに含まれるｃｏｍｍａｎｄで指定される制御対象が「ピッチベンド」である場合には、現在のピッチベンド値から変更量Ｎを減算してステップＳＪ９に進む。
【００７３】
一方、フラグｓｉｇｎ＿ｆｌａｇが「０」、つまり差分値ｄｉｆｆが正の場合には、上記ステップＳＪ６の判断結果が「ＮＯ」になり、ステップＳＪ８に進む。ステップＳＪ８では、例えば現在処理対象のコマンドセットに含まれるｃｏｍｍａｎｄで指定される制御対象が「ピッチベンド」である場合には、現在のピッチベンド値に変更量Ｎを加算してステップＳＪ９に進む。そして、ステップＳＪ９では、差分値ｄｉｆｆから変更量Ｎを減算して当該差分値ｄｉｆｆを更新する。この後、ステップＳＪ１０に進み、次回ｔｉｃｋ処理の為にカウンタｃｏｕｎｔｅｒをインクリメントして本処理を終える。
【００７４】
以上のように、第２実施形態では、現在処理対象のコマンドセットに含まれる差分値ｄｉｆｆおよび区間ｓｅｃｔｉｏｎに基づいて毎ｔｉｃｋ、値を幾つ（Ｙ）変更するかと、更に何（Ｘ）ｔｉｃｋに１回は更に１を加えた値（Ｙ＋１）変更するかを決定する。例えば上述したように、Ｙ値は「２」、Ｘ値は「２」が決定されると、ｔｉｃｋ数を計数するカウンタｃｏｕｎｔｅｒの値が「２」以外では、増加（又は減少）する変動量Ｎを「２」（Ｙ）に設定し、一方、カウンタｃｏｕｎｔｅｒの値が「２」ならば増加（又は減少）する変動量Ｎを「３」（Ｙ＋１）に設定する。
【００７５】
そして、例えば現在処理対象のコマンドセット中のｃｏｍｍａｎｄで指定される制御内容が「ピッチベンド」ならば、現在のピッチベンド値に対し、カウンタｃｏｕｎｔｅｒの値に応じた変更量Ｎを加算（又は減算）すると共に、加算（又は減算）された変更量Ｎに応じて差分値ｄｉｆｆを更新する制御を進める。これにより、±１「差分値／ｔｉｃｋ」を超えるレートの変化に対応してデータ容量の削減を図りつつ演奏される演奏音を木目細かく連続的に修飾することが出来る。
【００７６】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上述した実施形態で実行される機能は可能な限り適宜組み合わせて実施しても良い。上述した実施形態には種々の段階が含まれており、開示される複数の構成要件による適宜の組み合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、効果が得られるのであれば、この構成要件が削除された構成が発明として抽出され得る。
【００７７】
以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。
（付記）
［請求項１］
入力データに含まれる楽音の或る区間と前記区間に再生される前記楽音の変化量に関連する値に応じて、前記区間における前記入力データを補間して前記楽音を再生する再生部
を備える演奏装置。
［請求項２］
前記補間とは、コマンドセット形式の前記入力データに含まれる、少なくとも音高、モジュレーション及びボリュームのうちのいずれか１つを示す識別子に基づいて、前記楽音の少なくとも音高、モジュレーション及びボリュームのうちのいずれか１つが前記区間で変化するように前記入力データを補間することである、請求項１に記載の演奏装置。
［請求項３］
前記再生部は、
盛り上げデータの再生指示に基づいて、前記盛り上げデータの前記入力データを補間して前記楽音を再生する、請求項１または２のいずれかに記載の演奏装置。
［請求項４］
前記区間の分解能が前記変化量より大きい場合に、前記変化量のうちの或る整数値が変化するのに要する時間分解能を算出する算出部を備え、
前記再生部は、
前記楽音が、前記時間分解能に対応する時間毎に前記或る整数値分変化するように、前記入力データを補間して前記楽音を再生する、請求項１から３のいずれかに記載の演奏装置。
［請求項５］
前記区間の分解能が前記変化量より小さい場合に、数１式における整数値ｙの初期値を１として算出される時間分解能ｘであって、小数点以下が切り捨てられた整数値であるｘが０のときに、ｘが１以上になるまでｙの値を１ずつ増加させて繰り返しｘを算出するｘ算出部
【数１】
2018060121.tif 000003
を備え、
前記再生部は、
前記ｘ算出部により算出されたｘの時間分解能毎に整数値（ｙ＋１）変化させ、前記ｘ以外の時間分解能は整数値ｙ変化させることにより、前記入力データを補間して前記楽音を再生する、請求項１から４のいずれかに記載の演奏装置。
［請求項６］
演奏装置に用いられる演奏方法であって、
前記演奏装置が、
入力データに含まれる楽音の或る区間と前記区間に再生される前記楽音の変化量に関連する値に応じて、前記区間における前記入力データを補間して前記楽音を再生する
ことを特徴とする演奏方法。
［請求項７］
演奏装置に搭載されるコンピュータに、
入力データに含まれる楽音の或る区間と前記区間に再生される前記楽音の変化量に関連する値に応じて、前記区間における前記入力データを補間して前記楽音を再生するステップを実行させることを特徴とするプログラム。
［請求項８］
演奏入力操作に応じた演奏入力情報を発生する演奏入力部と、
請求項１乃至５の何れかに記載の演奏装置と、
前記演奏入力部が発生する演奏入力情報に応じた楽音を発生する音源部と、
を具備することを特徴とする電子楽器。
【符号の説明】
【００７８】
１０  鍵盤
１１  操作部
１２  表示部
１３  ＣＰＵ
１４  ＲＯＭ
１５  ＲＡＭ
１６  音源部
１７  サウンドシステム
１００  電子楽器
【図１】
2018060121.tif 000005
【図２】
2018060121.tif 000006
【図３】
2018060121.tif 000007
【図４】
2018060121.tif 000008
【図５】
2018060121.tif 000009
【図６】
2018060121.tif 000010
【図７】
2018060121.tif 000011
【図８】
2018060121.tif 000012
【図９】
2018060121.tif 000013
【図１０】
2018060121.tif 000014
【手続補正書】
【提出日】平成29年11月17日(2017.11.17)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、楽音データの容量を削減しながらも再生される楽音を木目細かく連続的に修飾する楽音再生装置、楽音再生方法、プログラムおよび電子楽器に関する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
したがって、より木目細かく連続的に変化させるにはコマンドセットの数が増えてしまい演奏データの容量増加を招致するという問題が生じる。
本発明は、このような事情に鑑みてなされたもので、楽音データ（演奏データ）の容量を削減しながらも再生（演奏）される楽音（演奏音）を木目細かく連続的に修飾することができる楽音再生装置、楽音再生方法、プログラムおよび電子楽器を提供することを目的としている。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本発明の演奏装置は、達成すべき楽音状態を指示する指示データの受信に応じて、前記指示された楽音状態となるように楽音を順次変化させながら発生させていく音源部と、楽音を再生すべき区間と前記区間に再生される前記楽音の変化量とに関連する値が入力データに含まれている場合は、前記区間と前記変化量とに基づいて、前記区間に対応する入力データが補間された複数の補間データを生成する補間部と、前記複数の補間データに基づいて、前記区間内の複数タイミングで達成すべき楽音状態を指示する複数の指示データを生成し、前記区間の楽音の再生時に、前記生成された複数の前記指示データを前記音源部に対して順次送信していく再生部と、を備えたことを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
達成すべき楽音状態を指示する指示データの受信に応じて、前記指示された楽音状態となるように楽音を順次変化させながら発生させていく音源部と、
楽音を再生すべき区間と前記区間に再生される前記楽音の変化量とに関連する値が入力データに含まれている場合は、前記区間と前記変化量とに基づいて、前記区間に対応する入力データが補間された複数の補間データを生成する補間部と、
前記複数の補間データに基づいて、前記区間内の複数タイミングで達成すべき楽音状態を指示する複数の指示データを生成し、前記区間の楽音の再生時に、前記生成された複数の前記指示データを前記音源部に対して順次送信していく再生部と、を備えた楽音再生装置。
【請求項２】
楽音の発生に関する制御対象に対する設定値と、前記制御対象に対して前記設定値を設定すべきタイミングとを複数指定する演奏データと、前記制御対象の設定値を変化させる区間と、前記制御対象の設定値の変化量とを指定する盛り上げデータとを記憶する記憶部を備え、
前記再生部は、前記記憶部に記憶されている前記演奏データを前記入力データとして読み込んだ場合には、前記補間部により前記複数の補間データを生成させることなく、前記演奏データが指定する夫々の前記設定値を前記指示データとして、前記演奏データが指定する夫々のタイミングで前記音源部に対して順次送信していき、前記記憶部に記憶されている前記盛り上げデータを前記入力データとして読み込んだ場合には、前記盛り上げデータが指定する前記区間と前記変化量とに基づいて前記補間部で補間された複数の前記補間データのそれぞれを前記指示データとして、前記音源部に対して順次送信していく、
請求項１に記載の楽音再生装置。
【請求項３】
前記補間部は、前記盛り上げデータが指定する前記区間と前記変化量とに基づいて、前記区間内において前記制御対象に対する設定値を前記変化量だけ段階的に変化させた複数の補間データを生成する、請求項２に記載の楽音再生装置。
【請求項４】
前記記憶部に記憶されている前記演奏データと前記盛り上げデータの夫々について、前記再生部による楽音の再生に使用するか否かを設定する設定部を更に備える、請求項２または３に記載の楽音再生装置。
【請求項５】
前記制御対象は、少なくとも音高、モジュレーション、及びボリュームのうちのいずれか１つを含み、
前記補間部は、コマンドセット形式の前記入力データに含まれる、少なくとも音高、モジュレーション及びボリュームのうちのいずれか１つを示す識別子に基づいて、前記楽音の少なくとも音高、モジュレーション及びボリュームのうちのいずれか１つが前記区間で変化するように前記入力データを補間する、  請求項２乃至４のいずれかに記載の楽音再生装置。
【請求項６】
前記音源部は、発生する楽音の状態を一度に変化させることが可能な最小単位時間と最小変化量とが決められており、
前記補間部は、前記最小単位時間と前記最小変化量の制限下において、
前記区間内で発生する楽音の状態を変化させることが可能な回数が、前記変化量を段階的に変化させるのに必要な回数より大きい場合に、発生する楽音の状態を、前記最小単位時間毎に前記最小変化量だけ変化させるか、複数の前記最小単位時間毎に前記最小変化量だけ変化させるか、のいずれかの変化方法に基づいて前記複数の補間データを生成し、
前記区間内で発生する楽音の状態を変化させることが可能な回数が、前記変化量を段階的に変化させるのに必要な回数より小さい場合に、発生する楽音の状態を、前記最小単位時間毎に前記最小変化量だけ変化させるか、前記最小単位時間毎に複数の前記最小変化量だけ変化させるか、のいずれかの変化方法に基づいて前記複数の補間データを生成する、請求項１乃至５のいずれかに記載の楽音再生装置。
【請求項７】
前記区間の分解能が前記変化量より大きい場合に、前記変化量のうちの或る整数値が変化するのに要する時間分解能を算出する算出部を備え、
前記補間部は、
前記楽音が、前記時間分解能に対応する時間毎に前記或る整数値分変化するように、前記入力データを補間して前記補間データを生成する、請求項１乃至６のいずれかに記載の楽音再生装置。
【請求項８】
前記区間の分解能が前記変化量より小さい場合に、数１式における整数値ｙの初期値を１として算出される時間分解能であって、小数点以下が切り捨てられた整数値であるｘが０のときに、ｘが１以上になるまでｙの値を１ずつ増加させて繰り返しｘを算出するｘ算出部
【数１】
2018060121.tif 000015
を備え、
前記補間部は、
前記ｘ算出部により算出された時間分解能ｘ毎に整数値ｙを１ずつインクリメントし、前記ｘ以外の時間分解能については整数値ｙをインクリメントしないことにより、前記入力データを補間して前記補間データを生成する、請求項７に記載の楽音再生装置。
【請求項９】
請求項１乃至８の何れかに記載の楽音再生装置と、
演奏入力操作に応じて、達成すべき楽音状態を指示する指示データを順次生成するとともに、順次生成される前記指示データに従って、前記音源部に対して達成すべき楽音状態を順次指示していく演奏制御部と、
を具備することを特徴とする電子楽器。
【請求項１０】
装置が、
入力データに基づく楽音の再生時に、楽音を再生すべき区間と前記区間に再生される前記楽音の変化量とに関連する値が前記入力データに含まれている場合は、前記区間と前記変化量とに基づいて、前記区間に対応する入力データが補間された複数の補間データを生成する処理と、
前記複数の補間データに基づいて、前記区間内の複数タイミングで達成すべき楽音状態を指示する複数の指示データを生成する処理と、
音源回路に対して、前記指示データで指示される楽音状態となるように楽音を順次変化させながら発生させるために、前記区間の楽音の再生時に、前記生成された複数の前記指示データを前記音源回路に対して順次送信していく処理と、
を実行する楽音再生方法。
【請求項１１】
コンピュータに、
入力データに基づく楽音の再生時に、楽音を再生すべき区間と前記区間に再生される前記楽音の変化量とに関連する値が前記入力データに含まれている場合は、前記区間と前記変化量とに基づいて、前記区間に対応する入力データが補間された複数の補間データを生成する処理と、
前記複数の補間データに基づいて、前記区間内の複数タイミングで達成すべき楽音状態を指示する複数の指示データを生成する処理と、
音源回路に対して、前記指示データで指示される楽音状態となるように楽音を順次変化させながら発生させるために、前記区間の楽音の再生時に、前記生成された複数の前記指示データを前記音源回路に対して順次送信していく処理と、
を実行させるプログラム。