特許第6028844号(P6028844)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヤマハ株式会社の特許一覧

<>
  • 特許6028844-楽音合成装置及びプログラム 図000002
  • 特許6028844-楽音合成装置及びプログラム 図000003
  • 特許6028844-楽音合成装置及びプログラム 図000004
  • 特許6028844-楽音合成装置及びプログラム 図000005
  • 特許6028844-楽音合成装置及びプログラム 図000006
  • 特許6028844-楽音合成装置及びプログラム 図000007
  • 特許6028844-楽音合成装置及びプログラム 図000008
  • 特許6028844-楽音合成装置及びプログラム 図000009
  • 特許6028844-楽音合成装置及びプログラム 図000010
  • 特許6028844-楽音合成装置及びプログラム 図000011
  • 特許6028844-楽音合成装置及びプログラム 図000012
  • 特許6028844-楽音合成装置及びプログラム 図000013
  • 特許6028844-楽音合成装置及びプログラム 図000014
  • 特許6028844-楽音合成装置及びプログラム 図000015
  • 特許6028844-楽音合成装置及びプログラム 図000016
  • 特許6028844-楽音合成装置及びプログラム 図000017
  • 特許6028844-楽音合成装置及びプログラム 図000018
  • 特許6028844-楽音合成装置及びプログラム 図000019
  • 特許6028844-楽音合成装置及びプログラム 図000020
  • 特許6028844-楽音合成装置及びプログラム 図000021
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6028844
(24)【登録日】2016年10月28日
(45)【発行日】2016年11月24日
(54)【発明の名称】楽音合成装置及びプログラム
(51)【国際特許分類】
   G10H 7/02 20060101AFI20161114BHJP
   G10H 1/08 20060101ALI20161114BHJP
【FI】
   G10H7/00 521S
   G10H1/08
【請求項の数】4
【全頁数】28
(21)【出願番号】特願2015-205646(P2015-205646)
(22)【出願日】2015年10月19日
(62)【分割の表示】特願2012-12399(P2012-12399)の分割
【原出願日】2012年1月24日
(65)【公開番号】特開2016-40615(P2016-40615A)
(43)【公開日】2016年3月24日
【審査請求日】2015年10月27日
(73)【特許権者】
【識別番号】000004075
【氏名又は名称】ヤマハ株式会社
(74)【代理人】
【識別番号】100077539
【弁理士】
【氏名又は名称】飯塚 義仁
(74)【代理人】
【識別番号】100125265
【弁理士】
【氏名又は名称】貝塚 亮平
(72)【発明者】
【氏名】柿下 正尋
【審査官】 大野 弘
(56)【参考文献】
【文献】 特開平05−100669(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10H 7/02
G10H 1/08
(57)【特許請求の範囲】
【請求項1】
それぞれがノートに対応した複数の異なる音高の楽音波形を同時に生成する楽音生成手段と、
各ノートに対応する楽音波形の倍音構造を記憶した倍音構造データベースから、前記複数の異なる音高の楽音波形のそれぞれの倍音構造を示す情報を取得する手段と、
前記取得した倍音構造を示す情報に基づき、前記生成する複数の楽音波形それぞれを構成する倍音のうち周波数が近接する複数の倍音を含んでなる任意の帯域を1乃至複数特定する帯域特定手段と、
前記生成する複数の楽音波形それぞれを構成する倍音のうち、前記特定された1乃至複数の帯域それぞれに含まれる各倍音の音量レベルを減衰するレベル調整手段と
を備える楽音合成装置。
【請求項2】
前記レベル調整手段は、前記特定された帯域毎に、該帯域に含まれる倍音の個数と、該帯域の帯域幅と、該帯域内において周波数が近接する前記倍音間の周波数差とに基づき、減衰する音量レベルを決定する請求項1に記載の楽音合成装置。
【請求項3】
前記楽音生成手段は、前記複数の異なる音高の楽音波形をそれぞれ非周期成分からなるアタック部の楽音波形と周期成分からなるディケイ部の楽音波形とに分けて生成してなり、
前記帯域特定手段は、前記生成した複数のディケイ部の楽音波形それぞれを構成する倍音のうち周波数が近接する複数の倍音を含んでなる任意の帯域を1乃至複数特定し、
前記レベル調整手段は、前記生成した複数のディケイ部の楽音波形それぞれを構成する倍音のうち、前記特定した1乃至複数の帯域それぞれに含まれる各倍音の音量レベルを減少することを特徴とする請求項1又は2に記載の楽音合成装置。
【請求項4】
コンピュータに、
それぞれがノートに対応した複数の異なる音高の楽音波形を同時に生成する手順と、
各ノートに対応する楽音波形の倍音構造を記憶した倍音構造データベースから、前記複数の異なる音高の楽音波形のそれぞれの倍音構造を示す情報を取得する手順と、
前記取得した倍音構造を示す情報に基づき、前記生成する複数の楽音波形それぞれを構成する倍音のうち周波数が近接する複数の倍音を含んでなる任意の帯域を1乃至複数特定する手順と、
前記生成する複数の楽音波形それぞれを構成する倍音のうち、前記特定された1乃至複数の帯域それぞれに含まれる各倍音の音量レベルを減少する手順と
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、和音などの複数の異なる音高を含んでなる楽音波形を合成する楽音合成装置及びプログラムに関する。特に、ピアノやギター等の弦を有する自然楽器の楽器音を模した楽音波形を、弦の連成振動による影響を加味して合成する技術に関する。
【背景技術】
【0002】
従来から、波形メモリにPCM(パルス符号変調)又はDPCM(差分PCM)又はADPCM(適応差分PCM)等の任意の符号化方式で符号化した波形サンプルデータ(以下、単に波形データと呼ぶ)を予め記憶しておき、これを所望のピッチに対応して読み出すことにより楽音波形を合成する、所謂「波形メモリ読み出し」方式による楽音合成装置が知られている。また、下記に示す特許文献1には正弦波合成方式による楽音発生装置において、例えば和音のような複数ノートに対応した複数の異なる音高の楽音を同時に発音させる場合に、前記異なる音高の各楽音の倍音構成の内、周波数が近接している倍音の周波数を基準とする所定の周波数に近づけるように修正して楽音波形を合成することが記載されている。
【0003】
ところで、「波形メモリ読み出し」方式の従来装置において和音を発音するための楽音波形は、例えば自然楽器のピアノから1鍵ごとの操作に応じた出音にあわせてサンプリングされた多数の波形データの中から、ユーザにより打鍵された複数の和音構成音に対応する複数の波形データを同時に読み出して和音構成音毎に単音の楽音波形を合成し、さらにこれら和音構成音毎に合成された単音の楽音波形を加算することにより生成される。
【0004】
しかしながら、こうして生成される楽音波形に基づき発音される和音は、どちらかといえば和音構成音が互いに調和しておらずそれぞれが単独でガチャガチャとやかましく響きあっているだけの印象をユーザに対し与え得るものと言え、和音構成音が互いに調和しすっきりと響きわたる印象をユーザに対し与え得る自然楽器のピアノから発せられるような美しい和音には程遠いものであった。
【0005】
上記のように、従来装置において和音のような複数の異なる音高の楽音を含んでなる楽音波形を生成すると、自然楽器のピアノから発せられる和音とは異なる印象をユーザに与え得る楽音が発音される。この要因としては、上記楽音合成装置では、自然楽器のピアノにおいて複数の鍵が同時に打鍵された場合に生じる「連成振動」による楽音への影響を何ら加味することなく、ただ単に各鍵毎にサンプリングされた波形データから個別に合成された複数の楽音波形を加算しているに過ぎないと考えられるからである。
【0006】
下記に示す非特許文献1には、ピアノの1つの鍵を形成している複数弦の連成振動について記述されている。これによると、自然楽器のピアノは1つの鍵の打鍵に従って複数の弦(発生する楽音のノートによって異なるが2弦乃至3弦など)が駒により同時に振動されることによって単音の楽音を発するが、ほぼ同じではあるが完全には一致していない周波数にそれぞれチューニングされたこれら複数の弦が駒を介して互いに影響し合うことで、各弦の振動に伴って発生される各周波数が互いに相寄るとともに、打弦直後から始まる弦の周期的振動部分(この明細書ではディケイ部と呼ぶ)のうち比較的に音量の大きい部分(この明細書では打音又は打音部分と呼ぶ)が早く減衰すること、所謂「連成振動」を生じることが記載されている。
【0007】
図20に、「連成振動」が生じている場合に見られる楽音上の特徴を反映した楽音波形の一例を示す。この図20から「連成振動」が生じている場合の楽音波形は、「連成振動」が生じていない場合の楽音波形(図中において概形を点線で示す)と比べると楽音波形の音量レベル(振幅)が全体的に減少すること、特に波形合成開始直後からしばらく続く音量レベルが大きい打音部分が該打音部分に後続する音量レベルの小さい楽音波形の一部分(余韻部分と呼ぶ)よりも相対的により大きな割合で減少していることが理解できる。
【0008】
本願発明人は、上記した1つの鍵において複数の弦が連成振動することによって楽音波形の打音部分が減衰することに鑑みて、更に異なる鍵に対応付けられた弦の倍音どうしも連成振動することに伴って複数の周波数が相寄ったり楽音波形のうち打音部分が早く減衰したりするので、自然楽器のピアノはすっきりと響きわたる非常に美しい和音を発音することができるとの結論を導出するに至った。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平07-319467号公報
【非特許文献】
【0010】
【非特許文献1】ウェインリーチ,G."2.ピアノの弦の物理学・・・・・・楽器の科学.日経サイエンス社,1987,p.21-32
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかし、従来の装置では例えば「波形メモリ読み出し」方式において、例えば自然楽器のピアノの和音のようにすっきりと美しく響きわたり互いの音が調和している印象をユーザに与え得る、異なる鍵に対応付けられた1乃至複数の弦の倍音どうしによる連成振動を再現しての複数の音高からなる楽音波形を合成することは困難である、という問題があった。すなわち、上述の特許文献1に示された従来装置は、単に倍音の周波数のみを修正するだけのものであることから、上述したような異なる鍵に対応付けられた弦の倍音どうしが連成振動することに伴う複数の周波数が相寄ることを模すことはできるが、打音部分が早く減衰することを模すことに関しては何らの考慮もなされていないことによる。上述した特許文献1に記載された従来装置はそもそも正弦波合成方式であって「波形メモリ読み出し」方式の装置に比べると楽音合成のための構造が複雑であり、打音が早く減衰することを模すための構成を付加するのは非常に困難であること、また例えそうした構成を付加できるとしても装置が複雑かつ大型化してしまいさらに高価なものとなるので都合が悪い。
【0012】
本発明は上述の点に鑑みてなされたもので、個々の演奏操作子(例えば鍵など)の操作に伴って発生する楽音を構成する複数の倍音の周波数が相寄ったり楽音波形の打音部分が早く減衰したりする所謂「弦の連成振動」(以下では、単に連成振動と記す)を模して、複数の異なる音高の楽音を含んでなる楽音波形を合成することのできるようにした楽音合成装置及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【0013】
本発明に係る楽音合成装置は、それぞれがノートに対応した複数の異なる音高の楽音波形を同時に生成する楽音生成手段と、各ノートに対応する楽音波形の倍音構造を記憶した倍音構造データベースから、前記複数の異なる音高の楽音波形のそれぞれの倍音構造を示す情報を取得する手段と、前記取得した倍音構造を示す情報に基づき、前記生成する複数の楽音波形それぞれを構成する倍音のうち周波数が近接する複数の倍音を含んでなる任意の帯域を1乃至複数特定する帯域特定手段と、前記生成する複数の楽音波形それぞれを構成する倍音のうち、前記特定された1乃至複数の帯域それぞれに含まれる各倍音の音量レベルを減衰するレベル調整手段とを備える。
【0014】
本発明によると、複数のノート毎に各ノートに対応した音高の楽音波形を同時に複数生成する。各ノートに対応する楽音波形の倍音構造を記憶した倍音構造データベースから、前記複数の異なる音高の楽音波形のそれぞれの倍音構造を示す情報を取得し、該取得した倍音構造を示す情報に基づき、前記生成する複数の楽音波形それぞれを構成する倍音のうち周波数が近接する倍音を含んでなる任意の1乃至複数の帯域を特定する。この特定された1乃至複数の帯域に基づいて、前記生成する複数の楽音波形それぞれを構成する倍音のうち当該帯域それぞれに含まれる各倍音つまりはその周波数が近接している各倍音に関して、その音量レベルを減少する。すなわち、ノートに対応した複数の異なる音高の楽音波形にわたって、それらの倍音構成のうち特定の帯域に属する倍音(言い換えるならば、互いに近接した連成振動し得る周波数成分)のみに関してその音量レベルを減少する。こうすることによって、複数ノートに対応した複数の異なる音高の楽音を含んでなる楽音波形を合成する場合に、「連成振動」が生じている場合に見られる楽音上の特徴を反映した楽音波形つまりは「連成振動」が生じていない場合に比べて音量レベルの減少した特徴ある楽音波形を生成することができるようになる。
【0015】
また、各ノートに対応する楽音波形の倍音構造を記憶した倍音構造データベースから、前記複数の異なる音高の楽音波形のそれぞれの倍音構造を示す情報を取得する構成であるから、生成する複数の楽音波形の倍音構造を簡単かつ速やかに把握することができる。また、単に特定倍音の音量レベル制御を行うだけで「連成振動」を反映した複数ノートに対応した複数の音高の楽音を含んでなる楽音波形を合成できることから、それを実現するための構成が非常に簡易なもので済み、従って装置が複雑かつ大型化してしまうことがなくまた高価にならない、という利点もある。
【0016】
本発明は装置の発明として構成し実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはDSP等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【発明の効果】
【0017】
本発明によれば、ノートに対応した複数の異なる音高の楽音波形にわたって、それらの倍音構成のうち周波数が近接した特定の倍音のみに関してその音量レベルを調整するようにしたことから、音量レベルが減少するといった「連成振動」が生じている場合に見られる楽音上の特徴を模した複数ノートに対応した複数の異なる音高の楽音を含んでなる楽音波形を合成することができるようになる、という効果が得られる。
また、弦楽器の楽音、特にピアノ音の楽音波形を生成する場合には「連成振動」を模すことにより実際のピアノ音のような楽音上の特徴を有した楽音波形を生成できることとなるのでこれだけでも効果的であるが、さらには弦楽器以外の音や人工的な音であっても「連成振動」を模すことによりそれらの音においても和音をすっきりと響き渡らせ得るという、従来見られなかった新しい効果が得られる。
【図面の簡単な説明】
【0018】
図1】楽音合成装置の全体構成の一実施例を示すハード構成ブロック図である。
図2】楽音合成機能の第1実施例の概要を説明するための機能ブロック図である。
図3】ノートリスト、部分音リスト、帯域リストの各データ構成の一例を示す概念図である。
図4】倍音構造データベースのデータ構成の一例を示す概念図である。
図5】楽音合成処理の一実施例を示すフローチャートである。
図6】ノートオン処理の一実施例を示すフローチャートである。
図7】ノートオフ処理の一実施例を示すフローチャートである。
図8】アタック波形、ディケイ波形、アタック波形とディケイ波形とを加算して合成される楽音波形の一例を示す波形図である。
図9】楽音合成機能の第2変形例を示す機能ブロック図である。
図10】楽音合成機能の第3変形例を示す機能ブロック図である。
図11】楽音合成機能の第2実施例(第4変形例)の概要を説明するための機能ブロック図である。
図12】レベル修正部の一例を示す機能ブロック図である。
図13】楽音合成機能の第5変形例を示す機能ブロック図である。
図14】楽音合成機能の第4及び第5変形例を実現するノートオン処理の一部を示すフローチャートである。
図15】楽音合成機能の第4及び第5変形例を実現するノートオフ処理の一部を示すフローチャートである。
図16】楽音合成機能の第6変形例を示す機能ブロック図である。
図17】楽音合成機能の第7変形例を示す機能ブロック図である。
図18】楽音合成機能の第6及び第7変形例を実現するノートオン処理の一部を示すフローチャートである。
図19】楽音合成機能の第6及び第7変形例を実現するノートオフ処理の一部を示すフローチャートである。
図20】連成振動が生じている場合に見られる楽音上の特徴を反映した楽音波形の一例を示す波形図である。
【発明を実施するための形態】
【0019】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【0020】
図1は、この発明に係る楽音合成装置を適用した電子楽器のハードウェア構成例を示すブロック図である。ここに示す電子楽器は「波形メモリ読み出し」方式による楽音合成を行うものであって、演奏者自身による演奏操作子4の操作に伴い随時に作成される演奏情報(ノートオンイベントやノートオフイベントなどのイベントデータ、ダイナミクス情報やピッチベンド情報などの各種コントロールデータを含む)に基づいて電子的に楽音を発生する、あるいは自動演奏処理等の実行に伴い順次に供給される予め作成済みの自動演奏データ内に含まれる演奏情報に基づいて自動的かつ電子的に楽音を発生する楽音合成機能を有する。
【0021】
この楽音合成機能は、演奏情報に基づき波形メモリに記憶された多数の波形サンプルデータ(波形データ)の中から使用すべき波形データの選択が行われて、該選択された波形データに従って楽音波形を合成するが、本実施形態では「連成振動」による影響を加味して楽音波形の合成が行われるようになっている。こうした楽音合成機能については後述する。なお、この実施例に示す電子楽器はここに示す以外のハードウェアを有する場合もあるが、ここでは必要最小限の資源を用いた場合について説明する。
【0022】
図1に示す電子楽器はコンピュータを用いて構成されており、そこにおいて、上記の楽音合成機能を実現する楽音合成処理(後述する図5参照)は、コンピュータが各々の処理を実現する所定のプログラム(ソフトウェア)を実行することにより実施される。勿論、この処理はコンピュータソフトウェアの形態に限らず、DSP(ディジタル・シグナル・プロセッサ)によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウェア装置の形態で実施してもよい。
【0023】
本実施例に示す電子楽器は、マイクロプロセッサユニット(CPU)1、リードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3からなるマイクロコンピュータの制御の下に各種の処理が実行されるようになっている。CPU1は、この電子楽器全体の動作を制御するものである。このCPU1に対して、通信バス1D(例えば、データ及びアドレスバスなど)を介してROM2、RAM3、演奏操作子4、表示器5、設定操作子6、音源7、記憶装置8、通信インタフェース9がそれぞれ接続されている。
【0024】
ROM2は、CPU1により実行される各種プログラム、あるいは所謂波形メモリとして例えば自然楽器のピアノから一鍵ごとの出音にあわせてサンプリングされた波形データなどの様々な楽器音に対応した波形データ等を格納するものである。RAM3は、CPU1が所定のプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリ等として使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。
【0025】
演奏操作子4は、楽音のノートを選択するための複数の鍵を備えた例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、例えば押鍵速度あるいは離鍵速度を表わすベロシティなどを検出することができる。この演奏操作子4は、演奏者自身の手弾きによる楽音のマニュアル演奏のために使用できるのは勿論のこと、予め用意された自動演奏データを選択するなどの入力手段として使用することもできる。勿論、演奏操作子4は鍵盤等の形態に限らず、楽音のノートを選択するための弦を備えたネック等のような形態のものなど、どのようなものであってもよいことは言うまでもない。表示器5は、例えば液晶表示パネル(LCD)やCRT等から構成されるディスプレイであって、各種画面を表示するのは勿論のこと、演奏の際に使用する音色・効果などの各種演奏パラメータの設定状態や波形データ一覧あるいは自動演奏データ一覧などの各種情報、さらにはCPU1の制御状態などを表示することもできる。演奏者は該表示器5に表示されるこれらの各種情報を参照することで、各種演奏パラメータの設定や自動演奏データの選択などを容易に行うことができる。
【0026】
設定操作子(スイッチ等)6は、例えば自動演奏対象とする自動演奏データを選択する選択スイッチ、演奏の際に使用する音色・効果などの各種演奏パラメータを設定する設定スイッチ等、各種の操作子を含んで構成される。勿論、音高、音色、効果等を選択・設定・制御するために数値データ入力用のテンキーや文字データ入力用のキーボード、あるいは表示器5に表示された各種画面の位置を設定するポインタを操作するマウスなどの各種操作子を含んでいてもよい。
【0027】
音源7は複数のチャンネルで楽音信号の同時発生が可能であり、通信バス1Dを経由して与えられた、ユーザによる演奏操作子4の操作に応じて発生される演奏情報及び/又は任意の自動演奏データの再生に応じて発生される演奏情報に基づいて楽音波形を合成して楽音信号を生成する。ここに示す電子楽器においては、例えば波形データとして、単音の楽音波形全体を波形メモリに記憶する、又は単音の楽音波形を非周期成分からなるアタック部の楽音波形と周期成分からなるディケイ部の楽音波形とに分割してそれぞれを波形メモリに記憶しておき、演奏情報に対応する波形データが波形メモリから読み出されると、該読み出された波形データはバスラインを介して音源7に与えられて適宜バッファ記憶される。そして、音源7ではバッファ記憶された波形データを所定の出力サンプリング周波数に従い出力することで楽音波形を合成し、これに後述する連成振動を加味するための制御処理を施す。該制御処理された楽音波形は、サウンドシステム7Aに与えられて発音される。サウンドシステム7Aは、例えばDA変換器、アンプ、スピーカ等を有してなり、DA変換器によりアナログ波形に変換された前記楽音波形をアンプにより増幅しスピーカを介して放音する。
【0028】
記憶装置8は、上記したような波形データや自動演奏データなどの各種データ、CPU1により実行される各種制御プログラム等を記憶する。前記ROM2に制御プログラムが記憶されていない場合、この記憶装置8(例えばハードディスク)に制御プログラムを記憶させておき、それを前記RAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、記憶装置8はハードディスク(HD)に限られず、フレキシブルディスク(FD)、コンパクトディスク(CD)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の着脱自在な様々な形態の外部記録媒体を利用する記憶装置であってもよい。あるいは、半導体メモリなどであってもよい。
【0029】
通信インタフェース(I/F)9は、本電子楽器と図示しない外部機器との間で制御プログラムや上記した各種データなどの各種情報を送受信するためのインタフェースである。この通信インタフェース9は、例えばMIDIインタフェース,LAN,インターネット,電話回線等であってよく、また有線あるいは無線のものいずれかでなく双方を具えていてよい。
【0030】
図1に示した電子楽器においても、従来知られている装置のように、演奏者による演奏操作子4の操作に伴い発生される演奏情報、あるいは予め用意されたSMF(Standard MIDI File)形式の自動演奏データ等に含まれる演奏情報に基づいて楽音波形を生成する楽音合成機能を有する。ただし、複数の異なる音高の楽音を含んでなる楽音波形を合成する場合には、単に波形メモリに記憶済みである複数の波形データを所定の出力サンプリング周波数に従い同時に出力しこれらを加算することにより複数の異なる音高の楽音を含んでなる楽音波形を合成することだけに留まらずに、後述の連成振動を加味するための信号処理を施すことにより連成振動を再現した複数の異なる音高の楽音を含んでなる楽音波形を合成するようにしている。以下、説明する。
【0031】
(第1実施例)
図2は、楽音合成機能の第1実施例の概要を説明するための機能ブロック図である。図中の矢印はデータの流れを表す。鍵盤4(演奏操作子)はユーザの演奏操作に応じて、ノートオンイベントやノートオフイベントなどの演奏情報を音源部A及び判定部Dに対し供給する。判定部Dは、CPU1により実現される1つの機能である。ノートオンイベントやノートオフイベントなどの演奏情報には、ユーザが操作した鍵に予め対応付けられている音高を表すノート番号(ノートナンバ)や、押鍵速度あるいは離鍵速度を表わすベロシティ情報などが含まれている。
【0032】
なお、ここでは演奏操作子である鍵盤4の操作に応じて演奏情報を供給する例を挙げたがこれに限らず、例えばCPU1により実現され得る自動演奏(シーケンサ)機能に応じて予め作成済みの自動演奏データ内に含まれる演奏情報を順次に供給するようにしてもよいし、あるいは外部機器(図示せず)から通信インタフェース9を経由して自動演奏データひいては演奏情報を順次に供給するようにしてもよい。また、演奏操作子の1つであるダンパーペダルを踏み込むとノートオフイベントの発生後も発音が持続し、その後ダンパーペダルの踏み込みを止めることによってノートオフイベントの発生相当の処理がなされるが、ここではこうしたダンパーペダル操作による処理については説明を省略する。
【0033】
判定部Dは、鍵盤4からノートオンイベントあるいはノートオフイベントを受け取ると、RAM3上に一時記憶されるノートリスト、部分音リスト、帯域リストを更新する。図3に、ノートリスト、部分音リスト、帯域リストそれぞれのデータ構成を示す。
【0034】
図3(A)はノートリストのデータ構成を示し、ノートリストは音源部Aの各発音チャンネルA1で合成する楽音のノートをノート番号等によって記憶/管理する。このノートリストには、ノートオンイベントの受信に応じて新規に楽音波形の合成を開始する楽音のノートとしてノートオンイベントに含まれるノート番号が追加される一方で、ノートオフイベントの受信に応じて楽音波形の合成を止める楽音のノートとしてノートオフイベントに含まれるノート番号が削除される。ここでは、ノート番号「45」(ノートA2)、ノート番号「48」(ノートC3)、ノート番号「55」(ノートG3)それぞれに対応した3つの異なる音高の楽音を合成する場合におけるノートリストの例を示した。
【0035】
図3(B)は部分音リストのデータ構成を示し、部分音リストは合成する楽音波形を構成する基音及び倍音の各周波数(Hz)と、それら基音及び倍音毎に予め決められている音圧割合(db)とを記憶/管理する。上述のノートリストに新規に楽音のノート(ノート番号)が追加されるたびに、追加されたノートを元に後述する倍音構造データベース(図4参照)が参照され、部分音リストに新たに合成開始する楽音波形を構成する基音及び倍音それぞれの周波数と音圧割合とが新たに追加される。
【0036】
一方、上述のノートリストから楽音のノート(ノート番号)が削除されるたびに、削除されたノートを元に倍音構造データベースが参照されて、この部分音リストから合成を止めた楽音波形に含まれる基音及び倍音それぞれの周波数と音圧割合とが削除される。ここでは、ノート番号「45」(ノートA2)、ノート番号「48」(ノートC3)、ノート番号「55」(ノートG3)の3つの異なる楽音波形それぞれを構成する基音及び2次〜8次までの各倍音の周波数(Hz)と音圧割合(db)とを記憶/管理している場合の部分音リストを例に示したが、これらの基音及び倍音を周波数領域に示すとすると、図3(D)のようになる。
【0037】
ここで、上述の部分音リストを作成する際に参照する倍音構造データベースのデータ構成を図4に示す。倍音構造データベースは、波形メモリに記憶されている例えばピアノの1つの鍵(演奏操作子)の操作に応じて発生される元の楽音波形(波形メモリに記憶済みの波形データに対応)毎に、該楽音波形を構成する基音及び倍音の各周波数と共に音圧割合を予め記憶してあるデータベースである。
【0038】
図4に示すように、当該データベースはノート番号を検索キーとして、そのノート番号で一意に決まる波形メモリに記憶済みの波形データに対応する元の楽音波形を構成している基音を含む倍音構造を属性情報に持つ。楽音波形を構成する倍音構造として、基音及び各倍音毎に音量割合(db)と周波数(Hz)とが記憶されている。音量割合は、ノート番号で一意に決まる元の楽音波形の所定の時間区間(例えば楽音波形の最初から最後まで、あるいは倍音が十分成長して鳴っている波形位置の100msec後から1000msec後までなど)について、当該区間の楽音波形全体の音量と各倍音の音量との比をデシベル単位で表わしたものである。周波数は、ノート番号で一意に決まる元の楽音波形の所定の時間区間について、当該区間に含まれる楽音波形を構成している各倍音の周波数の平均値である。
【0039】
なお、これら音量割合及び周波数は、自然楽器のピアノから得た元の楽音波形を周波数分析した結果に基づいて記憶すればよい。ただし、低域であれば倍音として100個以上の倍音を含む音域もあるがこれら全ての倍音を記憶する必要はなく、データベースに記憶する属性情報としては優位な倍音すなわちある音量レベル以上の倍音に関する情報に限ってよい。例えば、図4に示した例では基音から8次倍音までの属性情報を記憶している。
なお、図4に示した例では、標準的なピアノから発生されるノート「A0〜C8」に対応する88個の異なるノートを割り当て済みの全鍵域(88鍵)にわたって楽音波形の倍音構造を記憶した例を示したがこれに限らず、ユーザによってよく弾かれる中音域の鍵域内にある楽音波形の倍音構造だけを記憶するようにしてもよい。また、倍音がほとんど聞き取れない高音域の鍵域内にある楽音波形の倍音構造は記憶しなくともよい。
【0040】
なお、図4に示した例では、波形メモリに対応する波形データが記憶されてなり、各鍵に対応して割り当てられる半音ずつノートの異なる元の楽音波形に関し、その倍音構造を全ての鍵の楽音波形について記憶した例を示した。が、場合によっては全ての鍵に対応し得る半音ずつノートの異なる波形データを波形メモリに記憶していないことがある。その場合、波形メモリには1オクターブ毎に一つだけサンプリングによって取得した任意の元の楽音波形に対応する波形データが記憶されている。そして、この任意の波形データの再生速度を元の0.75倍から1.5倍まで変えて再生することによって、1つの波形データを用いて1オクターブの異なるノートの複数の楽音波形を発生させることのできるようになっている。このような仕組みの音源である場合であっても、倍音構造データベースには波形データを元の再生速度で再生した場合に得られる楽音波形の倍音構造だけでなく、波形データを再生速度を変更して再生した場合に得られる楽音波形の倍音構造をも記憶しておくつまり半音ずつ倍音構造を記憶しておくとよい。
【0041】
あるいは、波形メモリにとびとびの音高でそれぞれが何らかのノートに対応するいくつかの単音の波形データを記憶しておく一方で、倍音構造データベースにはその波形データのいずれか1つに対して1つの倍音構造を記憶しておくようにしてもよい。この場合、指定されたノートの楽音波形を合成するときには、指定されたノートに基づき元にする波形データを特定すると共に倍音構造データベースを参照して倍音構造を特定し、特定された倍音構造のうちの基音及び各倍音の周波数を前記指定ノートに対応する所定音高と前記特定された波形データの音高との差に応じて修正するようにしてよい。
【0042】
なお、図4に示した例ではノート番号で元の楽音波形が一意に決まるものとしているが、実装によっては同じ鍵を操作して同じノート番号を発しつつも押鍵速度によって複数ある波形データのうちのいずれか1つの波形データを選択して楽音波形を合成するものもある。例えば、ノート「A2」の鍵に対して、演奏者によって強く鍵が弾かれることにより発生されるf(フォルテ)の楽音波形をサンプリングした波形データと、演奏者により弱く鍵が弾かれることにより発生されるp(ピアノ)の楽音波形をサンプリングした波形データとを別々に波形メモリに記憶しておき、押鍵速度によってf(フォルテ)の楽音波形をサンプリングした波形データかp(ピアノ)の楽音波形をサンプリングした波形データかのどちらかを選択するものがある。このような場合、倍音構造データベースにはノート番号と押鍵速度とを複合キーとして、その複合キー(ノート番号と押鍵速度)で特定される元のf(フォルテ)の楽音波形とp(ピアノ)の楽音波形それぞれの倍音構造を記憶しておくとよい。
【0043】
なお、図4に示した例では倍音構造データベースにノート番号と元の楽音波形の倍音構造とを関連付けた関係データベースとして示したが、オブジェクト指向データベースなど他の構造のデータベースであってもよい。また、データベースとして構成することなく、ノート番号と元の楽音波形の倍音構造との関連付けをモデル化して数式で表わした関数で構成してもよい。
【0044】
図3の説明に戻って、図3(C)は帯域リストのデータ構成を示しており、この帯域リストは上記した部分音リストに記憶された多数の倍音(部分音とも呼ぶ)のうち所定の帯域条件において近接しており相互に影響を及ぼし得る、所謂「連成振動」を生じ得る帯域を前記部分音リストから抽出したものと、前記各帯域での音量レベルの最大減衰量を記憶/管理する。本実施形態では、複数の倍音が所定の周波数差以下で近接しており、かつ、それら複数の倍音の音量レベルが所定値以上であることを条件に、それら倍音がなす周波数範囲を所謂「連成振動」を生じ得る帯域として抽出して帯域リストに記憶する。例えば、ある倍音の周波数が隣接する倍音の周波数とが1.0%以内で近接しており、かつ、それら倍音の少なくとも1つの音量レベルが例えば「-70dB」(所定のスレッショルド値)以上であるような場合に、これら複数の倍音がなす周波数範囲を「連成振動」を生じ得る帯域として抽出する。ここで、ノート「A2(45)」とノート「C3(48)」とノート「G3(55)」(括弧内はノート番号)に対応付けられている各鍵が押下された場合、つまりは図3(A)に示すノートリストと図3(B)に示す部分音リストが生成された場合を例にして、具体的に説明する。
【0045】
まず、倍音の周波数の近接を考慮する。例えば、図3(B)に示されるように、「A2」の7次倍音と「G3」の4次倍音とは1%以内の周波数差で近接しており、また「G3」の4次倍音と「C3」の6次倍音も1%以内の周波数差で近接している。そのため、「A2」の7次倍音と「G3」の4次倍音と「C3」の6次倍音とからなる図中において帯域3(図では丸付き数字で示す、以下同じ)で示される帯域が「連成振動」を生じる帯域の候補となる。同様に、「G3」の2次倍音と「C3」の3次倍音とからなる図中において帯域1で示される帯域も候補となるし、「C3」の5次倍音と「A2」の6次倍音とからなる図中において帯域2で示される帯域も候補となる。
【0046】
次に、候補とした帯域に含まれる各倍音の音量レベルを考慮する。ここでは少なくとも1つの倍音の音量レベルが「-70dB」以上であれば、当該倍音が含まれる帯域を「連成振動」を生じ得る帯域として抽出する。上記したように、倍音の周波数の近接を考慮した結果、図3(B)において帯域1〜3で示される各帯域が連成振動」を生じる帯域の候補として挙げられる。しかし、帯域1に関しては「G3」の2次倍音も「C3」の3次倍音も音量レベルが共に「-70dB」のスレッショルド値を下回っている。一方、帯域2と帯域3に関してはそれらの帯域に含まれる複数の倍音の少なくとも一つの音量レベルが「-70dB」のスレッショルド値以上である。したがって、帯域2と帯域3は上記条件を満たすので「連成振動」を生じ得る帯域として抽出される一方で、帯域1は上記条件を満たさないので「連成振動」を生じ得る帯域として抽出されない。
【0047】
このようにして、「連成振動」を生じ得る帯域が抽出されるので、帯域リストには抽出した帯域に含まれる複数の倍音の周波数のうち最小周波数から最大周波数までを記憶する。上記例では、図3(C)に示すように「1308.2Hz〜1320.2Hz」の帯域と「1540.4Hz〜1569.9Hz」の帯域とが「連成振動」を生じ得る帯域として帯域リストに記憶される。
なお、上記した「連成振動」を生じ得る帯域の抽出方法は一例であって他の方法であってもよい。例えば、候補として挙げられた帯域1〜3で示される各帯域のうち、各帯域に含まれる複数の倍音の音量レベルを加算した合計値が所定のスレッショルド値より大きい帯域を「連成振動」を生じ得る帯域として抽出するようにしてもよい。
【0048】
他方、帯域リストの最大減衰量は、抽出された「連成振動」を生じ得る帯域の個数とその帯域幅とによって決められる。仮に抽出された帯域に含まれる倍音の数をm(個)、帯域幅をb(Hz)、連成振動が生じる1つの条件である1%の周波数差をd(Hz)としたとき、最大減衰量L(dB)は以下に示す式1に従って算出される。
L=-3・(m-1)/ceil(b/d)・・・式1
【0049】
上記式1の意味するところを説明すると、m個の倍音は帯域幅b(Hz)の範囲において隣接する倍音同士が周波数差d(Hz)以内に散らばっていると仮定する。それら各倍音は連成振動によって、帯域幅b(Hz)の範囲内において「ceil(b/d)」個の点に引き寄せられる。1個の点に隣り合う2つの倍音が引き寄せられるとすると、その倍音を発する複数の弦において振動エネルギーが交換されるものと考え、楽音波形の打音部分(発音から間もなく生成される音量レベルの大きな周期成分)は信号レベルに応じて最大「-3dB」まで減衰する。また、1個の点に3つの倍音が引き寄せられると最大「-6dB」まで減衰し、1個の点に4つの倍音が引き寄せられると最大「-9dB」まで減衰する、・というようにして最大減衰量Lが決められる。
【0050】
上記式1による最大減衰量Lの決定は、自然楽器のピアノにおける1鍵について、連成振動によってある1つの周波数により多くの倍音が引き寄せられれば、それだけその倍音を発する複数の弦同士での大きなエネルギー交換がなされるはずであり、それ故に特に楽音波形の打音部分のエネルギーがより多くの弦から発せられる楽音波形の余韻部分へと分配されることから、打音部分がより早く減衰するのであろうという仮定に基づく。例えば、各ノート「A2」と「C3」と「G3」とがそれぞれ割り当てられた各鍵が同時に押下されたときに抽出される帯域3(図3(B)参照)については、「1540.4Hz〜1569.9Hz」の帯域にある3つの倍音(A2の7次倍音、C3の6次倍音、G3の4次倍音)が1つの点に引き寄せられるので、-6dBを最大減衰値Lに決定する。このようにして、鍵の操作に応じて図3(A)から図3(C)に示す各リストは更新される。
【0051】
なお、ノートオンイベントの受信によってノートリストに新規にノート(ノート番号)が追加されることに応じて部分音リストに新たな倍音が追加された場合に、倍音が近接する帯域が新規のノート追加前に比べて広くなることがある。そのような場合には、帯域リストにおいて「連成振動」を生じ得る帯域として抽出される複数の帯域を、1つの広い帯域に結合するように再構成してよい。一方、ノートオフイベントの受信によってノートリストから対応するノートが削除されることに応じて部分音リストから該当する倍音が削除された場合に、倍音が近接する帯域がノート削除前に比べて狭くなることがある。そのような場合には、帯域リストにおいて「連成振動」を生じ得る帯域として抽出されていた1つの帯域を、複数の狭い帯域に分割するように再構成してよい。
【0052】
図2の説明に戻って、この実施形態では、鍵盤4から複数の鍵の操作に応じて複数の演奏情報が同時に音源7に供給されると、音源7はこれらの演奏情報に含まれる異なるノート番号毎に各ノート番号によって一意に決まる波形データを波形メモリ(図示せず)から読み出し、該読み出した複数の波形データを用いて最終的には1つの楽音波形を合成し出力信号として出力する。音源7は、図2に示すように音源部Aとフィルタ部Bと制御部Cとに大きく分けることができる。音源部Aは発音チャンネル部A1を複数備えてなり、鍵盤4からのノートオンイベントデータの供給に応じて空きチャンネル(つまりは開放されている発音チャンネル部A1)の中から使用する発音チャンネル部A1を確保し、該確保した発音チャンネル部A1毎に波形メモリから読み出した波形データを用いてノートに対応する単音の楽音波形を合成する。ユーザにより同時に複数の鍵が操作された場合には、鍵盤4から供給される複数のノートイベントデータ(詳しくはノート番号)毎に発音チャンネルA1が確保されるので、該確保された複数の発音チャンネル部A1で同時に異なるノート(例えばA2,C3,G3)それぞれに対応する単音の楽音波形がそれぞれ合成される。こうした波形データを用いた単音の楽音波形合成方法は公知であるので、ここでの詳細な説明は省略する。
【0053】
各発音チャンネル部A1で合成された単音の楽音波形が加算部A2により加算されることによって、複数のノートに対応した複数の音高の楽音を含んでなる1つの楽音波形が生成される。この生成された1つの楽音波形は、フィルタ部B及び制御部Cに出力される。なお、鍵盤4から前記ノートオンイベントデータに対応するノートオフイベントデータ(つまりはノート番号が同じ)が供給された場合、音源部Aは前記ノート番号に対応した単音の楽音波形を合成している発音チャンネル部A1の楽音合成を終了して当該発音チャンネル部A1を開放する。
【0054】
フィルタ部Bは直列につながれた複数の例えばNotchフィルタB1を含んでなり、各NotchフィルタB1はそれぞれが音源部Aから出力される楽音波形のうち任意の周波数帯域の音量レベルを任意の減衰量(後述する減衰量L')だけ減少する。各NotchフィルタB1で制御する周波数帯域や音量レベルの減衰量は、制御部Cや判定部Dから指示(出力)される。
【0055】
具体例を用いて説明すると、例えばノート「A2」とノート「C3」とノート「G3」に対応する複数の音高の楽音を含んでなる楽音波形が音源部Aから出力されている場合、判定部Dは図3(C)に示すように帯域2と帯域3とを「連成振動」を生じ得る帯域として抽出する。そして、判定部Dはフィルタ部Bの楽音波形の入力側に近い1番目のNotchフィルタB1に対し抽出した帯域2を割り当てるように、2番目のNotchフィルタB1に対し抽出した帯域3を割り当てるようにそれぞれ指示する一方で、3〜N番目の各NotchフィルタB1を使用しないようにつまりは残りのNotchフィルタB1全てをフラットな特性に設定するかスルーに設定するか指示する。例えば2番目のNotchフィルタB1には、帯域3すなわち「1540.4〜1569.9Hz」の帯域幅に相当するQ値が指示されると共に、帯域3の中心周波数(F値)として「1555.2Hz」が指示される。
【0056】
さらに、判定部Dは、「連成振動」を生じ得る帯域を抽出する度にNotchフィルタB1に対し抽出した帯域を割り当てるが、このときに制御部Cにおいてフィルタ部Bの各NotchフィルタB1に対応して設けられている後述する複数系列の減衰量決定部のうち前記帯域を割り当てたNotchフィルタB1に対応する系列の減衰量決定部を確保し、該確保した減衰量決定部に対して前記帯域を表す帯域幅(Q値)や中心周波数(F値)を指示する。また、判定部Dは確保した減衰量決定部に対して音量レベルの最大減衰量Lも指示する。
【0057】
制御部Cは、判定部Dにより帯域が割り当てられたフィルタ部Bの各NotchフィルタB1毎に音量レベルの減衰量L'を指示する。この音量レベルの減衰量L'は、複数系列の減衰量決定部毎に判定部Dから指示される帯域幅(Q値)及び中心周波数(F値)ならびに音量レベルの最大減衰量Lと、音源部Aから出力される楽音波形の音量レベルとに応じて決定される。図2に示すように、制御部Cはバンドパスフィルタ(BPF)C1とエンベロープフォロワ(E.F)C2と乗算器(Conv)C3とからなる減衰量決定部をフィルタ部Bの各NotchフィルタB1に対応して複数系列有している。なお、バンドパスフィルタC1及びNotchフィルタB1は、例えばIIRフィルタで構成されていればよい。
【0058】
各系列の減衰量決定部において、バンドパスフィルタC1は音源部Aから出力される楽音波形のうち、対応するNotchフィルタB1に割り当てた帯域に含まれる楽音波形のみを判定部Dから指示された帯域幅(Q値)及び中心周波数(F値)に従って取り出す。エンベロープフォロワC2は、前記取り出された所定帯域の楽音波形を包絡線検波することによってその時々の瞬時の音量レベルを求める。乗算器C3は、前記求めた瞬時の音量レベルと判定部Dから指示された音量レベルの最大減衰量Lとを乗算することにより音量レベルの減衰量L'を算出する。こうして算出される音量レベルの減衰量L'は、NotchフィルタB1に割り当てられた帯域に含まれるその時々の楽音波形の音量レベルに応じて最大減衰量Lまで変動することになる。勿論、ここでの乗算による音量レベルの減衰量L'の演算方法は一例であり、倍音の近接する度合いあるいは入力される楽音波形の音量レベルを減衰量に反映することができるのならば他の演算方法であってよい。このようにして、制御部Cは音源部Aから出力される楽音波形の音量レベルに基づき減衰量L'を求めて、該求めた減衰量L'に基づいてフィルタ部Bを制御することにより、「連成振動」を生じ得る各帯域毎に音源部Aから出力される楽音波形を構成する倍音のうちのいずれかについてその音量レベルを適宜に減少させることができるようにしている。
【0059】
次に、上述した電子楽器における楽音合成機能を実現する制御プログラムについて、図5図7を用いて説明する。図5は、電子楽器における楽音合成機能を実現する楽音合成処理の一実施例を示すフローチャートである。この「楽音合成処理」はCPU1によって制御される処理であって、ユーザによる当該電子楽器の電源オン操作に従って開始されて電源オフ操作が行われるまで繰り返される。
【0060】
ステップS1は、初期設定処理を行う。この初期設定では、RAM3に一時記憶する変数などを初期状態に設定する、あるいはノートリスト、部分音リスト、帯域リストやフィルタ部Bの各NotchフィルタB1に対する設定値や制御部Cの各系列の減衰量決定部に対する設定値などをクリアするなどの処理が行われる。これに伴い、全てのNotchフィルタB1及びバンドパスフィルタC1がフラットな特性あるいは波形スルー状態に初期設定される。
【0061】
ステップS2は、ノートオンイベントデータやノートオフイベントデータの検出(受信)に基づいて「ノートオン処理」(ステップS3)又は「ノートオフ処理」(ステップS4)何れかの処理を実行するように、イベントデータに応じた処理の振り分けを実行する。ノートオンイベントデータ又はノートオフイベントデータは、次のようにして検出される。鍵盤4(演奏操作子)に対してユーザが押鍵操作したときにはノートオンイベントデータが発せられ、ユーザが離鍵操作したときにはノートオフイベントデータが発せられるので、こうしたユーザによる演奏操作に応じて発せられるイベントデータを検出する。あるいは、CPU1などで別タスクとして処理される図示しない自動演奏機能(処理)の実行に伴う自動演奏データの再生による楽音進行に応じて随時に発せられるノートオンイベントデータ又はノートオフイベントデータを検出する。さらには、通信インタフェース9を介して接続された外部機器から送信されるノートオンイベントデータやノートオフイベントデータの受信に従って、それらのイベントデータを検出する。
【0062】
ステップS2において、ノートオンイベントデータを検出した場合には「ノートオン処理」(ステップS3)を実行し、ノートオフイベントデータを検出した場合には「ノートオフ処理」(ステップS4)を実行する。これら「ノートオン処理」又は「ノートオフ処理」の終了後は、ステップS2の処理に戻る。こうして、ノートオンイベントデータを検出するたびに「ノートオン処理」を実行し、ノートオフイベントデータを検出するたびに「ノートオフ処理」を実行する。
【0063】
図6は、「ノートオン処理」(図5のステップS3参照)の一実施例を示すフローチャートである。ステップS11は、ノートオンイベントデータで指定されるノート(詳しくはノート番号)をノートリスト(図3(A)参照)に書き込む。ステップS12は、前記書きこんだノートを検索キーにして倍音構成データベース(図4参照)を検索する。ステップS13は、倍音構成データベースを検索した結果の倍音構成を部分音リスト(図3(B)参照)に書き込む。ステップS14は、部分音リストに書き込まれている倍音構成に基づき所定条件に該当する「連成振動」を生じ得る帯域を抽出する。また、このときには、上記式1に従って最大減衰量Lを決定する。ステップS15は、前記抽出した「連成振動」を生じ得る帯域及び前記決定した最大減衰量Lによって帯域リスト(図3(C)参照)を更新する。
【0064】
ステップS16は、前記帯域リストの更新に応じて音源7のフィルタ部Bや制御部C(図2参照)の設定を更新する制御を行う。具体的には、フィルタ部BのNotchフィルタB1に対し前記抽出した「連成振動」を生じ得る周波数帯域をその中心周波数(F値)及び帯域幅(Q値)とともに設定する。また、制御部Cの各系列の減衰量決定部に対し上記帯域幅(Q値)や中心周波数(F値)を設定する。さらに、このときに音量レベルの最大減衰量Lも指示される。ステップS17は、音源7(より具体的には音源部A)に対し使用中でなく空いている発音チャンネル部A1を確保して、ノートリストに記憶されているノート(ノート番号)に対応する音高の楽音波形の合成開始を指示する。なお、上記ステップS11〜S16の処理に関し、後述する例えば第2変形例のように楽音波形をアタック波形とディケイ波形とに分けて合成する構成である場合には、それらの処理をディケイ波形に関してのみ行いアタック波形に関しては行わなくてよい。
【0065】
楽音波形の合成開始が指示されると、音源部Aでは各発音チャンネル部A1毎に単音の楽音波形を合成し、該合成した複数の単音の楽音波形を加算して複数のノートに対応した異なる音高を含んでなる楽音波形を出力する。そして、音源部Aから複数のノートに対応した異なる音高を含んでなる楽音波形が出力されると、当該楽音波形を構成する倍音のうち、フィルタ部BのNotchフィルタB1により前記抽出した「連成振動」を生じ得る周波数帯域内に含まれる倍音に関し、その音量レベルを楽音波形の音量レベルに応じて減少させる制御が行われる。このときに、音量レベルの減衰量L'はその時々の楽音波形の音量レベルに応じて変動するが、楽音波形の音量レベルが大きければ大きいほど相対的に音量レベルの減衰量L'も大きくなることから、特に楽音波形の打音部分の音量レベルを余韻部分に比べて大きく減少することができる。
【0066】
図7は、「ノートオフ処理」(図5のステップS4参照)の一実施例を示すフローチャートである。ステップS21は、音源7(より具体的には音源部A)に対しノートオフイベントデータで指定されるノート(ノート番号)に対応する音高の楽音波形を合成中の発音チャンネル部A1での楽音合成を終了させるリリース指示を行う。音源部Aは、このリリース指示を受けて発音中の楽音の音量レベルを所定の時間をかけて緩やかに下げて消音する制御を行う。ステップS22は、対応する発音チャンネル部A1での楽音合成が終了したか否かを判定する。楽音合成が終了していないと判定した場合には(ステップS22のNO)、発音中の楽音が完全に消音されるまで処理を待機する(ステップS22の処理を繰り返す)。楽音合成が終了したと判定した場合には(ステップS22のYES)、ノートリスト(図3(A)参照)からノートオフされたノート(ノート番号)を削除する(ステップS23)。
【0067】
ステップS24は、削除したノートに対応する倍音構成を部分音リスト(図3(B)参照)から削除する。この部分音リストから任意のノートに対応する倍音構成が削除された際には、上記したように部分音リストにおいて「連成振動」を生じ得る帯域の再構成が行われる場合がある。ステップS25は、部分音リストにおいて「連成振動」を生じ得る帯域を抽出する。ステップS26は、前記抽出した帯域により帯域リスト(図3(C)参照)を更新する。ステップS27は、前記帯域リストの更新に応じてフィルタ部Bや制御部C(図2参照)の設定を更新する。この場合には、音源部Aからノートオフされたノートを除く他の複数のノートに対応した異なる音高を含んでなる楽音波形を構成する倍音のうち、フィルタ部BのNotchフィルタB1によって、前記更新された帯域リストに基づく「連成振動」を生じ得る周波数帯域内に含まれる倍音の音量レベルを減少させる制御が行われる。
【0068】
以上のように、本実施形態における楽音合成装置では、複数のノート毎に各ノートに対応した音高の楽音波形を同時に複数生成し、このノートに対応した複数の異なる音高の楽音波形それぞれにおいて、各楽音波形を構成している複数の倍音に関して互いに周波数が近接している倍音を含んでなる任意の帯域を特定する。この任意の帯域は、各楽音波形の倍音構成によって1乃至複数の帯域がある。この特定された1乃至複数の帯域に基づいて、前記生成した複数の楽音波形それぞれを構成する倍音のうち当該帯域それぞれに含まれる各倍音つまりはその周波数が近接している各倍音に関して、その音量レベルを調整する。すなわち、ノートに対応した複数の異なる音高の楽音波形にわたって、それらの倍音構成のうち特定の帯域に属する倍音(言い換えるならば、互いに近接した連成振動し得る周波数成分)のみに関してその音量レベルを調整する。こうすることによって、複数ノートに対応した複数の異なる音高の楽音を含んでなる楽音波形を合成する場合に、「連成振動」が生じている場合に見られる楽音上の特徴を反映した楽音波形つまりは「連成振動」が生じていない場合に比べて音量レベルの減少した特徴ある楽音波形を生成することができるようになる。
【0069】
(第1変形例)
以上、図面に基づいて実施形態の一例を説明したが、本発明はこれに限定されるものではなく、様々な変形例の実施形態が可能であることは言うまでもない。例えば、第1変形例として、上述したような音源部Aから出力される複数の音高の楽音を含んでなる楽音波形の音量レベルに応じて求められる減衰量L'によらずに、判定部Dにより上記式1に従って算出される最大減衰量Lによって、単に倍音が近接する特定の周波数帯域に含まれる複数の倍音の音量レベルを同じ割合で下げるようにしてもよい。
【0070】
こうする場合、図2に示した機能ブロック図において制御部Cを有しておらず、判定部Dはフィルタ部Bの各NotchフィルタB1に対し特定の周波数帯域を表す帯域幅(Q値)及び中心周波数(F値)の設定を行うだけでなく、直接的に最大減衰量Lの設定をも行う。ただし、こうして特定の周波数帯域に含まれる複数の倍音の音量レベルを同じ割合で下げるようにすると、楽音波形の打音部分だけでなく余韻部分の音量レベルも下げられることになる。しかし、この第1の変形例は上述した実施形態に比べると制御部Cを有していない簡易な構成であるにも関わらず、結果的に和音の響きがある程度スッキリ聞こえる楽音を発生させることができることから有利である。
【0071】
(第2変形例)
一般的に、楽音波形は時間的に先に合成される「非周期成分からなるアタック部の楽音波形(以下、アタック波形と呼ぶ)」と、時間的に後に合成される「周期成分からなるディケイ部の楽音波形(以下、ディケイ波形と呼ぶ)」とに分けることが可能である。
【0072】
ここで、図8に「連成振動」が生じている場合におけるアタック波形、ディケイ波形、アタック波形とディケイ波形とを加算して合成される楽音波形の一例を上から順に示す。この図8からすると、「連成振動」が生じているような場合、アタック波形は「連成振動」が生じていないときと音量レベルが変わらない(下がらない)が、ディケイ波形は「連成振動」が生じていないときよりも打音部分の音量レベルが下がることが理解できる。これは、「連成振動」が複数の弦の間で周期振動が相互作用して起こることからすれば、ディケイ波形は「連成振動」の影響を受けやすい一方で、アタック波形は「連成振動」の影響を受け難いが故に生じ得る結果であると言える。
【0073】
そこで、上記点を踏まえて図9に示す第2変形例は、音源部(Aa,Ab)においてノート単位に各ノートに対応したディケイ波形とアタック波形とを別々に合成し、最終的に複数ノートのディケイ波形とアタック波形とを加算することで複数ノートに対応した複数の音高の楽音を含んでなる1つの楽音波形を生成するものであって、これら別々に合成したアタック波形とディケイ波形とを加算する前に、ディケイ波形に対してのみ「連成振動」の影響を反映させることのできるように構成したものである。図9は、楽音合成機能の第2変形例を示す機能ブロック図である。ただし、ここでは図2に示した第1実施例の機能ブロック図と同じ構成については同じ番号を付してあり、それらの動作は上述した通りであることからここでの詳しい説明は省略する。
【0074】
図9に示す第2変形例は、音源部がディケイ波形を合成する第1音源部Aaとアタック波形を合成する第2音源部Abとに分けられる。第1音源部Aa及び第2音源部Abは、それぞれが発音チャンネル部(Aa1,Ab1)を複数備えてなり、鍵盤4からのノートオンイベントの供給に応じて空きチャンネルの中から使用する発音チャンネル部(Aa1,Ab1)を確保し、該確保した発音チャンネル部(Aa1,Ab1)毎に波形メモリに記憶済みのディケイ部の波形データ又はアタック部の波形データを読み出し、これを用いてノートに対応したディケイ波形又はアタック波形をそれぞれ合成する。
【0075】
各音源部Aa,Abの各発音チャンネル部Aa1,Ab1で合成されたディケイ波形又はアタック波形は、それぞれ加算部Aa2,Ab2によって加算されることにより複数ノートに対応する複数の音高の楽音を含んでなる1つのディケイ波形又はアタック波形とされ、これらのディケイ波形又はアタック波形が最終的に出力加算部Kに送られて加算されることによって、複数ノートに対応した複数の音高を含んでなる楽音波形が合成される。ただし、第2音源部Abから出力されるアタック波形はそのまま出力加算部Kに送られるが、第1音源部Aaから出力されるディケイ波形はフィルタ部Bを通ってから出力加算部Kに送られる。
【0076】
この実施形態の場合、フィルタ部Bの各NotchフィルタB1は、制御部Cや判定部Dから指示(出力)される帯域幅(Q値)や中心周波数(F値)ならびに音量レベルの減衰量L'に従って、第1音源部Aaから出力されるディケイ波形に関してのみ任意の周波数帯域内にある倍音の音量レベルを任意の減衰量だけ減少する。このとき、制御部Cは、第1音源部Aaから出力される加算後のディケイ波形の音量レベルのみに従って音量レベルの減衰量L'を算出する。このようにして、第1音源部Aaから出力されるディケイ波形には連成振動の影響を反映させる一方で、第2音源部Abから出力されるアタック波形には連成振動の影響を反映させないようにしている。
【0077】
(第3変形例)
また、「連成振動」が複数の弦の間で周期振動が相互作用して起こることに鑑みれば、既に何らかのノートに対応する楽音波形が時間的に先に合成中であるときにさらに別のノートに対応する楽音波形が時間的に後から合成開始されたような場合には、時間的に後に合成開始された楽音波形のアタック部合成時に生じ得る連成振動の影響が時間的に先に合成開始された楽音波形のディケイ部に及び得ることが考えられる。
【0078】
そこで、図10に示す第3変形例は、音源部Aa,Abにおいてノート単位に各ノートに対応したディケイ波形とアタック波形とを別々に合成し、最終的に複数ノートに対応した音高の楽音を含んでなるディケイ波形とアタック波形とを加算することにより複数ノートに対応した複数の音高の楽音を含んでなる1つの楽音波形を生成するようにしておき、そのうちのディケイ波形にのみ「連成振動」の影響を反映させるようにした点で上記した第2変形例と同様である。ただし、この第3変形例は、音源部Aa,Abにおいて合成されるディケイ波形とアタック波形のノートは異なることを前提に、フィルタ部Bによる任意の周波数帯域内にある倍音の音量レベルを任意の減衰量だけ減少させる際に、先行する楽音波形つまりは合成開始タイミングが時間的に先であるディケイ波形の音量レベルだけでなく、後続する楽音波形つまりは合成開始タイミングが時間的に後である別のノートのアタック波形の音量レベルも加味して前記減衰量を求めるようにした点で上記した第2変形例と異なる。図10は、楽音合成機能の第3変形例を示す機能ブロック図である。ただし、ここでは図9に示した機能ブロック図と同じ構成については同じ番号を付してある。
【0079】
図10に示す第3変形例は図9に示した第2変形例と比較すると、入力加算部Gを有する点が異なる。この入力加算部Gは、第1音源部Aaから出力される複数ノートに対応した複数の音高の楽音を含んでなるディケイ波形と、第2音源部Abから出力される複数ノートに対応した複数の音高の楽音を含んでなるアタック波形とを加算することによって、複数ノートに対応した複数の音高の楽音を含んでなる1つの楽音波形を合成しこれを制御部Cに入力する。つまり、図2に示した実施形態と同様に、制御部Cには複数ノートに対応した複数の音高の楽音を含んでなる1つの楽音波形が入力されるようになっており、制御部Cはこの1つの楽音波形全体の音量レベルに基づいて音量レベルの減衰量L'を特定帯域別に算出し、これによって第1音源部Aaから出力されるディケイ波形に関してのみ任意の帯域についての音量レベルを前記減衰量L'ずつ減少させるレベル制御が行われることになる。このようにして、図10に示す第3変形例では、第1音源部Aaから出力される合成開始タイミングが時間的に先であるディケイ波形に対して時間的に後に合成開始された楽音波形のアタック部合成時に生じ得る連成振動の影響を反映させることのできるようにするために、第1音源部Aaから出力されるディケイ波形の音量レベルだけでなく第2音源部Abから出力されるアタック波形の音量レベルをも加味して減衰量を求めるようにしている。
【0080】
(第2実施例)
上述した第1実施例及びその変形例は、音源部A(又は第1音源部Aa)により合成された楽音波形をフィルタ部Bの複数のNotchフィルタB1に順に通して倍音の周波数が近接する特定帯域毎に当該帯域内にある倍音の音量レベルを下げることで、「連成振動」による影響を反映した楽音波形を合成することのできるようにしたものである。これに対し、以下に示す第2実施例及びその変形例(以下では、便宜的に第4〜第7の変形例と呼ぶ)は特定帯域毎に倍音の音量レベルを下げることだけに留まらず、さらに周波数が近接している複数の倍音に関しそれらの周波数を適宜に決められる基準周波数に近づけるようにピッチシフトすることで、より「連成振動」による影響を色濃く反映した楽音波形を合成することのできるようにしたものである。以下、説明する。
【0081】
図11は、楽音合成機能の第2実施例の概要を説明するための機能ブロック図である。この第2実施例(第4変形例と呼ぶ)では、各発音チャンネルで合成されたノートに対応した単音の楽音波形毎に、任意に指定された倍音に関しピッチや音量レベルを変更する。図11に示すように、この実施形態においては、音源部Acの各発音チャンネル部Ac1で合成されたノートに対応した単音の楽音波形を加算して、複数の音高の楽音を含んでなる1つの楽音波形を生成することなく、単音の楽音波形のまま音源部Acの各発音チャンネル部Ac1に対応して設けられているチャンネル処理部Tに出力される。各チャンネル処理部Tは直列につながれた複数の倍音処理部T1を有するが、その個数は倍音構造データベース(図4参照)に記憶されているノートの倍音数(例えば8次倍音まであれば7個)だけ有していればよい。ただし、倍音構造データベースに記憶されているノートの倍音の全てに対しピッチやレベルを変更する制御を行うことは稀なので、チャンネル処理部Tはそれより少ない個数(例えば3個)の倍音処理部T1を有しているだけであってもよい。
【0082】
直列につながれた複数の各倍音処理部T1は、それぞれが音源部Acの各発音チャンネルAc1から出力される単音の楽音波形に含まれる2次〜8次までの倍音のうち任意の1乃至複数の倍音の周波数をピッチシフトすると共に、その音量レベルを任意の減衰量だけ減少する制御を行う。各倍音処理部T1で制御対象とする倍音及び制御するピッチシフト量や音量レベルの減衰量は、判定部Dから指示(出力)される。各倍音処理部T1は、バンドパスフィルタ(BPF)T1a、ピッチシフト部T1b、レベル修正部T1c、加算部T1d、バンドエリミネートフィルタ(BEF)T1eを有してなる。
【0083】
音源部Acの各発音チャンネル部Ac1から出力される単音の楽音波形はバンドパスフィルタT1a及びバンドエリミネートフィルタT1eに入力されて、判定部Dから指示された特定の倍音(例えば6次倍音)のみを含んでなる波形がバンドパスフィルタT1aによって抽出されてピッチシフト部T1bへと送られる一方で、前記特定倍音以外の倍音(例えば、6次倍音以外の2〜5次及び7,8次倍音)及び基音を含んでなる波形はバンドエリミネートフィルタT1eによって抽出されて加算部T1dへと送られる。これらバンドパスフィルタT1a及びバンドエリミネートフィルタT1eは、例えばIIRフィルタである。
【0084】
前記バンドパスフィルタT1aにより抽出する特定の倍音は、部分音リスト及び帯域リスト(図3(B)及び図3(C)参照)に基づいて「連成振動」を生じ得る帯域内にある倍音が指定される。具体的には帯域リストが図3(C)に示したような記憶内容であるならば、ノート「A2」に対応する単音の楽音波形が入力されるチャンネル処理部Tに対し6次及び7次倍音を加工対象として指定し、ノート「C3」に対応する単音の楽音波形が入力されるチャンネル処理部Tに対し5次及び6次倍音を加工対象として指定し、ノート「G3」に対応する単音の楽音波形が入力されるチャンネル処理部Tに対し4次倍音を加工対象として指定する。
【0085】
ピッチシフト部T1bは、バンドパスフィルタT1aを介して抽出される特定倍音の周波数を判定部Dによって指示されるピッチシフト量に基づき変更する。この特定倍音の周波数をシフトする際に用いられるピッチシフト量は、判定部Dにより特定の倍音が連成振動しない状態での周波数から連成振動して引き寄せられるであろう周波数軸上にある仮定点の周波数までの差として求められる。連成振動して引き寄せられるであろうある仮定点は、「ceil(b/d)」個の点が帯域幅b(Hz)の範囲に周波数幅d(Hz)だけ離れて均等に散らばって並ぶものとしてモデル化されるものである。
【0086】
例えば、ノート「A2」とノート「C3」とノート「G3」とがそれぞれ割り当てられた3つの鍵が押下されたとき、これらの倍音の周波数が近接している帯域3においては(図3(B)参照)、「A2」の7次倍音及び「C3」の6次倍音及び「G3」の4次倍音の3つの倍音が「1540.4Hz」と「1569.9Hz」の中点である「1555.2Hz(基準周波数)」にある1つの仮定点に引き寄せられるとする。その場合、「A2」の7次倍音は1540.4Hzから「+14.8Hz」だけピッチシフトされ、「C3」の6次倍音は1568.1Hzから「-12.9Hz」だけピッチシフトされ、「G3」の4次倍音の周波数は1569.9Hzから「-14.7Hz」だけピッチシフトされて、結果的にこれら3つの倍音の周波数が1555.2Hzに相寄るようにそれぞれ変更されることになる。
【0087】
ピッチシフト部T1bで行うピッチシフトの手法は従来知られたいずれの方法であってもよいが、例えば公知の時間領域でのピッチシフトが好適である。時間領域のピッチシフトでは、入力される特定倍音の波形に所定の窓をかけて1フレーム分を切り出し、上述のようにして求められるピッチシフト量に応じたレートでリサンプリングして時間的に圧縮伸張されたフレームを生成する。そのようにして、刻々と時間位置を進めながら次々と圧縮伸張されたフレームを生成し、それらを重ねてつなぎ合わせてゆくことでピッチシフトされた特定倍音の波形を生成する。
【0088】
ピッチシフト部T1bによってピッチシフトされた特定倍音は、レベル修正部T1cによりその音量レベルが減少される。レベル修正部T1cでは、ピッチシフトされた倍音の音量レベルを、その元の音量レベルと判定部Dから指示された減衰量L'とに応じて加工する。例えば、判定部Dから指示された減衰量L'が帯域リストに記憶された最大減衰量L(例えば-6dB)だとすると、入力された倍音の音量レベルが大きいほど最大減衰量の「-6dB」近くまで音量レベルを減少する一方で、倍音の音量レベルが小さいほど相対的に少ししか音量レベルを減少しない。
【0089】
ここで、レベル修正部T1cの詳細な構成を図12に示す。図12に示すように、レベル修正部T1cは、アッテネータ(Attenator)Oとエンベロープフォロワ(E.F)Pと乗算器(Conv)Fとからなる。アッテネータOは、入力された倍音の音量レベルを減衰量L'だけ減少する。エンベロープフォロワPは、入力された特定倍音の波形を包絡線検波して瞬時の音量レベルを得る。乗算器Fは、エンベロープフォロワPからの瞬時の音量レベルと判定部Dから指示された最大減衰量Lとを乗算して減衰量L'を求める。すなわち、この減衰量L'は入力された倍音の音量レベルに応じて最大値Lまで変動する。
【0090】
図11の説明に戻って、加算部T1dは、バンドエリミネートフィルタT1eによって分けられた特定倍音以外の倍音及び基音を含んでなる波形と、ピッチシフト部T1bによってピッチシフトされると共にレベル修正部T1cにより音量レベルが減少された特定倍音の波形とを加算して全ての倍音を含んでなる単音の楽音波形に一旦戻してから、該単音の楽音波形を後続する2番目の倍音処理部T1に送る。後続する倍音処理部T1は、先行する倍音処理部T1から出力された単音の楽音波形を判別部Dの指示により倍音処理部T1で処理した倍音とは異なる別の倍音に関する加工を行う。例えば、ノート「A2」に対応する単音の楽音波形が入力されるチャンネル処理部Tの場合、倍音処理部T1では6次倍音を加工し、倍音処理部T2では7次倍音を加工することになる。なお、判別部Dにより倍音の加工を指示されなかった倍音処理部T1に関しては、特性をフラットにするかあるいは信号スルーの経路(図示せず)を通るように設定すればよい。
【0091】
そして、チャンネル処理部Tは、特定の倍音に関してピッチや音量レベルを変更した単音の楽音波形を出力加算部Kに出力する。出力加算部Kでは、各チャンネル処理部Tから出力されるこれら複数の単音の楽音波形を加算することにより、複数ノートに対応した複数の音高の楽音を含んでなる1つの楽音波形を合成して出力信号として出力する。
【0092】
(第5変形例)
特定倍音に関しピッチシフト制御及び音量レベル制御を行う上述した第2実施例においても種々の変形は可能である。図13は、楽音合成機能の第2実施例の第1変形例(便宜的に第5変形例と呼ぶ)を示す機能ブロック図である。図13に示す第5変形例は、音源部(Ac,Ab)においてノート単位に各ノートに対応した単音の楽音波形をディケイ波形とアタック波形とに分けて別々に合成しておき、最終的に複数ノートのディケイ波形とアタック波形とを加算することで複数ノートに対応した複数の音高の楽音を含んでなる1つの楽音波形を生成するものであって、これら別々に合成したアタック波形とディケイ波形とを加算する前に、各ノートに対応したディケイ波形に対してピッチシフト制御及び音量レベル制御を行うことによって「連成振動」の影響を反映させるように構成したものである。なお、ここでは図10及び図11に示した機能ブロック図と同じ構成については同じ番号を付してあり、またそれらの動作は上述した通りであることからここでの詳しい説明は省略する。
【0093】
図13に示す第5変形例では、音源部をディケイ波形を合成する第1音源部Acとアタック波形を合成する第2音源部Abとに分け、第2音源部Abの各発音チャンネル部Ab1から出力されるアタック波形は加算部Ab2によって加算されて複数ノートに対応する複数の音高の楽音を含んでなるアタック波形とされてから出力加算部Kに送られる。一方、第1音源部Acの各発音チャンネル部Ac1から出力されるディケイ波形はそのままチャンネル処理部Tに送られる。上述したように、チャンネル処理部Tの各倍音処理部T1では、それぞれが各発音チャンネル部Ac1から出力されるディケイ波形に含まれる2次〜8次までの倍音のうち特定倍音の周波数をピッチシフトするピッチシフト制御を行うと共に、その音量レベルを任意の減衰量だけ減少する音量レベル制御を行う。各倍音処理部T1で加工対象とする倍音や変更するピッチシフト量さらに音量レベルの減衰量は、判定部Dから指示(出力)される。このようにして、ピッチシフトを行って特定倍音の周波数を変更することでより「連成振動」による影響を色濃く反映した楽音波形を合成する場合においても、第1音源部Acから出力されるディケイ波形のみに連成振動の影響を反映させる一方で、第2音源部Abから出力されるアタック波形には連成振動の影響を反映させないようにしている。
【0094】
ここで、上述した第4変形例及び第5変形例を実現する楽音生成処理について説明するが、「メイン処理」(図5参照)については第1実施例の場合と何ら変わりない。他方、ノートオン処理(図6参照)及びノートオフ処理(図7参照)については、第1実施例の場合とは異なる処理が行われる。図14は、楽音合成機能の第4及び第5変形例を実現するノートオン処理の一部を示すフローチャートである。ただし、第4及び第5変形例を実現するノートオン処理は図6に示した処理のステップS16の処理が異なるだけで他の処理は同じであることから、ここではステップS16に入れ替える処理のみを示してある。
【0095】
ステップS16aは、ノートリストへのノートの追記に伴う部分音リスト及び帯域リストの更新に応じて、チャンネル処理部Tにおける各倍音処理部T1のピッチシフト設定を更新する。ステップS16bは、上記の帯域リストの更新に応じて、チャンネル処理部Tにおける各倍音処理部T1の音量レベル制御設定を更新する。これにより、チャンネル処理部Tの各倍音処理部T1において、それぞれが各発音チャンネルA1から出力されるノートに対応した単音の楽音波形(又はディケイ波形のみ)に含まれる2次〜8次までの倍音のうち特定倍音の周波数をピッチシフトするピッチシフト制御が行われると共に、その音量レベルを任意の減衰量だけ減少する音量レベル制御が行われる。
【0096】
図15は、楽音合成機能の第4及び第5変形例を実現するノートオフ処理の一部を示すフローチャートである。ただし、第4及び第5変形例を実現するノートオフ処理は図7に示した処理のステップS27の処理が異なるだけで他の処理は同じであることから、ここではステップS27に入れ替える処理のみを示してある。
【0097】
ステップS27aは、ノートリストからのノートの削除に伴う部分音リスト及び帯域リストの更新に応じて、チャンネル処理部Tにおける倍音処理部T1のピッチシフト設定を更新する。ステップS27bは、上記の帯域リストの更新に応じて、チャンネル処理部Tにおける倍音処理部T1のレベル制御設定を更新する。この場合には、チャンネル処理部Tの各倍音処理部T1において、それぞれが各発音チャンネルA1から出力されるノートオフされたノートを除く他のノートに対応した単音の楽音波形(又はディケイ波形のみ)に含まれる2次〜8次までの倍音のうち特定倍音の周波数をピッチシフトするピッチシフト制御が行われると共に、その音量レベルを任意の減衰量だけ減少する音量レベル制御が行われる。
【0098】
(第6変形例)
図16は、楽音合成機能の第6変形例を示す機能ブロック図である。図16に示す第6変形例において、音源部Adの各発音チャンネル部Ad1は発音指示に応じて波形メモリから読み出した波形データに基づきノートに対応した単音の楽音波形を合成し、時系列の波高値をチャンネル処理部Uに順次に送る。各チャンネル処理部Uでは、音源部Adの各発音チャンネル部Ad1から刻々と送られてくる波高値を順に記憶し、該記憶した波高値に基づいて前記単音の楽音波形を構成してなる複数の倍音のうち判定部Dから指示された帯域内にある特定倍音に対しピッチシフト制御及び音量レベル制御を行う。チャンネル処理部Uは、チャンネル変換部U1とチャンネルピッチシフト部U2とチャンネルレベル制御部U3とを有する。
【0099】
チャンネル変換部U1は、一時記憶した時系列の波高値を所定のフレーム長(例えば4096サンプル)で順に切り出し、これに所定の窓かけをしてフーリエ変換(FFT)による周波数分析を行い、得られた複素数を極座標変換する。このフーリエ変換による周波数分析を行うことにより、音源部Aで合成された単音の楽音波形が、サンプリング周波数(44.1kHz)/フレーム長(4096)の整数倍を中心周波数とするその近辺の倍音成分を反映し得る多数の部分音に分解されて、それら各部分音の振幅と位相とが求まる(これを部分音データと呼ぶ)。こうした処理を、時間進行に従って切り出すフレームの時間的位置を移動させながら繰り返せば、各発音チャンネル部Ad1で合成された単音の楽音波形の時間的推移が部分音毎に得られる。こうして得られる多数の部分音データは、チャンネルピッチシフト部U2に同時に送られる。
【0100】
部分音は、例えばサンプリング周波数(44.1kHz)/フレーム長(4096)の整数倍を中心周波数とするその近辺の倍音成分を反映し得る。すなわち、周波数分析の結果得られる部分音データとしては、0Hz付近を反映した部分音、10.8Hz付近を反映した部分音、21.5Hz付近を反映した部分音、・、22.05kHz付近を反映した部分音に相当する各データが得られ、各部分音は倍音成分を含む場合もあるし倍音成分を含まない場合もある。「連成振動」の影響を反映させるために特定倍音を加工(詳しくはピッチシフト制御及び音量レベル制御)するには、当該倍音成分が反映されているであろう部分音(詳しくは対応する部分音データ)を制御対象とすればよい。
【0101】
例えば、ノート「A2」の7次倍音を加工したい場合には、ノート「A2」の7次倍音の周波数は1540.4Hzであるから、この7次倍音の周波数1540.4Hzを近辺に包含し得る中心周波数が1539.6Hzである部分音を制御対象としてピッチシフト制御及び音量レベル制御を行えばよい。なお、このときに、制御対象とされた部分音に隣接する他の部分音をさらに制御対象としてピッチシフト制御及び音量レベル制御を行ってもよい。中心周波数が1539.6Hzである部分音を制御対象とした上記例の場合には、中心周波数が1528.8 Hzである部分音と中心周波数が1550.3 Hzである部分音が隣接する他の部分音に該当する。
【0102】
チャンネルピッチシフト部U2は、判定部Dの指示に従って、チャンネル変換部U1から時系列に同時に送られてくる多数の部分音のうち特定倍音を反映しているであろう部分音の位相を加工することによるピッチシフト制御を行う。例えば、発音チャンネル部Ad1においてノート「A2」に対応した単音の楽音波形を合成しており、上述した第4変形例と同様にして判定部Dから部分音リスト及び帯域リスト(図3(B)及び図3(C)参照)に基づいてノート「A2」の7次倍音を1540.4Hzから1559.3.2Hzにピッチシフトする指示が行われたような場合には、ノート「A2」の7次倍音の周波数1540.4Hzを含み得る中心周波数1539.6Hzの部分音の位相をそれらのピッチ差に相当する分だけ進ませる制御を行う。あるフレームでこうした位相の加工をした後には、前記位相を加工したフレームに時間的に後続する以降のフレームに関し、先行するフレームに位相が連続しつつ更に位相が進むように後続する次のフレームの位相を順次に加工する。
【0103】
チャンネルレベル制御部U3は、判定部Dの指示に従って、チャンネルピッチシフト部U2を介してチャンネル変換部U1から時系列に同時に送られてくる多数の部分音データのうち特定倍音を反映しているであろう部分音の振幅を加工することによる音量レベル制御を行う。例えば、発音チャンネル部Ad1においてノート「A2」に対応した単音の楽音波形を合成しており、判定部Dからノート「A2」の7次倍音の音量レベルを下げる指示が行われたような場合には、ノート「A2」の7次倍音の周波数1540.4Hzを含み得る中心周波数1539.6Hzの部分音の振幅を減少する制御を行う。このときには、判定部Dから指示された減衰量と周波数分析結果である部分音の振幅値とに応じて決まる相対的に変位する減少値に応じた分だけ振幅を減少させる加工が行われる。すなわち、判定部Dから指示される減衰量は帯域リストの記憶された最大減衰量(例えば-6dB)であるが、この最大減衰量を部分音の振幅値の大きさに関わらず一律に適用して振幅を加工するのではなく、部分音の振幅値が大きいほど最大「-6dB」近くまで振幅を減少させる一方で、部分音の振幅値が小さいほど相対的に少ししか振幅を減少させない加工を行うようにする。
【0104】
複数チャンネル分の合成部Wでは、音源部Adの各発音チャンネル部Ad1に対応して設けられた各チャンネル処理部Uから時系列に同時に送られてくる多数の複数音データを加算により1組の複数音データに再構成する。逆変換部Yは、1組に再構成された加工済みの部分音データを含む多数の部分音データに従って逆フーリエ変換(逆FFT)処理を行うことにより、1フレーム分(4096サンプル)のデジタル波形データ(例えばPCMデータ)を時系列に生成していく。この1フレーム分(4096サンプル)のデジタル波形データは時間進行に従って次々と生成されるので、それらを時間的にずらしながらつなぎ合わせることで、これを利用して複数ノートに対応した複数の音高の楽音を含んでなる1つの楽音波形を出力することができることになる。なお、逆変換部Yは上記のような逆フーリエ変換(逆FFT)処理を行うものに限らず、例えば多数の部分音データをもとに生成した2048個の正弦波を加算合成することにより、複数ノートに対応した複数の音高の楽音を含んでなる1つの楽音波形を出力するものであってもよい。
【0105】
なお、ここではフーリエ変換処理を利用した周波数分析手法を用いて各部分音の振幅及び位相を求める例を説明したがこれに限らず、フェーズボコーダなど公知の他の時間周波数分析手法を用いてもよい。あるいは、その他Weveletによる時間スケール分析などを用いてもよい。
【0106】
(第7変形例)
図16に示した第6変形例では、一旦音源部Adの各発音チャンネル部Ad1で合成したノートに対応した単音の楽音波形を時間周波数情報である多数の部分音データに変換し、これら部分音データを加工したうえでこれを加算したものを逆変換することによって、複数ノートに対応した複数の音高の楽音を含んでなる1つの楽音波形を合成する。この音源部Aの各発音チャンネルA1における単音の楽音波形の合成及び周波数分析による部分音データの生成に代えて、あらかじめノートに対応した単音の楽音波形を時間周波数情報に変換した時系列の部分音データとして記憶しておき、発音指示に応じて前記記憶してある時系列の部分音データを順に読み出してチャンネル処理部Tに出力するように変形してよい。図17は、楽音合成機能の第7変形例を示す機能ブロック図である。
【0107】
図17に示す第7変形例において、音源部Aeの各発音チャンネル部Ae1は複数の部分音出力部Mに分けられる。各部分音出力部Mは、鍵盤4からの発音指示に応じて予め記憶しておいた時間周波数情報である部分音データの中から指示されたノートに対応する部分音データを時系列に読み出してチャンネル処理部Uに送る。前記部分音データは図16に示されるチャンネル変換部U1で求められるデータと同じであり、この部分音データを時間進行に従って時系列に読み出すと各ノートに対応した単音の楽音波形の時間的推移が倍音毎に得られることは既に説明した。チャンネルピッチシフト部U2は、判定部Dの指示に従って、各部分音出力部Mから時系列に同時に送られてくる多数の部分音データのうち特定倍音を反映しているであろう部分音に対応する部分音データの位相を加工することによるピッチシフト制御を行う。チャンネルレベル制御部U3は、判定部Dの指示に従って、チャンネルピッチシフト部U2を介してチャンネル変換部U1から時系列に同時に送られてくる多数の部分音データのうち特定倍音を反映しているであろう部分音に対応する部分音データの振幅を加工することによる音量レベル制御を行う。なお、複数チャンネル分の合成部W及び逆変換部Yは図16に示した第6変形例と同様であることから、ここでの説明を省略する。
【0108】
なお、上述した第6及び第7変形例では、複数チャンネル分の合成部Wで多数の部分音データを加算した1組の部分音データを逆変換することによりデジタル波形データを得るが、各発音チャンネルA1毎に出力される部分音データに従って逆変換処理を行い各発音チャンネルA1毎にデジタル波形データを生成し、複数の各発音チャンネルA1で生成されたこれら複数のデジタル波形データを加算するようにしてもよい。
また、上述した第6及び第7変形例においても、図13に示した第5変形例のように、ディケイ波形とアタック波形とに分けて処理するようにし、ディケイ波形のみに対して上記で説明した時間周波数分析による特定倍音のピッチシフト制御及び音量レベル制御を行うことのできるようにしてよい。
【0109】
ここで、上述した第6変形例及び第7変形例を実現する楽音生成処理について説明するが、「メイン処理」(図5参照)については上記第1実施例及びその他変形例の場合と何ら変わりない。ただし、ノートオン処理(図6参照)及びノートオフ処理(図7参照)については、第1実施例及びその他の変形例の場合とは異なる処理が行われる。図18は、楽音合成機能の第6及び第7変形例を実現するノートオン処理の一部を示すフローチャートである。ただし、第6及び第7変形例を実現するノートオン処理は図6に示した処理のステップS16の処理が異なるだけで、他の処理は同じであることから、ここではステップS16に入れ替えられる処理のみを示してある。
【0110】
ステップS16cは、ノートリストへのノートの追記に伴う部分音リスト及び帯域リストの更新に応じて、チャンネル処理部U,Uaにおける該当の部分音データへのピッチシフト設定を更新する。ステップS16dは、上記の帯域リストの更新に応じて、チャンネル処理部U,Uaにおける該当の部分音データへのレベル制御設定を更新する。これにより、チャンネル処理部U,Uaの各チャンネルピッチシフト部U2において、それぞれが各発音チャンネルA1から出力されるノートに対応した単音の楽音波形(又はディケイ波形のみ)に含まれる2次〜8次までの倍音のうち特定倍音の周波数をピッチシフトするピッチシフト制御が行われると共に、チャンネルレベル制御部U3において前記特定倍音の音量レベルを任意の減衰量だけ減少する音量レベル制御が行われる。
【0111】
図19は、楽音合成機能の第6及び第7の変形例を実現するノートオフ処理の一部を示すフローチャートである。ただし、第6及び第7の変形例を実現するノートオフ処理は図7に示した処理のステップS27の処理が異なるだけで、他の処理は同じであることから、ここではステップS27に入れ替えられる処理のみを示してある。
【0112】
ステップS27cは、ノートリストからのノートの削除に伴う部分音リスト及び帯域リストの更新に応じて、チャンネル処理部U,Uaにおける該当の部分音データへのピッチシフト設定を更新する。ステップS27dは、上記の帯域リストの更新に応じて、チャンネル処理部U,Uaにおける該当の部分音データへのレベル制御設定を更新する。この場合には、チャンネル処理部U,Uaの各チャンネルピッチシフト部U2において、それぞれが各発音チャンネルA1から出力されるノートオフされたノートを除く他のノートに対応した単音の楽音波形(又はディケイ波形のみ)に含まれる2次〜8次までの倍音のうち特定倍音の周波数をピッチシフトするピッチシフト制御が行われると共に、チャンネルレベル制御部U3において前記特定倍音の音量レベルを任意の減衰量だけ減少する音量レベル制御が行われる。
【符号の説明】
【0113】
1・CPU、2・ROM、3・RAM、4・演奏操作子(鍵盤等)、5・表示器、6・設定操作子(スイッチ等)、7・音源、7A・サウンドシステム、8・記憶装置、9・通信インタフェース、1D・通信バス(データ及びアドレスバス)、A(Ac,Ad、Ae)・音源部、Aa・第1音源部、Ab・第2音源部、A1(Aa1,Ab1,Ac1,Ad1,Ae1)・発音チャンネル部、A2(Aa2,Ab2,J)・加算部、B・フィルタ部、B1・Notchフィルタ、C・制御部、C1(T1a)・バンドパスフィルタ、C2(P)・エンベロープフォロワ、C3(F)・乗算器、D・判定部、E・倍音構造データベース、G・入力加算部、K・出力加算部、M・部分音出力部、O・アッテネータ、T(U,Ua)・チャンネル処理部、T1・倍音処理部、T1b・ピッチシフト部、T1c・レベル修正部、T1e・バンドエリミネートフィルタ、U1・チャンネル変換部、U2・チャンネルピッチシフト部、U3・チャンネルレベル制御部、W・複数チャンネル分の合成部、Y・逆変換部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20