JP2004279750A - 楽音発生装置および楽音発生プログラム - Google Patents
楽音発生装置および楽音発生プログラム Download PDFInfo
- Publication number
- JP2004279750A JP2004279750A JP2003071300A JP2003071300A JP2004279750A JP 2004279750 A JP2004279750 A JP 2004279750A JP 2003071300 A JP2003071300 A JP 2003071300A JP 2003071300 A JP2003071300 A JP 2003071300A JP 2004279750 A JP2004279750 A JP 2004279750A
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- modulated
- sound
- generating
- human voice
- 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.)
- Pending
Links
Images
Abstract
【解決手段】音源12が人声音の変調波形と楽器音の被変調波形とを発生し、DSP15が人声音の変調波形から抽出したフォルマント成分に応じて楽器音の被変調波形を変調するボコーダ処理を行って、あたかも人の声のような楽器音を形成するので、従来のように、外部から音声信号を入力させてボコーダ処理する構成とは異なり、ボコーダ演奏を常に同じように再現できる。また、こうした構成において波形選択モード値「0」〜「2」および波形リセットモード値「0」〜「3」に応じた各種波形読み出し形態を設定するので、多様な楽音発生形態を具現することが可能になる。
【選択図】 図6
Description
【発明の属する技術分野】
本発明は、ボコーダ演奏を常に同じように再現でき、しかも多様な楽音発生形態を具現する楽音発生装置および楽音発生プログラムに関する。
【0002】
【従来の技術】
音源から出力される楽音信号を、外部より入力される音声信号により変調して楽音形成する装置が知られている。この種の技術として、例えば特許文献1には、通過周波数帯域がそれぞれ異なる複数のバンドパスフィルタを用いて、外部より入力される音声信号の各周波数帯域毎のエンベロープレベルを抽出し、これに応じて、自動演奏される楽音の周波数特性を制御する所謂ボコーダ処理を施してあたかも人声のような楽音を発生する装置が開示されている。
【0003】
【特許文献1】
特許第2808721号公報
【0004】
【発明が解決しようとする課題】
ところで、上述した従来の楽音発生装置では、外部からの入力信号にて音源が発生する楽音を変調する構成である為、ボコーダ演奏を常に同じように再現することができないという問題や、外部からの入力信号を取り込む構成を必須とすることから製品コスト増加を招致する問題もある。
さらに、従来の楽音発生装置では、外部からの入力信号に従ってボコーダ処理するので、即興的なボコーダ演奏に優れるものの、単に内部音源が発生する楽音を外部からの入力信号で変調するだけなので、多様な楽音発生形態を具現することができないという問題もある。
【0005】
そこで本発明は、このような事情に鑑みてなされたもので、常に同じようにボコーダ演奏を再現でき、しかも多様な楽音発生形態を具現することができる楽音発生装置および楽音発生プログラムを提供することを目的としている。
【0006】
【課題を解決するための手段】
上記目的を達成するため、請求項1に記載の発明では、入力される演奏情報に対応した人声音の変調波形と楽器音の被変調波形とを発生する波形発生手段と、前記波形発生手段が発生した人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段とを具備することを特徴とする。
【0007】
請求項2に記載の発明では、音高指定される範囲を、少なくとも第1および第2の音域に分割する分割手段と、前記第1の音域内で音高指定する演奏情報に応じた人声音の変調波形の発生を指示する第1の指示手段と、前記第2の音域内で音高指定する演奏情報に応じた楽器音の被変調波形の発生を指示する第2の指示手段と、前記第1の指示手段から指示された人声音の変調波形と前記第2の指示手段から指示された楽器音の被変調波形とを発生する波形発生手段と、前記波形発生手段が発生した人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段とを具備することを特徴とする。
【0008】
請求項3に記載の発明では、複数パートの内、第1のパートに割り当てられた演奏情報に対応した人声音の変調波形の発生を指示する第1の指示手段と、複数パートの内、第2のパートに割り当てられた演奏情報に対応した楽器音の被変調波形の発生を指示する第2の指示手段と、前記第1の指示手段から指示された人声音の変調波形と前記第2の指示手段から指示された楽器音の被変調波形を発生する波形発生手段と、前記波形発生手段が発生した人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段とを具備することを特徴とする。
【0009】
上記請求項1乃至3のいずれかに従属する請求項4に記載の発明では、前記波形発生手段は人声を表す波形を個別に複数記憶する波形記憶手段と、この波形記憶手段に個別に記憶される各波形の再生順序を記憶する順序記憶手段と、波形発生指示を受ける毎に、前記順序記憶手段に記憶される再生順序を順番に読み出し、その再生順序で指定される波形を前記波形記憶手段から読み出して前記人声音の変調波形を発生する波形読み出し手段とを具備することを特徴とする。
【0010】
上記請求項1乃至3のいずれかに従属する請求項5に記載の発明では、前記波形発生手段は人声を表す波形を波形番号に対応して記憶する波形記憶手段と、ノート番号毎の波形番号を記憶する波形番号記憶手段と、波形発生指示を受ける毎に、その波形発生指示に含まれるノート番号に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して前記人声音の変調波形を発生する波形読み出し手段とを具備することを特徴とする。
【0011】
上記請求項1乃至3のいずれかに従属する請求項6に記載の発明では、前記波形発生手段は人声を表す波形を波形番号に対応して記憶する波形記憶手段と、ベロシティ値毎の波形番号を記憶する波形番号記憶手段と、波形発生指示を受ける毎に、その波形発生指示に含まれるベロシティ値に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して前記人声音の変調波形を発生する波形読み出し手段とを具備する。
【0012】
請求項7に記載の発明では、人声を表す波形を個別に複数記憶した波形記憶手段を有し、波形発生指示を受ける毎に、予め設定された再生順序に従って当該波形記憶手段から波形を順番に読み出して人声音の変調波形を発生する第1の波形発生手段と、リセット操作に応じて、予め設定された再生順序の内、先頭の波形から読み出しを再開するように前記第1の波形発生手段に指示するリセット指示手段と、波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段とを具備することを特徴とする。
【0013】
請求項8に記載の発明では、人声を表す波形を波形番号に対応して記憶する波形記憶手段と、ノート番号毎の波形番号を記憶する波形番号記憶手段と、波形発生指示を受ける毎に、その波形発生指示に含まれるノート番号に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して人声音の変調波形を発生する第1の波形発生手段と、リセット操作に応じて、現在選択されている波形番号の波形の先頭アドレスから読み出しを再開するように前記第1の波形発生手段に指示するリセット指示手段と、波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段とを具備することを特徴とする。
【0014】
請求項9に記載の発明では、人声を表す波形を波形番号に対応して記憶する波形記憶手段と、ベロシティ値毎の波形番号を記憶する波形番号記憶手段と、波形発生指示を受ける毎に、その波形発生指示に含まれるベロシティ値に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して人声音の変調波形を発生する第1の波形発生手段と、リセット操作に応じて、現在選択されている波形番号の波形の先頭アドレスから読み出しを再開するように前記第1の波形発生手段に指示するリセット指示手段と、波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段とを具備することを特徴とする。
【0015】
請求項10に記載の発明では、人声を表す波形を個別に複数記憶した波形記憶手段を有し、波形発生指示を受ける毎に、予め設定された再生順序に従って当該波形記憶手段から波形を順番に読み出して人声音の変調波形を発生する第1の波形発生手段と、リセット操作が行われた場合には予め設定された再生順序の内、先頭の波形から読み出しを再開するように前記第1の波形発生手段に指示し、ホールド操作が行われた場合にはリセット操作時の指示を無効にし、予め設定された再生順序に従い、次の波形番号で指定される波形の先頭アドレスから読み出しを再開するように前記第1の波形発生手段に指示する指示手段と、波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段とを具備することを特徴とする。
【0016】
請求項11に記載の発明では、人声を表す波形を波形番号に対応して記憶する波形記憶手段と、ノート番号毎の波形番号を記憶する波形番号記憶手段と、波形発生指示を受ける毎に、その波形発生指示に含まれるノート番号に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して人声音の変調波形を発生する第1の波形発生手段と、リセット操作が行われた場合には、現在選択されている波形番号の波形の先頭アドレスから読み出しを再開するように前記第1の波形発生手段に指示し、ホールド操作が行われた場合には先の波形発生指示に従って読み出し終えた波形読み出しアドレスから読み出しを再開するように前記第1の波形発生手段に指示する指示手段と、波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段とを具備することを特徴とする。
【0017】
請求項12に記載の発明では、人声を表す波形を波形番号に対応して記憶する波形記憶手段と、ベロシティ値毎の波形番号を記憶する波形番号記憶手段と、波形発生指示を受ける毎に、その波形発生指示に含まれるベロシティ値に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して人声音の変調波形を発生する第1の波形発生手段と、リセット操作が行われた場合には、現在選択されている波形番号の波形の先頭アドレスから読み出しを再開するように前記第1の波形発生手段に指示し、ホールド操作が行われた場合には先の波形発生指示に従って読み出し終えた波形読み出しアドレスから読み出しを再開するように前記第1の波形発生手段に指示する指示手段と、波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段とを具備することを特徴とする。
【0018】
請求項13に記載の発明では、与えられた演奏情報が指定する音高を所定のキースケーリング特性に従って音高変換し、それに応じて当初と異なるフォルマント成分を有する人声音の変調波形を発生する第1の波形発生手段と、前記演奏情報に応じた楽器音の被変調波形を発生する第2の波形発生手段と、前記第1の波形発生手段が発生した人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生した楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段とを具備することを特徴とする。
【0019】
請求項14に記載の発明では、入力される演奏情報に対応した人声音の変調波形と楽器音の被変調波形とを発生する波形発生処理と、前記波形発生処理にて発生した人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ処理とコンピュータで実行させることを特徴とする。
【0020】
本発明では、入力される演奏情報に対応した人声音の変調波形と楽器音の被変調波形とを発生すると、その人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するので、従来のように、外部から音声信号を入力させてボコーダ処理する構成とは異なり、ボコーダ演奏を常に同じように再現することが可能になる。また、外部からの入力信号を取り込む構成が不要になるので、外部から音声信号を入力させてボコーダ処理するものに比べて製品コスト低減に寄与し得る効果も得られる。
【0021】
さらに本発明では、例えば請求項2に記載の発明のように、音高指定される範囲を、少なくとも第1および第2の音域に分割しておき、第1の音域内で音高指定する演奏情報に応じた人声音の変調波形を発生させ、第2の音域内で音高指定する演奏情報に応じた楽器音の被変調波形を発生させるようにすると、第1の音域内で音高指定するタイミングを変化させれば、人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調するタイミングが変化するから、ボコーダ演奏音を多様な楽音発生形態で発生させることが可能になる。
【0022】
【発明の実施の形態】
以下、本発明の実施の形態による楽音発生装置を搭載した電子楽器を実施例とし、これについて図面を参照して説明する。
【0023】
A.実施例の構成
(1)全体構成
図1は、本発明による電子楽器の全体構成を示すブロック図である。この図において、1は押離鍵操作(演奏操作)に応じたキーオン/キーオフイベントおよびノート番号、ベロシティ等からなる演奏情報を発生する鍵盤である。2はユーザによって踏まれてオン操作された状態で波形リセット禁止を指示するホールド信号を発生するホールドフットスイッチである。3はユーザによって踏まれてオン操作された状態で波形リセットを指示する波形リセット信号を発生するリセットフットスイッチである。
【0024】
4は楽器パネルに配設される各種スイッチから構成され、操作されたスイッチに対応したスイッチイベントを発生するパネルスイッチである。パネルスイッチ4には、楽音発生形態を指定する設定モードスイッチや、この設定モードスイッチと共に併用される数値入力用のテンキーなど各種操作スイッチが配設されている。5はスイッチスキャナであり、上述した鍵盤1〜パネルスイッチ4を走査してオンオフ状態を取得し、これにて検出されるスイッチイベントもしくは鍵盤1が発生する演奏情報をCPU9に送出する。
【0025】
6はプログラムエリアおよびデータエリアを備えるROMである。ROM6のプログラムエリアにはCPU9が実行する各種制御プログラムが記憶される。各種制御プログラムとは、後述するメインルーチンを構成する各種処理プログラムを含む。ROM6のデータエリアには、音高変換用のキースケーリングテーブルKST等の各種パラメータテーブルが格納される。キースケーリングテーブルKSTは、鍵盤1の押鍵に応じて発生するキーオンイベントに含まれるノート番号を、音高を表す波形ピッチ(セント値)に変換するテーブルである。
【0026】
図2にキースケーリングテーブルKSTの一例を図示する。この図に示すキースケーリングテーブルKSTは、キースケーリング値「1.0」、「−1.0」および「0.0」にて選択される3種のキースケーリング特性を備える。キースケーリング値「1.0」ではノート番号の増加に応じてリニアにピッチ上昇するキースケーリング特性が選択される。キースケーリング値「−1.0」ではキースケーリング「1.0」とは逆の音高変化をもたらすキースケーリング特性、キースケーリング値「0.0」では音高変化無しとなるキースケーリング特性がそれぞれ選択される。
【0027】
7は各種レジスタ・フラグデータを一時記憶するRAMである。RAM7の主要レジスタの構成については追って詳述する。8は楽器パネルに配設される表示部であり、後述のCPU9から供給される表示制御信号に応じて楽器各部の動作状態やパラメータ設定状態などを表示する。CPU9はスイッチスキャナ5により取り込まれたイベントに応じて、後述するスイッチ処理、鍵盤処理およびMIDI処理を実行して音源12およびDSP15に楽音形成を指示する。本発明の要旨に係わるCPU9の処理動作については追って詳述する。10はCPU9の制御の下に、外部MIDI機器とMIDIデータ(MIDIメッセージ)11をシリアル形式で入出力するMIDIインタフェースである。
【0028】
本実施例では、システム・エクスクルーシブ・メッセージを用いて外部より転送される波形データをMIDIインタフェース10を介して取り込む。波形データ転送用のシステム・エクスクルーシブ・メッセージとは、図3に図示するように、システム・エクスクルーシブの開始を表すステータスF0、メーカID(MAKERID)、デバイスID(DEVICEID)、波形データサイズ(SIZE)、ループアドレス(LOOPPOINT)、その他パラメータ(OTHER)、波形データ(WAVEDATA)、チェックサム(CHECKSUM)およびシステム・エクスクルーシブの終了を表すステータスF7とから形成される可変長データである。
【0029】
12は周知の波形メモリ読み出し方式にて構成される音源である。音源12は、CPU9から供給される波形リセットモード値(後述する)に応じて波形発生形態を変更するようになっており、その構成については追って説明する。13は各種音色の波形データを記憶する波形ROMである。波形ROM13は、図4に示すように、アドレスデータエリアADEおよび波形データエリアWDEを備える。アドレスデータエリアADEには、波形種別を指定する波形番号毎の読み出し開始アドレスStartAddress、読み出し終了アドレスEndAddressおよび繰り返し読み出しする際のループ再生開始アドレスLoopAddressが格納される。波形データエリアWDEには、上記アドレスデータエリアADEに記憶される波形番号の読み出し開始アドレスStartAddressおよび読み出し終了アドレスEndAddressで指定される波形データが記憶される。
【0030】
14は上記波形ROM13と同様にアドレスデータエリアADEおよび波形データエリアWDEを備える波形RAMである。波形RAM14では、前述したシステム・エクスクルーシブ・メッセージを用いてCPU9がMIDIインタフェース10を介して取り込んだ波形データを、音源12の制御の下に格納するようになっている。本実施例では、人声をサンプリングした波形データを波形RAM14に記憶する。
【0031】
15はボコーダ処理を行うDSPである。DSP15では、音源12から人声の変調波形(モジュレータパート出力)と鍵盤音の被変調波形(キャリアパート出力)とが入力されると、鍵盤音の被変調波形を人声のフォルマント成分に応じて変調し、あたかも人の声のような鍵盤音を発生する。DSP15の構成については後述する。16は音源12が出力する楽音波形をアナログ形式の波形信号に変換して出力するD/A変換器である。17はD/A変換器16より入力される波形信号から不要ノイズを除去する等のフィルタリングを施した後、これを増幅してスピーカ18から発音させるサウンドシステムである。
【0032】
(2)RAM7の構成
次に、図5を参照してRAM7に設けられる主要レジスタの構成について説明する。図5において、レジスタWaveSeqOrder[0]〜[15]は最大16ステップまでの波形読み出し順序を指定する一次配列レジスタであり、各ステップ(配列要素)には読み出す波形の種別を指定する波形番号が格納される。波形番号「−1」(OFF値)がセットされるステップで波形読み出しの進行が停止する。このレジスタWaveSeqOrder[0]〜[15]で指定される波形読み出し順序は、後述する波形選択モード値が「0」(シーケンシャルモード下)で参照される。
【0033】
レジスタKeyMap[0]〜[127]は、読み出す波形の種別を表す波形番号をMIDIノートナンバ「0」〜「127」毎に格納する。MIDI入力されるノートオンイベントあるいは鍵盤1の押鍵に応じて発生するキーオンイベントに含まれるノート番号に応じて、これらレジスタKeyMap[0]〜[127]から該当する波形番号が読み出される。これらレジスタKeyMap[0]〜[127]に格納される波形番号は、後述する波形選択モード値「1」(キーマッピングモード下)で読み出される。
【0034】
レジスタVelMap[0]〜[127]は、読み出す波形の種別を表す波形番号をベロシティ値「0」〜「127」毎に格納する。MIDI入力されるノートオンイベントあるいは鍵盤1の押鍵に応じて発生するキーオンイベントに含まれるベロシティ値に応じて、これらレジスタVelMap[0]〜[127]から該当する波形番号が読み出される。これらレジスタVelMap[0]〜[127]に格納される波形番号は、後述する波形選択モード値「2」(ベロシティマッピングモード下)で読み出される。
【0035】
レジスタWaveSelectModeには、波形選択モード値が格納される。波形選択モード値は設定モードスイッチの操作に応じて設定される。波形選択モード値は「0」、「1」および「2」のいずれかに設定される。
波形選択モード値が「0」(シーケンシャルモード下)の場合、上述したレジスタWaveSeqOrder[0]〜[15]に格納される波形番号の波形を順番に読み出す。
波形選択モード値が「1」(キーマッピングモード下)の場合、MIDI入力されるノートオンイベント(あるいはキーオンイベント)に含まれるノート番号に応じて、上述のレジスタKeyMap[0]〜[127]にて指定される波形番号の波形を読み出す。
波形選択モード値が「2」(ベロシティモード下)の場合、MIDI入力されるノートオンイベント(あるいはキーオンイベント)に含まれるベロシティ値に応じて、上述のレジスタVelMap[0]〜[127]にて指定される波形番号の波形を読み出す。
【0036】
レジスタWaveRestModeには、波形リセットの仕方を指定する波形リセットモード値が格納される。波形リセットモード値は設定モードスイッチの操作に応じて「0」、「1」、「2」および「3」の何れかに設定される。波形リセットモード値は、上述したシーケンシャルモードおよびキーマッピングモード(あるいはベロシティモード)のモード別に定義される。以下、モード別に定義される波形リセットモード値の内容を説明する。
【0037】
<シーケンシャルモード下>
波形リセットモード値「0」:ノートオンイベントに応じて次の波形番号で指定される波形の先頭アドレスから読み出すように波形リセットする。
【0038】
波形リセットモード値「1」:明示的なリセット操作が無い限り、ノートオンイベントに応じて次の波形番号で指定される波形の先頭アドレスから読み出すように波形リセットする。明示的なリセット操作とは、リセットフットスイッチ3をオン操作した場合や、波形リセット時間(後述する)が経過するまで新たなノートオンイベントが無い場合を指す。明示的なリセット操作があった場合には先頭波形の先頭アドレスから読み出すように波形リセットする。なお、明示的なリセット操作は、ホールドフットスイッチ2がオン操作され、ホールド信号が発生するホールド状態にあると無効になり、先頭波形の選択が禁止される。
【0039】
波形リセットモード値「2」:後述のスプリットポイントで鍵盤1を上側鍵域および下側鍵域に鍵域分割する動作を有効にし、下側鍵域の演奏操作に応じて変調波形(後述する)を発生させ、その際の波形リセットの仕方は波形リセットモード値「1」と同様である。
【0040】
波形リセットモード値「3」:音源12が備える複数パートの演奏を有効にし、モジュレータパートで変調波形を発生させ、その際の波形リセットの仕方は波形リセットモード値「1」と同様である。
【0041】
<キーマッピングモード(あるいはベロシティモード)下>
波形リセットモード値「0」:ノートオンイベントに応じて、現在選択されている波形の先頭アドレスから読み出すように波形リセットする。
【0042】
波形リセットモード値「1」:読み出す変調波形が替わる場合や、読み出す変調波形が替わらなくとも明示的なリセット操作が有る場合には現ノートオンイベントに応じて選択される変調波形の先頭アドレスから読み出すように波形リセットし、読み出す変調波形が替わらない場合にホールド状態や明示的なリセット操作が行われない状態であると、前ノートオンイベントの発音で最後に読み出した波形読み出しアドレスから再び読み出すようにする。
【0043】
波形リセットモード値「2」:後述のスプリットポイントで鍵盤1を上側鍵域および下側鍵域に鍵域分割する動作を有効にし、下側鍵域の演奏操作に応じて変調波形(後述する)を発生させ、その際の波形リセットの仕方は波形リセットモード値「1」と同様である。
【0044】
波形リセットモード値「3」:音源12が備える複数パートの演奏を有効にし、モジュレータパートで変調波形を発生させ、その際の波形リセットの仕方は波形リセットモード値「1」と同様である。
【0045】
レジスタWaveResetTimeには、全鍵離鍵から波形リセットを開始するまでの波形リセット時間が格納される。波形リセット時間は設定モードスイッチの操作に応じて設定される。レジスタSplitPointには、鍵盤1を上側鍵域および下側鍵域に鍵域分割する鍵の鍵番号がスプリットポイントとして格納される。
なお、上述した波形リセットモード値「2」の場合に鍵域分割が有効になり、下側鍵域の演奏操作に応じて変調波形が発生し、スプリットポイントを含む上側鍵域の演奏操作に応じて被変調波形が発生する。
【0046】
レジスタModulatorPartには、音源12が備える複数パートの内、ボコーダ処理を行うDSP15のモジュレータ入力(後述する)に割り当てられたパートを表すモジュレータパート番号が格納される。モジュレータパート番号は設定モードスイッチの操作に応じて設定される。
レジスタCarrierPartには、音源12が備える複数パートの内、ボコーダ処理を行うDSP15のキャリア入力(後述する)に割り当てられたパートを表すキャリアパート番号が格納される。キャリアパート番号は設定モードスイッチの操作に応じて設定される。
レジスタKeyScalingには、キースケーリング値が格納される。このキースケーリング値によりROM6に記憶されるキースケーリングテーブルKSTのキースケーリング特性が選択される。キースケーリング値は設定モードスイッチの操作に応じて設定される。
【0047】
レジスタWaveNumには現在選択されている変調波形(後述する)の波形番号が一時記憶される。レジスタNewWaveNumには新たに選択される変調波形の番号が一時記憶される。レジスタWaveAddressには、レジスタWaveNumに格納される波形番号により指定される波形データの読み出しアドレスが一時記憶される。レジスタWaveIdxには、上記レジスタWaveSeqOrder[0]〜[15]のステップ(配列要素)を指定するインデックス値が一時記憶される。
【0048】
レジスタResetCntは、一定周期毎に割込み実行される後述のタイマ処理によって波形リセット時間(レジスタWaveResetTime)を計時するリセットカウンタである。レジスタNoteCntは、キャリアパートにおけるノートオンイベント数(あるいは押鍵数)を計数するカウンタである。リセットフラグResetはリセットフットスイッチ3が波形リセット信号を発生した場合あるいは全鍵離鍵から波形リセット時間が経過するまで新たなノートオンイベントが無い場合に「1」、それ以外は「0」となるフラグである。ホールドフラグHoldはホールドフットスイッチ2が波形リセット禁止を指示するホールド信号を発生した場合に「1」、それ以外は「0」となるフラグである。
【0049】
(3)音源12の構成
次に、図6および図7を参照して音源12の構成について説明する。前述したように、音源12はCPU9から供給される波形リセットモード値に応じて波形発生形態を変更する。具体的には、波形リセットモード値が「0」、「1」および「2」であると、図6に示す第1の構成によって楽音波形を発生する。波形リセットモード値が「3」であれば、図7に示す第2の構成によって楽音波形を発生する。以下、第1および第2の構成を説明する。
【0050】
▲1▼音源12の第1の構成
図6において、12a−1〜12a−nは発音チャンネル毎に設けられる波形発生器であり、それぞれCPU9から供給されるパラメータに従って波形ROM13(あるいは波形RAM14)から波形データを読み出して波形発生する。波形リセットモード値が「0」、「1」および「2」の場合、波形発生器12a−1がモジュレータパートに割り当てられ、それ以外の波形発生器12a−2〜12a−nがキャリアパートに割り当てられる。12bはキャリアパートに割り当てられた波形発生器12a−2〜12a−nの各出力を加算して出力する加算器である。
モジュレータパートに割り当てられた波形発生器12a−1の出力は変調波形としてDSP15のモジュレータ入力に供給される。一方、加算器12bの出力は被変調波形としてDSP15のキャリア入力に供給される。第1の構成による音源12では、後述するように、DSP15の出力をそのまま楽音波形として次段のD/A変換器16へ出力する。
【0051】
▲2▼音源12の第2の構成
次に、図7を参照して音源12の第2の構成を説明する。波形リセットモード値が「3」の場合、音源12はMIDIチャンネルに対応したパートP1〜P16を具備する。これらパートP1〜P16のいずれかがモジュレータパートとキャリアパートとに設定される。モジュレータパートは前述のレジスタModulatorPartに格納されるモジュレータパート番号で指定される。同様に、キャリアパートは前述のレジスタCarrierPartに格納されるキャリアパート番号で指定される。図7に図示する一例の場合、パートP1がモジュレータパートに、パートP2がキャリアパートに設定されている。
【0052】
各パートP1〜P16には、図示されていないアサイナによって動的に波形発生12aおよび加算器12bが割り当てられる。図7に示す一例の場合、モジュレータパートとなるパートP1には波形発生器12a−P1が割り当てられ、キャリアパートとなるパートP2には複数の波形発生器12a−P2およびこれら波形発生器12a−P2の各出力を加算出力する加算器12b−P2が割り当てられる。
12cは各パートP1〜P16の出力経路を切替えるスイッチである。このスイッチ12cは、上記レジスタModulatorPart、CarrierPartに各々格納されるモジュレータパート番号およびキャリアパート番号に基づきCPU9が発生するスイッチング制御信号に従い、モジュレータパートからの出力される変調波形を端子MODULATORに、キャリアパートから出力される被変調波形を端子CARRIERに、それ以外のパートの波形出力を次段のミキサ12dに供給するよう経路切替えする。
【0053】
図7の図示する一例では、パートP1が発生する変調波形を端子MODULATORに、パートP2が発生する被変調波形を端子CARRIERに、パートP3〜P16の各波形出力をミキサ12dに供給するようスイッチングする。キミサ12dは、スイッチ12cを介して供給される波形出力と、DSP15の出力とを混合して得た楽音波形を次段のD/A変換器16へ出力する。
【0054】
(4)DSP15の構成
次に、図8を参照してDSP15の構成を説明する。DSP15は分析部150、合成部151および加算器152から構成される。分析部150は、バンドパスフィルタ(以下、BPFと記す)150a−1〜150a−nとエンベロープ検出器(以下、ENVと記す)150b−1〜150b−nとを備える。BPF150a−1〜150a−nは、それぞれ人声のフォルマント周波数に対応させた通過周波数帯域を有し、音源12から供給される変調波形(モジュレータパート出力)のフォルマント成分を抽出する。ENV150b−1〜150b−nは、整流器を含む絶対値回路およびLPFを含む平滑回路から構成され、上記BPF150a−1〜150a−nにて抽出されるフォルマント成分のエンベロープレベルを検出する。
【0055】
合成部151は、BPF151a−1〜151a−nと乗算器151b−1〜151b−nとを備える。BPF151a−1〜151a−nは、分析部150BPF150a−1〜150a−nと同一の通過周波数帯域を有し、音源12から供給される被変調波形(キャリアパート出力)をn個の通過周波数帯域に分割濾波する。乗算器151b−1〜151b−nは、ENV150b−1〜150b−nによって検出された各フォルマント成分毎のエンベロープレベルを、BPF151a−1〜151a−nの各出力に乗算する。加算器152は乗算器151b−1〜151b−nの各出力を加算合成して音源12側へ出力する。
【0056】
波形リセットモード値が「0」、「1」および「2」の場合、前述したように、音源12は図6に図示した第1の構成となるから、加算器152の出力はそのまま音源12を通過して次段のD/A変換器16に入力される。一方、波形リセットモード値が「3」であると、音源12は図7に図示した第2の構成となるから、加算器152の出力は音源12のキミサ12dに入力される。
このような構成によれば、音源12から人声音の変調波形(モジュレータパート出力)と楽器音の被変調波形(キャリアパート出力)とが入力されると、被変調波形が変調波形のフォルマント成分に応じて変調される結果、あたかも人の声のような楽器音が生成されるようになっている。
【0057】
B.実施例の動作
次に、図9〜図19を参照して上記構成による実施例の動作を説明する。以下では、最初にメインルーチンの動作を説明し、続いてメインルーチンを構成する各種処理の動作について述べる。
【0058】
(1)メインルーチンの動作
実施例に電源が投入されると、CPU9はROM6から所定の制御プログラムを読み出して自身にロードし、図9に示すメインルーチンを実行する。メインルーチンが実行されると、CPU9は先ずステップSA1に処理を進め、RAM7に格納される各種レジスタやフラグ類をリセットしたり初期値をセットする他、音源12およびDSP15にイニシャライズを指示する初期化処理を行う。そして、イニシャライズ完了後、ステップSA2に進み、パネルスイッチ4に設けられる設定モードスイッチの操作に応じてモード設定したり、ホールドフットスイッチ2のオンオフ状態に対応したホールドフラグHoldおよびリセットフットスイッチ3のオンオフ状態に対応したリセットフラグResetをセットするスイッチ処理を実行する。
【0059】
続いて、ステップSA3に進み、鍵盤1の押離鍵操作に応じた楽音を発生するよう音源12を制御する鍵盤処理を実行する。そして、ステップSA4では、システム・エクスクルーシブ・メッセージを用いて外部より転送される波形データをMIDIインタフェース10を介して取り込んだり、ノートオン/ノートオフイベント等の通常のMIDIメッセージを受信して楽音を発生するMIDI処理を実行する。この後、ステップSA5に進み、例えば上記ステップSA2のスイッチ処理にて設定されたモードの内容を表示部8に表示する等の、その他の処理を実行する。以後、電源がオフされるまで上述のステップSA2〜SA5を繰り返し実行する。
【0060】
(2)タイマ処理の動作
次に、図10を参照してタイマ処理の動作を説明する。CPU9は、上述したメインルーチンを実行している過程で一定周期毎にタイマ処理を割込み実行する。割込み実行タイミングになると、タイマ処理を起動して図10のステップSB1に処理を進め、レジスタResetCntの値が「0」、つまり波形リセット時間を計時する状態であるか否かを判断する。レジスタResetCntの値が「0」であれば、波形リセット時間を計時する状態でないので、判断結果は「YES」になり、何も行わずに本処理を完了させる。
一方、レジスタResetCntの値が「0」でなければ、波形リセット時間を計時する状態なので、判断結果が「NO」になり、次のステップSB2に進む。
【0061】
ステップSB2では、レジスタResetCntの値をインクリメントして歩進させ、続くステップSB3では歩進されたレジスタResetCntの値が、レジスタWaveResetTimeに格納される波形リセット時間に達したか否かを判断する。波形リセット時間に達していないと、判断結果は「NO」となり、本処理を完了させる。
これに対し、波形リセット時間に達すると、判断結果が「YES」になり、ステップSB4に進み、リセットフラグResetに「1」をセットして波形リセットを指示する状態にある旨を表す一方、レジスタResetCntをゼロリセットして本処理を終える。
【0062】
このように、タイマ処理では、一定周期毎に波形リセット時間を計時する状態であるどうかを判断し、その状態にあればレジスタResetCntの値を歩進させて波形リセット時間に達したか否かを判断する。そして、波形リセット時間に達したときには、リセットフラグResetに「1」をセットして波形リセットを指示する状態に設定する。
【0063】
(3)スイッチ処理の動作
次に、図11を参照してスイッチ処理の動作を説明する。前述したメインルーチンのステップSA2(図9参照)を介して本処理が実行されると、CPU9は図11のステップSC1に進み、パネルスイッチ4に配設される設定モードスイッチがオン操作されたかどうかを判断する。以下、設定モードスイッチ以外のスイッチ操作が行われた場合と、設定モードスイッチがオン操作された場合とに分けて動作説明を進める。
【0064】
▲1▼設定モードスイッチ以外のスイッチ操作が行われた場合
この場合、ステップSC1の判断結果が「NO」となり、ステップSC2に進み、リセットフットスイッチ3のオンオフ状態に対応したリセットフラグResetをセットする。次いで、ステップSC3では、ホールドフットスイッチ2のオンオフ状態に対応したホールドフラグHoldをセットする。そして、ステップSC4では、例えばROM6に複数種のキースケーリングテーブルKSTが記憶されている場合に、テーブル選択スイッチの操作に応じて、それらの内から所望のテーブル種を選択する等の、その他のスイッチ処理を実行した後、本処理を完了させる。
【0065】
▲2▼設定モードスイッチがオン操作された場合
この場合、ステップSC1の判断結果が「YES」となり、ステップSC5に進む。ステップSC5では、設定モードスイッチと併用される数値入力用のテンキー「0」〜「9」の押下操作の有無を判断する。以下、数値入力用のテンキー「0」〜「9」が押下された場合の処理を説明する。
【0066】
<テンキー「0」の押下>
テンキー「0」が押下されると、ステップSC6に進む。ステップSC6では、ROM6のデータエリアに記憶されるキースケーリングテーブルKSTのキースケーリング特性を選択するキースケーリング値を、RAM7のレジスタKeyScalingに設定して本処理を完了させる。
【0067】
<テンキー「1」の押下>
テンキー「1」が押下されると、ステップSC7に進む。ステップSC7では、読み出す波形の種別を指定する波形番号を読み出す順序でレジスタWaveSeqOrder[0]〜[15]に設定して本処理を完了させる。
なお、このステップSC7では、最大16ステップまでの読み出し順序を指定できる。波形読み出しを止めるステップには波形番号「−1」(OFF値)を設定する。設定された読み出し順序は、波形選択モード値「0」のシーケンシャルモード下で参照される。
【0068】
<テンキー「2」の押下>
テンキー「2」が押下されると、ステップSC8に進む。ステップSC8では、MIDIノートナンバ「0」〜「127」毎の波形番号をレジスタKeyMap[0]〜[127]に設定して本処理を完了させる。レジスタKeyMap[0]〜[127]に設定された波形番号は、波形選択モード値「1」のキーマッピングモード下で参照される。
【0069】
<テンキー「3」の押下>
テンキー「3」が押下されると、ステップSC9に進む。ステップSC9では、ベロシティ値「0」〜「127」毎の波形番号をレジスタVelMap[0]〜[127]に設定して本処理を完了させる。レジスタVelMap[0]〜[127]に設定された波形番号は、波形選択モード値「2」のベロシティモード下で参照される。
【0070】
<テンキー「4」の押下>
テンキー「4」が押下されると、ステップSC10に進む。ステップSC10では、読み出すべき波形を選択する波形選択モード値(「0」、「1」および「2」)をレジスタWaveSelectModeに設定して本処理を完了させる。
【0071】
<テンキー「5」の押下>
テンキー「5」が押下されると、ステップSC11に進む。ステップSC11では、波形リセットの仕方を指定する波形リセットモード値(「0」、「1」、「2」および「3」)をレジスタWaveRestModeに設定して本処理を完了させる。波形リセットモード値「0」〜「3」の各内容については前述した通りである。
【0072】
<テンキー「6」の押下>
テンキー「6」が押下されると、ステップSC12に進む。ステップSC12では、全鍵離鍵から波形リセットを開始するまでの波形リセット時間をレジスタWaveResetTimeに設定して本処理を完了させる。
【0073】
<テンキー「7」の押下>
テンキー「7」が押下されると、ステップSC13に進む。ステップSC13では、鍵盤1を上側鍵域および下側鍵域に鍵域分割する鍵の鍵番号をレジスタSplitPointに設定して本処理を完了させる。
【0074】
<テンキー「8」の押下>
テンキー「8」が押下されると、ステップSC14に進む。ステップSC14では、音源12が備える複数パートの内、DSP15のモジュレータ入力に割り当てるパートを表すモジュレータパート番号をレジスタModulatorPartに設定して本処理を完了させる。
【0075】
<テンキー「9」の押下>
テンキー「9」が押下されると、ステップSC15に進む。ステップSC15では、音源12が備える複数パートの内、DSP15のキャリア入力に割り当てるパートを表すキャリアパート番号をレジスタCarrierPartに設定して本処理を完了させる。
【0076】
(4)鍵盤処理の動作
次に、図12を参照して鍵盤処理の動作を説明する。前述したメインルーチンのステップSA3(図9参照)を介して本処理が実行されると、CPU9は図12のステップSD1に処理を進め、鍵盤1の押離鍵操作に応じて発生するキーオン/キーオフイベントの有無を判断する。鍵操作されず、キーオン/キーオフイベントがスイッチスキャナ5にて検出されなければ、判断結果は「NO」となり、一旦本処理を完了させる。一方、キーオン/キーオフイベントが検出されると、上記ステップSD1の判断結果が「YES」になり、ステップSD2に進み、ノートオンオフ処理を実行する。
【0077】
(5)ノートオンオフ処理の動作
次に、図13を参照してノートオンオフ処理の動作を説明する。上記鍵盤処理のステップSD2(図12参照)もしくは後述するMIDI処理のステップSM5(図19参照)を介して本処理が実行されると、CPU9は図13のステップSE1に進み、パートチェック処理を行う。
パートチェック処理では、後述するように、設定された波形リセットモード値に従い、モジュレータパートでの変調波形の発生の有無およびキャリアパートでの被変調波形の発生の有無を表すフラグModNote、CarNoteをセットし、そのフラグ設定に基づきキャリアパートが被変調波形を発生させる場合には、入力されるノートオンイベントに応じてオンイベント数を計数したり、入力されるノートオフイベントに応じてオンイベント数をデクリメントし、オールノートオフになった時に前述のタイマ処理に波形リセット時間の計時開始を指示する。
【0078】
こうしたパートチェック処理が完了すると、CPU9はステップSE2に進み、入力されたイベントがノートオンイベントであるか否かを判断する。ノートオフイベントであると、判断結果は「NO」になり、ステップSE13に進み、ノートオフイベントに含まれるノート番号に対応した音高の楽音を消音するよう音源12に指示する消音処理を実行した後、後述のステップSE8に進む。
【0079】
一方、入力されたイベントがノートオンイベントであれば、上記ステップSE2の判断結果が「YES」となり、ステップSE3に進む。ステップSE3〜SE7では、ユーザ設定にてレジスタWaveSelectModeに格納される波形選択モード値に応じた波形読み出し形態を指示する。
以下、波形選択モード値「0」〜「2」によって選択される「シーケンシャルモード」、「キーマッピングモード」および「ベロシティモード」毎に指示される波形読み出し形態を説明する。
【0080】
▲1▼シーケンシャルモード(波形選択モード値「0」)の場合
シーケンシャルモードに設定されている場合には、ステップSE4に進み、波形リセットモード値「0」〜「3」に応じた波形読み出し形態を設定するシーケンシャルモード処理を実行する。このシーケンシャルモード処理の具体的な処理動作については追って詳述するが、その内容を要約すると、以下の通りである。
【0081】
波形リセットモード値「0」の場合、ノートオンイベントに応じて次の波形番号で指定される波形の先頭アドレスから読み出すように波形リセットする。
波形リセットモード値「1」の場合、ホールド状態であれば、ノートオンイベントに応じて次の波形番号で指定される波形の先頭アドレスから読み出すように波形リセットし、一方、明示的なリセット操作(リセットフットスイッチ3をオン操作した場合や、オールノートオフから波形リセット時間が経過するまで新たなノートオンイベントが無い場合を指す)があると、先頭波形の先頭アドレスから読み出すように波形リセットする。
波形リセットモード値「2」の場合、下側鍵域の演奏操作に応じて変調波形を発生させるようにし、その際の波形リセットの仕方は波形リセットモード値「1」と同様になる。
形リセットモード値「3」の場合、音源12が備える複数パートの内、モジュレータパートで変調波形を発生させるようにし、その際の波形リセットの仕方は波形リセットモード値「1」と同様になる。
【0082】
▲2▼キーマッピングモード(波形選択モード値「1」)の場合
キーマッピングモードに設定されている場合には、ステップSE5に進む。ステップSE5では、ノートオンイベントに含まれるノート番号に応じて、レジスタKeyMap[0]〜[127]から該当する波形番号を読み出してレジスタNewWaveNumにストアする。そして、ステップSE6に進み、波形リセットモード値「0」〜「3」に応じた波形読み出し形態を設定するマップモード処理を実行する。このマップモード処理の具体的な処理動作については追って詳述するが、その内容を要約すると、以下の通りである。
【0083】
波形リセットモード値「0」の場合には、ノートオンイベントに応じて、現在選択されている波形の先頭アドレスから読み出すように波形リセットする。
波形リセットモード値「1」の場合には、読み出す変調波形が替わったり、読み出す変調波形が替わらずとも明示的なリセット操作があると、現ノートオンイベントに応じて選択される変調波形の先頭アドレスから読み出すように波形リセットし、読み出す変調波形が替わらなかったり、ホールド状態や明示的なリセット操作が行われない状態ならば、前ノートオンイベントの発音で最後に読み出した波形読み出しアドレスから再び読み出すようにする。
また、波形リセットモード値「2」の場合には、下側鍵域の演奏操作に応じて変調波形を発生させるようにし、その際の波形リセットの仕方は波形リセットモード値「1」と同様になる。
さらに波形リセットモード値「3」の場合には、音源12が備える複数パートの内、モジュレータパートで変調波形を発生させるようにし、その際の波形リセットの仕方は波形リセットモード値「1」と同様になる。
【0084】
▲3▼ベロシティモード(波形選択モード値「2」)の場合
ベロシティモードに設定されている場合には、ステップSE7に進む。ステップSE7では、ノートオンイベントに含まれるベロシティ値に応じて、レジスタVelMap[0]〜[127]から該当する波形番号を読み出してレジスタNewWaveNumにストアする。そして、上記▲2▼キーマッピングモード時と同様に、波形リセットモード値「0」〜「3」に応じた波形読み出し形態を設定するマップモード処理を実行する。
【0085】
以上のようにして、波形選択モード値「0」〜「2」および波形リセットモード値「0」〜「3」に応じた波形読み出し形態を設定し終えると、CPU9はステップSE8〜SE10にてモジュレータパートに関する発音処理を、ステップSE11〜SE12にてキャリアパートに関する発音処理を行う。
すなわち、ステップSE8では、ステップSE1のパートチェック処理によってセットされたフラグModNoteが「1」、つまりノートオンイベントに従ってモジュレータパートから変調波形を発生させる状態であるか否かを判断する。モジュレータパートから変調波形を発生させる状態でなければ、判断結果は「NO」になり、後述のステップSE11に進む。
【0086】
一方、モジュレータパートから変調波形を発生させる状態であると、上記ステップSE8の判断結果が「YES」になり、ステップSE9に進む。ステップSE9では、ROM6に記憶されるキースケーリングテーブルKSTからレジスタKeyScalingに格納されるキースケーリング値に対応したキースケーリング特性を選択し、選択したキースケーリング特性に従ってノートオンイベントに含まれるノート番号を、発生すべき楽音の音高を表す波形ピッチ(セント値)に変換する。
続いて、ステップSE10では、波形選択モード値と波形リセットモード値とに基づきシーケンシャルモード処理(ステップSE4)あるいはマップモード処理(ステップSE6)が設定した波形読み出し形態で変調波形を読み出すよう音源12に指示すると共に、その変調波形をステップSE9で得た波形ピッチの音高で発音するよう音源12に指示するモジュレータパート発音処理を実行する。
【0087】
次いで、ステップSE11では、ステップSE1のパートチェック処理によってセットされたフラグCarNoteが「1」、つまりノートオンイベントに従ってキャリアパートから被変調波形を発生させる状態であるか否かを判断する。キャリアパートから被変調波形を発生させる状態でなければ、判断結果は「NO」となり、本処理を完了させる。
一方、キャリアパートから被変調波形を発生させる状態であると、判断結果が「YES」になり、ステップSE12に進む。ステップSE12では、波形選択モード値と波形リセットモード値とに基づきシーケンシャルモード処理(ステップSE4)あるいはマップモード処理(ステップSE6)が設定した波形読み出し形態で被変調波形を読み出すよう音源12に指示すると共に、その被変調波形をノートオンイベントに含まれるノート番号に対応した音高で発音するよう音源12に指示するキャリアパート発音処理を実行してから本処理を終える。
【0088】
(6)パートチェック処理の動作
次に、図14を参照してパートチェック処理の動作を説明する。ノートオンオフ処理のステップSE1を介して本処理が実行されると、CPU9は図14のステップSF1に進み、レジスタWaveResetModeに格納される波形リセットモード値を判定する。そして、ステップSF2〜SF10では、判定した波形リセットモード値に応じてフラグModNoteおよびフラグCarNoteをセットする。
ここで、フラグModNoteはモジュレータパートが変調波形を発生するか否かを表すフラグであり、その値が「0」の場合に発生しない旨を表し、「1」の場合に発生する旨を表す。また、フラグCarNoteはキャリアパートが被変調波形を発生するか否かを表すフラグであり、その値が「0」の場合に発生しない旨を表し、「1」の場合に発生する旨を表す。以下、波形リセットモード値が「0」又は「1」の場合、「2」の場合および「3」の場合に分けてステップSF2〜SF10にて行われるフラグセット動作を説明する。
【0089】
▲1▼波形リセットモード値が「0」又は「1」の場合
波形リセットモード値が「0」又は「1」であると、ステップSF2に進み、フラグModNoteに「1」をセットしてモジュレータパートが変調波形を発生する旨を表すと共に、フラグCarNoteに「1」をセットしてキャリアパートが被変調波形を発生する旨を表す。
【0090】
▲2▼波形リセットモード値が「2」の場合
波形リセットモード値が「2」であると、ステップSF3に進み、入力イベント(鍵操作に応じたオンオフイベントもしくはMIDI入力イベント)に含まれるノート番号がレジスタSplitPointに格納されるスプリットポイントより小さいか、つまり下側鍵域に対応する入力イベントであるかどうかを判断する。下側鍵域に対応する入力イベントであると、判断結果は「YES」になり、ステップSF4に進み、フラグModNoteに「1」をセットしてモジュレータパートが変調波形を発生する旨を表すと共に、フラグCarNoteに「0」をセットしてキャリアパートが被変調波形を発生しない旨を表す。
一方、上側鍵域に対応する入力イベントであると、上記ステップSF3の判断結果が「NO」になり、ステップSF5に進み、フラグModNoteに「0」をセットしてモジュレータパートが変調波形を発生しない旨を表すと共に、フラグCarNoteに「1」をセットしてキャリアパートが被変調波形を発生する旨を表す。
【0091】
▲3▼波形リセットモード値が「3」の場合
波形リセットモード値が「3」であると、ステップSF6に進み、入力イベントがアサインされるチャンネル番号と、レジスタModulatorPartに格納されるモジュレータパート番号とが一致するかを判断する。一致すると、判断結果は「YES」になり、ステップSF7に進み、フラグModNoteに「1」をセットしてモジュレータパートが変調波形を発生する旨を表すと共に、フラグCarNoteに「0」をセットしてキャリアパートが被変調波形を発生しない旨を表す。
【0092】
一方、一致しなければ、上記ステップSF6の判断結果が「NO」となり、ステップSF8に進む。ステップSF8では、入力イベントをアサインしたチャンネルがキャリアパートであるかどうかを判断する。キャリアパートであったならば、判断結果は「YES」になり、ステップSF9に進み、フラグModNoteに「0」をセットしてモジュレータパートが変調波形を発生しない旨を表すと共に、フラグCarNoteに「1」をセットしてキャリアパートが被変調波形を発生する旨を表す。
これに対し、入力イベントをアサインしたチャンネルがモジュレータパートおよびキャリアパート以外のその他のパートであると、上記ステップSF8の判断結果が「NO」になり、ステップSF10に進み、フラグModNote、CarNote共に「0」をセットする。
【0093】
以上のようにして、波形リセットモード値に応じてフラグModNoteおよびフラグCarNoteがセットされると、CPU9はステップSF11に処理を進め、フラグCarNoteが「1」であるか否かを判断する。フラグCarNoteが「0」に設定され、キャリアパートが被変調波形を発生しない状態であると、判断結果は「NO」になり、本処理を完了させる。
一方、フラグCarNoteが「1」に設定され、キャリアパートが被変調波形を発生する状態であれば、判断結果は「YES」となり、次のステップSF12に進む。そして、ステップSF12では、入力されたイベントがノートオンイベントであるか否かを判断する。
【0094】
入力されたノートオンイベントであると、判断結果は「YES」になり、ステップSF13に進み、キャリアパートにおける押鍵数を計数するカウンタNoteCntをインクリメントして歩進させると共に、波形リセット時間を計時するカウンタResetCntの値をゼロリセットして本処理を完了させる。
一方、入力されたイベントがノートオフイベントであった場合には、上記ステップSF12の判断結果が「NO」になり、ステップSF14に進む。ステップSF14では、カウンタNoteCntをデクリメントし、続くステップSF15ではデクリメントされたカウンタNoteCntの値が「0」、つまり全鍵離鍵状態であるか否かを判断する。
【0095】
全鍵離鍵状態でなければ、判断結果は「NO」となり、本処理を完了させるが、全鍵離鍵状態になると、判断結果が「YES」となり、ステップSF16に進み、カウンタResetCntに「1」をセットして本処理を終える。なお、全鍵離鍵状態によりカウンタResetCntに「1」がセットされると、前述したタイマ処理(図10参照)が波形リセット時間を計時し始める。
【0096】
このように、パートチェック処理では、ユーザ設定される波形リセットモード値に応じて、モジュレータパートから変調波形を発生させるか否かや、キャリアパートから被変調波形を発生させるか否かを表すフラグModNote、CarNoteをセットし、キャリアパートから被変調波形を発生させる状態であると、ノートオンイベント(もしくはキーオンイベント)に応じてカウンタNoteCntを歩進させ、一方、ノートオフイベント(もしくはキーオフイベント)に応じてカウンタNoteCntをデクリメントし、これにてオールノートオフ(全鍵離鍵)になれば、前述したタイマ処理に波形リセット時間の計時開始を指示するようになっている。
【0097】
(7)シーケンシャルモード処理の動作
次に、図15を参照してシーケンシャルモード処理の動作を説明する。ノートオンオフ処理のステップSE4(図13参照)を介して本処理が実行されると、CPU9は図15のステップSG1に進み、レジスタWaveResetModeに格納される波形リセットモード値を判定する。次いで、ステップSG2〜SG5では、判定した波形リセットモード値に応じた波形読み出し属性を設定する。以下、波形読み出し属性を設定する動作について波形リセットモード値「0」〜「3」別に説明する。
【0098】
▲1▼波形リセットモード値「0」の場合
この場合、ステップSG2に進み、レジスタWaveIdxに格納されるインデックス値を歩進させて更新する一方、更新されたインデックス値に応じて、レジスタWaveSeqOrder[WaveIdx]から波形番号を読み出してレジスタWaveNumにストアする。また、このステップSG2では、レジスタWaveNumに格納された波形番号の波形データを先頭から読み出すべくレジスタWaveAddressに「0」をストアして本処理を完了させる。
このように、波形リセットモード値「0」では、ノートオンイベントに応じて次の波形番号で指定される波形の先頭アドレスから読み出すように波形リセットするようになっている。
【0099】
▲2▼波形リセットモード値「1」の場合
この場合、ステップSG3を介してシーケンシャルモード波形設定処理を実行して図16のステップSH1に処理を進める。ステップSH1では、ホールドフラグHoldが「0」、すなわちホールドフットスイッチ2がオン操作されていない状態であるかどうかを判断する。ホールドフットスイッチ2のオン操作によりホールド状態(ホールドフラグHoldが「1」の状態)下にあると、判断結果は「NO」になり、ステップSH4に進み、レジスタWaveIdxに格納されるインデックス値を歩進させて更新する。
【0100】
この後、ステップSH5に進み、更新されたインデックス値に応じて、レジスタWaveSeqOrder[WaveIdx]から波形番号を読み出してレジスタWaveNumにストアすると共に、レジスタWaveNumに格納された波形番号の波形データを先頭から読み出すべくレジスタWaveAddressに「0」をストアして本処理を完了させる。
このように、波形リセットモード値「1」では、ホールド状態に設定されていると、ノートオンイベントに応じて次の波形番号で指定される波形の先頭アドレスから読み出すように波形リセットする。
【0101】
これに対し、ホールドフットスイッチ2がオン操作されていなければ、上記ステップSH1の判断結果は「YES」となり、ステップSH2に進む。ステップSH2では、リセットフラグResetが「1」、すなわちリセットフットスイッチ3をオン操作した状態、あるいはオールノートオフから波形リセット時間が経過するまで新たなノートオンイベントが無い状態であるかどうかを判断する。いずれの状態にも該当しなければ、判断結果は「NO」となり、この場合、上述したホールド状態と同様、ステップSH4〜SH5を実行し、ノートオンイベントに応じて次の波形番号で指定される波形の先頭アドレスから読み出すように波形リセットする。
【0102】
一方、リセットフットスイッチ3をオン操作した状態、あるいはオールノートオフから波形リセット時間が経過するまで新たなノートオンイベントが無い状態であると、ステップSH2の判断結果が「YES」になり、ステップSH3に進み、リセットフラグResetを「0」にセットすると共に、レジスタWaveIdxに格納されるインデックス値をゼロリセットした後、ステップSH5に進み、先頭波形の先頭アドレスから読み出すように読み出し属性を設定する。
このように、波形リセットモード値「1」では、明示的なリセット操作(リセットフットスイッチ3をオン操作した場合や、オールノートオフから波形リセット時間が経過するまで新たなノートオンイベントが無い場合を指す)があると、先頭波形の先頭アドレスから読み出すように波形リセットする。
【0103】
▲3▼波形リセットモード値「2」の場合
この場合、図15のステップSG4に進み、ノートオンイベントに含まれるノート番号がレジスタSplitPointに格納されるスプリットポイントより小さいか、つまり下側鍵域に対応するノートオンイベントであるかどうかを判断する。下側鍵域に対応するノートオンイベントであると、判断結果は「YES」になり、ステップSG3に進み、上述したシーケンシャルモード波形設定処理(図16参照)を実行してから本処理を完了させる。
【0104】
一方、上側鍵域に対応するノートオンイベントであると、上記ステップSG4の判断結果が「NO」になり、上側鍵域での演奏である為、レジスタWaveNumおよびレジスタWaveAddressは変更せずに本処理を終える。
このように、波形リセットモード値「2」では、下側鍵域の演奏操作に応じて変調波形を発生させるようにし、その際の波形リセットの仕方は上記▲2▼項の波形リセットモード値「1」と同様になる。
【0105】
▲4▼波形リセットモード値「3」の場合
この場合、ステップSG5に進み、ノートオンイベントがアサインされたチャンネル番号と、レジスタModulatorPartに格納されるモジュレータパート番号とが一致するかを判断する。一致すると、判断結果は「YES」になり、ステップSG3を介してシーケンシャルモード波形設定処理(図16参照)を実行してから本処理を完了させる。
一方、一致しなければ、上記ステップSG5の判断結果が「NO」となり、モジュレータパート以外での演奏である為、レジスタWaveNumおよびレジスタWaveAddressは変更せずに本処理を終える。
このように、波形リセットモード値「3」では、音源12が備える複数パートの内、モジュレータパートで変調波形を発生させるようにし、その際の波形リセットの仕方は上記▲2▼項の波形リセットモード値「1」と同様になる。
【0106】
以上のように、シーケンシャルモード処理によれば、波形リセットモード値「0」の場合には、ノートオンイベントに応じて次の波形番号で指定される波形の先頭アドレスから読み出すように波形リセットする。
波形リセットモード値「1」の場合には、ホールド状態であると、ノートオンイベントに応じて次の波形番号で指定される波形の先頭アドレスから読み出すように波形リセットし、一方、明示的なリセット操作(リセットフットスイッチ3をオン操作した場合や、オールノートオフから波形リセット時間が経過するまで新たなノートオンイベントが無い場合を指す)があると、先頭波形の先頭アドレスから読み出すように波形リセットする。
また、波形リセットモード値「2」の場合には、下側鍵域の演奏操作に応じて変調波形を発生させるようにし、その際の波形リセットの仕方は波形リセットモード値「1」と同様になる。
さらに波形リセットモード値「3」の場合には、音源12が備える複数パートの内、モジュレータパートで変調波形を発生させるようにし、その際の波形リセットの仕方は波形リセットモード値「1」と同様になる。
【0107】
(8)マップモード処理の動作
次に、図17を参照してマップモード処理の動作を説明する。ノートオンオフ処理のステップSE6(図13参照)を介して本処理が実行されると、CPU9は図17のステップSK1に進み、レジスタWaveResetModeに格納される波形リセットモード値を判定する。次いで、ステップSK2〜SK5では、判定した波形リセットモード値に応じた波形読み出し属性を設定する。以下、波形読み出し属性を設定する動作について波形リセットモード値「0」〜「3」別に説明する。
【0108】
▲1▼波形リセットモード値「0」の場合
この場合、ステップSK2に進み、レジスタNewWaveNumに格納される波形番号をレジスタWaveNumにストアする。レジスタNewWaveNumに格納される波形番号とは、図13に図示したノートオンオフ処理のステップSE5(あるいはステップSE7)においてレジスタKeyMap[ノートナンバ](あるいはレジスタVelMap[ベロシティ値])から読み出され、新たに選択される変調波形を表す番号である。また、ステップSK2では、レジスタWaveNumに格納された波形番号の波形データを先頭から読み出すべくレジスタWaveAddressに「0」をストアして本処理を完了させる。
このように、波形リセットモード値「0」では、ノートオンイベントに応じて、現在選択されている波形の先頭アドレスから読み出すように波形リセットするようになっている。
【0109】
▲2▼波形リセットモード値「1」の場合
この場合、ステップSK3を介してマップモード波形設定処理を実行して図18のステップSL1に処理を進める。ステップSL1では、レジスタNewWaveNumに格納される波形番号とレジスタWaveNumに格納される波形番号とが一致するか否か、つまり読み出し波形が替わるかどうかを判断する。
読み出し波形が替わると、判断結果は「NO」になり、ステップSL2に進み、レジスタNewWaveNumに格納される波形番号をレジスタWaveNumにストアすると共に、レジスタWaveNumに格納された波形番号の波形データを先頭から読み出すべくレジスタWaveAddressに「0」をストアして本処理を完了させる。これにより、読み出し波形が替わる場合には、現ノートオンイベントに応じて選択される変調波形の先頭アドレスから読み出すように波形リセットする。
【0110】
これに対し、現ノートオンイベントに対応して選択される変調波形が前ノートオンイベントに対応して選択された変調波形と替わらない場合には、上記ステップSL1の判断結果が「YES」になり、ステップSL3に進む。ステップSL3では、ホールドフラグHoldが「0」、すなわちホールドフットスイッチ2がオン操作されていない状態であるかどうかを判断する。ホールド状態(ホールドフラグHoldが「1」の状態)にあれば、判断結果は「NO」になり、本処理を完了させる。
したがって、ホールド状態下で読み出し波形が替わらなければ、前ノートオンイベントの発音で最後に読み出した波形読み出しアドレスから再び読み出すようにする。
【0111】
一方、ホールド状態でなければ、上記ステップSL3の判断結果は「YES」となり、ステップSL4に進む。ステップSL4では、リセットフラグResetが「1」、すなわち明示的なリセット操作(リセットフットスイッチ3をオン操作した状態、あるいはオールノートオフから波形リセット時間が経過するまで新たなノートオンイベントが無い状態)が行われたかどうかを判断する。明示的なリセット操作が無ければ、判断結果は「NO」となり、本処理を完了させる。したがって、明示的なリセット操作が行われず、しかも読み出し波形が替わらなければ、前ノートオンイベントの発音で最後に読み出した波形読み出しアドレスから再び読み出すようにする。
【0112】
これに対し、明示的なリセット操作が行われると、上記ステップSL4の判断結果が「YES」になり、ステップSL5に進み、リセットフラグResetを「0」にセットすると共に、レジスタWaveAddressに「0」をストアして本処理を完了させる。したがって、変調波形が替わらない状態で明示的なリセット操作が有ると、現ノートオンイベントに応じて選択される変調波形の先頭アドレスから読み出すように波形リセットする。
【0113】
このように、波形リセットモード値「1」では、読み出す変調波形が替わる場合や、読み出す変調波形が替わらなくとも明示的なリセット操作が有る場合には、現ノートオンイベントに応じて選択される変調波形の先頭アドレスから読み出すように波形リセットする。一方、読み出す変調波形が替わらない場合にホールド状態や明示的なリセット操作が行われない状態であると、前ノートオンイベントの発音で最後に読み出した波形読み出しアドレスから再び読み出すようにする。
【0114】
▲3▼波形リセットモード値「2」の場合
この場合、図17のステップSK4に進み、ノートオンイベントに含まれるノート番号がレジスタSplitPointに格納されるスプリットポイントより小さいか、つまり下側鍵域に対応するオンイベントであるかどうかを判断する。下側鍵域に対応するノートオンイベントであると、判断結果は「YES」になり、ステップSK3に進み、上述したマップモード波形設定処理(図18参照)を実行してから本処理を完了させる。
一方、上側鍵域に対応するノートオンイベントであると、上記ステップSK4の判断結果が「NO」になり、上側鍵域での演奏である為、レジスタWaveNumおよびレジスタWaveAddressは変更せずに本処理を終える。
このように、波形リセットモード値「2」では、下側鍵域の演奏操作に応じて変調波形を発生させるようにし、その際の波形リセットの仕方は上記▲2▼項の波形リセットモード値「1」と同様になる。
【0115】
▲4▼波形リセットモード値「3」の場合
この場合、ステップSK5に進み、ノートオンイベントがアサインされたチャンネル番号と、レジスタModulatorPartに格納されるモジュレータパート番号とが一致するかを判断する。一致すると、判断結果は「YES」になり、ステップSK3を介して前述のマップモード波形設定処理(図18参照)を実行してから本処理を完了させる。
一方、一致しなければ、上記ステップSK5の判断結果が「NO」となり、モジュレータパート以外での演奏である為、レジスタWaveNumおよびレジスタWaveAddressは変更せずに本処理を終える。
このように、波形リセットモード値「3」では、音源12が備える複数パートの内、モジュレータパートで変調波形を発生させるようにし、その際の波形リセットの仕方は上記▲2▼項の波形リセットモード値「1」と同様になる。
【0116】
以上のように、マップモード処理によれば、波形リセットモード値「0」の場合には、ノートオンイベントに応じて、現在選択されている波形の先頭アドレスから読み出すように波形リセットする。
波形リセットモード値「1」の場合には、読み出す変調波形が替わったり、読み出す変調波形が替わらずとも明示的なリセット操作があると、現ノートオンイベント(もしくはキーオンイベント)に応じて選択される変調波形の先頭アドレスから読み出すように波形リセットする。また、読み出す変調波形が替わらなかったり、ホールド状態や明示的なリセット操作が行われない状態ならば、前ノートオンイベントの発音で最後に読み出した波形読み出しアドレスから再び読み出すようにする。
また、波形リセットモード値「2」の場合には、下側鍵域の演奏操作に応じて変調波形を発生させるようにし、その際の波形リセットの仕方は波形リセットモード値「1」と同様になる。
さらに波形リセットモード値「3」の場合には、音源12が備える複数パートの内、モジュレータパートで変調波形を発生させるようにし、その際の波形リセットの仕方は波形リセットモード値「1」と同様になる。
【0117】
(9)MIDI処理の動作
次に、図19を参照してMIDI処理の動作を説明する。前述したメインルーチンのステップSA4(図9参照)を介して本処理が実行されると、CPU9は図19のステップSM1に処理を進め、先ずMIDI入力の有無を判断する。MIDI入力が無ければ、一旦本処理を完了させてメインルーチンに処理を戻す。MIDI入力がある場合にはそのイベントが波形データ転送用のシステム・エクスクルーシブ・メッセージ(図3参照)、ノートオン/ノートオフイベントおよびその他イベントのいずれであるかを判定する。その他イベントが入力された場合には、ステップSM6に進み、その他イベント処理を行った後、ステップSM1に処理を戻す。
【0118】
前述したシステム・エクスクルーシブ・メッセージ(図3参照)が入力された場合には、ステップSM2に進み、当該システム・エクスクルーシブ・メッセージを受信バッファ(不図示)に取り込み、取り込んだメッセージ中から波形データ(WAVEDATA)を抽出して波形RAM14に格納する。
ノートオン/ノートオフイベントが入力された場合には、ステップSM3に進み、波形リセットモード値が「0」、「1」および「2」のいずれかに設定されているか否かを判断する。
【0119】
波形リセットモード値が「3」であると、判断結果は「NO」になり、後述のステップSM5に進む。波形リセットモード値が「0」、「1」および「2」のいずれかに設定されていれば、判断結果は「YES」となり、次のステップSM4に進み、ノートオン/ノートオフイベントのMIDIチャンネル番号と、レジスタCarrierPartに格納されるキャリアパート番号とが一致するかを判断する。一致すると、判断結果は「YES」になり、ステップSM5を介して前述のノートオンオフ処理(図13参照)を実行した後、ステップSM1に戻る。一方、一致しなければ、判断結果が「NO」になり、ステップSM1に処理を戻す。
【0120】
このように、MIDI処理では、システム・エクスクルーシブ・メッセージにて波形データが転送入力されると、そのメッセージに含まれる波形データ(WAVEDATA)を抽出して波形RAM14に格納する。
波形リセットモード値が「0」、「1」および「2」のいずれかに設定されていると、入力されるノートオン/ノートオフイベントのMIDIチャンネル番号がキャリアパートに対応する場合のみノートオンオフ処理(図13参照)を実行させ、波形リセットモード値が「3」に設定されていると、入力されるノートオン/ノートオフイベントのMIDIチャンネル番号に対応するパートについてノートオンオフ処理を実行させるようになっている。
【0121】
以上説明したように、本実施例では、音源12が人声音の変調波形と楽器音の被変調波形とを発生し、DSP15が人声音の変調波形から抽出したフォルマント成分に応じて楽器音の被変調波形を変調するボコーダ処理を行って、あたかも人の声のような楽器音を形成するので、従来のように、外部から音声信号を入力させてボコーダ処理する構成とは異なり、ボコーダ演奏を常に同じように再現できるようになる。
つまり、人声をサンプリングしてなる波形データを波形RAM14に記憶しておき、音源12がその波形データを再生して人声音の変調波形を発生するから、再現可能なボコーダ演奏になる訳である。また、そうした構成では、外部からの入力信号を取り込む手段が不必要になるので、外部から音声信号を入力させてボコーダ処理する構成に比べて製品コスト低減に寄与できる効果も得られる。
【0122】
また、本実施例では、前述したように、波形選択モード値「0」〜「2」および波形リセットモード値「0」〜「3」に応じた各種波形読み出し形態を設定するので、多様な楽音発生形態を具現することが可能になっている。
一例としてシーケンシャルモード(波形選択モード値「0」)下で波形リセットモード値「0」に設定した場合に、例えば波形RAM14に曲を構成する各音符に対応させた歌詞を個々の波形データとして格納しておき、それらの読み出し順序をレジスタWaveSeqOrderに登録すると、演奏操作に応じて曲の歌詞が変調波形として再生され、これに基づきボコーダ処理される結果、人が歌っているかのような楽音を発生させることができる。
【0123】
加えて、キーマッピングモード(波形選択モード値「1」)下や、ベロシティモード(波形選択モード値「2」)下では、押鍵された鍵のノート番号やベロシティ値に応じて変調波形を異ならせたり、楽器音の被変調波形を人声音の変調波形で変調させるタイミングをユーザが指定できるようにする他、ホールドフットスイッチ2およびリセットフットスイッチ3の操作に応じて変調波形のリセットの仕方を指定する等、バリエーションに富んだ変調波形を発生可能にしており、これ故、多様な楽音発生形態を具現できる訳である。
【0124】
なお、上述した実施例では、音源12が演奏情報に対応した人声音の変調波形と楽器音の被変調波形とを発生し、DSP15が人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するようにしたが、これに限らず、音源12およびDSP15の処理をCPU9が実行する形態であっても構わない。その場合、CPU9は入力される演奏情報に対応した人声音の変調波形と楽器音の被変調波形とを発生する波形発生処理プログラムと、前記波形発生処理にて発生した人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ処理プログラムとを実行することになる。
【0125】
【発明の効果】
請求項1,14に記載の発明によれば、入力される演奏情報に対応した人声音の変調波形と楽器音の被変調波形とを発生すると、その人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するので、従来のように、外部から音声信号を入力させてボコーダ処理する構成とは異なり、ボコーダ演奏を常に同じように再現することが出来る。また、外部からの入力信号を取り込む構成が不要になるので、外部から音声信号を入力させてボコーダ処理するものに比べて製品コスト低減に寄与し得る効果も得られる。
請求項2に記載の発明によれば、音高指定される範囲を、少なくとも第1および第2の音域に分割しておき、第1の音域内で音高指定する演奏情報に応じた人声音の変調波形を発生させ、第2の音域内で音高指定する演奏情報に応じた楽器音の被変調波形を発生させるようにすると、第1の音域内で音高指定するタイミングを変化させれば、人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調するタイミングが変化するから、ボコーダ演奏音を多様な楽音発生形態で発生させることができる。
請求項3に記載の発明によれば、複数パートの内、第1のパートに割り当てられた演奏情報に対応した人声音の変調波形の発生を指示し、第2のパートに割り当てられた演奏情報に対応した楽器音の被変調波形の発生を指示するようにすると、第1のパートで人声音の変調波形を発生させるタイミングを変化させれば、人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調するタイミングが変化するから、ボコーダ演奏音を多様な楽音発生形態で発生させることができる。
請求項4に記載の発明によれば、人声を表す波形を個別に複数記憶しておく一方、それら個別に記憶される各波形の再生順序を記憶しておき、波形発生指示を受ける毎に、記憶された再生順序を順番に読み出し、その再生順序で指定される波形を読み出して人声音の変調波形を発生するようにしたので、例えば曲を構成する各音符に対応させた歌詞を個々の波形として格納しておき、それらの再生順序を決めておけば、演奏操作に応じて曲の歌詞が変調波形として再生され、これに基づきあたかも人が歌っているかのようなボコーダ演奏音を発生することができる。
請求項5に記載の発明によれば、人声を表す波形を波形番号に対応して記憶しておく一方、ノート番号毎の波形番号を記憶しておき、波形発生指示を受ける毎に、その波形発生指示に含まれるノート番号に対応した波形番号を選択し、選択した波形番号に対応した波形を読み出して人声音の変調波形を発生するようにしたので、ノート番号に応じて人声音の変調波形を異ならせることが出来、これ故、多様な楽音発生形態でボコーダ演奏音を発生させることができる。
請求項6に記載の発明によれば、人声を表す波形を波形番号に対応して記憶しておく一方、ベロシティ値毎の波形番号を記憶しておき、波形発生指示を受ける毎に、その波形発生指示に含まれるベロシティ値に対応した波形番号を選択し、選択した波形番号に対応した波形を読み出して人声音の変調波形を発生するようにしたので、ベロシティ値に応じて人声音の変調波形を異ならせることが出来、これ故、多様な楽音発生形態でボコーダ演奏音を発生させ得る。
請求項7に記載の発明によれば、波形発生指示を受ける毎に、予め設定された再生順序に従って波形を順番に読み出して人声音の変調波形を発生している時に、リセット操作がなされると、予め設定された再生順序の内、先頭の波形から読み出しを再開するので、例えば予め設定された再生順序で文章を表す人声音の変調波形を発生させている場合、リセット操作に応じて文章を最初から読み出す形で人声音の変調波形を発生させることが出来、これ故、多様な楽音発生形態でボコーダ演奏音を発生させ得る。
請求項8に記載の発明によれば、波形発生指示を受ける毎に、その波形発生指示に含まれるノート番号に対応した波形番号を選択し、選択した波形番号に対応した波形を読み出して人声音の変調波形を発生している時に、リセット操作がなされると、現在選択されている波形番号の波形の先頭アドレスから読み出しを再開するので、例えばあるノート番号で選択される波形番号に対応した1つの波形で文章を表す人声音の変調波形を発生させている場合、リセット操作に応じてその文章を最初から読み出す形で人声音の変調波形を発生させることが出来、これ故、多様な楽音発生形態でボコーダ演奏音を発生させ得る。
請求項9に記載の発明によれば、波形発生指示を受ける毎に、その波形発生指示に含まれるベロシティ値に対応した波形番号を選択し、選択した波形番号に対応した波形を読み出して人声音の変調波形を発生している時に、リセット操作がなされると、現在選択されている波形番号の波形の先頭アドレスから読み出しを再開するので、例えばあるベロシティ値で選択される波形番号に対応した1つの波形で文章を表す人声音の変調波形を発生させている場合、リセット操作に応じてその文章を最初から読み出す形で人声音の変調波形を発生させることが出来、これ故、多様な楽音発生形態でボコーダ演奏音を発生させ得る。
請求項10に記載の発明では、波形発生指示を受ける毎に、予め設定された再生順序に従って波形を順番に読み出して人声音の変調波形を発生している時に、リセット操作が行われた場合には予め設定された再生順序の内、先頭の波形から読み出しを再開させ、ホールド操作が行われた場合にはリセット操作時の指示を無効にし、予め設定された再生順序に従い、次の波形番号で指定される波形の先頭アドレスから読み出しを再開するので、多様な楽音発生形態でボコーダ演奏音を発生させることができる。
請求項11に記載の発明によれば、波形発生指示を受ける毎に、その波形発生指示に含まれるノート番号に対応した波形番号を選択し、選択した波形番号に対応した波形を読み出して人声音の変調波形を発生している時に、リセット操作が行われた場合には現在選択されている波形番号の波形の先頭アドレスから読み出しを再開させ、ホールド操作が行われた場合には先の波形発生指示に従って読み出し終えた波形読み出しアドレスから読み出しを再開するので、多様な楽音発生形態でボコーダ演奏音を発生させることができる。
請求項12に記載の発明によれば、波形発生指示を受ける毎に、その波形発生指示に含まれるベロシティ値に対応した波形番号を選択し、選択した波形番号に対応した波形を読み出して人声音の変調波形を発生している時に、リセット操作が行われた場合には現在選択されている波形番号の波形の先頭アドレスから読み出しを再開させ、ホールド操作が行われた場合には先の波形発生指示に従って読み出し終えた波形読み出しアドレスから読み出しを再開するので、多様な楽音発生形態でボコーダ演奏音を発生させることができる。
請求項13に記載の発明によれば、与えられた演奏情報が指定する音高を所定のキースケーリング特性に従って音高変換し、それに応じて当初と異なるフォルマント成分を有する人声音の変調波形を発生するので、多様な楽音発生形態でボコーダ演奏音を発生させることができる。
【図面の簡単な説明】
【図1】本発明による一実施例の全体構成を示すブロック図である。
【図2】ROM6に格納されるキースケーリングテーブルKSTの一例を示す図である。
【図3】波形データ転送に用いるシステム・エクスクルーシブ・メッセージの構成を示す図である。
【図4】波形ROM13および波形RAM14のメモリ構成を示すメモリマップである。
【図5】RAM7の主要レジスタ構成を示すメモリマップである。
【図6】音源12の第1の構成を示すブロック図である。
【図7】音源12の第2の構成を示すブロック図である。
【図8】DSP15の構成を示すブロック図である。
【図9】メインルーチンの動作を示すフローチャートである。
【図10】タイマ処理の動作を示すフローチャートである。
【図11】スイッチ処理の動作を示すフローチャートである。
【図12】鍵盤処理の動作を示すフローチャートである。
【図13】ノートオンオフ処理の動作を示すフローチャートである。
【図14】パートチェック処理の動作を示すフローチャートである。
【図15】シーケンシャルモード処理の動作を示すフローチャートである。
【図16】シーケンシャルモード波形設定処理の動作を示すフローチャートである。
【図17】マップモード処理の動作を示すフローチャートである。
【図18】マップモード波形設定処理の動作を示すフローチャートである。
【図19】MIDI処理の動作を示すフローチャートである。
【符号の説明】
1 鍵盤
2 ホールドフットスイッチ
3 リセットフットスイッチ
4 パネルスイッチ
5 スイッチスキャナ
6 ROM
7 RAM
8 表示部
9 CPU
10 MIDIインタフェース
11 MIDIメッセージデータ
12 音源
13 波形ROM
14 波形RAM
15 DSP
16 D/A変換器
17 サウンドシステム
18 スピーカ
Claims (14)
- 入力される演奏情報に対応した人声音の変調波形と楽器音の被変調波形とを発生する波形発生手段と、
前記波形発生手段が発生した人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段と
を具備することを特徴とする楽音発生装置。 - 音高指定される範囲を、少なくとも第1および第2の音域に分割する分割手段と、
前記第1の音域内で音高指定する演奏情報に応じた人声音の変調波形の発生を指示する第1の指示手段と、
前記第2の音域内で音高指定する演奏情報に応じた楽器音の被変調波形の発生を指示する第2の指示手段と、
前記第1の指示手段から指示された人声音の変調波形と前記第2の指示手段から指示された楽器音の被変調波形とを発生する波形発生手段と、
前記波形発生手段が発生した人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段と
を具備することを特徴とする楽音発生装置。 - 複数パートの内、第1のパートに割り当てられた演奏情報に対応した人声音の変調波形の発生を指示する第1の指示手段と、
複数パートの内、第2のパートに割り当てられた演奏情報に対応した楽器音の被変調波形の発生を指示する第2の指示手段と、
前記第1の指示手段から指示された人声音の変調波形と前記第2の指示手段から指示された楽器音の被変調波形を発生する波形発生手段と、
前記波形発生手段が発生した人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段と
を具備することを特徴とする楽音発生装置。 - 前記波形発生手段は、
人声を表す波形を個別に複数記憶する波形記憶手段と、
この波形記憶手段に個別に記憶される各波形の再生順序を記憶する順序記憶手段と、
波形発生指示を受ける毎に、前記順序記憶手段に記憶される再生順序を順番に読み出し、その再生順序で指定される波形を前記波形記憶手段から読み出して前記人声音の変調波形を発生する波形読み出し手段と
を具備することを特徴とする請求項1乃至3のいずれかに記載の楽音発生装置。 - 前記波形発生手段は、
人声を表す波形を波形番号に対応して記憶する波形記憶手段と、
ノート番号毎の波形番号を記憶する波形番号記憶手段と、
波形発生指示を受ける毎に、その波形発生指示に含まれるノート番号に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して前記人声音の変調波形を発生する波形読み出し手段と
を具備することを特徴とする請求項1乃至3のいずれかに記載の楽音発生装置。 - 前記波形発生手段は、
人声を表す波形を波形番号に対応して記憶する波形記憶手段と、
ベロシティ値毎の波形番号を記憶する波形番号記憶手段と、
波形発生指示を受ける毎に、その波形発生指示に含まれるベロシティ値に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して前記人声音の変調波形を発生する波形読み出し手段と
を具備することを特徴とする請求項1乃至3のいずれかに記載の楽音発生装置。 - 人声を表す波形を個別に複数記憶した波形記憶手段を有し、波形発生指示を受ける毎に、予め設定された再生順序に従って当該波形記憶手段から波形を順番に読み出して人声音の変調波形を発生する第1の波形発生手段と、
リセット操作に応じて、予め設定された再生順序の内、先頭の波形から読み出しを再開するように前記第1の波形発生手段に指示するリセット指示手段と、
波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、
前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段と
を具備することを特徴とする楽音発生装置。 - 人声を表す波形を波形番号に対応して記憶する波形記憶手段と、
ノート番号毎の波形番号を記憶する波形番号記憶手段と、
波形発生指示を受ける毎に、その波形発生指示に含まれるノート番号に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して人声音の変調波形を発生する第1の波形発生手段と、
リセット操作に応じて、現在選択されている波形番号の波形の先頭アドレスから読み出しを再開するように前記第1の波形発生手段に指示するリセット指示手段と、
波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、
前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段と
を具備することを特徴とする楽音発生装置。 - 人声を表す波形を波形番号に対応して記憶する波形記憶手段と、
ベロシティ値毎の波形番号を記憶する波形番号記憶手段と、
波形発生指示を受ける毎に、その波形発生指示に含まれるベロシティ値に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して人声音の変調波形を発生する第1の波形発生手段と、
リセット操作に応じて、現在選択されている波形番号の波形の先頭アドレスから読み出しを再開するように前記第1の波形発生手段に指示するリセット指示手段と、
波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、
前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段と
を具備することを特徴とする楽音発生装置。 - 人声を表す波形を個別に複数記憶した波形記憶手段を有し、波形発生指示を受ける毎に、予め設定された再生順序に従って当該波形記憶手段から波形を順番に読み出して人声音の変調波形を発生する第1の波形発生手段と、
リセット操作が行われた場合には予め設定された再生順序の内、先頭の波形から読み出しを再開するように前記第1の波形発生手段に指示し、ホールド操作が行われた場合にはリセット操作時の指示を無効にし、予め設定された再生順序に従い、次の波形番号で指定される波形の先頭アドレスから読み出しを再開するように前記第1の波形発生手段に指示する指示手段と、
波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、
前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段と
を具備することを特徴とする楽音発生装置。 - 人声を表す波形を波形番号に対応して記憶する波形記憶手段と、
ノート番号毎の波形番号を記憶する波形番号記憶手段と、
波形発生指示を受ける毎に、その波形発生指示に含まれるノート番号に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して人声音の変調波形を発生する第1の波形発生手段と、
リセット操作が行われた場合には、現在選択されている波形番号の波形の先頭アドレスから読み出しを再開するように前記第1の波形発生手段に指示し、ホールド操作が行われた場合には先の波形発生指示に従って読み出し終えた波形読み出しアドレスから読み出しを再開するように前記第1の波形発生手段に指示する指示手段と、
波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、
前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段と
を具備することを特徴とする楽音発生装置。 - 人声を表す波形を波形番号に対応して記憶する波形記憶手段と、
ベロシティ値毎の波形番号を記憶する波形番号記憶手段と、
波形発生指示を受ける毎に、その波形発生指示に含まれるベロシティ値に対応した波形番号を前記波形番号記憶手段から選択し、選択した波形番号に対応した波形を前記波形記憶手段から読み出して人声音の変調波形を発生する第1の波形発生手段と、
リセット操作が行われた場合には、現在選択されている波形番号の波形の先頭アドレスから読み出しを再開するように前記第1の波形発生手段に指示し、ホールド操作が行われた場合には先の波形発生指示に従って読み出し終えた波形読み出しアドレスから読み出しを再開するように前記第1の波形発生手段に指示する指示手段と、
波形発生指示に従って楽器音の被変調波形を発生する第2の波形発生手段と、
前記第1の波形発生手段が発生する人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生する楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段と
を具備することを特徴とする楽音発生装置。 - 与えられた演奏情報が指定する音高を所定のキースケーリング特性に従って音高変換し、それに応じて当初と異なるフォルマント成分を有する人声音の変調波形を発生する第1の波形発生手段と、
前記演奏情報に応じた楽器音の被変調波形を発生する第2の波形発生手段と、
前記第1の波形発生手段が発生した人声音の変調波形のフォルマント成分に応じて、前記第2の波形発生手段が発生した楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ手段と
を具備することを特徴とする楽音発生装置。 - 入力される演奏情報に対応した人声音の変調波形と楽器音の被変調波形とを発生する波形発生処理と、
前記波形発生処理にて発生した人声音の変調波形のフォルマント成分に応じて楽器音の被変調波形を変調してボコーダ演奏音を発生するボコーダ処理と
コンピュータで実行させることを特徴とする楽音発生プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003071300A JP2004279750A (ja) | 2003-03-17 | 2003-03-17 | 楽音発生装置および楽音発生プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003071300A JP2004279750A (ja) | 2003-03-17 | 2003-03-17 | 楽音発生装置および楽音発生プログラム |
Related Child Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007293016A Division JP2008097022A (ja) | 2007-11-12 | 2007-11-12 | 楽音発生装置 |
JP2007293018A Division JP2008052305A (ja) | 2007-11-12 | 2007-11-12 | 楽音発生装置 |
JP2007293017A Division JP4492680B2 (ja) | 2007-11-12 | 2007-11-12 | 楽音発生装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004279750A true JP2004279750A (ja) | 2004-10-07 |
Family
ID=33287771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003071300A Pending JP2004279750A (ja) | 2003-03-17 | 2003-03-17 | 楽音発生装置および楽音発生プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004279750A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006323166A (ja) * | 2005-05-19 | 2006-11-30 | Casio Comput Co Ltd | 楽音発生装置および楽音発生プログラム |
JP2006337450A (ja) * | 2005-05-31 | 2006-12-14 | Casio Comput Co Ltd | 楽音発生装置および楽音発生プログラム |
-
2003
- 2003-03-17 JP JP2003071300A patent/JP2004279750A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006323166A (ja) * | 2005-05-19 | 2006-11-30 | Casio Comput Co Ltd | 楽音発生装置および楽音発生プログラム |
JP4591826B2 (ja) * | 2005-05-19 | 2010-12-01 | カシオ計算機株式会社 | 楽音発生装置および楽音発生プログラム |
JP2006337450A (ja) * | 2005-05-31 | 2006-12-14 | Casio Comput Co Ltd | 楽音発生装置および楽音発生プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100306032B1 (ko) | 악음발생장치 | |
JP3598598B2 (ja) | カラオケ装置 | |
JPH11502632A (ja) | 音響信号の音色および/またはピッチを変える方法および装置 | |
WO2007139034A1 (ja) | 楽音合成装置及び方法 | |
JP3625880B2 (ja) | 音源装置 | |
JP2004279750A (ja) | 楽音発生装置および楽音発生プログラム | |
JP4492680B2 (ja) | 楽音発生装置 | |
JP2008097022A (ja) | 楽音発生装置 | |
JPH11338480A (ja) | カラオケ装置 | |
JP2008052305A (ja) | 楽音発生装置 | |
JP2674452B2 (ja) | 楽曲再生装置 | |
JP3909693B2 (ja) | 楽音変調装置、楽音変調方法および楽音変調プログラム | |
JP4096814B2 (ja) | 波形変調装置および波形変調プログラム | |
JP4088947B2 (ja) | 楽音発生装置 | |
JP4614131B2 (ja) | 波形発生装置および波形発生プログラム | |
JP2009216769A (ja) | 音処理装置およびプログラム | |
JP3716710B2 (ja) | 楽音発生装置 | |
JP2529227Y2 (ja) | 電子楽器 | |
KR970000428Y1 (ko) | 코러스 기능이 구비된 컴퓨터 반주기 | |
JP3565065B2 (ja) | カラオケ装置 | |
JP2006154526A (ja) | ボコーダ装置 | |
JPH0926787A (ja) | 音色制御装置 | |
JP2006154526A5 (ja) | ||
JP4246869B2 (ja) | オーディオ波形信号再生制御装置 | |
JP6175804B2 (ja) | 演奏装置、演奏方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070905 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070914 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071204 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080118 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080317 |