IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ カシオ計算機株式会社の特許一覧

<>
  • 特許-電子楽器、方法及びプログラム 図1
  • 特許-電子楽器、方法及びプログラム 図2
  • 特許-電子楽器、方法及びプログラム 図3
  • 特許-電子楽器、方法及びプログラム 図4A
  • 特許-電子楽器、方法及びプログラム 図4B
  • 特許-電子楽器、方法及びプログラム 図4C
  • 特許-電子楽器、方法及びプログラム 図5A
  • 特許-電子楽器、方法及びプログラム 図5B
  • 特許-電子楽器、方法及びプログラム 図5C
  • 特許-電子楽器、方法及びプログラム 図6
  • 特許-電子楽器、方法及びプログラム 図7
  • 特許-電子楽器、方法及びプログラム 図8
  • 特許-電子楽器、方法及びプログラム 図9
  • 特許-電子楽器、方法及びプログラム 図10
  • 特許-電子楽器、方法及びプログラム 図11
  • 特許-電子楽器、方法及びプログラム 図12
  • 特許-電子楽器、方法及びプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-23
(45)【発行日】2023-01-31
(54)【発明の名称】電子楽器、方法及びプログラム
(51)【国際特許分類】
   G10H 1/18 20060101AFI20230124BHJP
   G10H 1/057 20060101ALI20230124BHJP
