(57)【特許請求の範囲】
【請求項１】
波形データを記憶した波形記憶手段と、
前記波形データの再生の開始／終了および音高を指示する演奏情報を入力する演奏情報入力手段と、
前記波形記憶手段の波形データを、前記演奏情報入力手段から入力された演奏情報に対応した音高で読み出す波形読出し手段と
を有して構成され、
前記波形読出し手段は、
前記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し中に、後の演奏情報が入力され再生開始が指示された時、前記読出し中の波形データのうちの前記後の演奏情報が入力されたタイミング以降の部分を前記後の演奏情報に対応した音高で読み出す
ことを特徴とする波形発生装置。
【請求項２】
波形データを記憶した波形記憶手段と、
前記波形データの再生の開始／終了および音高を指示する演奏情報を入力する演奏情報入力手段と、
前記波形記憶手段の波形データを、前記演奏情報入力手段から入力された演奏情報に対応した音高で読み出す波形読出し手段と
を有して構成され、
前記波形読出し手段は、
前記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し中に、後の演奏情報が入力され再生開始が指示された時、それまでの前記先の演奏情報による波形データの読出しに引き続いて、前記読出し中の波形データのうちの前記後の演奏情報が入力されたタイミング以降の部分を、前記先の演奏情報に対応した音高での記憶波形データの読出しと並行して、前記後の演奏情報に対応した音高で読み出す
ことを特徴とする波形発生装置。
【請求項３】
請求項１または２のいずれか１項に記載の波形発生装置において、さらに、
音高にかかわらず一定の速度で進行する波形再生の時間的進行を示す進行位置情報を生成する進行位置情報生成手段を有し、
前記波形読出し手段は、
前記波形データ記憶手段から前記進行位置情報生成手段の示す進行位置情報に対応した位置の波形データの読出しを行う
ことを特徴とする波形発生装置。
【請求項４】
波形データを記憶した波形記憶手段と、
前記波形データの再生の開始／終了および音高を指示する演奏情報を入力する演奏情報入力手段と、
前記波形データの読み出し速度を変更して前記波形データのホルマントを変更するためのホルマント変更情報を入力するホルマント変更情報入力手段と、
前記波形記憶手段に記憶された波形データの所望区間を前記ホルマント変更情報に応じた読み出し速度で読み出し、前記演奏情報による音高に対応した周期で合成する波形読出  し合成手段と
を有して構成され、
前記波形読出し合成手段は、
前記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し合成中に、後の演奏情報が入力され再生開始が指示された時、前記読出し中の波形データのうちの前記後の演奏情報が入力されたタイミング以降の部分を、前記後の演奏情報による音高に対応させて読出し合成する
ことを特徴とする波形発生装置。
【請求項５】
波形データを記憶した波形記憶手段と、
前記波形データの再生の開始／終了および音高を指示する演奏情報を入力する演奏情報入力手段と、
前記波形データの読み出し速度を変更して前記波形データのホルマントを変更するためのホルマント変更情報を入力するホルマント変更情報入力手段と、
前記波形記憶手段に記憶された波形データの所望区間を前記ホルマント変更情報に応じた読み出し速度で読み出し、前記演奏情報による音高に対応した周期で合成する波形読出し合成手段と
を有して構成され、
前記波形読出し合成手段は、
前記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し合成中に、後の演奏情報が入力され再生開始が指示された時、それまでの前記先の演奏情報による波形データの読出し合成に引き続いて、前記読出し中の波形データのうちの前記後の演奏情報が入力されたタイミング以降の部分を、前記先の演奏情報による音高に対応した読出し合成と並行して、前記後の演奏情報による音高に対応させた読出し合成を行う
ことを特徴とする波形発生装置。
【請求項６】
請求項４または５のいずれか１項に記載の波形発生装置において、さらに、
音高にかかわらず一定の速度で進行する波形再生の時間的進行を示す進行位置情報を生成する進行位置情報生成手段を有し、
前記波形読出し合成手段は、
前記波形データ記憶手段から前記進行位置情報生成手段の示す進行位置情報に対応した区間の波形データの読出し合成を行う
ことを特徴とする波形発生装置。
【請求項７】
請求項４、５または６のいずれか１項に記載の波形発生装置において、
前記波形読出し合成手段は、
前記波形記憶手段に記憶された波形データのピッチを入力するピッチ情報入力手段を有し、前記波形データ記憶手段から前記入力されたピッチ情報に基づく２周期分の区間の波形データの読出し合成を行う
ことを特徴とする波形発生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は電子楽器の波形発生装置、更に詳しくはメモリに記憶された波形データを読み出して再生する波形発生装置に関する。かかる波形発生装置は例えばサンプラと呼ばれているような電子楽器に用いられる。
【０００２】
従来、サンプラのような電子楽器において波形データを読み出して再生するときには、一般にはキーボードのキーのオン／オフで再生音高と再生の開始／終了を指定し、その指定した音高で波形データを再生する。このときの音高の制御は、メモリから再生音高に対応した読出し速度で読み出すことで実現している。従って、メモリから同じ波形を読み出す場合、音高によって再生時間が異なってしまう。
【０００３】
【発明が解決しようとする課題】
従来のサンプラ等では、レガート演奏のような特定の演奏操作に対応した鍵操作を行った場合、初めの操作鍵に従って発音している波形データを、次の操作鍵に従って引き続き発音するようなことはできなかった。波形データの再生は鍵演奏によって再生指示がある毎にその波形データの先頭部から再生していた。あるいは、波形データの再生指示があった後で、その再生中に重ねて再生指示があった場合にも、後で再生指示があった再生波形はその波形データの先頭部分から再生を始めていた。このため音楽的効果として単調であった。
【０００４】
本発明はかかる問題点に鑑みてなされたものであり、その目的とするところは、上記のような波形発生装置において、波形の再生中に後の再生指示があった場合における波形の再生態様を豊富にして、音楽的効果を豊富化することにある。
【０００５】
【課題を解決するための手段】
上述の課題を解決するために、本発明にかかる波形発生装置は、波形データを記憶した波形記憶手段と、上記波形データの再生の開始／終了および音高を指示する演奏情報を入力する演奏情報入力手段と、上記波形記憶手段の波形データを、上記演奏情報入力手段から入力された演奏情報に対応した音高で読み出す波形読出し手段とを有して構成され、上記波形読出し手段は、上記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し中に、後の演奏情報が入力され再生開始が指示された時、上記読出し中の波形データのうちの上記後の演奏情報が入力されたタイミング以降の部分を上記後の演奏情報に対応した音高で読み出すようにしたものである。
【０００６】
また、本発明にかかる波形発生装置は、波形データを記憶した波形記憶手段と、上記波形データの再生の開始／終了および音高を指示する演奏情報を入力する演奏情報入力手段と、上記波形記憶手段の波形データを、上記演奏情報入力手段から入力された演奏情報に対応した音高で読み出す波形読出し手段とを有して構成され、上記波形読出し手段は、上記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し中に、後の演奏情報が入力され再生開始が指示された時、それまでの上記先の演奏情報による波形データの読出しに引き続いて、上記読出し中の波形データのうちの上記後の演奏情報が入力されたタイミング以降の部分を、上記先の演奏情報に対応した音高での記憶波形データの読出しと並行して、上記後の演奏情報に対応した音高で読み出すようにしたものである。
【０００７】
また、本発明にかかる波形発生装置は、上記した本発明にかかる波形発生装置において、さらに、音高にかかわらず一定の速度で進行する波形再生の時間的進行を示す進行位置情報を生成する進行位置情報生成手段を有し、上記波形読出し手段は、上記波形データ記憶手段から上記進行位置情報生成手段の示す進行位置情報に対応した位置の波形データの読出しを行うようにしたものである。
また、本発明にかかる波形発生装置は、波形データを記憶した波形記憶手段と、上記波形データの再生の開始／終了および音高を指示する演奏情報を入力する演奏情報入力手段と、上記波形データの読み出し速度を変更して上記波形データのホルマントを変更するためのホルマント変更情報を入力するホルマント変更情報入力手段と、上記波形記憶手段に記憶された波形データの所望区間を上記ホルマント変更情報に応じた読み出し速度で読み出し、上記演奏情報による音高に対応した周期で合成する波形読出し合成手段とを有して構成され、上記波形読出し合成手段は、上記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し合成中に、後の演奏情報が入力され再生開始が指示された時、上記読出し中の波形データのうちの上記後の演奏情報が入力されたタイミング以降の部分を、上記後の演奏情報による音高に対応させて読出し合成するようにしたものである。
また、本発明にかかる波形発生装置は、波形データを記憶した波形記憶手段と、上記波形データの再生の開始／終了および音高を指示する演奏情報を入力する演奏情報入力手段と、上記波形データの読み出し速度を変更して上記波形データのホルマントを変更するためのホルマント変更情報を入力するホルマント変更情報入力手段と、上記波形記憶手段に記憶された波形データの所望区間を上記ホルマント変更情報に応じた読み出し速度で読み出し、上記演奏情報による音高に対応した周期で合成する波形読出し合成手段とを有して構成され、上記波形読出し合成手段は、上記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し合成中に、後の演奏情報が入力され再生開始が指示された時、それまでの上記先の演奏情報による波形データの読出し合成に引き続いて、上記読出し中の波形データのうちの上記後の演奏情報が入力されたタイミング以降の部分を、上記先の演奏情報による音高に対応した読出し合成と並行して、上記後の演奏情報による音高に対応させた読出し合成を行うようにしたものである。
また、本発明にかかる波形発生装置は、上記した本発明にかかる波形発生装置において、さらに、音高にかかわらず一定の速度で進行する波形再生の時間的進行を示す進行位置情報を生成する進行位置情報生成手段を有し、上記波形読出し合成手段は、上記波形データ記憶手段から上記進行位置情報生成手段の示す進行位置情報に対応した区間の波形データの読出し合成を行うようにしたものである。
また、本発明にかかる波形発生装置は、上記した本発明にかかる波形発生装置において、上記波形読出し合成手段は、上記波形記憶手段に記憶された波形データのピッチを入力するピッチ情報入力手段を有し、上記波形データ記憶手段から上記入力されたピッチ情報に基づく２周期分の区間の波形データの読出し合成を行うようにしたものである。
【０００８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図１は本発明に係る一実施例としての電子楽器の波形発生装置が示される。図１において、１２は再生する波形データを記憶しておくＲＡＭからなる波形メモリである。８は波形メモリ１２の波形データの再生処理等をディジタル処理により行うＤＳＰ（ディジタル信号プロセッサ）である。１４はＤＳＰ８から再生出力されるディジタル波形信号をアナログ波形信号にＤ／Ａ変換して出力するＤ／Ａ変換器、４は入力したアナログ波形信号をディジタル波形信号にＡ／Ｄ変換してＤＳＰ８に入力するＡ／Ｄ変換器である。このＡ／Ｄ変換器４から入力されたディジタル波形信号はＤＳＰ８から波形メモリ１２に波形データとして格納することができる。
【０００９】
２２はＣＰＵ（中央処理装置）であって、ＤＳＰ８の制御、操作子群２０やキーボード３０の状態検出と処理など装置の全体的な制御を行う。２０は操作子群であって、モードスイッチ(MODE-SW) 、バンクスイッチ(BANK-SW) 、アサインスイッチ(ASSIGN-SW) 、ホルマント設定操作子(F-VR)、時間圧伸量設定操作子(TCOMP) 等の複数の操作子からなる。３０は演奏操作を行うキーボードであり、波形メモリ１２の波形データの再生にあたってキーのオン／オフにより再生の音高と再生の開始／終了を指示するためにも用いられる。３３は多くの波形データ等を記憶しておく大容量のハードディスク装置であり、その波形データは必要に応じて波形メモリ１２に転送される。３１はＣＰＵ２２の演算処理等に使用されるワーキングメモリとしてのＲＡＭ、３２はＣＰＵ２２やＤＳＰ８のプログラムやパラメータ等を記憶しておくメモリとしてのＲＯＭである。
【００１０】
以下に、操作子群２０の各操作子の機能について説明する。
モードスイッチ(MODE-SW) は、録音モード(REC) 、編集モード(EDIT)、再生モード(PLAY)の一つを選択するためのスイッチである。ここで、録音モード(REC) は外部から入力された楽音信号を録音（サンプリング) するモード、編集モード(EDIT)は録音モードでサンプリングした波形を編集するモード、再生モード(PLAY)は波形メモリ１２の波形データをキーボードの演奏操作に応じて再生するモードである。
【００１１】
バンクスイッチ(BANK-SW) は、波形メモリ１２に記憶されている複数の波形データのうちから一つを選択するためのスイッチである。
【００１２】
アサインスイッチ(ASSIGN-SW) は、発音モードを設定するためのスイッチであり、以下の４つのモードを設定できる。
〔モノフォニック１：MONO1 〕  １ボイスのみを発音するモードであり、レガート奏法がされたら、後の押鍵によってリトリガを行うモードである。
〔モノフォニック２：MONO1 〕  １ボイスのみを発音するモードであり、レガート奏法がされても、リトリガを行なわないモードである。
〔ポリフォニック１：POLY1 〕  複数ボイスを発音可能なモードであり、レガート奏法がされたら、後の押鍵によってリトリガを行うモードである。
〔ポリフォニック２：POLY2 〕  複数ボイスを発音可能なモードであり、レガート奏法がされても、リトリガを行なわないモードである。
ここで、「レガート奏法」とはキーボードの１番目のキーを押したままの状態で２番目のキーを押す奏法であり、「リトリガ」とは波形メモリ１２の波形データの再生を当該波形データの先頭部分からやり直す操作をいう。
【００１３】
ホルマント設定操作子(F-VR)は、ホルマントの原波形データからのシフト量を設定する操作子であり、後述するホルマント移動量（ホルマント変更係数とも称する）を設定する。
【００１４】
時間圧伸量設定操作子(TCOMP) は、再生波形データの時間軸上の時間圧伸量を設定する操作子である。
【００１５】
上記のＤＳＰ８は操作子設定テーブルとキー情報レジスタを備えている。以下、これらについて説明する。
〔操作子設定テーブル〕
図８には操作子設定テーブルの例が示される。この操作子設定テーブルはＤＳＰ８に備えられており、後述するＣＰＵ２２の〔再生処理〕において、操作子群２０の操作状態を検出し、その操作状態に対応してこの操作子設定テーブルの内容が設定される。操作子設定テーブルの内容の項目としては、バンク番号(BANK)、リンクモード(LINK-MODE) 、ホルマント移動量(F-VR)、時間圧縮／伸長伸量(TCOMP、以下、時間圧伸量と記す）) がある。
【００１６】
ここで、バンク番号(BANK)は、操作子群２０のバンクスイッチ(BANK-SW) で設定されたバンク番号が設定され、そのバンク番号(BANK)に従って、再生する波形データ（波形領域番号）の選択が行われる。
【００１７】
リンクモード(LINK-MODE) は、操作子群２０のアサインスイッチ(ASSIGN-SW) がモノフォニック２またはポリフォニック２のモード（すなわちリトリガしないモード）を設定した時には“１”（ＯＮを意味する）に設定され、モノフォニック１またはポリフォニック１のモード（すなわちリトリガするモード）を設定した時には“０”（ＯＦＦを意味する）に設定される。すなわち、リトリガを行うか否かを設定するレジスタとなる。
【００１８】
ホルマント移動量(F-VR)は、波形メモリ１２から読み出して再生する波形データのホルマントの移動量（シフト量）が設定されるもので、波形メモリ１２中の波形データは、このホルマント移動量(F-VR)が「１」である時は、原波形と同じホルマントで再生され、「１」より大きい値であると、ホルマントを原波形よりも高域側にシフトして再生され、「１」よりも小さい値であると、ホルマントを原波形よりも低域側にシフトして再生される。
【００１９】
時間圧伸量(TCOMP) は、波形メモリ１２に記憶された波形データを再生する時における時間圧縮／伸長の大きさ（すなわち波形再生速度）を数値設定するものである。この時間圧伸量(TCOMP) が「１」であると、原波形の時間変化と同じ速さで時間変化し、「１」より大きい値であると、原波形よりも速い時間変化をして再生時間が短くなり、「１」よりも小さい値であると、原波形よりも遅い時間変化をして再生時間が長くなる。
【００２０】
〔キー情報レジスタ〕
ＤＳＰ８はキー情報レジスタを備えており、後述するＣＰＵ２２の〔再生処理〕において、キーボード３０の操作が検出され、割当処理によってキー情報がＤＳＰ８に転送されて、このキー情報レジスタに一時的に記憶される。図９にこのキー情報レジスタの構成例が示される。キー情報は、キーオン／キーオフ情報(KeyOn/Off) 、音高情報(Pitch) 、ボイスモジュール情報(Voice-No.) 、レベル情報(Level) からなる。例えば、
キーオン情報：「KeyOn/Pitch/Voice-No./Level 」
キーオフ情報：「KeyOff/Pitch/Voice-No./Level」
の構成からなる。
【００２１】
なお、このキー情報レジスタは、ＤＳＰ８での受取り処理の前に、ＣＰＵ２２から新たなキー情報が転送されることがある場合には、複数のキー情報を一時記憶することが可能な、シフトレジスタのような構成で、さらに先に入力した情報を先に出力する構成にすればよい。すなわち、ＭＩＤＩ信号の受信処理と同様な処理とする。
【００２２】
波形メモリ１２はパラメータ記憶部と波形データ記憶部とで構成される。これらの記憶部のデータ構成を図１０、図１１に示す。図１０はパラメータ記憶部のデータ構成、図１１は波形データ記憶部のデータ構成である。パラメータ記憶部は＄８００番地毎に、また波形データ記憶部は＄８０００番地毎に各々セグメントで区切られており、各々のセグメントはアドレスの若い方から順番にwave０領域、wave１領域  、wave２領域  ・・・のように波形領域番号が付けられる。例えばある一つの波形についてそのパラメータをパラメータ記憶部のwave０領域に格納したら、その波形の波形データはパラメータに対応して波形データ記憶部の同じ番号のwave０領域に格納する。なお、図１０、図１１におけるアドレスは１６進数で表わされており、以降、本明細書では、＄８００のように数値の先頭に＄を付して１６進数であることを示す。
。
【００２３】
まず、パラメータ記憶部のデータ構成を図１０に従って説明する。例えばwave０領域において、アドレス“0000"に格納されているものはヘッダheaderであり、そのデータ内容として末尾アドレスendasrs が格納され、アドレス“0001"以降には開始アドレス情報が格納される。開始アドレスsadrs は波形データ記憶部における１ピッチ分の波形区間が開始するアドレスであり、波形ピッチspitchは波形データ記憶部における１ピッチ分の波形区間（以下、単に波形区間という）のアドレスの幅である。開始アドレス情報としては波形区間の開始アドレスsadrs と波形ピッチspitchとを一対でパラメータ記憶部に格納する。例えば波形データの最初の波形区間が開始アドレスsadrs0で波形ピッチspitch0 であり、次に続く波形区間が開始アドレスsadrs1で波形ピッチspitch1 である場合、最初の開始アドレスsadrs ０と波形ピッチspitch０はそれぞれアドレス“0001"、“OOO2"に格納され、続く開始アドレスsadrs １と波形ピッチspitch１はそれぞれアドレス“0003"、“OO04"に格納される。
【００２４】
次に波形データ記憶部のデータ構成を図１１に従って説明すると、これは各wave領域にシーケンシャルなアドレス順序でサンプリング値wave data が格納される。
【００２５】
以下、この実施例装置の動作をフローチャートを参照して説明する。
図２には、ＣＰＵ２２が行う処理として、メインルーチンのフローチャートが示される。メインルーチンがスタートすると、操作子群２０のモードスイッチ(MODE-SW) が録音モード、編集モード、再生モードの何れに操作されたか監視されており（ステップＡ）、操作がされると、その操作が録音モード、編集モード、再生モードの何れであるかが判定される（ステップＢ）。録音モードであれば、録音（ＲＥＣ）処理が行われ（ステップＣ）、編集モードであれば編集（ＥＤＩＴ）処理が行われ（ステップＤ）、再生モードであれば再生（ＰＬＡＹ）処理が行われる（ステップＥ）。
【００２６】
図３には録音モードにおける録音処理ルーチンのフローチャートが示される。録音処理は外部から入力された楽音信号を録音（サンプリング）する処理であり、モードスイッチ(MODE-SW) により録音モードに設定した後、サンプリングスタートの操作子を操作することによって（ステップＣ３）、サンプリングスタートして録音（サンプリング処理）が行われる（ステップＣ４）。サンプリングされる楽音信号のデータは波形メモリ１２に記憶される。この録音処理ルーチンから抜け出てメインルーチンにリターンするにはＥＸＩＴ操作子を操作する（ステップＣ２）。
【００２７】
図４には編集モードにおける編集処理ルーチンのフローチャートが示される。編集処理は、録音モードでサンプリングした波形を変更したり、再生可能な波形データに変更する編集処理や、それらの波形データをハードディスク装置３３に転送したり、ハードディスク装置３３から波形メモリ１２に転送したりする処理を行う（ステップＤ３）。この編集処理ルーチンから抜け出るにはＥＸＩＴ操作子を操作する（ステップＤ２）。
【００２８】
図５には再生モードにおける再生処理ルーチンのフローチャートが示される。この再生処理ルーチンの初期設定（ステップＥ１）においては、操作子群の状態を操作するレジスタ等をリセットし、操作子群を操作可能な状態にすると共に、各操作子の初期状態を設定しておく。初期状態とは、〔再生処理〕で、各操作子に変化があった時だけ操作子の操作に対応した処理を行うため、その最初の基準となる状態を設定している。
【００２９】
再生処理ルーチンは、モードスイッチ(MODE-SW) により再生モードに設定した後、再生スタートの操作子を操作することによってスタートする。再生処理（ステップＥ３）は、波形メモリ１２の波形データを、キーボード３０からの演奏情報に対応して再生する処理であり、この再生処理ルーチンから抜け出るにはＥＸＩＴ操作子を操作する（ステップＥ２）。
【００３０】
図６、図７にはこの再生モードにおける再生処理（ステップＥ３）の詳細な処理手順が示される。この再生処理はＣＰＵ２２で実行される。この再生処理では、操作子群２０による設定とキーボード３０による演奏操作を検出してそれらの操作情報をＤＳＰ８に転送して記憶させる処理を行う。
【００３１】
再生処理が開始されると、操作子群２０の操作状態を走査して、バンクスイッチ(BANK-SW) 、アサインスイッチ(ASSIGN-SW) 、ホルマント設定操作子(F-VR)、時間圧伸量設定操作子(TCOMP) の操作状態を検出する（ステップＥ３００）。これらの操作状態に変化があったときには、以下のように、それらのスイッチ操作に対応して操作子設定テーブル等への設定処理を行う。
【００３２】
まず、バンクスイッチ(BANK-SW) の操作に変化が有るか否かを見て（ステップＥ３０１）、変化が有る場合には、バンクスイッチ(BANK-SW) で設定されたバンク番号(BANK)を、ＤＳＰ８の操作子設定テーブルのバンク番号(BANK)に設定する。
【００３３】
次に、アサインスイッチ(ASSIGN-SW) の操作に変化が有るか否かを見て（ステップＥ３０３）、変化が有る場合には、アサインスイッチ(ASSIGN-SW) で設定されたモードがモノフォニック２またはポリフォニック２か否かを判定する。肯定判定（モノフォニック２またはポリフォニック２と判定）である場合は「リトリガ」を行わないモードが設定されたものであり、この場合には、ＤＳＰ８の操作子設定テーブルのリンクモード(LINK-MODE) に“１”を設定する。否定判定である場合は「リトリガ」を行うモードが設定されたものであり、この場合には、ＤＳＰ８の操作子設定テーブルのリンクモード(LINK-MODE) に“０”を設定する。さらに、アサインスイッチ(ASSIGN-SW) で設定されたモードがモノフォニック（１または２）であるかポリフォニック（１または２）であるかを判定し、モノフォニック１または２である場合にはアサインフラグ(AS-FLG)をモノフォニック(MONO)にセットし（ステップＥ３０８）、ポリフォニック１または２である場合にはポリフォニック(POLY)にセットする（ステップＥ３０９）。このアサインフラグ(AS-FLG)により、ボイスモジュール（楽音発生チャネル）への割当処理が１ボイス（モノフォニックの場合）か複数ボイス（ポリフォニックの場合）かを知ることができる。
【００３４】
次に、ホルマント設定操作子(F-VR)に変化が有るか否かを見て（ステップＥ３１０）、変化が有る場合には、その検出値を、ＤＳＰ８の操作子設定テーブルのホルマント移動量(F-VR)に設定する（ステップＥ３１１）。同様に、時間圧伸量設定操作子(TCOMP) に変化が有るか否かを見て（ステップＥ３１２）、変化がある場合には、その検出値を、ＤＳＰ８の操作子設定テーブルの時間圧伸量(TCOMP) に設定する（ステップＥ３１３）。
【００３５】
これらの設定操作の後、キーボード３０からの操作鍵情報（キー情報）を検出する（ステップＥ３１４）。そして、アサインフラグ(AS-FLG)の状態を判定し（ステップＥ３１５）、これがモノフォニック(MONO)である場合には、操作鍵を１ボイスモジュールに割り当てて、検出したキー情報をＤＳＰ８に転送する（ステップＥ３１６）、ポリフォニック(POLY)である場合には、操作鍵を複数ボイスモジュールに割り当てて、検出したキー情報をＤＳＰ８に転送する（ステップＥ３１７）。ＤＳＰ８では受信したキー情報をキー情報レジスタに一時記憶する。この１ボイスモジュールまたは複数ボイスモジュールへの割当て処理について以下に説明する。
【００３６】
〔１ボイスモジュールへの割当処理〕
単音（１ボイス）のみを発音するモードの割当処理である。キーボード３０のキー情報の検出の結果、操作鍵のうち、最後に押鍵した鍵を優先的に１つのボイスモジュール（楽音発生チャンネル）に割り当てる。なお、この割当処理では１ボイスモジュールへの割当なので、ボイスモジュール情報(Voice-No.) の値は常に「No. １」になる。
【００３７】
〔複数ボイスモジュールへの割当処理〕
複数音が発音可能なモードの割当処理である。キーボード３０のキー情報の検出の結果、操作鍵のうち、予め決められた数の押鍵だけを所定の数のボイスモジュールに割り当てる。この実施例では複数ボイスの数を２ボイスとしている。所定のボイス数（実施例では２）以上操作されても受け付けない。キーオン情報が入力されたとき、空きボイスがあるときのみに割当処理を行う。
【００３８】
なお、キーオン情報を転送し、楽音が発音中にアサインスイッチ(ASSIGN-SW) を変更すると、発音中の楽音が止まらないなどの動作の不都合が起こる可能性がある。よって、かかる動作の不都合を防止するため、楽音が発音中にアサインスイッチ(ASSIGN-SW) を操作して動作モードが変更された場合には、発音中の楽音の全てに対してキーオフ情報を転送するようにしている。そして、新たな動作モードで発音中（押鍵中）のキーオン情報を転送するようにしている。
【００３９】
以上の割当て処理は、鍵数よりも少ない数の音源を備えた電子楽器において、押鍵を音源に割り当てる公知のジェネレータアサインの技術を使用するので、詳細は省略する。
【００４０】
次に、キー情報の転送を受けたＤＳＰ８の処理を図１２、図１３を参照して説明する。図１２、図１３はＤＳＰ８のメインルーチンを示すフローチャートであり、サンプリング周期で繰り返し実行されるものである。ＣＰＵ２２から新たなキー情報の転送があったか否かをキー情報レジスタをみて監視しており（ステップＦ１）、キー情報の転送があればその内容に基づいて以下のステップＦ２〜Ｆ１６のボイスの消音処理／発音開始処理／リンク発音処理を行い、キー情報の転送がなければ後述するステップＦ１７〜Ｆ２２の読出処理／出力処理へとジャンプする。
【００４１】
キー情報の転送があると、そのキー情報のボイスモジュール情報(Voice-No.) を調べる（ステップＦ２）。この実施例では、ボイスモジュールの数は二つであり、従ってボイスモジュール情報(Voice-No.) もVoice-No.1とVoice-No.2の二つである。ここで、ボイス２への割当はポリフォニック１または２のときだけ行われる。したがってボイスモジュール情報がVoice-No.1である場合は、モードとしてはモノフォニックとポリフォニックの双方の場合があり、Voice-No.2の場合はモードはポリフォニックとなる。
【００４２】
ボイスモジュール情報Voice-No.1であった場合、更にそのキー情報がキーオン情報KeyOn かキーオフ情報KeyOffかを判定し（ステップＦ３）、キーオフ情報KeyOffであれば、それまで発音を行っていたボイス１（ボイスモジュールNo.1 )の消音処理を行う（ステップＦ４）。この消音処理の詳細な内容は、図１４に示すように、
SCNT(1) ＝０
LEVEL(1)＝０
SPHASE(1) ＝ENDADRS(1)
とすることである。
【００４３】
ここで、括弧付きの数字はボイスモジュールの番号である。SPHASEは波形再生に要する時間の進行を管理するパラメータであり、ここでは進行位置と称する。この進行位置SPHASEは先頭の波形区間の開始アドレスを基準とした波形データのアドレス値（波形データ記憶部のアドレス値）で表現される。またSCNT(n) はボイスｎの発音の進行を管理するカウンタであり、波形データ記憶部から読み出す波形区間情報を更新（すなわち波形ピッチSPITCHや開始アドレスSADRS を更新）するためのカウント値をカウントするものである。従って、上記の図１４の消音処理は、ボイス１について、カウンタSCNTを０にリセットし音量レベルLEVEL を０にするとともに、進行位置SPHASEを末尾アドレスENDADRS にして波形再生が進行しないようにするものである。
【００４４】
キー情報がキーオン情報KeyOn であった場合、操作子設定テーブルのリンクモード(LINK-MODE) を調べる。リンクモード(LINK-MODE) が“０”の場合には「リトリガ」を行うモード、すなわち新たなキーオン情報KeyOn を受信したら波形データを再生中であってもその波形データの先頭から再生し直すモードであり、よって〔ボイス１の発音開始処理〕を行う（ステップＦ１０）。この〔ボイス１の発音開始処理〕は要するに、波形メモリ１２から該当する波形のパラメータおよび波形データをその先頭から読み出す処理である。
【００４５】
この〔ボイス１の発音開始処理〕が実行される条件は以下のようになる。
▲１▼モノフォニック１のモードで、ボイス１に対するキーオン情報が入力されたとき・
▲２▼モノフォニック２のモードで、ボイス１が発音されていないときに、ボイス１に対するキーオン情報が入力されたとき．
▲３▼ポリフォニック１のモードで、ボイス１に対するキーオン情報が入力されたとき．
▲４▼ポリフォニック２のモードで、ボイス２が発音されていないときに、ボイス１に対するキーオン情報が入力されたとき．（このモードのとき、ボイス１は割当処理で発音されていないことを確認して割り当てられる）。
【００４６】
この〔ボイス１発音開始処理〕の具体的な内容は、図１６に示されるように、
PITCH(1)＝Pitch
LEVEL(1)＝Level
SCNT(1) ＝０
ENDADRS(1)＝@ (BANK ＊ $800)
SPHASE(1) ＝@ (BANK ＊ $800 ＋SCNT(1) ＋１)
SPITCH(1) ＝@ (BANK ＊ $800 ＋SCNT(1) ＋２)
SADRS(1)＝@ (BANK ＊ $800 ＋SCNT(1) ＋３)
START(1)＝SPHASE(1)
WIDTH(1)＝０
S-FLG1(1) ＝０
S-FLG2(1) ＝０
SCNT(1) ＝１
を行うことである。
【００４７】
ここで、START は波形データ記憶部から実際（現に）に読み出している波形区間の先頭アドレスである。また上記中の「＊」は乗算を、「＠」は括弧内に示されたアドレスからデータを読み出すことを表す。例えば、ENDADRS(1)＝@ (BANK ＊ $800 ) は、パラメータ記憶部の読出しポインタが示す(BANK ＊ $800 ) から内容(data)を読み出し、ENDADRS(1)に設定することを意味している。
【００４８】
上記のボイス１発音開始処理は、ボイス１について、キー入力された音高情報Pitch とレベル情報Level をキー情報レジスタPITCH(1)、LEVEL(1)に転記し、カウンタSCNT(1) を初期値「０」にリセットし、該当するバンク番号BANK (波形領域番号) の波形データの末尾アドレスENDADRS(1)を波形パラメータ記憶部における当該バンク番号BANKの波形領域の先頭番地“0000"から読み出してセットし、進行位置SPHASE(1) を波形パラメータ記憶部における上記先頭から２番目の番地“0001" (最初の波形区間の開始アドレスが格納されている) から読み出してセットするとともに、その進行位置SPHASE(1) を先頭アドレスSTART(1)としてセットし、上記波形データの先頭の波形区間の波形ピッチSPITCH(1) を上記先頭番地から２番目の番地“0002"から読み出してセットし、上記波形データの先頭から２番目の波形区間の開始アドレスSADRS(1)を上記先頭から３番目の番地“0003"から読み出してセットするなどの処理を行った後に、カウンタSCNT(1) を一つ更新して１にするものである。
【００４９】
リンクモード(LINK-MODE) が“１”の場合には「リトリガ」を行わないモード、すなわち新たなキーオン情報KeyOn を受信したら、波形データを再生中であれば、その時点以降の波形データを当該キーオン情報KeyOn で指定されたピッチに変更して再生するモードである。この場合、まず開始カウンタSCNT(1) が０か否かを判定する（ステップＦ６）。ここで開始カウンタSCNT(n) はボイスｎの発音の進行を管理するカウンタであり、この値が「０」の場合にはボイスｎがまだ未発音であることを示し、何らかの値となっていれば既に発音開始されたことを示す。
【００５０】
開始カウンタSCNT(1) が「０」以外の値すなわちボイス１が既に発音中であれば、ステップＦ７に移行しボイス１からボイス１へのリンク発音処理を行う（ステップＦ７）。この経路を辿るのは、モードはモノフォニックであり、ボイス１が既に発音中であり、かつ「リトリガ」をしない場合であるから、ボイス１で発音中の波形を、キーオン情報の入力時点から以降、同じボイス１において当該キーオン情報中の音高情報(Pitch) に変更して再生する。上記リンク発音処理はこのための処理であり、図１８に示すように、キー情報レジスタの音高Pitch(1)とレベル情報Level(1)を、受信したキーオン情報中の音高情報(Pitch) とレベル情報  (Level) で書き換える処理、すなわち、図１８に示されるように、
Pitch(1)＝Pitch
Level(1)＝Level
とする処理である。
【００５１】
この〔ボイス１からボイス１へのリンク発音処理〕が実行される条件は、モノフォニック２のモードで、ボイス１が発音中にボイス１に対するキーオン情報が入力されたときであり、このモードのときにのみ、割当処理でボイス１が発音中にボイス１に対するキーオン情報が割り当てられる。
【００５２】
ステップＦ６でカウンタSCNT(1) が「０」すなわちボイス１がまだ未発音であれば、さらにボイス２のカウンタSCNT(2) が「０」か否かを判定する（ステップＦ８）。カウンタSCNT(2) が「０」でない場合はボイス２が発音中であることを意味し、よってモードはポリフォニックであり、入力したキーオン情報はレガート奏法における２番目の押鍵のキーオン情報である。この場合、ボイス２での波形の発音再生を継続するとともに、そのキーオン情報の入力時点以降の波形に対して、その新たに入力したキーオン情報に応じた音高での再生をボイス１でも行う。このための処理がステップＦ９の〔ボイス２からボイス１へのリンク発音処理〕であり、ボイス２に保持していた再生中の波形の各種データをボイス１に渡すとともに、そのデータを新たに入力したキーオン情報に基づいて変更する。
【００５３】
この〔ボイス２からボイス１へのリンク発音処理〕が実行される条件は、ポリフォニック２のモードで、ボイス２が発音中にボイス１に対するキーオン情報が入力されたときである。このモードのとき、ボイス１は割当処理で発音されていないことを確認して割り当てられる。
【００５４】
〔ボイス２からボイス１へのリンク発音処理〕の具体的内容は、図２０に示されるように、
PITCH(1)＝Pitch
LEVEC(1)＝Level
SCNT(1) ＝SCNT(2)
ENDADRS(1)＝ENDADRS(2)
SPHASE(1) ＝SPHASE(2)
SPITCH(1)=SPITCH(2)
SADRS(1)＝SADRS(2)
START(1)＝START(2)
WIDTH(1)＝０
S-FLG1(1) ＝０
S-FLG2(1) ＝０
とする処理である。
【００５５】
すなわち、このリンク発音処理は、ボイス２での発音をその音高とレベルを変更してボイス１で受け継ぐために、キー入力された音高情報pitch とレベル情報Level をキー情報レジスタPITCH(1)、LEVEL(1)に転記するとともに、ボイス２における、レジスタSCNT(2) 、ENDADRS(2)、SPHASE(2) 、SADRS(2)、START(2)の各値をボイス１におけるレジスタSCNT(1) 、ENDADRS(1)、SPHASE(1) 、SADRS(1)、START(1)にそれぞれ書き写すものである。
【００５６】
ステップＦ８において、カウンタSCNT(2) が「０」の場合はボイス２がまだ未発音であることを意味し、よってモードはモノフォニックまたはポリフォニックである。この経路を辿る場合はボイス１もボイス２も未発音であるので、新たに入力したキーオン情報はレガート奏法における２番目の押鍵ではなく、よってこのキーオン情報はボイス１に割り当てられて、波形データは先頭から再生される。この場合、前述のステップＦ１０の〔ボイス１の発音開始処理〕を行う。
【００５７】
一方、ステップＦ２の判定において、ボイスモジュール情報(Voice-No.) がVoice-No.2であった場合はモードはポリフォニックとなる。この場合、更にそのキー情報がキーオン情報KeyOn かキーオフ情報KeyOffかを判定し（ステップＦ１１）、キーオフ情報KeyOffであれば、それまで発音を行っていたボイス２(No.2 のボイスモジュール) を消音処理を行う（ステップＦ１６）。この消音処理の詳細な内容は、図１５に示すように、
SCNT(2) ＝０
LEVEL(2)＝０
SPHASE(2) ＝ENDADRS(2)
とする処理である。
【００５８】
キー情報はキーオン情報KeyOn であった場合、操作子設定テーブルのリンクモード(LINK-MODE) を調べる。リンクモード(LINK-MODE) が“０”の場合には「リトリガ」を行うモード、すなわち新たなキーオン情報KeyOn を受信したら波形データを再生中であってもその波形データの先頭から再生し直すモードであり、よって〔ボイス２の発音開始処理〕を行う（ステップＦ１３）。この〔ボイス２の発音開始処理〕は要するに、波形メモリ１２から該当する波形のパラメータおよび波形データをその先頭から読み出してボイス２で発音する処理である。
【００５９】
この〔ボイス２の発音開始処理〕が実行される条件は、
▲１▼ポリフォニック１のモードで、ポイス２に対するキーオン情報が入力されたとき、
▲２▼ポリフォニック２のモードで、ボイス2 が発音されていないときに、ボイス２に対するキーオン情報が入力されたとき、
である。
なお、ボイス２への割当はポリフォニック１、ポリフォニック２のときだけ行われる。
【００６０】
この〔ボイス２発音開始処理〕の具体的な内容は、図１７に示されるように、
PITCH(2)＝Pitch
LEVEL(2)＝Level
SCNT(2) ＝０
ENDADRS(2)＝@ (BANK ＊ $800)
SPHASE(2) ＝@ (BANK ＊ $800 ＋SCNT(2) ＋１)
SPITCH(2) ＝@ (BANK ＊ $800 ＋SCNT(2) ＋２)
SADRS(2)＝@ (BANK ＊ $800 ＋SCNT(2) ＋３)
START(2)＝SPHASE(2)
WIDTH(2)＝０
S-FLG1(2) ＝０
S-FLG2(2) ＝０
SCNT(2) ＝１
を行うことである。
【００６１】
ステップＦ１２の判断で、リンクモード(LINK-MODE) が“１”の場合には「リトリガ」を行わないモード、すなわち新たなキーオン情報KeyOn を受信したら、波形データを再生中であれば、その時点以降の波形データを当該キーオン情報KeyOn で指定されたピッチに変更して再生するモードである。この場合、まずカウンタSCNT(1) が０か否かを判定する（ステップＦ１４）。
【００６２】
カウンタSCNT(1) が「０」の場合、すなわちボイス１が未だ未発音であれば、前述のステップＦ１３の〔ボイス２の発音開始処理〕を行う。
【００６３】
カウンタSCNT(1) が「０」以外の値の場合、すなわちボイス１が既に発音中であれば、ステップＦ１５に移行し〔ボイス１からボイス２へのリンク発音処理〕を行う。この経路を辿るのは、モードはポリフォニックであり、ボイス１が既に発音中であり、かつ「リトリガ」をしない場合であるから、ボイス１で発音中の波形を、キーオン情報の入力時点から以降、ボイス１で継続して発音するとともに、それと並行して、ボイス２においても当該キーオン情報中の音高情報(Pitch) に変更して再生する。上記〔ボイス１からボイス２へのリンク発音処理〕はこのための処理である。
【００６４】
この〔ボイス１からボイス２へのリンク発音処理〕が実行される条件は、ポリフォニック２のモードで、ボイス１が発音中にボイス２に対するキーオン情報が入力されたときである。
【００６５】
〔ボイス１からボイス２へのリンク発音処理〕の具体的内容は、図１９に示されるように、
PITCH(2)＝Pitch
LEVEC(2)＝Level
SCNT(2) ＝SCNT(1)
ENDADRS(2)＝ENDADRS(1)
SPHASE(2) ＝SPHASE(1)
SPITCH(2)=SPITCH(1)
SADRS(2)＝SADRS(1)
START(2)＝START(1)
WIDTH(2)＝０
S-FLG1(2) ＝０
S-FLG2(2) ＝０
とする処理である。
【００６６】
キー情報の入力に対して以上の処理が終了したら、ボイスモジュール番号ｎを「１」に設定し（ステップＦ１７）、ボイスモジュール（ｎ）の読出し処理を行う（ステップＦ１８）。この読出し処理については後に詳述する。その後、ボイスモジュール番号ｎが最終番号（この実施例ではボイス数の２）か判定し（ステップＦ１９）、最終番号に達していなかったら、ボイスモジュール番号ｎを一つインクリメントして（ステップＦ２０）、その番号のボイスモジュールの読出し処理を繰り返す。
【００６７】
ボイスモジュール番号が最終番号になったら、各ボイス１、２の出力OUT(1)、OUT(2)を足し合わせて合成出力OUT とし（ステップＦ２１）、この合成出力OUT を出力する（ステップＦ２２）。
【００６８】
上述のステップＳＦ１８の「読出し処理」は、サンプル波形（音声）から音素片を切り出し、その音素片のホルマントの特徴をほぼ保ったまま、所望の再生音高に対応した周期でその音素片を再生することによって、サンプル波形のホルマント特性を保ったままピッチを変換するものである。
【００６９】
この読出し処理では、再生される波形のピッチは鍵盤で押下したキーの音高に応じて変更されるが、再生時間は再生ピッチの大きさ（すなわちどのキーが押下されたか）によらず一定である。すなわち、ポリフォニックの場合、レガート奏法の２番目の押鍵により、１番目の押鍵の音高に応じた波形再生と並行して２番目の押鍵の音高に応じた波形再生が行われた場合、１番目の波形再生の終了と２番目の波形再生の終了は同時となる。一方、従来のように単に読出し速度を変えることでピッチシフトを行っている場合には、上記のようなときには１番目と２番目の波形再生の終了はタイミングがずれてしまい違和感が生じるが、本実施例によれば、かかる違和感を無くすことができる。
【００７０】
この読出し処理動作を概略的に説明すると、波形メモリ１２に記憶されている波形データからパラメータデータに基づいて所望の区間（１ピッチ分の波形区間）を音素片として時間経過に従って順次に切り出して、その切り出した音素片を、元の波形とは異なるピッチおよびホルマントで再生するものである。その際、この音素片の再生を二つの処理経路で並行して行い、それぞれの処理経路では再生しようとするピッチ周期の２倍の周期でかつ互いが半周期ずれるようにして音素片を再生し、これらを合成して元のピッチ周期にするようにしている。
【００７１】
図２５〜図２８はこのピッチ変換処理を説明する図である。ホルマント移動量“F-VR"はサンプリングデータのホルマントがピッチシフト後も全く変わらないとやや不自然な感じがあるので、これを若干変更する場合のものであり、ホルマント移動量“F-VR"が１であれば変更なし、１以外であればホルマントを若干変更する。ここでは、ホルマント移動量(F-VR)が１すなわちホルマント変更無しの場合を図２５、２６で説明し、ホルマント変更ありの場合を図２７、図２８で説明する。
【００７２】
まず、図２５を参照して、鍵盤のキー押下で音高を指定することにより、元の波形データを低域側にピッチシフトして再生する場合について説明する。ここではホルマント特性変更は行わない（ホルマント移動量“F-VR"＝１）。
【００７３】
図２５の（ａ）は波形メモリ１２の波形データであり、波形パラメータで示されるピッチSpitch0 、Spitch1 ・・・を有する。このピッチ“SPITCH"で音素片が順次に切り出される。鍵盤のキーで音高指定されたキー指定ピッチ“PITCH" に応じて、再生しようとするピッチ（すなわちシフト後のピッチ）を再生ピッチ“WIDTH" とする。すなわち、「再生ピッチ“WIDTH" ＝キー指定ピッチ“PITCH" 」である。この再生ピッチ“WIDTH" を周期長とする再生位相“PHASE" を図２５ (ｂ) のように作成し、このフェーズ“PHASE" から２つの処理経路の位相、すなわち図２５ (ｄ) に示す第１の処理経路の第１位相“PH 1"、図２５ (ｅ) に示す第２の処理経路の第２位相“PH 2"を作成する。なお、これら第１、第２の位相“PH 1"、“PH 2"はサンプリング周期毎にインクリメントされて増加する
【００７４】
そして、第１の処理経路は、「第１位相“PH 1"×ホルマント移動量“F-VR"」の読出し速度で、また、第２の処理経路は、「第２位相“PH 2"×ホルマント移動量“F-VR"」の読出し速度で、それぞれの音素片を順次に読み出す。この読出し速度がホルマント特性の変更に関係する。ただし、今の場合はホルマント移動量“F-VR"＝１であるから、第１、第２の位相“PH 1", “PH 2"の変化と等しく、結果的にホルマント特性は変更されない。
【００７５】
さらに、第１、第２の位相“PH 1", “PH 2"にそれぞれ同期して、ホルマント処理のために波形データを切り取るためのエンベロープ“ENV 1", “ENV 2"を第１、第２の処理経路について作成する。第１の処理経路は図２５ (ｆ) に示すエンベロープ“ENV 1"  の波形を持ち、第２の処理経路は図２５ (ｇ) に示すエンベロープ“ENV 2"  の波形を持つ。エンベロープ“ENV 1“ 、“ENV 2" は０〜１の範囲の値であり、エンベロープ長“LENGTH"を半周期とし、前半の周期では０から逐次に増加して１になり、後半の周期では１から逐次に減少して０になる山形をしている。エンベロープ“ENV 1", “ENV 2"の  エンベロープ長“LENGTH"  は、
「エンプロープ長“LENGTH"＝ピッチ“SPITCH"／ホルマント移動量“F-VR"」
で求める。
【００７６】
第１の処理経路では、波形データの２ピッチ分の音素片に、エンベロープ“ENV 1" を乗算し、図２５ (ｈ) に示す波形を得る。同様に、第２の処理経路では、波形データの２ピッチ分の音素片 (第１の処理経路より１ピッチずれた２ピッチ分の音素片) に、エンベロープ“ENV 2" を乗算し、図２５ (ｉ) に示す波形を得る。このような処理の仕方によれば、これらの波形は元の波形データの音素片のホルマント特性をそのまま保持したものとなる。この図２５ (ｈ) 、 (ｉ) の波形は再生ピッチ“WIDTH" の周期長の２倍の長さであるが、両者の波形を足し合わせると再生ピッチ“WIDTH" の周期長となる。従って、鍵盤からのキー指定ピッチ“PITCH" によって元のサンプリングデータを低域側にピッチシフトしつつ、そのホルマント特性はそのまま維持できる。
【００７７】
図２６は再生ピッチを小さくした場合、すなわち鍵盤からのキー指定ピッチ“PITCH" に基づいて元の波形データを高域側にピッチシフトする場合のものである。ここでは、ホルマント移動量“F-VR"＝１としている。
【００７８】
前述の図２５の場合と同様に、音素片の読出し速度は、第１の処理経路が、「第１位相“PH 1"×ホルマント移動量“F-VR"」、第２の処理経路が、「第２位相“PH 2"×ホルマント移動量“F-VR"」であるから、第１、第２の位相“PH 1", “PH 2"の変化と等しく、結果的にホルマント特性には変更が付与されない。
【００７９】
ただし、エンベロープ“ENV 1", “ENV 2"の  エンプロープ長“LENGTH"は、
「エンプロープ長“LENGTH"＝ピッチ“SPITCH"／ホルマント移動量“F-VR"」
であるから、ピッチ“SPITCH"と一致するよう演算されるが、後述する効果付加処理のステップで、エンベロープ長“LENGTH"が再生ピッチ“WIDTH" よりも大きくならないよう制限しているため、エンベロープ長“LENGTH"は再生ピッチ“WIDTH" に等しくなる。このように、元のサンプリングデータを高域側にピッチシフトしつつ、そのホルマント特性はそのまま維持できる。
【００８０】
図２７はホルマント特性変更を行う場合（ホルマント移動量“F-VR"＞１）を示している。ここでは、理解しやすくするために、キー指定ピッチ“PITCH" を、元の波形データのピッチ“SPITCH"とほぼ等しいものとしている。
【００８１】
音素片の読出し速度は、第１の処理経路が、「第１位相“PH 1"×ホルマント移動量“F-VR"」、第２の処理経路が、「第２位相“PH 2"×ホルマント移動量“F-VR"」であるから、第１、第２の位相“PH 1", “PH 2"の変化より速く、結果的にホルマント特性は高域側にシフトされ、変更が付与されることになる。
【００８２】
エンベロープ“ENV 1", “ENV 2"の  エンプロープ長“LENGTH"は、
「エンプロープ長“LENGTH"＝ピッチ“SPITCH"／ホルマント移動量“F-VR"」
であるから、ピッチ“PITCH" よりも小さくなる。この結果、元の波形データのホルマント特性を変更することができる。
【００８３】
図２８は上述同様にキー入力ピッチ“PITCH" を元の波形データのピッチ“SPITCH"とほぼ等しいものとして、ホルマント特性変更（ホルマント移動量“F-VR"＜１）を行う場合を示している。音素片の読出し速度は、第１の処理経路が、「第１位相“PH 1"×ホルマント移動量“F-VR"」、第２の処理経路が、「第２位相“PH 2"×ホルマント移動量“F-VR"」であるから、第１、第２の位相“PH 1", “PH 2"の変化より遅く、結果的にホルマント特性は低域側にシフトされ、変更が付与されることになる。
【００８４】
エンベロープ“ENV 1", “ENV 2"の  エンプロープ長“LENGTH"は、
「エンプロープ長“LENGTH"＝ピッチ“SPITCH"／ホルマント移動量“F-VR"」
であるから、ピッチ“SPITCH"よりも大きくなるよう演算されるが、後述する効果付加処理のステップで、エンベロープ長“LENGTH"が再生ピッチ“WIDTH" よりも大きくならないよう制限しているため、エンベロープ長“LENGTH"は再生ピッチ“WIDTH" に等しくなる。この結果、元の波形データのホルマント特性を変更することができる。
【００８５】
上記の効果付加を含む読出し処理の動作を図２１、図２２のフローチャートに基づいて説明する。なお、図２１、図２２中の括弧書きの添字(n) はボイスモジュール番号ｎのパラメータ等であることを意味するものであるが、以下の説明では特に必要がない場合は記述を省略する。
【００８６】
ＤＳＰ８は、処理のため着目している１ピッチ分の波形区間のピッチ“SPITCH"を記憶するピッチレジスタ(SPITCH)、波形データを読み出すための開始アドレス“SADRS" を記憶する開始アドレスレジスタ(SADRS) を備えている。更に、後述する再生ピッチ周期長“WIDTH" に達したかをカウントするための再生位相カウンタ“PHASE" 、第１の波形の位相“PH 1"をカウントするための第１位相カウンタ(PH 1)、第２の波形の位相“PH 2"をカウントするための第２位相カウンタ(PH 2)も設けられている。
【００８７】
また、再生ピッチ“WIDTH" （＝再生ピッチ周期長）を記憶するための再生ピッチレジスタ(WIDTH) 、ピッチ“SPITCH"とホルマント移動量“F-VR"から定めたエンベロープの長さ“LENGTH"を記憶するエンベロープ長レジスタ(LENGTH)、第１の波形のエンベロープ“ENV 1" を記憶するための第１エンベロープ波形レジスタ(ENV 1) 、および第２の波形のエンベロープ“ENV 2" を記憶するための第２エンベロープ波形レジスタ(ENV 2) が設けられている。
【００８８】
更に、第１の波形のエンベロープの形状を決定するためのレジスタ(WINDOW 1)、第２の波形のエンベロープの形状を決定するためのレジスタ(WINDOW 2)、エンベロープ長“LENGTH"の値に基づいて定めたレジスタ(WINDOW 1)、(WINDOW 2)の値の歩進率“W-RATE"を記憶する歩進率レジスタ(W-RATE)、第１の波形の読出し開始アドレス“SADRS 1" を記憶する第１読出しアドレスレジスタ(SADRS 1) 、第２の波形の読出し開始アドレス“SADRS 2" を記憶する第２読出しアドレスレジスタ(SADRS 2) 、第１および第２の波形の読出しの開始位置等の決定するために使用するフラグ“Ｆ”等も設けられている。
【００８９】
以下、全体的な動作を図２１、図２２のフローチャートに従って説明する。このフローチャートは図２５〜図２８の動作に対応したものである。上述の各レジスタは、電源の投入の際に、初期化が行われる。即ち、フラグＦ(1) 、Ｆ(2) を「１」に、他のもの例えばレジスタSCNT(2) 、SCNT(1) 、WIDTH(1)、WIDTH(2)、PITCH(1)、PITCH(2)、LEVEL(1)、LEVEL(2)、ENDADRS(1)、ENDADRS(2)等を「０」に初期設定する。
【００９０】
なお、以下の説明では、電源投入後少し時間が経過し、前記フローチャートの処理によって、各レジスタや各カウンタには、既に適当な値が記憶されているとして説明する。また、このフローチャートは、ＤＳＰ８に波形メモリ１２から波形データが入力されるごとに実行される。
【００９１】
進行位置SPHASE(n) には、前述のボイスの発音開始処理またはリンク発音処理によって、波形メモリ１２のパラメータ記憶部におけるバンク番号BANKで示される波形領域の先頭の波形区間の開始アドレスsadrs0が格納されている。進行位置SPHASEはこれを基準点にして時間の進行を管理する。１サンプル分の波形データが供給されると、進行位置SPHASE(n) を時間圧伸量TCOMP だけインクリメントする（ステップＦ３１）。すなわち、
SPHASE(n)＝SPHASE(n) ＋TCOMP
とする。このような更新をする結果、時間圧伸量TCOMP が大きければ、進行位置SPHASEは速く進んで波形全体を再生するに要する時間が短くなり、反対に時間圧伸量TCOMP が小さければ進行位置SPHASEは遅く進むので波形全体を再生するに要する時間は長くなる。
【００９２】
この進行位置SPHASEと末尾アドレスENDADRS を比較し (ステップＦ３２) 、進行位置SPHASEが末尾アドレスENDADRS より小さければ、まだその波形全体の末尾まで処理を終えていないことを意味する。この場合、さらに進行位置SPHASEと開始アドレスSADRS を比較する（ステップＦ３３）。この開始アドレスは前述した図１６、図１７の発音開始処理からも分かるように、次に続く波形区間の開始アドレスである。よって進行位置SPHASEが開始アドレスSADRS(n)  より大きければ、それまで処理していた波形区間が終了したので、この波形区間から次の波形区間に処理を移行するために波形区間の更新を行う。この波形区間の更新は次のようにして行う。
SPITCH(n) ＝@ （BANK＊＄800 ＋２＋SCNT(n) ＊２）
SADRS(n)  ＝@ （BANK＊＄800 ＋３＋SCNT(n) ＊２）
SCNT(n)   ＝SCNT(n) ＋１
【００９３】
すなわち、波形メモリ１２のパラメータ記憶部からパラメータデータ（次に続く１ピッチ分の波形区間の波形ピットと更にその後の波形区間の開始アドレス) を読み出してきて、それぞれ、現在の波形区間の波形ピッチSPITCH(n) 、次の波形区間の開始アドレスSADRS(n)  とし、カウンタSCNT(n) を一つインクリメントする。
【００９４】
ステップＦ３３において、進行位置SPHASEが次の波形区間の開始アドレスSADRS(n)以下であれば、まだ現在の波形区間の途中であるから、波形区間の更新は行わないので、ステップＦ３４の処理は飛び越す。
【００９５】
さらに、先頭アドレスSTART(n)を更新するか否かを判定するために、（START(n)＋SPITCH(n) ）と進行位置SPHASEとを比較する（ステップＦ３５）。（START(n)＋SPITCH(n) ）よりも進行位置SPHASEの方が大きければ、進行位置SPHASEが現在の波形区間を超えたことを意味し、この場合には先頭アドレスSTART(n)を次の波形区間の値に更新する。この更新は先頭アドレスSTART(n)を波形ピッチSPITCH(n) だけインクリメントして行う（ステップＦ３６）。すなわち、
START(n)＝START(n)＋SPITCH(n)
とする。進行位置SPHASEが（START(n)＋SPITCH(n) ）以下である場合には、この先頭アドレスの更新は行わない。
【００９６】
前記のステップＦ３２で、進行位置SPHASEが末尾アドレスENDADRS 以上の場合には、
SPHASE(n) ＝ENDADRS(n)
とする。すなわち進行位置SPHASEを末尾アドレスENDADRS の値に固定して（ステップＦ３７）、上述のステップＦ３３〜Ｆ３６を飛び越してステップＦ３８に移行する。この場合には、波形区間と先頭アドレスの更新を行わない（つまりレジスタSPITCH、SADRS 、SCNT、START を更新しない）。これは、進行位置SPHASEが波形全体の末尾まで至ったら、その値を末尾アドレスENDADRS に固定してその進行を止めるものである。かかる制限をしない場合には次に続く波形領域の他の波形データが読み出されてノイズとなる虞があるが、上記制限によりこれを防止できる。
【００９７】
以上のステップＦ３１〜Ｆ３７の処理により、大きな時間圧伸量TCOMP が設定された場合には進行位置SPHASEが速く進んで１ピッチ分の波形区間の更新が早く行われ、よって波形再生時間が短くなる。反対に時間圧伸量TCOMP が小さい場合には進行位置SPHASEが遅く進んで１ピッチ分の波形区間の更新が遅く行われ、よって波形再生時間が長くなる。なお、この時間圧伸量TCOMP をかなり小さな値に設定した場合には同じ波形区間が複数回繰り返して再生されつつ、遅い速度で波形再生が進行するようになる。これは、進行位置SPHASEの進行がゆっくりしているためステップＦ３３、Ｆ３５の判断で進行位置SPHASEがなかなか比較している値よりも大きくならず、よって波形区間の更新がなかなか行われないで同じ波形区間からの読出し処理が繰り返し行われるためである。反対に、時間圧伸量TCOMP をかなり大きな値にすると、波形区間の更新において、次に続く波形区間を飛び越してしまいその波形区間の再生が行われないような場合も生じる。
【００９８】
上記のように進行位置SPHASEを時間基準として用いて波形区間の更新を行いつつ波形データを再生すると、波形再生に要する時間長は再生する波形の音高によらず、ユーザが設定する時間圧伸量で決めることができるようになる。この結果、ポリフォニックモード２で２つのボイスモジュールを並行して発音させる場合でも、その発音の終了時間は２つのボイスモジュールで同時とすることができる。
【００９９】
ステップＦ３８では、再生位相“PHASE" 、第１位相“PH 1"、第２位相“PH 2"の値をそれぞれ１つ歩進させる（ステップＦ３８）。次に、再生位相“PHASE" と再生ピッチ長“WIDTH" の値を比較する（ステップＦ３９）。この再生ピッチ長“WIDTH" の値が再生されるピッチに対応する。再生位相“PHASE" の値が再生ピッチ長“WIDTH" の値に達していなければ、後述するステップＦ４８の「波形読出し処理」へ進む。なお、再生ピッチ長“WIDTH" は後述のステップＦ４１で算出される。
【０１００】
再生位相“PHASE" の値が再生ピッチ長“WIDTH" の値に達していると、再生位相“PHASE" の値を０とし（ステップＦ４０）、次いで、ホルマント移動量“F-VR"を入力し、新たな再生ピッチ長“WIDTH" の値を、鍵盤の押鍵で音高指定されたキー指定ピッチPITCH とし、これを再生ピッチ長“WIDTH" として  レジスタ(WIDTH) に記憶させると共に、第１の波形のエンベロープ“ENV 1" 、第２の波形のエンベロープ“ENV 2" の周期“LENGTH"を、ピッチ“SPITCH"の値をホルマント移動量“F-VR"で除算して求め、レジスタ(LENGTH)に記憶させる（ステップＦ４１）。
【０１０１】
次に、エンベロープの周期“LENGTH"の値を制限する（ステップＦ４２、Ｆ４３）。エンベロープ周期“LENGTH"の値と再生ピッチ長“WIDTH" の値とを比較し（ステップＦ４２）、エンベロープ周期“LENGTH"の値が再生ピッチ長“WIDTH" の値よりも大きい場合には、エンベロープ周期“LENGTH"の値を再生ピッチ長“WIDTH" の値とする（ステップＦ４３）。一方、エンベロープ周期“LENGTH"の値が再生ピッチ長“WIDTH" の値以下である場合には、このステップＳ４３の処理は行わない。これにより、エンベロープ周期“LENGTH"が再生ピッチ長“WIDTH" より大きくならないように制限をかける。
【０１０２】
次いで、エンベロープ周期“LENGTH"の値の逆数を求め、これを歩進率“W-RATE"としてレジスタ(W-RATE)に記憶させる (ステップＦ４４）。この歩進率“W-RATE"は、レジスタ(WINDOW 1)、(WINDOW 2)の値を歩進させるために使用する。また、フラグ“Ｆ”の極性を反転させる。このステップＦ４４の処理は、ステップＦ３）おいて再生位相“PHASE" の値が再生ピッチ長“WIDTH" の値以上になったときに行われるので、フラグ“Ｆ”の反転も、再生位相“PHASE" の値が再生ピッチ長“WIDTH" の値以上になったときに行われることになり、例えば図２５〜図２８の（ｃ）に示されるように、再生位相“PHASE" の周期で１と−１に反転する波形が得られる。
【０１０３】
次に、フラグ“Ｆ”の値を０と比較し、フラグ“Ｆ”が１であるか、−１であるかを判断する（ステップＦ４５）。フラグ“Ｆ”の値が１であることはフラグ“Ｆが−１から１に立ち上がったときを意味しており、この場合には、第１の処理経路に相当するレジスタ(PH 1)、(WINDOW 1)の値をそれぞれ「０」とし、先頭アドレスSTART(n)値を第１読出し先頭アドレスレジスタ(START 1(n))に記憶させ、フラグS-FLG1(n) を“１”にする（ステップＦ４６）。
【０１０４】
また、フラグＦの値が−１であることはフラグ“Ｆ”が１から−１に立ち下がったことを意味しており、この場合には、第２の処理経路に相当するレジスタ(PH 2)、(WINDOW 2)をそれぞれ「０」とし、先頭アドレスSTART 値を第２読出し先頭アドレスレジスタ(START 2) に記憶させ、第２のフラグS-FLG 2 を“１”にする（ステップＦ４７。
なお、上述のフラグS-FLG 1 ＝1 、S-FLG 2 ＝1 の処理により、発音開始後、PH1(n)、PH2(n)がリセットされて初めて発音が開始されるようになる。
【０１０５】
このステップＦ４６またはＦ４７の処理に続いて、あるいはステップＦ３９おいて再生位相“PHASE" の値が再生ピッチ長“WIDTH" の値に達していないと判断されたときには、波形読出し処理を行う（ステップＦ４８）
【０１０６】
図２３はこの波形読出し処理を示すフローチャートである。以下にこの波形読出し処理について詳細に説明する。
【０１０７】
波形読出し処理
図２３は波形読出し処理のフローチャートであり、同図中のステップＦ５２〜Ｆ６０は第１の処理経路のための処理、ステップＦ６１〜Ｆ６９は第２の処理経路のための処理であり、この二つの処理は時系列に行われるが、処理の内容は実質的に同様な内容となっている。
【０１０８】
図２３に示すように、波形読出し処理では、まずカウンタ(WINDOW 1 (n))の値を歩進率“W-RATE(n)" の値だけ歩進させる（ステップＦ５２）。そして、歩進させたカウンタ(WINDOW 1(n) )の値が１より小さいか、１以上であって２より小さいか、あるいは２以上であるかを判定する（ステップＦ５３）。１より小さい場合には、カウンタ(WINDOW 1(n)) の値を第１エンベロープ“ENV 1" としてレジスタ(ENV 1) に記憶させ（ステップＦ５４）、１以上であって２より小さい場合には、２からカウンタ(WINDOW 1 (n))の値を減算した値を第１エンベロープ“ENV 1" としてレジスタ(ENV 1) に記憶させ（ステップＦ５５) 、２以上のとき、第１エンベロープ“ENV 1“ の値を０とする（ステップＦ５６）。
【０１０９】
ステップＦ５３〜Ｆ５６は、例えば図２５（ｆ) に示されるように、歩進率“W-RATE"の値ずつ値が増加する鋸歯状波を作成し、これの値を１で折り返すことによって、第１エンベロープ“ENV 1" を作成している。但し、カウンタ“WINDOW 1 (n) " の値が２を越えた場合には、ステップＦ５６によって第１エンベロープ“ENV 1" の値を０としている。即ち、ホルマント移動量“F-VR"とピッチ“PITCH" とに基づいて定めたエンベロープ長“LENGTH"の値の逆数である歩進率“W-RATE"ずつ１まで増加し、その後、歩進率“W-RATE"ずつ０まで減少する三角波を第１のエンベロープ“ENV 1" の波形として作成している。
【０１１０】
また、ステップＦ５４〜Ｆ５６に続いて、第１位相カウンタ(PH 1)の値（読出しアドレスの歩進値）にホルマント移動量“F-VR"を乗算した値を、第１の波形の先頭アドレス“START 1 (n) "と加算して、第１の波形の読出しアドレスを記憶するレジスタ(ADRES 1) に記憶させる（ステップＦ５７）。
【０１１１】
また、読出しアドレスADRES 1 と末尾アドレスENDADRS を比較し（ステップＦ５８）、末尾アドレスENDADRS よりも大きければ、読出しアドレスADRES 1 ＝末尾アドレスENDADRS とする（ステップＦ５９）。これは読出しアドレスにリミットをかけて、末尾アドレスENDADRS を超えて読み出さないようにしているものである。
【０１１２】
これに続いて、波形メモリから読出しアドレス“ADRS 1"で第１の波形の波形データ“DATA 1"を読み出す（ステップＦ６０）。このように読出しアドレスはホルマント移動量“F-VR"によって変更されているので、結果的には波形データ“DATA 1"の読出し速度が、ホルマント移動量“F-VR"によって変更されている。
【０１１３】
これに続くステップＦ６１〜Ｆ６９では上述と同じ処理を、第２の処理経路についても行う。
【０１１４】
このようにして読み出されたデータ“DATA 1"と第１エンベロープ“ENV 1" の値とS-FLG1を乗算したものと、データ“DATA 2"に第２エンベロープ“ENV 2" の値とS-FLG2を乗算したものとを、加算したものを出力OUT とする（ステップＦ７０）。これにより、フラグS-FLG1(n) またはS-FLG2(n) が“０”の間は、合成する信号が０になるようにして、ENV 1 、ENV 2 が必ず０から始まるようにしている。
【０１１５】
次いで、
“L-ENV(n)"＝“L-ENV(n)"＋LEVEL(n)−“L-ENV(n)"＊Ｋ
とし、このL-ENV(n)を出力OUT(n)に乗じたものを最終的な出力OUT(n)とする。すなわち、立上り、立下りの特性が係数Ｋで決まるレベルエンベロープ“L-ENV(n)"を算出し、これを出力に付加している。なお、ステップＦ７１の演算では、レベルエンベロープ“L-ENV(n)"は０にならないので、所定レベル以下になると、“L-ENV(n)"＝０となるように処理を追加してもよい。
【０１１６】
次に、本発明の他の実施例を説明する。前述の実施例では、メモリ波形のピッチを使用することから、メモリ波形のピッチが検出可能なものでなければならない。しかし、楽音として使用する波形には、必ずしもピッチ検出可能なものばかりではない。例えば、シンバルや太鼓類などの打楽器音、それから和音演奏のように複数の楽音が同時に発音されているものなどがある。そこで、本実施例では、従来からあるピッチシフタの技術を使用して、ピッチ変化に対応してホルマントも変化する読出し方法を実現している。
【０１１７】
この実施例の構成は基本的には前述の実施例を用いているが、異なる点を以下に示す。
1.  波形メモリのデータ構成を図３９、図４０に示すように変更
2.「ボイス１の消音処理」を図２９に示すように変更
3.「ボイス２の消音処理」を図３０に示すように変更
4.「ボイス１の発音開始処理」を図３１に示すように変更
5.「ボイス２の発音開始処理」を図３２に示すように変更
6.「ボイス１からボイス１へのリンク発音処理」を図３３に示すように変更
7.「ボイス１からボイス２へのリンク発音処理」を図３４に示すように変更
8.「ボイス２からボイス１へのリンク発音処理」を図３５に示すように変更
9.「読出し処理」を図３６に示すように変更
10. 「波形読出し処理」を図３７、図３８に示すように変更
【０１１８】
まず、波形メモリの構成を説明する。パラメータ記憶部は図３９に示され、波形データ記憶部は図４０に示される。パラメータ記憶部は＄０００４番地毎に区切られている。wave0 領域の波形データは、パラメータ記憶部のwave0 領域に格納されている開始アドレスsadrs と末尾アドレスendsdrs で示されている波形データ記憶部の領域に格納さている。このように、波形データは開始アドレスsadrs と末尾アドレスendadrs で具体的に示されているため、波形データ記憶部は先の実施例のようにセグメントで区切られていない。
【０１１９】
また、パラメータ記憶部のオリジナルピッチ“org-pitch" は、記憶された波形データを、どの音高の鍵を操作した時にオリジナルのままの波形として再生するかを示す情報で、その鍵に対応する音高を周波数に比例する情報として記憶している。このオリジナルピッチ“org-pitch" は、ユーザが波形データをサンプリングする時に設定するものとする。
【０１２０】
上述の「ボイス１の消音処理」、「ボイス２の消音処理」、「ボイス１の発音開始処理」、「ボイス２の発音開始処理」、「ボイス１からボイス１へのリンク発音処理」、「ボイス１からボイス２へのリンク発音処理」、「ボイス２からボイス１へのリンク発音処理」のうちの主な変更点について説明する。
【０１２１】
前述の実施例では、ピッチPitch は周波数に反比例する情報を使用していたが、この実施例では周波数に比例する情報を使用している。例えば、先の実施例ではピッチPitch は音高のピッチ（周期）に比例する情報を表していたが、この実施例では音高の周波数に比例する情報を表している。
【０１２２】
さらに、前述の実施例のピッチシフト手段では、入力される再生音高情報Pitch が直接に再生音高のピッチWIDTH （周期) になるが、この実施例では、入力される再生音高情報Pitch が周波数のシフト量を表すことになる。従って、上記処理における変更点は、再生音高を決める周波数シフト量を基準の周波数“org-pitch" からの比「Pitch ／org-pitch 」として求める処理を行っている点にある。この結果をシフト量PITCH(n)としてピッチシフタ手段に供給している。
【０１２３】
本実施例の「読出し処理」は図３６に示すものとする。この「読出し処理」と前述の実施例の図２１の「読出し処理」との主な相違点を以下に示す。ステップＦ３２で進行位置SPHASEが末尾アドレスENDADRS より小さい場合、図２１におけるステップＦ３３〜Ｆ３６は行わず、直ちにステップＦ３８に移行する。また、ステップＦ４１’では、前述の実施例のステップＦ４１に換えて、再生ピッチWIDTH として係数“ENV-P" を設定する。係数“ENV-P" は予め定められた定数で、ENV 1 、ENV 2 の周期を決定するものである。また、前述の実施例のステップＦ４２、Ｆ４３は削除し、ステップＦ４４に換えて、本実施例ではＦ(n) ＝−Ｆ(n) とする処理のみを行う (ステップＦ４４’）。
【０１２４】
本実施例の「波形読出し処理」は図３７、図３８に示すものとする。この「波形読出し処理」と前述の実施例の図２２、図２３の「波形読出し処理」との主な相違点を以下に示す。ステップＦ５２’、ステップＦ６１’でWINDOW 1、WINDOW 2に加算する量“W-RATE"  は本実施例では、予め定められた定数で、「“W-RATE"＝１／WIDTH 」を満たす値とする。また、前述の実施例のステップＦ５６、ステップＦ６５は、本実施例ではWINDOW(n) は２によりも大きくならないため、削除してある。また、ステップＦ５７’、Ｆ６６’では、PH(n) に対して、前述の実施例のホルマント移動量“F-VR"に換えて、ピッチPITCH(n)を乗じている。
【０１２５】
本実施例の処理の概要を図４１、図４２を参照して以下に説明する。図４１は再生音声をオリジナルピッチ“org-pitch" より低くする場合の処理、図４２は再生音声をオリジナルピッチ“org-pitch" より高くする場合の処理を示している。
【０１２６】
この処理においては、例えば図４１において、波形メモリに記憶されている波形データ“Wave-Date" をアドレス“ADRES 1" で読み出し、その読み出した波形データに“ENV 1" を乗算して窓関数を付加したもの（図４１の（２) ）と、波形メモリに記憶されている波形データ“Wave-Date" をアドレス“ADRES 2" で読み出し、その読み出した波形データに“ENV 2" を乗算して窓関数を付加したもの（図４１の（３））とを図面で示している。（２) と（３) とを加算した信号がピッチシフトされた信号となる。図４２についても同様である。
【０１２７】
再生音高をオリジナルピッチ“org-pitch" により低くする場合、図４１に示すように、波形メモリの読出し速度が１よりも小さくなり、“ENV 1" が付加される波形データは、ＷD+0 、ＷD+2 、ＷD+4 、ＷD+6 ・・・となり、“ENV 2" が付加される波形データは、ＷD+1 、ＷD+3 、ＷD+5 ・・・となって、これらが伸長されてＷD+0 ’、ＷD+2 ’、ＷD+4 ’、ＷD+6 ’、およびＷD+1 ’ 、ＷD+3 ’ 、ＷD+5 ’となる。
【０１２８】
反対に、再生音高をオリジナルピッチ“org-pitch" により高くする場合、図４２に示すように、波形メモリの読出し速度が１よりも小さくなり、“ENV 1" が付加される波形データは、ＷU+0 、ＷU+2 、ＷU+4 、ＷU+6 ・・・となり、“ENV 2" が付加される波形データは、ＷU+1 、ＷU+3 、ＷU+5 ・・・となって、これらが圧縮されてＷU+0 ’、ＷU+2 ’、ＷU+4 ’、ＷU+6 ’、およびＷU+1 ’ 、ＷU+3 ’ 、ＷU+5 ’となる。
【０１２９】
なお、波形メモリの読出し速度は、「波形読出し処理」の「“PH1(n)"＊“PITCH(n)"」と「“PH2(n)"＊“PITCH(n)"」の変化速度に対応する。
【０１３０】
【発明の効果】
以上に説明したように、、波形発生装置において、波形の再生中に後の再生指示があった場合における波形の再生態様を豊富にして、音楽的効果を豊富化することができる。
【図面の簡単な説明】
【図１】本発明にかかる一実施例としての波形発生装置の全体的なブロック構成を示す図である。
【図２】実施例装置におけるメインルーチンを示すフローチャートである。
【図３】実施例装置における録音ルーチンを示すフローチャートである。
【図４】実施例装置における編集ルーチンを示すフローチャートである。
【図５】実施例装置における再生ルーチンを示すフローチャートである。
【図６】実施例装置における再生処理ルーチン（１／２）の詳細を示すフローチャートである。
【図７】実施例装置における再生処理ルーチン（２／２）の詳細を示すフローチャートである。
【図８】実施例装置における操作子設定テーブルの構成例を示す図である。
【図９】実施例装置におけるキー情報レジスタの構成例を示す図である。
【図１０】実施例装置における波形メモリのパラメータ記憶部のデータ構成例を示す図である。
【図１１】実施例装置における波形メモリの波形データ記憶部のデータ構成例を示す図である。
【図１２】実施例装置におけるＤＳＰでのメインルーチン（１／２）を示すフローチャートである。
【図１３】実施例装置におけるＤＳＰでのメインルーチン（２／２）を示すフローチャートである。
【図１４】実施例装置におけるＤＳＰでのメインルーチン中の「ボイス１の消音処理」を示すフローチャートである。
【図１５】実施例装置におけるＤＳＰでのメインルーチン中の「ボイス２の消音処理」を示すフローチャートである。
【図１６】実施例装置におけるＤＳＰでのメインルーチン中の「ボイス１の発音開始処理」を示すフローチャートである。
【図１７】実施例装置におけるＤＳＰでのメインルーチン中の「ボイス２の発音開始処理」を示すフローチャートである。
【図１８】実施例装置におけるＤＳＰでのメインルーチン中の「ボイス１からボイス１へのリンク発音処理」を示すフローチャートである。
【図１９】実施例装置におけるＤＳＰでのメインルーチン中の「ボイス１からボイス２へのリンク発音処理」を示すフローチャートである。
【図２０】実施例装置におけるＤＳＰでのメインルーチン中の「ボイス２からボイス１へのリンク発音処理」を示すフローチャートである。
【図２１】実施例装置におけるＤＳＰでのメインルーチン中の「読出し処理」ルーチン（１／２）を示すフローチャートである。
【図２２】実施例装置におけるＤＳＰでのメインルーチン中の「読出し処理」ルーチン（２／２）を示すフローチャートである。
【図２３】実施例装置におけるＤＳＰでのメインルーチン中の「読出し処理」ルーチン中の「波形読出し処理」ルーチン（１／２）を示すフローチャートである。
【図２４】実施例装置におけるＤＳＰでのメインルーチン中の「読出し処理」ルーチン中の「波形読出し処理」ルーチン（２／２）を示すフローチャートである。
【図２５】「読出し処理」の動作概要（ホルマント特性変更なし、低域にピッチシフト）を説明するためのタイムチャートである。
【図２６】「読出し処理」の動作概要（ホルマント特性変更なし、高域にピッチシフト）を説明するためのタイムチャートである。
【図２７】「読出し処理」の動作概要（ホルマント特性を低域にシフト）を説明するためのタイムチャートである。
【図２８】「読出し処理」の動作概要（ホルマント特性を高域にシフト）を説明するためのタイムチャートである。
【図２９】他の実施例装置におけるＤＳＰでのメインルーチン中の「ボイス１の消音処理」を示すフローチャートである。
【図３０】他の実施例装置におけるＤＳＰでのメインルーチン中の「ボイス２の消音処理」を示すフローチャートである。
【図３１】他の実施例装置におけるＤＳＰでのメインルーチン中の「ボイス１の発音開始処理」を示すフローチャートである。
【図３２】他の実施例装置におけるＤＳＰでのメインルーチン中の「ボイス２の発音開始処理」を示すフローチャートである。
【図３３】他の実施例装置におけるＤＳＰでのメインルーチン中の「ボイス１からボイス１へのリンク発音処理」を示すフローチャートである。
【図３４】他の実施例装置におけるＤＳＰでのメインルーチン中の「ボイス１からボイス２へのリンク発音処理」を示すフローチャートである。
【図３５】他の実施例装置におけるＤＳＰでのメインルーチン中の「ボイス２からボイス１へのリンク発音処理」を示すフローチャートである。
【図３６】他の実施例装置におけるＤＳＰでのメインルーチン中の「読出し処理」ルーチンを示すフローチャートである。
【図３７】他の実施例装置におけるＤＳＰでのメインルーチン中の「読出し処理」ルーチン中の「波形読出し処理」ルーチン（１／２）を示すフローチャートである。
【図３８】他の実施例装置におけるＤＳＰでのメインルーチン中の「読出し処理」ルーチン中の「波形読出し処理」ルーチン（２／２）を示すフローチャートである。
【図３９】他の実施例装置における波形メモリのパラメータ記憶部のデータ構成例を示す図である。
【図４０】他の実施例装置における波形メモリの波形データ記憶部のデータ構成例を示す図である。
【図４１】「読出し処理」の動作概要（低域にピッチシフト）を説明するためのタイムチャートである。
【図４２】「読出し処理」の動作概要（高域にピッチシフト）を説明するためのタイムチャートである。
【符号の説明】
４  Ａ／Ｄ変換器
８  ＤＳＰ（ディジタル信号プロセッサ）
１２  波形メモリ
１４  Ｄ／Ａ変換器
２０  操作子群
２２  ＣＰＵ（中央処理装置）
３０  キーボード
３１  ＲＡＭ（ランダム・アクセス・メモリ）
３２  ＲＯＭ（リード・オンリー・メモリ）
３３  ハードディスク装置
【図１】
0003746578.tif 000002
【図２】
0003746578.tif 000003
【図３】
0003746578.tif 000004
【図４】
0003746578.tif 000005
【図５】
0003746578.tif 000006
【図６】
0003746578.tif 000007
【図７】
0003746578.tif 000008
【図８】
0003746578.tif 000009
【図９】
0003746578.tif 000010
【図１０】
0003746578.tif 000011
【図１１】
0003746578.tif 000012
【図１２】
0003746578.tif 000013
【図１３】
0003746578.tif 000014
【図１４】
0003746578.tif 000015
【図１５】
0003746578.tif 000016
【図１６】
0003746578.tif 000017
【図１７】
0003746578.tif 000018
【図１８】
0003746578.tif 000019
【図１９】
0003746578.tif 000020
【図２０】
0003746578.tif 000021
【図２１】
0003746578.tif 000022
【図２２】
0003746578.tif 000023
【図２３】
0003746578.tif 000024
【図２４】
0003746578.tif 000025
【図２５】
0003746578.tif 000026
【図２６】
0003746578.tif 000027
【図２７】
0003746578.tif 000028
【図２８】
0003746578.tif 000029
【図２９】
0003746578.tif 000030
【図３０】
0003746578.tif 000031
【図３１】
0003746578.tif 000032
【図３２】
0003746578.tif 000033
【図３３】
0003746578.tif 000034
【図３４】
0003746578.tif 000035
【図３５】
0003746578.tif 000036
【図３６】
0003746578.tif 000037
【図３７】
0003746578.tif 000038
【図３８】
0003746578.tif 000039
【図３９】
0003746578.tif 000040
【図４０】
0003746578.tif 000041
【図４１】
0003746578.tif 000042
【図４２】
0003746578.tif 000043