以下、本発明の実施の形態を図面に基づいて説明する。
図1は、本発明の実施形態に係る電子楽器100の構成例を示す概略ブロック図である。まず、本実施形態に係る電子楽器100のハードウェア構成について説明する。図1に示すように、電子楽器100は、プロセッサ101と、RAM(Random Access Memory)102と、ROM(Read Only Memory)103と、入力装置104と、鍵盤105と、表示装置106と、音源107と、音声出力装置108とを含み、各部は、バス109により接続されている。
プロセッサ101は、CPU(Central Processing Unit)を含む。プロセッサ101は、ROM103に格納されたプログラム及びデータを読み出し、RAM102をワークエリアとして用いることにより、電子楽器100を統括制御する。
RAM102は、データやプログラムを一時的に記憶するためのもので、ROM103から読み出したプログラムやデータ、その他、通信に必要なデータ等が保持される。本実施形態において、RAM102は、後述する鍵盤発音マップ121を記憶する。
ROM103は、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)といった不揮発性の半導体メモリであって、いわゆる二次記憶装置又は補助記憶装置としての役割を担う。ROM103は、プロセッサ101が各種処理を行うために使用するプログラム及びデータ、並びに、プロセッサ101が各種処理を行うことにより生成又は取得するデータを記憶する。本実施形態において、ROM103は、後述する波形データ131、基準音色データ132、バリエーション音色データ133、及び発生分布データ134を記憶する。
入力装置104は、キーボード、マウス、タッチパッド、ボタン等の入力装置を含む。入力装置104は、ユーザからの入力操作を受け付けて、その操作内容を表す入力信号をプロセッサ101に出力する。
鍵盤105は、複数の演奏操作子として、複数の白鍵及び黒鍵を有する鍵盤と、鍵盤の押鍵及び離鍵を監視するキースキャナとを含む。複数の白鍵及び黒鍵は、それぞれ異なる音高と対応付けられている。例えば、キースキャナは、ユーザによる鍵への押鍵操作を検出すると、その押鍵操作に係る鍵の音高と、その速度(ベロシティ値)とを表す押鍵イベント情報をプロセッサ101に出力する。
表示装置106は、LCD(Liquid Crystal Display)パネル、有機EL(Electro Luminescence)、LED(Light Emitting Diode)等の表示装置である。また、表示装置106は、プロセッサ101からの制御信号に従って、画像を表示する。なお、入力装置104と表示装置106とは、これらが互いに重ねられて配置されたタッチパネル又はタッチスクリーンを含んでもよい。
音源107は、音源LSI(Large-scale Integrated Circuit)等を含み、楽音を生成する。本実施形態において、音源107は、後述するように128の楽音を同時に発音可能であり、プロセッサ101の指示のもと、ROM103から読みだした波形データ131に基づいて楽音を生成する。
音声出力装置108は、アンプやスピーカ等を含み、音源107により生成された楽音の音声信号を出力する。
次に、本実施形態に係る音源107の構成について詳細に説明する。図2は、音源107の機能構成を示す概略ブロック図である。図2に示すように、音源107は、128の同時発音チャンネルにそれぞれ対応する128基のジェネレータセクション201_1〜201_128と、ジェネレータセクション201_1〜201_128の出力をミックスして楽音を生成し、音声出力装置108に出力するチャンネルミキサ202と、を備える。なお、図2に示す音源107の各機能ブロックは、ソフトウェアにより実現されても良いし、一部又は全部が専用の論理回路などのハードウェアにより実現されても良い。
さらに各ジェネレータセクション201_1〜201_128は、2つのラインL1,L2と、ラインL1,L2の出力波形データをプロセッサ101により指定された比率でミックスするセクションミキサ211と、エンベロープ検出回路212とを備える。ラインL1,L2は、ラインL1は弱音の波形データ、ラインL2は強音の波形データ、もしくは、ラインL1は含まれる倍音成分が多い波形データ、ラインL2は含まれる倍音成分が少ない波形データといったように、それぞれ異なる波形データ131をROM103から読み出して加工することができる。
さらにラインL1,L2はそれぞれ、波形ジェネレータ231と、ピッチエンベロープジェネレータ232と、フィルタ233と、フィルタエンベロープジェネレータ234と、アンプ235と、アンプエンベロープジェネレータ236とを備える。
波形ジェネレータ231は、プロセッサ101からの発音指示により指定される音色の波形データ131を、ピッチエンベロープジェネレータ232から出力されるピッチエンベロープ波形に対応するピッチでROM103から読み出す。
ピッチエンベロープジェネレータ232は、波形ジェネレータ231がROM103から波形データ131を読み出す際のピッチを時間的に変化させる。図3(a)に、ピッチエンベロープジェネレータ232から出力されるピッチエンベロープの一例を示す。図3(a)において、縦軸はピッチのレベルを表し、横軸は時間を表す。ピッチのレベルの可変範囲は、−1200セント〜+1200セント(1オクターブ)であり、演奏されたピッチに対して、このエンベロープのレベルが加算される。本実施形態において、ピッチエンベロープジェネレータ232は、押鍵時、離鍵時、及び連打消音時の3つのピッチエンベロープのうちから、プロセッサ101からの指示により指定されたピッチエンベロープを出力する。まず、押鍵時において、ピッチエンベロープは、レベルL0からスタートし、速度R1でレベルL1に到達した後、速度R2で下降して、鍵を押鍵し続けた際に達する固定されたレベル「0」を維持する。また、離鍵時において、ピッチエンベロープは、離鍵時点のレベルから速度R3でL3に到達した後、速度R4で下降して、最終的にレベルL4を維持する。また、連打消音時において、新しい発音処理と同時に現在の発音を停止するために、ピッチエンベロープは、速度R5でレベルL5に向かう。
フィルタ233は、フィルタエンベロープジェネレータ234から出力されるフィルタエンベロープに応じてカットオフ周波数を変化させて、波形ジェネレータ231から出力された波形データの周波数特性を調整する。
フィルタエンベロープジェネレータ234は、フィルタ233のカットオフ周波数を時間的に変化させる。図3(b)に、フィルタエンベロープジェネレータ234から出力されるフィルタエンベロープの一例を示す。図3(b)において、縦軸はフィルタのカットオフ周波数のレベルを表し、横軸は時間を表す。カットオフ周波数のレベルの可変範囲は、最小値0〜最大値1.0である。本実施形態において、フィルタエンベロープジェネレータ234は、押鍵時、離鍵時、及び連打消音時の3つのフィルタエンベロープのうちから、プロセッサ101からの指示により指定されたフィルタエンベロープを出力する。まず、押鍵時において、フィルタエンベロープは、レベルL0からスタートし、速度R1でレベルL1に到達した後、速度R2で下降して、レベルL2を維持する。また、離鍵時において、フィルタエンベロープは、離鍵時点のレベルL2から速度R3でL3に到達した後、速度R4で下降して、最終的にレベルL4を維持する。また、連打消音時において、新しい発音処理と同時に現在の発音を停止するために、フィルタエンベロープは、速度R5でレベルL5に向かう。
アンプ235は、アンプエンベロープジェネレータ236から出力されるアンプエンベロープに応じて増幅率を変化させて、フィルタ233から出力された波形データの音量を調整する。
アンプエンベロープジェネレータ236は、アンプ235の増幅率を時間的に変化させる。図3(c)に、アンプエンベロープジェネレータ236から出力されるアンプエンベロープの一例を示す。図3(c)において、縦軸はアンプの増幅率のレベルを表し、横軸は時間を表す。増幅率のレベルの可変範囲は、最小値0〜最大値1.0である。本実施形態において、アンプエンベロープジェネレータ236は、押鍵時、離鍵時、及び連打消音時の3つのアンプエンベロープのうちから、プロセッサ101からの指示により指定されたアンプエンベロープを出力する。まず、押鍵時において、アンプエンベロープは、レベルL0からスタートし、速度R1でレベルL1に到達した後、速度R2で下降して、レベルL2を維持する。また、離鍵時において、アンプエンベロープは、離鍵時点のレベルL2から速度R3でL3に到達した後、速度R4で下降して、最終的に固定されたレベル「0」を維持する。また、連打消音時において、新しい発音処理と同時に現在の発音を停止するために、アンプエンベロープは、速度R5でレベル「0」に向かう。
エンベロープ検出回路212は、セクションミキサ211により出力された波形のエンベロープを検出する。図4に本実施形態に係るエンベロープ検出回路212の機能ブロック図を示す。図4に示すように、エンベロープ検出回路212は、機能的に整流回路241と、ローパスフィルタ242と、を備える。整流回路241は、セクションミキサ211により出力された波形を、絶対値化する。そして、ローパスフィルタ242は、整流回路241により絶対値化された波形を平滑化することにより、セクションミキサ211により出力された波形のエンベロープを出力する。
次に、本実施形態においてROM103に記憶される波形データ131、基準音色データ132、バリエーション音色データ133、及び発生分布データ134について説明する。
波形データ131は、「ギター」や「ピアノ」といった各種音色の波形データである。本実施形態において、波形データ131は、音色を識別する音色識別情報と、その音色のラインL1,L2の波形データと、その波形データを識別する波形識別情報とを含む。
基準音色データ132は、アコースティック楽器において、静止状態の振動体を振動させた際に振動体が発音する楽音が有する特徴(以下、「基準音色」と呼ぶ)と、同じ特徴を有する楽音を生成するために用いられる。具体的には、基準音色データ132は、基準音色を有する楽音を生成するためのラインL1,L2の各ブロックのパラメータの設定値を表すデータである。図5に、本実施形態に係る基準音色データ132の構成例を示す。図5に示すように、本実施形態において、基準音色データ132は、後述する4つのベロシティ域「p」、「mp」、「f」、「ff」と、4つの音高域「低」、「中低」、「中高」、「高」と、により規定される16個のスプリット301_1〜301_16毎に設定される。また、各スプリット301_1〜301_16は、2つのラインL1,L2毎に、波形識別情報311と、ピッチ設定情報312と、フィルタ設定情報313と、アンプ設定情報314と、セクションミキサ設定情報315とを含む。波形識別情報311は、ROM103から選択すべき波形データの波形識別情報である。ピッチ設定情報312は、ピッチエンベロープジェネレータ232のパラメータの設定値を表す。フィルタ設定情報313は、フィルタ233及びフィルタエンベロープジェネレータ234のパラメータの設定値を表す。アンプ設定情報314は、アンプ235及びアンプエンベロープジェネレータ236のパラメータの設定値を表す。セクションミキサ設定情報315は、セクションミキサ211のパラメータの設定値を表す。
バリエーション音色データ133は、アコースティック楽器において、既に振動している状態の振動体をさらに振動させた際に振動体が発音する楽音が有する特徴のバリエーションにおいて、各バリエーションと同じ特徴を有する楽音を生成するために用いられる。
まず、アコースティック楽器の一例であるアコースティックピアノにおいて、振動している弦に対する押鍵時の楽音が有する特徴のバリエーションについて説明する。図6は、アコースティックピアノのアクション機構の概略図、図7(a)〜(c)は、押鍵時のハンマー904と弦902との相対速度を説明するための図である。まず、図6に示すように、ユーザが鍵901を叩くと、弦902を抑えていたダンパー903が上昇することにより弦902から離れ、ハンマー904が弦902を叩くことにより、弦902が振動して発音する。ここで、ユーザが連打操作を行った際、ハンマー904はすでに振動している弦902を叩くことになるが、波が弦902上を移動しているため、ハンマー904が弦902に衝突する時点における波の位置(位相)は毎回異なる。例えば、図7(a)のように弦902が静止している状態においてハンマー904が弦902を叩くとき、ハンマー904の速度で弦902が叩かれる。しかし、弦902が振動しており、図7(b)に示すように弦902が下向きに移動している状態において上向きに移動するハンマー904が弦902と衝突するとき、ハンマー904と弦902との相対速度は図7(a)の静止状態よりも大きくなる。一方、図7(c)に示すように弦902が上向きに移動している状態において上向きに移動するハンマー904が弦902と衝突するとき、ハンマー904と弦902との相対速度は図7(a)の静止状態よりも小さくなる。このように、ハンマー904が同じ速度で弦902に衝突しても、弦902とハンマー904が衝突するときの相対速度や、弦902上の波の変形の様子も一定ではない。すなわち、押鍵後の弦902の振動の振幅や倍音成分の特性が変わってくるため、発音される楽音の音色や音量の動きに影響を及ぼす。さらに、弦902の振動は、振幅が大きいと音高もわずかに上がる傾向があるため、音高の動きも同様に変化する。従って、本実施形態では、振動している状態の弦に対して、押鍵した際の楽音の特徴の複数のバリエーションを再現するためのデータをバリエーション音色データ133として保持する。そして、連打操作時において、複数のバリエーションのうちから各バリエーションの発生確率に基づいて1つのバリエーションを選択し、選択したバリエーションを再現するためのバリエーション音色データ133を用いて連打音を生成することにより、自然な連打音を実現する。
本実施形態において、複数のバリエーションは、図10に示すように、バリエーション番号により識別される32種類のバリエーションである。各バリエーションは、アコースティック楽器が発音している音高と同一の音高の楽音を連続的に発音したときの当該楽音が有する特徴である音量と倍音成分とがそれぞれ異なるバリエーションであり、図10では基準音色の音量及び倍音成分に対する差分により示されている。
各バリエーションの倍音成分の差分は、例えば、ラインL1に倍音成分が多い波形データ、ラインL2に倍音成分が少ない波形データをそれぞれROM103から読みだし、セクションミキサ211がラインL1の波形データと、ラインL2の波形データとの混合比率を調整することにより、実現される。なお、図10では、各バリエーションとして、基準音色に含まれる倍音成分の含有量との差分を示しているが、アンプ235及びアンプエンベロープジェネレータ236により、各バリエーションの倍音成分の含有量を時間的に変化させてもよい。さらに、フィルタ233及びフィルタエンベロープジェネレータ234により、各バリエーションの倍音成分のその他の特性や、その時間的変化を調整してもよい。各バリエーションの倍音成分の差分を実現するための、セクションミキサ211、アンプ235、アンプエンベロープジェネレータ236、フィルタ233、及びフィルタエンベロープジェネレータ234に設定される設定値は、それぞれ後述するセクションミキサ差分設定情報415、アンプ差分設定情報414、及びフィルタ差分設定情報413として、各バリエーションと対応付けてROM103に予め格納されている。
また、各バリエーションの音量の差分は、例えば、セクションミキサ211が、前述した倍音成分の状態やラインL1の波形データと、ラインL2の波形データとの混合比率を保ちつつ、ラインL1及びラインL2のボリュームを調整することにより、実現される。また、アコースティックピアノの弦振動において、振幅が大きいほど、波形の立ち上がり時のピッチの変化幅が大きくなる現象が見られる。この現象を再現するため、例えば、各バリエーションの音量の差分に応じて、ピッチエンベロープジェネレータ232により、ピッチエンベロープの動きを調整してもよい。各バリエーションの音量の差分を実現するための、セクションミキサ211及びピッチエンベロープジェネレータ232に設定される値は、それぞれ後述するセクションミキサ差分設定情報415及びピッチ差分設定情報412として、各バリエーションと対応付けてROM103に予め格納されている。
図8に、本実施形態に係るバリエーション音色データ133の構成例を示す。本実施形態におけるバリエーション音色データ133は、上述した32種類のバリエーションの特徴を有する楽音をそれぞれ発音するためバリエーション設定データ401_1〜401_32を有する。図8に示すように、各バリエーション設定データ401_1〜401_32は、2つのラインL1,L2毎に、ピッチ差分設定情報412と、フィルタ差分設定情報413と、アンプ差分設定情報414と、セクションミキサ差分設定情報415とを含む。ピッチ差分設定情報412は、ピッチエンベロープジェネレータ232のパラメータに設定すべき、基準音色データ132の設定値との差分を表す。フィルタ差分設定情報413は、フィルタ233及びフィルタエンベロープジェネレータ234のパラメータに設定すべき、基準音色データ132の設定値との差分を表す。アンプ差分設定情報414は、アンプ235及びアンプエンベロープジェネレータ236のパラメータに設定すべき、基準音色データ132の設定値との差分を表す。セクションミキサ差分設定情報415は、セクションミキサ211のパラメータに設定すべき、基準音色データ132の設定値との差分を表す。
後述するように、プロセッサ101は、各バリエーション設定データ401_1〜401_32のピッチ差分設定情報412と、フィルタ差分設定情報413と、アンプ差分設定情報414と、セクションミキサ差分設定情報415とを、基準音色データ132の設定に反映させて、ジェネレータセクション201_1〜201_128に設定することにより、音源107に、各バリエーションに対応する音量と倍音成分を含む楽音を生成させる。
発生分布データ134は、アコースティック楽器が発音している音高と同一の音高の楽音を連続的に発音したときの当該楽音が有する特徴の複数のバリエーションの発生確率の分布を示すデータである。具体的には、発生分布データ134は、互いに直交する第1軸、第2軸及び第3軸であって、第1軸を音高、第2軸をベロシティ、第3軸を振幅とすることにより形成される3次元空間を分割することにより得られる複数の領域(空間)毎に設定された、複数のバリエーションの発生確率の分布を示す。例えば、発生分布データ134は、予め定められた、4つの音高域、4つのベロシティ域、及び4つの振幅域、により規定される64個の空間毎に設定された複数のバリエーションの発生確率の分布を示す。図9に、本実施形態に係る音高域、ベロシティ域、及び振幅域により規定される64個の空間を示す。ここで、4つの音高域は、鍵盤105が有する鍵の音高順に予め定められた範囲であって、音高が低い順に「低」、「中低」、「中高」、「高」である。4つのベロシティ域は、ベロシティの遅い順に「p」、「mp」、「f」、「ff」である。4つの振幅域は、振幅の小さい順に「弱」、「中弱」、「中強」、「強」である。
アコースティック楽器の一例であるアコースティックピアノにおける連打音の傾向として、押鍵直前の弦振動の振幅の大きさと、押鍵のベロシティとを比較したとき、振幅が大きく、ベロシティが小さいほど、音色や音量のばらつきが大きくなる傾向にある。また、低音弦と高音弦とを比較したとき、低音弦の方が高音弦よりも音色や音量のばらつきが大きくなる傾向がある。従って、発生分布データ134において、音高域、ベロシティ域、及び振幅域により規定される64個の空間ごとに、上記の傾向に従って、32種類のバリエーション401_1〜401_32の発生確率が設定されることにより、より自然な連打音を発音することができる。
図10に本実施形態に係る発生分布データ134の一例を示す。図10では、図9に示す64の空間のうち3つの空間A1〜A3の発生分布データ134を例示している。図10に示すように、発生分布データ134は、64の空間ごとに、「1」〜「32」のバリエーション番号に対応するバリエーションの発生確率を含む。ここで、各バリエーションの発生確率は256分率で表されている。
空間A1は、音高域が「高」、ベロシティ域が「ff」、振幅域が「弱」の範囲により規定される空間である。空間A1に属する連打音におけるバリエーションの発生確率の分布は、押鍵前の弦の振幅が小さく、連打操作時の押鍵が強く、しかも変化の出にくい高音弦であるため、最もばらつきが出にくく、基準音色からの差が無いバリエーション番号「11」(音量差分及び倍音差分がともに「0」)の発生確率が最も高い。
空間A2は、音高域が「中低」、ベロシティ域が「mp」、振幅域が「中強」の範囲により規定される空間である。空間A2に属する連打音におけるバリエーションの発生確率の分布において、基準音色からの差が無いバリエーション番号「11」の発生確率が最も高いが、空間A1における分布よりも発生確率が比較的各バリエーションに分散している分布である。
空間A3は、音高域が「低」、ベロシティ域が「p」、振幅域が「強」の範囲により規定される空間である。この空間A3に属する連打音では、変化の出やすい低音弦において押鍵前の弦の振幅が大きい状態で、弱い押鍵を行うため、最も予測がつかない振動が発生する例である。また、もともとの弦の振動エネルギーが大きいため、弱く押鍵しても通常の押鍵よりも大きな音が出やすい。また、ハンマーがゆっくり弦に近づいて接触しただけでも弦の振動波形が変化し、倍音構成が大きく変化する。そのため、空間A3に属する連打音のバリエーションの発生確率の分布は、音量差分及び倍音差分が大きいバリエーションの発生頻度が高い。
このような発生分布データ134は、予めアコースティックピアノの連打音を解析し、統計的に算出してもよいし、上記のような傾向に応じて任意の値を設定してもよい。
次に、実施形態に係る電子楽器100のプロセッサ101の機能構成について説明する。図2に示すように、プロセッサ101は、ROM103に格納されたプログラム及びデータを読み出して実行することにより、受付部111、パラメータ決定部112、及び発音指示部113として機能する。
受付部111としてのプロセッサ101は、ユーザによる鍵盤105の鍵への第1押鍵操作を受け付ける。また、プロセッサ101は、第1押鍵操作後、第1押鍵操作と同じ鍵への第2押鍵操作を受け付けると、第2押鍵操作に応じたタイミングにおける第1押鍵操作に応じた音の発音状態を検出する。音の発音状態とは、例えば、その音が発音されているか否かや、発音されている場合の音量を表す。本実施形態において、プロセッサ101は、鍵盤105から、押鍵操作に係る鍵の音高と、そのベロシティ値とを表す押鍵イベント情報を受け付けると、RAM102に格納された鍵盤発音マップ121を参照して、押鍵イベント情報に係る音高と同じ音高の音が発音されているか判定する。そして、プロセッサ101は、同じ音高の音が発音されていると判定したとき、連打操作を受け付けたと判定する。
ここで、鍵盤発音マップ121は、鍵盤105の各鍵の発音状態及び使用されているジェネレータセクション201_1〜201_128を示す。図11に本実施形態に係る鍵盤発音マップ121の一例を示す。図11に示す鍵盤発音マップ121では、音高が「A0」〜「C8」までの88鍵を有する鍵盤105の各鍵と、使用されているジェネレータセクション201_1〜201_128を識別するジェネレータセクション番号「1」〜「128」または発音していない状態を表す「-1」とが対応づけられている。例えば、音高が「A0」である鍵は、ジェネレータセクション番号として「-1」と対応付けられており、音高が「A0」である音が発音されていないことを示す。また、音高が「B♭0」である鍵は、ジェネレータセクション番号「2」と対応付けられており、ジェネレータセクション番号「2」のジェネレータセクション201_2は、音高が「B♭0」である音の発音に使用されていることを示す。
例えば、プロセッサ101は、鍵盤105から、押鍵操作に係る鍵の音高が「A0」である押鍵イベント情報を受け付けると、図11の鍵盤発音マップ121を参照し、鍵「A0」に対応するジェネレータセクション番号が「-1」であることから、受け付けた押鍵イベント情報に係る押鍵操作は連打操作でない、すなわち通常操作を受け付けたと判定する。また、プロセッサ101は、鍵盤105から、押鍵操作に係る鍵の音高が「B♭0」である押鍵イベント情報を受け付けると、図11の鍵盤発音マップ121を参照し、鍵「B♭0」に対応するジェネレータセクション番号が「2」であることから、受け付けた押鍵イベント情報に係る押鍵操作は連打操作である、すなわち連打操作を受け付けたと判定する。
さらに、プロセッサ101は、押鍵イベント情報を受け付けると、鍵盤発音マップ121を参照し、使用されていないジェネレータセクション201_1〜201_128、すなわち鍵盤発音マップ121にジェネレータセクション番号が設定されていないジェネレータセクション201_1〜201_128のうちから、今回の押鍵イベント情報に係る音の発音に使用するジェネレータセクション201_pを取得する。
パラメータ決定部112としてのプロセッサ101は、受け付けられた押鍵操作に応じてパラメータを決定する。パラメータは、例えば、ラインL1及びラインL2の波形ジェネレータ231、フィルタ233、及びアンプ235をそれぞれ制御するためのパラメータである。プロセッサ101は、このパラメータに基づいて、発音を指示する音の、少なくともピッチ、周波数特性、及び音量のいずれかを制御する。
本実施形態において、プロセッサ101は、連打操作を受け付けたとき、検出された発音状態と、受け付けた連打操作に応じてパラメータを決定する。例えば、プロセッサ101は、予め定められた4つの音高域のうちから、押鍵イベント情報に係る音高が属する音高域を取得する。また、プロセッサ101は、予め定められた4つのベロシティ域のうちから、押鍵イベント情報に係るベロシティ値が属するベロシティ域を取得する。また、プロセッサ101は、予め定められた4つの振幅域のうちから、押鍵イベント情報に係る音高と同じ音高の音を発音しているジェネレータセクション201_1〜201_128のエンベロープ検出回路212により検出された振幅値が属する振幅域を取得する。そして、プロセッサ101は、取得した音高域、ベロシティ域、及び振幅域に基づいて、対応する発生分布データ134を取得する。例えば、プロセッサ101は、取得した音高域、ベロシティ域、及び振幅域がそれぞれ「高」、「ff」、「弱」であるとき、空間A1に対応する発生分布データ134を取得する。
さらに、プロセッサ101は、取得した発生分布データ134に基づいて、32種類のバリエーションのうちから1つのバリエーションを決定する。例えば、プロセッサ101は、1〜256のうちから乱数を発生させる。そして、プロセッサ101は、発生した乱数が、発生分布データの発生確率をバリエーション番号「1」からバリエーション番号「n」まで順に加算した値とマッチするとき、そのバリエーション番号「n」のバリエーションを選択する。すなわち、発生した乱数をR、バリエーション番号「1」からバリエーション番号「32」までのそれぞれの発生確率をP1〜P32とするとき、プロセッサ101は、以下の式を満たすバリエーション番号「n」のバリエーションを決定する。
そして、プロセッサ101は、押鍵イベント情報に係る音高が属する音高域と、押鍵イベント情報に係るベロシティ値が属するベロシティ域とに基づいて、基準音色データ132から対応するスプリット301_rを取得する。そして、プロセッサ101は、取得したスプリット301_rのラインL1及びラインL2のピッチ設定情報312、フィルタ設定情報313、アンプ設定情報314、セクションミキサ設定情報315の設定値に、選択されたバリエーション番号「n」のバリエーションに対応するバリエーション設定データ401_nのピッチ差分設定情報412、フィルタ差分設定情報413、アンプ差分設定情報414、セクションミキサ差分設定情報415の差分を反映させた設定値と、波形識別情報311の設定値とを、取得した今回の押鍵イベント情報に係る音を発音するためのパラメータとして決定する。
また、本実施形態において、プロセッサ101は、通常操作を受け付けたとき、受け付けた通常操作に応じてパラメータを決定する。例えば、プロセッサ101は、押鍵イベント情報に係る音高が属する音高域と、押鍵イベント情報に係るベロシティ値が属するベロシティ域とに基づいて、基準音色データ132から対応するスプリット301_rを取得する。そして、プロセッサ101は、取得したスプリット301_rのラインL1及びラインL2の波形識別情報311,ピッチ設定情報312、フィルタ設定情報313、アンプ設定情報314、セクションミキサ設定情報315の設定値を、取得した今回の押鍵イベント情報に係る音を発音するためのパラメータとして決定する。
発音指示部113としてのプロセッサ101は、決定されたパラメータに基づいて、受け付けた押鍵操作に応じた音の発音を指示する。
具体的には、プロセッサ101は、受付部111が連打操作を受け付けた場合、押鍵イベント情報に係る音高と同じ音高の音を発音しているジェネレータセクション201_qを消音するためのジェネレータセクション消音処理を実行する。詳細には、プロセッサ101は、ジェネレータセクション201_qのラインL1及びラインL2のそれぞれのピッチエンベロープジェネレータ232のパラメータに対して、図3(a)に示すように連打消音時の速度R5、レベルL5を設定する。また、プロセッサ101は、ジェネレータセクション201_qのフィルタエンベロープジェネレータ234のパラメータに対して、図3(b)に示すように連打消音時の速度R5、レベルL5を設定する。また、プロセッサ101は、ジェネレータセクション201_qのアンプエンベロープジェネレータ236のパラメータに対して、図3(c)に示すように連打消音時の速度R5、レベル「0」を設定する。
そして、プロセッサ101は、決定されたパラメータを、取得した今回の押鍵イベント情報に係る音の発音に使用するジェネレータセクション201_pのラインL1,L2の各ブロックに設定する。
一方、プロセッサ101は、受付部111が通常操作を受け付けた場合、決定されたパラメータを、取得した今回の押鍵イベント情報に係る音の発音に使用するジェネレータセクション201_pのラインL1及びラインL2の各ブロックに設定する。
そして、プロセッサ101は、ジェネレータセクション201_1〜201_128への設定をした後、音源107に発音を指示する。音源107は、プロセッサ101からの発音指示を受け付けると、上述したようにROM103から設定された波形識別情報により識別される波形データ131を読み込み、設定されたパラメータに応じた音を生成し、音声出力装置108に出力する。そして、プロセッサ101は、鍵盤発音マップ121において、発音に係る鍵の音高に対応するジェネレータセクション番号に、使用したジェネレータセクション番号を設定することにより、鍵盤発音マップ121を更新する。
次に、本実施形態に係る電子楽器100のプロセッサ101の動作について説明する。図12は、本実施形態における電子楽器100のプロセッサ101が実行する押鍵処理のフローチャートである。プロセッサ101は、例えば、鍵盤105から押鍵イベント情報を受け付けたことを契機として開始する。
プロセッサ101は、鍵盤発音マップ121を参照して、128基のジェネレータセクション201_1〜201_128のうち、使用していないジェネレータセクション201_1〜201_128から、受け付けた押鍵イベント情報に係る音の発音に使用するジェネレータセクション201_pを取得する(ステップS101)。
そして、プロセッサ101は、受け付けた押鍵イベント情報に係る音高を取得する(ステップS102)。
そして、プロセッサ101は、鍵盤発音マップ121を参照して、ステップS102において取得した音高に対応するジェネレータセクション番号に基づいて、取得した音高の音が発音されているか否かを判定する(ステップS103)。
プロセッサ101は、取得した音高の音が発音されていないと判定したとき(ステップS103;No)、基準音色データ132から、受け付けた押鍵イベント情報に係る音高及びベロシティ値が属する音高域及びベロシティ域に対応するスプリット301_rを取得する(ステップS104)。
そして、プロセッサ101は、取得したスプリット301_rに含まれるラインL1及びラインL2の各ブロックのパラメータの設定を、ステップS101において取得されたジェネレータセクション201_pに設定する(ステップS105)。そして、プロセッサ101は、ステップS106の処理に進む。
一方、プロセッサ101は、ステップS102において取得した音高の音が発音されていると判定したとき(ステップS103;Yes)、後述するジェネレータセクション消音処理(ステップS108)、発生分布データ取得処理(ステップS109)、及びバリエーション音色発音処理(ステップS110)を順次実行し、ステップS106の処理に進む。
図13に本実施形態に係るプロセッサ101が実行するジェネレータセクション消音処理のフローチャートの一例を示す。
プロセッサ101は、図12のステップS102において取得した音高の音が発音されているジェネレータセクション201_qのラインL1及びラインL2のピッチエンベロープジェネレータ232に連打消音時の速度R5及びレベルL5を設定する(ステップS201)。
また、プロセッサ101は、ジェネレータセクション201_qのラインL1及びラインL2のフィルタエンベロープジェネレータ234に連打消音時の速度R5及びレベルL5を設定する(ステップS202)。
また、プロセッサ101は、ジェネレータセクション201_qのラインL1及びラインL2のアンプエンベロープジェネレータ236に連打消音時の速度R5及びレベルL5を設定する(ステップS203)。そして、プロセッサ101は、図12のステップS109の発生分布データ取得処理に進む。
図14に本実施形態に係るプロセッサ101が実行する発生分布データ取得処理のフローチャートの一例を示す。
まず、プロセッサ101は、受け付けた押鍵イベント情報に係る音高が属する音高域を取得する(ステップS301)。
そして、プロセッサ101は、受け付けた押鍵イベント情報に係る音高と同一の音高の音を発音しているジェネレータセクション201_qのエンベロープ検出回路212により検出された振幅値が属する振幅域を取得する(ステップS302)。
そして、プロセッサ101は、発生した押鍵イベントに係る音のベロシティ値が属するベロシティ域を取得する(ステップS303)。
プロセッサ101は、ステップS301,S302,S303においてそれぞれ取得した音高域、振幅域、及びベロシティ域により規定される空間に対応する発生分布データ134を取得する(ステップS304)。そして、プロセッサ101は、図12のステップS110のバリエーション音色発音処理に進む。
図15に本実施形態に係るプロセッサ101が実行するバリエーション音色発音処理のフローチャートの一例を示す。
まず、プロセッサ101は、受け付けた押鍵イベント情報に係る音高及びベロシティ値が属する音高域及びベロシティ域に対応する基準音色データ132のスプリット301_rを取得する(ステップS401)。
そして、プロセッサ101は、発生分布データ取得処理により取得された発生分布データ134に基づいて、バリエーション番号「n」のバリエーションを選択する(ステップS402)。
そして、プロセッサ101は、ステップS401において取得したスプリット301_rのラインL1及びラインL2の各ブロックのパラメータに、ステップS402において選択したバリエーション番号「n」のバリエーションに対応するバリエーション設定データ401_nを反映して、ジェネレータセクション201_pに設定する(ステップS403)。そして、プロセッサ101は、図12のステップS106に進む。
図12に戻って、プロセッサ101は、音源107にジェネレータセクション201_1〜201_128の発音指示を出力する(ステップS106)。そして、プロセッサ101は、鍵盤発音マップ121を参照し、受け付けた押鍵イベント情報に係る音高に対応するジェネレータセクション番号に、ステップS101において取得したジェネレータセクション201_pのジェネレーションセクション番号「p」を設定する(ステップS107)。そして、プロセッサ101は押鍵処理を終了する。
以上説明したように、本実施形態に係る電子楽器100のプロセッサ101は、ユーザによる鍵への第1押鍵操作の後、第1押鍵操作と同じ鍵への第2押鍵操作に応じたタイミングにおける第1押鍵操作に応じた音の発音状態を検出する。そして、プロセッサ101は、検出された第1押鍵操作に応じた音の発音状態及び第2押鍵操作に応じて、第2押鍵操作に応じた音の発音を制御するためのパラメータを決定し、決定されたパラメータに基づいて、第2押鍵操作に応じた音の発音を音源107に指示する。そのため、電子楽器100は、先の押鍵操作に応じた音の発音状態に基づいて後の押鍵操作に応じた音の発音を制御することにより、常に同一の特徴を有する音を連続的に発音する場合よりも、より自然に聞こえる同一の音高の連続的な音を発音することができる。また、アコースティック楽器の振動体の振動を物理的にシミュレーションすることにより同一の音高の連続的な音を生成することなく、従来の波形読みだし方式による楽音生成方法をベースにして、処理負荷がほとんど増加しない演算量でより自然に聞こえる同一の音高の連続的な音を発音することができる。
また、本実施形態に係る電子楽器100において、プロセッサ101は、決定されたパラメータに基づいて、押鍵操作に応じた音の少なくともピッチ、周波数特性及び音量のいずれかを制御する。そのため、電子楽器100は、先の押鍵操作に応じた音の発音状態に基づいて後の押鍵操作に応じた音の少なくともピッチ、周波数特性及び音量のいずれかを制御することにより、常に同一のピッチ、周波数特性及び音量を有する音を連続的に発音する場合よりも、より自然に聞こえる同一の音高の連続的な音を発音することができる。
また、本実施形態に係る電子楽器100において、プロセッサ101は、後の押鍵操作に係る音高及びベロシティ値と、後の押鍵操作に応じたタイミングに検出された先の押鍵操作に応じた音の発音状態を表わす音量を示す振幅値と、が、互いに直交する第1軸、第2軸及び第3軸であって、第1軸を音高、第2軸をベロシティ、第3軸を振幅とすることにより形成される3次元空間を分割することにより得られる複数の領域のなかのどの領域に位置するかを判別し、判別された領域に基づいて、パラメータを決定する。アコースティック楽器は、音高、ベロシティ、及び発音している音の振幅によって、同一の音高の連続的な音の特徴が異なるため、電子楽器100は、連打操作に係る音高、ベロシティ値や、発音している楽音の振幅値に応じたパラメータを決定することにより、より自然に聞こえる同一の音高の連続的な音を発音することができる。
また、本実施形態に係る電子楽器100において、各領域には、それぞれ複数のバリエーションが対応付けられており、プロセッサ101は、判別された領域に対応付けられている複数のバリエーションのなかからいずれか1つのバリエーションを決定し、決定されたバリエーションに基づいて、パラメータを決定する。そのため、電子楽器100は、連打操作に係る音高、ベロシティ値や、発音している音の振幅値に応じた複数のバリエーションのなかから決定した1つのバリエーションに基づいてパラメータを決定することにより、より自然に聞こえる同一の音高の連続的な音を発音することができる。
また、本実施形態に係る電子楽器100において、プロセッサ101は、複数の領域及び複数のバリエーションそれぞれに対応づけて設定されている設定値に基づいて、複数のバリエーションのなかからいずれか1つのバリエーションを決定する。そのため、電子楽器100は、連打操作に係る音高、ベロシティ値や、発音している音の振幅値に応じた領域に対応する複数のバリエーションのそれぞれに対応付けて設定値を適宜設定することにより、より自然に聞こえる同一の音高の連続的な音を発音可能な任意のバリエーションを決定することができる。
また、本実施形態に係る電子楽器100は、演奏操作子の操作に応じて、入力される波形データを波形ジェネレータ231、フィルタ233、及びアンプ235を介して出力波形データとして出力する2つのラインL1及びラインL2を備える。そして、プロセッサにより決定されるパラメータは、ラインL1及びラインL2に含まれる波形ジェネレータ231、フィルタ233、及びアンプ235をそれぞれ制御するためのパラメータである。そのため、電子楽器100は、プロセッサにより決定されたパラメータをラインL1及びラインL2に含まれる波形ジェネレータ231、フィルタ233、及びアンプ235に設定することにより、発音する音のピッチ、周波数特性、及び音量を任意に制御することができる。
また、本実施形態に係る電子楽器100において、複数のバリエーションは、アコースティック楽器が発音していない音高の音を発音したときの当該音が有する特徴との差分のバリエーションである。そのため、電子楽器100は、基準音色データ132のスプリット301_1〜301_16に共通して、複数のバリエーションの特徴を有する音を生成するためのバリエーション音色データ133を反映して音を生成することができるため、複数のバリエーションの生成に必要なデータの量をコンパクトにすることができる。
また、本実施形態に係る電子楽器100において、複数のバリエーションは、アコースティック楽器が発音していない音高の音を発音したときの、当該音の音量成分との差分と、当該音の倍音成分との差分と、のうち少なくともいずれかのバリエーションである。そのため、電子楽器100は、音量及び倍音成分の少なくともいずれかがそれぞれ異なるバリエーションの音を、その発生確率に応じて発音することができる。
また、本実施形態に係る電子楽器100のプロセッサ101は、選択されたバリエーションに基づいて、2つの波形データ131それぞれを加工し、合成することにより、連打操作に係る音を生成する。そのため、電子楽器100は、加工した2つの波形データ131の合成比率に応じて、連打操作に係る音のバリエーションを生成することができる。
なお、本発明は、上記実施の形態に限られるものではなく、様々な変更が可能である。
例えば、上記の実施形態では、各ジェネレータセクション201_1〜201_128が、2つのラインL1,L2を有する例について説明したが、各ジェネレータセクション201_1〜201_128が有するラインの数はこれに限られず、1つのラインを有してもよいし、2以上のラインを有しても良い。
また、上記の実施形態では、プロセッサ101を含む機器として、電子楽器100を例に挙げて説明したが、携帯電話、PC(Personal Computer)、PDA(Personal Digital Assistant)等の電子機器であってもよい。
また、上記の実施形態では、プロセッサ101のCPUが、制御動作を行う例を説明した。しかし、制御動作は、CPUによるソフトウェア制御に限られるものではない。制御動作の一部又は全部が専用の論理回路などのハードウェア構成を用いてなされても良い。
また、以上の説明では、本発明の録音処理に係るプログラムを記憶するコンピュータ読み取り可能な媒体としてフラッシュメモリなどの不揮発性メモリからなるROM103を例に挙げて説明した。しかし、コンピュータ読み取り可能な媒体は、これらに限定されず、HDD(Hard Disk Drive)、CD−ROM(Compact Disc Read Only Memory)やDVD(Digital Versatile Disc)などの可搬型記憶媒体を適用してもよい。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウェーブ(搬送波)も本発明に適用される。
その他、上記実施の形態で示した構成、制御手順や表示例などの具体的な細部は、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
本発明のいくつかの実施形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記の番号は、この出願の願書に最初に添付した特許請求の範囲の通りである。
(付記1)
第1音高が対応付けられている第1演奏操作子と、
少なくとも1つのプロセッサと、
を備え、
前記少なくとも1つのプロセッサは、
ユーザによる前記第1演奏操作子への第1操作に応じて第1パラメータを決定し、
決定された前記第1パラメータに基づいて、前記第1操作に応じた音の発音を指示し、
前記第1操作後、前記ユーザによる前記第1演奏操作子への第2操作に応じたタイミングにおける前記第1操作に応じた音の発音状態を検出し、
検出された前記第1操作に応じた音の発音状態及び前記第2操作に応じて第2パラメータを決定し、
決定された前記第2パラメータに基づいて、前記第2操作に応じた音の発音を指示する、
電子楽器。
(付記2)
前記少なくとも1つのプロセッサは、
前記第1パラメータ及び前記第2パラメータに基づいて、少なくともピッチ、周波数特性及び音量のいずれかを制御する、
付記1に記載の電子楽器。
(付記3)
前記第1演奏操作子を含む複数の演奏操作子をさらに備え、
前記少なくとも1つのプロセッサは、
前記第1音高と、前記第2操作に応じて得られるベロシティ値と、前記第2操作に応じたタイミングに検出された前記第1操作に応じた音の前記発音状態を表わす音量を示す振幅値と、が、互いに直交する第1軸、第2軸及び第3軸であって、前記第1軸を音高、前記第2軸をベロシティ、前記第3軸を振幅とすることにより形成される3次元空間を分割することにより得られる複数の領域のなかのどの領域に位置するかを判別し、
判別された前記領域に基づいて、前記第2パラメータを決定する、
付記1または2に記載の電子楽器。
(付記4)
各領域には、それぞれ複数のバリエーションが対応付けられており、
前記少なくとも1つのプロセッサは、
判別された前記領域に対応付けられている前記複数のバリエーションのなかからいずれか1つのバリエーションを決定し、
決定されたバリエーションに基づいて、前記第2パラメータを決定する、
付記3に記載の電子楽器。
(付記5)
前記少なくとも1つのプロセッサは、
前記複数の領域及び前記複数のバリエーションそれぞれに対応づけて設定されている設定値に基づいて、前記複数のバリエーションのなかからいずれか1つのバリエーションを決定する、
付記4に記載の電子楽器。
(付記6)
前記第1演奏操作子の操作に応じて、入力される第1波形データを第1波形ジェネレータ、第1フィルタ、及び第1アンプを介して第1出力波形データとして出力する第1ラインと、入力される第2波形データを第2波形ジェネレータ、第2フィルタ、及び第2アンプを介して第2出力波形データとして出力する第2ラインと、をさらに備え、
前記第1パラメータ及び前記第2パラメータは、前記第1ラインに含まれる前記第1波形ジェネレータ、前記第1フィルタ、及び前記第1アンプと、前記第2ラインに含まれる前記第2波形ジェネレータ、前記第2フィルタ、及び前記第2アンプと、をそれぞれ制御するためのパラメータである、
付記1から5のいずれか1つに記載の電子楽器。
(付記7)
第1音高が対応付けられている第1演奏操作子と、少なくとも1つのプロセッサと、を備える電子楽器の前記少なくとも1つのプロセッサに、
ユーザによる前記第1演奏操作子への第1操作に応じて第1パラメータを決定させ、
決定された前記第1パラメータに基づいて、前記第1操作に応じた音の発音を指示させ、
前記第1操作後、前記ユーザによる前記第1演奏操作子への第2操作に応じたタイミングにおける前記第1操作に応じた音の発音状態を検出させ、
検出された前記第1操作に応じた音の発音状態及び前記第2操作に応じて第2パラメータを決定させ、
決定された前記第2パラメータに基づいて、前記第2操作に応じた音の発音を指示させる、
電子楽器の制御方法。
(付記8)
第1音高が対応付けられている第1演奏操作子と、少なくとも1つのプロセッサと、を備える電子楽器の前記少なくとも1つのプロセッサに、
ユーザによる前記第1演奏操作子への第1操作に応じて第1パラメータを決定させ、
決定された前記第1パラメータに基づいて、前記第1操作に応じた音の発音を指示させ、
前記第1操作後、前記ユーザによる前記第1演奏操作子への第2操作に応じたタイミングにおける前記第1操作に応じた音の発音状態を検出させ、
検出された前記第1操作に応じた音の発音状態及び前記第2操作に応じて第2パラメータを決定させ、
決定された前記第2パラメータに基づいて、前記第2操作に応じた音の発音を指示させる、
プログラム。