JP3095018B2 - 楽音発生装置 - Google Patents

楽音発生装置

Info

Publication number
JP3095018B2
JP3095018B2 JP11281990A JP28199099A JP3095018B2 JP 3095018 B2 JP3095018 B2 JP 3095018B2 JP 11281990 A JP11281990 A JP 11281990A JP 28199099 A JP28199099 A JP 28199099A JP 3095018 B2 JP3095018 B2 JP 3095018B2
Authority
JP
Japan
Prior art keywords
waveform
read
address
unit
waveform 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
Application number
JP11281990A
Other languages
English (en)
Other versions
JP2000089765A (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.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP11281990A priority Critical patent/JP3095018B2/ja
Publication of JP2000089765A publication Critical patent/JP2000089765A/ja
Application granted granted Critical
Publication of JP3095018B2 publication Critical patent/JP3095018B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、波形メモリに記憶
された波形データを用いて楽音波形を生成する楽音発生
装置に関するものである。この楽音発生装置は、例え
ば、電子楽器の音源に用いることができる。
【0002】
【従来の技術】従来より、波形メモリに記憶された波形
データを、発生する楽音のピッチに応じた速さで読み出
し、読み出された波形データのエンベロープ等を制御し
て楽音波形を形成する楽音発生装置が知られている。こ
のような波形メモリを用いた楽音発生装置では、波形再
生時に音色を制御する方法が限られてしまう。波形メモ
リ中に複数の波形データを用意し、その波形データの中
から演奏データに応じた音色の波形データを選択し、こ
れを読み出して楽音を形成することができる。しかし、
ある特定の演奏表現で演奏され、この演奏表現に応じた
特性を有する波形を波形メモリに記憶させる場合、1つ
の演奏表現だけを取り上げてみても、短い時間のスラ
ー,長い時間のスラーといったように発生する楽音波形
の形状は多様に変化し、これらの楽音波形を全て記憶さ
せることは現実的でない。したがって、演奏データに応
じて音色を制御したい場合には、波形メモリから読み出
された波形データを、演奏データに応じた周波数特性を
有するディジタルフィルタで加工する方法が一般的であ
る。
【0003】いずれにしても、波形データの読み出し
は、生成すべき楽音のピッチに応じて制御されるだけ
で、読み出される波形データの時間軸を、ピッチに関係
なく自由に制御することができないという問題があっ
た。例えば、読出レートを速くすればピッチが上がる
が、波形の全体長が短くなり、逆に読出レートを遅くす
ればピッチが下がるが、波形の全体長が長くなる。1波
形の中の立上り部分、中央部分、立下り部分といった個
々の時間長を制御する場合でも同様に楽音のピッチで決
定されていた。
【0004】読み出される波形データの時間軸を自由に
制御できれば、波形再生時に、1種類の波形データから
生成可能な音色の種類を増やすことがでる。例えば、ピ
ッチを変えずにアタック長を変えることで異なる音色を
生成できる。また、演奏場面を飛躍的に広げることもで
きる。例えば、スラー波形を読み出す際には、ピッチを
変えずに時間軸方向に波形を縮めれば、録音時のスラー
よりも短い時間のスラーを、伸ばせば長い時間のスラー
を生成することができる。ビブラート波形を読み出す際
に、ピッチを変えずに時間軸方向に波形を伸ばせばビブ
ラートがゆっくりしたものとなり、縮めればビブラート
が早くなる。いずれも、ピッチと無関係に時間軸方向に
波形を伸ばしたり縮めたりする必要がある。
【0005】一方、録音再生技術分野では、早口の言葉
を聞き取りやすくするためにピッチを変えずに時間軸方
向に音声波形を伸ばす技術、2倍速再生時に再生音声の
ピッチを元のピッチに戻す技術などが知られている。こ
のような技術を上述した楽音発生装置に適用することが
考えられる。しかし、楽音波形データのピッチは波形デ
ータの進行に従ってダイナミックに変動している。上述
した従来の時間軸圧縮伸張技術は、ピッチ制御を必要と
しない音声のための技術であり、電子楽器の音源のよう
にセント単位のピッチ制御が必要な場合への適用は容易
ではない。また、楽音波形は、演奏データに応じて各発
音毎に異なる態様で制御しなければならないのに対し、
従来の時間軸圧縮伸張技術は、入力する波形データを一
律に処理するためのものであり、楽音波形データの読出
レートを、生成すべき楽音のピッチに応じて自由に制御
することはできないという問題があった。
【0006】そのため、演奏表現に応じた特性を有する
波形データを波形メモリに記憶し、読み出し時にこの楽
音波形を部分的に飛び越させたり、繰り返したりして楽
音波形の形状を変えようとする場合、元の波形データを
微細に眺めれば、各周期は一定していない。したがっ
て、波形メモリからの読み出し時に、読み出された波形
データをそのままの形で、部分的な抜き取りや繰り返し
をしようとすると、境界でのつながりが悪く、また、つ
なぎ合わせの波形処理操作が困難であった。
【0007】
【発明が解決しようとする課題】本発明は、上述した問
題点を解決するためになされたもので、生成する楽音の
ピッチと波形メモリから読み出される波形データの時間
軸の圧縮伸張とを自由に制御することができるととも
に、複数の部分的な波形データのつながりを良くするこ
とができる楽音発生装置および楽音発生方法を提供する
ことを目的とするものである。
【0008】
【課題を解決するための手段】請求項1に記載の発明に
おいては、楽音発生装置において、連続した複数周期の
楽音波形が1または複数の周期を単位として区切られた
複数の単位波形データを記憶した波形メモリと、指定さ
れた楽音ピッチに応じた速度で増加する読出アドレスを
生成し、前記読出アドレスにより前記波形メモリから前
記複数の単位波形データを読み出す読出手段と、時間的
に変化する仮想アドレスを出力する仮想アドレス出力手
段と、前記読出アドレスと前記仮想アドレスとの差に応
じて前記読出アドレスとは異なる交替読出アドレスを発
生し、前記読出手段が現在の読出アドレスに替えて前記
交替読出アドレスを前記読出アドレスとして前記複数の
単位波形データを読み出すように制御する制御手段とを
有するものである。したがって、仮想アドレスにより時
間軸の圧縮伸張を制御することができ、生成する楽音の
ピッチと波形メモリから読み出される波形データの時間
軸の圧縮伸張とを自由に制御することができる。また、
波形データの読み出しの途中においても、時間軸方向の
圧縮率を精密に制御することができる。単位波形データ
が1または複数の周期を単位として区切られているか
ら、単位波形データのつながりが良くなる。
【0009】請求項2に記載の発明においては、楽音発
生装置において、連続した複数周期の楽音波形が1また
は複数の周期を単位として区切られた複数の単位波形デ
ータを記憶した波形メモリと、指定された楽音ピッチに
応じた速度で増加する読出アドレスを生成し、前記読出
アドレスにより前記波形メモリから前記複数の単位波形
データを読み出す読出手段と、時間的に減少変化する仮
想アドレスを出力する仮想アドレス出力手段と、前記読
出アドレス前記仮想アドレスとの差に応じて、時間軸
上の過去の位置にある周期を読み出すように、前記読出
手段の生成する前記読出アドレスを変更する制御をする
制御手段とを有するものである。
【0010】請求項3に記載の発明においては、楽音発
生装置において、連続した複数周期の楽音波形が1また
は複数の周期を単位として区切られた複数の単位波形デ
ータを記憶した波形メモリと、指定された楽音ピッチに
応じた速度で増加する読出アドレスを生成し、前記読出
アドレスにより前記波形メモリから前記複数の単位波形
データを読み出す読出手段と、楽音制御に関するパラメ
ータに応じて時間的に変化する仮想アドレスを出力する
仮想アドレス出力手段と、前記読出アドレス前記仮想
アドレスとの差に応じて、前記楽音波形が時間軸伸縮さ
れるように、前記読出手段の生成する前記読出アドレス
を変更する制御をする制御手段とを有するものである。
請求項4に記載の発明においては、楽音発生装置におい
て、連続した複数周期の楽音波形が1または複数の周期
を単位として区切られた複数の単位波形データを記憶し
た波形メモリと、指定された楽音ピッチに応じた速度で
増加する読出アドレスを生成し、前記読出アドレスによ
り前記波形メモリから前記複数の単位波形データを読み
出す読出手段と、時間的に減少変化する仮想アドレスを
出力する仮想アドレス出力手段と、前記読出アドレスと
前記仮想アドレスとの差に応じて前記読出アドレスとは
異なる交替読出アドレスを発生し、前記読出手段が現在
の読出アドレスに替えて前記交替読出アドレスを前記読
出アドレスとして前記複数の単位波形データを読み出す
ように制御することにより、時間軸上の過去の位置にあ
る周期を読み出すようにする制御手段とを有するもので
ある。請求項5に記載の発明においては、楽音発生装置
において、連続した複数周期の楽音波形が1または複数
の周期を単位として区切られた複数の単位波形データを
記憶した波形メモリと、指定された楽音ピッチに応じた
速度で増加する読出アドレスを生成し、前記読出アドレ
スにより前記波形メモリから前記複数の単位波形データ
を読み出す読出手段と、楽音制御に関するパラメータに
応じて時間的に変化する仮想アドレスを出力する仮想ア
ドレス出力手段と、前記読出アドレスと前記仮想アドレ
スとの差に応じて前記読出アドレスとは異なる交替読出
アドレスを発生し、前記読出手段が現在の読出アドレス
に替えて前記交替読出アドレスを前記読出アドレスとし
て前記複数の単位波形データを読み出すように制御する
とにより、前記楽音波形が時間軸伸縮されるようにす
る制御手段とを有するものである。
【0011】なお、上述した発明に関連した楽音発生装
置として、連続した複数周期の楽音波形が1または複数
の周期を単位として区切られ周期長が規格化された複数
の単位波形データを記憶した波形メモリと、指定された
楽音ピッチに応じた速度で増加する読出アドレスを生成
し、前記読出アドレスにより前記波形メモリから前記複
数の単位波形データを読み出す読出手段と、時間的に変
化する仮想アドレスを出力する仮想アドレス出力手段
と、前記読出アドレスと前記仮想アドレスとを前記単位
波形データの周期番号を単位として比較することによ
り、前記読出アドレスと前記仮想アドレスとの差を求
め、前記読出アドレスと前記仮想アドレスとの差に応じ
て前記読出アドレスと前記規格化された周期長の整数倍
だけ異なる交替読出アドレスを発生し、前記読出手段が
現在の読出アドレスに替えて前記交替読出アドレスを前
記読出アドレスとして前記複数の単位波形データを読み
出すように制御する制御手段を有するものがある。
【0012】また、連続した複数周期の楽音波形が1ま
たは複数の周期を単位として区切られた複数の単位波形
データを記憶した波形メモリと、指定された楽音ピッチ
に応じた速度で増加する読出アドレスを生成し、前記読
出アドレスにより前記波形メモリから前記複数の単位波
形データを読み出す読出手段と、該読出手段の読み出し
ている前記単位波形データの番号を出力する番号出力手
段と、時間的に変化する仮想アドレスを出力する仮想ア
ドレス出力手段と、前記番号と前記仮想アドレスとの差
が所定値以上になったことを検出し、前記差が小さくな
るよう、前記読出手段の生成する前記読出アドレスを変
更する制御をする制御手段を有するものがある。
【0013】上述した請求項1ないし請求項3の各請求
項に記載の楽音発生装置、これらの楽音発生装置に関連
した上述した楽音発生装置を構成する各手段は、ハード
ウエアにより実現することができる。また、コンピュー
タを、上述した各手段として機能させるためのプログラ
ムを作成することができる。このプログラムを記録媒体
に記録し、記録媒体からこのプログラムをコンピュータ
で読み取り可能にすることができる。
【0014】
【発明の実施の形態】図1ないし図6を参照し、最初に
波形準備の段階について説明する。図1は、本発明の楽
音発生装置に用いる波形メモリに記憶させる楽音波形デ
ータの加工方法の原理的説明図である。図中、1は周期
の長い元波形(周期長L1)のサンプル値、2は周期の
短い元波形(周期長L2 )のサンプル値、3は規格化さ
れた周期長CL(Cycle Length)の記憶波
形のサンプル値である。楽音波形を記憶させる際に、周
期の長い元波形は、圧縮率α1 =CL/L1 で圧縮し、
周期の短い元波形は、圧縮率α2 =CL/L2 で伸張し
て、周期がCLに規格化された記憶波形を形成して波形
メモリに記憶する。
【0015】ここでの圧縮および伸張は、いわゆるサン
プリングレート変換の技術を用いて波形データのサンプ
リング周波数を変更することで実現され、それにより1
周期あたりのサンプル数が変化する。例えば、1周期あ
たり100サンプルの波形データのサンプリング周波数
を1.5倍すれば1周期あたり150サンプルの波形デ
ータが得られ、元波形は圧縮率α2 =150/100で
伸張され、周期長が150サンプルに規格化された記憶
波形を形成して波形メモリに記憶される。このように、
波形準備処理では、圧縮伸張により元波形の長さがα倍
された記憶波形が生成される。
【0016】具体的には、楽音波形データから、同位相
となる時点を検出して、ここを元波形の区切りポイント
として指定し、このポイント間を1周期と定めて、その
間のサンプル数が予め定められたサンプル数となるよう
にサンプル値を補間する処理を行い、規格化された周期
長CLの記憶波形のサンプル値3を得る。サンプリング
周波数が一定であるので、1周期あたりのサンプル数で
周期長を表すことができる。上述した波形処理におけ
る、1周期当たりのサンプル数の増減により、周期長が
圧縮または伸張されることになる。なお、α2 =CL/
2 は、1を超える値をとるが、圧縮の場合と同じ演算
式を用いるために伸張も圧縮率αで表現している。
【0017】周期の切れ目のポイントとしては、楽音波
形を1つのポイントまで読み出し終わったときに、その
時点で、別の任意のポイントから始まる波形の読み出し
に直接つないだ場合でも、波形が比較的滑らかにつなが
り、比較的ノイズの発生しにくい位置が選ばれている。
本発明では、それを同位相ポイントと呼んでいる。例え
ば、振幅値がゼロのゼロクロスポイントが好適である。
同位相ポイントで区切られた範囲が複数周期の波形デー
タの各1周期であり、その長さが所定長に規格化され、
規格化処理後の単位波形データが波形メモリに記憶され
る。
【0018】このように、本発明では、波形データの各
周期長を規格化したものであり、周期長CLを一定値に
揃えた単位波形データに加工してから波形メモリに記憶
させるとともに、元波形に対する規格化された単位波形
データの圧縮率αも周期データメモリに記憶しておき、
再生時にこの圧縮率αを用いて元波形をそのまま再現し
たり、読み出した波形データの時間軸圧縮伸張を行なう
ことにより元波形とは異なった音色の楽音波形を生成す
ることを可能とする。波形メモリに記憶する複数周期の
波形データの各周期の長さをあらかじめ規格化してある
ため、波形データの読出時に、波形データのある周期の
読み出しから別の周期の読み出しへと簡単に切換えでき
るようになる。
【0019】図2は、本発明の楽音発生装置に用いる波
形メモリを作成する第1の装置の概要構成図である。図
中、11は録音再生部、12は周期長規格化部、13は
各周期長指定部、14は波形データ書込部、15は周期
データ書込部である。
【0020】波形入力は、録音再生部11においてディ
ジタル録音されている。この再生時に、録音された複数
周期の波形データは、各周期長指定部13において、波
形データの各周期の長さを自動的に検出、ないしは、ユ
ーザの操作子の操作により指定して、各周期の長さ、図
1の例では、L1 ,L2 を判定し、圧縮率αを決定す
る。圧縮率αは、規格化した周期長を元波形の周期長で
割った値である。周期長規格化部12では、決定された
圧縮率αに基づき圧縮伸張を行って、複数周期の波形デ
ータの各周期長CLを所定の長さに揃えて規格化した波
形データを作成する。波形データ書込部14は規格化さ
れた波形データで波形メモリを作成し、周期データ書込
部15は圧縮率α、または、これをセント単位の圧縮率
α’に変換して周期データメモリを作成する。
【0021】後述する本発明の楽音発生装置の実施の形
態では、上述した方法で準備された波形データを使用す
るが、次に示すような装置で波形データを作成すること
もできる。図3は、本発明の楽音発生装置に用いる波形
メモリを作成する第2の装置の概要構成図である。図
中、図2と同様な部分には同じ符号を付して説明を省略
する。21は分離部、22は非周期波形書込部である。
図2に示した第1の装置に比べて、分離部21で、録音
した波形データを周期成分と非周期成分に分離し、非周
期成分については非周期波形書込部22によりそのま
ま、波形メモリに書き込み、周期成分につては、図2に
示した第1の装置と同様に、周期長を所定の長さに揃え
て、波形メモリに記憶したものである。非周期波形と周
期波形とは、同期をとって読み出すことができるように
記憶される。
【0022】分離部としては、例えば、周期成分の多い
周波数帯域を分離するフィルタあるいは、1波形中で周
期成分の多い期間を分離するゲート回路等を用いること
ができる。このような非周期波形データと周期波形デー
タとを使用した楽音形成では、音源の2チャネルを使用
し、そのうち1チャネルで非周期波形データを通常の方
式で読み出し、もう1つのチャネルで周期波形データの
時間軸圧縮伸張を行いつつ読み出すようにする。
【0023】図4は、本発明の楽音発生装置において、
波形メモリに記憶される波形データの記憶形式の模式的
説明図である。図中、図4(a)は立上りから立下りま
での一連の全波形を記憶した例であり、図4(b)は、
アタック部の波形とループ部の波形とを切り出して波形
メモリに記憶した例である。
【0024】図4(a)に示されるように、自然楽器の
複数周期の演奏音は、波形データの1周期の長さを所定
の規格化された長さに揃えられ、言い換えれば、1周期
当たり所定数のサンプル値となるようにして、波形メモ
リの各番地に立上りから立下がりまで順番に記憶されて
いる。図中、A0〜An−1は、規格化された波形デー
タの周期1〜周期n−1の先頭番地である。複数周期の
元波形の上で、1周期毎のそれぞれの同位相ポイントを
決定し、この同位相ポイントの間が周期長CLになるよ
うに規格化が行われる。その結果、規格後の各周期iの
先頭番地Aiは、周期長CLに等しい一定間隔おきであ
る。
【0025】図4(b)においては、自然楽器の演奏音
を再生した際に、アタック部の波形とループ部の波形と
を抽出したものである。図4(a)と同様に、A0〜A
nは、規格化された波形データの周期1〜周期nの先頭
番地であり、先頭番地は周期長CLに等しい一定間隔お
きである。アタック部の波形データは、先頭番地AS=
A0からの波形データの周期0〜周期m−1であり、ル
ープ部の波形データは、先頭番地LS=Amからの波形
データの周期m〜周期nである。定常波形や、ビブラー
ト,トレモロ,トリルなどの周期性を有する変調波形の
変調周波数の1周期分などをループ部の波形データとす
る。変調周波数は、例えば、ビブラート等では数Hz〜
数十Hzくらいの周波数である。また、変調周波数の複
数周期分をループ部としてもよい。
【0026】なお、ループ部の終端から先端に戻る部分
を滑らかにするため、ループ部用に切り出した波形の終
端と先端の波形とをクロスフェードして得られた波形を
ループ部の終わりの部分に記憶してもよい。また、アタ
ック部の波形の途中を抜いて、その両側でクロスフェー
ドして、アタック部の長さを短縮して記憶させてもよ
い。図4(b)においても、各1周期の圧縮率αが周期
データとして記憶される。ただし、アタック部以外で
は、圧縮率が余り変化しないため、複数周期に一度記憶
させるだけでもよい。
【0027】上述した説明では、規格化された波形デー
タは、音高に関係なく一律に同一周期長、言い換えれ
ば、1周期当たりのサンプル数を同じにしていた。しか
し、規格化する周期長CLを、音高等に応じて変えるこ
とができる。図5は、周期長の規格化の第1,第2の例
を示す説明図である。図5(a)は、第1の例を示すも
ので、音色や音高によらないで1つの波形データの中の
各周期の長さを揃えたものである。例えば、1周期長を
1k(1024)サンプルとしたものである。以下の例
でも、1kサンプルを基準値として説明するが、この値
は説明用の数値例である。
【0028】図5(b)は、第2の例を示すもので、1
オクターブの各音域毎に、揃える周期の長さを異ならせ
たものである。音域毎にメモリバンクを割り当て、G0
〜F#1の音域は、1周期のサンプル数を1024サン
プルとしているが、1オクターブ上がる毎にサンプル数
を半分にし、G7〜F#8の音域は、8サンプルとして
いる。1つの波形データの中では、同じ周期長(サンプ
ル数)に揃えられている。
【0029】なお、複数周期を1つの単位波形データと
してもよい。例えば、G1〜F#2の音域では、2周期
を1つにして1024サンプルの単位波形データとす
る。波形メモリの読み出し時に、複数の単位波形の周期
を特定するための周期番号の桁数が少なくなり、カウン
タのビット数を減らすことができる。高いオクターブの
音域では、特にサンプル数が少ないために有効である。
【0030】図6は、周期長の規格化の第3の例を示す
説明図である。半音の4つ毎に区分した音域毎に揃える
周期の長さを異ならせたものである。音域毎にメモリバ
ンクを割り当て、G0〜A#0の音域は、1周期のサン
プル数を1536サンプルとしているが、音域が1つ上
がる毎にサンプル数を5/6〜3/4にしている。シフ
トダウン数については、後述するが、1024ビットの
カウンタに付加したシフトレジスタの動作を示してい
る。1つの波形データの中では、同じ周期数(サンプル
数)に揃えられている。
【0031】上述した説明では、1つの立上りから立下
りまでの波形中の各周期長は、その波形の音域によって
異なる長さに揃えられていたが、アタックの周期長を増
やし、サステインの周期長を減らすといったように、発
音途中で発音期間に応じて切り換えるようにしてもよ
い。また、上述した例は、1つの音色に属する波形デー
タの中での例であり、複数の音色の波形データが用意さ
れる場合は、各音色毎に独立に周期長を決めればよい。
【0032】上述した変形例では、音域や発音期間、音
色等によって周期長を異ならせたが、それでも、周期長
を全く規格化しない場合に比べて、単位波形の終了の検
出が1周期のサンプル数を計数するカウンタで容易に検
出することができ、次の単位波形の波形の先頭アドレス
に移ることができる。また、単位波形同士のつながりが
よくなる。1つの音色の中で、複数のバリエーションの
波形データ(タッチ強/弱の波形や、変調あり/なしの
波形等)を用意する場合に、各波形データの周期の切り
方を互いに同位相になるようにしておく。そうしておけ
ば、ノイズを抑えつつ1つのバリエーションの波形デー
タのある周期の読み出しの途中で、異なるバリエーショ
ンの波形データの任意の周期の読み出しに切り換えるこ
とができる。
【0033】図7は、本発明の楽音発生装置の実施の一
形態を説明するための全体構成図である。図中、31は
演奏入力部、32は設定入力部、33は制御部、34は
音源部、35は制御レジスタ部、36は波形発生部、3
7は音量制御部、38はCH累算部、39はDAC、4
0はサウンドシステムである。
【0034】演奏入力部31は、MIDIキーボード、
MIDIギター、ホイール操作子、ペダル操作子、ジョ
イスティック等の演奏操作子、ないし、それらの中の任
意の操作子の組み合わせ、および、自動演奏装置等であ
り、MIDIイベント等の演奏情報を供給する。設定入
力部32は、表示器、パネルスイッチ、スライダー、ジ
ョグダイヤル等であり、ユーザが操作することにより、
設定情報を入力するとともに、設定情報等の表示を行
う。制御部33は、CPU、ROM、RAM、その他の
周辺回路を含み、設定情報に応じて楽音波形発生装置の
各種設定や、演奏入力に応じて音源部34に対する発音
制御を行う。
【0035】音源部36内の制御レジスタ部35は、制
御部33から、音色指定データ、ピッチデータ、エンベ
ロープデータ、発音開始終了データなどのデータを受け
取って保持する。波形発生部34は、制御レジスタ部3
5から制御データを受けて時分割で複数チャネル分の波
形を生成する。音量制御部37は、生成された各チャネ
ルの波形に、楽音の立ち上がりから終わりまでの音量変
化特性を付与するもので、ノートオン後に、アタック、
ディケイ、サステイン、リリース(ADSR)型のエン
ベロープを発生しつつ、波形発生部36が生成した波形
にエンベロープを乗じて音量を制御する。
【0036】以上の、波形発生部36、音量制御部37
の動作は、各発音チャネル毎に独立して行われ、CH累
算部38は、エンベロープ特性を付与された複数チャネ
ルの波形を合成して、DAC(D/A変換器)39に供
給し、DAC39は、アナログ信号に戻された波形をサ
ウンドシステム40に出力する。
【0037】図8は、図7に示した波形発生部の内部構
成図である。図中、51,52は加算部、53はFナン
バ発生部、54はカウンタ部、55は波形選択部、56
はLPF、57はスタートアドレスおよび周期長記憶
部、58は周期データ記憶部、59は第1の周期番号レ
ジスタ、60は第2の周期番号レジスタ、61は第1の
加工部、62は第2の加工部、63は波形メモリ、64
は第1の補間部、65は第2の補間部、66はクロスフ
ェード合成部、67は仮想アドレスカウンタ部である。
【0038】この実施の形態では、各発音チャネル毎
に、読出アドレスをずらせて波形メモリ63から2系列
の読み出しを行う。仮想アドレスカウンタ部67は、時
間の経過とともに波形メモリ63から波形データを読み
出すべき位置の軌跡を指示し、波形選択部55は、この
仮想アドレスVAの示すアドレスを目標として、2系列
を交替させることにより読み出すアドレスを追従させ
る。それとともに、クロスフェード合成部66を制御し
て、2系列の一方の選択または両系列の合成をする。1
つの波形データの連続した周期を順次読み出す場合は、
2系列のうちのいずれか一方だけを使用して読み出しを
行う。読み出す周期がジャンプする場合には、一方の系
列では、直前に読み出していた周期に続く周期を読み出
しつつ、もう一方の系列でジャンプ先の新たな周期の読
み出しを行い、その2波形をクロスフェード合成部66
で合成して波形のつながりを良くしている。
【0039】この実施の形態では、波形メモリ63に記
憶された単位波形内のサンプル点のアドレスを指示する
位相データとして、Fナンバ(周波数ナンバ)演算方式
を採用している。各鍵の音高周波数に比例した数値をカ
ウンタ部54で累算してその整数部を単位波形内のサン
プル点のアドレスとして、サンプル値を実時間で読み出
すものである。
【0040】各鍵の音高周波数に比例したノートナンバ
(セント単位)は、加算部51においてはピッチベンド
等のピッチずれ入力(セント単位)と加算され、加算部
52においては、LPF(ローパスフィルタ)56の出
力と加算され、Fナンバ発生部53に入力される。ピッ
チずれの入力データとしては、この他に、基準ピッチか
らのずれを指定するデチューンデータや、LFO(低周
波発振器)の発生する低周波波形データ、ピッチエンベ
ロープ発生器の発生するピッチエンベロープデータ等が
あり、これらのデータをそれぞれ単独で、あるいは、複
数混合してFナンバ発生部53に供給する。
【0041】LPF56は、ディジタルローパスフィル
タであり、周期データ記憶部58から、単位波形毎の圧
縮率α’を受け取り、滑らかな変化となるようにフィル
タリングを行なって加算部52に圧縮率α’を出力す
る。この周期データ記憶部58は、選択された波形デー
タを加工した際に使用した各周期の圧縮率αをセント単
位に変換した圧縮率α’を記憶したものである。上述し
たノートナンバおよびピッチずれの入力データは、いず
れもセント単位であるため、乗算すべきところを加算で
済ますことができる。
【0042】圧縮率α’を加算することで、周波数的に
は、圧縮率を乗算したことになり、規格化された単位波
形データの周期長が、規格化前の変動している周期長に
戻される。規格化された周期長をそのまま用い、変動し
ている録音時の波形データに戻す必要がない場合には、
圧縮率α’を加算する必要はない。
【0043】図5(b)を参照して説明したように、周
期長の規格化の第2の例においては、音域によって楽音
生成に使用する単位波形の周期長(サンプル数)が異な
っている。Fナンバ発生部53は、このことを考慮して
発音ピッチに対応する周波数情報(Fナンバ)を出力す
る。また、図6を参照して説明したように、周期長の規
格化の第3の例においては、バンク1〜3、バンク4〜
6、バンク7〜9・・・の各3つのバンクでは、次に説
明するように、カウンタ部54のカウント範囲(マスク
するビット数)が同じであるので、同じFナンバとな
る。
【0044】カウンタ部54は、Fナンバを累算するカ
ウンタである。整数部は、最大で1024までカウント
できればよいので10ビット、小数部は、ピッチ非同期
で正確なピッチの楽音を発生するために15ビット程度
を用いる。したがって、合わせて25ビット程度とな
る。カウンタ部54は、ノートオンでリセットされ、各
サンプリング周期に各チャネルのFナンバを累算し、各
系列それぞれの単位波形内を読み出すためのポインタp
1,p2を出力する。
【0045】波形選択部55は、図7に示した制御部3
3内のCPUにより指示された読み出すべき波形データ
について、そのスタートアドレスA0と周期長CLを、
スタートアドレスおよび周期長記憶部57から受け取
る。スタートアドレスおよび周期長記憶部57は、選択
された波形データの立ち上がりのスタートアドレスと、
その波形の単位波形の周期長(各単位波形に共通の値)
を記憶している。
【0046】波形選択部55内の、第1,第2の周期番
号レジスタ59,60は、それぞれ、各系列で読み出し
ている周期番号CN(サイクルナンバ)1,2を保持す
る。周期番号CN(サイクルナンバ)1,2は、先に図
4を参照した説明における、「規格化後の各周期i」に
相当する値であり、言い換えれば、周期番号CN(サイ
クルナンバ)1,2により「規格化後の各周期i」が指
定される。1波形内の各単位波形の先頭アドレスは、各
系列について、次式で計算される。 ADS1=A0+CL×CN1 ADS2=A0+CL×CN2 このように、各単位波形の先頭アドレスは、あらかじめ
記憶しておかなくても簡単に求めることができ、複数の
単位波形データを任意につなぐことが容易である。
【0047】波形選択部55は、先頭アドレスADS
1,ADS2を加工部61,62に送るとともに、各周
期長CLに応じてポインタp1,p2の指定範囲を変え
るように第1,第2の加工部61,62に指示を送る。
また、カウンタ部54からの出力をモニタしており、ポ
インタp1,p2が規格化された周期長CLの範囲を一
通り通過するタイミング、すなわち、指定された1周期
分が読み終わるタイミングを検出し、そのタイミングで
次の波形との接続制御を行う。ただし、バンクにより終
了タイミングは異なる。
【0048】単位波形データは、その1周期を任意のn
ビットで表わされる数に2m を乗じた数の周期長(サン
プル数)で規格化されたものである。例えば、図5
(b)の規格化例の場合、バンク1の場合はm=3,n
=7、バンク2の場合はm=3,n=6、バンク3の場
合は、m=3,n=5であり、バンク8の場合にm=
3,n=0となる。カウンタ部54は、整数部がm+n
=10ビットであり、単位波形データの1周期内のサン
プル点の読出アドレスをポインタp1,p2の整数部で
指定する。バンク1の場合は、最上位の第10ビットが
1から0に反転したことを検出することにより単位波形
データの終了を判定することができ、同様に、バンク2
の場合は第9ビット、バンク3の場合は第8ビット、バ
ンク8の場合は第3ビットが、それぞれ1から0に反転
したことを検出することによって単位波形データの終了
を判定することができる。
【0049】このように、図5(b)に示した規格化が
行われていれば、波形メモリから複数の単位波形データ
を順次読み出す場合に、周期長が異なる波形データであ
っても、1つのアドレスカウンタを共用し、単位波形デ
ータの終了の判定をカウンタ部54の上位ビットの判定
だけで行うことができる。また、図示を省略するが、第
1および第2の系列で波形メモリから波形データを時分
割による同時処理で読み出す場合に、第1の系列で読み
出す第1の波形データと第2の系列で読み出す第2の波
形データとの1周期あたりのサンプル数が異なる場合で
も、1つのアドレスカウンタを共用し、各系列毎に単位
波形データの終了の判定をカウンタ部54の上位ビット
の判定だけで行うことができる。
【0050】図9は、図8に示した第1,第2の加工部
の内部構成図である。図9(a)は、図5(b)を参照
して説明した周期長の規格化の第2の例に、図9(b)
は、図6を参照して説明した周期長の規格化の第3の例
に用いるものである。図中、71は上位ビットマスク
部、72は加算部、73はシフト部、74は加算部であ
る。
【0051】図9(a)において、上位ビットマスク部
71は、周期長CLを入力し、図5(b)に示したバン
ク1の場合には全ビットをそのまま出力するが、バンク
2の場合には上位1ビットを0でマスクして9ビット化
し、バンク3の場合には上位2ビットをマスクして8ビ
ット化し、読み出す周期の先頭アドレスADS1または
ADS2と加算部72で加算して波形メモリ63に出力
する。バンク4以降についても同様である。その結果、
加工部61,62の出力するアドレスAD1,AD2
は、バンク1では先頭アドレスADS1,ADS2から
スタートして1024サンプル分の範囲をFナンバに応
じた速度で変化し、バンク2では先頭アドレスから51
2サンプル分の範囲、バンク3では256サンプル分の
範囲、というように、それぞれバンクに応じた範囲で変
化するアドレスが出力される。
【0052】このように、図5(b)に示した規格化が
行われていれば、波形メモリから複数の単位波形データ
を順次読み出す場合に、周期長が異なる波形データであ
っても、1つのアドレスカウンタを共用し、ビットマス
クを変えるだけで同じ位相で変化する読出アドレスを作
成することができる。また、上述したように、第1およ
び第2の系列で波形メモリから波形データを時分割によ
る同時処理で読み出す場合に、第1の系列で読み出す第
1の波形データと第2の系列で読み出す第2の波形デー
タの周期長が異なる場合でも、1つのアドレスカウンタ
を共用し、各系列毎にビットマスクを異ならせるだけで
同じ位相で変化する各系列の読出アドレスを作成するこ
とができる。
【0053】図9(b)において、上位ビットマスク部
71は、図6に示したバンク1〜3の場合にはマスクを
かけず10ビットとし、バンク4〜6の場合には9ビッ
ト化し、バンク7〜9の場合には8ビット化し、バンク
10〜12以降についても同様にマスクをかけて低ビッ
ト化する。さらに加えて、バンク1,4,6の場合に
は、ビットマスク後のポインタp1,p2をシフト部7
3により1ビットシフトダウンした出力(1/2倍にな
る)と加算部74で加算して、結果的に3/2倍したポ
インタを出力する。バンク2,5,7・・・の場合に
は、シフト部73により2ビットシフトダウンした出力
(1/4になる)と加算して、結果的に5/4したポイ
ンタを出力し、バンク3,6,9・・・の場合には、ビ
ットマスク後のポインタをそのまま出力する。
【0054】したがって、加工部61,62の出力する
アドレスAD1,AD2は、図6に示したバンク1では
先頭アドレスADS1,ADS2からスタートして15
36サンプル分の範囲をFナンバに応じた速度で変化
し、バンク2では先頭アドレスから1280サンプル分
の範囲、バンク3では1024サンプル分の範囲、バン
ク4では768サンプル分の範囲、というようにそれぞ
れバンクに応じた範囲で変化するアドレスが出力され
る。
【0055】次に、図8に戻り、波形メモリ63からの
波形の読み出しについて説明する。各チャネル毎に2系
列で、アドレスAD1=(ADS1+p1),AD2=
(ADS2+p2)に記憶された波形データを読み出
す。ここで、読み出し用のポインタp1,p2は、各周
期の読出開始時に値0(ほぼ0の値)からスタートし、
各サンプリング周期毎に、楽音ピッチに応じたレート
(Fナンバとシフト部73のシフト量により決まる値)
で増加する。ここで、先頭アドレスADS1,ADS2
は整数部だけを有し、Fナンバとポインタp1,p2は
整数部と小数部を有するので、結果的にAD1,AD2
も整数部と小数部からなるアドレスとなる。波形メモリ
63からは、各系列毎にそれぞれ、読出アドレスAD
1,AD2の整数部で示されるアドレスとその1つ先の
アドレスの2つのサンプル値が読み出され、第1,第2
の補間部64,65に出力される。
【0056】第1,第2の補間部64,65では、各系
列毎に2つずつ読み出されたサンプル値の間を、それぞ
れ、読出アドレスAD1,AD2の小数部に応じて補間
し、結果的に、読出アドレスAD1,AD2の整数部お
よび小数部に対応した2系列の補間サンプル値が出力さ
れる。クロスフェード合成部16は、クロスフェードの
指示があった場合、入力する2系列分の補間サンプル値
のうちの切り替え前の系列のレベルを最大値から徐々に
小さくする(フェードアウト)とともに切り替え後の系
列のレベルをゼロから徐々に大きく(フェードイン)
し、かつ、レベル制御後の2系列の補間サンプル値を加
算して出力する波形データのサンプル値を得る。クロス
フェードの指示がなかった場合は、直前にフェードイン
した系列のレベルを最大値に保持するとともに、他方の
系列のレベルをゼロに保持し、2系列を合成した波形デ
ータを出力する。
【0057】図10は、本発明の楽音発生装置におい
て、発音開始指示に応じて、音源部の発音割当てされた
チャネルで、指示に応じた楽音の生成を開始する状況を
説明するためのフローチャートである。図10(a)
は、メインのフローチャート、図10(b)は、キーオ
ンイベントのフローチャートである。図10(a)にお
いて、S81においては、装置の初期設定を行う。S8
2においては、鍵スイッチ入力に関する処理を行い、波
形生成S83においては、演奏操作子入力に関する処理
を行い、S84においては、設定操作子入力に関する処
理を行う。
【0058】図10(b)は、S82の鍵スイッチ処理
において、キーオンイベント(発音を指示するイベン
ト)があったときの処理を説明するものであり、S85
においては、キーの音高をパラメータNNのレジスタに
設定し、押鍵強度(速度)をパラメータVELのレジス
タに設定する。S86においては、このキーオンイベン
トによる発音チャネル(ch)を発音チャネルASとし
て割当てる。S87においては、ASchの発音チャネ
ルの制御レジスタに、現在選択されている音色TCの波
形選択情報、エンベロープ情報等を設定する。より具体
的には、波形の記憶位置を指示する情報、アタックの長
さm、ループの長さn、音高NNに応じたピッチ、エン
ベロープの各レベル、各レート等を書き込む。S88に
おいては、ASchの発音チャネルにノートオンを指示
し、波形読み出し、および、音量エンベロープの制御な
どが開始される。
【0059】上述したS87における発音指示時の制御
レジスタの設定において、当該チャネルでは圧縮伸張を
行わないよう設定された場合、波形発生部のノートオン
後の動作は次のようになる。まず、ステップ1として、
第1の系列のみを使用して、波形メモリに複数記憶され
た波形データの中から、選択されている音色TCに対応
した波形データの周期0のアドレスA0(図4(a)参
照)から読み出しを開始する。ここで、第1の周期番号
レジスタ59のCN1は0である。次に、ステップ2と
して、ピッチに応じた速度でポインタp1を更新しなが
ら読み出しを続行する。ステップ3として、ポインタp
1が、周期長CL(図4(a)の例では、一定長)に達
すると、CN1を1つインクリメントする。ここで、ポ
インタp1の示す位置は、図9に示した加工部61内の
上位ビットマスク部71の動作に応じ、先頭の0に戻っ
ている。以後、ステップ2とステップ3を繰り返す。
【0060】仮想アドレスカウンタ部67は、周期番号
のスケール上で整数部10ビット、小数部5ビットの1
5ビットを有するカウンタであり、この出力値に応じて
波形読み出し時の時間軸圧縮伸張が制御される。整数部
のビット数は、1波形の周期数の最大値またはこれ以上
になるように選定されている。小数部は、仮想アドレス
の進行速度VF(仮想Fナンバ)を細かく制御するため
である。仮想アドレスカウンタ部67は、同じ単位波形
データを繰り返し読み出す範囲を指定するループアドレ
ス、1波形を読み出す進行レート等を入力し、仮想アド
レスを波形選択部55に出力する。仮想アドレスカウン
タ部67は、時間の進行あるいは周期の進行に応じてカ
ウント値が進行する。このカウント値を、以下、仮想ア
ドレスVAという。
【0061】第1の例として、仮想アドレスVAに対し
て、所定時間毎(例えば、10ミリ秒毎、2ミリ秒毎
等、あるいは、サンプリング周期の100周期毎等)に
上述した進行速度VFを累算する。この値に小数部があ
れば、1回の累算で進む量を1.2とか0.8のように
指定できる。この場合の進行速度VFは、絶対時間を基
準とした仮想アドレスVAの進行レートとなる。したが
って、Fナンバ(実アドレスの進行レート)を変更して
波形のピッチを変更したとしても、波形データの再生時
間は変化を受けない。
【0062】第2の例として、1つの単位波形を読み出
すごとに、仮想アドレスVAに対し進行速度VFを累算
する。この場合の進行速度VFは、波形データを時間軸
圧縮伸張なしで読み出したときの実アドレスの進行レー
ト(Fナンバに相当)を基準とした相対レートになる。
例えば、進行速度VFを2とすれば、仮想アドレスは実
アドレスの2倍の速度で進むことになり、波形の再生時
間が2分の1となる。以下の説明では、第1の例のよう
に、時間の進行に応じて仮想アドレスVAが進行する場
合についてのみ説明する。
【0063】仮想アドレスは、0からスタートし時間の
経過とともに波形メモリ63から単位波形データを読み
出すべき位置の軌跡を指示する。波形選択部55は、こ
の仮想アドレスVAの示す周期番号を目標として、第
1,第2の周期番号レジスタ59,60に記憶された周
期番号CN1,CN2を追従させる。すなわち、2つの
系列の読出アドレスを追従させる。その様子は、後述す
るように図11〜図17に示されている。それととも
に、クロスフェード合成部66を制御して、2系列の一
方の選択または両系列の合成をする。具体的には、仮想
アドレスカウンタ部67の示す周期番号VAと、現在ク
ロスフェード部66においてフェードイン中の系列、ま
たは、レベルが最大値に保持されている系列、すなわ
ち、現系列の周期番号CNとの差を判定して、当該系列
における周期の読み出しを継続するか、他方の系列でそ
れとは異なる番号の周期の読み出しを開始してその系列
への切り替えを行うかを決定する。
【0064】なお、上述した説明では、現系列の周期番
号CN1またはCN2で周期データ記憶部58から圧縮
率α’を読み出しており、読み出している現系列の単位
波形データに対応してピッチを制御することを前提とし
ていた。これに代えて、図8において仮想アドレスカウ
ンタ部67から周期データ記憶部58に点線の矢印で示
したように、仮想アドレスカウンタ部67の出力する仮
想アドレスの整数部により、周期データ記憶部58から
圧縮率α’を読み出すことにより、現在クロスフェード
部66においてフェードイン中の系列、または、レベル
が最大値に保持されている系列の波形データを、波形全
体で見た場合の読み出しの進行に対応したピッチ変化で
読み出すようにすることができる。
【0065】図10(b)に示したS87における発音
指示時の制御レジスタの設定において、当該チャネルで
圧縮伸張を行うよう設定された場合、図8に示した波形
発生部では、第1の系列と第2の系列の両方を使用し
て、必要に応じてクロスフェード合成部66でクロスフ
ェードをしながら、波形メモリ63から読み出される波
形の時間軸を圧縮伸張する音源動作を開始する。
【0066】最初は、一方の系列の読出アドレス(仮に
AD1とする)を用いて波形データを出力する。この系
列の周期番号CN1の軌跡が仮想アドレスVAの軌跡に
十分近い場合には、この系列の読出を継続する。一方、
この系列の周期番号CN1の軌跡が仮想アドレスVAの
軌跡から遠ざかったときには、読み出しの切り替えを指
示し、他方の系列において、周期番号CN1と整数値だ
け大きいかまたは小さい値で、仮想アドレスに近い値の
周期番号CN2を用いて読み出しを開始するとともに、
この系列から他方の系列へのクロスフェードを行う。ク
ロスフェードの終了後は、他方の系列において読出アド
レス(AD2)で波形データを読み出すとともに、この
系列の周期番号CN2の軌跡と仮想アドレスVAとの差
を判定し、同様の動作を行う。
【0067】図10(b)に示したS87のノートオン
に対して図8に示した波形発生部の動作を説明する。カ
ウンタ54は、ゼロを初期値として各サンプリング周期
毎にFナンバを累算し、累算値を加工部61,62に出
力する。一方、仮想アドレスカウンタ67は、ゼロを初
期値として進行速度VFに応じて時間的に変化する仮想
アドレスVAを出力する。波形選択部55は、周期番号
CN1=0を初期値として、まず、第1の系列において
選択されている音色TCに対応した波形データ(波形デ
ータの記憶形式としては、図4(a)参照)の周期0の
読み出しを行う。このとき、クロスフェード部66から
は第1系列の第1の補間部64の補間サンプル値が出力
されている。
【0068】周期番号CN1=0の読み出しの終了時
に、第1の系列において続いて読み出される周期番号C
N1+1=1を新たな周期番号CN1に設定するととも
に、その時の仮想アドレスVAを新たな周期番号CN1
=1と比較し、その差が1/2周期以上かどうかを判定
する。仮想アドレスVAとCN1=1との差が1/2周
期以内の場合は、切り替えを行わず、第1の系列におい
て引き続きCN1=2,3,・・・に対応した周期の読
出を行い、その周期の終わりの時点で上述したのと同じ
動作を繰り返す。
【0069】一方、仮想アドレスVAがCN1より1/
2周期以上進んでいる場合、または、1/2周期以上遅
れている場合には切り替えを行う。波形選択部55は、
仮想アドレスVAに応じた周期番号をCN2に設定し、
引き続き第1の系列においてCN1に対応した周期の読
み出しを行うとともに、第2の系列において上述したC
N2に対応した新たな周期の読み出しを行い、クロスフ
ェード部66において、第1の系列の第1の補間部64
の補間サンプル値から第2の系列の第2の補間部65の
補間サンプル値へのクロスフェードを行うように制御す
る。このクロスフェードは、第2の系列における周期C
N2の読み出しが終わる前に終了するよう設定されてい
る。
【0070】その後、フェードインした第2の周期で周
期CN2の読み出しが終了すると、CN2の値を1つイ
ンクリメントするとともに、その時の仮想アドレスVA
と比較し、その差が1/2周期以上かどうか判定する。
その後の動作は、上述した第1の系列において判定が行
われた後の動作と同様である。すなわち、切り替えが必
要な場合は、再び第1の系列に向けてのクロスフェード
を行い、切り替えが必要ない場合には、第2の系列で継
続して読み出しを行う。なお、切り替えを行うかどうか
の判定基準は、上述したような1/2周期には限らず、
5/4周期,3周期など、任意に決めることができる。
特に、仮想アドレスVAも、読出アドレスの周期CN
1,CN2と同様に、単位波形データの周期番号を指定
するものとして、読出アドレスの周期CN1,CN2と
比較するようにすれば、周期番号同士の比較であるか
ら、仮想アドレスの発生と比較とを少ないビット数で簡
単に行うことができる。
【0071】一般的に、切り替えを行わない場合には、
2つの系列のうちの現系列(クロスフェード部66で直
前にフェードインされた系列または最大レベルに保持さ
れていた系列)が、直前に読み出されていた周期に引き
続く周期の読み出しを継続するとともに、その出力がク
ロスフェード部から最大レベルで出力される。切り替え
を行う場合には、現系列が直前に読み出された周期に続
く周期の読み出しを行い、もう一方の系列で仮想アドレ
スVAに対応した切り替えられるべき周期の読み出しを
行うとともに、クロスフェード部66で現系列からもう
一方の系列へのクロスフェードが行われる。
【0072】上述した仮想アドレスに応じた第1の系
列,第2の系列の読出アドレスの進行の様子が、図11
ないし図17に示されている。図11は、ピッチ一定で
再生時間のみを圧縮する第1の例である。図中、91は
圧縮伸張しない場合の第1の加工部の出力する第1の系
列の読出アドレス、92は仮想アドレスカウンタ部の出
力、93,95は第1の系列の読出アドレス、94,9
6は第2の系列の読出アドレスである。横軸は時間であ
り、縦軸は波形メモリ63のアドレスである。再生時間
を圧縮する場合には、仮想アドレスカウンタ部の出力9
2の傾きを、圧縮伸張しない場合の第1の系列の読出ア
ドレス91の傾きよりも急峻にする。最初、第1の系列
の読出アドレス93をアドレスとして波形メモリ63か
ら読み出した第1の系列をクロスフェード合成部66か
ら出力する。
【0073】そうすると、第1の系列の読出アドレス9
3は、仮想アドレスカウンタ部の出力92から遅れて行
き、この遅れが所定周期数に達したときに、第2の系列
の読出アドレス94をアドレスとして、上述した所定周
期数だけアドレスを進めた位置から波形メモリ63を読
み出し、この第2の系列をクロスフェード合成部66か
ら出力するようにする。その際、瞬時に切り替えるので
はなく、切り替えの前後の所定時間においては、2系列
の出力を用いて徐々に第2の系列の割合を多くしてクロ
スフェード合成部66から出力するようにする。
【0074】その後は、第2の系列の読出アドレス94
も、仮想アドレスカウンタ部の出力92から遅れ行く。
そこで、この遅れが上述した所定周期数に達したとき
に、第1の系列の読出アドレス95をアドレスとして、
上述した所定周期数だけアドレスを進めた位置から波形
メモリ63を読み出し、この第1の系列をクロスフェー
ド合成部66から出力するようにする。この際も、切り
替えの前後の所定時間においては、2系列の出力を用い
て徐々に第1の系列の割合を多くしてクロスフェード合
成部66から出力するようにする。同様にして、第1の
系列の読出アドレス95から第2の系列の読出アドレス
96に切り替える。結局、仮想アドレスカウンタ部の出
力92を目標値として交互に2系列を切り替え、かつ、
読み出しアドレスを局部的に飛び越しさせながら1つの
全波形を読み出す。
【0075】図12は、ピッチ一定で再生時間のみを圧
縮する第2の例である。図中、図11と同様な部分には
同じ符号を付して説明を省略する。図11に示した例
が、全波形の期間において一様に圧縮されるように、仮
想アドレスカウンタ部の出力92を直線的に設定したの
に対して、この第2の例では、徐々に圧縮率が増加する
ような曲線状にしたものである。この場合も、図11に
示した例と同様にして交互に2系列を切り替えて圧縮を
実現することができる。切り替えの前後の所定時間にお
いては、2系列の出力をクロスフェードしてクロスフェ
ード合成部66から出力する。なお、遅れの差である所
定周期数を一定値に固定する代わりに、圧縮率が高くな
るほど大きな値にするなどして適応的に制御することも
可能である。
【0076】図13は、ピッチ一定で再生時間のみを伸
張する第1の例である。図中、図11と同様な部分には
同じ符号を付して説明を省略する。再生時間を伸張する
場合には、仮想アドレスカウンタ部の出力92の傾き
を、圧縮伸張しない場合の第1の系列の読出アドレス9
1の傾きよりも緩やかにする。最初、第1の系列の読出
アドレス93をアドレスとして波形メモリ63から読み
出した第1の系列をクロスフェード合成部66から出力
する。
【0077】第1の系列の読出アドレス93の、仮想ア
ドレスカウンタ部の出力92からの進みが所定周期数に
達したときに、第2の系列の読出アドレス94をアドレ
スとして、上述した所定周期数だけアドレスを遅らせた
位置から波形メモリ63を読み出し、この第2の系列を
クロスフェード合成部66から出力するようにする。切
り替え前後の所定時間においては、2系列の出力をクロ
スフェードしてクロスフェード合成部66から出力す
る。その後、第2の系列の読出アドレス94の、仮想ア
ドレスカウンタ部の出力92からの進みが上述した所定
周期数に達したときに、再び第1の系列の読出アドレス
95をアドレスとして、上述した所定周期数だけアドレ
スを遅らせた位置から波形メモリ63を読み出し、以後
同様に、交互に2系列を切り替える。結局、仮想アドレ
スカウンタ部の出力92を目標値として交互に2系列を
切り替え、かつ、読出アドレスを局部的に繰り返しなが
ら1つの全波形のアドレスを読み出す。
【0078】図14は、ピッチ一定で再生時間のみを伸
張する第2の例である。図中、図11と同様な部分には
同じ符号を付して説明を省略する。この例は図13に示
した例が、全波形の期間において一様に伸張されるよう
に、仮想アドレスカウンタ部の出力92を直線的に設定
したのに対して、この第2の例では、徐々に圧縮率が低
下する(伸張率が増加する)ような曲線状にしたもので
ある。この場合も、図13に示した例と同様にして伸張
を実現することができる。なお、進みの差である所定周
期数を一定値に固定するのではなく、圧縮率が低くなる
ほど小さな値にするなどして適応的に制御することも可
能である。
【0079】Fナンバは、発生すべき楽音のピッチに対
応しており、したがって、カウンタ54はこのピッチに
応じた速度で増加する。一方、仮想アドレスVAの進行
速度VFは、楽音のピッチ等の他の楽音特性とは独立し
て任意に設定することができる。進行速度VFは、正の
値だけではなく、負の値をとってもよく、また、楽音の
発生途中で大きく変化させてもよい。進行速度VFが負
の値を取った場合は、各周期の読み出しにおいて実アド
レスは正方向に進行しつつ、時間軸上の過去の位置にあ
る周期に順次クロスフェードされ、全体として眺めれば
負の方向に読出位置が進むように見える。楽音の発生途
中で進行速度VFを変化させた場合、波形データに対し
部分的に異なる圧縮伸張をすることができる。例えば、
波形データのアタック部のアドレス範囲で大きい進行速
度VFとし、それ以降を小さい進行速度VFとすると、
アタック部が圧縮され、それ以降が伸張された波形デー
タが出力される。
【0080】図15は、再生時間一定でピッチのみを上
げる例である。図中、図11と同様な部分には同じ符号
を付して説明を省略する。97は第1の加工部の出力す
る第1の系列の読出アドレスである。ピッチを上げる場
合には、Fナンバ発生部53から出力されるFナンバを
大きくして、圧縮伸張しない場合の第1の系列の読出ア
ドレス91の傾きを、仮想アドレスカウンタ部の出力9
2の傾きよりも急峻にする。最初、第1の系列の読出ア
ドレス93をアドレスとして波形メモリ63から読み出
した第1の系列をクロスフェード合成部66から出力す
る。
【0081】そうすると、第1の系列の読出アドレス9
3は、仮想アドレスカウンタ部の出力92から進んで行
き、この進みが所定周期数に達したときに、第2の系列
の読出アドレス94をアドレスとして、上述した所定周
期数だけアドレスを遅らせた位置から波形メモリ63を
読み出し、この第2の系列をクロスフェード合成部66
から出力するようにする。その際、瞬時に切り替えるの
ではなく、切り替えの前後の所定時間においては、2系
列の出力を用いて徐々に第2の系列の割合を多くしてク
ロスフェード合成部66から出力するようにする。
【0082】その後は、第2の系列の読出アドレス94
も、仮想アドレスカウンタ部の出力92から進んで行
く。そこで、この進みが上述した所定周期数に達したと
きに、第1の系列の読出アドレス95をアドレスとし
て、上述した所定周期数だけアドレスを遅らせた位置か
ら波形メモリ63を読み出し、この第1の系列をクロス
フェード合成部66から出力するようにする。この際
も、切り替えの前後の所定時間においては、2系列の出
力を用いて徐々に第1の系列の割合を多くしてクロスフ
ェード合成部66から出力するようにする。同様にし
て、第1の系列の読出アドレス95から第2の系列の読
出アドレス96に切り替え、さらに、第1の系列の読出
アドレス97に切り替える。結局、この場合も、仮想ア
ドレスカウンタ部の出力92を目標値として交互に2系
列を切り替え、かつ、アドレスを局部的に繰り返させな
がら1つの全波形のアドレスを読み出す。
【0083】図16は、再生時間一定でピッチのみを下
げる例である。図中、図11と同様な部分には同じ符号
を付して説明を省略する。ピッチを下げる場合には、F
ナンバ発生部53から出力されるFナンバを小さくし
て、第1の系列の読出アドレス91の傾きを、圧縮伸張
しない場合の仮想アドレスカウンタ部の出力92の傾き
よりも緩やかにする。最初、第1の系列の読出アドレス
93をアドレスとして波形メモリ63から読み出した第
1の系列をクロスフェード合成部66から出力する。
【0084】第1の系列の読出アドレス93は、仮想ア
ドレスカウンタ部の出力92から遅れて行き、この遅れ
が所定周期数に達したときに、第2の系列の読出アドレ
ス94をアドレスとして、上述した所定周期数だけアド
レスを遅らせた位置から波形メモリ63を読み出し、こ
の第2の系列をクロスフェード合成部66から出力する
ようにする。その際、切り替えの前後の所定時間におい
ては、2系列の出力を用いてクロスフェードさせてクロ
スフェード合成部66から出力するようにする。その後
も同様に、仮想アドレスカウンタ部の出力92を目標値
として交互に2系列を切り替え、かつ、アドレスを局部
的に飛び越しさせながら1つの全波形のアドレスを読み
出す。
【0085】図15,図16を参照して説明したよう
に、生成する楽音のピッチが変更された場合でも、仮想
アドレスVAの時間変化の形状を変更せずにおけば、も
とと同じ時間軸でピッチのみ変更された波形データを得
ることができる。仮想アドレスにより時間軸の圧縮伸張
を制御する方式であるため、通常のピッチチェンジャと
は異なり、精度の高いピッチチェンジが可能である。
【0086】図11ないし図16を参照して説明した例
では、仮想アドレスVAを連続的に進行させたが、所定
の値まで進行した後に別の値にジャンプさせるようにし
てもよい。図17は、仮想アドレスをループさせながら
圧縮伸張する例である。図中、図11と同様な部分には
同じ符号を付して説明を省略する。98,100は第2
の加工部の出力する第2の系列の読出アドレス、99は
第1の加工部の出力する第1の系列の読出アドレスであ
る。
【0087】例えば、図4(b)に示したような波形デ
ータを用意し、仮想アドレスVAが、ループエンドLE
のアドレスに達すれば、ループスタートアドレスLSに
復帰するようなループ進行がある。ここで、ループスタ
ートアドレスLS,エンドアドレスLEとしては、その
周期の番号だけで指定できる。図4(b)の例であれ
ば、LSのアドレスとして「m」、LEのアドレスとし
て「n」を指定すればよい。あるいは、LEとして
「n」、ループサイズとして「n−m」を指定してもよ
い。ループ進行の動作では、順次進行する仮想アドレス
VAの整数部がLE=nに達すれば(VA−n+m)を
計算し、それをループの戻りアドレスとして仮想アドレ
スVAに設定する。
【0088】仮想アドレスにループ進行が設定された場
合でも、仮想アドレスカウンタ部67にのみ、上述した
ループ進行機能を持つように変更すれば、波形発生部3
6における他のブロックの動作は特に変更する必要はな
い。波形選択部55は、ループ進行する仮想アドレスV
Aを入力し、それを現系列の周期CNと比較して、既に
説明したのと同様な手順で波形データの読出アドレスを
仮想アドレスに追従させる。
【0089】この様子が図17に例示されており、図1
1と同様に第1および第2の系列の読出アドレス93,
94,95,96が交替した後、仮想アドレスVAがル
ープエンドLE=nとなり、ループスタートLS=mに
戻る際に、第1の系列の読出アドレス97に交替するこ
とにより、仮想アドレスVAから所定周期数だけアドレ
スを進ませた位置から波形メモリ63を読み出し、以後
同様にして、第1および第2の系列の読出アドレス9
3,94、95、96が交替する。切り替えの前後の所
定時間においては、2系列の出力を用いてクロスフェー
ドさせる。図示の例では、クロスフェードを考慮して、
仮想アドレスVAのループエンドの周期番号を波形メモ
リに記憶された最後の周期番号よりも若干手前に設定し
ている。
【0090】この実施例では、仮想アドレスをループ進
行させるだけで、時間軸圧縮伸張を制御しながら、波形
のループ読出ができ、構成が簡単である。それに比べ、
波形の読出アドレスでループを制御しようとする場合に
は、読出アドレスがループエンドアドレスに達したのを
検出して読出アドレスを戻す処理に加え、仮想アドレス
をループスタートに戻す処理を行わなければならない。
【0091】図15ないし図17を参照した説明におい
ては、仮想アドレスカウンタ部の出力92を直線状に変
化させたが、曲線状に変化させてもよい。また、図11
ないし図16の例において、Fナンバ発生部53から出
力されるFナンバを時間に対して曲線状に変化させるこ
とにより、第1,第2の系列の読出アドレス91の傾き
を曲線状に変化させてもよい。
【0092】上述した説明では、図5,図6に示したよ
うにバンク毎に1つの単位波形データの周期長(サンプ
ル数)が異なる波形データを図8に示した1つのカウン
タ部54で取り扱うことができるように、図8,図9に
示したた第1,第2の加工部において上位ビットマスク
を行う構成を採用した。その代わりに、バンクに応じた
所定の最終アドレスを判定したときに先頭アドレスにな
るようにカウンタ部54の動作を制御してもよい。
【0093】上述した説明では、2系列の切り替え時点
においては、常にクロスフェードを行ったが、クロスフ
ェードは必ずしも必要ではない。各単位波形は、互いに
位相を同じに揃えてあるので、そのまま接続しても大き
なノイズにはならないからである。また、1つの全波形
の中で、圧縮する期間と伸張する期間とを設けることも
できる。
【0094】また、1つの波形データの中の連続しない
単位波形データ同士を接続するだけでなく、2つの異な
る波形データの間で、単位波形データ同士を接続するよ
うにしてもよい。新たな波形に接続する時点で、音源部
に対し、新たな波形のスタートアドレスと接続したい周
期の番号を指示すればよい。異なる2波形でも、同じ周
波数になるように読み出しを行い、かつ、同じ位相のポ
イントで波形をつなげれば、接続時の大きなノイズを防
止することができる。
【0095】次に、図18,図19を参照して、波形メ
モリに記憶された波形データの形状を制御して再生する
具体例を説明する。図18は、本発明の楽音発生装置で
波形データの形状を制御して再生する第1の具体例の説
明図である。1つの波形全体を伸ばしたり縮めたりする
例である。図中、111は元波形、112はピッチアッ
プ波形、113はピッチダウン波形、114は圧縮波
形、115は等長波形、116は伸張波形である。横軸
は時間、縦軸は振幅を表わす。いずれも1つの楽音波形
の立上りから減衰までの1波形を、左から順にアタック
期間(A)、ディケイ期間(D)、サステイン期間
(S)、リリース期間(R)の4区分に分けて模式的に
示すものである。
【0096】ピッチアップ波形112は、波形メモリか
ら読み出す際にFナンバを大きな値にして、読出速度を
速くしてピッチを上げて再生した波形であり、1波形の
発生期間はピッチに応じて縮まっている。ピッチダウン
波形113は、Fナンバを小さな値にして、読出速度を
遅くしてピッチを下げて再生した波形であり、1波形の
発生期間はピッチに応じて伸びている。
【0097】圧縮波形114は、ピッチアップ波形11
2,ピッチダウン波形113のいずれかを加工し、加工
前の波形のピッチは変えないで1波形の発生期間を元波
形111よりも縮めて再生した波形である。等長波形1
15は、ピッチアップ波形112,ピッチダウン波形1
13のいずれかを加工し、加工前の波形のピッチは変え
ないで波形の発生期間を元波形111と同じ長さで再生
した波形である。もちろん、元波形111と同一ピッチ
で読み出しても再生できる。伸張波形116は、ピッチ
アップ波形112,ピッチダウン波形113のいずれか
を加工し、加工前の波形のピッチは変えないで1波形の
発生期間を元波形111よりも伸ばして再生した波形で
ある。
【0098】図19は、本発明の楽音発生装置で波形デ
ータの形状を制御して再生する第2の具体例の説明図で
ある。1つの波形を部分的に伸ばしたり縮めたりする例
である。図中、111は図18に示した元波形、121
は立上り部が圧縮された波形、122は定常部が圧縮さ
れた波形、123は立下り部が圧縮された波形、124
は立上り部が伸張された波形、125は定常部が伸張さ
れた波形、126は立下り部が伸張された波形である。
図18と同様に1波形を模式的に示す。立上がり部は、
上述したアタック期間とディケイ期間であり、定常部は
サステイン期間、立ち下がり部はリリース期間である。
【0099】立上り部が圧縮された波形121、定常部
が圧縮された波形122、立下り部が圧縮された波形1
23は、それぞれ、1波形の一部分の期間を元波形11
1の対応部分よりも縮めて再生した波形である。立上り
部が伸張された波形124、定常部が伸張された波形1
25、立下り部が伸張された波形126は、それぞれ、
1波形の一部分の期間を元波形111の対応部分よりも
伸ばして再生した波形である。なお、図19に示した例
では、波形データのピッチを元波形のピッチと同じにし
て説明したが、ピッチを変更することも可能である。
【0100】上述したように、本発明の楽音発生装置に
よれば、元波形111のピッチを単に変えることができ
るだけでなく、ピッチとは関係なく1波形の全体または
1波形の部分的な波形を時間軸上で圧縮、伸張すること
ができる。なお、図18,図19において、波形データ
のピッチを変更しても仮想アドレスVAの時間変化形状
を変更しなければ、全体的に見た波形形状(時間軸のど
のあたりでどのような形状の波形が出力されているか)
は保持される。上述した「全体的に見た波形形状」と
は、音量のエンベロープを意味するものではなく、波形
準備の段階で音量エンベロープを一定にする波形処理が
行われた波形データの場合にも見ることができる。
【0101】上述した説明では、仮想アドレスを生成し
て時間軸の圧縮伸張を制御したが、仮想アドレスと読出
アドレスとの差分さえ求めることができれば、仮想アド
レスは、必ずしも生成しなくともよい。差分が求められ
るということは、実質的に仮想アドレスも生成されてい
ることと等価であるので、このようなものも本発明の技
術的範囲に含まれる。なぜなら、この差分は、上述した
仮想アドレスから読出アドレスを引き算したものであ
り、読出アドレスにこの差分を加算すれば上述した仮想
アドレスを得ることができるからである。
【0102】上述した説明では、先頭アドレスADS
1,ADS2と読み出し用のポインタp1,p2を用い
て波形メモリ63から波形データを読み出したが、先頭
アドレスとしては、図4に示した一連の波形の最初の先
頭アドレスA0をそのまま保持するとともに、ポインタ
p1,p2のビット数を増やして、ポインタp1,p2
で複数の単位波形データを順次読み出したり、読出アド
レスの切り替えを行うようにしてもよい。
【0103】上述した説明では、単位波形の周期長を規
格化したが、周期長が規格化されていなくても、例え
ば、あらかじめ先頭アドレスが記憶されているような単
位波形データに、この単位波形データを特定する番号を
付けるだけでもよい。読出手段の読み出している単位波
形データの番号に基づいて仮想アドレスとの差を検出す
ることにより読出アドレスと仮想アドレスとの差の判定
処理が簡略化され、制御が容易になる。その際、圧縮率
α’は、このような番号によって特定される単位波形デ
ータに対応してあらかじめメモリに記憶される。単位波
形の周期長は、例えば、後に隣接する単位波形の先頭ア
ドレスとこの単位波形の先頭アドレスとの差から求める
ことができる。単位波形の周期長は、単位波形ごとにそ
の周期長をあらかじめ記憶しておくことも可能である。
【0104】図18で説明した波形全体の伸縮、図19
で説明した波形の部分伸縮、図11ないし図17に例示
された態様を、図10に示したステップS87の設定処
理を適宜行うことにより、楽音制御に関するあらゆるパ
ラメータで選択的に使用して時間軸伸縮の制御をするこ
とができる。例えば、選択されている音色に応じて制御
したり、演奏データで指定された音高や強度で制御する
ことができる。その他、音量、テンポ、リズム種類、効
果種類、各種エンベロープ波形、演奏タイミング、和音
種類、調、等で制御してもよい。
【0105】上述した説明では、自然楽器の楽音を元波
形としたが、電子楽器からの楽音、人声音等の周期的な
成分を含むものであればよく、本発明においては、この
ような音も含めて楽音と総称している。また、圧縮率
α’は、必ずしも測定値から忠実に設定する必要はな
く、任意に加工をして設定することができる。圧縮率
α’に近似した時間変化特性を有する波形を、例えば、
ピッチエンベロープ発生器で発生させるようにしてもよ
い。具体的には、折れ線エンベロープとして近似した
り、時間的にサンプリング間隔の異なるエンベロープサ
ンプルを記憶したメモリを読み出してエンベロープを作
成する方法等がある。その場合、上述したピッチずれの
波形成分もそのエンベロープ発生器のパラメータの中に
取り込めば構成が簡単になる。
【0106】本発明の楽音発生装置は、ハードウエア音
源の代わりにCPUがプログラムを実行することにより
楽音を生成するソフト音源で実行するようにしてもよ
い。具体的には、図7に示した波形発生部36を、メモ
リおよびロジック回路などでハードウエア的に実現する
ことに代えて、メモリおよびCPUを用い、プログラム
によりCPUに同等の機能を実現させることができる。
また、図7に示した音源部34のブロック全体の機能を
プログラムを用いてCPUに実現させることもできる。
また、図7の制御部33と音源部34の機能を、1つの
共通のCPUに実現させるプログラムにすることもでき
る。この場合、制御部33がDAC39に直結すること
になる。
【0107】パーソナルコンピュータにおいては、音源
ボード上に搭載された専用のCPUやDSP、ROM、
RAM等を用いて音源部34の機能を実行させるか、B
IOS等のシステムプログラムおよびオペレーティング
システムの下で動作するアプリケーションプログラムと
して、ソフト音源のプログラムを実行し、制御部33お
よび音源部34の機能をパーソナルコンピュータのCP
Uで実現させることができる。上述したソフト音源プロ
グラムは、ROMに記憶させておくか磁気ディスクや光
ディスク等に記憶させておき、実行時にRAMにロード
して実行する。このプログラムは、光ディスクや通信ネ
ットワークを用いて供給することができる。
【0108】
【発明の効果】上述した説明から明らかなように、楽音
のピッチと波形データの時間軸の圧縮伸張を自由に制御
することができ、波形データの読み出しの途中において
も、時間軸方向の圧縮率を精密に制御することができる
という効果がある。複数の部分的な波形データのつなが
りが良くなるという効果がある。
【図面の簡単な説明】
【図1】 本発明の楽音発生装置に用いる波形メモリに
記憶させる楽音波形データの加工方法の原理的説明図で
ある。
【図2】 本発明の楽音発生装置に用いる波形メモリを
作成する第1の装置の概要構成図である。
【図3】 本発明の楽音発生装置に用いる波形メモリを
作成する第2の装置の概要構成図である。
【図4】 本発明の楽音発生装置において、波形メモリ
に記憶される波形データの記憶形式の模式的説明図であ
る。
【図5】 周期長の規格化の第1,第2の例を示す説明
図である。
【図6】 周期長の規格化の第3の例を示す説明図であ
る。
【図7】 本発明の楽音発生装置の実施の一形態を説明
するための全体構成図である。
【図8】 図7に示した波形発生部の内部構成図であ
る。
【図9】 図8に示した第1,第2の加工部の内部構成
図である。
【図10】 本発明の楽音発生装置において、発音開始
指示に応じて楽音の生成を開始する状況を説明するため
のフローチャートである。
【図11】 ピッチ一定で再生時間のみを圧縮する第1
の例の説明図である。
【図12】 ピッチ一定で再生時間のみを圧縮する第2
の例の説明図である。
【図13】 ピッチ一定で再生時間のみを伸張する第1
の例の説明図である。
【図14】 ピッチ一定で再生時間のみを伸張する第2
の例の説明図である。
【図15】 再生時間一定でピッチのみを上げる例の説
明図である。
【図16】 再生時間一定でピッチのみを下げる例の説
明図である。
【図17】 仮想アドレスをループさせながら圧縮伸張
する例の説明図である。
【図18】 本発明の楽音発生装置で波形データの形状
を制御して再生する第1の具体例の説明図である。
【図19】 本発明の楽音発生装置で波形データの形状
を制御して再生する第2の具体例の説明図である。
【符号の説明】
1 周期の長い元波形のサンプル値、2 周期の短い元
波形のサンプル値、3規格化された周期長の記憶波形の
サンプル値、51,52 加算部、53 Fナンバ発生
部、54 カウンタ部、55 波形選択部、56 LP
F、57 スタートアドレスおよび周期長記憶部、58
周期データ記憶部、59 第1の周期番号レジスタ、
60 第2の周期番号レジスタ、61 第1の加工部、
62第2の加工部、63 波形メモリ、64 第1の補
間部、65 第2の補間部、66 クロスフェード合成
部、67 仮想アドレスカウンタ部、91 圧縮伸張し
ない場合の第1の系列の読出アドレス、92 仮想アド
レスカウンタ部の出力、93,95,97,99 第1
の系列の読出アドレス、94,96,98,100 第
2の系列の読出アドレス

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 連続した複数周期の楽音波形が1または
    複数の周期を単位として区切られた複数の単位波形デー
    タを記憶した波形メモリと、 指定された楽音ピッチに応じた速度で増加する読出アド
    レスを生成し、前記読出アドレスにより前記波形メモリ
    から前記複数の単位波形データを読み出す読出手段と、 時間的に変化する仮想アドレスを出力する仮想アドレス
    出力手段と、 前記読出アドレスと前記仮想アドレスとの差に応じて前
    記読出アドレスとは異なる交替読出アドレスを発生し、
    前記読出手段が現在の読出アドレスに替えて前記交替読
    出アドレスを前記読出アドレスとして前記複数の単位波
    形データを読み出すように制御する制御手段と、 を有することを特徴とする楽音発生装置。
  2. 【請求項2】 連続した複数周期の楽音波形が1または
    複数の周期を単位として区切られた複数の単位波形デー
    タを記憶した波形メモリと、 指定された楽音ピッチに応じた速度で増加する読出アド
    レスを生成し、前記読出アドレスにより前記波形メモリ
    から前記複数の単位波形データを読み出す読出手段と、 時間的に減少変化する仮想アドレスを出力する仮想アド
    レス出力手段と、 前記読出アドレス前記仮想アドレスとの差に応じて、
    時間軸上の過去の位置にある周期を読み出すように、前
    記読出手段の生成する前記読出アドレスを変更する制御
    をする制御手段と、 を有することを特徴とする楽音発生装置。
  3. 【請求項3】 連続した複数周期の楽音波形が1または
    複数の周期を単位として区切られた複数の単位波形デー
    タを記憶した波形メモリと、 指定された楽音ピッチに応じた速度で増加する読出アド
    レスを生成し、前記読出アドレスにより前記波形メモリ
    から前記複数の単位波形データを読み出す読出手段と、 楽音制御に関するパラメータに応じて時間的に変化する
    仮想アドレスを出力する仮想アドレス出力手段と、 前記読出アドレス前記仮想アドレスとの差に応じて、
    前記楽音波形が時間軸伸縮されるように、前記読出手段
    の生成する前記読出アドレスを変更する制御をする制御
    手段と、 を有することを特徴とする楽音発生装置。
  4. 【請求項4】 連続した複数周期の楽音波形が1または
    複数の周期を単位として区切られた複数の単位波形デー
    タを記憶した波形メモリと、 指定された楽音ピッチに応じた速度で増加する読出アド
    レスを生成し、前記読出アドレスにより前記波形メモリ
    から前記複数の単位波形データを読み出す読出手段と、 時間的に減少変化する仮想アドレスを出力する仮想アド
    レス出力手段と、 前記読出アドレスと前記仮想アドレスとの差に応じて前
    記読出アドレスとは異なる交替読出アドレスを発生し、
    前記読出手段が現在の読出アドレスに替えて前記交替読
    出アドレスを前記読出アドレスとして前記複数の単位波
    形データを読み出すように制御することにより、時間軸
    上の過去の位置にある周期を読み出すようにする制御手
    段と、 を有することを特徴とする楽音発生装置。
  5. 【請求項5】 連続した複数周期の楽音波形が1または
    複数の周期を単位として区切られた複数の単位波形デー
    タを記憶した波形メモリと、 指定された楽音ピッチに応じた速度で増加する読出アド
    レスを生成し、前記読出アドレスにより前記波形メモリ
    から前記複数の単位波形データを読み出す読出手段と、 楽音制御に関するパラメータに応じて時間的に変化する
    仮想アドレスを出力する仮想アドレス出力手段と、 前記読出アドレスと前記仮想アドレスとの差に応じて前
    記読出アドレスとは異なる交替読出アドレスを発生し、
    前記読出手段が現在の読出アドレスに替えて前記交替読
    出アドレスを前記読出アドレスとして前記複数の単位波
    形データを読み出すように制御することにより、前記楽
    音波形が時間軸伸縮されるようにする制御手段と、 を有することを特徴とする楽音発生装置。
JP11281990A 1997-03-03 1999-10-01 楽音発生装置 Expired - Fee Related JP3095018B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11281990A JP3095018B2 (ja) 1997-03-03 1999-10-01 楽音発生装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9-61723 1997-03-03
JP6172397 1997-03-03
JP11281990A JP3095018B2 (ja) 1997-03-03 1999-10-01 楽音発生装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP10060373A Division JP3008922B2 (ja) 1997-03-03 1998-02-26 楽音発生装置および楽音発生方法

Publications (2)

Publication Number Publication Date
JP2000089765A JP2000089765A (ja) 2000-03-31
JP3095018B2 true JP3095018B2 (ja) 2000-10-03

Family

ID=26402791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11281990A Expired - Fee Related JP3095018B2 (ja) 1997-03-03 1999-10-01 楽音発生装置

Country Status (1)

Country Link
JP (1) JP3095018B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4612254B2 (ja) * 2001-09-28 2011-01-12 ローランド株式会社 波形再生装置
JP4716422B2 (ja) * 2006-01-19 2011-07-06 株式会社河合楽器製作所 共鳴音発生装置

Also Published As

Publication number Publication date
JP2000089765A (ja) 2000-03-31

Similar Documents

Publication Publication Date Title
US6316710B1 (en) Musical synthesizer capable of expressive phrasing
US6169241B1 (en) Sound source with free compression and expansion of voice independently of pitch
US6255576B1 (en) Device and method for forming waveform based on a combination of unit waveforms including loop waveform segments
JP3644263B2 (ja) 波形形成装置及び方法
KR19980070963A (ko) 악음발생장치 및 방법
US7396992B2 (en) Tone synthesis apparatus and method
KR100319481B1 (ko) 악음발생방법,파형데이터압축방법,이러한방법을실행하기위한제어명령어를포함하는기계판독가능한기록매체및사운드장치
JP3008922B2 (ja) 楽音発生装置および楽音発生方法
JP3601371B2 (ja) 波形生成方法及び装置
JP3482685B2 (ja) 電子楽器の音源装置
JP3397082B2 (ja) 楽音発生装置および方法
JP3654117B2 (ja) 時間軸方向における楽音波形信号の伸縮方法
JP3675184B2 (ja) 波形形成装置及び方法
JP4736046B2 (ja) 波形データ生産方法、波形データ生産装置、プログラムおよび波形メモリ生産方法
JP3095018B2 (ja) 楽音発生装置
JP3395560B2 (ja) 波形再生装置および波形データのクロスフェード方法
JP3744247B2 (ja) 波形圧縮方法及び波形生成方法
JP3873268B2 (ja) 波形再生装置
JP3788096B2 (ja) 波形圧縮方法及び波形生成方法
JP2970438B2 (ja) 波形メモリ型楽音発生装置
JP3016470B2 (ja) 音源装置
JP2940440B2 (ja) 電子楽器の波形データ圧縮記録方法および波形データ再生方法
JP3726765B2 (ja) 波形形成装置及び方法
JP2000214852A (ja) 波形再生装置および波形記憶媒体
JP3933162B2 (ja) 波形生成方法及び装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000704

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20070804

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080804

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090804

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100804

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100804

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110804

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120804

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130804

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees