JP4591826B2 - 楽音発生装置および楽音発生プログラム - Google Patents

楽音発生装置および楽音発生プログラム Download PDF

Info

Publication number
JP4591826B2
JP4591826B2 JP2005146652A JP2005146652A JP4591826B2 JP 4591826 B2 JP4591826 B2 JP 4591826B2 JP 2005146652 A JP2005146652 A JP 2005146652A JP 2005146652 A JP2005146652 A JP 2005146652A JP 4591826 B2 JP4591826 B2 JP 4591826B2
Authority
JP
Japan
Prior art keywords
waveform
modulated
mode
sound
formant component
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.)
Active
Application number
JP2005146652A
Other languages
English (en)
Other versions
JP2006323166A (ja
Inventor
博毅 佐藤
益男 横田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2005146652A priority Critical patent/JP4591826B2/ja
Publication of JP2006323166A publication Critical patent/JP2006323166A/ja
Application granted granted Critical
Publication of JP4591826B2 publication Critical patent/JP4591826B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、ボコーダ音を発生する楽音発生装置および楽音発生プログラムに関する。
人声音の変調波形と演奏操作に対応した楽器音の被変調波形とを発生させ、人声音の変調波形から抽出したフォルマント成分を、楽器音の被変調波形に変調して、あたかも人の声のような楽器音(ボコーダ音)を発生する楽音発生装置が知られており、この種の装置については、例えば特許文献1に開示されている。
特開2004−279750号公報
ところで、上記特許文献1に開示の装置は、リアルタイムに周波数分析を行って人声音の変調波形からフォルマント成分を抽出するとともに、楽器音の被変調波形もリアルタイムに周波数分析を行う構成なので、音源における処理動作の負荷が高い場合は、同じフォルマントを異なるピッチで発音させたり、同じフレーズを異なるフォルマントで発音させることが出来ない、という問題がある。
本発明は、このような事情に鑑みてなされたもので、音源における処理動作の負荷低減を図りつつ、同じフォルマントを異なるピッチで発音させたり、同じフレーズを異なるフォルマントで発音させることができる楽音発生装置および楽音発生プログラムを提供することを目的としている。
上記目的を達成するため、請求項1に記載の発明では、人声のフォルマント成分毎の変調波形を記憶する第1の記憶手段と、楽音波形を人声のフォルマント成分別に濾波した被変調波形を記憶する第2の記憶手段と、第1及び第2のモードのいずれか一方のモードに設定するモード設定手段と、このモード設定手段により第1のモードが設定されているとき、演奏操作に対応して生成される楽音波形を、人声のフォルマント成分別に濾波して被変調波形を形成する被変調波形形成手段と、前記第1のモードが設定されているとき、前記演奏操作に対応して前記第1の記憶手段から読み出される人声のフォルマント成分毎の変調波形によって、前記被変調波形発生手段が形成する被変調波形を変調してボコーダ音を発生する第1のボコーダ音発生手段と、前記モード設定手段により第2のモードが設定されているとき、演奏操作に対応して人声のフォルマント成分毎の変調波形を発生する変調波形発生手段と、前記第2のモードが設定されているとき、前記演奏操作に対応して前記第2の記憶手段から読み出される人声のフォルマント成分別に濾波した被変調波形を、前記変調波形発生手段が発生する人声のフォルマント成分毎の変調波形により変調してボコーダ音を発生する第2のボコーダ音発生手段とを具備することを特徴とする。
上記請求項1に従属する請求項2に記載の発明では、前記第1のボコーダ音発生手段は、全鍵離鍵状態からの押鍵に応じて、前記第1の記憶手段から読み出す変調波形を先頭にリセットすることを特徴とする。
上記請求項に従属する請求項に記載の発明では、前記変調波形発生手段は、全鍵離鍵状態からの押鍵に応じて、発生する変調波形を先頭にリセットすることを特徴とする。
請求項に記載の発明では、人声のフォルマント成分毎の変調波形を記憶する第1の記憶手段と、楽音波形を人声のフォルマント成分別に濾波した被変調波形を記憶する第2の記憶手段と、第1及び第2のモードのいずれか一方のモードに設定するモード設定手段と、を有する楽音発生装置として用いられるコンピュータに、このモード設定手段により第1のモードが設定されているとき、演奏操作に対応して生成される楽音波形を、人声のフォルマント成分別に濾波して被変調波形を形成する被変調波形形成処理と、前記第1のモードが設定されているとき、前記演奏操作に対応して前記第1の記憶手段から読み出される人声のフォルマント成分毎の変調波形によって、前記被変調波形発生処理が形成する被変調波形を変調してボコーダ音を発生する第1のボコーダ音発生処理と、前記モード設定手段により第2のモードが設定されているとき、演奏操作に対応して人声のフォルマント成分毎の変調波形を発生する変調波形発生処理と、前記第2のモードが設定されているとき、前記演奏操作に対応して前記第2の記憶手段から読み出される人声のフォルマント成分別に濾波した被変調波形を、前記変調波形発生処理が発生する人声のフォルマント成分毎の変調波形により変調してボコーダ音を発生する第2のボコーダ音発生処理とをコンピュータで実行させることを特徴とする
上記請求項4に従属する請求項5に記載の発明では、前記ボコーダ音発生処理は、全鍵離鍵状態からの押鍵に応じて、前記第1の記憶手段から読み出す変調波形を先頭にリセットさせることを特徴とする。
上記請求項に従属する請求項に記載の発明では、前記変調波形発生処理は、全鍵離鍵状態からの押鍵に応じて、発生する変調波形を先頭にリセットさせることを特徴とする。
請求項1、に記載の発明によれば、第1のモードが設定されているとき、人声のフォルマント成分別に濾波して形成された被変調波形を演奏操作に対応して読み出される人声のフォルマント成分毎の変調波形によって変調してボコーダ音を発生し、第2のモードが設定されているとき、読み出される人声のフォルマント成分別に濾波した被変調波形を、人声のフォルマント成分毎の変調波形により変調してボコーダ音を発生するので、音源における処理動作の負荷低減を図りつつ、同じフォルマントを異なるピッチで発音させたり、同じフレーズを異なるフォルマントで発音させたりすることができる。
請求項2、に記載の発明によれば、全鍵離鍵状態からの押鍵に応じて、読み出す変調波形を先頭にリセットさせるので、特別な操作を行うことなく変調波形のリセットを行うことができる。
請求項に記載の発明によれば、全鍵離鍵状態からの押鍵に応じて、発生する変調波形を先頭にリセットさせるので、特別な操作を行うことなく変調波形のリセットを行うことができる。

以下、図面を参照して本発明の実施の一形態について説明する。
A.構成
(1)全体構成
図1は、実施の一形態による電子楽器の全体構成を示すブロック図である。この図において、鍵盤1は、押離鍵操作(演奏操作)に応じたキーオン/キーオフイベントおよび鍵番号、ベロシティ等からなる演奏情報を発生する。スイッチ部2は、楽器パネルに配設される各種スイッチを備え、操作されたスイッチに対応したスイッチイベントを発生する。本発明の要旨に係わるスイッチとして、スイッチ部2には動作モードを設定するモードスイッチ(不図示)が設けられている。このモードスイッチの操作により動作モードを表すモード値Veが「0」〜「4」のいずれかに設定される。これらモード値Veが意図する内容については追って述べる。
CPU3は、主にスイッチ部2が発生するスイッチイベントに応じてスイッチ処理(後述する)や、鍵盤1から供給される演奏情報に応じて鍵盤処理(後述する)を実行して音源10に楽音形成を指示する。本発明の要旨に係わるCPU3の処理動作については追って詳述する。ROM4は、プログラムエリアおよびデータエリアを備える。ROM4のプログラムエリアには、CPU3が実行する各種制御プログラムが記憶される。各種制御プログラムとは、後述のメインルーチン、スイッチ処理および鍵盤処理を含む。ROM4のデータエリアには、複数種の波形パラメータWPが記憶される。波形パラメータWPの構成については後述する。
RAM5は、ワークエリアおよびデータエリアを備える。RAM5のワークエリアには、CPU3が使用する各種レジスタ・フラグデータが一時記憶される。RAM5に設けられる主要レジスタの構成については追って述べる。表示部6は、CPU3から供給される表示制御信号に応じて楽器各部の動作状態やパラメータ設定状態などを表示する。MIDIインタフェース7は、CPU3の制御の下に、外部MIDI機器とMIDIデータ(MIDIメッセージ)をシリアル形式で入出力する。マイク8は入力される音声を音声信号に変換して出力する。A/D変換器9は、マイク8から入力される音声信号をA/D変換し、これを入力波形データとして出力する。A/D変換器9が出力する入力波形データは、CPU3の制御の下に、例えばRAM5のデータエリアに格納される。
音源10は、CPU3から供給される波形パラメータWPおよびモードスイッチ操作で設定されるモード値Veに対応した波形発生態様に従い、鍵盤1からの演奏情報に基づきCPU3が発生する楽音パラメータ(ノートオン/ノートオフコマンド等)に従って楽音形成する。音源10の構成については後述する。波形ROM11は、上述したROM4に格納された128種類の波形パラメータWP[0]〜WP[127]に対応する波形データを記憶する。サウンドシステム12は、音源10から出力される楽音出力outをアナログ形式の波形信号にD/A変換すると共に、D/A変換された波形信号から不要ノイズを除去する等のフィルタリングを施してから信号増幅してスピーカから発音させる。
(2)音源10の構成
次に、図2を参照して音源10の構成を説明する。図2は音源10の構成を示すブロック図である。この図に示す音源10は、「波形発生部」、「選択部SEL」、「分析部」および「合成部」に大別される。
波形発生部は、波形発生器OSC1〜OSC32から構成される。波形発生器OSC1〜OSC32は、それぞれ周知の波形メモリ読み出し方式にて構成され、CPU3から供給される波形パラメータWPにより指定される波形データ(後述の原波形データ、分析波形データおよびエンベロープ波形データのいずれか)を波形ROM11から読み出して波形発生する。これら波形発生器OSC1〜OSC32では、8つの波形発生器を1組とし、波形発生器OSC1〜OSC8、OSC9〜OSC16、OSC17〜OSC24、OSC25〜OSC32の4組を形成している。
選択部SELは、CPU3から供給されるモード値Veに従って波形発生器OSC1〜OSC32の各波形出力経路を選択する複数のセレクタから構成される。すなわち、選択部SELでは、モード値Veが「0」の場合には、全ての波形発生器OSC1〜OSC32の各波形出力を合成部の加算器K25に直接入力する経路を選択する。
モード値Veが「1」の場合には、波形発生器OSC1の波形出力を分析部のバンドパスフィルタBPF M1〜BPF M8に入力すると共に、他の波形発生器OSC2〜OSC32の波形出力を合成部のバンドパスフィルタBPF C1〜BPF C8に入力する経路を選択する。
モード値Veが「2」の場合には、波形発生器OSC1〜OSC8の波形出力を分析部の加算器K1〜K8にそれぞれ入力すると共に、他の波形発生器OSC9〜OSC32の波形出力を合成部のバンドパスフィルタBPF C1〜BPF C8に入力する経路を選択する。
モード値Veが「3」の場合には、波形発生器OSC1の波形出力を分析部のバンドパスフィルタBPF M1〜BPF M8に入力すると共に、波形発生器OSC9〜OSC32の波形出力を合成部の加算器K9〜K16を介して当該合成部の加算器K17〜K24にそれぞれ入力する経路を選択する。なお、この場合、波形発生器OSC2〜OSC8は不使用になる。
モード値Veが「4」の場合には、波形発生器OSC1〜OSC8の波形出力を分析部の加算器K1〜K8にそれぞれ入力すると共に、波形発生器OSC9〜OSC32の波形出力を合成部の加算器K9〜K16を介して当該合成部の加算器K17〜K24にそれぞれ入力する経路を選択する。
分析部は、バンドパスフィルタBPF M1〜BPF M8と、これらバンドパスフィルタBPF M1〜BPF M8の各後段にそれぞれ設けられるエンベロープ検出器ENVと、加算器K1〜K8とから構成される。バンドパスフィルタBPF M1〜BPF M8は、それぞれ人声のフォルマント周波数に対応させた通過周波数帯域を有し、波形発生器OSC1から入力される波形のフォルマント成分を抽出する。
エンベロープ検出器ENVは、整流器を含む絶対値回路およびLPFを含む平滑化回路から構成され、バンドパスフィルタBPF M1〜BPF M8において各々抽出されるフォルマント成分のエンベロープレベルを検出して出力する。加算器K1〜K8は、波形発生器OSC1〜OSC8の波形出力とエンベロープ検出器ENVの出力とを加算して合成部の乗算器J1〜J8に供給する。加算器K1〜K8の各出力を変調波形と称す。
合成部は、加算器K9〜K16、バンドパスフィルタBPF C1〜BPF C8、加算器K17〜K24、乗算器J1〜J8および加算器K25を備える。加算器K9は、波形発生器OSC9、OSC17、OSC25の各波形出力を加算して加算器K17に供給する。加算器K10は、波形発生器OSC10、OSC18、OSC26の各波形出力を加算して加算器K18に供給する。加算器K11+n(n=0〜5)も同様に、波形発生器OSC11+n、OSC19+n、OSC27+nの各波形出力を加算して加算器K19+nにそれぞれ供給する。
バンドパスフィルタBPF C1〜BPF C8は、上述した分析部のバンドパスフィルタBPF M1〜BPF M8と同一の通過周波数帯域を有し、モード値「1」であれば、波形発生器OSC2〜OSC32から入力される波形を、モード値「2」であれば、波形発生器OSC9〜OSC32から入力される波形を、8個の通過周波数帯域に分割濾波する。加算器K17〜K24は、加算器K9〜K16の各出力とバンドパスフィルタBPF C1〜BPF C8の各出力とを加算する。加算器K17〜K24の各出力を被変調波形と称す。乗算器J1〜J8は、加算器K17〜K24の各出力に対し、上述した分析部の加算器K1〜K8の各出力を乗算する。加算器25は、乗算器J1〜J8の各出力を加算して楽音出力outを発生する。
このように、音源10では、分析部から出力される変調波形により合成部で生成される被変調波形を変調(乗算)する構成を有し、こうした構成において分析部から出力される変調波形および合成部にて生成される被変調波形の各波形内容がCPU3から供給されるモード値Veに応じて選択されることに特徴があり、そうしたことが意図するところについては追って述べる。
(3)ROM4の構成
次に、図3を参照してROM4のデータエリアに格納される波形パラメータWPの構成について説明する。図3は、ROM4のデータエリアに128種類の波形パラメータWP[0]〜WP[127]が格納された一例を図示している。1つの波形パラメータWPは、波形ROM11に格納される原波形データの読み出し属性を表す原波形パラメータPt0〜Lea0と、波形ROM11に格納される分析波形データの読み出し属性を表す分析波形パラメータSa1[0]〜Lea1[7]と、波形ROM11に格納されるエンベロープ波形データの読み出し属性を表すエンベロープ波形パラメータSa2[0]〜Lea2[7]とから構成される。
原波形パラメータPt0〜Lea0は、対応する原波形データのピッチを表すオリジナルピッチPt0、原波形データの読み出し開始アドレスSa0、ループ読み出し開始アドレスLsa0およびループ読み出し終了アドレスLea0から構成される。
分析波形データとは、分析フィルタバンク(前述したバンドパスフィルタBPF M1〜BPF M8に相当)を用いて事前に原波形データを周波数分析し、人声のフォルマント周波数に対応させた通過周波数帯域毎のフォルマント成分を表すデータである。つまり、分析波形データは8つの通過周波数帯域に対応した8つのフォルマント成分の波形データとなる。
各フォルマント成分の分析波形パラメータSa1[0]〜Lea1[7]は、対応する分析波形データの読み出し開始アドレスSa1[0]〜Sa1[7]と、ループ読み出し開始アドレスLsa1[0]〜Lsa1[7]と、ループ読み出し終了アドレスLea1[0]〜Lea1[7]とから構成される。
エンベロープ波形データとは、分析フィルタバンク(前述したバンドパスフィルタBPF M1〜BPF M8に相当)を用いて事前に原波形データを周波数分析し、人声のフォルマント周波数に対応させた通過周波数帯域毎のフォルマント成分を表す分析波形データからエンベロープ検出した波形データである。ここで、エンベロープ波形データの一例を図4に図示する。図4は、モード値Veが「2」又は「4」の場合に、音源10の波形発生器OSC1〜OSC8(図2参照)に割り当てる各フォルマント成分のエンベロープ波形データを図示したものである。
各フォルマント成分のエンベロープ波形パラメータSa2[0]〜Lea2[7]は、対応するエンベロープ波形データの読み出し開始アドレスSa2[0]〜Sa2[7]、ループ読み出し開始アドレスLsa2[0]〜Lsa2[7]およびループ読み出し終了アドレスLea2[0]〜Lea2[7]から構成される。
(4)RAM5の構成
次に、図5を参照してRAM5の主要レジスタの構成について説明する。図5において、レジスタVeにはモードスイッチ操作により設定されるモード値Veが格納される。レジスタVmpには変調波形番号が格納される。レジスタVmpに格納される変調波形番号は、人声音の原波形データ、分析波形データおよびエンベロープ波形データのいずれかを指定する。レジスタVmsには変調波形読み出し速度が格納される。
レジスタVcpには被変調波形番号が格納される。レジスタVcpに格納される被変調波形番号は、楽器音の原波形データ、分析波形データおよびエンベロープ波形データのいずれかを指定する。カウンタKcは押鍵数を計数する。レジスタCosには被変調波形を発生するように割当てられた波形発生器OSCの先頭番号が格納される。レジスタNn[0]〜Nn[31]には、各波形発生器OSC1〜OSC32に割当てられた鍵番号kが各々格納される。
レジスタCa[0]〜Ca[31]には、各波形発生器OSC1〜OSC32における現在読み出しアドレスが各々格納される。レジスタLsa[0]〜Lsa[31]には各波形発生器OSC1〜OSC32に割当てられたループ読み出し開始アドレスが各々格納される。レジスタLea[0]〜Lea[31]には各波形発生器OSC1〜OSC32に割当てられたループ読み出し終了アドレスが各々格納される。レジスタPt[0]〜Pt[31]には各波形発生器OSC1〜OSC32における波形読み出し速度が各々格納される。
B.動作
次に、図6〜図11を参照して、上記構成による実施形態の動作を説明する。以下では、最初に全体の概略動作としてCPU3が実行するメインルーチンの動作を説明した後、このメインルーチンを構成するスイッチ処理および鍵盤処理、並びに音源10が所定周期毎に実行する発音タイマ処理の各動作について説明する。
(1)メインルーチンの動作
上記構成による電子楽器がパワーオンされると、CPU3は図6に示すメインルーチンを実行してステップSA1に処理を進め、RAM5に格納される各種レジスタやフラグ類をリセットしたり初期値をセットする他、音源10にイニシャライズを指示する初期化処理を行う。そして、イニシャライズ完了後、ステップSA2に進み、スイッチ部2のスイッチ操作に応じたスイッチ処理、例えばモードスイッチ操作に応じて動作モードを設定する等の処理を実行する。
続いて、ステップSA3では、鍵盤1の押離鍵操作に応じた楽音の発音/消音を音源10に指示する鍵盤処理を実行する。そして、ステップSA4では、例えば上記ステップSA2のスイッチ処理にて設定された動作モードの内容を表示部6に表示する処理等の、その他の処理を実行する。以後、電源がオフされるまで上述のステップSA2〜SA4を繰り返し実行する。
(1)スイッチ処理の動作
次に、図7を参照してスイッチ処理の動作を説明する。上述したメインルーチンのステップSA2(図6参照)を介して本処理が実行されると、CPU3は図7に図示するステップSB1に進み、モードスイッチ操作によりモード値Veが変更されたか否かを判断する。モードスイッチ操作が行われず、モード値Veに変更が無ければ、判断結果は「NO」となり、ステップSB7に進む。ステップSB7では、例えば音色パラメータ選択スイッチの操作により設定される変調波形番号や被変調波形番号を、それぞれレジスタVmp、レジスタVcpにストアしたり、変調波形音高指定スイッチ操作により設定される基準音高に対応した変調波形読み出し速度をレジスタVmsにストアする等の、その他のスイッチ処理を実行して本処理を終える。
一方、モードスイッチ操作によりモード値Veが変更されると、上記ステップSB1の判断結果が「YES」になり、ステップSB2に進む。ステップSB2では、音源10にオールノートオフイベントを供給し、当該音源10の波形発生部が備える波形発生器OSC1〜OSC32に波形発生停止を指示する全OSC消音処理を行う。また、ステップSB2では、全OSC消音処理に伴い、各波形発生器OSC1〜OSC32の現在読み出しアドレスを一時記憶するレジスタCa[0]〜Ca[31]に波形発生停止中を表す値「−1」をストアする。次いで、ステップSB3以降では、モードスイッチ操作に応じて変更されたモード値Veに対応する処理を実行する。以下、モード値Ve別に動作を説明する。
<モード値Veが「0」の場合>
前述したように、モード値Veが「0」の場合には、音源10における波形発生部の波形発生器OSC1〜OSC32(図2参照)の波形出力を、音源10の合成部の加算器K25に直接入力する形態である。つまり、被変調波形を変調波形にて変調してボコーダ音を形成する形態ではなく、全ての波形発生器OSC1〜OSC32を楽器音形成に割り当て可能な状態なので、ステップSB4に進み、被変調波形用OSC先頭番号を保持するレジスタCosに「0」をストアした後、上述のステップSB7を実行してから本処理を終える。
<モード値Veが「1」の場合>
モード値Veが「1」の場合には、音源10における波形発生器OSC1の波形出力を分析部のバンドパスフィルタBPF M1〜BPF M8に入力すると共に、他の波形発生器OSC2〜OSC32の波形出力を合成部のバンドパスフィルタBPF C1〜BPF C8に入力する形態である。つまり、被変調波形は波形発生器OSC2〜OSC32に割り当て可能になるので、ステップSB5に進み、波形発生器OSC2を指定する被変調波形用OSC先頭番号「1」をレジスタCosにストアした後、上述のステップSB7を実行してから本処理を終える。
<モード値Veが「2」の場合>
モード値Veが「2」の場合には、音源10における波形発生器OSC1〜OSC8の波形出力を分析部の加算器K1〜K8にそれぞれ入力すると共に、他の波形発生器OSC9〜OSC32の波形出力を合成部のバンドパスフィルタBPF C1〜BPF C8に入力する形態である。つまり、被変調波形は波形発生器OSC9〜OSC32に割り当て可能になるので、ステップSB6に進み、波形発生器OSC9を指定する被変調波形用OSC先頭番号「8」をレジスタCosにストアした後、上述のステップSB7を実行してから本処理を終える。
<モード値Veが「3」の場合>
モード値Veが「3」の場合には、音源10における波形発生器OSC1の波形出力を分析部のバンドパスフィルタBPF M1〜BPF M8に入力すると共に、波形発生器OSC9〜OSC32の波形出力を合成部の加算器K9〜K16を介して当該合成部の加算器K17〜K24にそれぞれ入力する形態である。つまり、被変調波形は波形発生器OSC9〜OSC32に割り当て可能になるので、ステップSB6に進み、波形発生器OSC9を指定する被変調波形用OSC先頭番号「8」をレジスタCosにストアした後、上述のステップSB7を実行してから本処理を終える。
<モード値Veが「4」の場合>
モード値Veが「4」の場合には、音源10における波形発生器OSC1〜OSC8の波形出力を分析部の加算器K1〜K8にそれぞれ入力すると共に、波形発生器OSC9〜OSC32の波形出力を合成部の加算器K9〜K16を介して当該合成部の加算器K17〜K24にそれぞれ入力する形態である。つまり、被変調波形は波形発生器OSC9〜OSC32に割り当て可能になるので、ステップSB6に進み、波形発生器OSC9を指定する被変調波形用OSC先頭番号「8」をレジスタCosにストアした後、上述のステップSB7を実行してから本処理を終える。
(2)鍵盤処理の動作
次に、図8〜図9を参照して鍵盤処理の動作を説明する。上述したメインルーチンのステップSA3(図6参照)を介して本処理が実行されると、CPU3は図8に図示するステップSC1に進み、鍵盤1の鍵状態を検出する鍵走査を行い、この鍵走査により得られた鍵状態が「鍵変化無し」、「鍵番号kの押鍵」および「鍵番号kの離鍵」のいずれであるかを判断する。鍵変化無しの場合には、何も行わずに本処理を完了させる。鍵番号kの押鍵の場合には、ステップSC2〜SC10を実行する。鍵番号kの離鍵の場合には、ステップSC11〜SC15を実行する。以下、鍵番号kの押鍵の場合と、鍵番号kの離鍵の場合とに分けて説明を進める。
a.鍵番号kの押鍵の場合
鍵番号kの押鍵であると、ステップSC2に進み、押鍵数を計数するカウンタKc(以後、押鍵数Kcと記す)をインクリメントして歩進させる。次いで、ステップSC3では、歩進された押鍵数Kcが「1」、すなわち全鍵離鍵状態からの押鍵であるか否かを判断する。以下、全鍵離鍵状態からの押鍵の場合と、そうでない場合とに分けて動作を説明する。
<全鍵離鍵状態からの押鍵である場合>
この場合、ステップSC3の判断結果が「YES」になり、ステップSC4に進み、現在設定されているモード値Veを判断する。モード値Veが「0」であると、全鍵離鍵状態からの押鍵でない場合(後述する)と同様に、図9に示すステップSC7に進む。
モード値Veが「1」又は「3」であると、ステップSC5に進む。ステップSC5では、ROM4に格納される波形パラメータWP[0]〜WP[127]の内、レジスタVmpに格納される変調波形番号で指定される波形パラメータWP[Vmp]における、原波形データの読み出し開始アドレスWP[Vmp].Sa0をレジスタCa[0]に、原波形データのループ読み出し開始アドレスWP[Vmp].Lsa0をレジスタLsa[0]に、原波形データのループ読み出し終了アドレスWP[Vmp].Lea0をレジスタLea[0]にストアすると共に、レジスタVmsに格納される変調波形読み出し速度をレジスタPt[0]にストアした後、後述のステップSC7に進む。
これにより、モード値Veが「1」又は「3」の場合には、全鍵離鍵状態からの押鍵に応じて、音源10の波形発生器OSC1に割り当てる波形属性が設定され、この波形属性を参照して波形発生器OSC1が波形出力する。
すなわち、音源10の波形発生器OSC1は、レジスタCa[0]の読み出し開始アドレスWP[Vmp].Sa0、レジスタLsa[0]のループ読み出し開始アドレスWP[Vmp].Lsa0およびレジスタLea[0]のループ読み出し終了アドレスWP[Vmp].Lea0により指定される原波形データを、レジスタPt[0]の変調波形読み出し速度に従って波形ROM11から読み出して波形出力する。
これに対し、モード値Veが「2」又は「4」であると、ステップSC6に進む。ステップSC6では、ROM4の波形パラメータWP[0]〜WP[127]の内、変調波形番号Vmpで指定される波形パラメータWP[Vmp]における、各フォルマント成分のエンベロープ波形データの読み出し開始アドレスWP[Vmp].Sa2[0]〜WP[Vmp].Sa2[7]をそれぞれレジスタCa[0]〜Ca[7]に、ループ読み出し開始アドレスWP[Vmp].Lsa2[0]〜WP[Vmp].Lsa2[7]をそれぞれレジスタLsa[0]〜Lsa[7]に、ループ読み出し終了アドレスWP[Vmp].Lea2[0]〜WP[Vmp].Lea2[7]をそれぞれレジスタLea[0]〜Lea[7]にストアすると共に、対応する原波形データのオリジナルピッチWP[Vmp].Pt0をレジスタPt[0]〜Pt[7]にストアした後、後述のステップSC7に進む。
これにより、モード値Veが「2」又は「4」の場合には、全鍵離鍵状態からの押鍵に応じて、音源10の波形発生器OSC1〜OSC8に割り当てる波形属性が設定され、この波形属性を参照して波形発生器OSC1〜OSC8が波形出力する。
すなわち、音源10の波形発生器OSC1〜OSC8は、レジスタCa[0]〜Ca[7]の読み出し開始アドレスWP[Vmp].Sa2[0]〜WP[Vmp].Sa2[7]、レジスタLsa[0]〜Lsa[7]のループ読み出し開始アドレスWP[Vmp].Lsa2[0]〜WP[Vmp].Lsa2[7]およびレジスタLea[0]〜Lea[7]のループ読み出し終了アドレスWP[Vmp].Lea2[0]〜WP[Vmp].Lea2[7]により指定される各フォルマント成分のエンベロープ波形データを、レジスタPt[0]〜Pt[7]のオリジナルピッチWP[Vmp].Pt0に従って波形ROM11から読み出して波形出力する。
<全鍵離鍵状態からの押鍵でない場合>
この場合、ステップSC3の判断結果が「NO」になり、図9に図示するステップSC7に進む。ステップSC7では、レジスタCosに格納される被変調波形用OSC先頭番号から「31」の範囲でレジスタCa[s]=−1なるポインタsが存在するか否か、つまりレジスタCosに格納される被変調波形用OSC先頭番号で指定される波形発生器OSC(Cos+1)から波形発生器OSC32の内から発音割り当てされていない波形発生器OSCを検索する。該当する波形発生器OSCが存在しなければ、判断結果は「NO」になり、本処理を完了させるが、発音割り当てされていない波形発生器OSCが存在すると、上記ステップSC7の判断結果は「YES」になり、ステップSC8に進み、現在のモード値Veを判断する。
モード値Veが「0」、「1」、「2」のいずれかであると、ステップSC9に進む。ステップSC9では、押鍵された鍵の鍵番号kを、発音割り当てされていない波形発生器OSC(s+1)を表すポインタsで指定されるレジスタNn[s]にストアする。また、ステップSC9では、ROM4に格納される波形パラメータWP[0]〜WP[127]の内、レジスタVcpに格納される被変調波形番号で指定される波形パラメータWP[Vcp]における、原波形データの読み出し開始アドレスWP[Vcp].Sa0をレジスタCa[s]に、原波形データのループ読み出し開始アドレスWP[Vcp].Lsa0をレジスタLsa[s]に、原波形データのループ読み出し終了アドレスWP[Vcp].Lea0をレジスタLea[s]にストアすると共に、押鍵された鍵の鍵番号kに対応するピッチ(被変調波形読み出し速度)をレジスタPt[s]にストアして本処理を終える。
これにより、モード値Veが「0」、「1」、「2」のいずれかの場合には、押鍵に応じて、発音割り当てされていない波形発生器OSC(s+1)を探し出し、この波形発生器OSC(s+1)に割り当てる波形属性が設定され、この波形属性を参照して波形発生器OSC(s+1)が波形出力する。
すなわち、押鍵時点で発音割り当てされていない音源10の波形発生器OSC(s+1)は、押鍵に応じて、レジスタCa[s]の読み出し開始アドレスWP[Vcp].Sa0、レジスタLsa[s]のループ読み出し開始アドレスWP[Vcp].Lsa0およびレジスタLea[s]のループ読み出し終了アドレスWP[Vcp].Lea0により指定される原波形データを、レジスタPt[s]の被変調波形読み出し速度に従って波形ROM11から読み出して波形出力する。
モード値Veが「3」又は「4」の場合には、ステップSC10に進む。ステップSC10では、押鍵された鍵の鍵番号kを、発音割り当てされていない波形発生器OSC(s+1)を表すポインタsで指定されるレジスタNn[s]〜Nn[s+7]にストアする。また、ステップSC10では、ROM4に格納される波形パラメータWP[0]〜WP[127]の内、レジスタVcpに格納される被変調波形番号で指定される波形パラメータWP[Vcp]における、各フォルマント成分の分析波形データの読み出し開始アドレスWP[Vcp].Sa1[s]〜WP[Vcp].Sa1[s+7]をレジスタCa[s]〜Ca[s+7]に、各フォルマント成分の分析波形データのループ読み出し開始アドレスWP[Vcp].Lsa1[s]〜WP[Vcp].Lsa1[s+7]をレジスタLsa[s]〜Lsa[s+7]に、各フォルマント成分の分析波形データのループ読み出し終了アドレスWP[Vcp].Lea1[s]〜WP[Vcp].Lea1[s+7]をレジスタLea[s]〜Lea[s+7]にそれぞれストアすると共に、対応する原波形データのオリジナルピッチWP[Vcp].Pt0をレジスタPt[s]〜Pt[s+7]にストアして本処理を終える。
これにより、モード値Veが「3」又は「4」の場合には、押鍵に応じて、発音割り当てされていない波形発生器OSC(s+1)を探し出し、この波形発生器OSC(s+1)から連続する8個の波形発生器OSCにそれぞれ割り当てる波形属性が設定され、これら波形属性を参照して波形発生器OSC(s+1)から連続する8個の波形発生器OSCが各々波形出力する。
すなわち、波形発生器OSC(s+1)から連続する8個の波形発生器OSCは、押鍵に応じて、レジスタCa[s]〜Ca[s+7]の読み出し開始アドレスWP[Vcp].Sa1[s]〜WP[Vcp].Sa1[s+7]、レジスタLsa[s]〜Lsa[s+7]のループ読み出し開始アドレスWP[Vcp].Lsa1[s]〜WP[Vcp].Lsa1[s+7]、レジスタLea[s]〜Lea[s+7]のループ読み出し終了アドレスWP[Vcp].Lea1[s]〜WP[Vcp].Lea1[s+7]により指定される各フォルマント成分の分析波形データを、レジスタPt[s]〜Pt[s+7]のオリジナルピッチWP[Vcp].Pt0に従って波形ROM11から読み出して波形出力する。
b.鍵番号kの離鍵の場合
鍵番号kの離鍵であると、図8に示すステップSC11に進み、押鍵数Kcをデクリメントする。次いで、ステップSC12では、レジスタCosに格納される被変調波形用OSC先頭番号から「31」の範囲でレジスタNn[s]=kなるポインタsが存在するか否か、つまりレジスタCosに格納される被変調波形用OSC先頭番号で指定される波形発生器OSC(Cos+1)から波形発生器OSC32の内、離鍵された鍵の鍵番号kが割り当てられた波形発生器OSCを検索する。該当する波形発生器OSCが存在しなければ、判断結果は「NO」になり、本処理を完了させるが、離鍵された鍵の鍵番号kが割り当てられた波形発生器OSCが存在すると、上記ステップSC12の判断結果は「YES」になり、ステップSC13に進み、現在のモード値Veを判断する。
モード値Veが「0」、「1」、「2」のいずれかであると、ステップSC14に進む。ステップSC14では、ポインタsで指定され、離鍵された鍵の鍵番号kが割り当てられた波形発生器OSC(s+1)の消音を音源10に指示すると共に、レジスタCa[s]に波形発生停止中を表す値「−1」をストアして本処理を終える。これにより、音源10では、離鍵された鍵の鍵番号kが割り当てられた波形発生器OSC(s+1)の波形発生を停止させる。
モード値Veが「3」又は「4」の場合には、ステップSC15に進む。ステップSC15では、ポインタs〜s+7で指定され、離鍵された鍵の鍵番号kが割り当てられた8つの波形発生器OSC(s+1)〜OSC(s+8)の消音を音源10に指示すると共に、レジスタCa[s]〜Ca[s+7]に波形発生停止中を表す値「−1」をストアして本処理を終える。これにより、音源10では、離鍵された鍵の鍵番号kが割り当てられた8つの波形発生器OSC(s+1)〜OSC(s+8)の波形発生を停止させる。
(3)発音タイマ処理の動作
次に、図10〜図11を参照して音源10が実行する発音タイマ処理の動作を説明する。音源10はタイマ割込みにより所定周期毎に本処理を実行しており、その実行タイミングになると、図10に図示するステップSD1に進む。ステップSD1では、レジスタAd、Act、Amt、Ac[0]〜Ac[7]、Am[0]〜Am[7]およびポインタnをゼロリセットする。
なお、レジスタAdは、音源10の合成部の加算器K25(図2参照)に直接入力される波形値を保持する。レジスタActは、音源10の合成部のバンドパスフィルタBPF C1〜BPF C8(図2参照)に入力される波形値を保持する。レジスタAmtは、音源10の分析部のバンドパスフィルタBPF M1〜BPF M8(図2参照)に入力される波形値を保持する。レジスタAc[0]〜Ac[7]は、音源部10の合成部の加算器K17〜K24(図2参照)にそれぞれ入力される波形値を保持する。レジスタAm[0]〜Am[7]は、音源部10の分析部の加算器K1〜K8(図2参照)にそれぞれ入力される波形値を保持する。ポインタnは、音源10の波形発生器OSC1〜OSC32を指定する。
次いで、ステップSD2では、ポインタnで指定されるレジスタCa[n]の値が波形発生停止中を表す値「−1」であるか否か、つまりポインタnで指定される波形発生器OSC(n+1)が消音中であるかどうかを判断する。波形発生器OSC(n+1)が消音中であれば、判断結果は「YES」になり、ステップSD11に進み、ポインタnをインクリメントして歩進させる。そして、ステップSD12では、歩進されたポインタnの値が「32」に達したか否か、すなわち全ての波形発生器OSC1〜OSC32について消音中か否かをチェックし終えたかどうかを判断する。チェックし終えていなければ、判断結果は「NO」になり、再びステップSD2に処理を戻す。
そして、ステップSD2において、発音中(波形発生中)の波形発生器OSCが見つかると、当該ステップSD2の判断結果が「NO」になり、ステップSD3に進む。ステップSD3では、ポインタnで指定されるレジスタCa[n]にレジスタPt[n]の波形読み出し速度を加算し、レジスタCa[n]の現在読み出しアドレスを更新する。また、ステップSD3では、波形読み出し速度Pt[n]を加算した現在読み出しアドレスCa[n]がループ読み出し終了アドレスLea[n]を超えた場合には、現在読み出しアドレスCa[n]からループ読み出し終了アドレスLea[n]を減算した値にループ読み出し開始アドレスLsa[n]を加算し、これを現在読み出しアドレスCa[n]として更新する。
次いで、ステップSD4では、上記ステップSD3にて更新された現在読み出しアドレスCa[n]に応じて波形ROM11から波形データを読み出し、読み出した波形データに補間処理を施して波形値dを発生する。なお、ここで言う補間処理とは、整数部アドレスで読み出した波形データを小数部アドレスで内挿する処理を指す。こうして、ポインタnで指定される波形発生器OSC(n+1)における新たな波形値dが生成されると、ステップSD5以降を実行してモード値Veに応じた波形形成を行う。以下、モード値Ve別の波形形成動作について述べる。
<モード値Veが「0」の場合>
この場合、ステップSD5を介してステップSD6に進み、上記ステップSD4にて生成した波形値dをレジスタAdに加算した後、上述したステップSD11に進む。
したがって、モード値Veが「0」であると、全ての波形発生器OSC1〜OSC32の各波形出力がレジスタAdで累算される。
<モード値Veが「1」の場合>
この場合、ステップSD5を介してステップSD7に進む。ステップSD7では、ポインタnの値が「0」であれば、波形発生器OSC1が発生した波形値dをレジスタAmtにストアし、ポインタnの値が「0」より大きければ、波形発生器OSC2〜OSC32が発生した波形値dをレジスタActに加算した後、上述したステップSD11に進む。
したがって、モード値Veが「1」であると、波形発生器OSC1の波形出力がレジスタAmtに保持され、波形発生器OSC2〜OSC32の各波形出力がレジスタActで累算される。
<モード値Veが「2」の場合>
この場合、ステップSD5を介してステップSD8に進む。ステップSD8では、ポインタnの値が「0」〜「7」であれば、そのポインタnで指定されるレジスタAm[0]〜Am[7]に、波形発生器OSC1〜OSC8が発生した波形値dをそれぞれストアし、ポインタnの値が「8」以上では、波形発生器OSC9〜OSC32が発生した各波形値dをレジスタActに加算した後、上述したステップSD11に進む。
したがって、モード値Veが「2」であれば、波形発生器OSC1〜OSC8の各波形出力がレジスタAm[0]〜Am[7]に保持され、波形発生器OSC9〜OSC32の各波形出力がレジスタActで累算される。
<モード値Veが「3」の場合>
この場合、ステップSD5を介してステップSD9に進む。ステップSD9では、ポインタnの値が「0」であれば、波形発生器OSC1が発生した波形値dをレジスタAmtにストアする。また、ステップSD9では、ポインタnの値が「8」以上であれば、ポインタnの「8」の剰余で指定されるレジスタAc[0]〜Ac[7]に、対応する波形発生器OSC9〜OSC32が発生した波形値dを加算する。すなわちレジスタAc[0]では、波形発生器OSC9、OSC17およびOSC25の各波形値dを加算し、レジスタAc[1]では、波形発生器OSC10、OSC18およびOSC26の各波形値dを加算する。以後、同様にして、レジスタAc[7]では、波形発生器OSC16、OSC24およびOSC32の各波形値dを加算する。
したがって、モード値Veが「3」であれば、波形発生器OSC1の波形出力がレジスタAmtに保持され、合成部の加算器K17〜K24(図2参照)にそれぞれ入力される波形発生器OSC9〜OSC32の波形出力がレジスタAc[0]〜Ac[7]にて加算される。
<モード値Veが「4」の場合>
この場合、ステップSD5を介してステップSD10に進む。ステップSD10では、ポインタnの値が「0」〜「7」であれば、そのポインタnで指定されるレジスタAm[0]〜Am[7]に、波形発生器OSC1〜OSC8が発生した波形値dをそれぞれストアする。また、ステップSD10では、ポインタnの値が「8」以上であれば、ポインタnの「8」の剰余で指定されるレジスタAc[0]〜Ac[7]に、対応する波形発生器OSC9〜OSC32が発生した波形値dを加算する。すなわちレジスタAc[0]では、波形発生器OSC9、OSC17およびOSC25の各波形値dを加算し、レジスタAc[1]では、波形発生器OSC10、OSC18およびOSC26の各波形値dを加算する。以後、同様にして、レジスタAc[7]では、波形発生器OSC16、OSC24およびOSC32の各波形値dを加算する。
したがって、モード値Veが「4」であれば、波形発生器OSC1〜OSC8の各波形出力がレジスタAm[0]〜Am[7]に保持され、合成部の加算器K17〜K24(図2参照)にそれぞれ入力される波形発生器OSC9〜OSC32の波形出力がレジスタAc[0]〜Ac[7]にて加算される。
以上のようにして、モード値Veに応じた波形発生器OSC1〜OSC32の波形形成を終えると、ステップSD12の判断結果が「YES」となり、音源10は図11に図示するステップSD13に進む。ステップSD13以降では、モード値Veに応じて波形出力する。以下、モード値Ve別の波形出力動作について述べる。
<モード値Veが「0」の場合>
この場合、ステップSD13を介してステップSD14に進む。ステップSD14では、レジスタAdにて累算された波形発生器OSC1〜OSC32の各波形出力をレジスタOutputにストアし、続くステップSD15では、そのレジスタOutputの内容を楽音出力outとして出力する。
<モード値Veが「1」の場合>
この場合、ステップSD13を介してステップSD16に進む。ステップSD16では、レジスタAmtに格納される波形発生器OSC1の波形出力を、分析部のバンドパスフィルタBPF M1〜BPF M8(図2参照)に入力し、さらにバンドパスフィルタBPF M1〜BPF M8の各後段に設けられるエンベロープ検出器ENVにてそれぞれ抽出されるフォルマント成分のエンベロープ波形を、分析部の加算器K1〜K8(図2参照)にそれぞれ入力する波形としてレジスタAm[0]〜Am[7]にストアする。
また、ステップSD16では、レジスタActにて累算された波形発生器OSC2〜OSC32の各波形出力を、合成部のバンドパスフィルタBPF C1〜BPF C8(図2参照)に入力して抽出される各フォルマント成分を、合成部の加算器K17〜K24(図2参照)にそれぞれ入力する波形としてレジスタAc[0]〜Ac[7]にストアする。
次いで、ステップSD17では、合成部の乗算器J1〜J8(図2参照)において、分析部の加算器K1〜K8の各出力(変調波形)によって合成部の加算器K17〜K24の各出力(被変調波形)を乗算(変調)して変調後波形データを生成し、レジスタOutputにストアした後、ステップSD15に進み、レジスタOutputに格納された変調後波形データを楽音出力outとして出力する。
上記ステップSD17において、モード値Veが「1」であると、変調波形はレジスタAm[0]〜Am[7]に格納され、波形発生器OSC1の波形出力から抽出した各フォルマント成分のエンベロープ波形である。一方、被変調波形はレジスタAc[0]〜Ac[7]に格納され、波形発生器OSC2〜OSC32の各波形累算値から抽出した各フォルマント成分の波形である。
<モード値Veが「2」の場合>
この場合、ステップSD13を介してステップSD18に進む。ステップSD18では、レジスタActにて累算された波形発生器OSC9〜OSC32の各波形出力を、合成部のバンドパスフィルタBPF C1〜BPF C8(図2参照)に入力して抽出される各フォルマント成分を、合成部の加算器K17〜K24(図2参照)にそれぞれ入力する波形としてレジスタAc[0]〜Ac[7]にストアする。
そして、ステップSD17に進み、合成部の乗算器J1〜J8において、分析部の加算器K1〜K8の各出力(変調波形)によって合成部の加算器K17〜K24の各出力(被変調波形)を乗算(変調)して変調後波形データを生成し、レジスタOutputにストアした後、ステップSD15に進み、レジスタOutputに格納された変調後波形データを楽音出力outとして出力する。
上記ステップSD17において、モード値Veが「2」であると、変調波形は前述したステップSD8(図10参照)においてレジスタAm[0]〜Am[7]に格納され、波形発生器OSC1〜OSC8の各波形出力である。一方、被変調波形は、レジスタAc[0]〜Ac[7]に格納され、波形発生器OSC9〜OSC32の各波形累算値から抽出した各フォルマント成分の波形である。
<モード値Veが「3」の場合>
この場合、ステップSD13を介してステップSD19に進む。ステップSD19では、レジスタAmtに格納される波形発生器OSC1の波形出力を、分析部のバンドパスフィルタBPF M1〜BPF M8(図2参照)に入力し、さらにバンドパスフィルタBPF M1〜BPF M8の各後段に設けられるエンベロープ検出器ENVにてそれぞれ抽出されるフォルマント成分のエンベロープレベル(エンベロープ波形)を、分析部の加算器K1〜K8(図2参照)にそれぞれ入力する波形としてレジスタAm[0]〜Am[7]にストアする。
次いで、ステップSD17では、合成部の乗算器J1〜J8において、分析部の加算器K1〜K8の各出力(変調波形)によって合成部の加算器K17〜K24の各出力(被変調波形)を乗算(変調)して変調後波形データを生成し、レジスタOutputにストアした後、ステップSD15に進み、レジスタOutputに格納された変調後波形データを楽音出力outとして出力する。
上記ステップSD17において、モード値Veが「3」であると、変調波形はレジスタAm[0]〜Am[7]に格納され、波形発生器OSC1の波形出力から抽出した各フォルマント成分のエンベロープ波形である。一方、被変調波形は前述したステップSD9(図10参照)においてレジスタAc[0]〜Ac[7]に格納され、合成部の加算器K17〜K24(図2参照)にそれぞれ入力される波形発生器OSC9〜OSC32の波形出力である。
<モード値Veが「4」の場合>
この場合、ステップSD13を介してステップSD17に進む。ステップSD17では、合成部の乗算器J1〜J8において、分析部の加算器K1〜K8の各出力(変調波形)によって合成部の加算器K17〜K24の各出力(被変調波形)を乗算(変調)して変調後波形データを生成し、レジスタOutputにストアした後、ステップSD15に進み、レジスタOutputに格納された変調後波形データを楽音出力outとして出力する。
上記ステップSD17において、モード値Veが「4」であると、変調波形は前述したステップSD10(図10参照)においてレジスタAm[0]〜Am[7]に格納され、波形発生器OSC1〜OSC8の各波形出力である。一方、被変調波形はレジスタAc[0]〜Ac[7]に格納され、合成部の加算器K17〜K24(図2参照)にそれぞれ入力される波形発生器OSC9〜OSC32の波形出力である。
以上説明したように、本実施の形態では、モード値Veが「2」の場合には、一定の読み出し速度で波形発生器OSC1〜OSC8が発生する固定的なフォルマント成分のエンベロープ波形データ(変調波形)によって、押鍵に応じたピッチで波形発生器OSC9〜OSC32が発生する各波形の累算値から抽出した各フォルマント成分の波形(被変調波形)を変調するので、同じフォルマントを異なるピッチで発音させることができる。加えて、モード値Veが「2」の場合には、音源10のバンドパスフィルタBPF M1〜BPF M8を用いたリアルタイムの周波数分析を行わない為、音源10における処理動作の負荷低減を図ることもできる。
また、モード値Veが「3」の場合には、予め設定した読み出し速度Vmsで波形発生器OSC1が発生する原波形データから抽出した各フォルマント成分のエンベロープ波形データ(変調波形)によって、原波形データのオリジナルピッチで波形発生器OSC9〜OSC32が発生する固定的なフォルマント成分の分析波形データ(被変調波形)が変調される。上述の実施形態では、説明の簡略化を図る為、読み出し速度Vmsを固定的なものとしたが、例えば押鍵される鍵の鍵番号kに応じて読み出し速度Vmsを変化させたり、あるいは押鍵される鍵に応じて変調波形番号Vmpを変化させ、演奏操作に応じて変調波形を異ならせる態様とすれば、同じフレーズを異なるフォルマントで発音させることができる。加えて、モード値Veが「3」の場合には、音源10のバンドパスフィルタBPF C1〜BPF C8を用いたリアルタイムの周波数分析を行わない為、音源10における処理動作の負荷低減を図ることもできる。
なお、上述した実施形態では、モード値Veが「2」又は「4」の場合に、波形ROM11に記憶した各フォルマント成分のエンベロープ波形データを読み出して変調波形として使用するようにしたが、これに替えて各フォルマント成分の分析波形データを波形ROM11から読み出して分析部のエンベロープ検出器ENVに入力させ、これにより各フォルマント成分のエンベロープ波形データからなる変調波形を形成する態様としても構わない。このようにすれば、各フォルマント成分のエンベロープ波形データを波形ROM11に記憶する必要がなくなる為、波形ROM11のメモリ容量を削減できる。
また、本実施の形態では、ユーザ操作でモード値Veを選択するようにしたが、これに替えて音源10の負荷に応じてCPU3が自動的に選択する態様、例えば、同時発音数が多い高負荷時にはフォルマント成分をリアルタイム抽出する周波数分析を行わないモード値Ve「4」を選択し、負荷が低い時にはモード値「1」を選択することも可能である。
さらに、被変調用に分析波形データを使用する際には、被変調波形の各フォルマント成分の振幅値にかかわらず常に8個の波形発生器OSCを占有するようにしたが、被変調波形の振幅値が小さいフォルマント成分については対応する波形発生器OSCの波形発生を停止させるようにしてもよい。このようにすれば、波形発生器OSCの占有率が低減する為、同時発音数を増加させることが可能になる。
加えて、本実施形態では、波形ROM11に原波形データ、分析波形データおよびエンベロープ波形データを予め記憶しておく態様としたが、これに限らず、マイク8およびA/D変換器9を用いてサンプリングした原波形データをRAM5のデータエリアに保存しておき、音源10の分析部を用いてRAM5に保存した原波形データに周波数分析およびエンベープ検出を施して分析波形データおよびエンベロープ波形データを生成してRAM5のデータエリアに保存する態様とすることも可能である。
本発明による一実施形態の全体構成を示すブロック図である。 音源10の構成を示すブロック図である。 ROM4に記憶される波形パラメータWPの構成を示す図である。 波形発生器OSC1〜OSC8に割り当てた各フォルマント成分のエンベロープ波形データの一例を示す図である。 RAM5に設けられる主要レジスタ構成を示す図である。 メインルーチンの動作を示すフローチャートである。 スイッチ処理の動作を示すフローチャートである。 鍵盤処理の動作を示すフローチャートである。 鍵盤処理の動作を示すフローチャートである。 発音タイマ処理の動作を示すフローチャートである。 発音タイマ処理の動作を示すフローチャートである。
符号の説明
1 鍵盤
2 スイッチ部
3 CPU
4 ROM
5 RAM
6 表示部
7 MIDIインタフェース
8 マイク
9 A/D変換器
10 音源
11 波形ROM
12 サウンドシステム

Claims (6)

  1. 人声のフォルマント成分毎の変調波形を記憶する第1の記憶手段と、
    楽音波形を人声のフォルマント成分別に濾波した被変調波形を記憶する第2の記憶手段と、
    第1及び第2のモードのいずれか一方のモードに設定するモード設定手段と、
    このモード設定手段により第1のモードが設定されているとき、演奏操作に対応して生成される楽音波形を、人声のフォルマント成分別に濾波して被変調波形を形成する被変調波形形成手段と、
    前記第1のモードが設定されているとき、前記演奏操作に対応して前記第1の記憶手段から読み出される人声のフォルマント成分毎の変調波形によって、前記被変調波形発生手段が形成する被変調波形を変調してボコーダ音を発生する第1のボコーダ音発生手段と、
    前記モード設定手段により第2のモードが設定されているとき、演奏操作に対応して人声のフォルマント成分毎の変調波形を発生する変調波形発生手段と、
    前記第2のモードが設定されているとき、前記演奏操作に対応して前記第2の記憶手段から読み出される人声のフォルマント成分別に濾波した被変調波形を、前記変調波形発生手段が発生する人声のフォルマント成分毎の変調波形により変調してボコーダ音を発生する第2のボコーダ音発生手段と
    を具備することを特徴とする楽音発生装置。
  2. 前記第1のボコーダ音発生手段は、全鍵離鍵状態からの押鍵に応じて、前記第1の記憶手段から読み出す変調波形を先頭にリセットすることを特徴とする請求項1記載の楽音発生装置。
  3. 前記変調波形発生手段は、全鍵離鍵状態からの押鍵に応じて、発生する変調波形を先頭にリセットすることを特徴とする請求項1記載の楽音発生装置。
  4. 人声のフォルマント成分毎の変調波形を記憶する第1の記憶手段と、楽音波形を人声のフォルマント成分別に濾波した被変調波形を記憶する第2の記憶手段と、第1及び第2のモードのいずれか一方のモードに設定するモード設定手段と、を有する楽音発生装置として用いられるコンピュータに、
    このモード設定手段により第1のモードが設定されているとき、演奏操作に対応して生成される楽音波形を、人声のフォルマント成分別に濾波して被変調波形を形成する被変調波形形成処理と、
    前記第1のモードが設定されているとき、前記演奏操作に対応して前記第1の記憶手段から読み出される人声のフォルマント成分毎の変調波形によって、前記被変調波形発生処理が形成する被変調波形を変調してボコーダ音を発生する第1のボコーダ音発生処理と、
    前記モード設定手段により第2のモードが設定されているとき、演奏操作に対応して人声のフォルマント成分毎の変調波形を発生する変調波形発生処理と、
    前記第2のモードが設定されているとき、前記演奏操作に対応して前記第2の記憶手段から読み出される人声のフォルマント成分別に濾波した被変調波形を、前記変調波形発生処理が発生する人声のフォルマント成分毎の変調波形により変調してボコーダ音を発生する第2のボコーダ音発生処理と
    を実行させる楽音発生プログラム。
  5. 前記第1のボコーダ音発生処理は、全鍵離鍵状態からの押鍵に応じて、前記第1の記憶手段から読み出す変調波形を先頭にリセットさせる請求項4記載の楽音発生装置。
  6. 前記変調波形発生処理は、全鍵離鍵状態からの押鍵に応じて、発生する変調波形を先頭にリセットさせる請求項4記載の楽音発生装置。
JP2005146652A 2005-05-19 2005-05-19 楽音発生装置および楽音発生プログラム Active JP4591826B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005146652A JP4591826B2 (ja) 2005-05-19 2005-05-19 楽音発生装置および楽音発生プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005146652A JP4591826B2 (ja) 2005-05-19 2005-05-19 楽音発生装置および楽音発生プログラム

Publications (2)

Publication Number Publication Date
JP2006323166A JP2006323166A (ja) 2006-11-30
JP4591826B2 true JP4591826B2 (ja) 2010-12-01

Family

ID=37542894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005146652A Active JP4591826B2 (ja) 2005-05-19 2005-05-19 楽音発生装置および楽音発生プログラム

Country Status (1)

Country Link
JP (1) JP4591826B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001356800A (ja) * 2000-06-16 2001-12-26 Korg Inc ホルマント付加装置
JP2004279750A (ja) * 2003-03-17 2004-10-07 Casio Comput Co Ltd 楽音発生装置および楽音発生プログラム
JP2004361482A (ja) * 2003-06-02 2004-12-24 Casio Comput Co Ltd 波形変調装置および波形変調プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05346787A (ja) * 1992-06-12 1993-12-27 Casio Comput Co Ltd 音声制御楽音発生装置
JPH0777979A (ja) * 1993-06-30 1995-03-20 Casio Comput Co Ltd 音声制御音響変調装置
JP3011064B2 (ja) * 1995-07-14 2000-02-21 ヤマハ株式会社 楽音処理装置
JP3943250B2 (ja) * 1998-06-09 2007-07-11 ローランド株式会社 波形圧縮伸長装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001356800A (ja) * 2000-06-16 2001-12-26 Korg Inc ホルマント付加装置
JP2004279750A (ja) * 2003-03-17 2004-10-07 Casio Comput Co Ltd 楽音発生装置および楽音発生プログラム
JP2004361482A (ja) * 2003-06-02 2004-12-24 Casio Comput Co Ltd 波形変調装置および波形変調プログラム

Also Published As

Publication number Publication date
JP2006323166A (ja) 2006-11-30

Similar Documents

Publication Publication Date Title
JP6176480B2 (ja) 楽音発生装置、楽音発生方法およびプログラム
JP4591826B2 (ja) 楽音発生装置および楽音発生プログラム
JP2006337450A (ja) 楽音発生装置および楽音発生プログラム
JP4096814B2 (ja) 波形変調装置および波形変調プログラム
JP5115800B2 (ja) 低周波発振装置および低周波発振処理プログラム
JP6573100B2 (ja) 楽音制御装置、楽音制御方法、プログラム、および電子楽器
JP5246473B2 (ja) 楽音発生装置および楽音発生処理プログラム
JP3543124B2 (ja) 自動伴奏装置
JP4492680B2 (ja) 楽音発生装置
JP5082760B2 (ja) 音制御装置およびプログラム
JP2007193151A (ja) 楽音制御装置および楽音制御処理のプログラム
JP2008097022A (ja) 楽音発生装置
JP4012410B2 (ja) 楽音生成装置および楽音生成方法
JP4032208B2 (ja) 鍵情報処理装置および鍵情報処理方法
JP4164665B2 (ja) パラメータ制御装置およびパラメータ制御プログラム
JP2004361884A (ja) 波形変調装置および波形変調プログラム
JP4576565B2 (ja) 演奏装置および演奏処理のプログラム
JP2004279750A (ja) 楽音発生装置および楽音発生プログラム
JP4513738B2 (ja) 演奏装置および演奏処理のプログラム
JP4061500B2 (ja) 楽音変調装置および楽音変調プログラム
JP2008052305A (ja) 楽音発生装置
JPH08339185A (ja) 音色パラメータ編集装置
JP3533764B2 (ja) 自動伴奏装置
JP5769080B2 (ja) 発音チャンネル割当装置およびプログラム
JP2012220861A (ja) 楽音発生装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080501

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100805

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: 20100820

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100902

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4591826

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150