【FI】
G10H1/18 101
G10H1/057 Z
【請求項の数】 8
(21)【出願番号】P 2021100633
(22)【出願日】2021-06-17
(65)【公開番号】P2023000048
(43)【公開日】2023-01-04
【審査請求日】2022-03-16
(73)【特許権者】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(74)【代理人】
【識別番号】100182936
【弁理士】
【氏名又は名称】矢野 直樹
(72)【発明者】
【氏名】佐藤 博毅
(72)【発明者】
【氏名】川島 肇
【審査官】菊地 陽一
(56)【参考文献】
【文献】特開平01-235998(JP,A)
【文献】特開2020-129040(JP,A)
【文献】特開2001-209382(JP,A)
【文献】特開平04-086698(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10H 1/18
G10H 1/057
(57)【特許請求の範囲】
【請求項1】
演奏操作子と、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、
前記演奏操作子への第1操作に応じて、第1楽音の発音を指示し、
前記第1楽音の発音中における前記演奏操作子への第2操作に応じて、前記第2操作に応じたタイミングにおける前記第1楽音の第1振幅値を取得するとともに前記第2操作に応じて発音させる第2楽音のための第2振幅値を取得し、
前記第1振幅値と前記第2振幅値との比に基づいて、前記第1楽音の減衰速度を調整するためのパラメータ値を決定し、
決定された前記パラメータ値に基づいて、前記第1楽音の発音の減衰を指示する、
電子楽器。
【請求項2】
前記パラメータ値は、前記第1振幅値と前記第2振幅値との比が1に近いほど、前記第1楽音の減衰速度を速める値に決定される、
請求項1に記載の電子楽器。
【請求項3】
前記パラメータ値は、次式により決定される、
パラメータ値=100/(1+|log(a/b)|)
但し、aは、前記第1振幅値であり、bは、前記第2振幅値である、
請求項1又は請求項2に記載の電子楽器。
【請求項4】
前記少なくとも1つのプロセッサは、
複数の波形データのなかから、前記演奏操作子に対する操作の強さに応じた波形データを読み出し、
前記第1操作に応じて読み出される第1波形データと前記第2操作に応じて読み出される第2波形データとが同じ場合、前記第1波形データと前記第2波形データとが異なる場合と比べて、前記第1楽音の減衰速度として速い速度を指示する、
請求項1から請求項3の何れか一項に記載の電子楽器。
【請求項5】
前記少なくとも1つのプロセッサは、前記第1楽音のピッチ、音色、音量のうち少なくとも1つに対し、前記パラメータ値に基づく減衰速度の調整を行う、
請求項1から請求項4の何れか一項に記載の電子楽器。
【請求項6】
前記演奏操作子を含む鍵盤を備え、
前記第1操作及び前記第2操作は、前記鍵盤への押鍵操作である、
請求項1から請求項5の何れか一項に記載の電子楽器。
【請求項7】
コンピュータに、
電子楽器の演奏操作子への第1操作に応じて、第1楽音の発音を指示させ、
前記第1楽音の発音中における前記演奏操作子への第2操作に応じて、前記第2操作に応じたタイミングにおける前記第1楽音の第1振幅値を取得させるとともに前記第2操作に応じて発音させる第2楽音のための第2振幅値を取得させ、
前記第1振幅値と前記第2振幅値との比に基づいて、前記第1楽音の減衰速度を調整するためのパラメータ値を決定させ、
決定された前記パラメータ値に基づいて、前記第1楽音の発音の減衰を指示させる、
方法。
【請求項8】
コンピュータに、
電子楽器の演奏操作子への第1操作に応じて、第1楽音の発音を指示させ、
前記第1楽音の発音中における前記演奏操作子への第2操作に応じて、前記第2操作に応じたタイミングにおける前記第1楽音の第1振幅値を取得させるとともに前記第2操作に応じて発音させる第2楽音のための第2振幅値を取得させ、
前記第1振幅値と前記第2振幅値との比に基づいて、前記第1楽音の減衰速度を調整するためのパラメータ値を決定させ、
決定された前記パラメータ値に基づいて、前記第1楽音の発音の減衰を指示させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書の開示は、電子楽器、方法及びプログラムに関する。
【背景技術】
【0002】
電子楽器において、同一音高の演奏操作子に対して楽音を連続的に発音させる操作(以下「連打操作」と記す。)が行われると、新たな押鍵操作に応じて楽音を発音させるとともにこれまでの押鍵操作に応じて既に発音されている楽音を速やかに減衰させる技術が知られている。例えば特許文献1に、このような技術を適用した電子楽器の具体的構成が記載されている。
【0003】
特許文献1では、小さな楽音を早いうちに消音することによって連打操作時に発音される楽音の聴感上の不自然さを取り除くため、今回の押鍵時のベロシティが前回の押鍵時のベロシティよりも大きい場合、前回の押鍵操作に応じて発音されている楽音が通常よりも倍の速度で減衰される。今回の押鍵時のベロシティが前回の押鍵時のベロシティと同じ又は小さい場合は、前回の押鍵操作に応じた楽音が通常速度で減衰される。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2001-209382号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1においてベロシティの大きい押鍵操作が連続的に行われた場合を考える。この場合において、今回の押鍵時のベロシティが前回の押鍵時のベロシティと同じ又は小さければ、前回の押鍵操作に応じて発生された楽音が通常速度で減衰される。そのため、連打操作を繰り返すと、通常速度では減衰しきれなかった楽音が小さくないレベルで残存し、一時的ではあるものの、音量が不自然に増加することがある。連打操作時の楽音を自然な楽音により一層近付けるため、電子楽器をより一層改善することが求められる。
【0006】
本発明は上記の事情に鑑みてなされたものであり、その目的とするところは、電子楽器で発音される連打操作時の楽音を自然な楽音に近付けるための改善が加えられた電子楽器、方法及びプログラムを提供することである。
【課題を解決するための手段】
【0007】
本発明の一実施形態に係る電子楽器は、演奏操作子と、少なくとも1つのプロセッサと、を備え、前記少なくとも1つのプロセッサは、前記演奏操作子への第1操作に応じて、第1楽音の発音を指示し、前記第1楽音の発音中における前記演奏操作子への第2操作に応じて、前記第2操作に応じたタイミングにおける前記第1楽音の第1振幅値を取得するとともに前記第2操作に応じて発音させる第2楽音のための第2振幅値を取得し、前記第1振幅値と前記第2振幅値との比に基づいて、前記第1楽音の減衰速度を調整するためのパラメータ値を決定し、決定された前記パラメータ値に基づいて、前記第1楽音の発音の減衰を指示する。
【発明の効果】
【0008】
本発明の一実施形態によれば、電子楽器で発生させる連打操作時の楽音を自然な楽音に近付けるための改善が加えられた電子楽器、方法及びプログラムが提供される。
【図面の簡単な説明】
【0009】
図1】本発明の一実施形態に係る電子楽器の構成を示すブロック図である。
図2】本発明の一実施形態に係る電子楽器に備えられたROMに記憶される波形データの構造の一例を示す図である。
図3】本発明の一実施形態に係る電子楽器に備えられる音源の構成を示すブロック図である。
図4A】本発明の一実施形態に係る音源に備えられるピッチエンベロープジェネレータから出力されるピッチエンベロープの一例を示す図である。
図4B】本発明の一実施形態に係る音源に備えられるフィルタエンベロープジェネレータから出力されるフィルタエンベロープの一例を示す図である。
図4C】本発明の一実施形態に係る音源に備えられるアンプエンベロープジェネレータから出力されるアンプエンベロープの一例を示す図である。
図5A】振動中の振動体に対して衝撃を与えた場合の楽音の特徴について説明する図である。
図5B】振動中の振動体に対して衝撃を与えた場合の楽音の特徴について説明する図である。
図5C】振動中の振動体に対して衝撃を与えた場合の楽音の特徴について説明する図である。
図6】本発明の一実施形態において電子楽器のプロセッサが実行する押鍵処理のフローチャートである。
図7】本発明の一実施形態において電子楽器のプロセッサが実行する押鍵処理のフローチャートである。
図8】本発明の一実施形態において、第2操作に応じた第2楽音の振幅値と第2操作時のベロシティ値との関係を示すグラフである。
図9】本発明の一実施形態において電子楽器のプロセッサが実行する消音処理のフローチャートである。
図10】本発明の一実施形態において、第1楽音の減衰速度を調整するためのパラメータ値と第1振幅値と第2振幅値との比との関係を示すグラフである。
図11図7の押鍵処理の実行により第1楽音の減衰速度を調整した場合の効果を説明する。
図12図7の押鍵処理の実行により第1楽音の減衰速度を調整した場合の効果を説明する。
図13図7の押鍵処理の実行により第1楽音の減衰速度を調整した場合の効果を説明する。
【発明を実施するための形態】
【0010】
図面を参照して、本発明の一実施形態に係る電子楽器について詳細に説明する。なお、本発明の一実施形態に係る方法及びプログラムは、電子楽器のコンピュータ(回路構成要素)に各種処理を実行させることで実現される。
【0011】
図1は、電子楽器1の構成を示すブロック図である。本実施形態において、電子楽器1は、例えば電子ピアノであり、同一音高の鍵に対する連打操作時に既に発音されている楽音の減衰速度を調整することによって自然な楽音(例えばアコースティック楽器に近い特性の楽音)が聞こえるように構成される。
【0012】
なお、連打操作時に自然な楽音を発音させるための本発明の技術は電子ピアノ以外の電子楽器にも適用することができる。具体的には、振動体に衝撃を与えて楽音を発生させるタイプのアコースティック楽器(例示的には、打楽器、撥弦楽器、打弦楽器、クロマティックパーカッション等)を電子楽器として構成したものも本発明の範疇である。
【0013】
図1に示されるように、電子楽器1は、ハードウェア構成として、プロセッサ10、RAM(Random Access Memory)11、ROM(Read Only Memory)12、スイッチパネル13、入出力インタフェース14、LCD(Liquid Crystal Display)15、LCDコントローラ16、鍵盤17、キースキャナ18、音源LSI(Large Scale Integration)19、D/Aコンバータ20及びアンプ21を備える。電子楽器1の各部は、バス22により接続される。
【0014】
プロセッサ10は、ROM12に格納されたプログラム及びデータを読み出し、RAM11をワークエリアとして用いることにより、電子楽器1を統括的に制御する。
【0015】
プロセッサ10は、例えばシングルプロセッサ又はマルチプロセッサであり、少なくとも1つのプロセッサを含む。複数のプロセッサを含む構成とした場合、プロセッサ10は、単一の装置としてパッケージ化されたものであってもよく、電子楽器1内で物理的に分離した複数の装置で構成されてもよい。
【0016】
プロセッサ10は、機能ブロックとして、演奏操作子への第1操作に応じて第1楽音の発音を指示する楽音指示部101と、第1楽音の発音中における演奏操作子への第2操作に応じて、第1楽音の第1振幅値を取得するとともに第2操作に応じて発音させる第2楽音のための第2振幅値を取得する振幅値取得部102と、第1振幅値と第2振幅値との比に基づいて、第1楽音の減衰速度を調整するためのパラメータ値を決定するパラメータ値決定部103と、を備える。楽音指示部101は、パラメータ値決定部103により決定されたパラメータ値に基づいて、第1楽音の発音の減衰を指示する。なお、図1に示されるプロセッサ10の各機能ブロックは、ソフトウェアにより実現されてもよく、また、一部又は全部が専用の論理回路等のハードウェアにより実現されてもよい。
【0017】
なお、本明細書中、連続する2つの押鍵操作を第1操作、第2操作と定義する。「連続する2つの押鍵操作」は、1番目の押鍵操作に応じた発音中に次の押鍵操作が行われたことを意味する。そのため、第2操作は、第1操作に応じた発音中(第1楽音の発音中)に行われた、第1操作の次の操作を意味する。補足すると、連続する3つの押鍵操作の場合(すなわち、連続する2つの押鍵操作に応じた2つの楽音を発音中に次の押鍵操作が行われた場合)、2番目の押鍵操作が第1操作となり、3番目の押鍵操作が第2操作となる。
【0018】
RAM11は、データやプログラムを一時的に保持する。RAM11には、ROM12から読み出されたプログラムやデータ、その他、通信に必要なデータが保持される。
【0019】
ROM12は、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)等の不揮発性の半導体メモリであり、二次記憶装置又は補助記憶装置としての役割を担う。ROM12には、例えば波形データ121が記憶される。附言するに、ROM12には、プロセッサ10が各種処理を行うために使用するプログラム及びデータ並びにプロセッサ10が各種処理を行うことにより生成又は取得されたデータが記憶される。
【0020】
スイッチパネル13は入力装置の一例である。ユーザがスイッチパネル13を操作すると、その操作内容を示す信号が入出力インタフェース14を介してプロセッサ10に出力される。スイッチパネル13は、例えば、メカニカル方式、静電容量無接点方式、メンブレン方式等のキースイッチ、ボタン等で構成される。スイッチパネル13は、タッチパネルであってもよい。
【0021】
LCD15は表示装置の一例である。LCD15は、LCDコントローラ16により駆動される。プロセッサ10による制御信号に従ってLCDコントローラ16がLCD15を駆動すると、LCD15に、制御信号に応じた画面が表示される。LCD15は、有機EL(Electro Luminescence)、LED(Light Emitting Diode)等の表示装置に置き換えてもよい。LCD15は、タッチパネルであってもよい。この場合、タッチパネルが入力装置と表示装置を兼ねてもよい。
【0022】
鍵盤17は、複数の演奏操作子として複数の白鍵及び黒鍵を有する鍵盤を備える。各鍵は、それぞれ異なる音高と対応付けられている。
【0023】
キースキャナ18は、鍵盤の押鍵及び離鍵を監視する。キースキャナ18は、例えばユーザによる押鍵操作を検出すると、押鍵イベント情報をプロセッサ10に出力する。押鍵イベント情報には、押鍵操作に係る鍵の音高(キーナンバ)とその速度(ベロシティ値)が含まれる。ベロシティ値は、押鍵操作の強さ示す値ともいえる。
【0024】
プロセッサ10は、鍵(演奏操作子)に対する操作(第1操作又は第2操作)に応じて楽音の発音を指示する楽音指示部101として動作する。音源LSI19は、プロセッサ10の指示のもと、ROM12から読み出した波形データに基づいて楽音を生成する。本実施形態では、音源LSI19は、128の楽音を同時に発音することができる。なお、本実施形態では、プロセッサ10と音源LSI19とが別々の装置として構成されるが、別の実施形態では、プロセッサ10と音源LSI19とが1つのプロセッサとして構成されてもよい。
【0025】
図2は、ROM12に記憶される波形データ121の構造の一例を示す図である。図2に示されるように、波形データ121には、「ギター」や「ピアノ」といった各種音色の波形データ情報122~122m1が登録されている。各種音色の波形データ情報122~122m1には、対象の音色(例えばピアノ)について全キーナンバの波形データ123~123m2が登録されている。より詳細には、各キーナンバに対し、ベロシティ値(すなわち、演奏操作子に対する操作の強さ)に応じた波形データが登録されている。例示的には、1<n1<n2<n3<127とした場合、各キーナンバに対し、低いベロシティ値(1以上n1未満)に対応する波形データ124p、やや低いベロシティ値(n1以上n2未満)に対応する波形データ124mp、やや高いベロシティ値(n2以上n3未満)に対応する波形データ124f、高いベロシティ値(n3以上127以下)に対応する波形データ124ffが登録されている。
【0026】
プロセッサ10は、ROM12に記憶された複数の波形データのなかから、演奏操作子に対する操作の強さ(言い換えるとベロシティ値)に応じた波形データを読み出す。より詳細には、プロセッサ10は、スイッチパネル13に対するユーザの操作に応じて楽音の音色(ギター、ピアノ等)を設定する。プロセッサ10は、波形データ121のなかから、押鍵イベント情報(すなわち、押鍵されたキーナンバ及び押鍵時のベロシティ値)と現在設定されている音色とに応じた波形データを読み出す。
【0027】
音源LSI19により生成された楽音の音声信号は、D/Aコンバータ20によるDA変換後、アンプ21により増幅されて、図示省略されたスピーカに出力される。
【0028】
図3は、音源LSI19の構成を示すブロック図である。図3に示されるように、音源LSI19は、128基のジェネレータセクション19A_1~19A_128及びミキサ19Bを備える。ジェネレータセクション19A_1~19A_128は、128の同時発音チャンネルにそれぞれ対応して備えられる。ミキサ19Bは、ジェネレータセクション19A_1~19A_128の出力をミックスして楽音を生成し、生成された楽音をD/Aコンバータ20に出力する。なお、図3に示される音源LSI19の各機能ブロックは、ソフトウェアにより実現されてもよく、また、一部又は全部が専用の論理回路等のハードウェアにより実現されてもよい。
【0029】
各ジェネレータセクション19A_1~19A_128は、波形ジェネレータ19a、ピッチエンベロープジェネレータ19b、フィルタ19c、フィルタエンベロープジェネレータ19d、アンプ19e、アンプエンベロープジェネレータ19f及びエンベロープ検出器19gを備える。
【0030】
波形ジェネレータ19aは、プロセッサ10による指示に応じた波形データを、ピッチエンベロープジェネレータ19bから出力されるピッチエンベロープ波形に対応するピッチでROM12から読み出す。
【0031】
ピッチエンベロープジェネレータ19bは、波形ジェネレータ19aがROM12から波形データを読み出す際のピッチを時間的に変化させる。
【0032】
図4Aに、ピッチエンベロープジェネレータ19bから出力されるピッチエンベロープの一例を示す。図4A中、縦軸はピッチのレベルを示し、横軸は時間を示す。ピッチのレベルの可変範囲は、-1200セント~+1200セント(-1オクターブ~+1オクターブ)であり、演奏されたピッチに対して、このエンベロープのレベルが加算される。
【0033】
ピッチエンベロープジェネレータ19bは、押鍵時、離鍵時、及び連打消音時の3つのピッチエンベロープのうちから、プロセッサ10による指示に応じたピッチエンベロープを出力する。押鍵時のピッチエンベロープは、レベルL0からスタートし、速度R1でレベルL1に到達した後、速度R2で下降して、鍵を押し続けた際に達する固定レベル「0」を維持する。離鍵時のピッチエンベロープは、離鍵時点のレベルから速度R3でL3に到達した後、速度R4で下降して、最終的にレベルL4を維持する。連打消音時のピッチエンベロープは、新しい発音処理と同時に現在の発音を停止するため、速度R5でレベルL5に向かう。
【0034】
フィルタ19cは、フィルタエンベロープジェネレータ19dから出力されるフィルタエンベロープに応じてカットオフ周波数を変化させて、波形ジェネレータ19aから出力された波形データの周波数特性を調整する。
【0035】
フィルタエンベロープジェネレータ19dは、フィルタ19cのカットオフ周波数を時間的に変化させる。
【0036】
図4Bに、フィルタエンベロープジェネレータ19dから出力されるフィルタエンベロープの一例を示す。図4B中、縦軸はフィルタ19cのカットオフ周波数のレベルを示し、横軸は時間を示す。カットオフ周波数のレベルの可変範囲は、最小値0~最大値1.0である。
【0037】
フィルタエンベロープジェネレータ19dは、押鍵時、離鍵時、及び連打消音時の3つのフィルタエンベロープのうちから、プロセッサ10による指示に応じたフィルタエンベロープを出力する。押鍵時のフィルタエンベロープは、レベルL0からスタートし、速度R1でレベルL1に到達した後、速度R2で下降して、レベルL2を維持する。離鍵時のフィルタエンベロープは、離鍵時点のレベルL2から速度R3でL3に到達した後、速度R4で下降して、最終的にレベルL4を維持する。連打消音時のフィルタエンベロープは、新しい発音処理と同時に現在の発音を停止するため、速度R5でレベルL5に向かう。
【0038】
アンプ19eは、アンプエンベロープジェネレータ19fから出力されるアンプエンベロープに応じて増幅率を変化させて、フィルタ19cから出力された波形データの音量を調整する。
【0039】
アンプエンベロープジェネレータ19fは、アンプ19eの増幅率を時間的に変化させる。
【0040】
図4Cに、アンプエンベロープジェネレータ19fから出力されるアンプエンベロープの一例を示す。図4C中、縦軸はアンプ19eの増幅率のレベルを示し、横軸は時間を示す。増幅率のレベルの可変範囲は、最小値0~最大値1.0である。
【0041】
アンプエンベロープジェネレータ19fは、押鍵時、離鍵時、及び連打消音時の3つのアンプエンベロープのうちから、プロセッサ10による指示に応じたアンプエンベロープを出力する。押鍵時のアンプエンベロープは、レベルL0からスタートし、速度R1でレベルL1に到達した後、速度R2で下降して、レベルL2を維持する。離鍵時のアンプエンベロープは、離鍵時点のレベルL2から速度R3でL3に到達した後、速度R4で下降して、最終的に固定されたレベル「0」を維持する。連打消音時のアンプエンベロープは、新しい発音処理と同時に現在の発音を停止するため、速度R5でレベル「0」に向かう。
【0042】
エンベロープ検出器19gは、アンプ19eから出力される波形のエンベロープを検出する。例示的には、エンベロープ検出器19gは、アンプ19eから出力される波形を整流回路で絶対値化し、絶対値化された波形をローパスフィルタで平滑化することにより、アンプ19eから出力される波形のエンベロープ(言い換えると振幅値)を検出する。
【0043】
なお、波形のレベルが正規化されているのであれば、アンプエンベロープジェネレータ19fの値をアンプ19eから出力される波形のエンベロープとして適用してもよい。波形のレベルが正規化されていない場合にも、別途仮想的なレベルエンベロープジェネレータをジェネレータセクション毎に駆動し、レベルエンベロープジェネレータより得られる値をアンプ19eから出力される波形のエンベロープとして適用してもよい。
【0044】
ここで、打楽器、撥弦楽器、打弦楽器、クロマティックパーカッション等では、楽器の振動体が静止している状態であれば、振動体に衝撃を与える衝撃体の運動エネルギーが同じである限り、ほぼ同じ楽音が発生する。これに対し、振動中の振動体に対して衝撃体で衝撃を加えると、振動体の振動エネルギーの一部が衝突時に衝撃音として発散される。言い換えると、衝突時に振動体の振動エネルギーが損失する。衝突時に振動体の振動エネルギーがどの程度損失するかは、例えば振動体の振動エネルギーと衝撃体の運動エネルギーとの関係に応じて変わる。そのため、衝撃体の運動エネルギーが同じであっても、衝突時点での振動体の振動状態によって、衝突後の楽音の発生の仕方は変わってくる。
【0045】
ここで、シンバルを例に取り、振動中の振動体に対して衝撃を与えた場合の楽音の特徴について説明する。図5A図5Cは、シンバル(振動体)をスティック(衝撃体)で叩いた場合の楽音の振幅を示す。図5A図5Cの各図中、縦軸は振幅を示し、横軸は時間を示す。
【0046】
図5Aは、A時点でシンバルをスティックで強く叩いた直ぐ後(A時点)に弱く叩くケース(以下「ケースA」と記す。)を示す。ケースAでは、A時点の強打で発生した振動が時間経過に応じた自然な減衰を続けていく。そのため、A時点以降、強打による振動で発生した楽音が徐々に減衰するように聞こえる。そして、A時点では、軽打による衝撃音が上記振動による楽音とは別に発生するように聞こえる。これは、A時点の強打で発生した振動エネルギーがA時点の軽打による衝撃によっては殆ど損失しないからである。そのため、A時点の強打で発生した振動は、A時点以降も、実質的に、時間経過に応じた自然な減衰を続けていくこととなる。
【0047】
図5Bは、B時点でシンバルをスティックで弱く叩いた直ぐ後(B時点)に強く叩くケース(以下「ケースB」と記す。)を示す。ケースBでは、B時点の軽打で発生した振動がB時点で残存していたとしても、この振動による楽音は、B時点の強打による衝撃音に対してかなり小さいため、衝撃音で殆ど聞こえないくらいかき消される。この振動がB時点以降急速に減衰するとしても時間経過に応じた自然な減衰を続けていくとしても、B時点以降の楽音の聞こえ方はあまり変わらない。
【0048】
図5Cは、符号C~Cの各時点でシンバルをスティックで同程度の強さで叩くケース(以下「ケースC」と記す。)を示す。ケースCでは、振幅は、各時点の衝撃直後に大きくなるものの、直ぐにある程度の範囲内に収束する。これは、振動体(シンバル)の振幅に物理的制限がかかり振動体がエネルギーを溜め込まず、衝突時に衝撃音として発散されるエネルギーが衝撃体の運動エネルギーと変わらないくらい大きくなるからである。
【0049】
ケースA~Cの楽音を電子楽器(具体的には電子ピアノ)を用いて再現する場合を考える。例えば特許文献1に記載の電子楽器では、前回の操作で発生していた楽音が、今回の押鍵時のベロシティが前回の押鍵時のベロシティよりも大きい場合には通常よりも倍の速度で減衰され、そうでない場合には通常速度で減衰される。そのため、例えばケースAにおいて、A時点の押鍵時のベロシティがA時点の押鍵時のベロシティよりも大きい場合、A時点で発生した振動がA時点以降に不必要に速く減衰して楽音が不自然になる虞がある。また、例えばケースCにおいて、C時点の押鍵時のベロシティがC時点の押鍵時のベロシティよりも同じ又は小さい場合、各押鍵操作後に振動がある程度の範囲内に直ぐには収束せず音量が不自然に膨れ上がることが起こり得る。
【0050】
そこで、本実施形態では、連打操作時の楽音を自然な楽音に近付けるように、次に説明する押鍵処理を実行する。
【0051】
本実施形態に係る押鍵処理では、連打操作で衝撃を加えようとしている振動体の振幅値(第1振幅値a)と今回の押鍵の強さ(第2振幅値b)との比に基づいて、第1楽音の減衰速度(より詳細には、既に発生している楽音のピッチ、音色、音量の連打消音時の変化速度)が調整される。ジェネレータセクション19A_1~19A_128がここでの振動体に相当する。振動体の振幅値(第1振幅値a)は、ジェネレータセクションのエンベロープ検出器19gにより検出される。
【0052】
図6は、プロセッサ10が電子楽器1の各部と協働して実行する押鍵処理のフローチャートである。図6に示されるように、プロセッサ10は、押鍵操作を検出したか否かを判定する(ステップS1)。キースキャナ18から押鍵操作に係る鍵のキーナンバとベロシティ値とを示す押鍵イベント情報がプロセッサ10に入力されると、押鍵操作が検出される(ステップS1:YES)。
【0053】
押鍵操作が検出されると(ステップS1:YES)、プロセッサ10は、ステップS1にて取得されたキーナンバと同じキーナンバの鍵に対する操作に応じた楽音(すなわち第1楽音)を発音中か否かを判定する(ステップS2)。第1楽音を発音中でない場合(ステップS2:NO)、プロセッサ10は、音源LSI19に対し、ステップS1にて取得された押鍵イベント情報に応じた発音を指示(言い換えると、第1楽音の発音を指示)する(ステップS3)。すなわち、ステップS3において、プロセッサ10は、鍵(演奏操作子)に対する第1操作に応じて第1楽音の発音を指示する楽音指示部101として動作する。この発音指示により、ジェネレータセクションにて波形データの読み出しが開始されるとともに各エンベロープジェネレータからエンベロープの出力が開始される。
【0054】
第1楽音を発音中の場合(ステップS2:YES)、プロセッサ10は、第1楽音の第1振幅値a(例えば第2操作時点の第1楽音の振幅値)を取得するとともに、今回の押鍵操作である第2操作に応じて発音させる第2楽音のための第2振幅値bを取得する(ステップS4)。すなわち、ステップS4において、プロセッサ10は、第1楽音の発音中における鍵(演奏操作子)への第2操作(第1操作と同じキーナンバの鍵に対する操作)に応じて、第1楽音の第1振幅値aを取得するとともに第2操作に応じて発音させる第2楽音のための第2振幅値bを取得する振幅値取得部102として動作する。
【0055】
プロセッサ10は、ステップS4にて取得された第1振幅値aと第2振幅値bとの比に基づいてパラメータ値rを決定し(ステップS5)、音源LSI19に対し、決定されたパラメータ値rに基づいて第1楽音の発音の減衰を指示する(ステップS6)。
【0056】
詳しくは後述するが、パラメータ値rは、第1楽音の減衰速度を調整するためのパラメータ値である。このように、ステップS5において、プロセッサ10は、第1振幅値aと第2振幅値bとの比に基づいて、第1楽音の減衰速度を調整するためのパラメータ値rを決定するパラメータ値決定部103として動作する。
【0057】
ステップS6の指示によって、パラメータ値rに基づく第1楽音の減衰速度の調整が行われることにより、連打操作時に音量が不自然に膨れ上がったり不必要に速い減衰によって楽音が不自然になったりすることが避けられる。これにより、連打操作時の楽音をアコースティック楽器のような自然な楽音の特性に近付けることができる。
【0058】
上述したように、第2操作時点で前回までの押鍵操作に応じた第1楽音が発音中である場合、図6のステップS4~S6の処理が実行される。ステップS4~S6の処理の実行により、連打操作時の楽音を自然な楽音の特性に近付けることができる。そこで、ステップS4~S6の処理の詳細を、図7のフローチャートを用いて説明する。
【0059】
図7に示されるように、プロセッサ10は、キースキャナ18より入力した押鍵イベント情報に含まれるキーナンバ及びベロシティ値を取得する(ステップS101)。便宜上、このベロシティ値に符号vを付す。ベロシティ値vは、最小値1~最大値127である。
【0060】
プロセッサ10は、ROM12に記憶された複数の波形データ121のなかから、現在設定されている音色(ギター、ピアノ等)と、ステップS101にて取得されたキーナンバ及びベロシティ値vに応じて決まる波形データの情報を取得する(ステップS102)。
【0061】
プロセッサ10は、今回の押鍵の速さ(別の観点では押鍵の強さ)を示すベロシティ値vを用いて、今回の押鍵操作に応じた楽音の第2振幅値bを取得する(ステップS103)。第2振幅値bは、「今回の押鍵操作(第2操作)に応じた第2楽音のための第2振幅値」と記すこともできる。ここでは、第2振幅値bを取得する具体例として、次式(1)を用いて第2振幅値bを計算する方法を示す。
【0062】
[式(1)]
b=(v/127)×100
【0063】
図8は、式(1)により計算される第2振幅値bとベロシティ値vとの関係を示すグラフである。図8中、縦軸は第2振幅値bを示し、横軸はベロシティ値vを示す。図8に示されるように、第2振幅値bはベロシティ値vに応じて指数関数的に増加する。第2振幅値bは、最小値0~最大値100である。
【0064】
ジェネレータセクション19A_1~19A_128には、それぞれ、番号1~128が割り当てられている。プロセッサ10は、ステータスを確認する対象のジェネレータセクションの番号を示す変数nを1に設定する(ステップS104)。便宜上、ステータスを確認する対象のジェネレータセクションを「対象ジェネレータセクション」と記す。
【0065】
プロセッサ10は、変数nと同じ番号が割り当てられた対象ジェネレータセクションのステータスを確認する(ステップS105)。具体的には、プロセッサ10は、対象ジェネレータセクションが楽音の生成に現在使用されているか否かを確認する。
【0066】
対象ジェネレータセクションが楽音の生成に現在使用されている場合(ステップS105:YES)、プロセッサ10は、対象ジェネレータセクションのエンベロープ検出器19gにて検出されるエンベロープの値を取得する(ステップS106)。取得されるエンベロープの値は、最小値0~最大値100である。
【0067】
プロセッサ10は、図7の押鍵処理の実行を開始してからこれまでのステップS106にて取得された各エンベロープの値と今回のステップS106にて取得されたエンベロープの値とを比較し、今回のステップS106にて取得されたエンベロープの値が最も小さい値かどうかを判定する(ステップS107)。
【0068】
今回のステップS106にて取得されたエンベロープの値が最も小さい値の場合(ステップS107:YES)、プロセッサ10は、対象ジェネレータセクションを、今回の押鍵操作に応じた楽音の生成に使用する候補として設定する(ステップS108)。便宜上、候補として設定されたジェネレータセクションを「割当候補ジェネレータセクション」と記す。なお、割当候補ジェネレータセクションが既に設定されている場合は、対象ジェネレータセクションが新たな割当候補ジェネレータセクションとして上書きで設定される。今回のステップS106にて取得されたエンベロープの値が最も小さい値でない場合(ステップS107:NO)、プロセッサ10は、対象ジェネレータセクションを割当候補ジェネレータセクションとして設定しない。
【0069】
プロセッサ10は、対象ジェネレータセクションがステップS101にて取得されたキーナンバと同じキーナンバで楽音の生成処理中か否かを判定する(ステップS109)。同じキーナンバで楽音の生成処理中の場合(ステップS109:YES)、プロセッサ10は、ステップS110の消音処理を実行したうえでステップS113へ進む。
【0070】
なお、対象ジェネレータセクションがステップS101にて取得されたキーナンバと同じキーナンバで楽音の生成処理中の場合、今回のステップS106にて取得されたエンベロープの値は、今回押鍵されたキーナンバの鍵に対する前回までの押鍵操作に応じて発音された楽音の現在の振幅値を示す。この振幅値は、「第1操作に応じた第1楽音の第1振幅値a」と記すこともできる。
【0071】
このように、ステップS103及びS106において、プロセッサ10は、演奏操作子(本実施形態では鍵盤17の鍵)への第1操作に応じた第1楽音の発音中における第2操作(第1操作と同じキーナンバの鍵に対する操作)に応じて、第1楽音の第1振幅値aを取得するとともに第2操作に応じて発音させる第2楽音のための第2振幅値bを取得する振幅値取得部102として動作する。
【0072】
対象ジェネレータセクションがステップS101にて取得されたキーナンバと異なるキーナンバで楽音の生成処理中の場合(ステップS109:NO)、プロセッサ10は、ステップS110の消音処理を実行せずに、ステップS113へ進む。
【0073】
図9は、消音処理のフローチャートである。
【0074】
上述したケースA~Cを勘案すると、先の操作で発生した楽音の振幅値(第1振幅値a)と今回の操作で発生した楽音の振幅値(第2振幅値b)とが同程度であるほど、第1楽音を速く減衰させなければ不自然な楽音(音量が不自然に膨れ上がる楽音)が生じやすい。また、第1振幅値aと第2振幅値bの程度が異なる場合ほど、第1楽音を速く減衰させたときに楽音が不自然になる虞がある。
【0075】
そこで、プロセッサ10は、第1振幅値aと第2振幅値bとの比(a/b)に基づいて、第1楽音の減衰速度を調整するためのパラメータ値rを決定する(ステップS201)。より詳細には、プロセッサ10は、比(a/b)が1に近いほど、第1楽音の減衰速度を速める値にパラメータ値を決定する。このように、ステップS201において、プロセッサ10は、パラメータ値rを決定するパラメータ値決定部103として動作する。
【0076】
ここでは、パラメータ値rを決定する具体例として、次式(2)を用いてパラメータ値rを計算する方法を示す。
【0077】
[式(2)]
r=100/(1+|log(a/b)|)
【0078】
図10は、式(2)により計算されるパラメータ値rと比(a/b)との関係を示すグラフである。図10中、縦軸はパラメータ値rを示し、横軸は比(a/b)を示す。パラメータ値rは、0より大きくかつ100以下の値を取る(図10ではグラフの一部を省略)。図10に示されるように、概ね、比(a/b)が1に近いほどパラメータ値rが大きな値を取る。
【0079】
本実施形態では、上述したように、楽音の生成に使用する波形データを演奏操作子に対する操作の強さ(言い換えるとベロシティ値)に応じて切り替える方式を採用している。この方式は、例えばベロシティスプリット方式と呼称される。ベロシティスプリット方式を採用する電子楽器1に対し、上記ケースCの如く同程度の強さで連打操作が行われると、ROM12から同じ波形データが読み出される。この場合、前回までの押鍵操作によって発生した第1楽音が大きな音量で残存していると、この第1楽音と今回の押鍵操作によって発生した第2楽音とが位相干渉を起こし、連打操作後の楽音が不自然な楽音になる虞がある。
【0080】
本実施形態では、このような位相干渉を抑制するため、第1楽音の生成に用いられている波形データと、第2楽音の生成に用いられる波形データと、が同じか否かによって、第1楽音の減衰方法が変えられる。
【0081】
具体的には、プロセッサ10は、対象ジェネレータセクションにて読み出されている波形データ(第1波形データ)とステップS102にて取得された波形データ(第2波形データ)とが同じか否かを判定する(ステップS202)。両者が同じ波形データの場合(ステップS202:YES)、プロセッサ10は、変数wを1に設定したうえで(ステップS203)、ステップS205以降の処理を実行する。両者が異なる波形データの場合(ステップS202:NO)、プロセッサ10は、変数wを0に設定したうえで(ステップS204)、ステップS205以降の処理を実行する。
【0082】
連打消音時の各エンベロープの速度R5は、第1楽音の減衰速度を示す。ステップS205~S207では、比(a/b)に基づいて決定されたパラメータ値rを用いて各エンベロープの速度R5が調整される。
【0083】
具体的には、ステップS205において、プロセッサ10は、パラメータ値rに基づいて連打消音時のピッチエンベロープの速度R5(以下「速度R5」と記す。)を調整する。ここでは、次式(3)を用いて速度R5を調整する。なお、速度R5は、最小値0~最大値100である。次式(3)により速度R5が100を超える場合、速度R5は100にクリップされる。
【0084】
[式(3)]
R5=R5P0+(PDP1×r/100)+PDP2×w

