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

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

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

特許6260191電子楽器、プログラム及び発音音高選択方法
<>
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000002
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000003
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000004
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000005
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000006
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000007
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000008
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000009
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000010
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000011
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000012
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000013
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000014
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000015
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000016
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000017
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000018
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000019
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000020
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000021
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000022
  • 特許6260191-電子楽器、プログラム及び発音音高選択方法 図000023
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6260191
(24)【登録日】2017年12月22日
(45)【発行日】2018年1月17日
(54)【発明の名称】電子楽器、プログラム及び発音音高選択方法
(51)【国際特許分類】
   G10H 1/18 20060101AFI20180104BHJP
【FI】
   G10H1/18 101
【請求項の数】4
【全頁数】28
(21)【出願番号】特願2013-218058(P2013-218058)
(22)【出願日】2013年10月21日
(65)【公開番号】特開2015-81927(P2015-81927A)
(43)【公開日】2015年4月27日
【審査請求日】2016年8月23日
(73)【特許権者】
【識別番号】000004075
【氏名又は名称】ヤマハ株式会社
(74)【代理人】
【識別番号】100123881
【弁理士】
【氏名又は名称】大澤 豊
(74)【代理人】
【識別番号】100080931
【弁理士】
【氏名又は名称】大澤 敬
(72)【発明者】
【氏名】安良岡 直希
【審査官】 上田 雄
(56)【参考文献】
【文献】 特開2010−079179(JP,A)
【文献】 特許第2565069(JP,B2)
【文献】 特開平06−149261(JP,A)
【文献】 特開2003−140654(JP,A)
【文献】 特開2005−010438(JP,A)
【文献】 特開2006−126710(JP,A)
【文献】 特開平11−024665(JP,A)
【文献】 米国特許第06316710(US,B1)
【文献】 米国特許出願公開第2008/0066609(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G10H 1/00−7/12
(57)【特許請求の範囲】
【請求項1】
それぞれ音高と対応する複数の操作部の操作状態に応じて、発音する音高を選択する1又は複数の選択手段と、
前記選択手段毎に、前記操作部の発音停止操作に応じて該選択手段に発音する音高の選択を行わせるか否かを決定する決定手段と、
前記操作部の発音停止操作があった場合に、前記決定手段が音高の選択を行わせると決定した選択手段に、該発音停止操作後の前記複数の操作部の操作状態に応じて発音する音高を選択するよう指示する制御手段とを備え
前記決定手段は、ユーザが各選択手段について行った、発音停止操作に応じた発音音高の選択有無の設定に基づき、前記決定を行うことを特徴とする電子楽器。
【請求項2】
請求項に記載の電子楽器であって、
前記決定手段は、特定の操作子が操作されている期間は、前記各選択手段のうち予め定めた選択手段について、強制的に、前記発音停止操作に応じた音高の選択を行わせない又は行わせるのうちいずれか一方に決定することを特徴とする電子楽器。
【請求項3】
コンピュータを、
それぞれ音高と対応する複数の操作部の操作状態に応じて、発音する音高を選択する1又は複数の選択手段と、
前記選択手段毎に、前記操作部の発音停止操作に応じて該選択手段に発音する音高の選択を行わせるか否かを決定する決定手段と、
前記操作部の発音停止操作があった場合に、前記決定手段が音高の選択を行わせると決定した選択手段に、該発音停止操作後の前記複数の操作部の操作状態に応じて発音する音高を選択するよう指示する制御手段として機能させるためのプログラムであって、
前記決定手段は、ユーザが各選択手段について行った、発音停止操作に応じた発音音高の選択有無の設定に基づき、前記決定を行うことを特徴とするプログラム
【請求項4】
発音を指示する複数の操作部の操作状態に応じて1又は複数の選択手段がそれぞれ発音する音高を選択する選択手順と、
前記選択手段毎に、前記操作部の発音停止操作に応じて該選択手段に発音する音高の選択を行わせるか否かを決定する決定手順と、
前記操作部の発音停止操作があった場合に、前記決定手順で音高の選択を行わせると決定した選択手段に、該発音停止操作後の前記複数の操作部の操作状態に応じて発音する音高を選択するよう指示する制御手順とを備え
前記決定手順は、ユーザが各選択手段について行った、発音停止操作に応じた発音音高の選択有無の設定に基づき、前記決定を行う手順であることを特徴とする発音音高選択方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、複数の操作部の操作状態に応じて発音する音高を選択する電子楽器、コンピュータにこのような音高選択機能を実現させるためのプログラム、および、複数の操作部の操作状態に応じて発音する音高を選択する発音音高選択方法に関する。
【背景技術】
【0002】
従来から、電子楽器において、押鍵されている音高の中から予め定めたルールに従って発音すべき音高を選択するアサイナを複数設け、各アサイナが選択した音高を、そのアサイナと対応する音色で発音させることが知られている。
【0003】
そして、この複数のアサイナを用いることにより、例えば1のアサイナに低音側の音高を選択させ、他のアサイナに高音側の音高を選択させるようにルールを定めておけば、自動的に低音側と高音側の音(例えば伴奏とメロディー)を異なる音色で弾き分けることができる。また、ルールの設定によっては、複数のアサイナに同じ音高を選択させ複数パートのユニゾン演奏のような発音を行ったり、複数のアサイナにそれぞれ異なる音高を選択させ複数パートのアンサンブル演奏のような発音を行ったりすることもできる。
このような電子楽器については、例えば特許文献1に記載がある。
【0004】
また、特許文献2には、電子楽器において、押鍵されたノートに、押鍵数に応じた規則で所定数のパートを割り当て、各ノートを、そのノートに割り当てたパートの音色で発音させる電子楽器が開示されている。この電子楽器によれば、押鍵数によらず、常に所定数のパートを発音させることができる。
【0005】
またこれらの他、特許文献3には、電子楽器における、1つの鍵に対応する音しか発音しない所謂モノアサイナに関する技術が開示されている。特許文献3には、モノアサイナの機能を有効にして演奏を行う際に、弾き間違いがあった場合でも発音させたい楽音を容易に再発音させるための手法として、発音中の鍵が離鍵された場合に、押鍵中の鍵のうち、その離鍵された鍵に最も近い鍵に対応する楽音を発音することが記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第2565069号公報
【特許文献2】特開2010−79179号公報
【特許文献3】特開平5−143073号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、上述の複数のアサイナを用いてそれぞれ発音すべき音高を選択する場合において、特許文献1に記載の方式では、必ずしも望ましい発音ができるとは限らなかった。
例えば、レガート演奏を行う場合のように、前の音と次の音を続けて演奏する場合、前の音の鍵を離鍵する前に、次の音の鍵を押鍵する場合の発音に、不都合があった。
【0008】
図15にこの例を示す。図15において、縦軸が時間、横軸が音高であり、各音高における帯が、その音高の鍵を押鍵している期間を示す。図15の例において、音高n4の鍵が押鍵され、これが離鍵される前に、音高n3の鍵が押鍵されている。そして、その後音高n4の鍵はすぐに離鍵されていることから、この演奏は音高n4の音と音高n3の音を続けて発音させることを意図した演奏であると推測できる。
【0009】
しかしながら、特許文献1に記載の方式では、押鍵操作に応じて各アサイナに発音すべき音高を選択させる一方、離鍵操作の際には、離鍵された鍵と対応する音を発音中の発音チャンネルにキーオフ信号を送るのみである。すなわち、離鍵操作の際には、アサイナによる音高を選択は行わない。
【0010】
従って、例えば初めに音高n4の鍵が(n1及びn2の鍵と同時に)押鍵されるKON1,2,4のタイミングでは、各アサイナは音高n1,n2,n4の3つの鍵が押鍵された状態で発音すべき音高を選択することになる。しかし、音高n3の鍵が押鍵されるKON3のタイミングでは、各アサイナは、音高n1〜n4の4つの鍵が押鍵されている状態で音高の選択を行うこととなってしまう。また、その後すぐに音高n4の鍵が離鍵されるKOFF4のタイミングでは、単に音高n4について発音している音を消音することになる。
【0011】
このため、KON1,2,4からKON3の期間と、KOFF4以降の期間とでは、押鍵されている鍵の音高順と、各アサイナが選択する音高との関係がずれてしまう可能性がある。すなわち、演奏操作からは、音高n4の音と音高n3の音とは続けて発音させる意図が推測できるのに、これらの音高の音を異なる音色で発音してしまい、不自然な発音となってしまう可能性がある。
【0012】
特許文献2には、複数のアサイナを用いる方式とは異なるものの、このようなレガート演奏時に発音が不自然とならないようにするためのミスレガート処理について記載されている。このミスレガート処理は、発音中の最新ノートのノートオンからミスレガート判定時間以内にノートオフがあった場合に、その時点でノートへのパートの割り当てと発音をやり直すというものである。
【0013】
このようにすれば、図15のような演奏操作がなされた場合に、KON3からKOFF4までの期間がミスレガート判定時間以内であれば、KOFF4のタイミングで割り当てをやり直すことができ、KOFF4以降は音高n1〜n3の3つの押鍵と対応した発音を行うことができる。
【0014】
しかしながら、特許文献2のミスレガート処理では、ミスレガート判定時間の設定が難しいという問題がある。すなわち、前の鍵と後の鍵が重複して押鍵される時間がミスレガート判定時間を超えると、前の鍵の離鍵時に再割り当てが行われない。ミスレガート判定時間を短くするほど、レガート演奏操作がこの条件に該当してしまい、レガートと判定されなくなる危険が高くなる。
一方、ミスレガート判定時間を長くしすぎると、レガート演奏ではなく一部音を重ねることを意図した演奏であっても、前の鍵の離鍵時に再割り当てを行ってしまい、却って演奏者の意図と異なる発音になってしまうことが考えられる。
【0015】
また、特許文献2のミスレガート処理では、再割り当てを、再割り当て時点で押鍵中の全てのノートについて行うようになっている。このため、再割り当ての際に、レガート演奏と関係ない、図15における音高n1及びn2のような音についても意図せずパートの割り当てが変わってしまう可能性があるという問題があった。
【0016】
なお、以上のレガート演奏は、あくまでも望ましい演奏ができない場合の一例であり、これ以外にも、奏法や演奏内容と、アサイナにおける音高選択の規則との相性が悪いと、同様な問題が発生し得る。
また、このような問題は、電子楽器が鍵盤楽器でない場合であっても、それぞれ音高と対応する複数の操作部の操作状態に応じて、発音する音高を選択する場合には、同様に生じ得るものである。
【0017】
この発明は、このような事情に鑑みてなされたものであり、操作部の操作状態に応じて1又は複数の選択手段に発音する音高を選択させる場合において、演奏者の演奏操作の意図に合った発音を容易に行えるようにすることを目的とする。
【課題を解決するための手段】
【0018】
上記の目的を達成するため、この発明の電子楽器は、それぞれ音高と対応する複数の操作部の操作状態に応じて、発音する音高を選択する1又は複数の選択手段と、上記選択手段毎に、上記操作部の発音停止操作に応じてその選択手段に発音する音高の選択を行わせるか否かを決定する決定手段と、上記操作部の発音停止操作があった場合に、上記決定手段が音高の選択を行わせると決定した選択手段に、その発音停止操作後の上記複数の操作部の操作状態に応じて発音する音高を選択するよう指示する制御手段とを設け、上記決定手段が、ユーザが各選択手段について行った、発音停止操作に応じた発音音高の選択有無の設定に基づき、上記決定を行うものである。
【0021】
このような電子楽器において、上記決定手段が、特定の操作子が操作されている期間は、上記各選択手段のうち予め定めた選択手段について、強制的に、上記発音停止操作に応じた音高の選択を行わせない又は行わせるのうちいずれか一方に決定するようにするとよい。
この発明は、装置として実現する他、プログラム、方法、システム、その他任意の形態で実現することができる。
【発明の効果】
【0022】
以上のようなこの発明の電子楽器、プログラム及び発音音高選択方法によれば、操作部の操作状態に応じて1又は複数の選択手段に発音する音高を選択させる場合において、演奏者の演奏操作の意図に合った発音を容易に行えるようにすることができる。
【図面の簡単な説明】
【0023】
図1】本発明の第1実施形態である電子楽器のハードウェア構成を示すブロック図である。
図2図1に示した電子楽器における、アサイナを用いた発音制御に関連する機能の機能ブロック図である。
図3】アサイナに設定する、発音音高選択規則の例を示す図である。
図4】アサイナに設定する、キーオフリトリガー有無の例を示す図である。
図5図1に示した電子楽器においてCPUが実行する処理を示すフローチャートである。
図6図5に示した発音割り当て処理のフローチャートである。
図7図5に示したリトリガー設定処理のフローチャートである。
図8】第1実施形態のリトリガー設定処理の効果について説明するための説明図である。
図9】その別の説明図である。
図10】そのさらに別の説明図である。
図11】そのさらに別の説明図である。
図12】第2実施形態におけるリトリガー設定処理のフローチャートである。
図13】第2実施形態のリトリガー設定処理の効果について説明するための説明図である。
図14】第3実施形態の電子楽器の機能構成を示す、図2と対応する機能ブロック図である。
図15】電子楽器において行われる演奏操作の例を示す図である。
図16】操作履歴テーブルの例を示す図である。
図17】第3実施形態におけるリトリガー設定処理のフローチャートである。
図18】第3実施形態のリトリガー設定処理の効果について説明するための説明図である。
図19】その別の説明図である。
図20】そのさらに別の説明図である。
図21】そのさらに別の説明図である。
図22】アサイナに設定する、発音音高選択規則の、図3と異なる例を示す図である。
【発明を実施するための形態】
【0024】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
〔第1実施形態:図1乃至図11
図1は、本発明の第1実施形態である電子楽器のハードウェア構成を示すブロック図である。
図1に示すように、電子楽器10は、CPU11、ROM12、RAM13、記憶装置14、通信インタフェース(I/F)15、検出回路16、表示回路17、音源回路18を備え、これらをシステムバス19により接続している。また、電子楽器10は、CPU11に接続するタイマ21、検出回路16に接続する演奏操作子22及び設定操作子23、表示回路17に接続するディスプレイ24、音源回路18に接続するDAC(デジタルアナログ変換回路)25及びサウンドシステム26も備える。
【0025】
そして、CPU11が、RAM13をワークエリアとしてROM12又は記憶装置14に記憶された所要のプログラムを実行することにより、電子楽器10全体を制御し、演奏操作の検出、演奏操作子の操作状態に応じた発音音高の選択、その選択に従った発音の制御等の各種機能を実現する。CPU11に接続されるタイマ21は、基本クロック信号、割り込み処理タイミング等をCPU11に供給する。
なお、ROM12には、上記のプログラムの他、音色に対応する波形データなどの各種データファイル、各種パラメータ及び各種テーブル等も記憶する。
【0026】
RAM13は、CPU11のワークエリアの他、再生バッファ等のバッファ領域としても用いる。
記憶装置14は、ハードディスク、半導体メモリ等の記録媒体とその駆動装置の組み合わせの少なくとも1つで構成される。
【0027】
通信I/F15は、サーバ、音響機器、外部コントローラ等の外部装置と通信を行うためのインタフェースであり、有線、無線を問わず、任意の規格の通信手段を用いて構成することができる。例えば、USB(Universal Serial Bus)やMIDI(Musical Instrument Digital Interface)_I/Fを用いることが考えられる。
【0028】
検出回路16は、演奏操作子22及び設定操作子23をシステムバス19に接続するためのインタフェースである。
演奏操作子22は、検出回路16に接続され、ユーザの演奏動作に従い、演奏情報(演奏データ)を供給する。演奏操作子22は、ユーザの演奏操作を受け付けるための、それぞれ音高と対応する複数の操作部を備える。そして、該ユーザの操作部に対する操作開始タイミング及び終了タイミングを、それぞれユーザが操作した操作部に対応する音高の情報を含むキーオンデータ及びキーオフデータとして、検出回路16を通じてCPU11に供給する。また、演奏操作子22は、ユーザの演奏操作に応じてベロシティ値等の各種パラメータを供給することも可能である。なお、本実施例では、鍵盤型の演奏操作子22を備え、上記各操作部が鍵であるとして説明するが、これに限るものではない。
【0029】
また、演奏操作子22には、後述するキーオフリトリガーを一時的に無効にすることを指示するための、特定の操作子であるリトリガー解除操作子を含む。このリトリガー解除操作子は、鍵盤の演奏中に操作できるよう、ペダル等の手を使わずに操作できるものが望ましく、ここではペダルであるとする。
【0030】
また、設定操作子23は、例えば、ボタン、スライダ、ロータリーエンコーダ、文字入力用キーボード、マウス等、ユーザの入力に応じた信号を出力できるものならどのようなものでもよい。また、設定操作子23は、ディスプレイ24上に表示されるGUI(Graphical User Interface)に対する操作を行うためのポインティングデバイスや、ディスプレイ24に積層したタッチパネルでもよい。
いずれにせよ、ユーザは、設定操作子23を用いて、各種入力及び設定、選択をすることができる。
【0031】
表示回路17は、ディスプレイ24をシステムバス19に接続するためのインタフェースである。
ディスプレイ24は、電子楽器10の設定のための各種情報や、電子楽器10の動作状態等を表示するための表示手段であり、例えば液晶表示装置や発光ダイオード(LED)等により構成することができる。
【0032】
音源回路18は、CPU11からの発音指示に応じて、複数の発音ch(チャンネル)でそれぞれ楽音信号(デジタル波形データ)を生成する機能を備える。CPU11からの発音指示には、音色、音高、音量等の指定が含まれる。CPU11は、演奏操作子22の演奏操作を検出した場合に、アサイナの機能により、押鍵中の鍵の音高から、各アサイナと対応する発音を行わせる音高を選択し、その選択に従った発音を音源回路18に指示する。その詳細については後述する。
【0033】
そして、音源回路18は、生成した楽音信号をDAC25に出力する。DAC25はこの楽音信号をアナログ音響信号に変換し、DAC25に接続されているサウンドシステム26に供給する。サウンドシステム26は、アンプ、スピーカを含む発音手段であり、DAC25から供給されるアナログ音響信号を、発音出力する。DAC25及びサウンドシステム26は、電子楽器10の外部にあってもよい。
以上の電子楽器10において、特徴的な点は、アサイナの動作に関する点である。そこで、次にアサイナの動作についてより具体的に説明する。
【0034】
図2に、電子楽器10における、アサイナを用いた発音制御に関連する機能の機能ブロック図を示す。
図2に示すように、電子楽器10は、発音指示受付部31、操作状態検出部32、割当制御部33、楽音生成部34、キーオフリトリガー制御部35、キーオフリトリガー設定部36、リトリガー解除操作受付部37、および出力部38を備える。これらのうち、発音指示受付部31及びリトリガー解除操作受付部37の機能は演奏操作子22及び検出回路16により実現され、楽音生成部34の機能は音源回路18により実現され、出力部38の機能はサウンドシステム26により実現される。他の各部の機能はCPU11により実現される。
【0035】
そして、発音指示受付部31は、ユーザによる発音指示操作を受け付ける機能を備える。例えば、演奏操作子22である鍵盤がいずれかの鍵の押鍵操作(発音開始操作)を受け付けると、発音指示受付部31はこれを検出し、操作状態検出部32に対し、押鍵操作があったこと及び押鍵された鍵の音高であるノートナンバを示す操作信号であるキーオンデータを送信する。離鍵操作(発音停止操作)を受け付けた場合には、同様に離鍵操作があったこと及びその鍵のノートナンバを示すキーオフデータを送信する。
【0036】
なお、以下の説明において、押鍵のように発音開始を指示するための操作を「キーオン操作」、離鍵の用に発音停止を指示するための操作を「キーオフ操作」と呼ぶことにする。また、キーオン操作からキーオフ操作までの状態を、「操作中」と呼ぶことにする。鍵盤の鍵で言えば、「押鍵中」がこれに該当する。ただし、発音開始の指示があった場合でも、必ずしも実際に発音が開始されるとは限らない。一定の音高について発音を行わない設定を可能としたり、同時発音数に制限を設けたりすることがあり得るためである。
【0037】
操作状態検出部32は、発音指示受付部31から送信される操作信号に基づき、現在の演奏操作子22の操作状態(ここでは鍵盤なので押鍵状態)を検出する。より具体的には、操作中の(鍵の)音高を求める。この押鍵状態は、例えば、キーオンデータに含まれるノートナンバを操作中の音高のリストに追加し、キーオフデータに含まれるノートナンバを操作中の音高のリストから削除することにより求めることができる。
【0038】
そして、操作状態検出部32は、キーオンデータを受信した場合には、検出した操作状態の情報を割当制御部33に供給し、発音する音高の選択を行わせる。具体的な供給先は、割当制御部33が備える第1アサイナAS−1から第nアサイナAS−nまでのn個のアサイナのうち、機能が有効になっているアサイナである。
【0039】
なお、人が演奏を行う場合には、同時に複数の鍵の操作を行ったつもりでも、寸分違わず同じタイミングでその操作を行うことは困難である。そこで、複数の操作のタイミング差が同時操作とみなせる程度の所定閾値(例えば15〜30ミリ秒程度)以内であれば、それらの操作は同時に行われたものとみなして取り扱うことが望ましい。ここではこの取り扱いをするとして説明する。ある鍵のキーオン操作と別の鍵のキーオフ操作が同時に行われることもあり得る。
【0040】
さらに、操作状態検出部32は、キーオフデータを受信した場合に、楽音生成部34に対し、キーオフ操作が行われた音高の発音を停止させる機能も備える。
さらに、操作状態検出部32は、キーオフデータを受信した場合に、その旨及びその音高をキーオフリトリガー制御部35に通知し、キーオフ操作に応じてアサイナASに発音する音高の選択を行わせる必要があるか否かを判定させる。この点については後述する。
【0041】
次に、割当制御部33は、1又は複数(ここではn個とする)のアサイナAS−1〜AS−nを備える(アサイナの個体を特定する必要がない場合は符号「AS」を用いる)。これらの各アサイナASはそれぞれ、操作状態検出部32からキーオン操作に応じて供給される演奏操作子22の操作状態の情報に応じて、操作中(押鍵中)の音高の中から、楽音生成部34に発音させる音高(ノート)を選択する選択手段である。この選択は、アサイナ毎に設定される規則に従って行う。
【0042】
図3に、アサイナに設定する規則の例を示す。
図3には、4つのアサイナを用いる場合の例であり、各アサイナに設定する規則は、「対象押鍵」及び「優先方式」の項目からなる。「説明」の項目は、これらの項目の情報により定められる規則の内容の理解を助けるための説明であり、選択処理には用いない。
【0043】
対象押鍵の項目は、押鍵中の音高のうちどの範囲を選択の対象として考慮するかを定める項目である。「全押鍵」は、押鍵中の音高全てを考慮することを示す。「低音側X音」は、押鍵中の音高のうち低音側からX個の音高のみ考慮することを示す。ただし、押鍵数がX未満の場合には、押鍵中の音高全てを考慮する。また、図3には示していないが、同様に「高音側X音」の設定も可能である。
【0044】
優先方式の項目は、選択の対象として考慮する音高の中で、発音する音高をどのように選択するかを定める項目である。「高音優先」は、考慮する音高の中で最も高い音高を選択することを示す。「低音優先」は、考慮する音高の中で最も低い音高を選択することを示す。
【0045】
以上から、第1アサイナについては、押鍵中の音高全てのうち最も高い音高を選択する規則が設定されていることがわかる。
第2アサイナについては、押鍵数が3以下であれば、その押鍵の中で最も高い音高を選択することになる。押鍵数が4以上であれば、低音側3音の中で最も高い音高、すなわち下から3番目の音高を選択することになる。
第3アサイナについては、同様に、押鍵数が2以下であれば、その押鍵の中で最も高い音高を、押鍵数が3以上であれば、下から2番目の音高を選択することになる。
第4アサイナについては、押鍵中の音高全てのうち最も低い音高を選択する規則が設定されていることがわかる。
表にないアサイナについては機能が無効化されていると考えればよい。
【0046】
各アサイナASは、以上の規則に従い発音する音高を選択すると、楽音生成部34に対し、その選択した音高の楽音を発音開始するよう要求する。また、各アサイナASには対応する音色T1〜Tnが設定されており、楽音をその対応する音色で発音するよう要求する。なお、アサイナASには対応するパートを設定し、音色はパートに対応付けて設定することも可能である。この場合、アサイナASと音色とは、パートを介して対応付けられることになり、アサイナAS−nに対応付けられたパートを第nパートと表す。
【0047】
なお、各アサイナASは、自身が最後に選択した音高がどの音高であるかの情報を、次に別の音高を選択するまで保持しておく。そして、音高の選択を行った場合でも、選択した音高が前回と変わらず、かつその音高が今回キーオン操作された音高でない(以前から操作中であった)音高である場合、楽音生成部34に対する発音の要求を行わないようにするとよい。この場合、該当のアサイナASが今回選択した音高については、今回検出されたキーオン操作とは関係なく、以前のキーオン操作に応じて開始した発音を継続することが望ましいと考えられるためである。
【0048】
また、この例では説明を簡単にするため各アサイナが音高を1つ選択するものとして説明するが、複数の音高を選択可能な規則を設定することも可能である。高音優先で2音を選択する、等である。
また、複数のアサイナが同じ音高を選択しても問題ない。この場合、選択された音高について、複数の音色で発音することになる。
【0049】
楽音生成部34は、m個の発音chTC1〜TCmを備える(発音chの個体を特定する必要がない場合は符号「TC」を用いる)。そして、アサイナASから発音開始の要求を受けると、発音中でない発音chを検索し、発見した発音chTCにて、発音開始要求で指定された音高及び音色の楽音の音響信号を生成(発音)させる。なお、図2では、アサイナASと発音chTCの間を線で結んでいるがこれらの間に固定的な対応関係があるわけではない。
【0050】
また、楽音生成部34は、操作状態検出部32から特定の音高の発音を停止するよう指示された場合に、発音chTCの中からその音高の発音を行っているものを検索し、その発音chに発音を停止させる機能も備える。この停止には、リリース状態への移行も含まれる。
そして、楽音生成部34は、各発音chTCが生成した音響信号をミキシングして出力部38に供給し、楽音の出力を行わせる。
【0051】
次に、キーオフリトリガー制御部35は、操作状態検出部32からキーオフ操作があった旨を通知された場合に、割当制御部33のアサイナAS毎に、キーオフ操作に応じてアサイナASに発音音高の選択を行わせる必要があるか否かを決定する決定手段の機能を備える。そして、行わせる必要があると決定した場合、そのアサイナASに、発音音高の選択を行うよう指示する。
【0052】
このように、キーオフ操作に応じてアサイナASに発音音高を選択させることを、「キーオフリトリガー」と呼ぶことにする。また、キーオフリトリガーの指示を受けたアサイナASは、発音する音高の選択及び楽音生成部34への発音開始要求の処理を、操作状態検出部32からの指示に応じた選択の場合と同様に行う。指示自体も、キーオンに応じた発音音高の選択を行わせる場合と、キーオフリトリガーの場合とで、特に区別する必要はない。
【0053】
キーオフリトリガー設定部36は、アサイナAS毎に、キーオフリトリガーを行うか否かを設定する機能を備える。この設定は、ここではユーザによる設定操作子23の操作に従って行い、その設定内容は、例えば図4に示すキーオフリトリガー設定テーブルに保存する。
【0054】
リトリガー解除操作受付部37は、ユーザによるリトリガー解除操作子であるペダルの操作を受け付ける機能を備える。演奏操作子22中のペダルが踏み込みあるいは踏み込み解除操作されると、リトリガー解除操作受付部37はこれを検出し、キーオフリトリガー制御部35に対し、ペダルの操作状態(踏み込みされているか否か)の情報を、随時供給する。
【0055】
上記キーオフリトリガー制御部35は、キーオフリトリガー設定部36においてなされている設定及び、リトリガー解除操作受付部37から供給されるリトリガー解除操作子の操作状態の情報に基づき、アサイナAS毎に、キーオフリトリガーを行うか否かを決定する。この決定の詳細については後述する。
【0056】
次に、図2に示した機能のうち、CPU11が担う機能を実現するためにCPU11が実行する処理について説明する。
図5乃至図7は、その処理のフローチャートである。
CPU11は、検出回路16からキーオンデータ及び/又はキーオフデータを受信した場合に、所要のプログラムを実行することにより図5のフローチャートに示す処理を開始する。なお、所定閾値以内のタイミング差で行われた操作を同時操作とみなすことは上述の通りである。
【0057】
図5の処理において、CPU11はまず、受信したキーオンデータ及び/又はキーオフデータが示す演奏操作子22の操作内容に基づき、各鍵の押鍵状態の情報を更新する(S11)。
次に、CPU11は、検出した操作にキーオン操作が含まれているか否か判断する(S12)。複数の操作を同時に検出した場合、その中に1つでもキーオン操作があればYesとなる。
【0058】
そして、Yesの場合、CPU11は、検出した操作の中にキーオフ操作があれば、そのキーオフ操作に係る音高の発音停止を、楽音生成部34に指示する(S13)。その後、アサイナASによる、キーオン操作に応じた発音音高の選択を行うべく、全アサイナASについて発音割り当てフラグを立てて(S14)、図6に示す発音割り当て処理に進む(S15)。
【0059】
図6の処理において、CPU11はまず、変数nに1を代入する(S21)。そして、第nアサイナAS−nに発音割り当てフラグがセットされているか否か判断する(S22)。
ここでセットされていれば、CPU11は、第nアサイナAS−nについて設定されている規則に従い、操作中の鍵の音高の中から発音する音高を選択する(S23)。そして、ステップS23で選択した音高で、第nアサイナAS−nと対応する第nパートの発音を開始するよう、楽音生成部34に指示する(S24)。この場合、発音に用いる音色は、第nパートについて設定されている音色である。
【0060】
以上のステップS23とS24が、アサイナAS1つ分の処理である。その後、CPU11は、現在処理したアサイナが最後のアサイナであるか否か判断し(S25)、最後でなければnを1加算して(S26)、ステップS22に戻って処理を繰り返す。
ステップS22でNoの場合、第nアサイナについては音高の選択は行わないので、そのままステップS25に進む。
【0061】
ステップS25でNoの場合、全てのアサイナに関する処理が終了したことがわかるため、図6の処理を終了して元の処理に戻る。ここでは、図5のステップS15に戻るので、CPU11はそのまま処理を終了する。なお、ステップS14からS15に進んだ場合は、発音割り当て処理において、全アサイナと対応する音高選択及び発音指示を行うことになる。
なお、図6の処理を始める前に、初めに全アサイナの発音割り当てフラグを確認し、フラグのあるアサイナについてのみステップS23及びS24を実行するようにしてもよい。この場合、フラグのあるアサイナがなければ、発音割り当て処理自体をスキップできる。
【0062】
一方、図5のステップS12でNoの場合、すなわち検出した操作がキーオフ操作のみであった場合、CPU11は、そのキーオフ操作に係る音高の発音停止を、楽音生成部34に指示する(S16)。その後、図7に示すリトリガー設定処理に進む(S17)。なお、キーオフ操作が複数あった場合には、その各キーオフ操作について、発音停止を行う。
【0063】
図7の処理において、CPU11はまず、変数nに1を代入する(S31)。そして、第nアサイナAS−nについて、図4に示したキーオフリトリガーの設定がONになっているか否か判断する(S32)。これがYesであれば、さらに、リトリガー解除操作子が操作中であるか否か判断する(S33)。ここで操作中でなければ、CPU11は、第nアサイナについてキーオフリトリガーを行うことを決定し(S34)、第nアサイナに発音割り当てフラグを立てる(S35)。
【0064】
一方、ステップS32でNoの場合、すなわちキーオフリトリガーの設定がOFFであ場合、CPU11は、第nアサイナについてキーオフリトリガーを行わないことを決定する(S36)。この場合、第nアサイナに発音割り当てフラグは立てない。ステップS33でリトリガー解除操作子が操作中であった場合も同様である。
いずれの場合も、その後、CPU11は、現在処理したアサイナが最後のアサイナであるか否か判断し(S37)、最後でなければnを1加算して(S38)、ステップS32に戻って処理を繰り返す。
【0065】
ステップS37でYesの場合、全てのアサイナに関する処理が終了したことがわかるため、図7の処理を終了して元の処理に戻る。このとき、処理は図5のステップS17に戻るので、図5の処理では次に図6の発音割り当て処理に進む(S15)。そして、この発音割り当て処理においては、ステップS35で発音割り当てフラグを立てたアサイナASについてのみ、ステップS22の判断がYesとなり、発音する音高の選択と発音開始指示を行う。
【0066】
以上の図5乃至図7の処理が、この発明の発音音高選択方法の第1実施形態に係る処理である。また、図6の発音割り当て処理が選択手順と、図5のステップS12以降が制御手順と、図7のリトリガー設定処理が決定手順と、それぞれ対応する。また、図5のステップS12以降の処理において、CPU11は制御手段として機能する。図7のリトリガー設定処理においてCPU11は決定手段として機能する。
【0067】
そして、以上の処理を実行することにより、CPU11は、キーオフ操作に応じてアサイナASに発音する音高の選択と発音開始指示を行わせるべき場合を、ユーザが行った設定に従って適切に判別し、これを行わせることができる。さらに、リトリガー解除操作子が操作中である場合には、アサイナAS毎の設定によらず、一時的かつ強制的にキーオフリトリガーをOFF中にすることができる。そして、このことにより、ユーザの演奏操作の意図に合った発音を行うことができる。また、この発音を行うために、特許文献2におけるミスレガート判定時間のようなパラメータの値の設定に試行錯誤する必要もない。
【0068】
なお、図5のステップS12でYesの場合、キーオン操作に応じて必ず全アサイナについて発音音高の選択を行うため、キーオフリトリガーについて考慮する必要がない。リトリガー判定処理を行ってもよいが、その結果如何に関わらず、全アサイナについて発音音高の選択を行うことに変わりはない。
【0069】
次に、リトリガー設定処理の効果について、図8乃至図11を用いて説明する。
これらのうち図8乃至図10は、図3に示した4つのアサイナに対するキーオフリトリガーのON/OFF中の設定に応じて、演奏操作に従った各アサイナによる発音音高の選択がどのように異なるかを説明するための図である。いずれの場合も、リトリガー解除操作子の操作はないものとする。
【0070】
図8乃至図10において、縦軸が時間、横軸が音高であり、各音高における帯が、その音高の鍵を押鍵している期間を示す。図8乃至図10の例において、各鍵のキーオン操作及びキーオフ操作のタイミングは全て共通である。そして、音高n3の鍵が押鍵され、これが離鍵される前に、音高n4の鍵が押鍵されている。また、音高n4の鍵が離鍵される前に、音高n5の鍵が押鍵されている。そして、いずれも次の音高のキーオン操作の直後に前の音高についてキーオフ操作がされていることから、この演奏は音高n3〜n5の音を続けて発音させることを意図した演奏であると推測できる。
【0071】
そして、図8の例は、全てのアサイナについてキーオフリトリガーOFFが設定されている場合の例である。
この場合、初めのKON1,2,3のタイミングでは、n1,n2,n3の3つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第1アサイナAS−1及び第2アサイナAS−2は最高音のn3を、第3アサイナAS−3は下から2番目のn2を、第4アサイナAS−4は最低音のn1を選択する。
【0072】
次のKON4のタイミングでは、n1,n2,n3,n4の4つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第1アサイナAS−1は最高音のn4の選択に変わり、新たに発音を開始する。他の3つのアサイナの選択は、KON1,2,4のタイミングにおける選択と変わらない。
【0073】
そして、次のKOFF3のタイミングでは、キーオフ操作された音高n3の発音が停止される。このとき、全てのアサイナについてキーオフリトリガーがOFFに設定されているため、新たに発音させる音高の選択は行われない。このため、音高n3を選択していた第2アサイナAS−2の音色による発音は、ここで停止されることになる。
【0074】
次のKON5のタイミングでは、n1,n2,n4,n5の4つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第1アサイナAS−1は最高音のn5の選択に変わり、新たに発音を開始する。第2アサイナAS−2は下から3番目のn4を選択し、新たに発音を開始する。他の2つのアサイナの選択は、前回のKON4のタイミングにおける選択と変わらない。
【0075】
次のKOFF4のタイミングでは、キーオフ操作された音高n4の発音が停止される。このとき、全てのアサイナについてキーオフリトリガーがOFFに設定されているため、新たに発音させる音高の選択は行われない。このため、音高n4を選択していた第2アサイナAS−2の音色による発音は、発音開始されたばかりだがここで停止されることになる。
次のKOFF1,2のタイミングでは、キーオフ操作された音高n1,n2の発音が停止される。その次のKOFF5のタイミングでは、キーオフ操作された音高n5の発音が停止される。これらのタイミングでも、キーオフリトリガーは行われない。
【0076】
以上からわかるように、全てのアサイナについてキーオフリトリガーがOFFであると、すなわちキーオフリトリガーを全く行わないとすると、演奏者が続けて発音させることを意図していると推測される音高n3〜n5の音について、異なる音色で発音されてしまうことがわかる。初めのn3は第1アサイナと対応する音色TG1と第2アサイナと対応する音色TG2であり、続くn4及びn5は第1アサイナと対応する音色TG1のみである。n4の末尾にはTG2による発音も起こるが、時間が短いため、これは雑音に近い発音となる。
【0077】
次に、図9の例は、全てのアサイナについてキーオフリトリガーONが設定されている場合の例である。キーオフ操作時にアサイナが必ず発音音高の選択を行う例であるということもできる。この場合の各アサイナによる音高の選択について、図8と異なる点を説明する。
【0078】
図9の例において、KOFF3のタイミングでは、図8と異なり、全てのアサイナが発音させる音高の選択を行う。その結果、第2アサイナAS−2が最高音のn4を選択し、新たに発音を開始する。他のアサイナの選択は変化ないため、それまでの発音を継続する。
また、KOFF4のタイミングでも、全てのアサイナが発音させる音高の選択を行う。その結果、第2アサイナAS−2が最高音のn5を選択し、新たに発音を開始する。他のアサイナの選択は変化ないため、それまでの発音を継続する。
【0079】
以上により、音高n3〜n5の音について、第2アサイナと対応する音色TG2が途中で消えてしまうことなく、全てを、音色TG1と音色TG2で発音することができる。
しかし、KOFF1,2のタイミングでも、全てのアサイナが発音させる音高の選択は行う。その結果、第1アサイナAS−1及び第2アサイナAS−2の選択は、前回のKOFF4における選択と変わらないものの、第3アサイナAS−3及び第4アサイナAS−4が、この時点で押鍵されている唯一の音高であるn5を選択し、新たに発音を開始する。
【0080】
このため、それまで低音側で発音していた音色の音が急に高音側で発音されることになる。n1及びn2の押鍵が伴奏であり、n3〜n5の押鍵がメロディーであると考えると、伴奏の音色で急にメロディーが発音されることとなり、不自然な発音となってしまうと考えられる。
【0081】
次に、図10の例は、第1アサイナAS−1及び第2アサイナAS−2にキーオフリトリガーONが、第3アサイナAS−3及び第4アサイナAS−4にキーオフリトリガーOFFが設定されている場合の例である。この場合の各アサイナによる音高の選択について、図8及び図9と異なる点を説明する。
【0082】
図10の例において、KOFF3及びKOFF4のタイミングでは、第1アサイナAS−1及び第2アサイナAS−2のみが発音させる音高の選択を行う。第3アサイナAS−3及び第4アサイナAS−4は音高の選択は行わない。しかし、図9のように選択を行ったとしても、これらのアサイナは前回の選択と同じ音高を選択するため、選択を行っても行わなくても、発音される音に変わりはない。
【0083】
一方、KOFF1,2のタイミングでは、第3アサイナAS−3及び第4アサイナAS−4が発音される音高の選択を行わないため、図9の例のように音高n5が新たに発音されることがない。第1アサイナAS−1及び第2アサイナAS−2は音高の選択を行うが、前回のKOFF4における選択と変わらないため、新たに発音を行うことはない。
【0084】
このように、アサイナの音高選択規則と、実際に行う演奏操作により、キーオフリトリガーを行う方が演奏者の意図に合った発音が可能になる場合と、行わない方が演奏者の意図に合った発音が可能になる場合とがある。従って、図4に示したように、キーオフリトリガーを行うか否かをアサイナ毎に設定できるようにすることにより、演奏者の意図に合った発音を行いやすくなると考えられる。
また、これに加えてリトリガー解除操作子を設けることにより、さらに演奏者の意図に合った発音を行いやすくなる。
【0085】
図11に、図10の場合と比べ、音高n1,n2のキーオフ操作(KOFF1,2)がn5のキーオフ操作(KOFF5)よりも後である場合の例を示す。
この場合、KOFF5のタイミングで第1アサイナAS−1及び第2アサイナAS−2は音高の選択を行い、押鍵中の音高n1,n2のうち最高音のn2を選択して、新たに発音を開始することになる。
【0086】
このため、それまで高音側で発音していた音色の音が急に低音側で発音されることになる。そして、メロディーの音色で急に伴奏が発音されるような、不自然な発音となってしまうと考えられる。
しかし、演奏者がリトリガー解除操作子を操作した状態でKOFF5のタイミングを迎えれば、第1アサイナAS−1及び第2アサイナAS−2は音高の選択を行わない。従って、図10を用いて説明したような、演奏者の意図に合った演奏を行うことが可能となる。
このように、アサイナ毎のキーオフリトリガーの設定を最適なものとしたとしても、常に好適な結果を得られるとは限らないため、リトリガー解除操作子による更なる調整を可能とすることが好ましい。
【0087】
なお、リトリガー解除操作子が操作されていた場合に、全アサイナについてリトリガーを行わないようにするのではなく、予め定めたアサイナについてのみリトリガーを行わないようにしてもよい。また、複数のリトリガー解除操作子を用意して、それらを各々1又は複数のアサイナのグループと対応付け、該当のアサイナのリトリガーを一時的に停止させるための操作子として用いることができるようにしてもよい。
【0088】
また、図4に示したアサイナ毎のキーオフリトリガーの設定につき、ユーザが直接このパラメータを設定するのではなく、他のパラメータの設定に連動してこの設定を行うようにしてもよい。ユーザがメロディパートに用いることを設定したアサイナについてCPU11が自動的にキーオフリトリガーをONに設定し、同じく伴奏パートに用いることを設定したアサイナについて自動的にキーオフリトリガーをOFFに設定する等である。
【0089】
〔第2実施形態:図12及び図13
次に、この発明の第2実施形態の電子楽器について説明する。
この第2実施形態は、ユーザの設定に従ってキーオフリトリガーの有無を決定することに代えて、キーオフ操作の際にアサイナが選択していた音高と、キーオフ操作後の演奏操作子の操作状態に応じてそのアサイナが選択すると予測される音高との音高差が所定値以上である場合にキーオフリトリガーを行わないようにした点が第1の実施形態と異なるのみである。そこで、この相違点についてのみ説明し、第1実施形態と同じ又は対応する構成には、第1実施形態と同じ符号を用いる。
【0090】
第2実施形態の電子楽器10は、ハードウェアは図1に示した第1実施形態のものと共通である。機能構成は、キーオフリトリガー設定部36が不要である点と、キーオフリトリガー制御部35におけるキーオフリトリガー有無の判断基準が図2に示したものと異なるのみである。これは、CPU11の処理について言えば、第1実施形態で説明した図5乃至図7の処理のうち、図7のリトリガー設定処理が異なることに該当する。
【0091】
ここで、図12に、第2実施形態におけるリトリガー設定処理のフローチャートを示す。なお、キーオフ操作が複数あった場合には、その各キーオフ操作について、リトリガー設定処理を行う。
図12の処理において、CPU11はまず、今回キーオフ操作された音高Nの発音をしていたパートと対応するアサイナASが何番目のアサイナであるかの情報を取得する(S41)。これは、キーオフ操作の時点で、発音する音高として音高Nを選択していたアサイナASを探索することに該当する。複数のアサイナが該当すれば、それら全てのアサイナの情報を取得する。この探索は、各アサイナASが保持している、自身が最後に選択した音高の情報に基づき行うことができる。
【0092】
CPU11は次に、変数nに1を代入する(S42)。そして、ステップS41で情報を取得したアサイナのうちn番目のアサイナを処理対象とする(S43)。
次に、CPU11は、処理対象のアサイナASについて、図3に示したように設定されている選択規則に従い、(キーオフ操作後の状態で)操作中の鍵の音高の中から、発音すべき音高を選択し、これを音高Mとする(S44)。この音高Mは、キーオフ操作後の演奏操作子の操作状態に応じてアサイナが選択する音高の予測値である。
【0093】
そして、CPU11は、キーオフ操作時にそのアサイナが選択していた音高Nと、ステップS44で選択した音高Mとの音高差が所定範囲内であるか否か判断する(S45)。ここで所定範囲内であれば、処理対象のアサイナASについてキーオフリトリガーを行うことを一応決定し、リトリガー解除操作子が操作中でない(S46)場合にその旨を最終決定する(S47)。そして、処理対象のアサイナに発音割り当てフラグを立てる(S48)。
【0094】
一方、ステップS45で所定範囲内でなければ、CPU11は、処理対象のアサイナについてキーオフリトリガーを行わないことを決定する(S49)。この場合、第nアサイナに発音割り当てフラグは立てない。ステップS46でリトリガー解除操作子が操作中であった場合も同様である。
いずれの場合も、その後、CPU11は、現在処理したアサイナがステップS41で取得した最後のアサイナであるか否か判断し(S50)、最後でなければnを1加算して(S51)、ステップS43に戻って処理を繰り返す。
【0095】
ステップS50でYesの場合、全てのアサイナに関する処理が終了したことがわかるため、図12の処理を終了して元の処理に戻る。このとき、処理は図5のステップS17に戻るので、図5の処理では次に図6の発音割り当て処理に進む(S15)。そして、この発音割り当て処理においては、ステップS48で発音割り当てフラグを立てたアサイナASについてのみ、ステップS22の判断がYesとなり、発音する音高の選択と発音開始指示を行う。
【0096】
そして、以上の処理を実行することにより、CPU11は、キーオフ操作に応じてアサイナASに発音する音高の選択と発音開始指示を行わせるべき場合を、演奏操作子22の操作内容及びアサイナに設定されている選択規則に従って適切に判別し、これを行わせることができる。そして、このことにより、ユーザの演奏操作の意図に合った発音を行うことができる。
【0097】
第2実施形態におけるリトリガー設定処理は、キーオフ操作により発音が停止される音高を選択していたアサイナについてキーオフリトリガーを原則有効としつつ、キーオフリトリガーにより、アサイナが選択する音が伴奏音からメロディ音のように全く異なる音高の音に変化してしまうことを防止するためのものである。
【0098】
この点について、図13を用いて説明する。図13は、演奏操作に応じたアサイナによる発音音高の選択の様子を示す、図8乃至図10と対応する図である。
図13の例において、キーオン操作及びキーオフ操作の順は、図8乃至図10と同じである。ただし、音高n2とn3の間は、図12のステップS45における所定範囲よりも音高差が大きいとする。また、各アサイナと対応するキーオフリトリガーの設定はない。
【0099】
図13の例において、キーオン時の各アサイナによる音高の選択は、図10と同じである。キーオフ時の各アサイナによる音高の選択も、結果の発音内容だけ見れば、図10と同じであるが、その過程の処理が異なる。
まず、KOFF3のタイミングでのキーオフリトリガーは、ここでキーオフ操作された音高n3を選択している第2アサイナAS−2が検討対象となる。そして、キーオフ後の操作状態に従い第2アサイナAS−2が選択する音高の予測値は、この時点の最高音のn4である。n3とn4との音高差が所定範囲内であるとすると、CPU11は、第2アサイナAS−2はキーオフリトリガーを行うと決定し、第2アサイナAS−2は音高n4を選択して新たに発音を開始する。
KOFF4のタイミングについても同様であり、n4とn5との音高差が所定範囲内であるとすると、CPU11は、第2アサイナAS−2はキーオフリトリガーを行うと決定し、第2アサイナAS−2は音高n5を選択して新たに発音を開始する。
【0100】
一方、KOFF1,2のタイミングでは、ここでキーオフ操作された音高n1又はn2を選択している第3アサイナAS−3及び第4アサイナAS−4が検討対象となる。そして、キーオフ後の操作状態に従い第3アサイナAS−3及び第4アサイナAS−4が選択する音高の予測値は、いずれもこの時点で唯一押鍵されているn5である。しかし、n1とn5の間、n2とn5の間は、いずれも音高差が所定範囲内でない。このため、CPU11は、第3アサイナAS−3及び第4アサイナAS−4はキーオフリトリガーを行わないと決定し、結果として、KOFF1,2のタイミングでキーオフリトリガーを行うアサイナはない。
【0101】
このように、キーオフリトリガーを行った場合の音高差を用いてキーオフリトリガーを行うか否かを決定することにより、アサイナ毎にキーオフリトリガーの有無を設定しなくても、図10と同様な発音が可能となる。さらに、キーオフリトリガーを行うか否かの設定が固定的でないため、例えば伴奏パートとメロディパートの音数(アサイナ数)が動的に変化するような演奏を行う場合でも、それに追随して、自動的に、伴奏パートとメロディパートの間での意図しない音移動(図9のKOFF1,2あるいは図11のKOFF5のような音高選択の変化)が生じないようにすることができる。
【0102】
なお、図12の処理では、キーオフ操作の時点で、発音する音高として音高Nを選択していたアサイナASのみを、キーオフリトリガーを行うか否かの検討対象とし、他のアサイナはキーオフリトリガーを行わないようにした。これは、押鍵中の鍵と対応する音高の発音をそのまま続けられるようにするためである。
しかし、全てのアサイナASについてステップS44及びS45の処理を行い、キーオフリトリガーを行うか否かの検討対象とすることも妨げられない。
【0103】
〔第3実施形態:図14乃至図21
次に、この発明の第3実施形態の電子楽器について説明する。
この第3実施形態は、キーオフ操作があった場合に、その操作がどの奏法の操作であるか推定し、その推定結果の奏法に基づきキーオフリトリガーを行うか否かを決定するようにした点が第1の実施形態と異なるのみである。そこで、この相違点についてのみ説明し、第1実施形態と同じ又は対応する構成には、第1実施形態と同じ符号を用いる。
なお、ここで説明する例では、検出したキーオフ操作を含む押鍵がレガート奏法の操作か、スタッカート奏法の操作か、それ以外かを推定するようにしている。しかし、これらの一方の奏法のみ考慮したり、その他の奏法について考慮したりしてもよい。
第3実施形態の電子楽器10も、ハードウェアは図1に示した第1実施形態のものと共通である。
【0104】
図14に、第3実施形態の電子楽器10における、図2と対応する機能ブロック図を示す。
図14に示す通り、第3実施形態の電子楽器10は、第1実施形態におけるキーオフリトリガー設定部36に代えて、操作履歴保存部39を備える。
そして、操作状態検出部32は、演奏操作子22の操作を検出する度に、その操作の内容及びその操作を反映させた操作状態の情報を操作履歴保存部39に供給し、操作内容及び操作状態の履歴を保存させる。
【0105】
操作履歴保存部39は、操作状態検出部32から供給される、演奏操作子22の操作内容及び操作状態の情報を、時系列的に履歴として保存する機能を備える保存手段である。ここで保存する履歴は、上述した奏法の推定に用いる。
【0106】
図15に、演奏操作子22の操作内容の例を、図16にこれと対応する履歴を登録した操作履歴テーブルの例を示す。
図15の内容については発明が解決しようとする課題の項で説明したのでここでは再度の説明は省略する。
【0107】
図16に示すように、操作履歴保存部39が保存する履歴は、各時点における演奏操作子22の操作状態(ここでは押鍵状態)と操作内容の情報を含む。
ここで、操作履歴保存部39は、操作状態検出部32から操作内容及び操作状態の情報を受け取る度に、新たな情報を操作履歴テーブルに追加する。このとき、レガート奏法に関する推定を行うだけであれば、各時刻は正確に計時する必要はなく、順序が特定されていればよい。しかし、スタッカート奏法に関する推定を行う場合には、各操作の時刻を正確に計時して記録する。図16の例では、時刻の欄に、t(1)から始まってt(2)、t(3)、・・・のように、順序を示す変数nを用いてt(n)で各時点の時刻を示しているが、実際の内容を、単なる順序を示す情報とするか、正確な時刻とするかは、どの奏法についてどのような推定を行うかに基づき定めればよい。
【0108】
押鍵状態の項目には、操作状態検出部32から通知された操作状態の情報が示す、その時点での押鍵中の(鍵の)音高を登録する。このとき、降順でも昇順でも構わないので、音高順に登録するとよい。後で音高の順序の情報を用いるためである。
操作内容の項目には、操作状態検出部32から通知された操作内容の情報を、操作された鍵の音高を用いて登録する。この操作内容の履歴を時系列的に参照することにより、鍵の操作順を把握することができる。
【0109】
操作履歴保存部39は、図15に示す鍵操作があった場合、まず、KON1,2,4のタイミングで音高n1、n2及びn4の鍵が同時にキーオン操作されたことに対応して、時刻t(1)において押鍵中の音高がn1、n2及びn4であり、この時点の操作内容がn1、n2及びn4のキーオンであることを登録する。
次に、KON3のタイミングで音高n3の鍵がキーオン操作されたことに対応して、次の時刻t(2)において押鍵中の音高がn1、n2、n3及びn4であり、この時点の操作内容がn3のキーオンであることを登録する。以降も同様にKOFF4、KOFF1,2、KOFF3の時点の情報を、時刻t(3)、t(4)及びt(5)の時点情報として登録する。
【0110】
この操作履歴テーブルは、例えばRAM13に保存すればよい。しかし、電子楽器10の外部のものも含め、任意の記憶手段に保存することができる。
なお、図16に示した押鍵状態と操作内容の情報は、一方が時系列的に参照可能であれば、他方の情報は、上記一方の情報に基づき作成可能である。従って、必ずしも両方の履歴を保存しておく必要はない。また、後述のように、この履歴は、直近の時点から大きく遡って参照するものではないので、記憶容量を圧迫しないよう、適当な数のデータを残して古いものは随時削除してしまって差し支えない。
【0111】
その他の点については、キーオフリトリガー制御部35におけるキーオフリトリガー有無の判断基準が図2に示したものと異なるのみである。なお、この違いは、CPU11の処理について言えば、第1実施形態で説明した図5乃至図7の処理のうち、図7のリトリガー設定処理が異なることに該当する。
ここで、図17に、第3実施形態におけるリトリガー設定処理のフローチャートを示す。なお、キーオフ操作が複数あった場合には、その各キーオフ操作について、リトリガー設定処理を行う。
【0112】
図17の処理において、CPU11はまず、図5のステップS11での更新後の操作履歴テーブルにおける最新の時刻を示す値を、変数aに代入する(S61)。図16の操作履歴テーブルが作成される場合において、n4キーオフの時点で図17の処理を行ったとすると、a=3となる(この時点ではt(4)及びt(5)のデータはまだテーブルに登録されていない)。
次に、CPU11は、操作履歴テーブルを参照して、今回検出したキーオフ操作が、所定の条件を満たすか否か判断する(S62〜S65)。これらの判断は、今回検出したキーオフ操作がレガート奏法の操作であるか否かを推定するためのものである。
【0113】
この判断は、例えば、判断のトリガとなったキーオフ操作が行われた鍵の音高をN(図15の例ではn4)として、音高Nの鍵のキーオン操作、Nと異なる音高M(図15の例ではn3)の鍵のキーオン操作、音高Nの鍵のキーオフ操作の順で操作が行われ、かつ、音高Mの鍵のキーオン操作の時点で、音高Mと音高Nの間の音高の鍵が操作中でない、という条件を満たす音高Mがあること、とすることが考えられる。
【0114】
上記のうち操作順の条件は、図15の音高n4と音高n3のように、発音指示期間に一部重なりのある操作が行われた、ということを判定するためのものである。
また、音高Mと音高Nの間の音高の鍵が操作中でないという条件(音高順の条件)は、レガート演奏の特性を考慮したものである。すなわち、図15のような操作が行われるのは典型的にはレガート演奏の場合であるが、この場合、続けて押鍵される2つの鍵の間の音高で、押鍵が移行するタイミングに他の鍵が押鍵されることは希である。そこで、間で他の鍵が押鍵されていれば、それはレガート演奏ではなく、音数を変えることを意図した演奏であると解釈し、発音音高の再選択を行わないようにすることが好ましい。
【0115】
なお、左右の手でメロディーと伴奏を演奏する場合にも、たまたま一部の鍵の押鍵期間がレガート演奏に近い形で重なることもあり得る。このような演奏を効率的に見分けるため、音高Mと音高Nの音高差が所定値以内であること、という条件を追加することも考えられる。
レガート演奏の場合、続けて押鍵される2つの鍵の音高が大きく離れることは希であるが、メロディーと伴奏であれば、通常は押鍵される鍵の音高はある程度離れていると考えられるためである。
ステップS62〜S65で用いる条件は、上記の操作順の条件と音高順の条件を、操作履歴テーブルの登録内容と直接対応するようにより具体的なものとした一例である。
【0116】
ステップS62〜S65では、CPU11は、
i)時刻t(a-1)において検出した操作にキーオンがある、
ii)時刻t(a-1)にキーオン操作された音高Mと、今回キーオフ操作を検出した
音高Nとの間に時刻t(a-1)時点で押鍵中の鍵がない、
iii)時刻t(a-2)において音高Nの鍵が押鍵中、
iv)時刻t(a)において音高Mの鍵が押鍵中、
の全てが成り立つか否か判断する。
【0117】
そして、全て成り立つ場合、CPU11は、今回検出したキーオフ操作はレガート奏法の操作であると推定する。この場合、CPU11は、音高Nの発音を図5のステップS16で停止する前に上記音高Nの発音を行っていたパートと対応するアサイナASについて、キーオフリトリガーを行うことを一応決定し、リトリガー解除操作子が操作中でない(S68)場合にその旨を最終決定する(S69)。そして、該当のアサイナに発音割り当てフラグを立てる(S70)。ステップS70の処理は、キーオフ操作がされた音高を選択しているアサイナASについて発音割り当てフラグをセットするということもできる。
【0118】
一方、ステップS62乃至S65のいずれかでNoの場合には、CPU11は、今回検出したキーオフ操作はレガート奏法の操作でないと推定する。そこで、次に、音高Nのキーオンから今回キーオフまでの時間が所定値以内であるか否か判断する(S66)。すなわち、今回キーオフ操作された鍵の押鍵期間が所定値以内であるか否か判断する。
【0119】
ここでYesであれば、CPU11は、今回検出したキーオフ操作はスタッカート奏法の操作であると推定する。この場合、CPU11は、上記ステップS69及びS70の場合と同じアサイナASについて、キーオフリトリガーを行わないことを決定する(S71)。この場合、該当のアサイナに発音割り当てフラグは立てない。ステップS68でリトリガー解除操作子が操作中であった場合も同様である。
【0120】
また、ステップS66でNoである場合、CPU11は、今回検出したキーオフ操作はレガート奏法及びスタッカート奏法以外の操作であると推定する。この場合、キーオフリトリガーの有無は、予め登録してあるデフォルトの設定に従って行う(S67)。ただし、この場合でも、リトリガー解除操作子が操作中であった場合には、キーオフリトリガーは行わない(S68)。また、デフォルトの設定は、全アサイナについて共通であっても、アサイナ毎に設定できるようにしてもよい。
いずれの場合も、ステップS70又はS71の後、元の処理に戻る。
【0121】
このとき、処理は図5のステップS17に戻るので、図5の処理では次に図6の発音割り当て処理に進む(S15)。そして、この発音割り当て処理においては、ステップS70で発音割り当てフラグをセットしたアサイナASについてのみ、ステップS22の判断がYesとなり、発音する音高の選択と発音開始指示を行う。いずれのアサイナASについても発音割り当てフラグがなければ、発音する音高の選択と発音開始指示を行うことはない。
【0122】
そして、以上の処理を実行することにより、CPU11は、キーオフ操作の奏法に応じてアサイナASに発音する音高の選択と発音開始指示を行わせるべき場合を適切に判別し、これを行わせることができる。そして、このことにより、ユーザの演奏操作の意図に合った発音を行うことができる。
この点について、図18乃至図21を用いて説明する。
図18は、図15に示した操作に応じて図5図6及び図17に示した処理を実行し、図3に示した4つのアサイナにより発音する音高を選択させた場合の発音の様子を示す、図8等と対応する図である。
【0123】
この場合、初めのKON1,2,4のタイミングでは、n1,n2,n4の3つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第1アサイナAS−1及び第2アサイナAS−2は最高音のn4を、第3アサイナAS−3は下から2番目のn2を、第4アサイナAS−4は最低音のn1を選択する。
次のKON3のタイミングでは、n1,n2,n3,n4の4つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第2アサイナAS−2は下から3番目のn3の選択に変わる。他の3つのアサイナの選択は、KON1,2,4のタイミングにおける選択と変わらない。
【0124】
そして、次のKOFF4のタイミングでは、キーオフ操作された音高n4の発音が停止される。しかし、このときのキーオフ操作は、図8のステップS32〜S35の条件を全て満たす。このため、発音が停止された音高n4を選択していた第1アサイナAS−1に、この時点で押鍵中のn1,n2,n3の3つの音高から、発音する音高を選択させる。その結果、第1アサイナAS−1は最高音のn3を選択する。他のアサイナにはこの時点での選択は行わせないので、KON3のタイミングにおける選択の状態が維持される。
その結果、図18に示すように、アサイナ毎にキーオフリトリガーの有無を設定しなくても、レガート奏法による音高n3の押鍵に応じて、その前の音高n4の押鍵の時と同じ第1及び第2アサイナAS−1,2と対応する音色T1,T2での発音が可能となる。
【0125】
次に、図19に、リトリガー判定処理を行わない比較例における、図18と対応する発音の様子を示す。
この場合、KOFF4のタイミングで第1アサイナAS−1が音高n3を選択することがないので、第1アサイナAS−1と対応する音色での発音は、KOFF4のタイミングで停止されたままとなる。このため、音高n3の押鍵と対応する発音は、第2アサイナAS−2と対応する音色T2のみとなる。
従って、音高n3の押鍵と対応する発音は、音高n4の押鍵と対応する発音と異なる音色でなされることになり、演奏者の意図に合わないものとなってしまう。逆に言えば、図17のリトリガー判定処理を行うことにより、このような不具合を防止することができる。
【0126】
図20及び図21は、スタッカート奏法の演奏操作があった場合の発音の様子を示す、図18及び図19と対応する図である。音高n3における3回の押鍵時間は、いずれも図17のステップS66における所定値以内であるとする。すなわち、スタッカート奏法の押鍵とする。このため、前の押鍵から次の押鍵までに若干の間隔が開く。
この場合、初めのKON1,2,3-1のタイミングでは、n1,n2,n3の3つの音高の鍵が押鍵中の状態で各アサイナASが発音する音高を選択する。その結果、第1アサイナAS−1及び第2アサイナAS−2は最高音のn3を、第3アサイナAS−3は下から2番目のn2を、第4アサイナAS−4は最低音のn1を選択する。
【0127】
図20は、スタッカート奏法にも関わらず、音高n3におけるキーオフ操作のタイミング(KOFF3-1, KOFF3-2, KOFF3-3)にて、音高n3を選択していた第1アサイナAS−1及び第2アサイナAS−2についてキーオフリトリガーを行うようにした場合の例である。
この場合、第1アサイナAS−1及び第2アサイナAS−2は、リトリガー時点で最高音のn2を選択し、新規に発音を開始してしまう。そして、その後の音高n3におけるキーオン操作のタイミングで、再度音高n3を選択してまた新規に発音を開始する。従って、演奏者はスタッカート奏法で同じ音を続けて演奏しているにも関わらず、発音される音は、音高n2と音高n3をめまぐるしく繰り返す音となってしまう。
【0128】
図21は、図17に示したリトリガー判定処理により、スタッカート奏法と推定されるキーオフ操作の際にはキーオフリトリガーを行わないようにした場合の例である。
この場合、音高n3におけるキーオフ操作のタイミング(KOFF3-1,
KOFF3-2, KOFF3-3)ではキーオフリトリガーは起こらない。従って、第1アサイナAS−1及び第2アサイナAS−2と対応する音色TG1及びTG2の楽音は、演奏者の意図した演奏内容に合うように、音高n3で若干の間隔を開けて3度発音される。
なお、図17の処理では、キーオフ操作の時点で、発音する音高として音高Nを選択していたアサイナASのみを、キーオフリトリガーを行うか否かの検討対象とし、他のアサイナはキーオフリトリガーを行わないようにした。これは、押鍵中の鍵と対応する音高の発音をそのまま続けられるようにするためである。
【0129】
〔変形例:図22
以上で実施形態の説明を終了するが、装置の構成、演奏操作子を始めとする操作子の構成、処理に用いるデータの構成、具体的な処理の手順等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、図17に示したリトリガー判定処理において、レガート奏法と推定する条件を、時刻t(a-1)にキーオンがない場合でも、図17の説明で述べた操作順の条件と音高順の条件が満たされていれば、発音割り当てフラグのセットを行うようにすることも考えられる。その他、図17の説明で述べたi)〜iv)の条件を一部のみ考慮するようにするなど、どのような発音をさせたいかという意図に合わせて、任意に異なる条件を採用可能である。
【0130】
また、上述した各実施形態ではキーオフリトリガー制御部35を割当制御部33と別に設ける例について説明したが、割当制御部33の各アサイナASがキーオフリトリガー制御部35の機能を備えていてもよい。この場合、操作状態検出部32がキーオフデータを受信した場合に、キーオンデータの場合と同様に割当制御部33の各アサイナASにその操作の情報を通知するとよい。そして、各アサイナASが、自身が選択している音高についてのキーオフ操作を通知された場合に、図7図12及び図17等を用いて説明したように、所定の条件に基づきキーオフリトリガーの要否を判定し、必要と判断した場合に、図6のステップS23及びS24のようにリトリガーの処理を行うようにすればよい。
なお、第1実施形態においては、キーオフ操作が行われたときに、全アサイナASについてステップS32以降の処理を行うようにしていたが、キーオフ操作が行われた音高を選択していたアサイナASについてのみステップS32以降の処理を行うようにしてもよい。
【0131】
また、図5のステップS12でNoの場合に、キーオフ操作に係る音高を発音しているパートと対応するアサイナについて発音割り当てフラグを立て、リトリガー設定処理において、キーオフリトリガーを行わないこととしたアサイナについてフラグをクリアするようにしてもよい。
なお、第1実施形態でこのように処理した場合、キーオフ操作された音高で発音していたパートについてのみ図4のリトリガー設定に沿って発音割り当てフラグが立てられ、その他のパートではそもそも発音割り当てフラグが立たなくなる。
【0132】
また、上述した実施形態におけるリトリガー解除操作子の機能を、単独で設けてもよい。すなわち、キーオフリトリガーの有無を、リトリガー解除操作子の操作有無のみに基づき、あるいはこれに加えてアサイナASがキーオフ操作が行われた音高を選択していたか否かに基づき、決定することも考えられる。
また、各アサイナについて設定する音高選択の規則につき、図22に示すように、押鍵数毎に異なる挙動を示すものとしてもよい。図22では第2アサイナと第3アサイナについて押鍵数4までしか規則を規定していないが、5以上の場合について規定してもよい。
【0133】
また、上述した実施形態では、リトリガー解除操作子を、鍵盤とは別の操作子として設ける例について説明した。しかし、鍵盤上の一番端の鍵など、鍵盤上の鍵のいずれかを、リトリガー解除操作子として用いることができるようにしてもよい。
また、キーオフリトリガーを一時的に無効にすることを指示するための操作子に代えて、又はこれに加えて、キーオフリトリガーを一時的に有効にすることを指示するための操作子を設けてもよい。この操作子が操作されている間にキーオフ操作があった場合には、全てのアサイナAS、あるいはキーオフ操作が行われた音高を選択していた全てのアサイナASに、強制的に、キーオフリトリガーを行わせることが考えられる。
また、これらの操作子の操作に応じてキーオフリトリガーを一時的に無効にするあるいは有効にするアサイナの範囲を、ユーザが設定できるようにすることも考えられる。
【0134】
また、上述した実施形態では、演奏操作子が鍵盤であり、発音開始指示を押鍵操作により、発音停止指示を離鍵操作により行う例について説明した。しかし、演奏操作子の形態はこれに限られない。他の楽器の形状はもちろん、マトリクス状に操作部を配置したパッドなど、伝統的な楽器と全く異なる形状のユーザインタフェースを備える装置にもこの発明は適用可能である。この場合、発音開始指示及び発音停止指示は、そのユーザインタフェースの特性に応じた操作方法で受け付けることになる。
【0135】
また、電子楽器10が演奏操作子を内蔵している必要もない。通信I/F15に接続された外部のコントローラから、演奏操作子の操作内容を示す演奏データを取得し、その演奏データに基づいて電子楽器10が各操作部の操作状態を把握することも考えられる。
また、汎用コンピュータのキーボードや、タッチパネルに表示したGUI(グラフィカルユーザインタフェース)を、演奏操作子として用いることも考えられる。この場合において、汎用コンピュータに図2等に示した各部の機能を実現させることにより、電子楽器として機能させることができる。また、いずれの場合でも、図2等に示した各部の機能を、複数の装置に分散して設け、それらを協働させて電子楽器10の機能を実現させることもできる。
【0136】
この発明の実施形態であるプログラムは、1のコンピュータに、または複数のコンピュータを協働させて、図2等に示した各部(特にキーオフリトリガー制御部35)の機能を実現させるためのプログラムである。
そして、このようなプログラムをコンピュータに実行させることにより、上述したような効果を得ることができる。
【0137】
このようなプログラムは、はじめからコンピュータに備えるROMや他の不揮発性記憶媒体(フラッシュメモリ,EEPROM等)などに格納しておいてもよい。しかし、メモリカード、CD、DVD、ブルーレイディスク等の任意の不揮発性記録媒体に記録して提供することもできる。それらの記録媒体に記録されたプログラムをコンピュータにインストールして実行させることにより、上述した各手順を実行させることができる。
【0138】
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部装置あるいはプログラムを記憶手段に記憶した外部装置からダウンロードし、コンピュータにインストールして実行させることも可能である。
また、以上説明してきた実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
【産業上の利用可能性】
【0139】
以上の説明から明らかなように、この発明によれば、操作部の操作状態に応じて1又は複数の選択手段に発音する音高を選択させる場合において、演奏者の演奏操作の意図に合った発音を容易に行えることができる。
従って、この発明を適用することにより、電子楽器の利便性を向上させることができる。
【符号の説明】
【0140】
10:電子楽器、11:CPU、12:ROM、13:RAM、14:記憶装置、15:通信I/F、16:検出回路、17:表示回路、18:音源回路、19:システムバス、21:タイマ、22:演奏操作子、23:設定操作子、24:ディスプレイ、25:DAC、26:サウンドシステム、31:発音指示受付部、32:操作状態検出部、33:割当制御部、34:楽音生成部、35:キーオフリトリガー制御部、36:キーオフリトリガー設定部、37:リトリガー解除操作受付部、38:出力部、39:操作履歴保存部、AS:アサイナ、TC:発音ch
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22