JP2768168B2 - 楽音合成装置 - Google Patents
楽音合成装置Info
- Publication number
- JP2768168B2 JP2768168B2 JP4250184A JP25018492A JP2768168B2 JP 2768168 B2 JP2768168 B2 JP 2768168B2 JP 4250184 A JP4250184 A JP 4250184A JP 25018492 A JP25018492 A JP 25018492A JP 2768168 B2 JP2768168 B2 JP 2768168B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- variable
- algorithm
- nonlinear
- equation
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/02—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
- G10H1/06—Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour
- G10H1/16—Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour by non-linear elements
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H5/00—Instruments in which the tones are generated by means of electronic generators
- G10H5/007—Real-time simulation of G10B, G10C, G10D-type instruments using recursive or non-linear techniques, e.g. waveguide networks, recursive algorithms
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/131—Mathematical functions for musical analysis, processing, synthesis or composition
- G10H2250/155—Graham function, i.e. mathematical description of the fluid dynamics of air flowing through a gap, where there is a given pressure differential on either side of the gap, e.g. to model air velocity in wind instruments for physical modeling sound synthesis
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/315—Sound category-dependent sound synthesis processes [Gensound] for musical use; Sound category-specific synthesis-controlling parameters or control means therefor
- G10H2250/461—Gensound wind instruments, i.e. generating or synthesising the sound of a wind instrument, controlling specific features of said sound
- G10H2250/465—Reed instrument sound synthesis, controlling specific features of said sound
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/471—General musical sound synthesis principles, i.e. sound category-independent synthesis methods
- G10H2250/511—Physical modelling or real-time simulation of the acoustomechanical behaviour of acoustic musical instruments using, e.g. waveguides or looped delay lines
- G10H2250/521—Closed loop models therefor, e.g. with filter and delay line
Landscapes
- Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Description
つ閉ループ回路を備え、自然楽器の発音機構をシミュレ
ートする音源に用いて好適な楽音合成装置に関する。
るハンマー打弦アルゴリズム構成を示すブロック図であ
る(以下、第1の楽音合成回路という)。この第1の楽
音合成回路では、ピアノなどの自然楽器の発音メカニズ
ムを忠実にシミュレートすることによって、より自然楽
器音に近い楽音を合成し発音するように構成されてい
る。図において、第1の楽音合成回路は、自然楽器にお
ける発音体(弦)の作用をシミュレートするウエーブガ
イド1、該発音体に振動を与える演奏操作子(ハンマ
ー)による作用をシミュレートする励振回路2から構成
される。
やフィルタ4,4等を備えており、その遅延特性や周波
数特性は自然楽器における発音体の特性と同一になるよ
う設定される。また、励振回路2は、非線形テーブル5
を有しており、上記演奏操作子が発音体に与えるエネル
ギーに相当する励振信号を出力する。上記非線形テーブ
ル5が出力する励振信号は加算器6,6を介して上記ウ
エーブガイド1へ供給され、該ウエーブガイド1を巡回
するとともに、所定の楽音信号として出力される。
線形関数は、入力δに対して、
0で立上がり、「1」に漸近する関数である。従来はこ
のアルゴリズムを固定小数点DSP(デジタルシグナル
プロセッサ)によってリアルタイムで実行できるように
するために、予め非線形値を計算して求めておき、これ
をテーブルとしてDSP(Digital signalprocessor)
のメモリに蓄え、実際の楽音合成においてはこのテーブ
ルを参照していた。
であるシングルリードの非線形部のアルゴリズムを示す
ブロック図である(以下、第2の楽音合成回路とい
う)。図において、この場合のスリット関数テーブル1
0は、入力される吹奏圧PRESSとアンブシュアEM
Bとに対して、どの程度リードが閉じるか、あるいは完
全に開いてしまうかを示す、非線形のスリット関数を記
憶している。このスリット関数の傾きが鋭くなれば、リ
ードは開いたり閉じたりする矩形的な動作をするため、
合成される楽音の音質は矩形的なものとなる。また、こ
の関数の傾きが鈍くなれば、リードは、開く間か、もし
くは閉じる間のトランジェントな動きをなぞるため、波
形は丸みをおび、合成される楽音の音質も丸いものとな
る。
と吹奏圧PRESSとの差に対して、どの程度の差で、
どの程度の空気の体積流が流れ込むかを示す、非線形の
グラハム関数を記憶している。管内圧qhと吹奏圧PR
ESSとの差がなければ、当然、空気は流れ込みもしな
ければ、流れ出しもしない。また、吹奏圧PRESSが
高ければ、空気は管に対して流れ込み、管内圧qhが高
ければ、空気は流れ出る。このグラハム関数は、その傾
きが鋭ければ、少しの圧力差で空気の流れが急激に流入
するか、もしくは流出することを意味し、合成される楽
音の音質は力強いものとなる。また、この関数の傾きが
鈍くなれば、空気の流れが微妙なものとなり、繊細な音
色が得られる。
て、
る。また、スリット関数は図24(b)に示す関数であ
る。この第2の楽音合成回路においても、各関数は予め
計算され、前述したように、テーブルとしてDSPのメ
モリに蓄えられており、楽音合成時には、このメモリを
参照していた。また、図23に示すリードダイナッミッ
クフィルタ(reed dynamics filter)12は、リードの
動的特性をシミュレートするフィルタである。
1の楽音合成装置におけるハンマー打弦動作をシミュレ
ートする非線形関数は、ハンマーのフェルトが弦に衝突
する時のフェルトの弾性係数(ばね定数)に関するもの
である。したがって、この非線形関数がステップ関数で
あれば、フェルトが弦に接触した瞬間からフェルトの弾
性定数が完全に作用する。
は、フェルトは弦に衝突すると変形するため、弾性係数
は緩やかにしか作用しない。すなわち、堅いフェルトを
有するハンマーによれば、楽音に高次倍音が含まれ、堅
い音となる。また、柔らかいフェルトを有するハンマー
によれば、いわゆる丸い楽音となる。このようなハンマ
ーの特性を実現するには、非線形関数の立上がりにおけ
る傾きを変化させる必要がある。すなわち、堅いフェル
トをシミュレートするためには非線形関数の傾きを鋭く
し、柔らかいフェルトをシミュレートするためには非線
形関数の傾きを鈍くする必要がある。
は、楽音作成の要素として、上記数式1のγを変化させ
ること、すなわち関数の「1」への漸近の傾きをリアル
タイムで変化させることは不可能であった。したがっ
て、自然楽器によるハンマーのシミュレーションを十分
に行なえないという問題を生じた。
音作成における要素として各関数の立上がりの傾き、ま
たは関数形状をリアルタイムで変化させることは不可能
であった。また、これと同様に、リアルタイムの演奏中
に、操作子にスリット関数の傾きや、非線形関数(グラ
ハム関数)の形状をアサインし、変化させることも不可
能であった。したがって、自然楽器によるリードの開閉
のシミュレーションおよび空気の体積流の流れ込みのシ
ミュレーションを十分に行なえないという問題を生じ
た。
もので、非線形関数の形状をリアルタイムで変化させ、
楽音作成における要素を増加させることができ、また、
操作子にこれをアサインし多様な楽音を合成できる楽音
合成装置を提供することを目的としている。
るために、この発明では、複数ステップからなるプログ
ラムを所定周期毎に繰り返し実行することによって楽音
合成に必要な演算を繰り返し行う演算手段を備えた楽音
合成装置であって、各周期に実行されるプログラムが、
1周期毎に完結する演算であって、非線形関数を用いた
非線形変換処理および遅延処理を閉ループ接続したアル
ゴリズムにより楽音信号を合成する第1の演算のための
固定ステップと、複数周期で完結するように各周期に分
散されて行われる演算であって、前記非線形関数の算出
指示に応答して、前記非線形関数を算出する第2の演算
のための固定ステップとからなることを特徴とする。
演算が1周期毎に完結して行われ、非線形関数を算出す
る第2の演算が複数周期で完結するように各周期に分散
されて行われる。各周期において各演算に対して用いら
れるステップは、それぞれれ固定ステップとなっている
ので、楽音信号の合成状況が変化しても、複数周期にわ
たる非線形関数を算出する第2の演算に要する時間は変
化しない。
て説明する。図1は本実施例における楽音合成装置を実
現するためのDSPの構成を示すブロック図である。な
お、楽音合成装置全体のアルゴリズム構成は、図21お
よび図23に示す構成と同一であるので、ここでは説明
を省略する。本実施例の特徴は、前述した非線形テーブ
ル(スリット関数テーブルおよびグラハム関数テーブル
をも含む)の値をDSPの演算によってリアルタイムで
書き換えることにある。また、本実施例では、楽音合成
装置を構成する他の構成部も図1に示すDSPによって
実現される。
成は、その説明を明確にするために非常に単純化して示
している。図示のDSP20は、メインおよびサブのイ
ンストラクションを実行するよう構成されている。メイ
ン側で実行するアルゴリズムには音源だけでなく、各種
のフィルタやエフェクトなども含まれる。サブ側で実行
するインストラクションとしては、エンベロープやLF
Oの演算のほか、小さい帯域幅を有する信号の演算一般
が含まれる。例えば、物理モデル音源の場合、リード関
係の各種パラメータの演算などは低いサンプリングレー
トで連続して実行される。また、擦弦の演算などでは、
比較的、低い帯域に限定されるので、このような低いサ
ンプリングレートの演算が経済的に引合う。また、MI
DI(Musical instrumentdigital interface)などか
ら供給される各種コントローラの信号をホールドした
り、補間したりするような処理(例えば、TEGなど)
も中速のサンプリングレートに行うのが通例である。
サブのインストラクションを実行するために、各々に対
して、レジスタ21,22およびRAM23,24を有
する。他のハードウエア資源のほとんどは、メイン、サ
ブのインストラクションで共有できる。また、これによ
り、テンポラリーレジスタ25を介して両者の間でデー
タをやりとりすることもできる。また、レジスタ21,
22などは、メイン、サブで分けることにより、独立し
て実行できる。アキュムレータも同様に、ALU(乗
算、加算器まわり)をあたかも各々独立にもっているか
のごとく演算させるために、メインMAIN用(アキュ
ムレータ26)とサブSUB用(アキュムレータ27)
と別個に設けている。また、図示のMPXはマルチプレ
クサであり、MULは乗算器である。また、「255−
256 Y256」とあるのは、図示のシステムは、全
体が256ステップで1サイクルの処理を実行するよう
になっているが、そのうちの255〜256ステップ
は、サブ用のRAM24側にMPXが切り替わる。
つの問題となるのは、サブ側で演算してできたEGやL
FOの波形をそのままメイン側の音源アルゴリズムで用
いたのでは、値が離散的過ぎて補間の必要が生じること
である。このため、図1に示すように、レジスタ28と
補間器29とを設けている。図2はサブインストラクシ
ョンで発生したEGの信号を補間している様子である。
このように、fsのサンプリングレートで滑らかになっ
た波形にならないと、振幅エンベロープや音色変動のた
めに、それを用いた時に音源アルゴリズムにおけるノイ
ズの原因となる。
ンの実行を示す一例である。DSP20におけるサンプ
リング周期は、常に一定の数のインストラクションを実
行することで実現している(例えば、256インストラ
クション/1DACを採用できる)。ところで、音源D
SP内部でエンベロープジェネレータEGや低周波発振
器LFOのような低速の処理を行うことが要求される場
合には、256ステップからなるインストラクションの
うち、いくつかをそれらの演算のために割り当て、それ
を64DACサイクル分集めることにより、まとまった
処理を行うようにしている。図3では256ステップの
うち、2インストラクションのみをエンベロープジェネ
レータEG,低周波発振器LFOに割り当て(このイン
ストラクションの組をSUBとして示している)、アル
ゴリズムの演算には254インストラクション(こちら
をMAINとしている)としている。したがって、エン
ベロープジェネレータEG,低周波発振器LFOに対し
ては64DACサイクルに1回実行し、実質、2*64
=128インストラクションとしている。なお、本実施
例におけるDSPは固定小数点、データ精度16bi
t、2の補数(−1〜0.999……)で演算するもの
とする。
ュレートするための上記DSPによるアルゴリズムの実
現について説明する。 (I)打弦アルゴリズム ここでは、打弦楽器の発音機構をシミュレートするため
のアルゴリズムについて説明する。打弦アルゴリズムの
実現の条件としては、非線形テーブルが2048個のデ
ータで構成されている。このテーブルを参照することに
より、アルゴリズム演算を実現するものとし、これに必
要な演算数を1DACサイクル中、160ステップとす
る。このような条件により、1DACサイクル中、非線
形テーブルを演算に用いることのできるステップ数は9
6ステップとなる。しかしながら、このステップ内で非
線形テーブル2048点を全て演算することは不可能で
ある。そこで、1DACサイクル中に、例えば、その9
6ステップを用いて4点分の演算を行い、2048点で
512DACサイクル、すなわち10.24msに1
回、非線形テーブルを更新する方法を以下に示す。
る方法 ここでは、上記条件を満足するために、非線形テーブル
を級数展開により作成する方法について説明する。打弦
アルゴリズムの非線形は前述したように数式1に示すよ
うになる。この式において、exp(−γx)を級数展
開すると、
ると、x≧0における数式1のf(x)は、
し、数式4を演算する構成は図4に示すようなアルゴリ
ズム構成となる。この図において、各係数乗算器には、
係数としてa1=C000H(=−0.5),a2=15
55H(=約1/6),a3=FAA6H(約−1/2
4)が供給されている。次に、図4に示す構成によっ
て、非線形テーブルを作成するためのフローチャートを
図5および図6に示す。
される処理を示すフローチャートであり、まず、ステッ
プSA1において、図21に示すような遅延フィードバ
ックを実現するための演算が行なわれる。次に、ステッ
プSA2において、上述した非線形テーブルの演算が行
なわれる。図6は、この非線形テーブルを演算によって
求めるための詳細な処理を示すフローチャートである。
おいて、フラグFLAGが0であるか否かを判断する。
そして、このステップSB1における判断結果が「YE
S」の場合には、ステップSB2へ進む。ステップSB
2では、外部のコンピュータからγが与えられる。次
に、ステップSB3において、変数xを「0」とし、ア
ドレス変数adrsに非線形テーブルの書き込みスター
トアドレスSTADを格納する。
「NO」の場合、または上記ステップSB3が終了する
と、ステップSB4へ進む。ステップSB4では、変数
yに上記変数γとxとを乗算した値を格納する。次に、
ステップSB5へ進み、変数y1にy*y、変数y2に
y1*y、変数y3にy2*yをそれぞれ格納する。ス
テップSB6では、y+a1*y1+a2*y2+a3
*y3なる演算によって得られた値を変数zに格納す
る。
ーブルのアドレス変数adrsによって示されるアドレ
スに上記変数zの値を書込む。そして、ステップSB8
において、フラグFLAGおよびアドレス変数adrs
をインクリメントし、かつ、変数xを該xの刻みdx
分、増加させる。この処理によって、次のアドレスに対
する演算に対処する。
1DACサイクル中に繰り返し実行される。1DACサ
イクル期間における処理が終了すると、次に、ステップ
SB9へ進み、フラグFLAGが非線形テーブルのサイ
ズを示す変数DTNOより小さいか否かを判断する。そ
して、このステップSB9における判断結果が「NO」
の場合には、ステップSB10へ進み、所定の演算が終
了したことを示すために、フラグFLAGを「0」にし
て図5に示すメインルーチンへ戻る。
果が「YES」の場合には、所定の演算がまだ終了して
いないので、フラグFLAGをクリアすることなく、図
5に示すメインルーチンへ戻る。したがって、この場合
には、再び、当該ルーチンへ処理が移った際、ステップ
SB2およびSB3によって得られた値(γ、x)に基
づいて、前回の処理の続きを行なう。この処理は上述し
たステップSB9における判断結果が「NO」になるま
で行なわれる。以上の演算処理によって、図4に示すア
ルゴリズムによる非線形テーブルの書き換えが実現され
る。
る方法 次に、別の方法として、非線形テーブルを漸化式を用い
て作成する方法について説明する。打弦アルゴリズムの
非線形を表す数式3を以下のように変形する。
える。
び数式10を演算するためのアルゴリズム構成を示すブ
ロック図を図7に示す。この図において、入力にインパ
ルスn=0の時に「1」、その他の時には「0」となる
値を与えることにより目的の関数列を得ることができ
る。図8は図7に示すアルゴリズム構成による非線形テ
ーブルを作成するためのフローチャートである。
いて、フラグFLAGが「0」であるか否かを判断す
る。そして、ステップSC1における判断結果が「YE
S」の場合には、ステップSC2に進む。ステップSC
2では変数Aが与えられる。次に、ステップSC3へ進
み、変数xに「0」、変数yに「1」を格納するととも
に、アドレス変数adrsに非線形テーブルの書き込み
スタートアドレスSTADを格納する。
「NO」の場合、または上記ステップSC3が終了する
と、ステップSC4へ進み、x−A*x+A*yなる演
算によって得られる値を変数yに格納する。そして、ス
テップSC5において、1−yなる演算によって得られ
る値を変数zに格納し、ステップSC6へ進む。ステッ
プSC6では、非線形テーブルのアドレス変数adrs
によって示されるアドレスに上記変数zの値を書込む。
そして、ステップSC7において、フラグFLAGおよ
びアドレス変数adrsをインクリメントする。
1DACサイクル中に繰り返し実行される。1DACサ
イクル期間における処理が終了すると、次に、ステップ
SC8へ進み、フラグFLAGが非線形テーブルのサイ
ズを示す変数DTNOより小さいか否かを判断する。そ
して、このステップSC8における判断結果が「NO」
の場合には、ステップSC9へ進み、所定の演算が終了
したことを示すために、フラグFLAGを「0」にして
図5と同様のメインルーチンへ戻る。
果が「YES」の場合には、所定の演算がまだ終了して
いないので、フラグFLAGをクリアすることなく、図
5と同様のメインルーチンへ戻る。したがって、この場
合には、再び、当該ルーチンへ処理が移った際、ステッ
プSC2およびSC3によって得られた値(A、x)に
基づいて、前回の処理の続きを行なう。この処理は上述
したステップSC8における判断結果が「NO」になる
まで行なわれる。以上の演算処理によって、図7に示す
アルゴリズムによる非線形テーブルの書き換えが実現さ
れる。
ある。この図において、入力にステップ関数S(n)と
して、
きる。図10は図9に示す構成を用いて非線形テーブル
を作成するためのフローチャートである。
おいて、フラグFLAGが「0」であるか否かを判断す
る。そして、ステップSD1における判断結果が「YE
S」の場合には、ステップSD2に進む。ステップSD
2では変数Aが与えられる。次に、ステップSD3へ進
み、変数xに「1」、変数yに「0」を格納するととも
に、アドレス変数adrsに非線形テーブルの書き込み
スタートアドレスSTADを格納する。
「NO」の場合、または上記ステップSD3が終了する
と、ステップSD4へ進み、x−A*x+A*yなる演
算によって得られる値を変数yに格納する。そして、ス
テップSD5において、非線形テーブルのアドレス変数
adrsによって示されるアドレスに上記変数yの値を
書込む。そして、ステップSD6において、フラグFL
AGおよびアドレス変数adrsをインクリメントす
る。
1DACサイクル中に繰り返し実行される。1DACサ
イクル期間における処理が終了すると、次に、ステップ
SD7へ進み、フラグFLAGが非線形テーブルのサイ
ズを示す変数DTNOより小さいか否かを判断する。そ
して、このステップSD7における判断結果が「NO」
の場合には、ステップSD8へ進み、所定の演算が終了
したことを示すために、フラグFLAGを「0」にして
図5と同様のメインルーチンへ戻る。
果が「YES」の場合には、所定の演算がまだ終了して
いないので、フラグFLAGをクリアすることなく、図
5と同様のメインルーチンへ戻る。したがって、この場
合には、再び、当該ルーチンへ処理が移った際、ステッ
プSD2およびSD3によって得られた値(A、x)に
基づいて、前回の処理の続きを行なう。この処理は上述
したステップSD7における判断結果が「NO」になる
まで行なわれる。以上の演算処理によって、図9に示す
アルゴリズムによる非線形テーブルの書き換えが実現さ
れる。
る時定数で「1」に近づく関数であるから、ある次数の
ローパスフィルタのステップの応答であれば、どのよう
なものでも用いることができる。また、関数の傾きはロ
ーパスフィルタの時定数を変化させることにより変化さ
せることができる。
リット関数 ここでは、管楽器の発音機構におけるスリット関数をシ
ミュレートするためのアルゴリズムについて説明する。
スリット関数は前述した図24(b)に示す関数である
が、これを図11に示すように、出力が0.5となるx
0を中心に左右に分けて考えると、x0から右では「1」
に漸近し、x0から左では「0」に漸近していると考え
られる。
対称に移動して書き直したのが図12である。この図に
おいて、第1象限は(I)の例で見た打弦の非線形と全
く同じものである。また、第3象限は第1象限に対して
原点中心に点対称である。したがって、図4に示す級数
展開による方法もしくは図7または図9に示すアルゴリ
ズム・ブロックによる漸化式を用いる方法により、この
非線形テーブルを作成することができる。このうち、一
例として図9に示すステップ応答を実現する非線形テー
ブルを作成するためのフローチャートを図13に示す。
おいて、フラグFLAGが「0」であるか否かを判断す
る。そして、ステップSE1における判断結果が「YE
S」の場合には、ステップSE2へ進む。ステップSE
2では変数Aが与えられる。次に、ステップSE3へ進
み、変数xに初期値として「1」、変数yに初期値とし
て「0」を格納するとともに、アドレス変数adrsに
非線形テーブルの書き込みスタートアドレスSTADを
格納する。
「NO」の場合、または上記ステップSE3が終了する
と、ステップSE4へ進み、x−A*x+A*yなる演
算によって得られる値を変数yに格納する。そして、ス
テップSE5では、0.5+0.5*yなる演算によっ
て得られる値を変数z1に格納する。さらに、ステップ
SE6において、0.5−0.5*yなる演算によって
得られる値を変数z2に格納する。次に、ステップSE
7において、非線形テーブルの、アドレスADRx0+
adrsなる演算によって得られるアドレスに上記変数
z1の値を書き込む。ADRx0は図11のx0に対応
するアドレスである。次に、ステップSE8において、
非線形テーブルの、アドレスADRx0−adrsに上
記変数z2の値を書き込む。そして、ステップSE9に
おいて、フラグFLAGおよびアドレス変数adrsを
インクリメントする。
1DACサイクル中に繰り返し実行される。それによっ
て、図11に示すようなADRx0+STADを中心に
前後に各々、Z2,Z1の計算結果が並んだテーブルがで
きる。そして、1DACサイクル期間における処理が終
了すると、次に、ステップSE10へ進み、フラグFL
AGが非線形テーブルの1/2のサイズを示す変数DT
NOより小さいか否かを判断する。そして、このステッ
プSE10における判断結果が「NO」の場合には、ス
テップSE11へ進み、所定の演算が終了したことを示
すために、フラグFLAGを「0」にして図5と同様の
メインルーチンへ戻る。
結果が「YES」の場合には、所定の演算がまだ終了し
ていないので、フラグFLAGをクリアすることなく、
図5と同様のメインルーチンへ戻る。したがって、この
場合には、再び、当該ルーチンへ処理が移った際、ステ
ップSE2およびSE3によって得られた値(A、x)
に基づいて、前回の処理の続きを行なう。この処理は上
述したステップSE10における判断結果が「NO」に
なるまで行なわれる。以上の演算処理によって、図9に
示すアルゴリズム・ブロック図と同様のステップ応答が
実現される。
ラハム関数 ここでは、管楽器の発音機構におけるグラハム関数をシ
ミュレートするためのアルゴリズムについて説明する。
グラハム関数は前述した数式2に示す関数である。この
グラハム関数は図24(a)に示すように、原点に対し
て点対称であるので、x≧0についてのみを考えると、
述したように、級数展開により作成する方法と、漸化式
により作成する方法がある。
て説明する。 非線形テーブルを級数展開により作成する方法γxを
1−yとすると、
れば、
によって得られた数式15を演算するアルゴリズム構成
を示すブロック図である。また、図14に示す構成を用
いて非線形テーブルを作成するためのフローチャートを
図15に示す。
おいて、フラグFLAGが「0」であるか否かを判断す
る。そして、ステップSF1における判断結果が「YE
S」の場合には、ステップSF2へ進む。ステップSF
2では変数γが外部のコンピュータから与えられる。次
に、ステップSF3へ進み、非線形テーブルの書き込み
アドレスを示すアドレス変数adrsを「0」にする。
「NO」の場合、または上記ステップSF3が終了する
と、ステップSF4へ進み、1−γxなる演算によって
得られる値を変数yへ格納し、y*yなる演算によって
得られる値を変数y1へ格納する。さらに、y1*yな
る演算によって得られる値を変数y2へ格納し、y2*
yなる演算によって得られる値を変数y3へ格納する。
次に、ステップSF5へ進み、1+a0*y+a1*y
1+a2*y2+a3*y3なる演算によって得られる
値を変数zに格納する。
ーブルの、ADRC+adrsなる演算によって得られ
るアドレスに上記変数zの値を書き込む。なお、変数A
DRCは非線形テーブルの書き込みスタートアドレスを
示す。さらに、ステップSF7において、非線形テーブ
ルの、ADRC−adrsなる演算によって得られるア
ドレスに上記変数zの負の値、すなわち−zを書き込
む。
1DACサイクル中に繰り返し実行される。1DACサ
イクル期間における処理が終了すると、次に、ステップ
SF9へ進み、フラグFLAGが非線形テーブルのサイ
ズを示す変数DTNOより小さいか否かを判断する。そ
して、このステップSF9における判断結果が「NO」
の場合には、ステップSF10へ進み、所定の演算が終
了したことを示すために、フラグFLAGを「0」にし
た後、図5と同様のメインルーチンへ戻る。
果が「YES」の場合には、所定の演算がまだ終了して
いないので、フラグFLAGをクリアすることなく、図
5と同様のメインルーチンへ戻る。したがって、この場
合には、再び、当該ルーチンへ処理が移った際、ステッ
プSF2によって得られた値(γ)に基づいて前回の処
理の続きを行なう。この処理は上述したステップSF9
における判断結果が「NO」になるまで行なわれる。以
上の演算処理によって図14に示すアルゴリズムによる
非線形テーブル(グラハム関数)の書き換えが実現され
る。
る方法について説明する。 非線形テーブルを漸化式を用いて作成する方法 前述した数式2を直接、漸化式で解決することは難しい
が、図24(a)に示す関数の形状と、図12とを比較
することにより、グラハム関数は図12に示すスリット
関数を演算し、これをy軸に対して軸対称に変換するこ
とにより近似できる。したがって、図7および図9に示
す構成を用いることにより、グラハム関数テーブルを作
成することができる。なお、演算処理は前述したフロー
チャートと同様であるので説明は省略する。
ブルを作成する場合について説明する。 (IV)その他の非線形テーブル 以下に示す非線形関数テーブルが必要となった場合、ア
ルゴリズムに組込むべき漸化式を以下に示す。 正弦関数(テーブルサイズN) 正弦関数は次式によって表される。
構成を示すブロック図である。
弦関数のブロック図と同一である。
合せた関数を実現するための構成について説明する。 いくつかの正弦関数と余弦関数との和 複数の正弦関数と余弦関数との和は次式によって表され
る。
る。この場合のブロック図を図17に示す。なお、この
場合、Ai,Bi,αi,βiを操作子にアサインし、
非線形テーブルを書き換え、音色を変えるようにしても
よい。
た実施例について説明する。 この実施例では、図18に示すステップ応答特性を有
する2次のLPFを用いている。これによれば、そのス
テップ応答特性により前述したスリット関数が直接得ら
れる。これを組合せることによって、さまざまな形状の
スリット関数が得られる。例えば、図19に示すよう
に、3つのLPFを組合せて、それらの出力であるステ
ップ応答に重みづけをし(係数G1、G2およびG3の
変化)、加算すれば、図20に示すようなステップの応
答が得られる。上記重みづけのための係数G1、G2お
よびG3は操作子にアサインしておけば、操作子を操作
することによって音色を変えることができる。
リズムは数値解析法でもよい。例えば、前述したグラハ
ム関数では、
1DACサイクルに可能な回数分、演算すれば目的とす
る関数が得られる。
線形を計算するためのパラメータ(例えば、数式1の
γ)などを変化させるのは、 楽音作成の時 操作子の変化時 に行なう。上記は頻繁に発生しないので、例えば、数
10DAC期間に渡った処理においても、十分、リアル
タイムで変化する楽音として聞える。また、上記にお
いても、操作子のパラメータが送られてくるのはMID
Iなどでも数msecごとに供給される程度であるた
め、これも十分、リアルタイムで応答できる。
ば、複数ステップからなるプログラムを所定周期毎に繰
り返し実行することによって楽音合成に必要な演算を繰
り返し行う際に、各周期に実行されるプログラムが、1
周期毎に完結する演算であって、非線形関数を用いた非
線形変換処理および遅延処理を閉ループ接続したアルゴ
リズムにより楽音信号を合成する第1の演算のための固
定ステップと、複数周期で完結するように各周期に分散
されて行われる演算であって、前記非線形関数の算出指
示に応答して、前記非線形関数を算出する第2の演算の
ための固定ステップとからなるようにしたので、非線形
関数の算出に関するプログラムが1周期内で固定ステッ
プで必ず実行される。したがって、演奏状況が変化して
も、非線形関数の算出を行うのに要する時間は長くなら
ない。これにより、算出指示に応答して非線形関数の算
出を素早く行うことができ、楽音の発生開始から実際に
楽音が発生されるまでの時間を短くすることができる。
またこれにより、物理音源モデルにおいて、非線形関数
の形状をリアルタイムで変化させ、楽音合成における要
素を増加させることができ、また、操作子に非線形関数
の算出指示をアサインし多様な楽音を合成できるという
利点が得られる。
ある。
号を補間している様子を示す波形図である。
行を示す一例である。
作成するアルゴリズム構成を示すブロック図である。
のDSPの1DACサイクル中に実行される処理を示す
フローチャートである。
の詳細な処理を示すフローチャートである。
10)により作成するアルゴリズム構成を示すブロック
図である。
ーブルを作成するためのフローチャートである。
る。
作成するためのフローチャートである。
示す波形図である。
5)を中心に書き直した波形図である。
テーブルを作成するためのフローチャートである。
ズムのグラハム関数)を級数展開(数式15)により作
成するアルゴリズム構成を示すブロック図である。
を作成するためのフローチャートである。
成を示すブロック図である。
るためのアルゴリズム構成を示すブロック図である。
出力波形図である。
次のLPFを用いたスリット関数を得るためのアルゴリ
ズム構成を示すブロック図である。
波形図である。
打弦アルゴリズム構成を示すブロック図である。
数)の出力波形図である。
リードの非線形部のアルゴリズムを示すブロック図であ
る。
波形図であり、(b)はスリット関数を示す波形図であ
る。
(励振信号生成手段)、5……非線形テーブル、20…
…DSP(演算回路)、21……サブ用のレジスタ、2
2……メイン用のレジスタ、25……テンポラリレジス
タ、26……メイン用のアキュムレータ、27……サブ
用のアキュムレータ、28……レジスタ、29……補間
器。
Claims (1)
- 【請求項1】 複数ステップからなるプログラムを所定
周期毎に繰り返し実行することによって楽音合成に必要
な演算を繰り返し行う演算手段を備えた楽音合成装置で
あって、各周期に実行されるプログラムが、 1周期毎に完結する演算であって、非線形関数を用いた
非線形変換処理および遅延処理を閉ループ接続したアル
ゴリズムにより楽音信号を合成する第1の演算のための
固定ステップと、 複数周期で完結するように各周期に分散されて行われる
演算であって、前記非線形関数の算出指示に応答して、
前記非線形関数を算出する第2の演算のための固定ステ
ップとからなることを特徴とする楽音合成装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4250184A JP2768168B2 (ja) | 1992-09-18 | 1992-09-18 | 楽音合成装置 |
US08/122,885 US5508469A (en) | 1992-09-18 | 1993-09-16 | Musical tone synthesizing apparatus capable of changing musical parameters in real-time |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4250184A JP2768168B2 (ja) | 1992-09-18 | 1992-09-18 | 楽音合成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06102881A JPH06102881A (ja) | 1994-04-15 |
JP2768168B2 true JP2768168B2 (ja) | 1998-06-25 |
Family
ID=17204066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4250184A Expired - Lifetime JP2768168B2 (ja) | 1992-09-18 | 1992-09-18 | 楽音合成装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5508469A (ja) |
JP (1) | JP2768168B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW279219B (ja) * | 1994-03-31 | 1996-06-21 | Yamaha Corp | |
DE69619587T2 (de) * | 1995-05-19 | 2002-10-31 | Yamaha Corp., Hamamatsu | Verfahren und Vorrichtung zur Tonerzeugung |
US6326537B1 (en) | 1995-09-29 | 2001-12-04 | Yamaha Corporation | Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency |
JP2970526B2 (ja) * | 1996-01-17 | 1999-11-02 | ヤマハ株式会社 | コンピュータソフトウェアを用いた音源システム |
US5837914A (en) * | 1996-08-22 | 1998-11-17 | Schulmerich Carillons, Inc. | Electronic carillon system utilizing interpolated fractional address DSP algorithm |
US7486743B2 (en) * | 2003-12-29 | 2009-02-03 | Intel Corporation | Device and method of measuring frequency domain response in RF modulator |
WO2008121650A1 (en) * | 2007-03-30 | 2008-10-09 | William Henderson | Audio signal processing system for live music performance |
JP5605192B2 (ja) * | 2010-12-02 | 2014-10-15 | ヤマハ株式会社 | 楽音信号合成方法、プログラムおよび楽音信号合成装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5865492A (ja) * | 1981-10-15 | 1983-04-19 | ヤマハ株式会社 | 電子楽器 |
US4984276A (en) * | 1986-05-02 | 1991-01-08 | The Board Of Trustees Of The Leland Stanford Junior University | Digital signal processing using waveguide networks |
JP2576614B2 (ja) * | 1988-12-29 | 1997-01-29 | カシオ計算機株式会社 | 処理装置 |
US5248844A (en) * | 1989-04-21 | 1993-09-28 | Yamaha Corporation | Waveguide type musical tone synthesizing apparatus |
JPH0769701B2 (ja) * | 1989-05-09 | 1995-07-31 | ヤマハ株式会社 | 楽音波形信号形成装置 |
JP2591193B2 (ja) * | 1989-11-13 | 1997-03-19 | ヤマハ株式会社 | 非線形関数発生装置およびその非線形関数発生装置を用いた楽音合成装置 |
JP2580814B2 (ja) * | 1990-01-05 | 1997-02-12 | ヤマハ株式会社 | 楽音信号発生装置 |
-
1992
- 1992-09-18 JP JP4250184A patent/JP2768168B2/ja not_active Expired - Lifetime
-
1993
- 1993-09-16 US US08/122,885 patent/US5508469A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5508469A (en) | 1996-04-16 |
JPH06102881A (ja) | 1994-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Välimäki et al. | Discrete-time modelling of musical instruments | |
Bank et al. | A modal-based real-time piano synthesizer | |
Välimäki et al. | Virtual musical instruments—natural sound using physical models | |
JP2768168B2 (ja) | 楽音合成装置 | |
JP2006047451A (ja) | 電子楽器 | |
JP2727841B2 (ja) | 楽音合成装置 | |
JPH0778679B2 (ja) | 楽音波形信号形成装置 | |
US4177706A (en) | Digital real time music synthesizer | |
Ducceschipaq et al. | Plate reverberation: Towards the development of a real-time physical model for the working musician | |
Smith III | Nonlinear commuted synthesis of bowed strings | |
Bilbao et al. | The ness project: physical modeling, algorithms and sound synthesis | |
JP3459948B2 (ja) | 楽音合成装置 | |
JP2722727B2 (ja) | 電子楽器 | |
Karjalainen et al. | An overview of new techniques and effects in model-based sound synthesis | |
Bailey et al. | Applications of the phase vocoder in the control of real‐time electronic musical instruments | |
JP2814699B2 (ja) | 楽音合成装置 | |
JPH03174196A (ja) | 楽音合成装置 | |
JP3551575B2 (ja) | 楽音発生装置 | |
JP2568759B2 (ja) | 楽音合成装置 | |
Bilbao et al. | The NESS Project: Large Scale Physical Modeling Synthesis, Parallel Computing and Musical Experimentation.” | |
JP2841847B2 (ja) | 楽音合成装置 | |
JP4548327B2 (ja) | 楽音制御装置および楽音制御処理のプログラム | |
JPH0378799A (ja) | 楽音合成装置 | |
JP4158198B2 (ja) | 波形発生装置および波形発生処理プログラム | |
JPH05232965A (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: 19980310 |
|
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: 20090410 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090410 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100410 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110410 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120410 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130410 Year of fee payment: 15 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130410 Year of fee payment: 15 |