R5P0:調整前の速度R5
DP1、PDP2:速度R5の調整の深さ
【0085】
速度R5P0は、式(3)による調整処理前の速度R5であり、最小値0~最大値100である。ここで、本実施形態では、元の速度である速度R5P0に対してパラメータ値rに基づいて取得される値を加算することにより、速度R5が調整される。そのため、調整後の速度R5は、調整前の速度R5P0よりも高い値になる。式(3)で計算される速度R5の範囲が0~100となるように、式(3)において、速度R5P0の値は、設定可能な範囲のなかで最も小さい値である0に設定される。
【0086】
深さPDP1及び深さPDP2は、速度R5の調整の深さ(度合い)であり、最小値0~最大値100である。深さPDP1及び深さPDP2は、例えば楽音の音色(ギター、ピアノ等)毎、キーナンバ毎に適切な値が予め設定されている。なお、スイッチパネル13に対するユーザ操作によって深さPDP1及び深さPDP2の値を変更できるようにしてもよい。
【0087】
ステップS206において、プロセッサ10は、パラメータ値rに基づいて連打消音時のフィルタエンベロープの速度R5(以下「速度R5」と記す。)を調整する。ここでは、次式(4)を用いて速度R5を調整する。なお、速度R5は、最小値0~最大値100である。次式(4)により速度R5が100を超える場合、速度R5は100にクリップされる。
【0088】
[式(4)]
R5=R5F0+(FDP1×r/100)+FDP2×w

R5F0:調整前の速度R5
DP1、FDP2:速度R5の調整の深さ
【0089】
速度R5F0は、式(4)による調整処理前の速度R5であり、最小値0~最大値100である。速度R5F0の値も速度R5P0と同様の理由で、式(4)において0に設定される。
【0090】
深さFDP1及び深さFDP2は、速度R5の調整の深さ(度合い)であり、最小値0~最大値100である。深さFDP1及び深さFDP2も深さPDP1と同様に、音色毎、キーナンバ毎に適切な値が予め設定されてもよく、また、ユーザ操作によって変更可能であってもよい。
【0091】
ステップS207において、プロセッサ10は、パラメータ値rに基づいて連打消音時のアンプエンベロープの速度R5(以下「速度R5」と記す。)を調整する。ここでは、次式(5)を用いて速度R5を調整する。なお、速度R5は、最小値0~最大値100である。次式(5)により速度R5が100を超える場合、速度R5は100にクリップされる。
【0092】
[式(5)]
R5=R5A0+(ADP1×r/100)+ADP2×w

R5A0:調整前の速度R5
DP1、ADP2:速度R5の調整の深さ
【0093】
速度R5A0は、式(5)による調整処理前の速度R5であり、最小値0~最大値100である。速度R5A0の値も速度R5P0と同様の理由で、式(5)において0に設定される。
【0094】
深さADP1及び深さADP2は、速度R5の調整の深さ(度合い)であり、最小値0~最大値100である。深さADP1及び深さADP2も深さPDP1と同様に、音色毎、キーナンバ毎に適切な値が予め設定されてもよく、また、ユーザ操作によって変更可能であってもよい。
【0095】
対象ジェネレータセクションにて読み出されている波形データ(第1波形データ)と、ステップS102にて取得された波形データ(第2波形データ)とが同じ場合に限り、式(3)~(5)において、(PDP2×w)の項は0より大きい値を取る。すなわち、第1楽音と第2楽音との位相干渉を抑制すべく、両者の波形データが同じ場合、式(3)~(5)にて、より速い減衰速度が算出される。そのため、第1波形データと第2波形データとが同じ場合、両者の波形データが異なる場合と比べて、第1楽音の減衰速度がより速い速度に調整されることとなる。これにより、第1楽音と第2楽音との位相干渉による不自然な楽音の発生を避けることが可能となる。
【0096】
プロセッサ10は、ステップS205にて調整された第1楽音の速度R5を対象ジェネレータセクションのピッチエンベロープジェネレータ19bに設定する(ステップS208)。これにより、連打消音時のピッチエンベロープ(より詳細には、第1楽音の連打消音時のピッチの変化速度)が式(3)を用いて調整された値となる。
【0097】
プロセッサ10は、ステップS206にて調整された第1楽音の速度R5を対象ジェネレータセクションのフィルタエンベロープジェネレータ19dに設定する(ステップS209)。これにより、連打消音時のフィルタエンベロープ(より詳細には、第1楽音の連打消音時のカットオフ周波数の変化速度)が式(3)を用いて調整された値となる。
【0098】
プロセッサ10は、ステップS207にて調整された第1楽音の速度R5を対象ジェネレータセクションのアンプエンベロープジェネレータ19fに設定する(ステップS210)。これにより、連打消音時のアンプエンベロープ(より詳細には、第1楽音の連打消音時の音量レベルの変化速度)が式(3)を用いて調整された値となる。
【0099】
このように、ステップS208~S210において、プロセッサ10は、ステップS205~S207で計算された第1楽音の減衰速度を対象ジェネレータセクションに設定する。言い換えると、プロセッサ10は、ステップS201にて決定されたパラメータ値rに基づいて第1楽音の発音の減衰を対象ジェネレータセクションに指示する。附言するに、プロセッサ10は、対象ジェネレータセクションにて読み出されている波形データ(第1波形データ)と、ステップS102にて取得された波形データ(第2波形データ)とが同じ場合、両者の波形データが異なる場合と比べて、第1楽音の減衰速度として速い速度を指示する。
【0100】
図7の説明に戻る。対象ジェネレータセクションが楽音の生成に現在使用されていない場合(ステップS105:NO)、プロセッサ10は、今回の押鍵操作に応じた楽音を生成するジェネレータセクションを既に割り当てたか否かを判定する(ステップS111)。便宜上、今回の押鍵操作に応じた楽音を生成するジェネレータセクションとして割り当てられたものを「使用割当ジェネレータセクション」と記す。
【0101】
使用割当ジェネレータセクションが割り当てられていない場合(ステップS111:NO)、プロセッサ10は、対象ジェネレータセクションを使用割当ジェネレータセクションとして割り当てて(ステップS112)、ステップS113へ進む。使用割当ジェネレータセクションが既に割り当てられている場合(ステップS111:YES)、プロセッサ10は、ステップS112を実行せずに、ステップS113へ進む。
【0102】
プロセッサ10は、変数nを1インクリメントする(ステップS113)。プロセッサ10は、インクリメント後の変数nが129か否かを判定する(ステップS114)。変数nが129でない場合(ステップS114:NO)、プロセッサ10は、ステップS105に戻り、インクリメント後の変数nと同じ番号が割り当てられた対象ジェネレータセクションに対してステップS105以降の処理を実行する。
【0103】
なお、連打の間隔が短い場合、瞬間的ではあるものの、今回押鍵されたキーナンバと同じキーナンバの楽音を複数基のジェネレータセクションで並行して生成する状況が発生し得る。この場合、同じキーナンバの楽音を生成する全てのジェネレータセクションに対し、ステップS110の消音処理が実行されることとなる。
【0104】
変数nが129の場合(ステップS114:YES)、128基全てのジェネレータセクション19A_1~19A_128に対してステータス確認等の処理が完了した状態にある。そこで、プロセッサ10は、使用割当ジェネレータセクションを割り当て済みか否かを判定する(ステップS115)。
【0105】
使用割当ジェネレータセクションを割り当てていない場合(ステップS115:NO)、プロセッサ10は、ステップS108にて最終的に設定された割当候補ジェネレータセクションを使用割当ジェネレータセクションとして割り当てて(ステップS116)、割り当てられた使用割当ジェネレータセクションに対して所定の速度での(例えば即時の)ダンプ処理を行ったうえで(ステップS117)、ステップS118に進む。使用割当ジェネレータセクションを割り当て済みの場合(ステップS115:YES)、プロセッサ10は、ステップS116の割当処理及びS117のダンプ処理を実行せずに、ステップS118に進む。
【0106】
プロセッサ10は、第2楽音のピッチを時間的に変化させるため、現在設定されている音色及び押鍵イベント情報より取得される情報から、ピッチエンベロープのレベルL0、L1及び速度R1を設定する(ステップS118)。
【0107】
プロセッサ10は、第2楽音に対するカットオフ周波数を時間的に変化させるため、現在設定されている音色及び押鍵イベント情報より取得される情報から、フィルタエンベロープのレベルL0、L1及び速度R1を設定する(ステップS119)。
【0108】
プロセッサ10は、第2楽音の音量レベル(言い換えるとアンプ19eの増幅率)を時間的に変化させるため、現在設定されている音色及び押鍵イベント情報より取得される情報から、アンプエンベロープのレベルL0、L1及び速度R1を設定する(ステップS120)。
【0109】
プロセッサ10は、音源LSI19に対し、図7の押鍵処理で設定された使用割当ジェネレータセクションの発音指示を出す(ステップS121)。この発音指示により、使用割当ジェネレータセクションにて波形データの読み出しが開始されるとともに各エンベロープジェネレータからエンベロープの出力が開始されて、図7の押鍵処理が終了する。
【0110】
図11図13を用いて、図7の押鍵処理の実行により第1楽音の減衰速度を調整した場合の効果を説明する。
【0111】
図11は、ケース1を説明する図である。ケース1は、第1振幅値aが大きい時に第1操作と同じキーナンバの鍵が弱く押された(言い換えると、第1振幅値aが大きく第2振幅値bが小さい)ケースである。
【0112】
図12は、ケース2を説明する図である。ケース2は、第1振幅値aが小さい時に第1操作と同じキーナンバの鍵が強く押された(言い換えると、第1振幅値aが小さく第2振幅値bが大きい)ケースである。
【0113】
図13は、ケース3を説明する図である。ケース3は、第1振幅値aが中程度の時に第1操作と同じキーナンバの鍵が中程度の強さで押された(言い換えると、第1振幅値aが中程度で第2振幅値bも中程度の)ケースである。
【0114】
図11図13の各図中、上段図は第1楽音の振幅値を示し、下段図は第2楽音の振幅値を示す。図11図13の何れの図においても縦軸は振幅値を示し、横軸は時間を示す。上段図の破線は比較例の第1楽音の振幅値を示し、上段図の実線は実施例の第1楽音の振幅値を示す。符号Tは、第1操作が行われた時点を示し、符号Tは、第2操作が行われた時点を示す。図11図13の何れの図も、振幅が操作時点で最大値に瞬時に増加しその後徐々に減衰する様子を示す模式的な図となっている。
【0115】
各ケースにおいて、比較例と実施例の第1楽音を比較するため、第2楽音は比較例と実施例で同じとする。第1楽音については、減衰速度以外は比較例と実施例で同じとする。比較例の第1楽音は、パラメータ値rに基づく減衰速度の調整が行われない場合の第1楽音(言い換えると、エンベロープを調整する前の第1楽音)であり、既定の速度で減衰される。実施例の第1楽音は、図7の押鍵処理の実行によりパラメータ値rに基づく減衰速度の調整が行われた場合の第1楽音(言い換えると、エンベロープ調整後の第1楽音)である。
【0116】
例えばケースCでは、実施例の第1楽音の減衰速度が比較例に対して大幅に速められている。ケースCのように、同程度の強さで連打操作された場合(言い換えると、比(a/b)が1に近い場合)、図7の押鍵処理の実行により第1楽音の減衰速度が大幅に速められることにより、各押鍵操作直後に音量が不自然に膨れ上がることが避けられる。
【0117】
例えばケースAやケースBでは、比較例と実施例とで第1楽音の減衰速度はあまり変わらない。これらのケースのように、第1振幅値aと第2振幅値bとの比(a/b)が1に近くない場合、図7の押鍵処理の実行により第1楽音の減衰速度があまり速めないことで、不必要に速い減衰によって楽音が不自然になることが避けられる。
【0118】
このように、本実施形態では、振動体の現在の第1振幅値aと今回の押鍵操作に応じて発音させる第2楽音のための第2振幅値bとの比(a/b)に基づいてパラメータ値rを都度計算し、計算されたパラメータ値rを用いて第1楽音を減衰させるため(言い換えると、比(a/b)が1に近いほど第1楽音を速く減衰させるため)、アコースティック楽器のような自然な楽音の特性に近付けることができる。
【0119】
その他、本発明は上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上述した実施形態で実行される機能は可能な限り適宜組み合わせて実施しても良い。上述した実施形態には種々の段階が含まれており、開示される複数の構成要件による適宜の組み合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、効果が得られるのであれば、この構成要件が削除された構成が発明として抽出され得る。
【0120】
上記実施形態では、第1楽音のピッチ、音色、音量の全てに対し、パラメータ値rに基づく連打消音時の変化速度の調整を行ったが、本発明の構成はこれに限らない。第1楽音のピッチ、音色、音量のうち1つ又は2つに対し、パラメータ値rに基づく連打消音時の変化速度の調整を行った場合にも自然な楽音の特性に近付ける効果が得られる。
【0121】
以下、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[付記1]
演奏操作子と、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、
前記演奏操作子への第1操作に応じて、第1楽音の発音を指示し、
前記第1楽音の発音中における前記演奏操作子への第2操作に応じて、前記第1楽音の第1振幅値を取得するとともに前記第2操作に応じて発音させる第2楽音のための第2振幅値を取得し、
前記第1振幅値と前記第2振幅値との比に基づいて、前記第1楽音の減衰速度を調整するためのパラメータ値を決定し、
決定された前記パラメータ値に基づいて、前記第1楽音の発音の減衰を指示する、
電子楽器。
[付記2]
前記パラメータ値は、前記第1振幅値と前記第2振幅値との比が1に近いほど、前記第1楽音の減衰速度を速める値に決定される、
付記1に記載の電子楽器。
[付記3]
前記パラメータ値は、次式により決定される、
パラメータ値=100/(1+|log(a/b)|)
但し、aは、前記第1振幅値であり、bは、前記第2振幅値である、
付記1又は付記2に記載の電子楽器。
[付記4]
前記少なくとも1つのプロセッサは、
複数の波形データのなかから、前記演奏操作子に対する操作の強さに応じた波形データを読み出し、
前記第1操作に応じて読み出される第1波形データと前記第2操作に応じて読み出される第2波形データとが同じ場合、前記第1波形データと前記第2波形データとが異なる場合と比べて、前記第1楽音の減衰速度として速い速度を指示する、
付記1から付記3の何れか一項に記載の電子楽器。
[付記5]
前記少なくとも1つのプロセッサは、前記第1楽音のピッチ、音色、音量のうち少なくとも1つに対し、前記パラメータ値に基づく減衰速度の調整を行う、
付記1から付記4の何れか一項に記載の電子楽器。
[付記6]
コンピュータに、
電子楽器の演奏操作子への第1操作に応じて、第1楽音の発音を指示させ、
前記第1楽音の発音中における前記演奏操作子への第2操作に応じて、前記第1楽音の第1振幅値を取得させるとともに前記第2操作に応じて発音させる第2楽音のための第2振幅値を取得させ、
前記第1振幅値と前記第2振幅値との比に基づいて、前記第1楽音の減衰速度を調整するためのパラメータ値を決定させ、
決定された前記パラメータ値に基づいて、前記第1楽音の発音の減衰を指示させる、
方法。
[付記7]
コンピュータに、
電子楽器の演奏操作子
への第1操作に応じて、第1楽音の発音を指示させ、
前記第1楽音の発音中における前記演奏操作子への第2操作に応じて、前記第1楽音の第1振幅値を取得させるとともに前記第2操作に応じて発音させる第2楽音のための第2振幅値を取得させ、
前記第1振幅値と前記第2振幅値との比に基づいて、前記第1楽音の減衰速度を調整するためのパラメータ値を決定させ、
決定された前記パラメータ値に基づいて、前記第1楽音の発音の減衰を指示させる、
プログラム。
【符号の説明】
【0122】
1 :電子楽器
10 :プロセッサ
11 :RAM
12 :ROM
13 :スイッチパネル
14 :入出力インタフェース
15 :LCD
16 :LCDコントローラ
17 :鍵盤
18 :キースキャナ
19 :音源LSI
19A_1~19A_128 :ジェネレータセクション
19B :ミキサ
19a :波形ジェネレータ
19b :ピッチエンベロープジェネレータ
19c :フィルタ
19d :フィルタエンベロープジェネレータ
19e :アンプ
19f :アンプエンベロープジェネレータ
19g :エンベロープ検出器
20 :D/Aコンバータ
21 :アンプ
101 :発音指示部
102 :振幅値取得部
103 :パラメータ値決定部
図1
図2
図3
図4A
図4B
図4C
図5A
図5B
図5C
図6
図7
図8
図9
図10
図11
図12
図13