JP3746578B2 - 波形発生装置 - Google Patents
波形発生装置 Download PDFInfo
- Publication number
- JP3746578B2 JP3746578B2 JP27107296A JP27107296A JP3746578B2 JP 3746578 B2 JP3746578 B2 JP 3746578B2 JP 27107296 A JP27107296 A JP 27107296A JP 27107296 A JP27107296 A JP 27107296A JP 3746578 B2 JP3746578 B2 JP 3746578B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- pitch
- waveform data
- performance information
- reading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は電子楽器の波形発生装置、更に詳しくはメモリに記憶された波形データを読み出して再生する波形発生装置に関する。かかる波形発生装置は例えばサンプラと呼ばれているような電子楽器に用いられる。
【0002】
従来、サンプラのような電子楽器において波形データを読み出して再生するときには、一般にはキーボードのキーのオン/オフで再生音高と再生の開始/終了を指定し、その指定した音高で波形データを再生する。このときの音高の制御は、メモリから再生音高に対応した読出し速度で読み出すことで実現している。従って、メモリから同じ波形を読み出す場合、音高によって再生時間が異なってしまう。
【0003】
【発明が解決しようとする課題】
従来のサンプラ等では、レガート演奏のような特定の演奏操作に対応した鍵操作を行った場合、初めの操作鍵に従って発音している波形データを、次の操作鍵に従って引き続き発音するようなことはできなかった。波形データの再生は鍵演奏によって再生指示がある毎にその波形データの先頭部から再生していた。あるいは、波形データの再生指示があった後で、その再生中に重ねて再生指示があった場合にも、後で再生指示があった再生波形はその波形データの先頭部分から再生を始めていた。このため音楽的効果として単調であった。
【0004】
本発明はかかる問題点に鑑みてなされたものであり、その目的とするところは、上記のような波形発生装置において、波形の再生中に後の再生指示があった場合における波形の再生態様を豊富にして、音楽的効果を豊富化することにある。
【0005】
【課題を解決するための手段】
上述の課題を解決するために、本発明にかかる波形発生装置は、波形データを記憶した波形記憶手段と、上記波形データの再生の開始/終了および音高を指示する演奏情報を入力する演奏情報入力手段と、上記波形記憶手段の波形データを、上記演奏情報入力手段から入力された演奏情報に対応した音高で読み出す波形読出し手段とを有して構成され、上記波形読出し手段は、上記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し中に、後の演奏情報が入力され再生開始が指示された時、上記読出し中の波形データのうちの上記後の演奏情報が入力されたタイミング以降の部分を上記後の演奏情報に対応した音高で読み出すようにしたものである。
【0006】
また、本発明にかかる波形発生装置は、波形データを記憶した波形記憶手段と、上記波形データの再生の開始/終了および音高を指示する演奏情報を入力する演奏情報入力手段と、上記波形記憶手段の波形データを、上記演奏情報入力手段から入力された演奏情報に対応した音高で読み出す波形読出し手段とを有して構成され、上記波形読出し手段は、上記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し中に、後の演奏情報が入力され再生開始が指示された時、それまでの上記先の演奏情報による波形データの読出しに引き続いて、上記読出し中の波形データのうちの上記後の演奏情報が入力されたタイミング以降の部分を、上記先の演奏情報に対応した音高での記憶波形データの読出しと並行して、上記後の演奏情報に対応した音高で読み出すようにしたものである。
【0007】
また、本発明にかかる波形発生装置は、上記した本発明にかかる波形発生装置において、さらに、音高にかかわらず一定の速度で進行する波形再生の時間的進行を示す進行位置情報を生成する進行位置情報生成手段を有し、上記波形読出し手段は、上記波形データ記憶手段から上記進行位置情報生成手段の示す進行位置情報に対応した位置の波形データの読出しを行うようにしたものである。
また、本発明にかかる波形発生装置は、波形データを記憶した波形記憶手段と、上記波形データの再生の開始/終了および音高を指示する演奏情報を入力する演奏情報入力手段と、上記波形データの読み出し速度を変更して上記波形データのホルマントを変更するためのホルマント変更情報を入力するホルマント変更情報入力手段と、上記波形記憶手段に記憶された波形データの所望区間を上記ホルマント変更情報に応じた読み出し速度で読み出し、上記演奏情報による音高に対応した周期で合成する波形読出し合成手段とを有して構成され、上記波形読出し合成手段は、上記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し合成中に、後の演奏情報が入力され再生開始が指示された時、上記読出し中の波形データのうちの上記後の演奏情報が入力されたタイミング以降の部分を、上記後の演奏情報による音高に対応させて読出し合成するようにしたものである。
また、本発明にかかる波形発生装置は、波形データを記憶した波形記憶手段と、上記波形データの再生の開始/終了および音高を指示する演奏情報を入力する演奏情報入力手段と、上記波形データの読み出し速度を変更して上記波形データのホルマントを変更するためのホルマント変更情報を入力するホルマント変更情報入力手段と、上記波形記憶手段に記憶された波形データの所望区間を上記ホルマント変更情報に応じた読み出し速度で読み出し、上記演奏情報による音高に対応した周期で合成する波形読出し合成手段とを有して構成され、上記波形読出し合成手段は、上記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し合成中に、後の演奏情報が入力され再生開始が指示された時、それまでの上記先の演奏情報による波形データの読出し合成に引き続いて、上記読出し中の波形データのうちの上記後の演奏情報が入力されたタイミング以降の部分を、上記先の演奏情報による音高に対応した読出し合成と並行して、上記後の演奏情報による音高に対応させた読出し合成を行うようにしたものである。
また、本発明にかかる波形発生装置は、上記した本発明にかかる波形発生装置において、さらに、音高にかかわらず一定の速度で進行する波形再生の時間的進行を示す進行位置情報を生成する進行位置情報生成手段を有し、上記波形読出し合成手段は、上記波形データ記憶手段から上記進行位置情報生成手段の示す進行位置情報に対応した区間の波形データの読出し合成を行うようにしたものである。
また、本発明にかかる波形発生装置は、上記した本発明にかかる波形発生装置において、上記波形読出し合成手段は、上記波形記憶手段に記憶された波形データのピッチを入力するピッチ情報入力手段を有し、上記波形データ記憶手段から上記入力されたピッチ情報に基づく2周期分の区間の波形データの読出し合成を行うようにしたものである。
【0008】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図1は本発明に係る一実施例としての電子楽器の波形発生装置が示される。図1において、12は再生する波形データを記憶しておくRAMからなる波形メモリである。8は波形メモリ12の波形データの再生処理等をディジタル処理により行うDSP(ディジタル信号プロセッサ)である。14はDSP8から再生出力されるディジタル波形信号をアナログ波形信号にD/A変換して出力するD/A変換器、4は入力したアナログ波形信号をディジタル波形信号にA/D変換してDSP8に入力するA/D変換器である。このA/D変換器4から入力されたディジタル波形信号はDSP8から波形メモリ12に波形データとして格納することができる。
【0009】
22はCPU(中央処理装置)であって、DSP8の制御、操作子群20やキーボード30の状態検出と処理など装置の全体的な制御を行う。20は操作子群であって、モードスイッチ(MODE-SW) 、バンクスイッチ(BANK-SW) 、アサインスイッチ(ASSIGN-SW) 、ホルマント設定操作子(F-VR)、時間圧伸量設定操作子(TCOMP) 等の複数の操作子からなる。30は演奏操作を行うキーボードであり、波形メモリ12の波形データの再生にあたってキーのオン/オフにより再生の音高と再生の開始/終了を指示するためにも用いられる。33は多くの波形データ等を記憶しておく大容量のハードディスク装置であり、その波形データは必要に応じて波形メモリ12に転送される。31はCPU22の演算処理等に使用されるワーキングメモリとしてのRAM、32はCPU22やDSP8のプログラムやパラメータ等を記憶しておくメモリとしてのROMである。
【0010】
以下に、操作子群20の各操作子の機能について説明する。
モードスイッチ(MODE-SW) は、録音モード(REC) 、編集モード(EDIT)、再生モード(PLAY)の一つを選択するためのスイッチである。ここで、録音モード(REC) は外部から入力された楽音信号を録音(サンプリング) するモード、編集モード(EDIT)は録音モードでサンプリングした波形を編集するモード、再生モード(PLAY)は波形メモリ12の波形データをキーボードの演奏操作に応じて再生するモードである。
【0011】
バンクスイッチ(BANK-SW) は、波形メモリ12に記憶されている複数の波形データのうちから一つを選択するためのスイッチである。
【0012】
アサインスイッチ(ASSIGN-SW) は、発音モードを設定するためのスイッチであり、以下の4つのモードを設定できる。
〔モノフォニック1:MONO1 〕 1ボイスのみを発音するモードであり、レガート奏法がされたら、後の押鍵によってリトリガを行うモードである。
〔モノフォニック2:MONO1 〕 1ボイスのみを発音するモードであり、レガート奏法がされても、リトリガを行なわないモードである。
〔ポリフォニック1:POLY1 〕 複数ボイスを発音可能なモードであり、レガート奏法がされたら、後の押鍵によってリトリガを行うモードである。
〔ポリフォニック2:POLY2 〕 複数ボイスを発音可能なモードであり、レガート奏法がされても、リトリガを行なわないモードである。
ここで、「レガート奏法」とはキーボードの1番目のキーを押したままの状態で2番目のキーを押す奏法であり、「リトリガ」とは波形メモリ12の波形データの再生を当該波形データの先頭部分からやり直す操作をいう。
【0013】
ホルマント設定操作子(F-VR)は、ホルマントの原波形データからのシフト量を設定する操作子であり、後述するホルマント移動量(ホルマント変更係数とも称する)を設定する。
【0014】
時間圧伸量設定操作子(TCOMP) は、再生波形データの時間軸上の時間圧伸量を設定する操作子である。
【0015】
上記のDSP8は操作子設定テーブルとキー情報レジスタを備えている。以下、これらについて説明する。
〔操作子設定テーブル〕
図8には操作子設定テーブルの例が示される。この操作子設定テーブルはDSP8に備えられており、後述するCPU22の〔再生処理〕において、操作子群20の操作状態を検出し、その操作状態に対応してこの操作子設定テーブルの内容が設定される。操作子設定テーブルの内容の項目としては、バンク番号(BANK)、リンクモード(LINK-MODE) 、ホルマント移動量(F-VR)、時間圧縮/伸長伸量(TCOMP、以下、時間圧伸量と記す)) がある。
【0016】
ここで、バンク番号(BANK)は、操作子群20のバンクスイッチ(BANK-SW) で設定されたバンク番号が設定され、そのバンク番号(BANK)に従って、再生する波形データ(波形領域番号)の選択が行われる。
【0017】
リンクモード(LINK-MODE) は、操作子群20のアサインスイッチ(ASSIGN-SW) がモノフォニック2またはポリフォニック2のモード(すなわちリトリガしないモード)を設定した時には“1”(ONを意味する)に設定され、モノフォニック1またはポリフォニック1のモード(すなわちリトリガするモード)を設定した時には“0”(OFFを意味する)に設定される。すなわち、リトリガを行うか否かを設定するレジスタとなる。
【0018】
ホルマント移動量(F-VR)は、波形メモリ12から読み出して再生する波形データのホルマントの移動量(シフト量)が設定されるもので、波形メモリ12中の波形データは、このホルマント移動量(F-VR)が「1」である時は、原波形と同じホルマントで再生され、「1」より大きい値であると、ホルマントを原波形よりも高域側にシフトして再生され、「1」よりも小さい値であると、ホルマントを原波形よりも低域側にシフトして再生される。
【0019】
時間圧伸量(TCOMP) は、波形メモリ12に記憶された波形データを再生する時における時間圧縮/伸長の大きさ(すなわち波形再生速度)を数値設定するものである。この時間圧伸量(TCOMP) が「1」であると、原波形の時間変化と同じ速さで時間変化し、「1」より大きい値であると、原波形よりも速い時間変化をして再生時間が短くなり、「1」よりも小さい値であると、原波形よりも遅い時間変化をして再生時間が長くなる。
【0020】
〔キー情報レジスタ〕
DSP8はキー情報レジスタを備えており、後述するCPU22の〔再生処理〕において、キーボード30の操作が検出され、割当処理によってキー情報がDSP8に転送されて、このキー情報レジスタに一時的に記憶される。図9にこのキー情報レジスタの構成例が示される。キー情報は、キーオン/キーオフ情報(KeyOn/Off) 、音高情報(Pitch) 、ボイスモジュール情報(Voice-No.) 、レベル情報(Level) からなる。例えば、
キーオン情報:「KeyOn/Pitch/Voice-No./Level 」
キーオフ情報:「KeyOff/Pitch/Voice-No./Level」
の構成からなる。
【0021】
なお、このキー情報レジスタは、DSP8での受取り処理の前に、CPU22から新たなキー情報が転送されることがある場合には、複数のキー情報を一時記憶することが可能な、シフトレジスタのような構成で、さらに先に入力した情報を先に出力する構成にすればよい。すなわち、MIDI信号の受信処理と同様な処理とする。
【0022】
波形メモリ12はパラメータ記憶部と波形データ記憶部とで構成される。これらの記憶部のデータ構成を図10、図11に示す。図10はパラメータ記憶部のデータ構成、図11は波形データ記憶部のデータ構成である。パラメータ記憶部は$800番地毎に、また波形データ記憶部は$8000番地毎に各々セグメントで区切られており、各々のセグメントはアドレスの若い方から順番にwave0領域、wave1領域 、wave2領域 ・・・のように波形領域番号が付けられる。例えばある一つの波形についてそのパラメータをパラメータ記憶部のwave0領域に格納したら、その波形の波形データはパラメータに対応して波形データ記憶部の同じ番号のwave0領域に格納する。なお、図10、図11におけるアドレスは16進数で表わされており、以降、本明細書では、$800のように数値の先頭に$を付して16進数であることを示す。
。
【0023】
まず、パラメータ記憶部のデータ構成を図10に従って説明する。例えばwave0領域において、アドレス“0000"に格納されているものはヘッダheaderであり、そのデータ内容として末尾アドレスendasrs が格納され、アドレス“0001"以降には開始アドレス情報が格納される。開始アドレスsadrs は波形データ記憶部における1ピッチ分の波形区間が開始するアドレスであり、波形ピッチspitchは波形データ記憶部における1ピッチ分の波形区間(以下、単に波形区間という)のアドレスの幅である。開始アドレス情報としては波形区間の開始アドレスsadrs と波形ピッチspitchとを一対でパラメータ記憶部に格納する。例えば波形データの最初の波形区間が開始アドレスsadrs0で波形ピッチspitch0 であり、次に続く波形区間が開始アドレスsadrs1で波形ピッチspitch1 である場合、最初の開始アドレスsadrs 0と波形ピッチspitch0はそれぞれアドレス“0001"、“OOO2"に格納され、続く開始アドレスsadrs 1と波形ピッチspitch1はそれぞれアドレス“0003"、“OO04"に格納される。
【0024】
次に波形データ記憶部のデータ構成を図11に従って説明すると、これは各wave領域にシーケンシャルなアドレス順序でサンプリング値wave data が格納される。
【0025】
以下、この実施例装置の動作をフローチャートを参照して説明する。
図2には、CPU22が行う処理として、メインルーチンのフローチャートが示される。メインルーチンがスタートすると、操作子群20のモードスイッチ(MODE-SW) が録音モード、編集モード、再生モードの何れに操作されたか監視されており(ステップA)、操作がされると、その操作が録音モード、編集モード、再生モードの何れであるかが判定される(ステップB)。録音モードであれば、録音(REC)処理が行われ(ステップC)、編集モードであれば編集(EDIT)処理が行われ(ステップD)、再生モードであれば再生(PLAY)処理が行われる(ステップE)。
【0026】
図3には録音モードにおける録音処理ルーチンのフローチャートが示される。録音処理は外部から入力された楽音信号を録音(サンプリング)する処理であり、モードスイッチ(MODE-SW) により録音モードに設定した後、サンプリングスタートの操作子を操作することによって(ステップC3)、サンプリングスタートして録音(サンプリング処理)が行われる(ステップC4)。サンプリングされる楽音信号のデータは波形メモリ12に記憶される。この録音処理ルーチンから抜け出てメインルーチンにリターンするにはEXIT操作子を操作する(ステップC2)。
【0027】
図4には編集モードにおける編集処理ルーチンのフローチャートが示される。編集処理は、録音モードでサンプリングした波形を変更したり、再生可能な波形データに変更する編集処理や、それらの波形データをハードディスク装置33に転送したり、ハードディスク装置33から波形メモリ12に転送したりする処理を行う(ステップD3)。この編集処理ルーチンから抜け出るにはEXIT操作子を操作する(ステップD2)。
【0028】
図5には再生モードにおける再生処理ルーチンのフローチャートが示される。この再生処理ルーチンの初期設定(ステップE1)においては、操作子群の状態を操作するレジスタ等をリセットし、操作子群を操作可能な状態にすると共に、各操作子の初期状態を設定しておく。初期状態とは、〔再生処理〕で、各操作子に変化があった時だけ操作子の操作に対応した処理を行うため、その最初の基準となる状態を設定している。
【0029】
再生処理ルーチンは、モードスイッチ(MODE-SW) により再生モードに設定した後、再生スタートの操作子を操作することによってスタートする。再生処理(ステップE3)は、波形メモリ12の波形データを、キーボード30からの演奏情報に対応して再生する処理であり、この再生処理ルーチンから抜け出るにはEXIT操作子を操作する(ステップE2)。
【0030】
図6、図7にはこの再生モードにおける再生処理(ステップE3)の詳細な処理手順が示される。この再生処理はCPU22で実行される。この再生処理では、操作子群20による設定とキーボード30による演奏操作を検出してそれらの操作情報をDSP8に転送して記憶させる処理を行う。
【0031】
再生処理が開始されると、操作子群20の操作状態を走査して、バンクスイッチ(BANK-SW) 、アサインスイッチ(ASSIGN-SW) 、ホルマント設定操作子(F-VR)、時間圧伸量設定操作子(TCOMP) の操作状態を検出する(ステップE300)。これらの操作状態に変化があったときには、以下のように、それらのスイッチ操作に対応して操作子設定テーブル等への設定処理を行う。
【0032】
まず、バンクスイッチ(BANK-SW) の操作に変化が有るか否かを見て(ステップE301)、変化が有る場合には、バンクスイッチ(BANK-SW) で設定されたバンク番号(BANK)を、DSP8の操作子設定テーブルのバンク番号(BANK)に設定する。
【0033】
次に、アサインスイッチ(ASSIGN-SW) の操作に変化が有るか否かを見て(ステップE303)、変化が有る場合には、アサインスイッチ(ASSIGN-SW) で設定されたモードがモノフォニック2またはポリフォニック2か否かを判定する。肯定判定(モノフォニック2またはポリフォニック2と判定)である場合は「リトリガ」を行わないモードが設定されたものであり、この場合には、DSP8の操作子設定テーブルのリンクモード(LINK-MODE) に“1”を設定する。否定判定である場合は「リトリガ」を行うモードが設定されたものであり、この場合には、DSP8の操作子設定テーブルのリンクモード(LINK-MODE) に“0”を設定する。さらに、アサインスイッチ(ASSIGN-SW) で設定されたモードがモノフォニック(1または2)であるかポリフォニック(1または2)であるかを判定し、モノフォニック1または2である場合にはアサインフラグ(AS-FLG)をモノフォニック(MONO)にセットし(ステップE308)、ポリフォニック1または2である場合にはポリフォニック(POLY)にセットする(ステップE309)。このアサインフラグ(AS-FLG)により、ボイスモジュール(楽音発生チャネル)への割当処理が1ボイス(モノフォニックの場合)か複数ボイス(ポリフォニックの場合)かを知ることができる。
【0034】
次に、ホルマント設定操作子(F-VR)に変化が有るか否かを見て(ステップE310)、変化が有る場合には、その検出値を、DSP8の操作子設定テーブルのホルマント移動量(F-VR)に設定する(ステップE311)。同様に、時間圧伸量設定操作子(TCOMP) に変化が有るか否かを見て(ステップE312)、変化がある場合には、その検出値を、DSP8の操作子設定テーブルの時間圧伸量(TCOMP) に設定する(ステップE313)。
【0035】
これらの設定操作の後、キーボード30からの操作鍵情報(キー情報)を検出する(ステップE314)。そして、アサインフラグ(AS-FLG)の状態を判定し(ステップE315)、これがモノフォニック(MONO)である場合には、操作鍵を1ボイスモジュールに割り当てて、検出したキー情報をDSP8に転送する(ステップE316)、ポリフォニック(POLY)である場合には、操作鍵を複数ボイスモジュールに割り当てて、検出したキー情報をDSP8に転送する(ステップE317)。DSP8では受信したキー情報をキー情報レジスタに一時記憶する。この1ボイスモジュールまたは複数ボイスモジュールへの割当て処理について以下に説明する。
【0036】
〔1ボイスモジュールへの割当処理〕
単音(1ボイス)のみを発音するモードの割当処理である。キーボード30のキー情報の検出の結果、操作鍵のうち、最後に押鍵した鍵を優先的に1つのボイスモジュール(楽音発生チャンネル)に割り当てる。なお、この割当処理では1ボイスモジュールへの割当なので、ボイスモジュール情報(Voice-No.) の値は常に「No. 1」になる。
【0037】
〔複数ボイスモジュールへの割当処理〕
複数音が発音可能なモードの割当処理である。キーボード30のキー情報の検出の結果、操作鍵のうち、予め決められた数の押鍵だけを所定の数のボイスモジュールに割り当てる。この実施例では複数ボイスの数を2ボイスとしている。所定のボイス数(実施例では2)以上操作されても受け付けない。キーオン情報が入力されたとき、空きボイスがあるときのみに割当処理を行う。
【0038】
なお、キーオン情報を転送し、楽音が発音中にアサインスイッチ(ASSIGN-SW) を変更すると、発音中の楽音が止まらないなどの動作の不都合が起こる可能性がある。よって、かかる動作の不都合を防止するため、楽音が発音中にアサインスイッチ(ASSIGN-SW) を操作して動作モードが変更された場合には、発音中の楽音の全てに対してキーオフ情報を転送するようにしている。そして、新たな動作モードで発音中(押鍵中)のキーオン情報を転送するようにしている。
【0039】
以上の割当て処理は、鍵数よりも少ない数の音源を備えた電子楽器において、押鍵を音源に割り当てる公知のジェネレータアサインの技術を使用するので、詳細は省略する。
【0040】
次に、キー情報の転送を受けたDSP8の処理を図12、図13を参照して説明する。図12、図13はDSP8のメインルーチンを示すフローチャートであり、サンプリング周期で繰り返し実行されるものである。CPU22から新たなキー情報の転送があったか否かをキー情報レジスタをみて監視しており(ステップF1)、キー情報の転送があればその内容に基づいて以下のステップF2〜F16のボイスの消音処理/発音開始処理/リンク発音処理を行い、キー情報の転送がなければ後述するステップF17〜F22の読出処理/出力処理へとジャンプする。
【0041】
キー情報の転送があると、そのキー情報のボイスモジュール情報(Voice-No.) を調べる(ステップF2)。この実施例では、ボイスモジュールの数は二つであり、従ってボイスモジュール情報(Voice-No.) もVoice-No.1とVoice-No.2の二つである。ここで、ボイス2への割当はポリフォニック1または2のときだけ行われる。したがってボイスモジュール情報がVoice-No.1である場合は、モードとしてはモノフォニックとポリフォニックの双方の場合があり、Voice-No.2の場合はモードはポリフォニックとなる。
【0042】
ボイスモジュール情報Voice-No.1であった場合、更にそのキー情報がキーオン情報KeyOn かキーオフ情報KeyOffかを判定し(ステップF3)、キーオフ情報KeyOffであれば、それまで発音を行っていたボイス1(ボイスモジュールNo.1 )の消音処理を行う(ステップF4)。この消音処理の詳細な内容は、図14に示すように、
SCNT(1) =0
LEVEL(1)=0
SPHASE(1) =ENDADRS(1)
とすることである。
【0043】
ここで、括弧付きの数字はボイスモジュールの番号である。SPHASEは波形再生に要する時間の進行を管理するパラメータであり、ここでは進行位置と称する。この進行位置SPHASEは先頭の波形区間の開始アドレスを基準とした波形データのアドレス値(波形データ記憶部のアドレス値)で表現される。またSCNT(n) はボイスnの発音の進行を管理するカウンタであり、波形データ記憶部から読み出す波形区間情報を更新(すなわち波形ピッチSPITCHや開始アドレスSADRS を更新)するためのカウント値をカウントするものである。従って、上記の図14の消音処理は、ボイス1について、カウンタSCNTを0にリセットし音量レベルLEVEL を0にするとともに、進行位置SPHASEを末尾アドレスENDADRS にして波形再生が進行しないようにするものである。
【0044】
キー情報がキーオン情報KeyOn であった場合、操作子設定テーブルのリンクモード(LINK-MODE) を調べる。リンクモード(LINK-MODE) が“0”の場合には「リトリガ」を行うモード、すなわち新たなキーオン情報KeyOn を受信したら波形データを再生中であってもその波形データの先頭から再生し直すモードであり、よって〔ボイス1の発音開始処理〕を行う(ステップF10)。この〔ボイス1の発音開始処理〕は要するに、波形メモリ12から該当する波形のパラメータおよび波形データをその先頭から読み出す処理である。
【0045】
この〔ボイス1の発音開始処理〕が実行される条件は以下のようになる。
▲1▼モノフォニック1のモードで、ボイス1に対するキーオン情報が入力されたとき・
▲2▼モノフォニック2のモードで、ボイス1が発音されていないときに、ボイス1に対するキーオン情報が入力されたとき.
▲3▼ポリフォニック1のモードで、ボイス1に対するキーオン情報が入力されたとき.
▲4▼ポリフォニック2のモードで、ボイス2が発音されていないときに、ボイス1に対するキーオン情報が入力されたとき.(このモードのとき、ボイス1は割当処理で発音されていないことを確認して割り当てられる)。
【0046】
この〔ボイス1発音開始処理〕の具体的な内容は、図16に示されるように、
PITCH(1)=Pitch
LEVEL(1)=Level
SCNT(1) =0
ENDADRS(1)=@ (BANK * $800)
SPHASE(1) =@ (BANK * $800 +SCNT(1) +1)
SPITCH(1) =@ (BANK * $800 +SCNT(1) +2)
SADRS(1)=@ (BANK * $800 +SCNT(1) +3)
START(1)=SPHASE(1)
WIDTH(1)=0
S-FLG1(1) =0
S-FLG2(1) =0
SCNT(1) =1
を行うことである。
【0047】
ここで、START は波形データ記憶部から実際(現に)に読み出している波形区間の先頭アドレスである。また上記中の「*」は乗算を、「@」は括弧内に示されたアドレスからデータを読み出すことを表す。例えば、ENDADRS(1)=@ (BANK * $800 ) は、パラメータ記憶部の読出しポインタが示す(BANK * $800 ) から内容(data)を読み出し、ENDADRS(1)に設定することを意味している。
【0048】
上記のボイス1発音開始処理は、ボイス1について、キー入力された音高情報Pitch とレベル情報Level をキー情報レジスタPITCH(1)、LEVEL(1)に転記し、カウンタSCNT(1) を初期値「0」にリセットし、該当するバンク番号BANK (波形領域番号) の波形データの末尾アドレスENDADRS(1)を波形パラメータ記憶部における当該バンク番号BANKの波形領域の先頭番地“0000"から読み出してセットし、進行位置SPHASE(1) を波形パラメータ記憶部における上記先頭から2番目の番地“0001" (最初の波形区間の開始アドレスが格納されている) から読み出してセットするとともに、その進行位置SPHASE(1) を先頭アドレスSTART(1)としてセットし、上記波形データの先頭の波形区間の波形ピッチSPITCH(1) を上記先頭番地から2番目の番地“0002"から読み出してセットし、上記波形データの先頭から2番目の波形区間の開始アドレスSADRS(1)を上記先頭から3番目の番地“0003"から読み出してセットするなどの処理を行った後に、カウンタSCNT(1) を一つ更新して1にするものである。
【0049】
リンクモード(LINK-MODE) が“1”の場合には「リトリガ」を行わないモード、すなわち新たなキーオン情報KeyOn を受信したら、波形データを再生中であれば、その時点以降の波形データを当該キーオン情報KeyOn で指定されたピッチに変更して再生するモードである。この場合、まず開始カウンタSCNT(1) が0か否かを判定する(ステップF6)。ここで開始カウンタSCNT(n) はボイスnの発音の進行を管理するカウンタであり、この値が「0」の場合にはボイスnがまだ未発音であることを示し、何らかの値となっていれば既に発音開始されたことを示す。
【0050】
開始カウンタSCNT(1) が「0」以外の値すなわちボイス1が既に発音中であれば、ステップF7に移行しボイス1からボイス1へのリンク発音処理を行う(ステップF7)。この経路を辿るのは、モードはモノフォニックであり、ボイス1が既に発音中であり、かつ「リトリガ」をしない場合であるから、ボイス1で発音中の波形を、キーオン情報の入力時点から以降、同じボイス1において当該キーオン情報中の音高情報(Pitch) に変更して再生する。上記リンク発音処理はこのための処理であり、図18に示すように、キー情報レジスタの音高Pitch(1)とレベル情報Level(1)を、受信したキーオン情報中の音高情報(Pitch) とレベル情報 (Level) で書き換える処理、すなわち、図18に示されるように、
Pitch(1)=Pitch
Level(1)=Level
とする処理である。
【0051】
この〔ボイス1からボイス1へのリンク発音処理〕が実行される条件は、モノフォニック2のモードで、ボイス1が発音中にボイス1に対するキーオン情報が入力されたときであり、このモードのときにのみ、割当処理でボイス1が発音中にボイス1に対するキーオン情報が割り当てられる。
【0052】
ステップF6でカウンタSCNT(1) が「0」すなわちボイス1がまだ未発音であれば、さらにボイス2のカウンタSCNT(2) が「0」か否かを判定する(ステップF8)。カウンタSCNT(2) が「0」でない場合はボイス2が発音中であることを意味し、よってモードはポリフォニックであり、入力したキーオン情報はレガート奏法における2番目の押鍵のキーオン情報である。この場合、ボイス2での波形の発音再生を継続するとともに、そのキーオン情報の入力時点以降の波形に対して、その新たに入力したキーオン情報に応じた音高での再生をボイス1でも行う。このための処理がステップF9の〔ボイス2からボイス1へのリンク発音処理〕であり、ボイス2に保持していた再生中の波形の各種データをボイス1に渡すとともに、そのデータを新たに入力したキーオン情報に基づいて変更する。
【0053】
この〔ボイス2からボイス1へのリンク発音処理〕が実行される条件は、ポリフォニック2のモードで、ボイス2が発音中にボイス1に対するキーオン情報が入力されたときである。このモードのとき、ボイス1は割当処理で発音されていないことを確認して割り当てられる。
【0054】
〔ボイス2からボイス1へのリンク発音処理〕の具体的内容は、図20に示されるように、
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)=0
S-FLG1(1) =0
S-FLG2(1) =0
とする処理である。
【0055】
すなわち、このリンク発音処理は、ボイス2での発音をその音高とレベルを変更してボイス1で受け継ぐために、キー入力された音高情報pitch とレベル情報Level をキー情報レジスタPITCH(1)、LEVEL(1)に転記するとともに、ボイス2における、レジスタSCNT(2) 、ENDADRS(2)、SPHASE(2) 、SADRS(2)、START(2)の各値をボイス1におけるレジスタSCNT(1) 、ENDADRS(1)、SPHASE(1) 、SADRS(1)、START(1)にそれぞれ書き写すものである。
【0056】
ステップF8において、カウンタSCNT(2) が「0」の場合はボイス2がまだ未発音であることを意味し、よってモードはモノフォニックまたはポリフォニックである。この経路を辿る場合はボイス1もボイス2も未発音であるので、新たに入力したキーオン情報はレガート奏法における2番目の押鍵ではなく、よってこのキーオン情報はボイス1に割り当てられて、波形データは先頭から再生される。この場合、前述のステップF10の〔ボイス1の発音開始処理〕を行う。
【0057】
一方、ステップF2の判定において、ボイスモジュール情報(Voice-No.) がVoice-No.2であった場合はモードはポリフォニックとなる。この場合、更にそのキー情報がキーオン情報KeyOn かキーオフ情報KeyOffかを判定し(ステップF11)、キーオフ情報KeyOffであれば、それまで発音を行っていたボイス2(No.2 のボイスモジュール) を消音処理を行う(ステップF16)。この消音処理の詳細な内容は、図15に示すように、
SCNT(2) =0
LEVEL(2)=0
SPHASE(2) =ENDADRS(2)
とする処理である。
【0058】
キー情報はキーオン情報KeyOn であった場合、操作子設定テーブルのリンクモード(LINK-MODE) を調べる。リンクモード(LINK-MODE) が“0”の場合には「リトリガ」を行うモード、すなわち新たなキーオン情報KeyOn を受信したら波形データを再生中であってもその波形データの先頭から再生し直すモードであり、よって〔ボイス2の発音開始処理〕を行う(ステップF13)。この〔ボイス2の発音開始処理〕は要するに、波形メモリ12から該当する波形のパラメータおよび波形データをその先頭から読み出してボイス2で発音する処理である。
【0059】
この〔ボイス2の発音開始処理〕が実行される条件は、
▲1▼ポリフォニック1のモードで、ポイス2に対するキーオン情報が入力されたとき、
▲2▼ポリフォニック2のモードで、ボイス2 が発音されていないときに、ボイス2に対するキーオン情報が入力されたとき、
である。
なお、ボイス2への割当はポリフォニック1、ポリフォニック2のときだけ行われる。
【0060】
この〔ボイス2発音開始処理〕の具体的な内容は、図17に示されるように、
PITCH(2)=Pitch
LEVEL(2)=Level
SCNT(2) =0
ENDADRS(2)=@ (BANK * $800)
SPHASE(2) =@ (BANK * $800 +SCNT(2) +1)
SPITCH(2) =@ (BANK * $800 +SCNT(2) +2)
SADRS(2)=@ (BANK * $800 +SCNT(2) +3)
START(2)=SPHASE(2)
WIDTH(2)=0
S-FLG1(2) =0
S-FLG2(2) =0
SCNT(2) =1
を行うことである。
【0061】
ステップF12の判断で、リンクモード(LINK-MODE) が“1”の場合には「リトリガ」を行わないモード、すなわち新たなキーオン情報KeyOn を受信したら、波形データを再生中であれば、その時点以降の波形データを当該キーオン情報KeyOn で指定されたピッチに変更して再生するモードである。この場合、まずカウンタSCNT(1) が0か否かを判定する(ステップF14)。
【0062】
カウンタSCNT(1) が「0」の場合、すなわちボイス1が未だ未発音であれば、前述のステップF13の〔ボイス2の発音開始処理〕を行う。
【0063】
カウンタSCNT(1) が「0」以外の値の場合、すなわちボイス1が既に発音中であれば、ステップF15に移行し〔ボイス1からボイス2へのリンク発音処理〕を行う。この経路を辿るのは、モードはポリフォニックであり、ボイス1が既に発音中であり、かつ「リトリガ」をしない場合であるから、ボイス1で発音中の波形を、キーオン情報の入力時点から以降、ボイス1で継続して発音するとともに、それと並行して、ボイス2においても当該キーオン情報中の音高情報(Pitch) に変更して再生する。上記〔ボイス1からボイス2へのリンク発音処理〕はこのための処理である。
【0064】
この〔ボイス1からボイス2へのリンク発音処理〕が実行される条件は、ポリフォニック2のモードで、ボイス1が発音中にボイス2に対するキーオン情報が入力されたときである。
【0065】
〔ボイス1からボイス2へのリンク発音処理〕の具体的内容は、図19に示されるように、
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)=0
S-FLG1(2) =0
S-FLG2(2) =0
とする処理である。
【0066】
キー情報の入力に対して以上の処理が終了したら、ボイスモジュール番号nを「1」に設定し(ステップF17)、ボイスモジュール(n)の読出し処理を行う(ステップF18)。この読出し処理については後に詳述する。その後、ボイスモジュール番号nが最終番号(この実施例ではボイス数の2)か判定し(ステップF19)、最終番号に達していなかったら、ボイスモジュール番号nを一つインクリメントして(ステップF20)、その番号のボイスモジュールの読出し処理を繰り返す。
【0067】
ボイスモジュール番号が最終番号になったら、各ボイス1、2の出力OUT(1)、OUT(2)を足し合わせて合成出力OUT とし(ステップF21)、この合成出力OUT を出力する(ステップF22)。
【0068】
上述のステップSF18の「読出し処理」は、サンプル波形(音声)から音素片を切り出し、その音素片のホルマントの特徴をほぼ保ったまま、所望の再生音高に対応した周期でその音素片を再生することによって、サンプル波形のホルマント特性を保ったままピッチを変換するものである。
【0069】
この読出し処理では、再生される波形のピッチは鍵盤で押下したキーの音高に応じて変更されるが、再生時間は再生ピッチの大きさ(すなわちどのキーが押下されたか)によらず一定である。すなわち、ポリフォニックの場合、レガート奏法の2番目の押鍵により、1番目の押鍵の音高に応じた波形再生と並行して2番目の押鍵の音高に応じた波形再生が行われた場合、1番目の波形再生の終了と2番目の波形再生の終了は同時となる。一方、従来のように単に読出し速度を変えることでピッチシフトを行っている場合には、上記のようなときには1番目と2番目の波形再生の終了はタイミングがずれてしまい違和感が生じるが、本実施例によれば、かかる違和感を無くすことができる。
【0070】
この読出し処理動作を概略的に説明すると、波形メモリ12に記憶されている波形データからパラメータデータに基づいて所望の区間(1ピッチ分の波形区間)を音素片として時間経過に従って順次に切り出して、その切り出した音素片を、元の波形とは異なるピッチおよびホルマントで再生するものである。その際、この音素片の再生を二つの処理経路で並行して行い、それぞれの処理経路では再生しようとするピッチ周期の2倍の周期でかつ互いが半周期ずれるようにして音素片を再生し、これらを合成して元のピッチ周期にするようにしている。
【0071】
図25〜図28はこのピッチ変換処理を説明する図である。ホルマント移動量“F-VR"はサンプリングデータのホルマントがピッチシフト後も全く変わらないとやや不自然な感じがあるので、これを若干変更する場合のものであり、ホルマント移動量“F-VR"が1であれば変更なし、1以外であればホルマントを若干変更する。ここでは、ホルマント移動量(F-VR)が1すなわちホルマント変更無しの場合を図25、26で説明し、ホルマント変更ありの場合を図27、図28で説明する。
【0072】
まず、図25を参照して、鍵盤のキー押下で音高を指定することにより、元の波形データを低域側にピッチシフトして再生する場合について説明する。ここではホルマント特性変更は行わない(ホルマント移動量“F-VR"=1)。
【0073】
図25の(a)は波形メモリ12の波形データであり、波形パラメータで示されるピッチSpitch0 、Spitch1 ・・・を有する。このピッチ“SPITCH"で音素片が順次に切り出される。鍵盤のキーで音高指定されたキー指定ピッチ“PITCH" に応じて、再生しようとするピッチ(すなわちシフト後のピッチ)を再生ピッチ“WIDTH" とする。すなわち、「再生ピッチ“WIDTH" =キー指定ピッチ“PITCH" 」である。この再生ピッチ“WIDTH" を周期長とする再生位相“PHASE" を図25 (b) のように作成し、このフェーズ“PHASE" から2つの処理経路の位相、すなわち図25 (d) に示す第1の処理経路の第1位相“PH 1"、図25 (e) に示す第2の処理経路の第2位相“PH 2"を作成する。なお、これら第1、第2の位相“PH 1"、“PH 2"はサンプリング周期毎にインクリメントされて増加する
【0074】
そして、第1の処理経路は、「第1位相“PH 1"×ホルマント移動量“F-VR"」の読出し速度で、また、第2の処理経路は、「第2位相“PH 2"×ホルマント移動量“F-VR"」の読出し速度で、それぞれの音素片を順次に読み出す。この読出し速度がホルマント特性の変更に関係する。ただし、今の場合はホルマント移動量“F-VR"=1であるから、第1、第2の位相“PH 1", “PH 2"の変化と等しく、結果的にホルマント特性は変更されない。
【0075】
さらに、第1、第2の位相“PH 1", “PH 2"にそれぞれ同期して、ホルマント処理のために波形データを切り取るためのエンベロープ“ENV 1", “ENV 2"を第1、第2の処理経路について作成する。第1の処理経路は図25 (f) に示すエンベロープ“ENV 1" の波形を持ち、第2の処理経路は図25 (g) に示すエンベロープ“ENV 2" の波形を持つ。エンベロープ“ENV 1“ 、“ENV 2" は0〜1の範囲の値であり、エンベロープ長“LENGTH"を半周期とし、前半の周期では0から逐次に増加して1になり、後半の周期では1から逐次に減少して0になる山形をしている。エンベロープ“ENV 1", “ENV 2"の エンベロープ長“LENGTH" は、
「エンプロープ長“LENGTH"=ピッチ“SPITCH"/ホルマント移動量“F-VR"」
で求める。
【0076】
第1の処理経路では、波形データの2ピッチ分の音素片に、エンベロープ“ENV 1" を乗算し、図25 (h) に示す波形を得る。同様に、第2の処理経路では、波形データの2ピッチ分の音素片 (第1の処理経路より1ピッチずれた2ピッチ分の音素片) に、エンベロープ“ENV 2" を乗算し、図25 (i) に示す波形を得る。このような処理の仕方によれば、これらの波形は元の波形データの音素片のホルマント特性をそのまま保持したものとなる。この図25 (h) 、 (i) の波形は再生ピッチ“WIDTH" の周期長の2倍の長さであるが、両者の波形を足し合わせると再生ピッチ“WIDTH" の周期長となる。従って、鍵盤からのキー指定ピッチ“PITCH" によって元のサンプリングデータを低域側にピッチシフトしつつ、そのホルマント特性はそのまま維持できる。
【0077】
図26は再生ピッチを小さくした場合、すなわち鍵盤からのキー指定ピッチ“PITCH" に基づいて元の波形データを高域側にピッチシフトする場合のものである。ここでは、ホルマント移動量“F-VR"=1としている。
【0078】
前述の図25の場合と同様に、音素片の読出し速度は、第1の処理経路が、「第1位相“PH 1"×ホルマント移動量“F-VR"」、第2の処理経路が、「第2位相“PH 2"×ホルマント移動量“F-VR"」であるから、第1、第2の位相“PH 1", “PH 2"の変化と等しく、結果的にホルマント特性には変更が付与されない。
【0079】
ただし、エンベロープ“ENV 1", “ENV 2"の エンプロープ長“LENGTH"は、
「エンプロープ長“LENGTH"=ピッチ“SPITCH"/ホルマント移動量“F-VR"」
であるから、ピッチ“SPITCH"と一致するよう演算されるが、後述する効果付加処理のステップで、エンベロープ長“LENGTH"が再生ピッチ“WIDTH" よりも大きくならないよう制限しているため、エンベロープ長“LENGTH"は再生ピッチ“WIDTH" に等しくなる。このように、元のサンプリングデータを高域側にピッチシフトしつつ、そのホルマント特性はそのまま維持できる。
【0080】
図27はホルマント特性変更を行う場合(ホルマント移動量“F-VR">1)を示している。ここでは、理解しやすくするために、キー指定ピッチ“PITCH" を、元の波形データのピッチ“SPITCH"とほぼ等しいものとしている。
【0081】
音素片の読出し速度は、第1の処理経路が、「第1位相“PH 1"×ホルマント移動量“F-VR"」、第2の処理経路が、「第2位相“PH 2"×ホルマント移動量“F-VR"」であるから、第1、第2の位相“PH 1", “PH 2"の変化より速く、結果的にホルマント特性は高域側にシフトされ、変更が付与されることになる。
【0082】
エンベロープ“ENV 1", “ENV 2"の エンプロープ長“LENGTH"は、
「エンプロープ長“LENGTH"=ピッチ“SPITCH"/ホルマント移動量“F-VR"」
であるから、ピッチ“PITCH" よりも小さくなる。この結果、元の波形データのホルマント特性を変更することができる。
【0083】
図28は上述同様にキー入力ピッチ“PITCH" を元の波形データのピッチ“SPITCH"とほぼ等しいものとして、ホルマント特性変更(ホルマント移動量“F-VR"<1)を行う場合を示している。音素片の読出し速度は、第1の処理経路が、「第1位相“PH 1"×ホルマント移動量“F-VR"」、第2の処理経路が、「第2位相“PH 2"×ホルマント移動量“F-VR"」であるから、第1、第2の位相“PH 1", “PH 2"の変化より遅く、結果的にホルマント特性は低域側にシフトされ、変更が付与されることになる。
【0084】
エンベロープ“ENV 1", “ENV 2"の エンプロープ長“LENGTH"は、
「エンプロープ長“LENGTH"=ピッチ“SPITCH"/ホルマント移動量“F-VR"」
であるから、ピッチ“SPITCH"よりも大きくなるよう演算されるが、後述する効果付加処理のステップで、エンベロープ長“LENGTH"が再生ピッチ“WIDTH" よりも大きくならないよう制限しているため、エンベロープ長“LENGTH"は再生ピッチ“WIDTH" に等しくなる。この結果、元の波形データのホルマント特性を変更することができる。
【0085】
上記の効果付加を含む読出し処理の動作を図21、図22のフローチャートに基づいて説明する。なお、図21、図22中の括弧書きの添字(n) はボイスモジュール番号nのパラメータ等であることを意味するものであるが、以下の説明では特に必要がない場合は記述を省略する。
【0086】
DSP8は、処理のため着目している1ピッチ分の波形区間のピッチ“SPITCH"を記憶するピッチレジスタ(SPITCH)、波形データを読み出すための開始アドレス“SADRS" を記憶する開始アドレスレジスタ(SADRS) を備えている。更に、後述する再生ピッチ周期長“WIDTH" に達したかをカウントするための再生位相カウンタ“PHASE" 、第1の波形の位相“PH 1"をカウントするための第1位相カウンタ(PH 1)、第2の波形の位相“PH 2"をカウントするための第2位相カウンタ(PH 2)も設けられている。
【0087】
また、再生ピッチ“WIDTH" (=再生ピッチ周期長)を記憶するための再生ピッチレジスタ(WIDTH) 、ピッチ“SPITCH"とホルマント移動量“F-VR"から定めたエンベロープの長さ“LENGTH"を記憶するエンベロープ長レジスタ(LENGTH)、第1の波形のエンベロープ“ENV 1" を記憶するための第1エンベロープ波形レジスタ(ENV 1) 、および第2の波形のエンベロープ“ENV 2" を記憶するための第2エンベロープ波形レジスタ(ENV 2) が設けられている。
【0088】
更に、第1の波形のエンベロープの形状を決定するためのレジスタ(WINDOW 1)、第2の波形のエンベロープの形状を決定するためのレジスタ(WINDOW 2)、エンベロープ長“LENGTH"の値に基づいて定めたレジスタ(WINDOW 1)、(WINDOW 2)の値の歩進率“W-RATE"を記憶する歩進率レジスタ(W-RATE)、第1の波形の読出し開始アドレス“SADRS 1" を記憶する第1読出しアドレスレジスタ(SADRS 1) 、第2の波形の読出し開始アドレス“SADRS 2" を記憶する第2読出しアドレスレジスタ(SADRS 2) 、第1および第2の波形の読出しの開始位置等の決定するために使用するフラグ“F”等も設けられている。
【0089】
以下、全体的な動作を図21、図22のフローチャートに従って説明する。このフローチャートは図25〜図28の動作に対応したものである。上述の各レジスタは、電源の投入の際に、初期化が行われる。即ち、フラグF(1) 、F(2) を「1」に、他のもの例えばレジスタSCNT(2) 、SCNT(1) 、WIDTH(1)、WIDTH(2)、PITCH(1)、PITCH(2)、LEVEL(1)、LEVEL(2)、ENDADRS(1)、ENDADRS(2)等を「0」に初期設定する。
【0090】
なお、以下の説明では、電源投入後少し時間が経過し、前記フローチャートの処理によって、各レジスタや各カウンタには、既に適当な値が記憶されているとして説明する。また、このフローチャートは、DSP8に波形メモリ12から波形データが入力されるごとに実行される。
【0091】
進行位置SPHASE(n) には、前述のボイスの発音開始処理またはリンク発音処理によって、波形メモリ12のパラメータ記憶部におけるバンク番号BANKで示される波形領域の先頭の波形区間の開始アドレスsadrs0が格納されている。進行位置SPHASEはこれを基準点にして時間の進行を管理する。1サンプル分の波形データが供給されると、進行位置SPHASE(n) を時間圧伸量TCOMP だけインクリメントする(ステップF31)。すなわち、
SPHASE(n)=SPHASE(n) +TCOMP
とする。このような更新をする結果、時間圧伸量TCOMP が大きければ、進行位置SPHASEは速く進んで波形全体を再生するに要する時間が短くなり、反対に時間圧伸量TCOMP が小さければ進行位置SPHASEは遅く進むので波形全体を再生するに要する時間は長くなる。
【0092】
この進行位置SPHASEと末尾アドレスENDADRS を比較し (ステップF32) 、進行位置SPHASEが末尾アドレスENDADRS より小さければ、まだその波形全体の末尾まで処理を終えていないことを意味する。この場合、さらに進行位置SPHASEと開始アドレスSADRS を比較する(ステップF33)。この開始アドレスは前述した図16、図17の発音開始処理からも分かるように、次に続く波形区間の開始アドレスである。よって進行位置SPHASEが開始アドレスSADRS(n) より大きければ、それまで処理していた波形区間が終了したので、この波形区間から次の波形区間に処理を移行するために波形区間の更新を行う。この波形区間の更新は次のようにして行う。
SPITCH(n) =@ (BANK*$800 +2+SCNT(n) *2)
SADRS(n) =@ (BANK*$800 +3+SCNT(n) *2)
SCNT(n) =SCNT(n) +1
【0093】
すなわち、波形メモリ12のパラメータ記憶部からパラメータデータ(次に続く1ピッチ分の波形区間の波形ピットと更にその後の波形区間の開始アドレス) を読み出してきて、それぞれ、現在の波形区間の波形ピッチSPITCH(n) 、次の波形区間の開始アドレスSADRS(n) とし、カウンタSCNT(n) を一つインクリメントする。
【0094】
ステップF33において、進行位置SPHASEが次の波形区間の開始アドレスSADRS(n)以下であれば、まだ現在の波形区間の途中であるから、波形区間の更新は行わないので、ステップF34の処理は飛び越す。
【0095】
さらに、先頭アドレスSTART(n)を更新するか否かを判定するために、(START(n)+SPITCH(n) )と進行位置SPHASEとを比較する(ステップF35)。(START(n)+SPITCH(n) )よりも進行位置SPHASEの方が大きければ、進行位置SPHASEが現在の波形区間を超えたことを意味し、この場合には先頭アドレスSTART(n)を次の波形区間の値に更新する。この更新は先頭アドレスSTART(n)を波形ピッチSPITCH(n) だけインクリメントして行う(ステップF36)。すなわち、
START(n)=START(n)+SPITCH(n)
とする。進行位置SPHASEが(START(n)+SPITCH(n) )以下である場合には、この先頭アドレスの更新は行わない。
【0096】
前記のステップF32で、進行位置SPHASEが末尾アドレスENDADRS 以上の場合には、
SPHASE(n) =ENDADRS(n)
とする。すなわち進行位置SPHASEを末尾アドレスENDADRS の値に固定して(ステップF37)、上述のステップF33〜F36を飛び越してステップF38に移行する。この場合には、波形区間と先頭アドレスの更新を行わない(つまりレジスタSPITCH、SADRS 、SCNT、START を更新しない)。これは、進行位置SPHASEが波形全体の末尾まで至ったら、その値を末尾アドレスENDADRS に固定してその進行を止めるものである。かかる制限をしない場合には次に続く波形領域の他の波形データが読み出されてノイズとなる虞があるが、上記制限によりこれを防止できる。
【0097】
以上のステップF31〜F37の処理により、大きな時間圧伸量TCOMP が設定された場合には進行位置SPHASEが速く進んで1ピッチ分の波形区間の更新が早く行われ、よって波形再生時間が短くなる。反対に時間圧伸量TCOMP が小さい場合には進行位置SPHASEが遅く進んで1ピッチ分の波形区間の更新が遅く行われ、よって波形再生時間が長くなる。なお、この時間圧伸量TCOMP をかなり小さな値に設定した場合には同じ波形区間が複数回繰り返して再生されつつ、遅い速度で波形再生が進行するようになる。これは、進行位置SPHASEの進行がゆっくりしているためステップF33、F35の判断で進行位置SPHASEがなかなか比較している値よりも大きくならず、よって波形区間の更新がなかなか行われないで同じ波形区間からの読出し処理が繰り返し行われるためである。反対に、時間圧伸量TCOMP をかなり大きな値にすると、波形区間の更新において、次に続く波形区間を飛び越してしまいその波形区間の再生が行われないような場合も生じる。
【0098】
上記のように進行位置SPHASEを時間基準として用いて波形区間の更新を行いつつ波形データを再生すると、波形再生に要する時間長は再生する波形の音高によらず、ユーザが設定する時間圧伸量で決めることができるようになる。この結果、ポリフォニックモード2で2つのボイスモジュールを並行して発音させる場合でも、その発音の終了時間は2つのボイスモジュールで同時とすることができる。
【0099】
ステップF38では、再生位相“PHASE" 、第1位相“PH 1"、第2位相“PH 2"の値をそれぞれ1つ歩進させる(ステップF38)。次に、再生位相“PHASE" と再生ピッチ長“WIDTH" の値を比較する(ステップF39)。この再生ピッチ長“WIDTH" の値が再生されるピッチに対応する。再生位相“PHASE" の値が再生ピッチ長“WIDTH" の値に達していなければ、後述するステップF48の「波形読出し処理」へ進む。なお、再生ピッチ長“WIDTH" は後述のステップF41で算出される。
【0100】
再生位相“PHASE" の値が再生ピッチ長“WIDTH" の値に達していると、再生位相“PHASE" の値を0とし(ステップF40)、次いで、ホルマント移動量“F-VR"を入力し、新たな再生ピッチ長“WIDTH" の値を、鍵盤の押鍵で音高指定されたキー指定ピッチPITCH とし、これを再生ピッチ長“WIDTH" として レジスタ(WIDTH) に記憶させると共に、第1の波形のエンベロープ“ENV 1" 、第2の波形のエンベロープ“ENV 2" の周期“LENGTH"を、ピッチ“SPITCH"の値をホルマント移動量“F-VR"で除算して求め、レジスタ(LENGTH)に記憶させる(ステップF41)。
【0101】
次に、エンベロープの周期“LENGTH"の値を制限する(ステップF42、F43)。エンベロープ周期“LENGTH"の値と再生ピッチ長“WIDTH" の値とを比較し(ステップF42)、エンベロープ周期“LENGTH"の値が再生ピッチ長“WIDTH" の値よりも大きい場合には、エンベロープ周期“LENGTH"の値を再生ピッチ長“WIDTH" の値とする(ステップF43)。一方、エンベロープ周期“LENGTH"の値が再生ピッチ長“WIDTH" の値以下である場合には、このステップS43の処理は行わない。これにより、エンベロープ周期“LENGTH"が再生ピッチ長“WIDTH" より大きくならないように制限をかける。
【0102】
次いで、エンベロープ周期“LENGTH"の値の逆数を求め、これを歩進率“W-RATE"としてレジスタ(W-RATE)に記憶させる (ステップF44)。この歩進率“W-RATE"は、レジスタ(WINDOW 1)、(WINDOW 2)の値を歩進させるために使用する。また、フラグ“F”の極性を反転させる。このステップF44の処理は、ステップF3)おいて再生位相“PHASE" の値が再生ピッチ長“WIDTH" の値以上になったときに行われるので、フラグ“F”の反転も、再生位相“PHASE" の値が再生ピッチ長“WIDTH" の値以上になったときに行われることになり、例えば図25〜図28の(c)に示されるように、再生位相“PHASE" の周期で1と−1に反転する波形が得られる。
【0103】
次に、フラグ“F”の値を0と比較し、フラグ“F”が1であるか、−1であるかを判断する(ステップF45)。フラグ“F”の値が1であることはフラグ“Fが−1から1に立ち上がったときを意味しており、この場合には、第1の処理経路に相当するレジスタ(PH 1)、(WINDOW 1)の値をそれぞれ「0」とし、先頭アドレスSTART(n)値を第1読出し先頭アドレスレジスタ(START 1(n))に記憶させ、フラグS-FLG1(n) を“1”にする(ステップF46)。
【0104】
また、フラグFの値が−1であることはフラグ“F”が1から−1に立ち下がったことを意味しており、この場合には、第2の処理経路に相当するレジスタ(PH 2)、(WINDOW 2)をそれぞれ「0」とし、先頭アドレスSTART 値を第2読出し先頭アドレスレジスタ(START 2) に記憶させ、第2のフラグS-FLG 2 を“1”にする(ステップF47。
なお、上述のフラグS-FLG 1 =1 、S-FLG 2 =1 の処理により、発音開始後、PH1(n)、PH2(n)がリセットされて初めて発音が開始されるようになる。
【0105】
このステップF46またはF47の処理に続いて、あるいはステップF39おいて再生位相“PHASE" の値が再生ピッチ長“WIDTH" の値に達していないと判断されたときには、波形読出し処理を行う(ステップF48)
【0106】
図23はこの波形読出し処理を示すフローチャートである。以下にこの波形読出し処理について詳細に説明する。
【0107】
波形読出し処理
図23は波形読出し処理のフローチャートであり、同図中のステップF52〜F60は第1の処理経路のための処理、ステップF61〜F69は第2の処理経路のための処理であり、この二つの処理は時系列に行われるが、処理の内容は実質的に同様な内容となっている。
【0108】
図23に示すように、波形読出し処理では、まずカウンタ(WINDOW 1 (n))の値を歩進率“W-RATE(n)" の値だけ歩進させる(ステップF52)。そして、歩進させたカウンタ(WINDOW 1(n) )の値が1より小さいか、1以上であって2より小さいか、あるいは2以上であるかを判定する(ステップF53)。1より小さい場合には、カウンタ(WINDOW 1(n)) の値を第1エンベロープ“ENV 1" としてレジスタ(ENV 1) に記憶させ(ステップF54)、1以上であって2より小さい場合には、2からカウンタ(WINDOW 1 (n))の値を減算した値を第1エンベロープ“ENV 1" としてレジスタ(ENV 1) に記憶させ(ステップF55) 、2以上のとき、第1エンベロープ“ENV 1“ の値を0とする(ステップF56)。
【0109】
ステップF53〜F56は、例えば図25(f) に示されるように、歩進率“W-RATE"の値ずつ値が増加する鋸歯状波を作成し、これの値を1で折り返すことによって、第1エンベロープ“ENV 1" を作成している。但し、カウンタ“WINDOW 1 (n) " の値が2を越えた場合には、ステップF56によって第1エンベロープ“ENV 1" の値を0としている。即ち、ホルマント移動量“F-VR"とピッチ“PITCH" とに基づいて定めたエンベロープ長“LENGTH"の値の逆数である歩進率“W-RATE"ずつ1まで増加し、その後、歩進率“W-RATE"ずつ0まで減少する三角波を第1のエンベロープ“ENV 1" の波形として作成している。
【0110】
また、ステップF54〜F56に続いて、第1位相カウンタ(PH 1)の値(読出しアドレスの歩進値)にホルマント移動量“F-VR"を乗算した値を、第1の波形の先頭アドレス“START 1 (n) "と加算して、第1の波形の読出しアドレスを記憶するレジスタ(ADRES 1) に記憶させる(ステップF57)。
【0111】
また、読出しアドレスADRES 1 と末尾アドレスENDADRS を比較し(ステップF58)、末尾アドレスENDADRS よりも大きければ、読出しアドレスADRES 1 =末尾アドレスENDADRS とする(ステップF59)。これは読出しアドレスにリミットをかけて、末尾アドレスENDADRS を超えて読み出さないようにしているものである。
【0112】
これに続いて、波形メモリから読出しアドレス“ADRS 1"で第1の波形の波形データ“DATA 1"を読み出す(ステップF60)。このように読出しアドレスはホルマント移動量“F-VR"によって変更されているので、結果的には波形データ“DATA 1"の読出し速度が、ホルマント移動量“F-VR"によって変更されている。
【0113】
これに続くステップF61〜F69では上述と同じ処理を、第2の処理経路についても行う。
【0114】
このようにして読み出されたデータ“DATA 1"と第1エンベロープ“ENV 1" の値とS-FLG1を乗算したものと、データ“DATA 2"に第2エンベロープ“ENV 2" の値とS-FLG2を乗算したものとを、加算したものを出力OUT とする(ステップF70)。これにより、フラグS-FLG1(n) またはS-FLG2(n) が“0”の間は、合成する信号が0になるようにして、ENV 1 、ENV 2 が必ず0から始まるようにしている。
【0115】
次いで、
“L-ENV(n)"=“L-ENV(n)"+LEVEL(n)−“L-ENV(n)"*K
とし、このL-ENV(n)を出力OUT(n)に乗じたものを最終的な出力OUT(n)とする。すなわち、立上り、立下りの特性が係数Kで決まるレベルエンベロープ“L-ENV(n)"を算出し、これを出力に付加している。なお、ステップF71の演算では、レベルエンベロープ“L-ENV(n)"は0にならないので、所定レベル以下になると、“L-ENV(n)"=0となるように処理を追加してもよい。
【0116】
次に、本発明の他の実施例を説明する。前述の実施例では、メモリ波形のピッチを使用することから、メモリ波形のピッチが検出可能なものでなければならない。しかし、楽音として使用する波形には、必ずしもピッチ検出可能なものばかりではない。例えば、シンバルや太鼓類などの打楽器音、それから和音演奏のように複数の楽音が同時に発音されているものなどがある。そこで、本実施例では、従来からあるピッチシフタの技術を使用して、ピッチ変化に対応してホルマントも変化する読出し方法を実現している。
【0117】
この実施例の構成は基本的には前述の実施例を用いているが、異なる点を以下に示す。
1. 波形メモリのデータ構成を図39、図40に示すように変更
2.「ボイス1の消音処理」を図29に示すように変更
3.「ボイス2の消音処理」を図30に示すように変更
4.「ボイス1の発音開始処理」を図31に示すように変更
5.「ボイス2の発音開始処理」を図32に示すように変更
6.「ボイス1からボイス1へのリンク発音処理」を図33に示すように変更
7.「ボイス1からボイス2へのリンク発音処理」を図34に示すように変更
8.「ボイス2からボイス1へのリンク発音処理」を図35に示すように変更
9.「読出し処理」を図36に示すように変更
10. 「波形読出し処理」を図37、図38に示すように変更
【0118】
まず、波形メモリの構成を説明する。パラメータ記憶部は図39に示され、波形データ記憶部は図40に示される。パラメータ記憶部は$0004番地毎に区切られている。wave0 領域の波形データは、パラメータ記憶部のwave0 領域に格納されている開始アドレスsadrs と末尾アドレスendsdrs で示されている波形データ記憶部の領域に格納さている。このように、波形データは開始アドレスsadrs と末尾アドレスendadrs で具体的に示されているため、波形データ記憶部は先の実施例のようにセグメントで区切られていない。
【0119】
また、パラメータ記憶部のオリジナルピッチ“org-pitch" は、記憶された波形データを、どの音高の鍵を操作した時にオリジナルのままの波形として再生するかを示す情報で、その鍵に対応する音高を周波数に比例する情報として記憶している。このオリジナルピッチ“org-pitch" は、ユーザが波形データをサンプリングする時に設定するものとする。
【0120】
上述の「ボイス1の消音処理」、「ボイス2の消音処理」、「ボイス1の発音開始処理」、「ボイス2の発音開始処理」、「ボイス1からボイス1へのリンク発音処理」、「ボイス1からボイス2へのリンク発音処理」、「ボイス2からボイス1へのリンク発音処理」のうちの主な変更点について説明する。
【0121】
前述の実施例では、ピッチPitch は周波数に反比例する情報を使用していたが、この実施例では周波数に比例する情報を使用している。例えば、先の実施例ではピッチPitch は音高のピッチ(周期)に比例する情報を表していたが、この実施例では音高の周波数に比例する情報を表している。
【0122】
さらに、前述の実施例のピッチシフト手段では、入力される再生音高情報Pitch が直接に再生音高のピッチWIDTH (周期) になるが、この実施例では、入力される再生音高情報Pitch が周波数のシフト量を表すことになる。従って、上記処理における変更点は、再生音高を決める周波数シフト量を基準の周波数“org-pitch" からの比「Pitch /org-pitch 」として求める処理を行っている点にある。この結果をシフト量PITCH(n)としてピッチシフタ手段に供給している。
【0123】
本実施例の「読出し処理」は図36に示すものとする。この「読出し処理」と前述の実施例の図21の「読出し処理」との主な相違点を以下に示す。ステップF32で進行位置SPHASEが末尾アドレスENDADRS より小さい場合、図21におけるステップF33〜F36は行わず、直ちにステップF38に移行する。また、ステップF41’では、前述の実施例のステップF41に換えて、再生ピッチWIDTH として係数“ENV-P" を設定する。係数“ENV-P" は予め定められた定数で、ENV 1 、ENV 2 の周期を決定するものである。また、前述の実施例のステップF42、F43は削除し、ステップF44に換えて、本実施例ではF(n) =−F(n) とする処理のみを行う (ステップF44’)。
【0124】
本実施例の「波形読出し処理」は図37、図38に示すものとする。この「波形読出し処理」と前述の実施例の図22、図23の「波形読出し処理」との主な相違点を以下に示す。ステップF52’、ステップF61’でWINDOW 1、WINDOW 2に加算する量“W-RATE" は本実施例では、予め定められた定数で、「“W-RATE"=1/WIDTH 」を満たす値とする。また、前述の実施例のステップF56、ステップF65は、本実施例ではWINDOW(n) は2によりも大きくならないため、削除してある。また、ステップF57’、F66’では、PH(n) に対して、前述の実施例のホルマント移動量“F-VR"に換えて、ピッチPITCH(n)を乗じている。
【0125】
本実施例の処理の概要を図41、図42を参照して以下に説明する。図41は再生音声をオリジナルピッチ“org-pitch" より低くする場合の処理、図42は再生音声をオリジナルピッチ“org-pitch" より高くする場合の処理を示している。
【0126】
この処理においては、例えば図41において、波形メモリに記憶されている波形データ“Wave-Date" をアドレス“ADRES 1" で読み出し、その読み出した波形データに“ENV 1" を乗算して窓関数を付加したもの(図41の(2) )と、波形メモリに記憶されている波形データ“Wave-Date" をアドレス“ADRES 2" で読み出し、その読み出した波形データに“ENV 2" を乗算して窓関数を付加したもの(図41の(3))とを図面で示している。(2) と(3) とを加算した信号がピッチシフトされた信号となる。図42についても同様である。
【0127】
再生音高をオリジナルピッチ“org-pitch" により低くする場合、図41に示すように、波形メモリの読出し速度が1よりも小さくなり、“ENV 1" が付加される波形データは、WD+0 、WD+2 、WD+4 、WD+6 ・・・となり、“ENV 2" が付加される波形データは、WD+1 、WD+3 、WD+5 ・・・となって、これらが伸長されてWD+0 ’、WD+2 ’、WD+4 ’、WD+6 ’、およびWD+1 ’ 、WD+3 ’ 、WD+5 ’となる。
【0128】
反対に、再生音高をオリジナルピッチ“org-pitch" により高くする場合、図42に示すように、波形メモリの読出し速度が1よりも小さくなり、“ENV 1" が付加される波形データは、WU+0 、WU+2 、WU+4 、WU+6 ・・・となり、“ENV 2" が付加される波形データは、WU+1 、WU+3 、WU+5 ・・・となって、これらが圧縮されてWU+0 ’、WU+2 ’、WU+4 ’、WU+6 ’、およびWU+1 ’ 、WU+3 ’ 、WU+5 ’となる。
【0129】
なお、波形メモリの読出し速度は、「波形読出し処理」の「“PH1(n)"*“PITCH(n)"」と「“PH2(n)"*“PITCH(n)"」の変化速度に対応する。
【0130】
【発明の効果】
以上に説明したように、、波形発生装置において、波形の再生中に後の再生指示があった場合における波形の再生態様を豊富にして、音楽的効果を豊富化することができる。
【図面の簡単な説明】
【図1】本発明にかかる一実施例としての波形発生装置の全体的なブロック構成を示す図である。
【図2】実施例装置におけるメインルーチンを示すフローチャートである。
【図3】実施例装置における録音ルーチンを示すフローチャートである。
【図4】実施例装置における編集ルーチンを示すフローチャートである。
【図5】実施例装置における再生ルーチンを示すフローチャートである。
【図6】実施例装置における再生処理ルーチン(1/2)の詳細を示すフローチャートである。
【図7】実施例装置における再生処理ルーチン(2/2)の詳細を示すフローチャートである。
【図8】実施例装置における操作子設定テーブルの構成例を示す図である。
【図9】実施例装置におけるキー情報レジスタの構成例を示す図である。
【図10】実施例装置における波形メモリのパラメータ記憶部のデータ構成例を示す図である。
【図11】実施例装置における波形メモリの波形データ記憶部のデータ構成例を示す図である。
【図12】実施例装置におけるDSPでのメインルーチン(1/2)を示すフローチャートである。
【図13】実施例装置におけるDSPでのメインルーチン(2/2)を示すフローチャートである。
【図14】実施例装置におけるDSPでのメインルーチン中の「ボイス1の消音処理」を示すフローチャートである。
【図15】実施例装置におけるDSPでのメインルーチン中の「ボイス2の消音処理」を示すフローチャートである。
【図16】実施例装置におけるDSPでのメインルーチン中の「ボイス1の発音開始処理」を示すフローチャートである。
【図17】実施例装置におけるDSPでのメインルーチン中の「ボイス2の発音開始処理」を示すフローチャートである。
【図18】実施例装置におけるDSPでのメインルーチン中の「ボイス1からボイス1へのリンク発音処理」を示すフローチャートである。
【図19】実施例装置におけるDSPでのメインルーチン中の「ボイス1からボイス2へのリンク発音処理」を示すフローチャートである。
【図20】実施例装置におけるDSPでのメインルーチン中の「ボイス2からボイス1へのリンク発音処理」を示すフローチャートである。
【図21】実施例装置におけるDSPでのメインルーチン中の「読出し処理」ルーチン(1/2)を示すフローチャートである。
【図22】実施例装置におけるDSPでのメインルーチン中の「読出し処理」ルーチン(2/2)を示すフローチャートである。
【図23】実施例装置におけるDSPでのメインルーチン中の「読出し処理」ルーチン中の「波形読出し処理」ルーチン(1/2)を示すフローチャートである。
【図24】実施例装置におけるDSPでのメインルーチン中の「読出し処理」ルーチン中の「波形読出し処理」ルーチン(2/2)を示すフローチャートである。
【図25】「読出し処理」の動作概要(ホルマント特性変更なし、低域にピッチシフト)を説明するためのタイムチャートである。
【図26】「読出し処理」の動作概要(ホルマント特性変更なし、高域にピッチシフト)を説明するためのタイムチャートである。
【図27】「読出し処理」の動作概要(ホルマント特性を低域にシフト)を説明するためのタイムチャートである。
【図28】「読出し処理」の動作概要(ホルマント特性を高域にシフト)を説明するためのタイムチャートである。
【図29】他の実施例装置におけるDSPでのメインルーチン中の「ボイス1の消音処理」を示すフローチャートである。
【図30】他の実施例装置におけるDSPでのメインルーチン中の「ボイス2の消音処理」を示すフローチャートである。
【図31】他の実施例装置におけるDSPでのメインルーチン中の「ボイス1の発音開始処理」を示すフローチャートである。
【図32】他の実施例装置におけるDSPでのメインルーチン中の「ボイス2の発音開始処理」を示すフローチャートである。
【図33】他の実施例装置におけるDSPでのメインルーチン中の「ボイス1からボイス1へのリンク発音処理」を示すフローチャートである。
【図34】他の実施例装置におけるDSPでのメインルーチン中の「ボイス1からボイス2へのリンク発音処理」を示すフローチャートである。
【図35】他の実施例装置におけるDSPでのメインルーチン中の「ボイス2からボイス1へのリンク発音処理」を示すフローチャートである。
【図36】他の実施例装置におけるDSPでのメインルーチン中の「読出し処理」ルーチンを示すフローチャートである。
【図37】他の実施例装置におけるDSPでのメインルーチン中の「読出し処理」ルーチン中の「波形読出し処理」ルーチン(1/2)を示すフローチャートである。
【図38】他の実施例装置におけるDSPでのメインルーチン中の「読出し処理」ルーチン中の「波形読出し処理」ルーチン(2/2)を示すフローチャートである。
【図39】他の実施例装置における波形メモリのパラメータ記憶部のデータ構成例を示す図である。
【図40】他の実施例装置における波形メモリの波形データ記憶部のデータ構成例を示す図である。
【図41】「読出し処理」の動作概要(低域にピッチシフト)を説明するためのタイムチャートである。
【図42】「読出し処理」の動作概要(高域にピッチシフト)を説明するためのタイムチャートである。
【符号の説明】
4 A/D変換器
8 DSP(ディジタル信号プロセッサ)
12 波形メモリ
14 D/A変換器
20 操作子群
22 CPU(中央処理装置)
30 キーボード
31 RAM(ランダム・アクセス・メモリ)
32 ROM(リード・オンリー・メモリ)
33 ハードディスク装置
Claims (7)
- 波形データを記憶した波形記憶手段と、
前記波形データの再生の開始/終了および音高を指示する演奏情報を入力する演奏情報入力手段と、
前記波形記憶手段の波形データを、前記演奏情報入力手段から入力された演奏情報に対応した音高で読み出す波形読出し手段と
を有して構成され、
前記波形読出し手段は、
前記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し中に、後の演奏情報が入力され再生開始が指示された時、前記読出し中の波形データのうちの前記後の演奏情報が入力されたタイミング以降の部分を前記後の演奏情報に対応した音高で読み出す
ことを特徴とする波形発生装置。 - 波形データを記憶した波形記憶手段と、
前記波形データの再生の開始/終了および音高を指示する演奏情報を入力する演奏情報入力手段と、
前記波形記憶手段の波形データを、前記演奏情報入力手段から入力された演奏情報に対応した音高で読み出す波形読出し手段と
を有して構成され、
前記波形読出し手段は、
前記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し中に、後の演奏情報が入力され再生開始が指示された時、それまでの前記先の演奏情報による波形データの読出しに引き続いて、前記読出し中の波形データのうちの前記後の演奏情報が入力されたタイミング以降の部分を、前記先の演奏情報に対応した音高での記憶波形データの読出しと並行して、前記後の演奏情報に対応した音高で読み出す
ことを特徴とする波形発生装置。 - 請求項1または2のいずれか1項に記載の波形発生装置において、さらに、
音高にかかわらず一定の速度で進行する波形再生の時間的進行を示す進行位置情報を生成する進行位置情報生成手段を有し、
前記波形読出し手段は、
前記波形データ記憶手段から前記進行位置情報生成手段の示す進行位置情報に対応した位置の波形データの読出しを行う
ことを特徴とする波形発生装置。 - 波形データを記憶した波形記憶手段と、
前記波形データの再生の開始/終了および音高を指示する演奏情報を入力する演奏情報入力手段と、
前記波形データの読み出し速度を変更して前記波形データのホルマントを変更するためのホルマント変更情報を入力するホルマント変更情報入力手段と、
前記波形記憶手段に記憶された波形データの所望区間を前記ホルマント変更情報に応じた読み出し速度で読み出し、前記演奏情報による音高に対応した周期で合成する波形読出 し合成手段と
を有して構成され、
前記波形読出し合成手段は、
前記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し合成中に、後の演奏情報が入力され再生開始が指示された時、前記読出し中の波形データのうちの前記後の演奏情報が入力されたタイミング以降の部分を、前記後の演奏情報による音高に対応させて読出し合成する
ことを特徴とする波形発生装置。 - 波形データを記憶した波形記憶手段と、
前記波形データの再生の開始/終了および音高を指示する演奏情報を入力する演奏情報入力手段と、
前記波形データの読み出し速度を変更して前記波形データのホルマントを変更するためのホルマント変更情報を入力するホルマント変更情報入力手段と、
前記波形記憶手段に記憶された波形データの所望区間を前記ホルマント変更情報に応じた読み出し速度で読み出し、前記演奏情報による音高に対応した周期で合成する波形読出し合成手段と
を有して構成され、
前記波形読出し合成手段は、
前記演奏情報入力手段で入力された先の演奏情報に対応して開始された波形データの読出し合成中に、後の演奏情報が入力され再生開始が指示された時、それまでの前記先の演奏情報による波形データの読出し合成に引き続いて、前記読出し中の波形データのうちの前記後の演奏情報が入力されたタイミング以降の部分を、前記先の演奏情報による音高に対応した読出し合成と並行して、前記後の演奏情報による音高に対応させた読出し合成を行う
ことを特徴とする波形発生装置。 - 請求項4または5のいずれか1項に記載の波形発生装置において、さらに、
音高にかかわらず一定の速度で進行する波形再生の時間的進行を示す進行位置情報を生成する進行位置情報生成手段を有し、
前記波形読出し合成手段は、
前記波形データ記憶手段から前記進行位置情報生成手段の示す進行位置情報に対応した区間の波形データの読出し合成を行う
ことを特徴とする波形発生装置。 - 請求項4、5または6のいずれか1項に記載の波形発生装置において、
前記波形読出し合成手段は、
前記波形記憶手段に記憶された波形データのピッチを入力するピッチ情報入力手段を有し、前記波形データ記憶手段から前記入力されたピッチ情報に基づく2周期分の区間の波形データの読出し合成を行う
ことを特徴とする波形発生装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27107296A JP3746578B2 (ja) | 1996-10-14 | 1996-10-14 | 波形発生装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27107296A JP3746578B2 (ja) | 1996-10-14 | 1996-10-14 | 波形発生装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10116082A JPH10116082A (ja) | 1998-05-06 |
JP3746578B2 true JP3746578B2 (ja) | 2006-02-15 |
Family
ID=17495001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27107296A Expired - Fee Related JP3746578B2 (ja) | 1996-10-14 | 1996-10-14 | 波形発生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3746578B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4735544B2 (ja) * | 2007-01-10 | 2011-07-27 | ヤマハ株式会社 | 歌唱合成のための装置およびプログラム |
-
1996
- 1996-10-14 JP JP27107296A patent/JP3746578B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10116082A (ja) | 1998-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6816833B1 (en) | Audio signal processor with pitch and effect control | |
US6687674B2 (en) | Waveform forming device and method | |
US6762358B2 (en) | Waveform reproduction apparatus | |
JP3746578B2 (ja) | 波形発生装置 | |
JP3645030B2 (ja) | 電子楽器 | |
JP3910702B2 (ja) | 波形発生装置 | |
JP3763493B2 (ja) | 波形発生装置 | |
JP3795167B2 (ja) | 波形発生装置 | |
JP2559209B2 (ja) | 楽音信号発生装置 | |
JP4170525B2 (ja) | 波形読出装置 | |
JP4506147B2 (ja) | 演奏再生装置及び演奏再生制御プログラム | |
JP4057700B2 (ja) | 波形再生装置 | |
JPH1152953A (ja) | 波形データのピッチ変化抽出方法および波形再生装置 | |
JPH10198380A (ja) | 波形発生装置 | |
JP4236570B2 (ja) | 波形再生装置および波形再生プログラム | |
JPH08305392A (ja) | 効果装置 | |
JP4015267B2 (ja) | 波形発生装置 | |
JP3095018B2 (ja) | 楽音発生装置 | |
JP4132268B2 (ja) | 波形再生装置 | |
JP5732769B2 (ja) | 楽音生成装置 | |
JP5573465B2 (ja) | 楽音生成装置 | |
JP2770353B2 (ja) | 電子楽器 | |
JPH0926787A (ja) | 音色制御装置 | |
JP2526834B2 (ja) | 演奏制御装置 | |
JP3486938B2 (ja) | レガート演奏可能な電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050906 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051101 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051124 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111202 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111202 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121202 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131202 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |