JP3799896B2 - 波形発生方法、記録媒体および波形発生装置 - Google Patents
波形発生方法、記録媒体および波形発生装置 Download PDFInfo
- Publication number
- JP3799896B2 JP3799896B2 JP26446899A JP26446899A JP3799896B2 JP 3799896 B2 JP3799896 B2 JP 3799896B2 JP 26446899 A JP26446899 A JP 26446899A JP 26446899 A JP26446899 A JP 26446899A JP 3799896 B2 JP3799896 B2 JP 3799896B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- signal
- waveform generation
- time range
- sawtooth wave
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、楽音を発生させる種々の装置(電子楽器、パーソナルコンピュータ、ゲーム機器、カラオケ装置等)における楽音波形の合成に用いて好適な波形発生方法、記録媒体、波形発生装置およびプログラムの配布方法に関する。
【0002】
【従来の技術】
従来より、鋸歯状波を発生させてその周波数特性を制御することによって様々な楽音信号を発生させるアナログシンセサイザが知られている。近年は、性能やフレキシビリティが高く、周辺機器との親和性も高いデジタルシンセサイザが主流となっているが、アナログシンセサイザの独特の音色には根強い支持があり、アナログシンセサイザの機能を忠実にシミュレートできるデジタルシンセサイザが望まれている。
デジタルシンセサイザを用いてアナログシンセサイザの機能をシミュレートする方式としては、以下のニ方式が代表的なものとして知られている。
【0003】
(1)フィードバックFM方式(特開平9−185380号公報等)。
フィードバックFM方式においては、まず原波形(例えば正弦波)が生成され、この原波形がフィードバックループに入力される。そして、このフィードバックループにおける種々の係数を制御することにより、鋸歯状波を含めて様々な波形を生成することができる。しかし、これら係数の設定状況によっては、フィードバックループの動作が不安定になり、あるいは波形の位相がずれる等の不具合が発生する。
【0004】
(2)帯域制限方式(特開平10−198378号公報等)。
帯域制限方式においては、まず理想的な鋸歯状波(一定の傾きで徐々に立ち上り、急峻に立下がる波形)が生成される。次に、この鋸歯状波のエッジ部分(立下がり部分およびその周辺)においてエッジを鈍らせることによって、該鋸歯状波の帯域が制限される。具体的には、このエッジ部分における波形が鈍るような入出力特性(窓関数という)をルックアップテーブルに予め記憶させ、上記鋸歯状波のエッジ部分の波形値としてこのルックアップテーブルを通した値を用いるとよい。
【0005】
帯域制限方式は楽音信号に対するフィードバックループを持たないため、フィードバックFM方式と比較してきわめて安定性が高い。しかし、様々な音色の波形を得ようとすると、音色の種類に応じてその都度ルックアップテーブルを用意する必要があり、事実上の波形のバリエーションが少なくなる。
【0006】
なお、上記特開平特開平10−198378号には、アナログシンセサイザの楽音合成方法として知られる「OSC(オシレータ)シンク方式」をディジタルシンセサイザに適用させた例、および、このOSCシンク方式に上記帯域制限方式を適用させた例が開示されている。
このOSCシンク方式においては、マスター周波数fmおよびスレーブ周波数fsの2系統の基本波形(典型的には鋸歯状波)が生成される。そして、スレーブ周波数fsの基本波形のレベルは、マスター周波数fmの基本波形の周期1/fm毎に強制的に「0」にリセットされる。この結果得られる波形は、ピッチ周波数がマスター周波数fm、スペクトル特性構造がスレーブ周波数fsを有する波形となる。
【0007】
【発明が解決しようとする課題】
以上述べたように、帯域制限方式はフィードバックFM方式と比較して安定性に優れるものの、事実上の波形のバリエーションは少なくなる。この発明は上述した事情に鑑みてなされたものであり、安定度が高く、かつ、多彩なバリエーションの波形を得ることができる波形発生方法、記録媒体および波形発生装置を提供することを目的としている。
【0008】
【課題を解決するための手段】
上記課題を解決するため請求項1記載の構成にあっては、デジタル処理により所定の制御波形を発生する制御波形発生過程と、前記制御波形における立上りまたは立下がり点を含む時間範囲において前記制御波形を修正することによって帯域制限し、修正された制御波形を楽音信号として出力する楽音信号発生過程と、倍音成分を制御する楽音パラメータに対応して、前記時間範囲を設定する時間範囲設定過程とを有することを特徴とする。
さらに、請求項2記載の構成にあっては、請求項1記載の波形発生方法において、前記制御波形の周波数が高くなるほど前記制御波形の一周期内において前記時間範囲が占める割合が広くなるように、前記時間範囲を調節する周波数特性付与過程を有することを特徴とする。
さらに、請求項3記載の構成にあっては、請求項2記載の波形発生方法において、前記制御波形は鋸歯状波であり、前記時間範囲設定過程は該鋸歯状波の立上りまたは立下がり部分のうち急峻な側に対して前記時間範囲を設定することを特徴とする。
さらに、請求項4記載の構成にあっては、請求項2記載の波形発生方法において、前記制御波形は台形波であり、前記時間範囲設定過程は該台形波の立上りおよび立下がり部分に対して前記時間範囲を設定することを特徴とする。
また、請求項5記載の構成にあっては、請求項1ないし4の何れかに記載の波形発生方法を実行するプログラムを記録したことを特徴とする。
また、請求項6記載の構成にあっては、請求項1ないし4の何れかに記載の波形発生方法を実行することを特徴とする。
【0009】
【発明の実施の形態】
1.実施形態の構成
次に、本発明の一実施形態の構成を図1を参照し説明する。なお、本実施形態は汎用パーソナルコンピュータ20によって楽音信号生成装置を実現したものである。パーソナルコンピュータ20の内部において9はCPUであり、後述する制御プログラムによりパーソナルコンピュータ20内の各部を制御する。
【0010】
1はネットワークインターフェースであり、ネットワーク25との間で各種の情報をやりとりする。2はMIDIインターフェースであり、鍵盤あるいは音源等のMIDI機器に接続され、MIDIデータのやりとりを行う。3は表示器であり、ユーザに対して各種の情報を表示する。4は入力装置であり、キーボードおよびマウス等から構成され、ユーザの操作に基づいてCPU9に対して各種の操作情報を供給する。
【0011】
10はROMであり、パーソナルコンピュータ20を起動させるためのイニシャルプログラムローダ等が記憶されている。11はRAMであり、CPU9によって読出しおよび書込み可能になっている。5は波形インターフェースであり、マイク等を介してアナログの楽音信号を収集しこれをPCM情報に変換してRAM11に記憶させるとともに、RAM11上のPCM情報をアナログ信号に変換し、図示せぬサウンドシステムを介して発音させる。
【0012】
6はハードディスクであり、RAM11に展開されるオペレーティングシステム、ドライバ、アプリケーションプログラム、音源プログラム等が記憶される。7はディスクドライブであり、CD−ROM、フロッピーディスク等のリムーバルディスク12に対してデータの読み書きを行う。8はタイマであり、所定時間毎にCPU9に対してタイマ割込みを発生させる。30はサーバーであり、ネットワーク25に対して各種データの送受信を行うデータ送受信部31と、ユーザに提供されるソフトウエアを格納するデータ記憶装置32とから構成されている。
【0013】
2.実施形態の動作
2.1.動作の概要
本実施形態において、パーソナルコンピュータ20上でハードウエアの音源装置の動作をシミュレートするソフトウエアが動作する。このソフトウエアを「音源モジュール」と称する。なお、音源モジュールは、リムーバルディスク12あるいはネットワーク25を介してパーソナルコンピュータ20にインストゥールされる。
【0014】
音源モジュールは、電子楽器ソフトやゲームソフト等のアプリケーションプログラムによって生成されたMIDIデータ、あるいはMIDIインターフェース2を介して受信したMIDIデータに基づいて楽音信号のPCM情報を生成し、これをRAM11上に展開する。展開された波形データは、波形インターフェース5のデバイスドライバによって波形インターフェース5に転送される。
【0015】
上記MIDIデータにおいては、パートナンバ、ノートナンバ、ベロシティ等が含まれており、音源モジュールにおいては、これらのパラメータに基づいて、ピッチ周波数等の楽音生成用パラメータが生成される。そして、音源モジュールにおいては波形生成ルーチンが起動され、該楽音生成用パラメータに基づいて実際の楽音波形が生成される。本実施形態においては、波形生成ルーチンは複数のものの中から上記パートナンバに対応するものが選択される。そこで、以下、波形生成ルーチンの種類に応じて、これらの動作を詳述する。
【0016】
なお、上記楽音生成用パラメータは使用される波形生成ルーチンに応じて異なるため、波形生成ルーチンの動作とともに説明する。また、波形生成ルーチンのプログラムの内容は、機能ブロック図を用いて説明する。すなわち、機能ブロック図の説明においては、例えば「加算器」、「乗算器」のようなハードウエア的な表現を用いるが、これは実際に専用のハードウエアが設けられているという意味ではなく、ソフトウエアによって等価なステップが実行されるという意味である。
【0017】
また、各機能ブロック図に用いられる各演算器等は各々所定の有効桁を有し、これによって演算結果として出力できる最大値が決定される。ここで、演算結果がオーバーフローした時の動作によって「モジュロ型(図中でmoと表記)」および「オーバーフロー検出型(図中でovと表記)」に分類される。「モジュロ型」においては、演算結果が有効桁をオーバーフローした時に、有効桁内の数値、すなわち本来的な演算結果を最大値で除算した値が演算結果として出力される。一方、「オーバーフロー検出型」においては、演算結果が有効桁をオーバーフローした時に、上記最大値が演算結果として出力される。
【0018】
2.2.第1の波形生成ルーチン
第1の波形生成ルーチンの機能ブロック図を図2に示す。
図において41はモジュロ型の加算器、42は記憶素子であり、両者によって鋸歯状波発生回路43が構成されている。鋸歯状波発生回路43に、ピッチ周波数に対応するパラメータである周波数ナンバfn(但し、−1≦fn≦+1)が供給されると、該周波数ナンバfnに応じた周期の鋸歯状波S4(図3(d)参照)が出力される。なお、鋸歯状波S4等の信号に対して、最大値を「+1」、最小値を「−1」と表現する。
【0019】
44は絶対値テーブルであり、周波数ナンバfnの絶対値|fn|を出力する。45は逆数テーブルであり、「R/|fn|」(但し、Rは定数)となる信号S1を出力する。但し、逆数テーブル45はオーバーフロー検出型であり、信号S1は、「R/|fn|」の算出結果が「+1」を超える場合は、「+1」に固定される。ここで、絶対値|fn|に対する信号S1の値を図3(a)に示す。図示のように、絶対値|fn|が定数R以下である場合に信号S1は常に「+1」になる。従って、定数Rは、「信号S1として逆数が得られる最低周波数」に等しくなる。
【0020】
次に、46は減算器であり、信号S1から定数Lを減算する。47は半波整流器であり、減算器46の減算結果が「0」未満である場合はこれを「0」に変更し、その結果を信号S2(図3(b)参照)として出力する。ここで、信号S2が「0」になる絶対値|fn|の範囲で絶対値|fn|の最小値を「可制御最大周波数fh」という。従って、上記定数Lは、可制御最大周波数fhを決定するためのパラメータになる。
【0021】
次に、48は変換テーブルであり、定数Emが入力されると、これに基づいてパラメータeを出力する。パラメータeは、例えば、「e=2r(E-1)」のような変換式で求めるとよい。ここでrは定数であり、パラメータeが「0≦e≦1」の範囲に収まるように設定される。パラメータeは楽音波形の倍音成分を制御するパラメータであり、「0」の場合は最も倍音成分が少なく、「1」の場合は最も倍音成分が多くなる。なお、その理由については後述する。
【0022】
次に、49は乗算器であり、パラメータeと信号S2を乗算する。50は減算器であり、この乗算結果から信号S2を減算する。51はオーバーフロー検出型の加算器であり、信号S1と減算器50の出力信号とを加算し、その結果を信号S3として出力する。従って、信号S3は、「S3=S1+eS2−S2」なる式によって表現される。ここで、絶対値|fn|が可制御最大周波数fh以上である場合は、信号S2は「0」であるから、「S3=S1」が成立する。一方、絶対値|fn|が可制御最大周波数fh未満である場合は、「S2=S1−L」であるから、「S3=eS2+L=e(S1−L)+L=eS1+(1−e)L」が成立する。
【0023】
換言すれば、絶対値|fn|が可制御最大周波数fh未満である場合は、パラメータeが「0」の時は信号S3は定数Lに一致し、パラメータeが「1」である場合は信号S3は信号S1に一致する。そして、パラメータeが「0<e<1」の範囲においては、図3(c)に示すように、パラメータeの値に応じて信号S3が決定される。52はモジュロ型の加算器であり、ここで鋸歯状波S4に「−1」が加算され、その結果が鋸歯状波S5として出力される。従って、図3(e)に示すように、鋸歯状波S5は鋸歯状波S4と同一の波形で位相が180°異なる信号になる。
【0024】
53は乗算器であり、鋸歯状波S5と信号S3とを乗算する。図3(c)に示したように、信号S3の採りうる範囲は「R≦S3≦1」であるから、この乗算結果は鋸歯状波S5と等しいか、あるいは鋸歯状波S5を減衰させた信号になる。次に、54はオーバーフロー検出型の乗算器であり、乗算器53の出力信号に対して定数Mを乗算する。
【0025】
ここで、定数Mは「1/S3」に対して充分大きくなるように設定されており、乗算器54の出力信号は、鋸歯状波S5を増幅した信号になる。但し、乗算結果が「+1」を超えあるいは「−1」未満になる場合は乗算器54の出力信号は「+1」あるいは「−1」にされるから、乗算器54の出力信号は台形波になる。
【0026】
次に、55は絶対値テーブルであり、この台形波の絶対値を窓信号S6(図3(f)参照)として出力する。窓信号S6は、一周期における波形が左右対称になっており、この立上りおよび立下がり部分が、鋸歯状波S4の帯域制限を行うための「窓」として用いられる。この窓幅は、信号S3が低くなるほど(従ってパラメータeの値が低くなるほど)広くなる。また、窓幅は、定数Mが大きくなるほど狭くなる。
【0027】
次に、56は窓関数テーブルであり、窓信号S6(但し0≦S6≦1)が入力されると、窓関数値S7(但し0≦S7≦1)を出力する。この窓関数値S7は、窓信号S6のレベルが低い場合は窓信号S6に対して単調増加し、ある窓信号S6においてピーク値「1」に達し、そのピーク値以上においては窓信号S6に対して緩やかに単調減少する値になる。従って、窓関数値S7の波形は、図3(g)に示すように、窓信号S6のエッジ部分を丸め、定常部分のレベルをやや下げたような波形になる。次に、57は乗算器であり、鋸歯状波S4と窓関数値S7とを乗算し、その結果を楽音信号S8として出力する。
【0028】
楽音信号S8の波形の例を図3(h)に示す。同図に示すように本波形生成ルーチンによれば、窓関数テーブル56としては同一のものを用いながらパラメータeによって窓関数の幅を変化させることにより、楽音信号S8の高調波成分を様々に変化させることができる。しかも、楽音信号S8に対してフィードバックを施す必要が無いから、きわめて安定した波形を得ることができる。
【0029】
2.3.第2の波形生成ルーチン
次に、第2の波形生成ルーチンの要部の機能ブロック図を図4に示す。なお、第2の波形生成ルーチンは、第1の波形生成ルーチンに対して逆数テーブル45から乗算器53に至るまでの部分を改変したものであるため、それ以外の部分については図示を省略している。
【0030】
図において60は最小値出力回路であり、信号S1およびパラメータeのうち小さい方の値を信号S31として出力する。この信号S31は、図2における信号S3に代えて乗算器53に供給される。上記以外の構成は図2と同様である。なお、パラメータeの最小値は定数L以上になるように設定しておくと好適である。
【0031】
本波形生成ルーチンによれば、周波数ナンバの絶対値|fn|に対して信号S31のレベルは図5のように設定される。図5の信号S31と図3(c)の信号S3とを比較すると、信号S31は中音域(R≦|fn|≦fhの範囲)において信号S3よりも高いレベルを有している。すなわち、信号S31は、信号S3と比較して、中音域における窓関数の幅が比較的広くなり、中音域における倍音成分がより抑制されることになる。
【0032】
2.4.第3の波形生成ルーチン
次に、第3の波形生成ルーチンの要部の機能ブロック図を図6に示す。この第3の波形生成ルーチンも、第1の波形生成ルーチンに対して逆数テーブル45から乗算器53に至るまでの部分を改変したものであるため、それ以外の部分については図示を省略している。
【0033】
図において61は最小値出力回路であり、信号S1および可制御最大周波数fhを決定するための定数Lのうち小さい方を信号S32として出力する(図7(a)参照)。62は乗算器であり、信号S1にパラメータeを乗算して出力する。63は最大値出力回路であり、上記信号S32および乗算器62の出力信号のうち大きい方を信号S33として出力する。そして、この信号S33は、図2における信号S3に代えて乗算器53に供給される。
【0034】
本波形生成ルーチンによれば、周波数ナンバの絶対値|fn|に対して信号S33のレベルは図7(b)のように設定される。図7(b)の信号S33と図3(c)の信号S3とを比較すると、信号S33は中音域(R≦|fn|≦fhの範囲)において信号S3よりも低いレベルを有している。すなわち、信号S33は、信号S3と比較して、中音域における窓関数の幅が比較的狭くなり、中音域における倍音成分がより多くなる。
【0035】
2.5.第4の波形生成ルーチン
次に、第4の波形生成ルーチンの要部の機能ブロック図を図8に示す。この第4の波形生成ルーチンには、上述した周波数ナンバfnに代えて、これを対数表現したログ周波数ナンバlnが供給される。
【0036】
図において70は指数テーブルであり、上記ログ周波数ナンバlnを周波数ナンバfnに変換する。なお、指数テーブル70の出力値は正数に限られるため、第1の波形生成ルーチンの絶対値テーブル44は設けられていない。鋸歯状波発生回路73は鋸歯状波発生回路43と同様に、加算器71と記憶素子72とから構成され、鋸歯状波S4を出力する。鋸歯状波S4は、第1の波形生成ルーチン(図2)と同様に加算器52および乗算器57に供給され、加算器52からは鋸歯状波S5が出力される。
【0037】
74は減算器であり、上述した可制御最大周波数fhを対数表現したログ可制御最大周波数lhからログ周波数ナンバlnを減算する。75はオーバーフロー検出型の加算器であり、減算器74の出力信号にパラメータWを加算し、その結果を信号S11として出力する。なお、このパラメータWは、ログ可制御最大周波数lhにおける窓幅を決定するためのパラメータである。
【0038】
76,77は乗算器であり、ログ周波数ナンバlnおよびログ可制御最大周波数lhに対して各々パラメータEgを乗算して出力する。なお、パラメータEgは、楽音波形の倍音成分を制御するためのパラメータであり、「−1≦Eg≦+1」の範囲で設定される。78は減算器であり、「Eg・lh−Eg・ln」を出力する。79はオーバーフロー検出型の加算器であり、この減算結果に上記パラメータWを加算し、その結果を信号S12として出力する。
【0039】
ここで、ログ周波数ナンバlnに対応する信号S11,S12の例を図9(a)に示す。次に、80は最小値出力回路であり、信号S11,S12のうち小さい方を信号S13として出力する。従って、図9(a)から明らかなように、ログ周波数ナンバlnがログ可制御最大周波数lh未満である場合は信号S12が出力され、それ以外の場合は信号S11が出力される。ここで、種々のパラメータEg対応する信号S13の値を図9(b)に示しておく。
【0040】
次に、81は指数テーブルであり、信号S31の指数関数である信号S14を出力する。そして、信号S14は、図2における信号S3に代えて乗算器53に供給される。乗算器53以降の構成は図2と同様であるが、信号S14は指数演算の結果として得られたものであり、必ず正値になるから、図2における絶対値テーブル55は省略されている。
【0041】
本波形生成ルーチンによれば、第1〜第3の波形生成ルーチンと同様に、信号S14に基づいて窓幅が決定される。但し、本波形生成ルーチンによれば、パラメータEgに対して窓幅は指数関数的に変化するため、パラメータEgのリニアな動きに対してより自然な変化を得ることができる。具体的には、パラメータWの指数変換結果をWSとすると、窓幅のサンプル数は「2/(fh・WS・M)」によって求められる。さらに、ログ周波数ナンバlnに対しても窓幅は指数関数的に変化するから、自然なキースケールを実現することができる。
【0042】
2.6.第5の波形生成ルーチン
次に、第5の波形生成ルーチンの要部の機能ブロック図を図10に示す。この第5の波形生成ルーチンには、上述した周波数ナンバfnに代えて、外部位相入力Pxすなわち鋸歯状波S4そのものが入力される。これは、例えば波形インターフェース5を介して入力された鋸歯状波と同一のピッチを有する楽音波形を生成すべき場合等に特に有効である。
【0043】
図において91は記憶素子、92はモジュロ型の加算器であり、これらによって微分回路93が構成されている。微分回路93は、外部位相入力Pxの傾きを周波数ナンバfxとして出力する。周波数ナンバfxおよび鋸歯状波S4の双方が得られた後の動作は第1の波形生成ルーチンと同様である。
【0044】
2.7.第6の波形生成ルーチン
次に、第6の波形生成ルーチンの機能ブロック図を図11に示す。第6の波形生成ルーチンはOSCシンク方式であり、そのマスター側として外部位相入力Pxが用いられ、スレーブ側として周波数ナンバfnが用いられている。そして、マスター側には、上記第5の波形生成ルーチンと同様に、記憶素子91および加算器92から成る微分回路93が設けられ、ここに外部位相入力Pxが供給されると、マスター側の周波数ナンバfxが出力される。
【0045】
94はオーバーフロー検出器であり、加算器92におけるオーバーフローを検出すると、リセット命令を発生する。なお、リセット命令の用途については後述する。微分回路93から出力された周波数ナンバfxは、絶対値テーブル44を介して逆数テーブル45に供給され、第1の波形生成ルーチンと同様に信号S1(=R/|fn|)が出力される。
【0046】
次に、95は窓幅制御部であり、図10において一点鎖線Aで囲った部分、すなわち構成要素46〜51の部分と同様に構成され、信号S3(図3(c)参照)を出力する。そして、乗算器54、絶対値テーブル55および窓関数テーブル56から成る回路は第1の波形生成ルーチンと同様に構成され、窓関数テーブル56からマスター側の窓関数値S7が出力される。
【0047】
次に、96は乗算器であり、鋸歯状波S5と「R/|fx|」との乗算結果を出力する。97は乗算器であり、この乗算結果にさらに定数Qを乗算する。98は絶対値テーブルであり、乗算器97の出力信号の絶対値「|QRS5/fx|」を出力する。この値は、オーバーフロー検出器94からリセット命令が出力される際にスレーブ側の回路で使用される値であるため、このリセット命令が出力される際の動作について、図13を参照してさらに詳細に説明しておく。
【0048】
図13(a)は本実施形態におけるサンプリングクロックCLKを示しており、その立上り時刻t0, t1, t2, ……に同期して波形生成ルーチンの各回路が動作する。同図(b)および(c)は、時間軸上で拡大した鋸歯状波S4,S5の波形を示す。これらの図において破線の特性はサンプリング周波数が無限大であると仮定した時の理想的な波形であり、階段波状の実線の特性は、実際にサンプリングクロックCLKに同期して得られる波形である。
【0049】
同図(b)において鋸歯状波S4の理想波形は時刻t01において立下がるから、本来リセット命令を出力すべきタイミングもこれと同時刻になる筈である。しかし、実際にオーバーフローが発生してリセット命令が出力されるタイミングは、次のサンプリングクロックCLKの立上り時刻t2になる。このずれにより、楽音信号のピッチが定まらないような不具合が発生する。そこで、本波形生成ルーチンにおいては、両者のタイミングの差を「位相補正値Tf」として求め、スレーブ側に供給することによりピッチ精度を高めることとした。
【0050】
同図(b)によれば、鋸歯状波S4の傾きは「2/Tx=2fx」であり、鋸歯状波S5の傾きもこれに等しい。そして、同図(c)によれば、リセット命令が発生する時刻t2においては、「Tf=S5/(2fx)」が成立する。また、上述したように絶対値テーブル98からは「|QRS5/fx|」なる値が出力される。従って、定数Q,Rに対して「QR=1/2」の関係を付与しておくことにより、絶対値テーブル98の出力値は上記位相補正値Tfに等しくなる。
【0051】
次に、第6の波形生成ルーチンのスレーブ側の構成を説明する。図において周波数ナンバfnは、マスター側の周波数ナンバfxの数倍程度に設定される。105はスイッチであり、常時は“0”側に接続され、オーバーフロー検出器94からリセット命令が発生したサンプリング期間のみ“1”側に接続される。103は加算器、104は記憶素子であり、スイッチ105が“0”側に接続されている限り、第1の波形生成ルーチンにおける加算器41および記憶素子42と同様に鋸歯状波発生回路を構成する。すなわち、スイッチ105が“0”側に接続されている限り、スイッチ105からは、マスター側の鋸歯状波S4の数倍程度の周波数を有する鋸歯状波S15が出力されることになる。
【0052】
次に、第6の波形生成ルーチンのスレーブ側の構成を説明する。図において周波数ナンバfnは、マスター側の周波数ナンバfxの数倍程度に設定される。105はスイッチであり、常時は“0”側に接続され、オーバーフロー検出器94からリセット命令が発生したサンプリング期間のみ“1”側に接続される。103はモジュロ型の加算器、104は記憶素子であり、スイッチ105が“0”側に接続されている限り、第1の波形生成ルーチンにおける加算器41および記憶素子42と同様に鋸歯状波発生回路を構成する。すなわち、スイッチ105が“0”側に接続されている限り、記憶素子104からは、マスター側の鋸歯状波S4の数倍程度の周波数を有する鋸歯状波S15が出力されることになる。
【0053】
101は乗算器であり、スレーブ側の周波数ナンバfnと上記位相補正値Tfとを乗算する。従って、乗算器101からは、位相補正値Tfに応じた、鋸歯状波S15の初期レベルの補正値が出力される。次に、102はモジュロ型の加算器であり、乗算器101の乗算結果と、初期位相パラメータPiとを加算する。従って、オーバーフロー検出器94からリセット命令が出力されると、記憶素子104には「Pi+fn・Tf」がセットされ、この値を初期値として鋸歯状波S15の発生が続行されることになる。従って、鋸歯状波S15は、図12(c)に示すように、鋸歯状波S4の立下がりに同期して上記初期値にリセットされる鋸歯状波になる。
【0054】
次に、絶対値テーブル107、逆数テーブル108、窓幅制御部109,加算器110、乗算器111、乗算器112、絶対値テーブル113および窓関数テーブル114は、各々マスター側における構成要素44,45,95,52,53,54,55,56と同様に構成され、鋸歯状波S15の立下がりに同期して立下がる窓関数値S16(図12(d)参照)を出力する。115,116は乗算器であり、鋸歯状波S15に対して窓関数値S16およびS7を順次乗算し、楽音信号S17(図12(e)参照)として出力する。
【0055】
なお、マスター側の窓関数値S7(リセット窓)およびスレーブ側の窓関数値S16(波形窓)の窓幅は乗算器54,112に供給される定数Mm, Msによって決定される。図12(b)〜(e)においては、両窓幅を共に小とした場合および共に大とした場合の各部の波形を示す。また、一方の窓幅を大とし、他方の窓幅を小とした場合の各部の波形を同図(f)〜(i)に示す。
【0056】
2.8.第7の波形生成ルーチン
次に、第7の波形生成ルーチンの機能ブロック図を図14に示す。第7の波形生成ルーチンはOSCシンク方式であり、そのマスター側として外部位相入力Pxが用いられ、スレーブ側として周波数ナンバfnが用いられている。そして、マスター側は上記第6の波形生成ルーチンと同様に構成されている。
【0057】
すなわち、窓関数テーブル56は窓関数値S7(リセット窓)を出力し、加算器92のオーバーフローが検出される毎にオーバーフロー検出器94はリセット命令を出力し、絶対値テーブル98は位相補正値Tfを出力する。なお、窓関数テーブル56の内容としては、入力信号x(=S6)および出力信号y(=S7)に対して例えば「y=(1−cos(πx))/2」のような関数が好適であるが、他の関数を用いてもよいことは言うまでもない。
【0058】
一方、スレーブ側にはフィードバックFM方式が採用されている。スレーブ側において123はモジュロ型の加算器、124は記憶素子であり、スイッチ125が“0”側に接続されている限り、周波数ナンバfnに応じた周期の鋸歯状波S15を出力する。また、オーバーフロー検出器94からリセット命令が出力されると、スイッチ125は“1”側に接続され、位相補正値Tfと周波数ナンバfnとの乗算結果が記憶素子124に記憶され、その値を初期値として鋸歯状波S15の出力が続行される。
【0059】
125はモジュロ型の加算器であり、フィードバック信号S18と上記鋸歯状波S15とを加算し、その結果をサインテーブル127に供給する。サインテーブル127は、入力信号x(=S15+S18)に対して「y=−sin(πx)」となる出力信号y(=S19)を出力する。
【0060】
128はローパスフィルタであり、信号S19をフィルタリングして出力する。ローパスフィルタ128のカットオフ周波数はここに供給されるパラメータaによって決定される。なお、パラメータaは、発振が発生しない程度の値に設定される。122は乗算器であり、このフィルタリング結果に対して帰還量パラメータfbを乗算し、その結果を上記フィードバック信号S18として出力する。
【0061】
ここで、帰還量パラメータfbが「0」またはそれに近い値であれば、信号S19は正弦波状の信号になる。一方、帰還量パラメータfbが大きくなるほど信号S19は鋸歯状波に近い信号になる(図15(d)参照)。129は乗算器であり、信号S19と窓関数値S7とを乗算し、その結果を楽音信号S20(図15(e)参照)として出力する。
【0062】
なお、本波形生成ルーチンにおいてはスレーブ側でフィードバックFM方式が採用されたため、パラメータaの設定の仕方等に応じて発振等が発生する可能性がある。しかし、少なくともリセット時においては様々な窓関数値S7を発生することができるから、これによって多彩な波形制御を安定して実行することができる。
【0063】
2.9.第8の波形生成ルーチン
次に、第8の波形生成ルーチンの機能ブロック図を図16に示す。先の第1〜第7の波形生成ルーチンは、鋸歯状波を発生し、その帯域を制限するために窓関数値を用いたが、この第8の波形生成ルーチンは、窓関数値自体を楽音信号として用いようとするものである。
【0064】
図において鋸歯状波発生回路43は、第1の波形生成ルーチン(図2参照)と同様に鋸歯状波S4を出力する。131は絶対値テーブルであり、鋸歯状波S4の絶対値を出力する。132はオーバーフロー検出型の加算器であり、上記絶対値から「0.5」を減算し、その結果を三角波S21(図17(b)参照)として出力する。
【0065】
次に、構成要素44〜51の区間は第1の波形生成ルーチンと同様に構成され、加算器51から信号S3(図3(c)参照)が出力される。乗算器53においては三角波S21と信号S3とが乗算される。さらに、乗算器54においては、その乗算結果に対して定数Mが乗算される。この定数Mは、充分大きな値に設定されているため、乗算器54の出力信号S22は、図17(c)に示すような台形波になる。
【0066】
133は窓関数テーブルであり、台形波S22の全レベル(−1〜+1)に渡る窓関数が記憶されている。そして、窓関数テーブル133に台形波S22が入力されると、窓幅すなわち台形波の傾斜部分の幅に応じて帯域制限された楽音信号S23が出力される。その例を図17(d)に示す。
【0067】
本波形生成ルーチンにおいては、台形波の立上りと立下がりの双方において窓関数が施されるため、窓関数を完全に読むことができる周波数をfhとすると、「fh=1/N」となる。ここでNは窓幅(サンプル数)であり、「N=2/(R・M)」によって求められる。
【0068】
3.変形例
本発明は上述した実施形態に限定されるものではなく、例えば以下のように種々の変形が可能である。
【0069】
(1)第6の波形生成ルーチンにおいては、マスター側の窓関数値S7(リセット窓)およびスレーブ側の窓関数値S16(波形窓)を発生するために個別の窓関数テーブル56および窓関数テーブル114を用いた。しかし、絶対値テーブル55,113の出力値のうち何れか小さい方を選択し、共通の窓関数テーブルをアクセスするように構成してもよい。その場合、乗算器115,116において実行された2回の乗算を1回で済ませることもできる。
【0070】
(2)上記第1〜第7の波形生成ルーチンにおいては、徐々に立上り急峻に立下がる鋸歯状波を制御波形として用いたが、これに代えて急峻に立上り徐々に立下がる鋸歯状波を制御波形として用いてもよい。この場合、窓関数は鋸歯状波の立上り部分およびその近傍に対して施されることは言うまでもない。
【0071】
(3)上記実施形態においては波形生成をソフトウエア(波形生成ルーチン)によって実現したが、パーソナルコンピュータ20あるいは電子楽器に装着されるハードウエアによって同等の機能を実現してもよい。
【0072】
【発明の効果】
以上述べたように本発明によれば、制御波形を修正する時間範囲を楽音パラメータに対応して設定できるから、安定度が高く、かつ、多彩なバリエーションの波形を得ることができる。
【図面の簡単な説明】
【図1】 本発明の一実施形態のハードウエアのブロック図である。
【図2】 上記実施形態における第1の波形生成ルーチンの機能ブロック図である。
【図3】 第1の波形生成ルーチンにおける各部の波形図である。
【図4】 上記実施形態における第2の波形生成ルーチンの機能ブロック図である。
【図5】 第2の波形生成ルーチンにおける楽音パラメータの特性を示す図である。
【図6】 上記実施形態における第3の波形生成ルーチンの機能ブロック図である。
【図7】 第3の波形生成ルーチンにおける楽音パラメータの特性を示す図である。
【図8】 上記実施形態における第4の波形生成ルーチンの機能ブロック図である。
【図9】 第4の波形生成ルーチンにおける楽音パラメータの特性を示す図である。
【図10】 上記実施形態における第5の波形生成ルーチンの機能ブロック図である。
【図11】 上記実施形態における第6の波形生成ルーチンの機能ブロック図である。
【図12】 第6の波形生成ルーチンにおける各部の波形図である。
【図13】 第6の波形生成ルーチンにおける要部の波形図である。
【図14】 上記実施形態における第7の波形生成ルーチンの機能ブロック図である。
【図15】 第7の波形生成ルーチンにおける各部の波形図である。
【図16】 上記実施形態における第8の波形生成ルーチンの機能ブロック図である。
【図17】 第8の波形生成ルーチンにおける各部の波形図である。
【符号の説明】
1……ネットワークインターフェース、2……MIDIインターフェース、3……表示器、4……入力装置、5……波形インターフェース、6……ハードディスク、7……ディスクドライブ、8……タイマ、9……CPU、10……ROM、11……RAM、12……リムーバルディスク、20……パーソナルコンピュータ、25……ネットワーク、30……サーバー、31……データ送受信部、32……データ記憶装置、41……加算器、42……記憶素子、43……鋸歯状波発生回路(制御波形発生過程)、44……絶対値テーブル、45……逆数テーブル(時間範囲設定過程,周波数特性付与過程)、46……減算器、47……半波整流器、49……乗算器、50……減算器、51,52……加算器、53,54……乗算器、55……絶対値テーブル、56……窓関数テーブル、57……乗算器(楽音信号発生過程)、61……最小値出力回路、62……乗算器、63……最大値出力回路、70……指数テーブル、71……加算器、72……記憶素子、73……鋸歯状波発生回路、74……減算器、75……加算器、76,77……乗算器、78……減算器、80……最小値出力回路、81……指数テーブル、91……記憶素子、92……加算器、93……微分回路、94……オーバーフロー検出器、95……窓幅制御部、96,97……乗算器、98……絶対値テーブル、101……乗算器、102,103……加算器、104……記憶素子、105……スイッチ、107……絶対値テーブル、108……逆数テーブル、109……窓幅制御部、110……加算器、111,112……乗算器、113……絶対値テーブル、114……窓関数テーブル、115,116……乗算器、123……加算器、124……記憶素子、125……スイッチ、127……サインテーブル、128……ローパスフィルタ、131……絶対値テーブル、132……加算器、133……窓関数テーブル。
Claims (6)
- デジタル処理により所定の制御波形を発生する制御波形発生過程と、
前記制御波形における立上りまたは立下がり点を含む時間範囲において前記制御波形を修正することによって帯域制限し、修正された制御波形を楽音信号として出力する楽音信号発生過程と、
倍音成分を制御する楽音パラメータに対応して、前記時間範囲を設定する時間範囲設定過程とを有することを特徴とする波形発生方法。 - 前記制御波形の周波数が高くなるほど前記制御波形の一周期内において前記時間範囲が占める割合が広くなるように、前記時間範囲を調節する周波数特性付与過程を有することを特徴とする請求項1記載の波形発生方法。
- 前記制御波形は鋸歯状波であり、前記時間範囲設定過程は該鋸歯状波の立上りまたは立下がり部分のうち急峻な側に対して前記時間範囲を設定することを特徴とする請求項2記載の波形発生方法。
- 前記制御波形は台形波であり、前記時間範囲設定過程は該台形波の立上りおよび立下がり部分に対して前記時間範囲を設定することを特徴とする請求項2記載の波形発生方法。
- 請求項1ないし4の何れかに記載の波形発生方法を実行するプログラムを記録したことを特徴とする記録媒体。
- 請求項1ないし4の何れかに記載の波形発生方法を実行することを特徴とする波形発生装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26446899A JP3799896B2 (ja) | 1999-09-17 | 1999-09-17 | 波形発生方法、記録媒体および波形発生装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26446899A JP3799896B2 (ja) | 1999-09-17 | 1999-09-17 | 波形発生方法、記録媒体および波形発生装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001092461A JP2001092461A (ja) | 2001-04-06 |
JP3799896B2 true JP3799896B2 (ja) | 2006-07-19 |
Family
ID=17403649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26446899A Expired - Fee Related JP3799896B2 (ja) | 1999-09-17 | 1999-09-17 | 波形発生方法、記録媒体および波形発生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3799896B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021039276A (ja) | 2019-09-04 | 2021-03-11 | ローランド株式会社 | 楽音発生方法、及び楽音発生装置 |
-
1999
- 1999-09-17 JP JP26446899A patent/JP3799896B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001092461A (ja) | 2001-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0375877B2 (ja) | ||
US6721711B1 (en) | Audio waveform reproduction apparatus | |
JP2580774B2 (ja) | 楽音合成装置 | |
EP0393702A2 (en) | Musical sound synthesizer | |
AU723969B2 (en) | Digital signal processing system and method for generating musical legato using multitap delay line with crossfader | |
JP3799896B2 (ja) | 波形発生方法、記録媒体および波形発生装置 | |
US5578780A (en) | Sound synthesis system having pitch adjusting function by correcting loop delay | |
JP6543895B2 (ja) | 効果付加装置、方法、およびプログラム、電子楽器 | |
JPH0363079B2 (ja) | ||
JP2503744B2 (ja) | 楽音合成装置 | |
JP3715069B2 (ja) | 楽音信号合成方法および装置ならびに記録媒体 | |
US10303423B1 (en) | Synchronous sampling of analog signals | |
JP3777923B2 (ja) | 楽音信号合成装置 | |
JPH04116598A (ja) | 楽音信号生成装置 | |
JP2643717B2 (ja) | 楽音合成装置 | |
JP3430719B2 (ja) | 楽音合成装置のパラメータ設定装置及び方法 | |
JP3783552B2 (ja) | 楽音信号合成方法、楽音信号合成装置および記録媒体 | |
JP2002006853A (ja) | 共鳴装置 | |
JP3082653B2 (ja) | 波形発生装置 | |
JP3399340B2 (ja) | 楽音合成装置および楽音合成プログラムが記録された記録媒体 | |
JP6428326B2 (ja) | プログラム及び波形生成装置 | |
JP2007034099A (ja) | 楽音合成装置 | |
JP3489713B2 (ja) | 楽音合成装置および方法 | |
JP3800914B2 (ja) | 楽音合成装置および記憶媒体 | |
JPH10254446A (ja) | 音源装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060110 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060306 |
|
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: 20060404 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060417 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100512 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110512 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130512 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140512 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |