JP3435702B2 - 楽音発生装置 - Google Patents
楽音発生装置Info
- Publication number
- JP3435702B2 JP3435702B2 JP12593392A JP12593392A JP3435702B2 JP 3435702 B2 JP3435702 B2 JP 3435702B2 JP 12593392 A JP12593392 A JP 12593392A JP 12593392 A JP12593392 A JP 12593392A JP 3435702 B2 JP3435702 B2 JP 3435702B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- address
- waveform data
- memory
- data
- 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
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【産業上の利用分野】本発明は、電子楽器に使用される
楽音発生装置に関するものである。
楽音発生装置に関するものである。
【0002】
【従来の技術】近年、楽音発生装置は、楽音をアナログ
/ディジタル変換して得た波形データを波形メモリに記
憶させ、これを読み出し、ディジタル演算を施して楽音
を発生するいわゆるPCM方式による楽音発生が行なわ
れるようになってきている。
/ディジタル変換して得た波形データを波形メモリに記
憶させ、これを読み出し、ディジタル演算を施して楽音
を発生するいわゆるPCM方式による楽音発生が行なわ
れるようになってきている。
【0003】PCM方式による楽音発生方式には、波形
データを読み出す周期が音高に応じて変化するピッチ同
期方式と、音高に関わらず一定であるピッチ非同期方式
の2つがある。音高の異なる複数の楽音を時分割で発生
させるためには、後者の方が有利である。ピッチ非同期
方式では、ほとんどの場合、サンプリング周期毎の再生
すべき波形データは、波形メモリには記憶されていない
ので、アドレス近傍の波形データを用いた補間演算によ
って発生すべき波形データを求める。なお、このピッチ
非同期方式の楽音発生装置については、例えば、特公昭
59−17838号公報に開示されている。
データを読み出す周期が音高に応じて変化するピッチ同
期方式と、音高に関わらず一定であるピッチ非同期方式
の2つがある。音高の異なる複数の楽音を時分割で発生
させるためには、後者の方が有利である。ピッチ非同期
方式では、ほとんどの場合、サンプリング周期毎の再生
すべき波形データは、波形メモリには記憶されていない
ので、アドレス近傍の波形データを用いた補間演算によ
って発生すべき波形データを求める。なお、このピッチ
非同期方式の楽音発生装置については、例えば、特公昭
59−17838号公報に開示されている。
【0004】補間演算の方式には、数学的に様々な方法
があるが、多項式近似が用いられることが多い。多項式
近似には、その次数により、1次補間、2次補間、3次
補間・・・などがある。1次補間とは、1次の多項式つ
まり直線による近似であり、両隣の2点を通る直線から
その間にある点の値を求める方法である。同様に、2次
補間とは、2次曲線による近似であり、3点を通る2次
曲線からその間にある点の値を求める方法であり、3次
補間とは、3次曲線によるものである。
があるが、多項式近似が用いられることが多い。多項式
近似には、その次数により、1次補間、2次補間、3次
補間・・・などがある。1次補間とは、1次の多項式つ
まり直線による近似であり、両隣の2点を通る直線から
その間にある点の値を求める方法である。同様に、2次
補間とは、2次曲線による近似であり、3点を通る2次
曲線からその間にある点の値を求める方法であり、3次
補間とは、3次曲線によるものである。
【0005】これらを図示したものが第14図(a),
(b),(c)である。また、演算式はそれぞれ(数
1),(数2),(数3)のようになる。
(b),(c)である。また、演算式はそれぞれ(数
1),(数2),(数3)のようになる。
【0006】
【数1】
【0007】
【数2】
【0008】
【数3】
【0009】(数1),(数2),(数3)において、
f(y)はアドレスyにおける波形データを表してお
り、xは求めるサンプル点に対応するアドレスの小数部
を表している。(数1)〜(数3)に示すように、求め
るサンプル点の波形データf(n+x)は、波形メモリ
に記憶されたサンプル点の波形データf(n),f(n
+1)などとxのみの関数となる係数の畳み込み演算に
より算出される。変数xは0以上1未満の値しかとらな
いので、係数をあらかじめ計算しておいて係数メモリに
記憶させることにより、実際の回路規模を小さくするこ
とができる。
f(y)はアドレスyにおける波形データを表してお
り、xは求めるサンプル点に対応するアドレスの小数部
を表している。(数1)〜(数3)に示すように、求め
るサンプル点の波形データf(n+x)は、波形メモリ
に記憶されたサンプル点の波形データf(n),f(n
+1)などとxのみの関数となる係数の畳み込み演算に
より算出される。変数xは0以上1未満の値しかとらな
いので、係数をあらかじめ計算しておいて係数メモリに
記憶させることにより、実際の回路規模を小さくするこ
とができる。
【0010】補間演算の次数を高くする方が、より正確
に波形データを計算することができ、補間演算に起因す
るノイズを減少させることができるが、逆に演算量が増
え、演算に必要な波形データの数も増加する。1次補間
においては、演算に必要な波形データの数は2であり、
波形メモリから2回読み出せばよいが、3次補間におい
ては、波形メモリから4回読み出さなければならない。
補間演算の次数をMとすると、1楽音あたり1サンプリ
ング周期毎に波形メモリから波形データを読み出す回数
は(M+1)となるので、時分割で発生する楽音の数つ
まり最大同時発音数N、波形メモリのアクセス時間T、
サンプリング周波数Fsの関係は(数4)のように表せ
る。
に波形データを計算することができ、補間演算に起因す
るノイズを減少させることができるが、逆に演算量が増
え、演算に必要な波形データの数も増加する。1次補間
においては、演算に必要な波形データの数は2であり、
波形メモリから2回読み出せばよいが、3次補間におい
ては、波形メモリから4回読み出さなければならない。
補間演算の次数をMとすると、1楽音あたり1サンプリ
ング周期毎に波形メモリから波形データを読み出す回数
は(M+1)となるので、時分割で発生する楽音の数つ
まり最大同時発音数N、波形メモリのアクセス時間T、
サンプリング周波数Fsの関係は(数4)のように表せ
る。
【0011】
【数4】
【0012】このため、サンプリング周波数Fsと最大
同時発音数Nを一定としたとき、補間演算の次数Mは波
形メモリのアクセス時間Tにより制約される。
同時発音数Nを一定としたとき、補間演算の次数Mは波
形メモリのアクセス時間Tにより制約される。
【0013】しかしながら、読み出した波形データを記
憶しておき次回以降の演算に再利用するという方法によ
り、この制約をある程度回避することができる。ただ
し、サンプリングして取り込んだ元の音高に対して発生
する音高の比が大きい場合には、記憶しておいた波形デ
ータを再利用することができなくなるので、元の音高と
発生する音高の比を大きくすることができない。これを
解決するために、特開平3−171098号公報のよう
に元の音高と発生する音高の比に応じて、補間演算の次
数を変える方法も提案されている。
憶しておき次回以降の演算に再利用するという方法によ
り、この制約をある程度回避することができる。ただ
し、サンプリングして取り込んだ元の音高に対して発生
する音高の比が大きい場合には、記憶しておいた波形デ
ータを再利用することができなくなるので、元の音高と
発生する音高の比を大きくすることができない。これを
解決するために、特開平3−171098号公報のよう
に元の音高と発生する音高の比に応じて、補間演算の次
数を変える方法も提案されている。
【0014】
【発明が解決しようとする課題】しかしながら、補間演
算の次数を小さくすると演算精度が落ちてしまい、近似
誤差に起因するノイズが増えてしまうので、従来の楽音
発生装置においては、高音域で補間演算の次数を小さく
することにより、高音域の楽音を発生する場合は低音域
に比べて常にノイズが増えるという問題点を有してい
た。
算の次数を小さくすると演算精度が落ちてしまい、近似
誤差に起因するノイズが増えてしまうので、従来の楽音
発生装置においては、高音域で補間演算の次数を小さく
することにより、高音域の楽音を発生する場合は低音域
に比べて常にノイズが増えるという問題点を有してい
た。
【0015】本発明は上記の従来の問題点を解決するも
ので、最大同時発音数すべての楽音が最大音量で発音さ
れていることは非常に希であることを考慮して、対応す
る波形データが既に読み出されているか否かや、発音の
有無、音量、音色、楽曲におけるパートなどに応じて波
形メモリの読み出しに対して優先度を設定し、補間演算
の次数を高めることにより、ノイズが少ない楽音を発生
することのできる楽音発生装置を提供することを目的と
する。
ので、最大同時発音数すべての楽音が最大音量で発音さ
れていることは非常に希であることを考慮して、対応す
る波形データが既に読み出されているか否かや、発音の
有無、音量、音色、楽曲におけるパートなどに応じて波
形メモリの読み出しに対して優先度を設定し、補間演算
の次数を高めることにより、ノイズが少ない楽音を発生
することのできる楽音発生装置を提供することを目的と
する。
【0016】
【課題を解決するための手段】この目的を達成するため
に本発明の楽音発生装置は、波形をサンプリングして得
た波形データを記憶した波形メモリと、前記波形メモリ
を読み出すための波形アドレスを複数発生する波形アド
レス発生手段と、前記波形アドレスを記憶する波形アド
レス記憶手段と、前記波形アドレス記憶手段に記憶され
た複数の波形アドレスの中から波形アドレスを選択し波
形メモリへ出力する波形アドレス選択手段と、前記波形
メモリから読み出された波形データを記憶する波形デー
タ記憶手段と、前記波形データ記憶手段に記憶された波
形データのうち前記波形アドレス記憶手段に記憶されて
いる波形アドレスに対応した波形データを有効な波形デ
ータとして当該波形データの数に基づいて補間演算の次
数を決定する補間演算次数判定手段と、波形データの補
間演算を前記次数に従って行う補間演算手段とを備え、
時分割で複数の楽音を発生するように構成したものであ
る。
に本発明の楽音発生装置は、波形をサンプリングして得
た波形データを記憶した波形メモリと、前記波形メモリ
を読み出すための波形アドレスを複数発生する波形アド
レス発生手段と、前記波形アドレスを記憶する波形アド
レス記憶手段と、前記波形アドレス記憶手段に記憶され
た複数の波形アドレスの中から波形アドレスを選択し波
形メモリへ出力する波形アドレス選択手段と、前記波形
メモリから読み出された波形データを記憶する波形デー
タ記憶手段と、前記波形データ記憶手段に記憶された波
形データのうち前記波形アドレス記憶手段に記憶されて
いる波形アドレスに対応した波形データを有効な波形デ
ータとして当該波形データの数に基づいて補間演算の次
数を決定する補間演算次数判定手段と、波形データの補
間演算を前記次数に従って行う補間演算手段とを備え、
時分割で複数の楽音を発生するように構成したものであ
る。
【0017】
【作用】この構成によって、波形メモリから読み出した
波形データを記憶しておき、次回以降の演算に再利用し
て補間演算の次数を高めるとともに、補間演算に必要な
波形データが既に記憶されている場合や、発音が終了し
て波形データを読み出す必要がない場合には、他の発音
している楽音の波形データを読み出してその楽音の補間
演算の次数を高めることにより、補間演算による近似の
誤差に起因するノイズが少ない楽音を発生することがで
きる。
波形データを記憶しておき、次回以降の演算に再利用し
て補間演算の次数を高めるとともに、補間演算に必要な
波形データが既に記憶されている場合や、発音が終了し
て波形データを読み出す必要がない場合には、他の発音
している楽音の波形データを読み出してその楽音の補間
演算の次数を高めることにより、補間演算による近似の
誤差に起因するノイズが少ない楽音を発生することがで
きる。
【0018】
【実施例】以下本発明の一実施例について、図面を参照
しながら説明する。
しながら説明する。
【0019】図1は本実施例の楽音発生装置の構成を示
すものである。図1において、100は波形アドレス発
生手段、150は波形アドレス記憶手段、200は波形
アドレス選択手段、250は波形データシフト数判定手
段、300は波形メモリ、350は波形データ記憶手
段、400は補間演算次数判定手段、450は補間演算
手段、500はエンベロープ発生手段、550は波形混
合手段、600と610はディジタル/アナログ変換器
(以下DACと略す。)、620はサウンドシステム、
700は時分割演算制御手段である。
すものである。図1において、100は波形アドレス発
生手段、150は波形アドレス記憶手段、200は波形
アドレス選択手段、250は波形データシフト数判定手
段、300は波形メモリ、350は波形データ記憶手
段、400は補間演算次数判定手段、450は補間演算
手段、500はエンベロープ発生手段、550は波形混
合手段、600と610はディジタル/アナログ変換器
(以下DACと略す。)、620はサウンドシステム、
700は時分割演算制御手段である。
【0020】図2は、波形アドレス発生手段100の構
成を示すものである。図2において、101はビブラー
トデータ発生部、102は音階データメモリ、103と
105と111と112は加算器、104はアドレス増
分値変換部、106はアンドゲート、107はオフセッ
トアドレスメモリ、108はラッチ、109は波形先頭
アドレスメモリ、110はセレクタ、113はアドレス
演算制御部である。
成を示すものである。図2において、101はビブラー
トデータ発生部、102は音階データメモリ、103と
105と111と112は加算器、104はアドレス増
分値変換部、106はアンドゲート、107はオフセッ
トアドレスメモリ、108はラッチ、109は波形先頭
アドレスメモリ、110はセレクタ、113はアドレス
演算制御部である。
【0021】図3は、波形アドレス記憶手段150と波
形データシフト数判定手段250の構成を示すものであ
る。図3において、151は波形アドレスメモリ、15
2はセレクタ、153は波形アドレスメモリ制御部、2
51と252と254はラッチ、253は加算器、25
5はアドレス差判定部である。
形データシフト数判定手段250の構成を示すものであ
る。図3において、151は波形アドレスメモリ、15
2はセレクタ、153は波形アドレスメモリ制御部、2
51と252と254はラッチ、253は加算器、25
5はアドレス差判定部である。
【0022】図4は、波形アドレス選択手段200の構
成を示すものである。図4において、201と202と
204はラッチ、203はセレクタ、205は基本優先
度テーブル、206はチャンネル別優先度テーブル、2
07はエンベロープ優先度テーブル、208は有効フラ
グ優先度テーブル、209は優先度判定部である。
成を示すものである。図4において、201と202と
204はラッチ、203はセレクタ、205は基本優先
度テーブル、206はチャンネル別優先度テーブル、2
07はエンベロープ優先度テーブル、208は有効フラ
グ優先度テーブル、209は優先度判定部である。
【0023】図5は、波形データ記憶手段350の構成
を示すものである。図5において、351と354と3
55と356と357はラッチ、352と358はセレ
クタ、353は波形データメモリ、360は波形データ
メモリ制御部、361は有効フラグ制御部、370は有
効フラグ記憶部である。
を示すものである。図5において、351と354と3
55と356と357はラッチ、352と358はセレ
クタ、353は波形データメモリ、360は波形データ
メモリ制御部、361は有効フラグ制御部、370は有
効フラグ記憶部である。
【0024】図6は、有効フラグ記憶部370の構成を
示すものである。図6において、371〜386はセッ
ト機能付きラッチである。
示すものである。図6において、371〜386はセッ
ト機能付きラッチである。
【0025】図7は、補間演算手段450の構成を示す
ものである。図7において、451〜459は係数メモ
リ、460はセレクタ、461は乗算器、462は加算
器、463はリセット機能付きラッチ、464は補間演
算制御部、465〜468はラッチである。
ものである。図7において、451〜459は係数メモ
リ、460はセレクタ、461は乗算器、462は加算
器、463はリセット機能付きラッチ、464は補間演
算制御部、465〜468はラッチである。
【0026】図8は、補間演算手段450の別の構成を
示すものである。図8において、453〜457は係数
メモリ、460と470はセレクタ、461は乗算器、
462と471は加算器、463はリセット機能付きラ
ッチ、464は補間演算制御部、465〜468はラッ
チである。なお、図7と同一機能のものには同じ番号を
つけている。
示すものである。図8において、453〜457は係数
メモリ、460と470はセレクタ、461は乗算器、
462と471は加算器、463はリセット機能付きラ
ッチ、464は補間演算制御部、465〜468はラッ
チである。なお、図7と同一機能のものには同じ番号を
つけている。
【0027】図9は、波形混合手段550の構成を示す
ものである。図9において、551と552はパンニン
グ係数メモリ、553と554と555は乗算器、55
6と557は加算器、558と559はリセット機能付
きラッチ、560と561はラッチ、562は波形混合
制御部である。
ものである。図9において、551と552はパンニン
グ係数メモリ、553と554と555は乗算器、55
6と557は加算器、558と559はリセット機能付
きラッチ、560と561はラッチ、562は波形混合
制御部である。
【0028】以上のように構成された楽音発生装置につ
いて、図10〜図13のタイミング図に従って、以下そ
の動作について説明する。なお、本実施例では、1サン
プリング周期の時間を4等分して4音の楽音を時分割で
発生するものとする。また、個々の楽音をチャンネルと
呼び、0から3までのチャンネル番号を付ける。また、
1音つまり1チャンネル分の演算時間を8等分して、そ
の時間単位をシーケンスと呼び、0から7までのシーケ
ンス番号を付ける。また、1チャンネル分の時間あた
り、波形メモリから波形データを2回読み出し、1次ま
たは2次または3次の多項式近似による補間演算を行な
うものとする。
いて、図10〜図13のタイミング図に従って、以下そ
の動作について説明する。なお、本実施例では、1サン
プリング周期の時間を4等分して4音の楽音を時分割で
発生するものとする。また、個々の楽音をチャンネルと
呼び、0から3までのチャンネル番号を付ける。また、
1音つまり1チャンネル分の演算時間を8等分して、そ
の時間単位をシーケンスと呼び、0から7までのシーケ
ンス番号を付ける。また、1チャンネル分の時間あた
り、波形メモリから波形データを2回読み出し、1次ま
たは2次または3次の多項式近似による補間演算を行な
うものとする。
【0029】時分割演算制御手段700において、時分
割で楽音発生演算をするための様々な信号が発生され
る。そのうちの1つであるチャンネル信号は、時分割演
算においてどのチャンネルの演算を行なうかを判別する
ための信号で、他の手段に供給される。
割で楽音発生演算をするための様々な信号が発生され
る。そのうちの1つであるチャンネル信号は、時分割演
算においてどのチャンネルの演算を行なうかを判別する
ための信号で、他の手段に供給される。
【0030】まず、波形アドレス発生手段100におい
て、音高や音色に応じた波形アドレスが発生される。図
2に波形アドレス発生手段100の構成を示す。
て、音高や音色に応じた波形アドレスが発生される。図
2に波形アドレス発生手段100の構成を示す。
【0031】次に、図示しない鍵盤の押鍵に対応した音
階データが、図示しないマイコンなどによって音階デー
タメモリ102にあらかじめ書き込まれる。また、ビブ
ラート効果を付加するためのビブラートデータが、ビブ
ラートデータ発生部101から出力される。加算器10
3において音階データとビブラートデータが加算され、
音高データとなる。次に、音高データは、アドレス増分
値変換部104において、波形メモリを読出すためのア
ドレスを1サンプリング周期毎に更新するためのアドレ
ス増分値に変換される。サンプリングして取り込んだ元
の音高をX[Hz]、発生する音高をY[Hz]とする
と、アドレス増分値ΔADは、(数5)のように表され
る。
階データが、図示しないマイコンなどによって音階デー
タメモリ102にあらかじめ書き込まれる。また、ビブ
ラート効果を付加するためのビブラートデータが、ビブ
ラートデータ発生部101から出力される。加算器10
3において音階データとビブラートデータが加算され、
音高データとなる。次に、音高データは、アドレス増分
値変換部104において、波形メモリを読出すためのア
ドレスを1サンプリング周期毎に更新するためのアドレ
ス増分値に変換される。サンプリングして取り込んだ元
の音高をX[Hz]、発生する音高をY[Hz]とする
と、アドレス増分値ΔADは、(数5)のように表され
る。
【0032】
【数5】
【0033】また、波形1周期あたりのサンプル点の数
をN、サンプリング周期をP[秒]、再生する音高をY
[Hz]とすると、アドレス増分値ΔADは、(数6)
のように表すこともできる。
をN、サンプリング周期をP[秒]、再生する音高をY
[Hz]とすると、アドレス増分値ΔADは、(数6)
のように表すこともできる。
【0034】
【数6】
【0035】次にアドレス増分値は、加算器105にお
いて累算される。まず、発音開始直前に、アドレス演算
制御部113から出力されるリセット信号が0になり、
アンドゲート106の出力も0になり、値が0のオフセ
ットアドレスがオフセットアドレスメモリ107に書き
込まれる。1サンプリング周期後にオフセットアドレス
メモリ107からオフセットアドレスが読み出され、ラ
ッチ108にラッチされる。加算器105においてオフ
セットアドレスとアドレス増分値が加算される。リセッ
ト信号は1に戻っており、更新されたオフセットアドレ
スはアンドゲート106を素通りし、オフセットアドレ
スメモリ107に再び書き込まれる。こうしてアドレス
増分値は累算される。
いて累算される。まず、発音開始直前に、アドレス演算
制御部113から出力されるリセット信号が0になり、
アンドゲート106の出力も0になり、値が0のオフセ
ットアドレスがオフセットアドレスメモリ107に書き
込まれる。1サンプリング周期後にオフセットアドレス
メモリ107からオフセットアドレスが読み出され、ラ
ッチ108にラッチされる。加算器105においてオフ
セットアドレスとアドレス増分値が加算される。リセッ
ト信号は1に戻っており、更新されたオフセットアドレ
スはアンドゲート106を素通りし、オフセットアドレ
スメモリ107に再び書き込まれる。こうしてアドレス
増分値は累算される。
【0036】波形先頭アドレスメモリ109には、図示
しないマイコンなどによって各チャンネル毎の波形先頭
アドレスがあらかじめ書き込まれており、チャンネル信
号に応じて該当チャンネルの波形先頭アドレスが読み出
される。加算器111において波形先頭アドレスとオフ
セットアドレスの整数部が加算され、波形アドレス整数
部となる。波形アドレス整数部をADI、波形先頭アド
レスをWSA、オフセットアドレスをOFF、アドレス
増分値をΔADとすると、(数7)のように表すことが
できる。
しないマイコンなどによって各チャンネル毎の波形先頭
アドレスがあらかじめ書き込まれており、チャンネル信
号に応じて該当チャンネルの波形先頭アドレスが読み出
される。加算器111において波形先頭アドレスとオフ
セットアドレスの整数部が加算され、波形アドレス整数
部となる。波形アドレス整数部をADI、波形先頭アド
レスをWSA、オフセットアドレスをOFF、アドレス
増分値をΔADとすると、(数7)のように表すことが
できる。
【0037】
【数7】
【0038】ただし(数7)において、int(X)は
Xの整数部を表し、ΣXはXの総和を表す。一方、オフ
セットアドレスの小数部はそのまま出力されて波形アド
レス小数部となる。
Xの整数部を表し、ΣXはXの総和を表す。一方、オフ
セットアドレスの小数部はそのまま出力されて波形アド
レス小数部となる。
【0039】波形アドレス整数部と波形アドレス小数部
を合わせたアドレスに対応する波形データが必要である
が、波形メモリ300にはアドレスの整数部に対応した
波形データしか記憶されていないので、近傍のアドレス
に対応した波形データから補間演算によって求めなけれ
ばならない。3次補間の場合には、求めるアドレスの前
後2点ずつの計4点の波形データを読み出すために、4
つのアドレスが必要となる。これらのアドレスをWA
0,WA1,WA2,WA3とすると、波形アドレス整
数部ADIとの関係は(数8),(数9),(数1
0),(数11)のように表せる。
を合わせたアドレスに対応する波形データが必要である
が、波形メモリ300にはアドレスの整数部に対応した
波形データしか記憶されていないので、近傍のアドレス
に対応した波形データから補間演算によって求めなけれ
ばならない。3次補間の場合には、求めるアドレスの前
後2点ずつの計4点の波形データを読み出すために、4
つのアドレスが必要となる。これらのアドレスをWA
0,WA1,WA2,WA3とすると、波形アドレス整
数部ADIとの関係は(数8),(数9),(数1
0),(数11)のように表せる。
【0040】
【数8】
【0041】
【数9】
【0042】
【数10】
【0043】
【数11】
【0044】また、チャンネルを区別するためにチャン
ネル番号をm、サンプリング周期を単位とする時間をn
として、時刻nにおける第mチャンネルの波形アドレス
整数部をADIm(n)とすると、(数8),(数
9),(数10),(数11)はそれぞれ(数12),
(数13),(数14),(数15)のように表せる。
ネル番号をm、サンプリング周期を単位とする時間をn
として、時刻nにおける第mチャンネルの波形アドレス
整数部をADIm(n)とすると、(数8),(数
9),(数10),(数11)はそれぞれ(数12),
(数13),(数14),(数15)のように表せる。
【0045】
【数12】
【0046】
【数13】
【0047】
【数14】
【0048】
【数15】
【0049】セレクタ110において、0,1,2,−
1が順に選択され、加算器112において波形アドレス
整数部と加算され、それぞれ波形アドレスWA1,WA
2,WA3,WA0として出力される。図11に、この
加算のタイミングを示している。”m”はチャンネル番
号を表し、”(n)”はサンプリング周期を単位とする
時刻を表している。従って、”m−1”は1つ前のチャ
ンネルを表し、”m+1”は1つ後のチャンネルを表
す。図10のタイミング図に示すように、チャンネル信
号で表されるチャンネルは0から3までを操り返すの
で、正確に言うと、”m”は4の剰余系になっている。
また、”(n−1)”は1サンプリング周期前のデータ
であることを表し、(n+1)は1サンプリング周期後
のデータであることを表している。また、図10におい
て、”ch”はチャンネル番号を表しており、”0ch
(n)”は時刻nにおける第0チャンネルのデータや演
算を表しており、”0ch(n+1)”はさらに1サン
プリング周期後の第0チャンネルのデータや演算を表し
ている。つまり、”n”は絶対的な時刻を表すのではな
く、相対的な時刻を表している。
1が順に選択され、加算器112において波形アドレス
整数部と加算され、それぞれ波形アドレスWA1,WA
2,WA3,WA0として出力される。図11に、この
加算のタイミングを示している。”m”はチャンネル番
号を表し、”(n)”はサンプリング周期を単位とする
時刻を表している。従って、”m−1”は1つ前のチャ
ンネルを表し、”m+1”は1つ後のチャンネルを表
す。図10のタイミング図に示すように、チャンネル信
号で表されるチャンネルは0から3までを操り返すの
で、正確に言うと、”m”は4の剰余系になっている。
また、”(n−1)”は1サンプリング周期前のデータ
であることを表し、(n+1)は1サンプリング周期後
のデータであることを表している。また、図10におい
て、”ch”はチャンネル番号を表しており、”0ch
(n)”は時刻nにおける第0チャンネルのデータや演
算を表しており、”0ch(n+1)”はさらに1サン
プリング周期後の第0チャンネルのデータや演算を表し
ている。つまり、”n”は絶対的な時刻を表すのではな
く、相対的な時刻を表している。
【0050】なお、アンドゲート106へのリセット信
号や、ラッチへのクロック信号や、セレクタへの選択制
御信号はアドレス演算制御部113から供給される。
号や、ラッチへのクロック信号や、セレクタへの選択制
御信号はアドレス演算制御部113から供給される。
【0051】次に、波形アドレス発生手段100から出
力された波形アドレスWA0,WA1,WA2,WA3
は、波形アドレス記憶手段150において一旦記憶され
る。図3に波形アドレス記憶手段150と後述する波形
データシフト数判定手段250の構成を示す。波形アド
レスメモリ151において波形アドレスは(表1)に示
すように、メモリのアドレスの低い側から第0チャンネ
ルのWA0,WA1,WA2,WA3、続いて第1チャ
ンネルのWA0‥‥のように記憶される。
力された波形アドレスWA0,WA1,WA2,WA3
は、波形アドレス記憶手段150において一旦記憶され
る。図3に波形アドレス記憶手段150と後述する波形
データシフト数判定手段250の構成を示す。波形アド
レスメモリ151において波形アドレスは(表1)に示
すように、メモリのアドレスの低い側から第0チャンネ
ルのWA0,WA1,WA2,WA3、続いて第1チャ
ンネルのWA0‥‥のように記憶される。
【0052】
【表1】
【0053】図11に示すように、第mチャンネルの波
形アドレスの場合、波形アドレスメモリ151のアドレ
スは4・m+1,4・m+2,4・m+3,4・mとな
り、それぞれ波形アドレスWA1m,WA2m,WA3
m,WA0mが書き込まれる。
形アドレスの場合、波形アドレスメモリ151のアドレ
スは4・m+1,4・m+2,4・m+3,4・mとな
り、それぞれ波形アドレスWA1m,WA2m,WA3
m,WA0mが書き込まれる。
【0054】これらの4つの波形アドレスが書き込まれ
る前に、1サンプリング周期前の波形アドレスWA1m
(n−1)が、波形アドレスメモリ151から読み出さ
れ、波形データシフト判定手段250の中のラッチ25
2に記憶される。WA1m(n−1)の”(n−1)”
は、1サンプリング周期前のデータであることを表して
いる。また、加算器112から出力される波形アドレス
WA1mは、ラッチ251にも記憶される。この波形ア
ドレスWA1mが現在のデータであることを明示する場
合はWA1m(n)のように表す。加算器253におい
て、現在と1サンプリング周期前の波形アドレスの差が
算出され、ラッチ254にラッチされる。波形アドレス
差DIFは(数16)のように表される。
る前に、1サンプリング周期前の波形アドレスWA1m
(n−1)が、波形アドレスメモリ151から読み出さ
れ、波形データシフト判定手段250の中のラッチ25
2に記憶される。WA1m(n−1)の”(n−1)”
は、1サンプリング周期前のデータであることを表して
いる。また、加算器112から出力される波形アドレス
WA1mは、ラッチ251にも記憶される。この波形ア
ドレスWA1mが現在のデータであることを明示する場
合はWA1m(n)のように表す。加算器253におい
て、現在と1サンプリング周期前の波形アドレスの差が
算出され、ラッチ254にラッチされる。波形アドレス
差DIFは(数16)のように表される。
【0055】
【数16】
【0056】アドレス差判定部255において、(表
2)に示すように、波形アドレス差DIFに応じて波形
データシフト数が決定される。
2)に示すように、波形アドレス差DIFに応じて波形
データシフト数が決定される。
【0057】
【表2】
【0058】なお、波形データシフト判定手段250に
おけるタイミングは図11に示されている。
おけるタイミングは図11に示されている。
【0059】波形メモリ300を読み出すための波形ア
ドレスは、波形アドレス選択手段200から供給される
選択アドレスSAD0,SAD1に従って、波形アドレ
スメモリ151に記憶された波形アドレスの中から選択
され、選択波形アドレスMAD0,MAD1として波形
アドレス選択手段200へ出力される。選択波形アドレ
スが2つあるのは、1チャンネル分の演算時間あたり、
波形メモリ300から2回波形データを読み出すからで
ある。図4に波形アドレス選択手段200の構成を示
す。選択波形アドレスMAD0,MAD1は一旦ラッチ
201,202に記憶された後、セレクタ203を通
り、ラッチ204にラッチされて、波形メモリ300へ
出力される。図11に、波形データシフト判定手段25
0におけるタイミングが示されている。選択アドレスと
選択波形アドレスにおけるチャンネルを区別する添え字
mは、チャンネル信号が”m”の時のデータであること
を表すもので、第mチャンネル用のアドレスであること
を表すものではない。これらのタイミングも図11に示
されている。
ドレスは、波形アドレス選択手段200から供給される
選択アドレスSAD0,SAD1に従って、波形アドレ
スメモリ151に記憶された波形アドレスの中から選択
され、選択波形アドレスMAD0,MAD1として波形
アドレス選択手段200へ出力される。選択波形アドレ
スが2つあるのは、1チャンネル分の演算時間あたり、
波形メモリ300から2回波形データを読み出すからで
ある。図4に波形アドレス選択手段200の構成を示
す。選択波形アドレスMAD0,MAD1は一旦ラッチ
201,202に記憶された後、セレクタ203を通
り、ラッチ204にラッチされて、波形メモリ300へ
出力される。図11に、波形データシフト判定手段25
0におけるタイミングが示されている。選択アドレスと
選択波形アドレスにおけるチャンネルを区別する添え字
mは、チャンネル信号が”m”の時のデータであること
を表すもので、第mチャンネル用のアドレスであること
を表すものではない。これらのタイミングも図11に示
されている。
【0060】波形メモリからどのアドレス、つまりどの
チャンネルの何番目の波形アドレスに対応する波形デー
タを読み出すかを決める選択アドレスは、図4に示すよ
うに、基本優先度テーブル205,チャンネル別優先度
テーブル206,エンべロープ優先度テーブル207,
有効フラグ優先度テーブル208に基づいて、優先順位
判定部209によって決定される。(表3)に基本優先
度テーブル205の内容を示す。
チャンネルの何番目の波形アドレスに対応する波形デー
タを読み出すかを決める選択アドレスは、図4に示すよ
うに、基本優先度テーブル205,チャンネル別優先度
テーブル206,エンべロープ優先度テーブル207,
有効フラグ優先度テーブル208に基づいて、優先順位
判定部209によって決定される。(表3)に基本優先
度テーブル205の内容を示す。
【0061】
【表3】
【0062】(表3)の中の数値は、各チャンネル毎お
よび各波形アドレス毎の選択されるための基本優先度を
表している。基本優先度が0の場合は、決して選択され
ることはなく、1以上の数値で小さい方が優先度が高く
なっている。基本優先度は、現在のチャンネル信号の値
によって変化する。チャンネル信号が”m”の時は、チ
ャンネル番号が”m”の波形アドレスは決して選択され
ず、チャンネル番号が”m−1”つまり1つ前のチャン
ネルの波形アドレスの優先度が高くなる。チャンネル番
号の変化に伴い、基本優先度がどう変化するかを(表
4),(表5),(表6),(表7)に示す。(表4)
〜(表7)のチャンネルの欄で”*”がついている値
が、その時のチャンネル信号の値を示している。
よび各波形アドレス毎の選択されるための基本優先度を
表している。基本優先度が0の場合は、決して選択され
ることはなく、1以上の数値で小さい方が優先度が高く
なっている。基本優先度は、現在のチャンネル信号の値
によって変化する。チャンネル信号が”m”の時は、チ
ャンネル番号が”m”の波形アドレスは決して選択され
ず、チャンネル番号が”m−1”つまり1つ前のチャン
ネルの波形アドレスの優先度が高くなる。チャンネル番
号の変化に伴い、基本優先度がどう変化するかを(表
4),(表5),(表6),(表7)に示す。(表4)
〜(表7)のチャンネルの欄で”*”がついている値
が、その時のチャンネル信号の値を示している。
【0063】
【表4】
【0064】
【表5】
【0065】
【表6】
【0066】
【表7】
【0067】(図14)の(a),(b),(c)に示
すように、1次の補間演算のためには、アドレスWA
1,WA2の2点に対応する波形データが必要であり、
2次の補間演算のためには、アドレスWA1,WA2,
WA3の3点に対応する波形データが必要であり、3次
の補間演算のためには、アドレスWA0,WA1,WA
2,WA3の4点に対応する波形データが必要である。
(表3)において、第”m−1”チャンネルのアドレス
WA1とWA2の優先度が高いのは、最低でも1次の補
間演算を行なうためである。2次の補間演算に必要なW
A3、3次の補間演算に必要なWA4の優先度は相対的
に低くなっている。
すように、1次の補間演算のためには、アドレスWA
1,WA2の2点に対応する波形データが必要であり、
2次の補間演算のためには、アドレスWA1,WA2,
WA3の3点に対応する波形データが必要であり、3次
の補間演算のためには、アドレスWA0,WA1,WA
2,WA3の4点に対応する波形データが必要である。
(表3)において、第”m−1”チャンネルのアドレス
WA1とWA2の優先度が高いのは、最低でも1次の補
間演算を行なうためである。2次の補間演算に必要なW
A3、3次の補間演算に必要なWA4の優先度は相対的
に低くなっている。
【0068】次に、(表8)にチャンネル別優先度テー
ブル206の内容の一例を示す。(表8)のチャンネル
別優先度の数値は単なる一例であり、時間や押鍵状態に
よって刻々と変化する。
ブル206の内容の一例を示す。(表8)のチャンネル
別優先度の数値は単なる一例であり、時間や押鍵状態に
よって刻々と変化する。
【0069】
【表8】
【0070】チャンネル別優先度とは、チャンネル毎に
優先度を変えるためのものである。例えば、イニシャル
タッチによる音量が大きい場合や、発音する楽音が楽曲
の中の主旋律のパートである場合や、サイン波に近い柔
らかな音色の場合には、そうでない場合に比べてノイズ
が目立ちやすいので、該当チャンネルの補間演算の次数
を他のチャンネルよりも高くするために使用する。ある
いは、発音していないチャンネルは、波形データを波形
メモリから読み出す必要がないので、他のチャンネルの
補間演算の次数を高くするために使用する。
優先度を変えるためのものである。例えば、イニシャル
タッチによる音量が大きい場合や、発音する楽音が楽曲
の中の主旋律のパートである場合や、サイン波に近い柔
らかな音色の場合には、そうでない場合に比べてノイズ
が目立ちやすいので、該当チャンネルの補間演算の次数
を他のチャンネルよりも高くするために使用する。ある
いは、発音していないチャンネルは、波形データを波形
メモリから読み出す必要がないので、他のチャンネルの
補間演算の次数を高くするために使用する。
【0071】(表8)の中の数値は、各チャンネル毎お
よび各波形アドレス毎の選択されるための基本優先度に
加算して優先度を変更する。ただし基本優先度の値が0
である場合には、チャンネル別優先度の値に関わらず、
0にする。チャンネル別優先度の値は、負の値の場合は
優先度を高め、正の値の場合は優先度を低くするように
作用する。(表8)のチャンネル別優先度の値は、第2
チャンネルはなるべく2次以上の補間演算を行ない、第
0チャンネルは特に2次以上の補間演算は必要なく、第
3チャンネルは発音していないという場合を表してい
る。チャンネル別優先度の値は、(表8)の値に固定さ
れるものではなく、図示していないマイコン等によって
適宜変更されるものである。チャンネル番号の変化に伴
い、基本優先度とチャンネル別優先度をあわせた優先度
がどう変化するかを(表9),(表10),(表1
1),(表12)に示す。(表9)〜(表12)のチャ
ンネルの欄で”*”がついている値が、その時のチャン
ネル信号の値を示している。
よび各波形アドレス毎の選択されるための基本優先度に
加算して優先度を変更する。ただし基本優先度の値が0
である場合には、チャンネル別優先度の値に関わらず、
0にする。チャンネル別優先度の値は、負の値の場合は
優先度を高め、正の値の場合は優先度を低くするように
作用する。(表8)のチャンネル別優先度の値は、第2
チャンネルはなるべく2次以上の補間演算を行ない、第
0チャンネルは特に2次以上の補間演算は必要なく、第
3チャンネルは発音していないという場合を表してい
る。チャンネル別優先度の値は、(表8)の値に固定さ
れるものではなく、図示していないマイコン等によって
適宜変更されるものである。チャンネル番号の変化に伴
い、基本優先度とチャンネル別優先度をあわせた優先度
がどう変化するかを(表9),(表10),(表1
1),(表12)に示す。(表9)〜(表12)のチャ
ンネルの欄で”*”がついている値が、その時のチャン
ネル信号の値を示している。
【0072】
【表9】
【0073】
【表10】
【0074】
【表11】
【0075】
【表12】
【0076】次に、(表13)にエンべロープ優先度テ
ーブル207の内容を示す。
ーブル207の内容を示す。
【0077】
【表13】
【0078】エンべロープ優先度とは、エンベロープの
値が0まで減衰して楽音が聞こえなくなったチャンネル
の波形アドレスを選択しないようにするためのものであ
る。つまり、エンベロープ値が0であるチャンネルの優
先度を0にする。(表13)において、EEFはエンベ
ロープ・エンドフラグの略で、エンベロープ値が0であ
る場合に1となり、それ以外では0となる。従って、E
EF=1の場合に優先度は0になり、EEF=0の場合
は優先度はEEFの影響を受けない。第mチャンネルの
エンベロープ・エンドフラグをEEFmと表す。EEF
は波形アドレスWA0〜WA3に対して同じように作用
する。
値が0まで減衰して楽音が聞こえなくなったチャンネル
の波形アドレスを選択しないようにするためのものであ
る。つまり、エンベロープ値が0であるチャンネルの優
先度を0にする。(表13)において、EEFはエンベ
ロープ・エンドフラグの略で、エンベロープ値が0であ
る場合に1となり、それ以外では0となる。従って、E
EF=1の場合に優先度は0になり、EEF=0の場合
は優先度はEEFの影響を受けない。第mチャンネルの
エンベロープ・エンドフラグをEEFmと表す。EEF
は波形アドレスWA0〜WA3に対して同じように作用
する。
【0079】第3チャンネルのみエンベロープ値が0で
ある場合、つまり、EEF0=EEF1=EEF2=0
かつEEF3=1の時に、チャンネル番号の変化に伴
い、基本優先度とエンベロープ優先度をあわせた優先度
がどう変化するかを(表14),(表15),(表1
6),(表17)に示す。(表14)〜(表17)のチ
ャンネルの欄で”*”がついている値が、その時のチャ
ンネル信号の値を示している
ある場合、つまり、EEF0=EEF1=EEF2=0
かつEEF3=1の時に、チャンネル番号の変化に伴
い、基本優先度とエンベロープ優先度をあわせた優先度
がどう変化するかを(表14),(表15),(表1
6),(表17)に示す。(表14)〜(表17)のチ
ャンネルの欄で”*”がついている値が、その時のチャ
ンネル信号の値を示している
【0080】
【表14】
【0081】
【表15】
【0082】
【表16】
【0083】
【表17】
【0084】なお、エンベロープ・エンドフラグEEF
は、エンベロープ発生手段500から供給される。
は、エンベロープ発生手段500から供給される。
【0085】次に、(表18)に有効フラグ優先度テー
ブル208の内容を示す。
ブル208の内容を示す。
【0086】
【表18】
【0087】有効フラグ優先度とは、波形アドレス記憶
手段150に記憶された波形アドレスに対応した波形デ
ータが、後述する波形データ記憶手段350に既に記憶
されている場合には、対応する波形アドレスを選択しな
いようにするためのものである。つまり、対応する波形
データが既に記憶されている波形アドレスの優先度を0
にする。(表18)において、VFは波形データ有効フ
ラグ(以後、単に有効フラグと称する。)の略で、波形
アドレスに対応した波形データが既に記憶されている場
合に1となり、それ以外では0となる。従って、VF=
1の場合に優先度は0になり、VF=0の場合は優先度
はVFの影響を受けない。第mチャンネルの波形アドレ
スWAkに対応する有効フラグをVFkmと表す。
手段150に記憶された波形アドレスに対応した波形デ
ータが、後述する波形データ記憶手段350に既に記憶
されている場合には、対応する波形アドレスを選択しな
いようにするためのものである。つまり、対応する波形
データが既に記憶されている波形アドレスの優先度を0
にする。(表18)において、VFは波形データ有効フ
ラグ(以後、単に有効フラグと称する。)の略で、波形
アドレスに対応した波形データが既に記憶されている場
合に1となり、それ以外では0となる。従って、VF=
1の場合に優先度は0になり、VF=0の場合は優先度
はVFの影響を受けない。第mチャンネルの波形アドレ
スWAkに対応する有効フラグをVFkmと表す。
【0088】以上述べてきた4つの優先度をまとめる
と、第mチャンネルの波形アドレスWAkに対応する優
先度Pkmは(数17)のように表せる。
と、第mチャンネルの波形アドレスWAkに対応する優
先度Pkmは(数17)のように表せる。
【0089】
【数17】
【0090】(数17)において、PAkmは第mチャ
ンネルの波形アドレスWAkに対応する基本優先度、P
Bkmは第mチャンネルの波形アドレスWAkに対応す
るチャンネル別優先度、EEFmは第mチャンネルのエ
ンベロープ・エンドフラグ、VFkmは第mチャンネル
の波形アドレスWAkに対応する波形データ有効フラグ
である。
ンネルの波形アドレスWAkに対応する基本優先度、P
Bkmは第mチャンネルの波形アドレスWAkに対応す
るチャンネル別優先度、EEFmは第mチャンネルのエ
ンベロープ・エンドフラグ、VFkmは第mチャンネル
の波形アドレスWAkに対応する波形データ有効フラグ
である。
【0091】優先度判定部209において、全部で16
個の優先度Pkm(P00〜P33)が算出され、優先
度の高い(つまり、優先度の値が、1以上かつできるだ
け小さい)波形アドレスが選択される。本実施例では、
1チャンネル分の演算時間あたり2回、波形メモリから
波形データを読み出すので、優先度判定部209におい
て、1チャンネル分の演算時間あたり、優先度の最も高
い波形アドレスと、2番目に高い波形アドレスが選択さ
れる。波形アドレスそのものは、波形アドレスメモリ1
51に記憶されているので、優先度判定部209は該当
する波形アドレスを波形アドレスメモリ151から読み
出すためのアドレスを出力する。これを、選択アドレス
と呼び、優先度の最も高い方の選択アドレスをSAD
0,2番目に高い方の選択アドレスをSAD1と略す。
第mチャンネルの波形アドレスWAkに対応する選択ア
ドレスSADは、(表1)から分かるように、(数1
8)のように表される。
個の優先度Pkm(P00〜P33)が算出され、優先
度の高い(つまり、優先度の値が、1以上かつできるだ
け小さい)波形アドレスが選択される。本実施例では、
1チャンネル分の演算時間あたり2回、波形メモリから
波形データを読み出すので、優先度判定部209におい
て、1チャンネル分の演算時間あたり、優先度の最も高
い波形アドレスと、2番目に高い波形アドレスが選択さ
れる。波形アドレスそのものは、波形アドレスメモリ1
51に記憶されているので、優先度判定部209は該当
する波形アドレスを波形アドレスメモリ151から読み
出すためのアドレスを出力する。これを、選択アドレス
と呼び、優先度の最も高い方の選択アドレスをSAD
0,2番目に高い方の選択アドレスをSAD1と略す。
第mチャンネルの波形アドレスWAkに対応する選択ア
ドレスSADは、(表1)から分かるように、(数1
8)のように表される。
【0092】
【数18】
【0093】選択アドレスSAD0,SAD1に対応し
た波形アドレスが選択波形アドレスMAD0,MAD1
であり、波形メモリ300へ出力される様子は、前述し
た通りである。
た波形アドレスが選択波形アドレスMAD0,MAD1
であり、波形メモリ300へ出力される様子は、前述し
た通りである。
【0094】波形メモリ300から出力された波形デー
タは波形データ記憶手段350に入力され、波形データ
メモリ353に記憶される。図5に波形データ記憶手段
350の構成を示す。波形データ記憶手段350では、
波形データと有効フラグの2種類のデータが扱われ、大
きく分けて次の3つの動作が行なわれる。 (1)波形アドレスの更新に伴う波形データと有効フラ
グのシフト。 (2)波形メモリから読み出された波形データの波形デ
ータメモリ353への書き込み。 (3)補間演算のための波形データの波形データメモリ
353からの読み出し。
タは波形データ記憶手段350に入力され、波形データ
メモリ353に記憶される。図5に波形データ記憶手段
350の構成を示す。波形データ記憶手段350では、
波形データと有効フラグの2種類のデータが扱われ、大
きく分けて次の3つの動作が行なわれる。 (1)波形アドレスの更新に伴う波形データと有効フラ
グのシフト。 (2)波形メモリから読み出された波形データの波形デ
ータメモリ353への書き込み。 (3)補間演算のための波形データの波形データメモリ
353からの読み出し。
【0095】時間的には(1),(2),(3)の順番
で行なわれるが、分かりやすくするために、まず(2)
の「波形メモリから読み出された波形データの波形デー
タメモリ353への書き込み」について述べる。
で行なわれるが、分かりやすくするために、まず(2)
の「波形メモリから読み出された波形データの波形デー
タメモリ353への書き込み」について述べる。
【0096】波形メモリから読み出された波形データは
まずラッチ351にラッチされる。このラッチされたデ
ータをMDTと表す。選択波形アドレスMAD0に対応
するものが波形データMDT0で、MAD1に対応する
ものがMDT1である。チャンネル信号による時間を区
別するために、m,m−1等のの添字をつける。波形デ
ータMDT0とMDT1は、それぞれシーケンス番号7
と0のタイミングで、波形データメモリ353に書き込
まれる。この時、セレクタ352はラッチ351の出力
を選択する。書き込まれる時のアドレスはそれぞれ選択
アドレスSAD0とSAD1となる。ただし、選択アド
レスが発生されてから波形データメモリのアドレスとし
て使用されるまでに時間的な遅れがあるので、ラッチ3
54〜357によって、選択アドレスを遅延させてる。
まずラッチ351にラッチされる。このラッチされたデ
ータをMDTと表す。選択波形アドレスMAD0に対応
するものが波形データMDT0で、MAD1に対応する
ものがMDT1である。チャンネル信号による時間を区
別するために、m,m−1等のの添字をつける。波形デ
ータMDT0とMDT1は、それぞれシーケンス番号7
と0のタイミングで、波形データメモリ353に書き込
まれる。この時、セレクタ352はラッチ351の出力
を選択する。書き込まれる時のアドレスはそれぞれ選択
アドレスSAD0とSAD1となる。ただし、選択アド
レスが発生されてから波形データメモリのアドレスとし
て使用されるまでに時間的な遅れがあるので、ラッチ3
54〜357によって、選択アドレスを遅延させてる。
【0097】波形データが波形データメモリ353に書
き込まれるとともに、波形データに対応する有効フラグ
が1にセットされる。有効フラグ記憶部370には、4
チャンネル分合計16個の有効フラグが記憶されてお
り、1チャンネルあたり4個のセット機能付きラッチが
つながり、シフトレジスタを形成している。図6に有効
フラグ記憶部370の構成を示す。各チャンネル毎のシ
フト用クロック信号CK0〜CK3、および各ラッチの
セット信号S00〜S33は、有効フラグ制御部361
から供給される。ラッチ355の出力である選択アドレ
スSAD0に対応したセット信号が1になり、対応した
有効フラグも1になる。同様に、ラッチ357の出力で
ある選択アドレスSAD1に対応したセット信号も1に
なり、対応した有効フラグも1になる。
き込まれるとともに、波形データに対応する有効フラグ
が1にセットされる。有効フラグ記憶部370には、4
チャンネル分合計16個の有効フラグが記憶されてお
り、1チャンネルあたり4個のセット機能付きラッチが
つながり、シフトレジスタを形成している。図6に有効
フラグ記憶部370の構成を示す。各チャンネル毎のシ
フト用クロック信号CK0〜CK3、および各ラッチの
セット信号S00〜S33は、有効フラグ制御部361
から供給される。ラッチ355の出力である選択アドレ
スSAD0に対応したセット信号が1になり、対応した
有効フラグも1になる。同様に、ラッチ357の出力で
ある選択アドレスSAD1に対応したセット信号も1に
なり、対応した有効フラグも1になる。
【0098】次に、(1)の「波形アドレスの更新に伴
う波形データと有効フラグのシフト」について述べる。
波形アドレス整数部は(数7)で示したように1サンプ
リング周期毎に更新されており、(数16)ように1サ
ンプリング周期前との差をアドレス差DIFと表す。サ
ンプリング周期を単位とした時刻nにおいて、波形アド
レス整数部をADI(n)、波形メモリにおけるアドレ
スとデータの関係を図15のように表した時、波形アド
レスWA0(n)〜WA3(n)に対応する波形データ
は(表19)のように表される。
う波形データと有効フラグのシフト」について述べる。
波形アドレス整数部は(数7)で示したように1サンプ
リング周期毎に更新されており、(数16)ように1サ
ンプリング周期前との差をアドレス差DIFと表す。サ
ンプリング周期を単位とした時刻nにおいて、波形アド
レス整数部をADI(n)、波形メモリにおけるアドレ
スとデータの関係を図15のように表した時、波形アド
レスWA0(n)〜WA3(n)に対応する波形データ
は(表19)のように表される。
【0099】
【表19】
【0100】ただし、4つの波形アドレスに対応する波
形データは、すでに波形メモリ300から読み出され、
波形データメモリ353に記憶されているものとする。
従って、有効フラグはすべて1となっている。1サンプ
リング周期後の波形アドレス整数部をADI(n+1)
とすると、波形アドレス更新直後の波形アドレスWA0
(n+1)〜WA3(n+1)に対応する波形データ
は、アドレス差DIFに応じて、(表20)〜(表2
5)のように表される。波形データDT000〜DT0
03は既に波形データメモリ353に記憶されているの
で、対応する有効フラグは1であるが、DT004以降
の波形データはまだ波形メモリ300から読み出されて
いないので、対応する有効フラグは0になる。
形データは、すでに波形メモリ300から読み出され、
波形データメモリ353に記憶されているものとする。
従って、有効フラグはすべて1となっている。1サンプ
リング周期後の波形アドレス整数部をADI(n+1)
とすると、波形アドレス更新直後の波形アドレスWA0
(n+1)〜WA3(n+1)に対応する波形データ
は、アドレス差DIFに応じて、(表20)〜(表2
5)のように表される。波形データDT000〜DT0
03は既に波形データメモリ353に記憶されているの
で、対応する有効フラグは1であるが、DT004以降
の波形データはまだ波形メモリ300から読み出されて
いないので、対応する有効フラグは0になる。
【0101】
【表20】
【0102】
【表21】
【0103】
【表22】
【0104】
【表23】
【0105】
【表24】
【0106】
【表25】
【0107】有効フラグをシフトする数と波形データシ
フト数は同じであるから、有効フラグをシフトするため
には、波形データシフト数と同じ数だけのクロックパル
スを該当チャンネルのシフトレジスタに与えればよい。
例えば、第0チャンネルのアドレス差DIFが1である
場合、シフト用クロック信号CK0のクロックパルスは
1つだけでよく、これによりVF10の値が新しいVF
00の値に、VF20の値が新しいVF10の値に、V
F30の値が新しいVF20の値になり、新しいVF3
0の値は0になる。アドレス差DIFが4以上である場
合は、4個のクロックパルスが発生し、4つの有効フラ
グはすべて0になる。
フト数は同じであるから、有効フラグをシフトするため
には、波形データシフト数と同じ数だけのクロックパル
スを該当チャンネルのシフトレジスタに与えればよい。
例えば、第0チャンネルのアドレス差DIFが1である
場合、シフト用クロック信号CK0のクロックパルスは
1つだけでよく、これによりVF10の値が新しいVF
00の値に、VF20の値が新しいVF10の値に、V
F30の値が新しいVF20の値になり、新しいVF3
0の値は0になる。アドレス差DIFが4以上である場
合は、4個のクロックパルスが発生し、4つの有効フラ
グはすべて0になる。
【0108】波形メモリからの波形データの読み出しや
波形アドレス更新に伴うシフトにより、有効フラグが実
際どのように変化するかを(表26)に示す。
波形アドレス更新に伴うシフトにより、有効フラグが実
際どのように変化するかを(表26)に示す。
【0109】
【表26】
【0110】(表26)において、説明のための便宜
上、各チャンネルとも有効フラグがすべて1である状態
から始めている。また、アドレス差DIFを第0〜3チ
ャンネルにおいてそれぞれ3,4,1,2としている。
また、優先度は基本優先度のみ用いている。左から右に
向かって時間が進行しており、”○”で囲んだ数値は、
波形メモリから波形データを読み出したことにより対応
する波形データが有効になったことを表し、”□”で囲
んだ数値は、波形アドレス更新に伴なってシフトしたこ
とを表している。第mチャンネルの波形アドレスが選択
され波形メモリに出力されるのは、チャンネル信号の値
がm以外の時であり、これは更新中の波形アドレスが選
択されるのを防止するためである。既に述べた(表3)
の基本優先度テーブルによって選択が禁止されている。
上、各チャンネルとも有効フラグがすべて1である状態
から始めている。また、アドレス差DIFを第0〜3チ
ャンネルにおいてそれぞれ3,4,1,2としている。
また、優先度は基本優先度のみ用いている。左から右に
向かって時間が進行しており、”○”で囲んだ数値は、
波形メモリから波形データを読み出したことにより対応
する波形データが有効になったことを表し、”□”で囲
んだ数値は、波形アドレス更新に伴なってシフトしたこ
とを表している。第mチャンネルの波形アドレスが選択
され波形メモリに出力されるのは、チャンネル信号の値
がm以外の時であり、これは更新中の波形アドレスが選
択されるのを防止するためである。既に述べた(表3)
の基本優先度テーブルによって選択が禁止されている。
【0111】一方、波形データはシフトレジスタではな
く波形データメモリに記憶されているので、波形データ
のシフトは少し複雑になる。波形データメモリ353
は、書き込みアドレスと読み出しアドレスが分離してい
る2ポートメモリであり、データの書き込みと読み出し
が同時に行なえる。従って、メモリ中のデータをアドレ
ス”A”からアドレス”B”へシフトするには、読み出
しアドレスに”A”を、書き込みアドレスに”B”を指
定して、読み出しと書き込みを同時に行なえばよい。
(表27)に、第mチャンネルにおける、波形データシ
フト数と読み出しアドレスと書き込みアドレスとシフト
される波形データの関係を示す。
く波形データメモリに記憶されているので、波形データ
のシフトは少し複雑になる。波形データメモリ353
は、書き込みアドレスと読み出しアドレスが分離してい
る2ポートメモリであり、データの書き込みと読み出し
が同時に行なえる。従って、メモリ中のデータをアドレ
ス”A”からアドレス”B”へシフトするには、読み出
しアドレスに”A”を、書き込みアドレスに”B”を指
定して、読み出しと書き込みを同時に行なえばよい。
(表27)に、第mチャンネルにおける、波形データシ
フト数と読み出しアドレスと書き込みアドレスとシフト
される波形データの関係を示す。
【0112】
【表27】
【0113】(表27)において、WD0,WD1,W
D2,WD3はそれぞれ波形アドレスWA0,WA1,
WA2,WA3に対応する波形データである。図12
に、波形データのシフトの様子が示されている。読み出
しアドレスはシーケンス番号3,4,5において、それ
ぞれ4・m+1,4・m+2,4・m+3と固定化され
ているので、波形データシフト数に応じて(表27)に
従って書き込みアドレスと書き込み信号が変化する。
D2,WD3はそれぞれ波形アドレスWA0,WA1,
WA2,WA3に対応する波形データである。図12
に、波形データのシフトの様子が示されている。読み出
しアドレスはシーケンス番号3,4,5において、それ
ぞれ4・m+1,4・m+2,4・m+3と固定化され
ているので、波形データシフト数に応じて(表27)に
従って書き込みアドレスと書き込み信号が変化する。
【0114】次に、(3)の「補間演算のための波形デ
ータの波形データメモリ353からの読み出し」につい
て述べる。補間演算の次数に応じて必要な波形データの
数は異なるが、本実施例では、波形データのシフト動作
と波形データの読み出しタイミングを共通にして回路構
成やタイミングを簡単にするために、補間演算の次数に
関わらず4個の波形データWD0〜WD4を読み出す。
この様子も、図12に示されている。
ータの波形データメモリ353からの読み出し」につい
て述べる。補間演算の次数に応じて必要な波形データの
数は異なるが、本実施例では、波形データのシフト動作
と波形データの読み出しタイミングを共通にして回路構
成やタイミングを簡単にするために、補間演算の次数に
関わらず4個の波形データWD0〜WD4を読み出す。
この様子も、図12に示されている。
【0115】波形データメモリ353から読み出された
波形データは、補間手段450へ送られるが、補間演算
の前に、その次数を決めなければならない。補間演算の
次数は、(表28)に示す通りに、補間演算次数判定手
段400において決定される。
波形データは、補間手段450へ送られるが、補間演算
の前に、その次数を決めなければならない。補間演算の
次数は、(表28)に示す通りに、補間演算次数判定手
段400において決定される。
【0116】
【表28】
【0117】(表28)に示すように、補間演算次数は
波形データの有効フラグの組み合わせによって決められ
る。これは、1次補間,2次補間,3次補間を説明した
図14(a),(b),(c)より明らかである。波形
データWD1とWD2は、必ず波形メモリ300から読
み出されるか、あるいは波形データメモリ353に記憶
されているので、補間演算の前までに、対応する有効フ
ラグVF1mとVF2mの値は1になっている。
波形データの有効フラグの組み合わせによって決められ
る。これは、1次補間,2次補間,3次補間を説明した
図14(a),(b),(c)より明らかである。波形
データWD1とWD2は、必ず波形メモリ300から読
み出されるか、あるいは波形データメモリ353に記憶
されているので、補間演算の前までに、対応する有効フ
ラグVF1mとVF2mの値は1になっている。
【0118】次に、補間演算手段450において、補間
演算次数に応じて(数1)〜(数3)に示した補間演算
が行なわれる。図7に補間演算手段450の構成を示
す。1次補間である(数1)の係数をK10,K11と
すると、各係数はそれぞれ(数19),(数20)のよ
うに表される。数式の中では、各係数が”x”の関数で
あることを明示するために、K10(x),K11
(x)のような表記を行なっている。ここで、”x”は
波形アドレス小数部ADFに相当する。
演算次数に応じて(数1)〜(数3)に示した補間演算
が行なわれる。図7に補間演算手段450の構成を示
す。1次補間である(数1)の係数をK10,K11と
すると、各係数はそれぞれ(数19),(数20)のよ
うに表される。数式の中では、各係数が”x”の関数で
あることを明示するために、K10(x),K11
(x)のような表記を行なっている。ここで、”x”は
波形アドレス小数部ADFに相当する。
【0119】
【数19】
【0120】
【数20】
【0121】同様に2次補間である(数2)の係数をK
20,K21,K22とすると、各係数はそれぞれ(数
21),(数22),(数23)のように表される。
20,K21,K22とすると、各係数はそれぞれ(数
21),(数22),(数23)のように表される。
【0122】
【数21】
【0123】
【数22】
【0124】
【数23】
【0125】同様に3次補間である(数3)の係数をK
30,K31,K32,K33とすると、各係数はそれ
ぞれ(数24),(数25),(数26),(数27)
のように表される。
30,K31,K32,K33とすると、各係数はそれ
ぞれ(数24),(数25),(数26),(数27)
のように表される。
【0126】
【数24】
【0127】
【数25】
【0128】
【数26】
【0129】
【数27】
【0130】(数26),(数27)において、x=1
−yとおき、式を変形するとそれぞれ(数28),(数
29)のようになる。
−yとおき、式を変形するとそれぞれ(数28),(数
29)のようになる。
【0131】
【数28】
【0132】
【数29】
【0133】つまり、xが0から1までの範囲におい
て、0.5を中心にしてK31とK32は対称であり、
K30とK33も対称になっている。
て、0.5を中心にしてK31とK32は対称であり、
K30とK33も対称になっている。
【0134】次に、補間演算手段450の動作について
説明する。まず、補間演算制御部464からのリセット
信号により、リセット機能付きラッチ463の内容が0
にリセットされる。次に、波形データ記憶手段350か
ら送られてきた波形データWD0とセレクタ460から
選択された係数が乗算器461において乗算され、加算
器462においてラッチ463の内容と加算され、再び
ラッチ463に書き込まれる。同様に、波形データWD
1,WD2,WD3に対しても乗算と加算が行なわれ、
その演算結果はラッチ463に書き込まれる。WD0〜
WD3に対する演算の終了後、波形アドレス整数部AD
Iと波形アドレス小数部ADFを合わせたアドレスに相
当する波形データが、ラッチ463に記憶されているこ
とになる。このデータを波形値と呼ぶ。
説明する。まず、補間演算制御部464からのリセット
信号により、リセット機能付きラッチ463の内容が0
にリセットされる。次に、波形データ記憶手段350か
ら送られてきた波形データWD0とセレクタ460から
選択された係数が乗算器461において乗算され、加算
器462においてラッチ463の内容と加算され、再び
ラッチ463に書き込まれる。同様に、波形データWD
1,WD2,WD3に対しても乗算と加算が行なわれ、
その演算結果はラッチ463に書き込まれる。WD0〜
WD3に対する演算の終了後、波形アドレス整数部AD
Iと波形アドレス小数部ADFを合わせたアドレスに相
当する波形データが、ラッチ463に記憶されているこ
とになる。このデータを波形値と呼ぶ。
【0135】この乗算と加算の組み合わせは積和算と呼
ばれ、この積和算を操り返すことは畳み込み演算と呼ば
れる。3次補間では、4回の積和算が必要であるが、2
次補間では3回、1次補間では2回の積和算で十分であ
る。このため、余分な積和算では値0を乗算し、影響を
なくしている。この様子を、図13に示す。セレクタ4
60において、1次補間の場合には順に0,K10,K
11,0が選択され、2次補間の場合には順に0,K2
0,K21,K22が選択され、3次補間の場合には順
にK30,K31,K32,K33が選択される。これ
らの補間演算は、波形アドレス発生から1サンプリング
周期だけ時間的に遅れて行なわれている。従って、波形
アドレス小数部ADFは、4段のラッチ465,46
6,467,468によって1サンプリング周期だけ遅
延された後、係数メモリのアドレスとして使用される。
ばれ、この積和算を操り返すことは畳み込み演算と呼ば
れる。3次補間では、4回の積和算が必要であるが、2
次補間では3回、1次補間では2回の積和算で十分であ
る。このため、余分な積和算では値0を乗算し、影響を
なくしている。この様子を、図13に示す。セレクタ4
60において、1次補間の場合には順に0,K10,K
11,0が選択され、2次補間の場合には順に0,K2
0,K21,K22が選択され、3次補間の場合には順
にK30,K31,K32,K33が選択される。これ
らの補間演算は、波形アドレス発生から1サンプリング
周期だけ時間的に遅れて行なわれている。従って、波形
アドレス小数部ADFは、4段のラッチ465,46
6,467,468によって1サンプリング周期だけ遅
延された後、係数メモリのアドレスとして使用される。
【0136】前述した、係数K31とK32およびK3
0とK33の対称性などを利用して、係数メモリの個数
を削減した補間演算手段450の別の構成を、図8に示
す。図8において、”1−x”を計算するための加算器
471とセレクタ470が、図7に比べて追加されてお
り、逆に係数メモリが9個から5個に減少している。演
算のタイミングは、図7の構成の場合と同じである。
0とK33の対称性などを利用して、係数メモリの個数
を削減した補間演算手段450の別の構成を、図8に示
す。図8において、”1−x”を計算するための加算器
471とセレクタ470が、図7に比べて追加されてお
り、逆に係数メモリが9個から5個に減少している。演
算のタイミングは、図7の構成の場合と同じである。
【0137】次に、波形値は波形混合手段550に送ら
れ、エンべロープと左右の定位を付加された後、全チャ
ンネルのデータが累算される。図9に波形混合手段55
0の構成を示す。まず、乗算器553において、波形値
とエンベロープ値が乗算され、続いて乗算器554と乗
算器555において左右の定位(パンニング)が付加さ
れる。パンニングに関する情報は、図示しないマイコン
などによって、あらかじめ波形混合制御部562に与え
られており、パンデータPANとして、パンニング係数
メモリ551と552に与えられる。パンニング係数メ
モリ551は、パンデータPANを左チャンネル用音量
レベルPANLに変換し、パンニング係数メモリ552
は、パンデータPANを右チャンネル用音量レベルPA
NRに変換する。左チャンネル用音量レベルPANLと
右チャンネル用音量レベルPANRの関係を(数30)
に示す。
れ、エンべロープと左右の定位を付加された後、全チャ
ンネルのデータが累算される。図9に波形混合手段55
0の構成を示す。まず、乗算器553において、波形値
とエンベロープ値が乗算され、続いて乗算器554と乗
算器555において左右の定位(パンニング)が付加さ
れる。パンニングに関する情報は、図示しないマイコン
などによって、あらかじめ波形混合制御部562に与え
られており、パンデータPANとして、パンニング係数
メモリ551と552に与えられる。パンニング係数メ
モリ551は、パンデータPANを左チャンネル用音量
レベルPANLに変換し、パンニング係数メモリ552
は、パンデータPANを右チャンネル用音量レベルPA
NRに変換する。左チャンネル用音量レベルPANLと
右チャンネル用音量レベルPANRの関係を(数30)
に示す。
【0138】
【数30】
【0139】つまり、左右のチャンネルの音量の二乗和
が一定になっている。これは、定位を変化させても、聴
感上の音量感を一定に保つためである。従って、パンデ
ータPANと左チャンネル用音量レベルPANL、およ
び、パンデータPANと右チャンネル用音量レベルPA
NRの関係は、それぞれ(数31)と(数32)のよう
に表される。
が一定になっている。これは、定位を変化させても、聴
感上の音量感を一定に保つためである。従って、パンデ
ータPANと左チャンネル用音量レベルPANL、およ
び、パンデータPANと右チャンネル用音量レベルPA
NRの関係は、それぞれ(数31)と(数32)のよう
に表される。
【0140】
【数31】
【0141】
【数32】
【0142】パンニングによる音量レベルが乗算された
後、加算器556とリセット機能付きラッチ558によ
って、第0〜3チャンネルのデータの左チャンネル側の
累算が行なわれる。まず、波形混合制御部562から出
力されるリセット信号によって、ラッチ558の内容が
0にクリアされる。次に、エンベロープとパンニングを
付加された第0チャンネルの波形値が、加算器556に
おいてラッチ558の内容と加算され、再びラッチ55
8に書き込まれる。この値をACC0とする。同様に、
第1〜チャンネルのデータが累算されていき、その値を
ACC1,ACC2,ACC3と表す。ACC3は第0
〜3チャンネルのデータを合計したものになり、ラッチ
560に書き込まれ、DAC600へ出力される。ラッ
チ560の内容は、1サンプリング周期に1回更新され
ることになる。この様子は、図13および図10に示さ
れている。こうして左チャンネルの楽音データが出力さ
れる。
後、加算器556とリセット機能付きラッチ558によ
って、第0〜3チャンネルのデータの左チャンネル側の
累算が行なわれる。まず、波形混合制御部562から出
力されるリセット信号によって、ラッチ558の内容が
0にクリアされる。次に、エンベロープとパンニングを
付加された第0チャンネルの波形値が、加算器556に
おいてラッチ558の内容と加算され、再びラッチ55
8に書き込まれる。この値をACC0とする。同様に、
第1〜チャンネルのデータが累算されていき、その値を
ACC1,ACC2,ACC3と表す。ACC3は第0
〜3チャンネルのデータを合計したものになり、ラッチ
560に書き込まれ、DAC600へ出力される。ラッ
チ560の内容は、1サンプリング周期に1回更新され
ることになる。この様子は、図13および図10に示さ
れている。こうして左チャンネルの楽音データが出力さ
れる。
【0143】加算器557とリセット付きラッチ559
およびラッチ561においても、同様に演算が行なわ
れ、DAC610へ出力され、右チャンネルの楽音デー
タが出力される。
およびラッチ561においても、同様に演算が行なわ
れ、DAC610へ出力され、右チャンネルの楽音デー
タが出力される。
【0144】さらに、DAC600と610においてア
ナログ信号に変換され、サウンドシステム620によっ
て左右両チャンネルの楽音が発音される。
ナログ信号に変換され、サウンドシステム620によっ
て左右両チャンネルの楽音が発音される。
【0145】以上のように本実施例によれば、波形メモ
リを読み出すための波形アドレスを一旦記憶し、対応す
る波形データが既に読み出されているか否かを示す有効
フラグや発音の有無や音量などに応じて優先度をつけて
波形アドレスを選択することにより、波形の補間演算の
次数を高め、ノイズの少ない楽音を発生することができ
る。
リを読み出すための波形アドレスを一旦記憶し、対応す
る波形データが既に読み出されているか否かを示す有効
フラグや発音の有無や音量などに応じて優先度をつけて
波形アドレスを選択することにより、波形の補間演算の
次数を高め、ノイズの少ない楽音を発生することができ
る。
【0146】なお、本実施例では、波形アドレスの選択
のための優先度を4種類の優先度テーブルを用いて決定
したが、音色、楽曲におけるパートなど他の音楽的要素
も優先度決定のために用いてもよいことは言うまでもな
い。
のための優先度を4種類の優先度テーブルを用いて決定
したが、音色、楽曲におけるパートなど他の音楽的要素
も優先度決定のために用いてもよいことは言うまでもな
い。
【0147】また、本実施例では、補間演算の次数を1
次から3次までの3段階としたが、次数は任意に決定し
てもよいことは言うまでもない。
次から3次までの3段階としたが、次数は任意に決定し
てもよいことは言うまでもない。
【0148】また、本実施例では、1チャンネル分の演
算時間あたりの波形メモリの読み出し回数を2回とし、
補間演算の次数の最小値を1としたが、波形メモリの読
み出し回数を増やせば、補間演算の次数の最小値を1よ
り大きくすることができることは言うまでもない。
算時間あたりの波形メモリの読み出し回数を2回とし、
補間演算の次数の最小値を1としたが、波形メモリの読
み出し回数を増やせば、補間演算の次数の最小値を1よ
り大きくすることができることは言うまでもない。
【0149】また、本実施例では、補間演算の方式とし
て多項式近似を用いたが、他の数学的近似方法を用いて
もよいことは言うまでもない。
て多項式近似を用いたが、他の数学的近似方法を用いて
もよいことは言うまでもない。
【0150】また、本実施例では、最大同時発音数を4
として4チャンネルの時分割演算を行なったが、最大同
時発音数は演算量や演算速度や回路規模に応じて任意に
決定してもよいことは言うまでもない。
として4チャンネルの時分割演算を行なったが、最大同
時発音数は演算量や演算速度や回路規模に応じて任意に
決定してもよいことは言うまでもない。
【0151】また、本実施例では、補間演算のための係
数メモリを、係数毎に別々にしたが、全部の係数メモリ
の合計容量は同じままで、少ない個数にまとめてもよい
ことは言うまでもない。
数メモリを、係数毎に別々にしたが、全部の係数メモリ
の合計容量は同じままで、少ない個数にまとめてもよい
ことは言うまでもない。
【0152】また、複数ある乗算器や加算器、メモリな
どをさらに時分割して使用して、それらの個数を減らし
てもよいことは言うまでもない。
どをさらに時分割して使用して、それらの個数を減らし
てもよいことは言うまでもない。
【0153】
【発明の効果】以上のように本発明は、波形をサンプリ
ングして得た波形データを記憶した波形メモリと、前記
波形メモリを読み出すための波形アドレスを複数発生す
る波形アドレス発生手段と、前記波形アドレスを記憶す
る波形アドレス記憶手段と、前記波形アドレス記憶手段
に記憶された複数の波形アドレスの中から波形アドレス
を選択し波形メモリへ出力する波形アドレス選択手段
と、前記波形メモリから読み出された波形データを記憶
する波形データ記憶手段と、前記波形データ記憶手段に
記憶された波形データのうち前記波形アドレス記憶手段
に記憶されている波形アドレスに対応した波形データを
有効な波形データとして当該波形データの数に基づいて
補間演算の次数を決定する補間演算次数判定手段と、波
形データの補間演算を前記次数に従って行う補間演算手
段とを備え、時分割で複数の楽音を発生するように構成
したものであり、波形の補間演算の次数をできるだけ高
め、ノイズの少ない楽音を発生することができる優れた
楽音発生装置を実現できるものである。
ングして得た波形データを記憶した波形メモリと、前記
波形メモリを読み出すための波形アドレスを複数発生す
る波形アドレス発生手段と、前記波形アドレスを記憶す
る波形アドレス記憶手段と、前記波形アドレス記憶手段
に記憶された複数の波形アドレスの中から波形アドレス
を選択し波形メモリへ出力する波形アドレス選択手段
と、前記波形メモリから読み出された波形データを記憶
する波形データ記憶手段と、前記波形データ記憶手段に
記憶された波形データのうち前記波形アドレス記憶手段
に記憶されている波形アドレスに対応した波形データを
有効な波形データとして当該波形データの数に基づいて
補間演算の次数を決定する補間演算次数判定手段と、波
形データの補間演算を前記次数に従って行う補間演算手
段とを備え、時分割で複数の楽音を発生するように構成
したものであり、波形の補間演算の次数をできるだけ高
め、ノイズの少ない楽音を発生することができる優れた
楽音発生装置を実現できるものである。
【図1】本発明の実施例における楽音発生装置の構成図
【図2】本発明の実施例における波形アドレス発生手段
の構成図
の構成図
【図3】本発明の実施例における波形アドレス記憶手段
と波形データシフト判定手段の構成図
と波形データシフト判定手段の構成図
【図4】本発明の実施例における波形アドレス選択手段
の構成図
の構成図
【図5】本発明の実施例における波形データ記憶手段の
構成図
構成図
【図6】本発明の実施例における有効フラグ記憶部の構
成図
成図
【図7】本発明の実施例における補間演算手段の構成図
【図8】本発明の実施例における補間演算手段の別の構
成図
成図
【図9】本発明の実施例における波形混合手段の構成図
【図10】本発明の実施例における全体動作のタイミン
グ図
グ図
【図11】本発明の実施例における波形アドレス発生手
段と波形アドレス記憶手段と波形データシフト判定手段
のタイミング図
段と波形アドレス記憶手段と波形データシフト判定手段
のタイミング図
【図12】本発明の実施例における波形データ記憶手段
のタイミング図
のタイミング図
【図13】本発明の実施例における補間演算手段と波形
混合手段のタイミング図
混合手段のタイミング図
【図14】(a)は1次補間の説明のための波形図
(b)は2次補間の説明のための波形図
(c)は3次補間の説明のための波形図
【図15】本発明の実施例における波形アドレスと波形
データとアドレス差の説明のための波形図
データとアドレス差の説明のための波形図
100 波形アドレス発生手段
150 波形アドレス記憶手段
200 波形アドレス選択手段
250 波形データシフト判定手段
300 波形メモリ
350 波形データ記憶手段
400 補間演算次数判定手段
450 補間演算手段
500 エンベロープ発生手段
550 波形混合手段
600 DAC
610 DAC
620 サウンドシステム
700 時分割演算制御手段
Claims (4)
- 【請求項1】 波形をサンプリングして得た波形データ
を記憶した波形メモリと、前記波形メモリを読み出すた
めの波形アドレスを複数発生する波形アドレス発生手段
と、前記波形アドレスを記憶する波形アドレス記憶手段
と、前記波形アドレス記憶手段に記憶された複数の波形
アドレスの中から波形アドレスを選択し波形メモリへ出
力する波形アドレス選択手段と、前記波形メモリから読
み出された波形データを記憶する波形データ記憶手段
と、前記波形データ記憶手段に記憶された波形データの
うち前記波形アドレス記憶手段に記憶されている波形ア
ドレスに対応した波形データを有効な波形データとして
当該波形データの数に基づいて補間演算の次数を決定す
る補間演算次数判定手段と、波形データの補間演算を前
記次数に従って行う補間演算手段とを備え、時分割で複
数の楽音を発生するように構成したことを特徴とする楽
音発生装置。 - 【請求項2】 前記波形アドレス選択手段は、既に前記
波形メモリから読み出され前記波形データ記憶手段に記
憶されている波形データに対応する波形アドレスは選択
しないように構成することにより、前記補間演算次数判
定手段は前記波形データ記憶手段に既に記憶された波形
データの数に基づいて補間演算の次数を決定するように
構成したことを特徴とする請求項1記載の楽音発生装
置。 - 【請求項3】 前記波形アドレス選択手段は、波形アド
レスを選択する際の優先度判定部を有し、発音の有無、
音量、音色、楽曲におけるパートなどの音楽的要素のう
ち少なくとも1つに応じて優先度をつけて波形アドレス
を選択するように構成したことを特徴とする請求項1記
載の楽音発生装置。 - 【請求項4】 前記補間演算次数判定手段で決定される
補間演算の次数が、1以上の整数となるように、1チャ
ンネル分の演算時間あたりの波形メモリの読み出し回数
を2回以上に設定するように構成したことを特徴とする
請求項1記載の楽音発生装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12593392A JP3435702B2 (ja) | 1992-05-19 | 1992-05-19 | 楽音発生装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12593392A JP3435702B2 (ja) | 1992-05-19 | 1992-05-19 | 楽音発生装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05323970A JPH05323970A (ja) | 1993-12-07 |
JP3435702B2 true JP3435702B2 (ja) | 2003-08-11 |
Family
ID=14922558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12593392A Expired - Fee Related JP3435702B2 (ja) | 1992-05-19 | 1992-05-19 | 楽音発生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3435702B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3625880B2 (ja) * | 1994-12-02 | 2005-03-02 | 株式会社ソニー・コンピュータエンタテインメント | 音源装置 |
ATE394771T1 (de) * | 2002-09-02 | 2008-05-15 | Ericsson Telefon Ab L M | Klangsynthesierer |
-
1992
- 1992-05-19 JP JP12593392A patent/JP3435702B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH05323970A (ja) | 1993-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4715257A (en) | Waveform generating device for electronic musical instruments | |
US5111727A (en) | Digital sampling instrument for digital audio data | |
US7612281B2 (en) | Reverberation effect adding device | |
JPH0631968B2 (ja) | 楽音信号発生装置 | |
KR0135601B1 (ko) | 전자 악기의 디지탈 신호 발생기 | |
USRE31653E (en) | Electronic musical instrument of the harmonic synthesis type | |
JPS6223319B2 (ja) | ||
US5625158A (en) | Musical tone generating apparatus | |
JPS6242515B2 (ja) | ||
JPH0795235B2 (ja) | 電子楽器 | |
US5036541A (en) | Modulation effect device | |
US4215614A (en) | Electronic musical instruments of harmonic wave synthesizing type | |
JP3435702B2 (ja) | 楽音発生装置 | |
USRE33738E (en) | Electronic musical instrument of waveform memory reading type | |
JPS6230634B2 (ja) | ||
US5254805A (en) | Electronic musical instrument capable of adding musical effect to musical tones | |
JPS6113757B2 (ja) | ||
JPS59168493A (ja) | 楽音波形発生装置 | |
US4338844A (en) | Tone source circuit for electronic musical instruments | |
JP2608938B2 (ja) | 波形補間装置 | |
US4446769A (en) | Combination tone generator for a musical instrument | |
JP3091343B2 (ja) | 電子楽器 | |
JPH03174592A (ja) | 電子楽器の音源回路 | |
JP2898841B2 (ja) | 電子楽器 | |
JP2669073B2 (ja) | Pcm音源装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |