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
Application number
JP4250184A
Other languages
English (en)
Other versions
JPH06102881A (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 JP4250184A priority Critical patent/JP2768168B2/ja
Priority to US08/122,885 priority patent/US5508469A/en
Publication of JPH06102881A publication Critical patent/JPH06102881A/ja
Application granted granted Critical
Publication of JP2768168B2 publication Critical patent/JP2768168B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Details of electrophonic musical instruments
    • G10H1/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • G10H1/06Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour
    • G10H1/16Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour by non-linear elements
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Instruments in which the tones are generated by means of electronic generators
    • G10H5/007Real-time simulation of G10B, G10C, G10D-type instruments using recursive or non-linear techniques, e.g. waveguide networks, recursive algorithms
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/131Mathematical functions for musical analysis, processing, synthesis or composition
    • G10H2250/155Graham 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/315Sound category-dependent sound synthesis processes [Gensound] for musical use; Sound category-specific synthesis-controlling parameters or control means therefor
    • G10H2250/461Gensound wind instruments, i.e. generating or synthesising the sound of a wind instrument, controlling specific features of said sound
    • G10H2250/465Reed instrument sound synthesis, controlling specific features of said sound
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/471General musical sound synthesis principles, i.e. sound category-independent synthesis methods
    • G10H2250/511Physical modelling or real-time simulation of the acoustomechanical behaviour of acoustic musical instruments using, e.g. waveguides or looped delay lines
    • G10H2250/521Closed 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

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、非線形テーブルを持
つ閉ループ回路を備え、自然楽器の発音機構をシミュレ
ートする音源に用いて好適な楽音合成装置に関する。
【0002】
【従来の技術】図21は従来の楽音合成回路の1つであ
るハンマー打弦アルゴリズム構成を示すブロック図であ
る(以下、第1の楽音合成回路という)。この第1の楽
音合成回路では、ピアノなどの自然楽器の発音メカニズ
ムを忠実にシミュレートすることによって、より自然楽
器音に近い楽音を合成し発音するように構成されてい
る。図において、第1の楽音合成回路は、自然楽器にお
ける発音体(弦)の作用をシミュレートするウエーブガ
イド1、該発音体に振動を与える演奏操作子(ハンマ
ー)による作用をシミュレートする励振回路2から構成
される。
【0003】上記ウエーブガイド1は、遅延回路3,3
やフィルタ4,4等を備えており、その遅延特性や周波
数特性は自然楽器における発音体の特性と同一になるよ
う設定される。また、励振回路2は、非線形テーブル5
を有しており、上記演奏操作子が発音体に与えるエネル
ギーに相当する励振信号を出力する。上記非線形テーブ
ル5が出力する励振信号は加算器6,6を介して上記ウ
エーブガイド1へ供給され、該ウエーブガイド1を巡回
するとともに、所定の楽音信号として出力される。
【0004】上記非線形テーブル5に格納されている非
線形関数は、入力δに対して、
【数1】 なる関数である。この関数は図22に示すように、入力
0で立上がり、「1」に漸近する関数である。従来はこ
のアルゴリズムを固定小数点DSP(デジタルシグナル
プロセッサ)によってリアルタイムで実行できるように
するために、予め非線形値を計算して求めておき、これ
をテーブルとしてDSP(Digital signalprocessor)
のメモリに蓄え、実際の楽音合成においてはこのテーブ
ルを参照していた。
【0005】また、図23は従来の楽音合成装置の1つ
であるシングルリードの非線形部のアルゴリズムを示す
ブロック図である(以下、第2の楽音合成回路とい
う)。図において、この場合のスリット関数テーブル1
0は、入力される吹奏圧PRESSとアンブシュアEM
Bとに対して、どの程度リードが閉じるか、あるいは完
全に開いてしまうかを示す、非線形のスリット関数を記
憶している。このスリット関数の傾きが鋭くなれば、リ
ードは開いたり閉じたりする矩形的な動作をするため、
合成される楽音の音質は矩形的なものとなる。また、こ
の関数の傾きが鈍くなれば、リードは、開く間か、もし
くは閉じる間のトランジェントな動きをなぞるため、波
形は丸みをおび、合成される楽音の音質も丸いものとな
る。
【0006】グラハム関数テーブル11は、管内圧qh
と吹奏圧PRESSとの差に対して、どの程度の差で、
どの程度の空気の体積流が流れ込むかを示す、非線形の
グラハム関数を記憶している。管内圧qhと吹奏圧PR
ESSとの差がなければ、当然、空気は流れ込みもしな
ければ、流れ出しもしない。また、吹奏圧PRESSが
高ければ、空気は管に対して流れ込み、管内圧qhが高
ければ、空気は流れ出る。このグラハム関数は、その傾
きが鋭ければ、少しの圧力差で空気の流れが急激に流入
するか、もしくは流出することを意味し、合成される楽
音の音質は力強いものとなる。また、この関数の傾きが
鈍くなれば、空気の流れが微妙なものとなり、繊細な音
色が得られる。
【0007】このうち、グラハム関数は入力xに対し
て、
【数2】 なる式で表され、図24(a)に示すような関数であ
る。また、スリット関数は図24(b)に示す関数であ
る。この第2の楽音合成回路においても、各関数は予め
計算され、前述したように、テーブルとしてDSPのメ
モリに蓄えられており、楽音合成時には、このメモリを
参照していた。また、図23に示すリードダイナッミッ
クフィルタ(reed dynamics filter)12は、リードの
動的特性をシミュレートするフィルタである。
【0008】
【発明が解決しようとする課題】ところで、上述した第
1の楽音合成装置におけるハンマー打弦動作をシミュレ
ートする非線形関数は、ハンマーのフェルトが弦に衝突
する時のフェルトの弾性係数(ばね定数)に関するもの
である。したがって、この非線形関数がステップ関数で
あれば、フェルトが弦に接触した瞬間からフェルトの弾
性定数が完全に作用する。
【0009】しかしながら、実際の自然楽器において
は、フェルトは弦に衝突すると変形するため、弾性係数
は緩やかにしか作用しない。すなわち、堅いフェルトを
有するハンマーによれば、楽音に高次倍音が含まれ、堅
い音となる。また、柔らかいフェルトを有するハンマー
によれば、いわゆる丸い楽音となる。このようなハンマ
ーの特性を実現するには、非線形関数の立上がりにおけ
る傾きを変化させる必要がある。すなわち、堅いフェル
をシミュレートするためには非線形関数の傾きを鋭く
し、柔らかいフェルトをシミュレートするためには非線
形関数の傾きを鈍くする必要がある。
【0010】しかしながら、上記第1の楽音合成回路で
は、楽音作成の要素として、上記数式1のγを変化させ
ること、すなわち関数の「1」への漸近の傾きをリアル
タイムで変化させることは不可能であった。したがっ
て、自然楽器によるハンマーのシミュレーションを十分
に行なえないという問題を生じた。
【0011】また、第2の楽音合成装置においても、楽
音作成における要素として各関数の立上がりの傾き、ま
たは関数形状をリアルタイムで変化させることは不可能
であった。また、これと同様に、リアルタイムの演奏中
に、操作子にスリット関数の傾きや、非線形関数(グラ
ハム関数)の形状をアサインし、変化させることも不可
能であった。したがって、自然楽器によるリードの開閉
のシミュレーションおよび空気の体積流の流れ込みのシ
ミュレーションを十分に行なえないという問題を生じ
た。
【0012】この発明は上述した事情に鑑みてなされた
もので、非線形関数の形状をリアルタイムで変化させ、
楽音作成における要素を増加させることができ、また、
操作子にこれをアサインし多様な楽音を合成できる楽音
合成装置を提供することを目的としている。
【0013】
【課題を解決するための手段】上述した問題点を解決す
るために、この発明では、複数ステップからなるプログ
ラムを所定周期毎に繰り返し実行することによって楽音
合成に必要な演算を繰り返し行う演算手段を備えた楽音
合成装置であって、各周期に実行されるプログラムが、
1周期毎に完結する演算であって、非線形関数を用いた
非線形変換処理および遅延処理を閉ループ接続したアル
ゴリズムにより楽音信号を合成する第1の演算のための
固定ステップと、複数周期で完結するように各周期に分
散されて行われる演算であって、前記非線形関数の算出
指示に応答して、前記非線形関数を算出する第2の演算
のための固定ステップとからなることを特徴とする。
【0014】
【作用】上記構成によれば、楽音信号を合成する第1の
演算が1周期毎に完結して行われ、非線形関数を算出す
る第2の演算が複数周期で完結するように各周期に分散
されて行われる。各周期において各演算に対して用いら
れるステップは、それぞれれ固定ステップとなっている
ので、楽音信号の合成状況が変化しても、複数周期にわ
たる非線形関数を算出する第2の演算に要する時間は変
化しない。
【0015】
【実施例】次に図面を参照してこの発明の実施例につい
て説明する。図1は本実施例における楽音合成装置を実
現するためのDSPの構成を示すブロック図である。な
お、楽音合成装置全体のアルゴリズム構成は、図21お
よび図23に示す構成と同一であるので、ここでは説明
を省略する。本実施例の特徴は、前述した非線形テーブ
ル(スリット関数テーブルおよびグラハム関数テーブル
をも含む)の値をDSPの演算によってリアルタイムで
書き換えることにある。また、本実施例では、楽音合成
装置を構成する他の構成部も図1に示すDSPによって
実現される。
【0016】[実施例の構成]図において、DSPの構
成は、その説明を明確にするために非常に単純化して示
している。図示のDSP20は、メインおよびサブのイ
ンストラクションを実行するよう構成されている。メイ
ン側で実行するアルゴリズムには音源だけでなく、各種
のフィルタやエフェクトなども含まれる。サブ側で実行
するインストラクションとしては、エンベロープやLF
Oの演算のほか、小さい帯域幅を有する信号の演算一般
が含まれる。例えば、物理モデル音源の場合、リード関
係の各種パラメータの演算などは低いサンプリングレー
トで連続して実行される。また、擦弦の演算などでは、
比較的、低い帯域に限定されるので、このような低いサ
ンプリングレートの演算が経済的に引合う。また、MI
DI(Musical instrumentdigital interface)などか
ら供給される各種コントローラの信号をホールドした
り、補間したりするような処理(例えば、TEGなど)
も中速のサンプリングレートに行うのが通例である。
【0017】したがって、DSP20は、メインおよび
サブのインストラクションを実行するために、各々に対
して、レジスタ21,22およびRAM23,24を有
する。他のハードウエア資源のほとんどは、メイン、サ
ブのインストラクションで共有できる。また、これによ
り、テンポラリーレジスタ25を介して両者の間でデー
タをやりとりすることもできる。また、レジスタ21,
22などは、メイン、サブで分けることにより、独立し
て実行できる。アキュムレータも同様に、ALU(乗
算、加算器まわり)をあたかも各々独立にもっているか
のごとく演算させるために、メインMAIN用(アキュ
ムレータ26)とサブSUB用(アキュムレータ27)
と別個に設けている。また、図示のMPXはマルチプレ
クサであり、MULは乗算器である。また、「255−
256 Y256」とあるのは、図示のシステムは、全
体が256ステップで1サイクルの処理を実行するよう
になっているが、そのうちの255〜256ステップ
は、サブ用のRAM24側にMPXが切り替わる。
【0018】メイン、サブ間のデータの受け渡しで、1
つの問題となるのは、サブ側で演算してできたEGやL
FOの波形をそのままメイン側の音源アルゴリズムで用
いたのでは、値が離散的過ぎて補間の必要が生じること
である。このため、図1に示すように、レジスタ28と
補間器29とを設けている。図2はサブインストラクシ
ョンで発生したEGの信号を補間している様子である。
このように、fsのサンプリングレートで滑らかになっ
た波形にならないと、振幅エンベロープや音色変動のた
めに、それを用いた時に音源アルゴリズムにおけるノイ
ズの原因となる。
【0019】図3は上述したDSPのインストラクショ
ンの実行を示す一例である。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……)で演算するもの
とする。
【0020】次に、代表的な自然楽器の発音機構をシミ
ュレートするための上記DSPによるアルゴリズムの実
現について説明する。 (I)打弦アルゴリズム ここでは、打弦楽器の発音機構をシミュレートするため
のアルゴリズムについて説明する。打弦アルゴリズムの
実現の条件としては、非線形テーブルが2048個のデ
ータで構成されている。このテーブルを参照することに
より、アルゴリズム演算を実現するものとし、これに必
要な演算数を1DACサイクル中、160ステップとす
る。このような条件により、1DACサイクル中、非線
形テーブルを演算に用いることのできるステップ数は9
6ステップとなる。しかしながら、このステップ内で非
線形テーブル2048点を全て演算することは不可能で
ある。そこで、1DACサイクル中に、例えば、その9
6ステップを用いて4点分の演算を行い、2048点で
512DACサイクル、すなわち10.24msに1
回、非線形テーブルを更新する方法を以下に示す。
【0021】非線形テーブルを級数展開により作成す
る方法 ここでは、上記条件を満足するために、非線形テーブル
を級数展開により作成する方法について説明する。打弦
アルゴリズムの非線形は前述したように数式1に示すよ
うになる。この式において、exp(−γx)を級数展
開すると、
【数3】 となる。したがって、上記数3を第5項で打切ったとす
ると、x≧0における数式1のf(x)は、
【数4】 となる。γが外部のコンピュータから与えられるものと
し、数式4を演算する構成は図4に示すようなアルゴリ
ズム構成となる。この図において、各係数乗算器には、
係数としてa1=C000H(=−0.5),a2=15
55H(=約1/6),a3=FAA6H(約−1/2
4)が供給されている。次に、図4に示す構成によっ
て、非線形テーブルを作成するためのフローチャートを
図5および図6に示す。
【0022】図5はDSPの1DACサイクル中に実行
される処理を示すフローチャートであり、まず、ステッ
プSA1において、図21に示すような遅延フィードバ
ックを実現するための演算が行なわれる。次に、ステッ
プSA2において、上述した非線形テーブルの演算が行
なわれる。図6は、この非線形テーブルを演算によって
求めるための詳細な処理を示すフローチャートである。
【0023】この図において、まず、ステップSB1に
おいて、フラグFLAGが0であるか否かを判断する。
そして、このステップSB1における判断結果が「YE
S」の場合には、ステップSB2へ進む。ステップSB
2では、外部のコンピュータからγが与えられる。次
に、ステップSB3において、変数xを「0」とし、ア
ドレス変数adrsに非線形テーブルの書き込みスター
トアドレスSTADを格納する。
【0024】上記ステップSB1における判断結果が
「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に格納す
る。
【0025】次に、ステップSB7において、非線形テ
ーブルのアドレス変数adrsによって示されるアドレ
スに上記変数zの値を書込む。そして、ステップSB8
において、フラグFLAGおよびアドレス変数adrs
をインクリメントし、かつ、変数xを該xの刻みdx
分、増加させる。この処理によって、次のアドレスに対
する演算に対処する。
【0026】上述したステップSB4〜SB8の処理は
1DACサイクル中に繰り返し実行される。1DACサ
イクル期間における処理が終了すると、次に、ステップ
SB9へ進み、フラグFLAGが非線形テーブルのサイ
ズを示す変数DTNOより小さいか否かを判断する。そ
して、このステップSB9における判断結果が「NO」
の場合には、ステップSB10へ進み、所定の演算が終
了したことを示すために、フラグFLAGを「0」にし
て図5に示すメインルーチンへ戻る。
【0027】一方、上記ステップSB9における判断結
果が「YES」の場合には、所定の演算がまだ終了して
いないので、フラグFLAGをクリアすることなく、図
5に示すメインルーチンへ戻る。したがって、この場合
には、再び、当該ルーチンへ処理が移った際、ステップ
SB2およびSB3によって得られた値(γ、x)に基
づいて、前回の処理の続きを行なう。この処理は上述し
たステップSB9における判断結果が「NO」になるま
で行なわれる。以上の演算処理によって、図4に示すア
ルゴリズムによる非線形テーブルの書き換えが実現され
る。
【0028】非線形テーブルを漸化式を用いて作成す
る方法 次に、別の方法として、非線形テーブルを漸化式を用い
て作成する方法について説明する。打弦アルゴリズムの
非線形を表す数式3を以下のように変形する。
【数5】 次に、上記数式5において、各項を以下のように置き換
える。
【数6】
【数7】
【数8】 したがって、数式5は、
【数9】 となる。また、G(n)は、
【数10】 となる漸化式で書き表すことができる。この数式9およ
び数式10を演算するためのアルゴリズム構成を示すブ
ロック図を図7に示す。この図において、入力にインパ
ルスn=0の時に「1」、その他の時には「0」となる
値を与えることにより目的の関数列を得ることができ
る。図8は図7に示すアルゴリズム構成による非線形テ
ーブルを作成するためのフローチャートである。
【0029】図8において、まず、ステップSC1にお
いて、フラグFLAGが「0」であるか否かを判断す
る。そして、ステップSC1における判断結果が「YE
S」の場合には、ステップSC2に進む。ステップSC
2では変数Aが与えられる。次に、ステップSC3へ進
み、変数xに「0」、変数yに「1」を格納するととも
に、アドレス変数adrsに非線形テーブルの書き込み
スタートアドレスSTADを格納する。
【0030】上記ステップSC1における判断結果が
「NO」の場合、または上記ステップSC3が終了する
と、ステップSC4へ進み、x−A*x+A*yなる演
算によって得られる値を変数yに格納する。そして、ス
テップSC5において、1−yなる演算によって得られ
る値を変数zに格納し、ステップSC6へ進む。ステッ
プSC6では、非線形テーブルのアドレス変数adrs
によって示されるアドレスに上記変数zの値を書込む。
そして、ステップSC7において、フラグFLAGおよ
びアドレス変数adrsをインクリメントする。
【0031】上述したステップSC4〜SC7の処理は
1DACサイクル中に繰り返し実行される。1DACサ
イクル期間における処理が終了すると、次に、ステップ
SC8へ進み、フラグFLAGが非線形テーブルのサイ
ズを示す変数DTNOより小さいか否かを判断する。そ
して、このステップSC8における判断結果が「NO」
の場合には、ステップSC9へ進み、所定の演算が終了
したことを示すために、フラグFLAGを「0」にして
図5と同様のメインルーチンへ戻る。
【0032】一方、上記ステップSC8における判断結
果が「YES」の場合には、所定の演算がまだ終了して
いないので、フラグFLAGをクリアすることなく、図
5と同様のメインルーチンへ戻る。したがって、この場
合には、再び、当該ルーチンへ処理が移った際、ステッ
プSC2およびSC3によって得られた値(A、x)に
基づいて、前回の処理の続きを行なう。この処理は上述
したステップSC8における判断結果が「NO」になる
まで行なわれる。以上の演算処理によって、図7に示す
アルゴリズムによる非線形テーブルの書き換えが実現さ
れる。
【0033】別の構成例 次に、図9は別のアルゴリズム構成を示すブロック図で
ある。この図において、入力にステップ関数S(n)と
して、
【数11】 を入力すると、その出力y(n)は、
【数12】 となり、数式5に示す目的の関数列を計算することがで
きる。図10は図9に示す構成を用いて非線形テーブル
を作成するためのフローチャートである。
【0034】図10において、まず、ステップSD1に
おいて、フラグFLAGが「0」であるか否かを判断す
る。そして、ステップSD1における判断結果が「YE
S」の場合には、ステップSD2に進む。ステップSD
2では変数Aが与えられる。次に、ステップSD3へ進
み、変数xに「1」、変数yに「0」を格納するととも
に、アドレス変数adrsに非線形テーブルの書き込み
スタートアドレスSTADを格納する。
【0035】上記ステップSD1における判断結果が
「NO」の場合、または上記ステップSD3が終了する
と、ステップSD4へ進み、x−A*x+A*yなる演
算によって得られる値を変数yに格納する。そして、ス
テップSD5において、非線形テーブルのアドレス変数
adrsによって示されるアドレスに上記変数yの値を
書込む。そして、ステップSD6において、フラグFL
AGおよびアドレス変数adrsをインクリメントす
る。
【0036】上述したステップSD4〜SD6の処理は
1DACサイクル中に繰り返し実行される。1DACサ
イクル期間における処理が終了すると、次に、ステップ
SD7へ進み、フラグFLAGが非線形テーブルのサイ
ズを示す変数DTNOより小さいか否かを判断する。そ
して、このステップSD7における判断結果が「NO」
の場合には、ステップSD8へ進み、所定の演算が終了
したことを示すために、フラグFLAGを「0」にして
図5と同様のメインルーチンへ戻る。
【0037】一方、上記ステップSD7における判断結
果が「YES」の場合には、所定の演算がまだ終了して
いないので、フラグFLAGをクリアすることなく、図
5と同様のメインルーチンへ戻る。したがって、この場
合には、再び、当該ルーチンへ処理が移った際、ステッ
プS2およびS3によって得られた値(A、x)に
基づいて、前回の処理の続きを行なう。この処理は上述
したステップSD7における判断結果が「NO」になる
まで行なわれる。以上の演算処理によって、図9に示す
アルゴリズムによる非線形テーブルの書き換えが実現さ
れる。
【0038】なお、数式4に示す目的とする関数は、あ
る時定数で「1」に近づく関数であるから、ある次数の
ローパスフィルタのステップの応答であれば、どのよう
なものでも用いることができる。また、関数の傾きはロ
ーパスフィルタの時定数を変化させることにより変化さ
せることができる。
【0039】(II)シングルリードアルゴリズムのス
リット関数 ここでは、管楽器の発音機構におけるスリット関数をシ
ミュレートするためのアルゴリズムについて説明する。
スリット関数は前述した図24(b)に示す関数である
が、これを図11に示すように、出力が0.5となるx
0を中心に左右に分けて考えると、x0から右では「1」
に漸近し、x0から左では「0」に漸近していると考え
られる。
【0040】そこで、上記図11のスリット関数を原点
対称に移動して書き直したのが図12である。この図に
おいて、第1象限は(I)の例で見た打弦の非線形と全
く同じものである。また、第3象限は第1象限に対して
原点中心に点対称である。したがって、図4に示す級数
展開による方法もしくは図7または図9に示すアルゴリ
ズム・ブロックによる漸化式を用いる方法により、この
非線形テーブルを作成することができる。このうち、一
例として図9に示すステップ応答を実現する非線形テー
ブルを作成するためのフローチャートを図13に示す。
【0041】図13において、まず、ステップSE1に
おいて、フラグFLAGが「0」であるか否かを判断す
る。そして、ステップSE1における判断結果が「YE
S」の場合には、ステップSE2へ進む。ステップSE
2では変数Aが与えられる。次に、ステップSE3へ進
み、変数xに初期値として「1」、変数yに初期値とし
て「0」を格納するとともに、アドレス変数adrsに
非線形テーブルの書き込みスタートアドレスSTADを
格納する。
【0042】上記ステップSE1における判断結果が
「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を
インクリメントする。
【0043】上述したステップSE4〜SE9の処理は
1DACサイクル中に繰り返し実行される。それによっ
て、図11に示すようなADRx0+STADを中心に
前後に各々、Z2,Z1の計算結果が並んだテーブルがで
きる。そして、1DACサイクル期間における処理が終
了すると、次に、ステップSE10へ進み、フラグFL
AGが非線形テーブルの1/2のサイズを示す変数DT
NOより小さいか否かを判断する。そして、このステッ
プSE10における判断結果が「NO」の場合には、ス
テップSE11へ進み、所定の演算が終了したことを示
すために、フラグFLAGを「0」にして図5と同様の
メインルーチンへ戻る。
【0044】一方、上記ステップSE10における判断
結果が「YES」の場合には、所定の演算がまだ終了し
ていないので、フラグFLAGをクリアすることなく、
図5と同様のメインルーチンへ戻る。したがって、この
場合には、再び、当該ルーチンへ処理が移った際、ステ
ップSE2およびSE3によって得られた値(A、x)
に基づいて、前回の処理の続きを行なう。この処理は上
述したステップSE10における判断結果が「NO」に
なるまで行なわれる。以上の演算処理によって、図9に
示すアルゴリズム・ブロック図と同様のステップ応答が
実現される。
【0045】(III)シングルリードアルゴリズムのグ
ラハム関数 ここでは、管楽器の発音機構におけるグラハム関数をシ
ミュレートするためのアルゴリズムについて説明する。
グラハム関数は前述した数式2に示す関数である。この
グラハム関数は図24(a)に示すように、原点に対し
て点対称であるので、x≧0についてのみを考えると、
【数13】 と表すことができる。この数式13を実現するには、前
述したように、級数展開により作成する方法と、漸化式
により作成する方法がある。
【0046】まず、級数展開により作成する方法につい
て説明する。 非線形テーブルを級数展開により作成する方法γxを
1−yとすると、
【数14】 と表すことができる。これを級数展開し、第5項で打切
れば、
【数15】 となる。ここで、図14は数式13を級数展開すること
によって得られた数式15を演算するアルゴリズム構成
を示すブロック図である。また、図14に示す構成を用
いて非線形テーブルを作成するためのフローチャートを
図15に示す。
【0047】図15において、まず、ステップSF1に
おいて、フラグFLAGが「0」であるか否かを判断す
る。そして、ステップSF1における判断結果が「YE
S」の場合には、ステップSF2へ進む。ステップSF
2では変数γが外部のコンピュータから与えられる。次
に、ステップSF3へ進み、非線形テーブルの書き込み
アドレスを示すアドレス変数adrsを「0」にする。
【0048】上記ステップSF1における判断結果が
「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に格納する。
【0049】次に、ステップSF6において、非線形テ
ーブルの、ADRC+adrsなる演算によって得られ
るアドレスに上記変数zの値を書き込む。なお、変数A
DRCは非線形テーブルの書き込みスタートアドレスを
示す。さらに、ステップSF7において、非線形テーブ
ルの、ADRC−adrsなる演算によって得られるア
ドレスに上記変数zの負の値、すなわち−zを書き込
む。
【0050】上述したステップSF4〜SF8の処理は
1DACサイクル中に繰り返し実行される。1DACサ
イクル期間における処理が終了すると、次に、ステップ
SF9へ進み、フラグFLAGが非線形テーブルのサイ
ズを示す変数DTNOより小さいか否かを判断する。そ
して、このステップSF9における判断結果が「NO」
の場合には、ステップSF10へ進み、所定の演算が終
了したことを示すために、フラグFLAGを「0」にし
た後、図5と同様のメインルーチンへ戻る。
【0051】一方、上記ステップSF9における判断結
果が「YES」の場合には、所定の演算がまだ終了して
いないので、フラグFLAGをクリアすることなく、図
5と同様のメインルーチンへ戻る。したがって、この場
合には、再び、当該ルーチンへ処理が移った際、ステッ
プSF2によって得られた値(γ)に基づいて前回の処
理の続きを行なう。この処理は上述したステップSF9
における判断結果が「NO」になるまで行なわれる。以
上の演算処理によって図14に示すアルゴリズムによる
非線形テーブル(グラハム関数)の書き換えが実現され
る。
【0052】次に、グラハム関数を漸化式により作成す
る方法について説明する。 非線形テーブルを漸化式を用いて作成する方法 前述した数式2を直接、漸化式で解決することは難しい
が、図24(a)に示す関数の形状と、図12とを比較
することにより、グラハム関数は図12に示すスリット
関数を演算し、これをy軸に対して軸対称に変換するこ
とにより近似できる。したがって、図7および図9に示
す構成を用いることにより、グラハム関数テーブルを作
成することができる。なお、演算処理は前述したフロー
チャートと同様であるので説明は省略する。
【0053】次に、上述した非線形テーブル以外のテー
ブルを作成する場合について説明する。 (IV)その他の非線形テーブル 以下に示す非線形関数テーブルが必要となった場合、ア
ルゴリズムに組込むべき漸化式を以下に示す。 正弦関数(テーブルサイズN) 正弦関数は次式によって表される。
【数16】 該数式16の漸化式は、
【数17】 となる。また、初期値は、
【数18】 となる。図16は、これを実現するためのアルゴリズム
構成を示すブロック図である。
【0054】余弦関数(テーブルサイズN) 余弦関数は次式によって表される。
【数19】 該数式19の漸化式は、
【数20】 となる。また、初期値は、
【数21】 となる。これを実現するためのアルゴリズム構成は、正
弦関数のブロック図と同一である。
【0055】次に、上述した正弦関数と余弦関数とを組
合せた関数を実現するための構成について説明する。 いくつかの正弦関数と余弦関数との和 複数の正弦関数と余弦関数との和は次式によって表され
る。
【数22】 該数式22の漸化式および初期値は前述した通りであ
る。この場合のブロック図を図17に示す。なお、この
場合、Ai,Bi,αi,βiを操作子にアサインし、
非線形テーブルを書き換え、音色を変えるようにしても
よい。
【0056】次に、LPF(ローパスフィルタ)を用い
た実施例について説明する。 この実施例では、図18に示すステップ応答特性を有
する2次のLPFを用いている。これによれば、そのス
テップ応答特性により前述したスリット関数が直接得ら
れる。これを組合せることによって、さまざまな形状の
スリット関数が得られる。例えば、図19に示すよう
に、3つのLPFを組合せて、それらの出力であるステ
ップ応答に重みづけをし(係数G1、G2およびG3の
変化)、加算すれば、図20に示すようなステップの応
答が得られる。上記重みづけのための係数G1、G2お
よびG3は操作子にアサインしておけば、操作子を操作
することによって音色を変えることができる。
【0057】数値解析法 アルゴリズムに組込む非線形テーブルを作成するアルゴ
リズムは数値解析法でもよい。例えば、前述したグラハ
ム関数では、
【数23】 が計算できればよい。これは、
【数24】 なる漸化式によりynがxの平方根に収束する。これを
1DACサイクルに可能な回数分、演算すれば目的とす
る関数が得られる。
【0058】なお、上述した各種の実施例において、非
線形を計算するためのパラメータ(例えば、数式1の
γ)などを変化させるのは、 楽音作成の時 操作子の変化時 に行なう。上記は頻繁に発生しないので、例えば、数
10DAC期間に渡った処理においても、十分、リアル
タイムで変化する楽音として聞える。また、上記にお
いても、操作子のパラメータが送られてくるのはMID
Iなどでも数msecごとに供給される程度であるた
め、これも十分、リアルタイムで応答できる。
【0059】
【発明の効果】以上、説明したように、この発明によれ
ば、複数ステップからなるプログラムを所定周期毎に繰
り返し実行することによって楽音合成に必要な演算を繰
り返し行う際に、各周期に実行されるプログラムが、1
周期毎に完結する演算であって、非線形関数を用いた非
線形変換処理および遅延処理を閉ループ接続したアルゴ
リズムにより楽音信号を合成する第1の演算のための固
定ステップと、複数周期で完結するように各周期に分散
されて行われる演算であって、前記非線形関数の算出指
示に応答して、前記非線形関数を算出する第2の演算の
ための固定ステップとからなるようにしたので、非線形
関数の算出に関するプログラムが1周期内で固定ステッ
プで必ず実行される。したがって、演奏状況が変化して
も、非線形関数の算出を行うのに要する時間は長くなら
ない。これにより、算出指示に応答して非線形関数の算
出を素早く行うことができ、楽音の発生開始から実際に
楽音が発生されるまでの時間を短くすることができる。
またこれにより、物理音源モデルにおいて、非線形関数
の形状をリアルタイムで変化させ、楽音合成における要
素を増加させることができ、また、操作子に非線形関数
の算出指示をアサインし多様な楽音を合成できるという
利点が得られる。
【図面の簡単な説明】
【図1】 本発明の一実施例の構成を示すブロック図で
ある。
【図2】 サブインストラクションで発生したEGの信
号を補間している様子を示す波形図である。
【図3】 図1に示すDSPのインストラクションの実
行を示す一例である。
【図4】 非線形テーブルを級数展開(数式4)により
作成するアルゴリズム構成を示すブロック図である。
【図5】 図4に示すアルゴリズム構成を実現するため
のDSPの1DACサイクル中に実行される処理を示す
フローチャートである。
【図6】 図4に示すアルゴリズム構成を実現するため
の詳細な処理を示すフローチャートである。
【図7】 非線形テーブルを漸化式(数式9および数式
10)により作成するアルゴリズム構成を示すブロック
図である。
【図8】 図7に示すアルゴリズム構成による非線形テ
ーブルを作成するためのフローチャートである。
【図9】 別のアルゴリズム構成を示すブロック図であ
る。
【図10】 図9に示す構成を用いて非線形テーブルを
作成するためのフローチャートである。
【図11】 管楽器の発音機構におけるスリット関数を
示す波形図である。
【図12】 図11に示すスリット関数を(x0,0.
5)を中心に書き直した波形図である。
【図13】 図9に示すステップ応答を実現する非線形
テーブルを作成するためのフローチャートである。
【図14】 非線形テーブル(シングルリードアルゴリ
ズムのグラハム関数)を級数展開(数式15)により作
成するアルゴリズム構成を示すブロック図である。
【図15】 図14に示す構成を用いて非線形テーブル
を作成するためのフローチャートである。
【図16】 正弦関数を実現するためのアルゴリズム構
成を示すブロック図である。
【図17】 複数の正弦関数と余弦関数との和を実現す
るためのアルゴリズム構成を示すブロック図である。
【図18】 ステップ応答特性を有する2次のLPFの
出力波形図である。
【図19】 図18に示すステップ応答特性を有する2
次のLPFを用いたスリット関数を得るためのアルゴリ
ズム構成を示すブロック図である。
【図20】 図19に示すアルゴリズム構成による出力
波形図である。
【図21】 従来の楽音合成回路の1つであるハンマー
打弦アルゴリズム構成を示すブロック図である。
【図22】 図21に示す非線形テーブル5(非線形関
数)の出力波形図である。
【図23】 従来の楽音合成装置の1つであるシングル
リードの非線形部のアルゴリズムを示すブロック図であ
る。
【図24】 (a)は図23に示すグラハム関数を示す
波形図であり、(b)はスリット関数を示す波形図であ
る。
【符号の説明】
1……ウエーブガイド(ループ回路)、2……励振回路
(励振信号生成手段)、5……非線形テーブル、20…
…DSP(演算回路)、21……サブ用のレジスタ、2
2……メイン用のレジスタ、25……テンポラリレジス
タ、26……メイン用のアキュムレータ、27……サブ
用のアキュムレータ、28……レジスタ、29……補間
器。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G10H 1/00 - 7/12

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数ステップからなるプログラムを所定
    周期毎に繰り返し実行することによって楽音合成に必要
    な演算を繰り返し行う演算手段を備えた楽音合成装置
    あって、各周期に実行されるプログラムが、 1周期毎に完結する演算であって、非線形関数を用いた
    非線形変換処理および遅延処理を閉ループ接続したアル
    ゴリズムにより楽音信号を合成する第1の演算のための
    固定ステップと、 複数周期で完結するように各周期に分散されて行われる
    演算であって、前記非線形関数の算出指示に応答して、
    前記非線形関数を算出する第2の演算のための固定ステ
    ップとからなることを特徴とする楽音合成装置。
JP4250184A 1992-09-18 1992-09-18 楽音合成装置 Expired - Lifetime JP2768168B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 ヤマハ株式会社 楽音信号発生装置

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