(57)【要約】      （修正有）【課題】多少誤った運指操作が為されても、その操作ミスを許容してミストーンの発音を防ぎ、楽しく演奏練習することが出来る楽音発生指示装置を提供する。【解決手段】ＣＰＵは、運指操作で生じた押弦データをそれぞれ構成音とするコードが成立しているか否かを判別し、コードが成立していれば、当該コードをコード候補とし、成立していなければ、運指操作の形態に応じて押弦データを補正してコード候補を形成する。形成したコード候補がコード進行の形態に相応しい適正コードであるか否かを判断し、適正コードならば、その適正コードの楽音を発音させる。【選択図】図６
2015129839.tif 000002
【特許請求の範囲】
【請求項１】
音高指定操作により指定された音高の楽音をそれぞれ構成音とするコードが成立しているか否かを判別するコード判別手段と、
前記コード判別手段によりコードが成立している場合は、当該コードをコード候補とし、成立していないと判別された場合に、前記音高指定操作の形態に応じて前記各構成音の音高を変更してコード候補とするコード候補形成手段と、
前記コード候補形成手段によりコード候補とされたコードがコード進行の形態に相応しい適正コードであるか否かを判別する適正コード判別手段と、
前記適正コード判別手段により適正コードと判別された場合に、当該適正コードで楽音の発音を指示する発音指示手段と
を具備することを特徴とする楽音発生指示装置。
【請求項２】
前記楽音発生指示装置は、表示部に、複数のフレットを設けた指板、及び当該指板上に張設された複数の弦を表示させる表示制御部を更に有し、
前記コード判別手段は、前記音高指定操作として、前記表示部に表示されているいずれかのフレット上で、当該表示部に表示されているいずれかの弦を押さえる操作をすることにより、指定された音高のそれぞれ構成音とするコードが成立しているか否かを判別する、請求項１に記載の楽音発生指示装置。
【請求項３】
前記コード候補形成手段は、前記コード判別手段によりコードが成立していないと判別された場合に、前記音高指定操作の形態が、前記表示部に表示された同一フレット上で連続して並んだ複数の弦を同時に押さえるバレー操作の形態である場合に、当該バレー操作により前記同一フレット上で押さえられていない弦を押さえる操作を行った場合に指定される音高の楽音をコードの構成音として付加する補正を行う、請求項２に記載の楽音発生指示装置。
【請求項４】
前記コード候補形成手段は、前記コード判別手段によりコードが成立していないと判別された場合に、前記音高指定操作の形態が、前記表示部に表示されているひとつのフレット上でひとつの弦を複数個所で押さえている操作の形態である場合に、当該ひとつのフレット上で当該ひとつの弦に隣接する弦を押さえる操作をした場合に指定される音高の楽音をコードの構成音として付加する補正を行う、請求項２に記載の楽音発生指示装置。
【請求項５】
前記コード候補形成手段は、前記コード判別手段によりコードが成立していないと判別された場合に、前記音高指定操作の形態が、前記表示部に表示されているひとつのフレット上でひとつの弦を複数個所で押さえている操作以外の操作の形態である場合に、前記弦が押さえられている操作がなされているフレットに隣接するフレットで当該弦を押さえる操作をした場合に指定される音高の楽音をコードの構成音として付加する補正を行う、請求項４に記載の楽音発生指示装置。
【請求項６】
前記表示部に表示されている複数のフレットそれぞれに順次番号が付与され、
前記弦が押さえられている操作がなされているフレットが複数存在する場合に、最大番号の付与されたフレットに隣接するフレットで当該弦を押さえる操作をした場合に対応する操作を行った場合に指定される音高の楽音をコードの構成音として付加する補正を行う、請求項５に記載の楽音発生指示装置。
【請求項７】
楽音発生指示装置で実行される方法であって、
前記楽音発生指示装置は、
音高指定操作により指定された音高の楽音をそれぞれ構成音とするコードが成立しているか否かを判別し、
コードが成立している場合は、当該コードをコード候補とし、成立していないと判別された場合に、前記音高指定操作の形態に応じて前記各構成音の音高を変更してコード候補を形成し、
形成されたコード候補がコード進行の形態に相応しい適正コードであるか否かを判別し、
適正コードと判別された場合に、当該適正コードで楽音の発音を指示する
ことを特徴とする楽音発生指示方法。
【請求項８】
楽音発生指示装置に搭載されるコンピュータに、
音高指定操作により指定された音高の楽音をそれぞれ構成音とするコードが成立しているか否かを判別するコード判別ステップと、
前記コード判別ステップでコードが成立している場合は、当該コードをコード候補とし、成立していないと判別された場合に、前記音高指定操作の形態に応じて前記各構成音の音高を変更してコード候補を形成するコード候補形成ステップと、
前記コード候補形成ステップにてコード候補とされたコードがコード進行の形態に相応しい適正コードであるか否かを判別する適正コード判別ステップと、
前記適正コード判別ステップで適正コードと判別された場合に、当該適正コードで楽音の発音を指示する発音指示ステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子弦楽器に用いて好適な楽音発生指示装置、楽音発生指示方法およびプログラムに関する。
【背景技術】
【０００２】
従来より自然楽器のギターなどを模擬して構成された電子弦楽器が知られている。電子弦楽器は、ネック上のフレットに対応する位置に運指操作される複数の音高指定スイッチを備えると共に、胴の撥弦位置に弦を模擬した複数の発音指示操作子を有し、実際に弦を張設した自然楽器のギターと同様な奏法、すなわち音高指定スイッチの運指操作で音高を指定し、発音指示操作子の操作（撥弦操作）に応じて発音を指示することによって、例えばギター音色の楽音が指定音高で発音されるようになっている。なお、この種の電子弦楽器については、例えば特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４１０７１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年では、表示画面上にマルチタッチ検出可能なタッチパネルを備えたスマートフォンやタブレット端末などにおいて、画面に表示された仮想的な弦やフレットをタッチパネル上でタッチ操作して所望の音高の弦楽器音を発音させるアプリケーションを実行して簡易的な電子弦楽器を具現することが知られている。
【０００５】
このような弦の無い簡易的な電子弦楽器では、実際に指で弦を押さえる感触が無いことから運指操作し難く、とりわけ弦楽器に馴染みのないビギナーユーザであれば複数の指を適正な弦およびフレットに置いてコード（和音）を押さえる運指操作すらままならずミストーンを連発してしまう。そうなると、本来の音楽の楽しさや演奏の楽しみを得る以前に、弦楽器の演奏を練習したいという意欲自体失われてしまう。言い換えると、多少誤った運指操作が為されても、その操作ミスを許容してミストーンの発音を防ぎ、楽しく演奏練習することが出来ない、という問題が存在する。
【０００６】
本発明は、このような事情に鑑みてなされたもので、多少誤った運指操作が為されても、その操作ミスを許容してミストーンの発音を防ぎ、楽しく演奏練習することが出来る楽音発生指示装置、楽音発生指示方法およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の楽音発生指示装置は、
音高指定操作により指定された音高の楽音をそれぞれ構成音とするコードが成立しているか否かを判別するコード判別手段と、
前記コード判別手段によりコードが成立している場合は、当該コードをコード候補とし、成立していないと判別された場合に、前記音高指定操作の形態に応じて前記各構成音の音高を変更してコード候補とするコード候補形成手段と、
前記コード候補形成手段によりコード候補とされたコードがコード進行の形態に相応しい適正コードであるか否かを判別する適正コード判別手段と、
前記適正コード判別手段により適正コードと判別された場合に、当該適正コードで楽音の発音を指示する発音指示手段と
を具備することを特徴とする。
【０００８】
また、本発明の楽音発生指示方法は、
音高指定操作により指定された音高の楽音をそれぞれ構成音とするコードが成立しているか否かを判別し、
コードが成立している場合は、当該コードをコード候補とし、成立していないと判別された場合に、前記音高指定操作の形態に応じて前記各構成音の音高を変更してコード候補を形成し、
形成されたコード候補がコード進行の形態に相応しい適正コードであるか否かを判別し、
適正コードと判別された場合に、当該適正コードで楽音の発音を指示する
ことを特徴とする。
【０００９】
更に、本発明のプログラムは、
楽音発生指示装置に搭載されるコンピュータに、
音高指定操作により指定された音高の楽音をそれぞれ構成音とするコードが成立しているか否かを判別するコード判別ステップと、
前記コード判別ステップでコードが成立している場合は、当該コードをコード候補とし、成立していないと判別された場合に、前記音高指定操作の形態に応じて前記各構成音の音高を変更してコード候補を形成するコード候補形成ステップと、
前記コード候補形成ステップにてコード候補とされたコードがコード進行の形態に相応しい適正コードであるか否かを判別する適正コード判別ステップと、
前記適正コード判別ステップで適正コードと判別された場合に、当該適正コードで楽音の発音を指示する発音指示ステップと
を実行させることを特徴とする。
【発明の効果】
【００１０】
本発明では、多少誤った運指操作が為されても、その操作ミスを許容してミストーンの発音を防ぎ、楽しく演奏練習することが出来る。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の一形態による楽音発生指示装置１００の外観を示す外観図である。
【図２】楽音発生指示装置１００の電気的構成を示すブロック図である。
【図３】フレット部３および撥弦部４の構成を説明するための図である。
【図４】ＲＡＭ１５のデータ構成を示すメモリマップである。
【図５】ＲＡＭ１５に格納されるコードテーブルＣＴの内容を示す図である。
【図６】ＣＰＵ１０が実行する発音処理の動作を示すフローチャートである。
【図７】ＣＰＵ１０が実行する適正コード判定処理の動作を示すフローチャートである。
【図８】ＣＰＵ１０が実行する適正コード判定処理の動作を示すフローチャートである。
【図９】ＣＰＵ１０が実行するコード補正処理の動作を示すフローチャートである。
【図１０】コード補正処理の具体的な動作例を説明するための図である。
【図１１】コード補正処理のその他の具体例を示す図である。
【図１２】コード補正処理のその他の具体例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態について説明する。
Ａ．外観
図１は、本発明の実施の一形態による楽音発生指示装置１００の外観を示す外観図である。この図に図示する楽音発生指示装置１００は、自然楽器のウクレレを模しており、ボディ１およびネック２から構成される。ネック２上には、後述する表示部１２−１およびタッチパネル部１３−１から構成されるフレット部３が敷設される。
【００１３】
ボディ１には、後述する表示部１２−２およびタッチパネル部１３−２から構成される撥弦部４と、電源スイッチや音色選択スイッチなどの各種操作スイッチを備えるスイッチ部１１と、発生楽音を放音するスピーカＳＰとが設けられる。なお、スピーカＳＰは、後述するサウンドシステム１７に含まれる。
【００１４】
Ｂ．構成
図２は、楽音発生指示装置１００の構成を示すブロック図である。ＣＰＵ１０は、フレット部３を構成するタッチパネル部１３−１の検出出力と、撥弦部４を構成するタッチパネル部１３−２の検出出力とに基づき音源部１６に楽音波形データＷの発生を指示する。本発明の要旨に係わるＣＰＵ１０の特徴的な処理動作については追って詳述する。
【００１５】
スイッチ部１１は、ボディ１の操作パネルに設けられる電源スイッチや音色選択スイッチなどの各種操作スイッチから構成され、スイッチ操作に応じた種類のスイッチイベントを発生する。スイッチ部１１が発生するスイッチイベントはＣＰＵ１０に取り込まれる。表示部１２−１およびタッチパネル部１３−１は、フレット部３を構成する。
【００１６】
フレット部３は、図３（ａ）に図示するように、液晶表示パネルから構成され、ＣＰＵ１０の制御の下に仮想的な弦１Ｓ〜４Ｓおよびフレット０Ｆ〜１５Ｆを画面表示する表示部１２−１と、この表示部１２−１上に設けられ、２次元マトリクス配置された透明電極を用いた静電容量方式のマルチタッチ検出機能を備えたタッチパネル部１３−１とをネック２上に敷設したものである。
【００１７】
上記構成によれば、例えば図３（ａ）に図示するように、表示部１２−１の画面に表示される弦３Ｓのフレット４Ｆを、演奏者が左手中指で押さえる運指操作を行い、これにより弦３Ｓの位置において図示する一例の静電容量分布になると、タッチパネル部１３−１の検出出力に基づきＣＰＵ１０が閾値１を超える静電容量分布領域を「接触領域（タッチ位置）」と判別する。後述するように、ＣＰＵ１０では演奏者の運指操作によって指先がタッチパネル部１３−１に触れた「接触領域」を、仮想的な弦のフレットを押弦した音高指定位置と見なす。
【００１８】
撥弦部４は、図３（ｂ）に図示するように、液晶表示パネルから構成され、ＣＰＵ１０の制御の下に仮想的な弦１Ｓ〜４Ｓを画面表示する表示部１２−２と、この表示部１２−２上に設けられ、２次元マトリクス配置された透明電極を用いた静電容量方式のマルチタッチ検出機能を備えたタッチパネル部１３−２とをボディ１上に敷設したものである。
【００１９】
こうした構成によれば、表示部１２−２の画面に表示された仮想的な弦１Ｓ〜４Ｓに対して演奏者がタッチパネル部１３−２上でフリック操作（指先で画面上を素早く払う操作）を行うと、当該タッチパネル部１３−２の検出出力に基づきＣＰＵ１０が撥弦入力を発生する。撥弦入力とは、どの弦が撥弦されたか、あるいは撥弦の速さ（フリック操作の速度）を表す。
【００２０】
次に、再び図２を参照して実施形態の構成について説明を進める。ＲＯＭ１４は、ＣＰＵ１０にロードされる各種制御プログラムを記憶する。各種制御プログラムとは、後述する発音処理、適正コード判別処理およびコード補正処理を含む。ＲＡＭ１５は、図４に図示するように、ワークエリアＷＡ、押弦検出エリアＰＡおよびコードテーブルＣＴを備える。
【００２１】
ワークエリアＷＡには、ＣＰＵ１０の処理に用いられる各種レジスタ・フラグデータが一時記憶される。押弦検出エリアＰＡには、上述したフレット部３において演奏者の運指操作で押弦された弦およびフレットを示す押弦データがストアされる。押弦データは、仮想的な弦１Ｓ〜４Ｓを表すインデックスＭ１〜Ｍ４とフレットＮとの組み［Ｍ１  Ｎ］、［Ｍ２  Ｎ］、［Ｍ３  Ｎ］、［Ｍ４  Ｎ］から構成される。なお、フレットが押下されていない開放弦の場合には、フレットＮは「０」となる。例えば図３（ａ）に図示した一例の運指操作により弦３Ｓのフレット４Ｆだけが押弦された時の押弦データは、［Ｍ１  ０］、［Ｍ２  ０］、［Ｍ３  ４］、［Ｍ４  ０］となる。
【００２２】
コードテーブルＣＴは、図５に図示するように、各コード種（メジャー、マイナー、メジャー７ｔｈ、マイナー７ｔｈ、Ａｕｇ、ｄｉｍ等）における全ての調（音名Ｃ〜Ｂまでの１２音）に対応した押弦データ［Ｍ１  ｎ］、［Ｍ２  ｎ］、［Ｍ３  ｎ］、［Ｍ４  ｎ］を記憶したデータテーブルである。このコードテーブルＣＴは、押弦データを構成音として対応するコード名（調およびコード種）を読み出す際に用いられる。すなわち、後述の発音処理において、演奏者の運指操作で発生する押弦データに一致するコード名をコードテーブルＣＴから読み出す。
【００２３】
音源部１６は、周知の波形メモリ読み出し方式にて構成される複数の発音チャンネルを備え、ＣＰＵ１０から供給されるノートオン／ノートオフイベントに従って楽音波形データＷを発生する。サウンドシステム１７は、音源１６から出力される楽音波形データＷをアナログ形式の楽音信号に変換し、当該楽音信号から不要ノイズを除去する等のフィルタリングを施した後、これを増幅してボディ１に設けられたスピーカＳＰ（図１参照）から発音させる。
【００２４】
Ｃ．動作
次に、図６〜図１０を参照して、上記構成による楽音発生指示装置１００のＣＰＵ１０が実行する発音処理、適正コード判定処理およびコード補正処理の各動作について説明する。
【００２５】
（１）発音処理の動作
図６は、ＣＰＵ１０が実行する発音処理の動作を示すフローチャートである。楽音発生指示装置１００のパワーオンに応じて、ＣＰＵ１０が発音処理を実行すると、図６に図示するステップＳＡ１に進み、フレット部３（タッチパネル部１３−１）にタッチ入力が有るか否かを判断する。タッチ入力が無ければ、判断結果は「ＮＯ」になり、タッチ入力待ちの状態となる。
【００２６】
そして、フレット部３（タッチパネル部１３−１）にタッチ入力が為されると、上記ステップＳＡ１の判断結果は「ＹＥＳ」になり、ステップＳＡ２に進む。ステップＳＡ２では、フレット部３（タッチパネル部１３−１）で為されたタッチ入力が弦１Ｓ〜４Ｓの何れかの弦上であるか否かを判断する。弦１Ｓ〜４Ｓの何れかの弦上のタッチ入力ならば、判断結果は「ＹＥＳ」になり、後述のステップＳＡ４に進む。
【００２７】
一方、弦から外れたタッチ入力であると、上記ステップＳＡ２の判断結果は「ＮＯ」になり、ステップＳＡ３に進む。ステップＳＡ３では、演奏者が意図した運指操作として、タッチ入力された箇所の最寄りに位置する近傍弦Ｍおよび近傍フレットＮに補正する。続いて、ステップＳＡ４では、上記ステップＳＡ３で補正された［近傍弦Ｍ  近傍フレットＮ］を含み、各弦１Ｓ〜４Ｓについて検出した押弦データ［Ｍ１  Ｎ］、［Ｍ２  Ｎ］、［Ｍ３  Ｎ］、［Ｍ４  Ｎ］をＲＡＭ１５の押弦検出エリアＰＡにストアする。
【００２８】
次いで、ステップＳＡ５では、コードテーブルＣＴ中に、ＲＡＭ１５の押弦検出エリアＰＡにストアした押弦データと一致するコード名があるか否かを判断する。一致するコード名があれば、判断結果は「ＹＥＳ」になり、当該コードテーブルＣＴから押弦データと一致するコード名を読み出してステップＳＡ６の適正コード判定処理を実行する。
【００２９】
適正コード判定処理では、後述するように、最初に入力されたコードをトニックコードＩ度とし、これ以後に入力されるコード（入力コードＵ１）がトニックコードＩ度に対して通常のコード進行に従っていれば適正コード、そうでなければ非適正コードと判定する。
【００３０】
続いて、ステップＳＡ７では、上記ステップＳＡ６において、コード進行に従った適正コードと判定されたか否かを判断する。コード進行に相応しくない非適正コードと判定された場合には、判断結果が「ＮＯ」になり、後述するステップＳＡ１１のコード補正処理を実行する。これに対し、コード進行に従った適正コードと判定された場合には、判断結果が「ＹＥＳ」となり、ステップＳＡ８に進み、適正コードのコード名をレジスタＣＨにストアする。
【００３１】
次いで、ステップＳＡ９では、撥弦部４の撥弦操作（フリック操作）の有無を判断する。撥弦操作されなければ、判断結果は「ＮＯ」になり、上記ステップＳＡ１に処理を戻すが、撥弦操作されると、判断結果が「ＹＥＳ」になり、ステップＳＡ１０に進む。ステップＳＡ１０では、撥弦操作されたタッチパネル部１３−２の検出出力と、上記ステップＳＡ８においてレジスタＣＨにストアしたコード名とに基づきノートオンイベントを発生して音源部１６に供給した後、上記ステップＳＡ１に処理を戻す。
【００３２】
すなわち、ＣＰＵ１０では、タッチパネル部１３−２の検出出力に基づき撥弦された弦および発音音量に相当する撥弦の速さ（フリック速度）を表す撥弦入力を発生すると共に、この撥弦入力と、レジスタＣＨのコード名に対応した押弦データとに従って、発音音高および発音音量を表すノートオンイベントを発生して音源部１６に供給する。これにより、音源部１６は、例えばウクレレ音色などの波形データを、ノートオンイベントで定義される音高および音量で再生して得た楽音波形データＷを発生する。
【００３３】
なお、ＣＰＵ１０では、複数の弦が同時に撥弦された場合に、撥弦された各弦に対応付けた発音チャンネル毎にノートオンイベントを発生して音源部１６に供給する。また、音源部１６では、弦楽器音の発音メカニズムをシミュレートするため、撥弦に応じてノートオンされた弦楽器音を所定レートで減衰する減衰音として発音させ、ノートオンから所定時間経過した時点で強制的にノートオフさせるようになっている。
【００３４】
さて一方、コードテーブルＣＴ中に、ＲＡＭ１５の押弦検出エリアＰＡにストアした押弦データ（構成音）に一致するコード名が無ければ、上記ステップＳＡ５の判断結果は「ＮＯ」になり、ステップＳＡ１１に進み、コード補正処理を実行する。コード補正処理では、後述するように、運指操作に応じて生じた押弦データを構成音とするコード名がコードテーブルＣＴ（図５参照）に登録されておらずコードとして成立しない場合に、コードとして成立するように「バレーの途切れの補正」、「隣り合う弦の誤押弦の補正」、「指が届かず一つ下のフレットを誤押弦した場合の補正」を施して押弦データ（構成音）を変更する。なお、これら補正を施しても押弦データがコードとして成立しなければ、前述した発音処理（図６参照）のステップＳＡ１に処理を戻してタッチ入力待ちの状態に遷移する。
【００３５】
次いで、ステップＳＡ１２では、上記ステップＳＡ１１において補正されたコード名がコード進行に相応しい適正コードであるか否かを判定する。そして、ステップＳＡ１３では、ステップＳＡ１２の適正コード判定処理で適正コードと判定されたかどうかを判断する。コード進行に相応しくない非適正コードと判定された場合には、判断結果が「ＮＯ」になり、上述したステップＳＡ１に処理を戻してタッチ入力待ちの状態に遷移する。
【００３６】
一方、コード進行に従った適正コードと判定された場合には、上記ステップＳＡ１３の判断結果が「ＹＥＳ」になり、上述したステップＳＡ８以降の処理を実行し、適正コードの楽音を撥弦操作に応じて発音させるよう音源部１６に指示した後、再びステップＳＡ１に処理を戻してタッチ入力待ちの状態に遷移する。
【００３７】
（２）適正コード判定処理の動作
図７〜図８は、適正コード判定処理の動作を示すフローチャートである。上述したステップＳＡ６又はステップＳＡ１２を介して本処理が実行されると、ＣＰＵ１０は図７に図示するステップＳＢ１に処理を進め、最初に入力されたコードであるか否かを判断する。最初に入力されたコードならば、判断結果は「ＹＥＳ」になり、ステップＳＢ２に進み、そのコード名をトニックコードＩ度としてレジスタＴ１にストアする。この後、ステップＳＢ３に進み、レジスタＴ１のトニックコードＩ度を適正コードと判定する。
【００３８】
一方、最初に入力されたコードでなければ、上記ステップＳＢ１の判断結果が「ＮＯ」になり、ステップＳＢ４に進み、入力されたコード名をレジスタＵ１にストアする。以下、レジスタＵ１の内容を入力コードＵ１と称す。次いで、ステップＳＢ５〜ＳＢ９では、入力コードＵ１がコード進行理論に従った適正コードであるかどうかを判断する。
【００３９】
すなわち、ステップＳＢ５〜ＳＢ９では、入力コードＵ１が「レジスタＴ１のサブドミナントコードＩＶ度」、「レジスタＴ１のサブドミナントコードの代理コード」、「レジスタＴ１のドミナントコードＶ度」、「トニックコードＴ１」および「トニックコードＴ１の代理コード」の何れかに該当するかを判断する。
【００４０】
例えば、最初に入力されたコードが「Ｃ」（トニック）であった場合に、次の入力コードＵ１が「Ｆ」（サブドミナントコードＩＶ度）であったとする。そうすると、上記ステップＳＢ５の判断結果が「ＹＥＳ」になり、ステップＳＢ３に進み、その「Ｆ」（サブドミナントコードＩＶ度）を適正コードと判定する。
【００４１】
さらに「Ｆ」（サブドミナントコードＩＶ度）に続いて次の入力コードＵ１が「Ｆ」の代理コードであったとする。そうすると、上記ステップＳＢ６の判断結果が「ＹＥＳ」になり、ステップＳＢ３に進み、その「Ｆ」の代理コードを適正コードと判定する。
【００４２】
そして、「Ｆ」の代理コードに続いて次の入力コードＵ１が「Ｇ」（ドミナントコードＶ度）であったとする。そうすると、上記ステップＳＢ７の判断結果が「ＹＥＳ」になり、ステップＳＢ３に進み、その「Ｇ」（ドミナントコードＶ度）を適正コードと判定する。
【００４３】
また、「Ｇ」（ドミナントコードＶ度）に続いて次の入力コードＵ１が「Ｃ」（トニックコードＴ１）であったとする。そうすると、上記ステップＳＢ８の判断結果が「ＹＥＳ」になり、ステップＳＢ３に進み、その「Ｃ」（トニックコードＴ１）を適正コードと判定する。
【００４４】
さらに「Ｃ」（トニックコードＴ１）に続いて次の入力コードＵ１が「Ｃ」（トニックコードＴ１）の代理コードであったとする。そうすると、上記ステップＳＢ９の判断結果が「ＹＥＳ」になり、ステップＳＢ３に進み、その「Ｃ」（トニックコードＴ１）の代理コードを適正コードと判定する。
【００４５】
さて一方、上述したステップＳＢ５〜ＳＢ９の各判断結果が何れも「ＮＯ」の場合、すなわち転調してコード進行する場合には、図８に図示するステップＳＢ１０に進み、レジスタＴ１にストアしたトニックコードを、転調後の仮のトニックコードとしてレジスタＴ２に設定する。そして、ステップＳＢ１１〜ＳＢ１４では、入力コードＵ１が「レジスタＴ２のサブドミナントコードＩＶ度」、「レジスタＴ２のサブドミナントコードの代理コード」、「レジスタＴ２のドミナントコードＶ度」および「トニックコードＴ２の代理コード」の何れに該当するか判断する。
【００４６】
そして、入力コードＵ１が「レジスタＴ２のサブドミナントコードＩＶ度」、「レジスタＴ２のサブドミナントコードの代理コード」、「レジスタＴ２のドミナントコードＶ度」および「トニックコードＴ２の代理コード」の何れかに該当すると、上記ステップＳＢ１１〜ＳＢ１４の何れかの判断結果が「ＹＥＳ」になり、ステップＳＢ１５に進み、レジスタＴ２を転調確定後のトニックコードとし、続くステップＳＢ１６では、レジスタＴ２の転調確定後のトニックコードを適正コードと判定して本処理を終える。
【００４７】
これに対し、入力コードＵ１が「レジスタＴ２のサブドミナントコードＩＶ度」、「レジスタＴ２のサブドミナントコードの代理コード」、「レジスタＴ２のドミナントコードＶ度」および「トニックコードＴ２の代理コード」の何れにも該当しなければ、上記ステップＳＢ１１〜ＳＢ１４の各判断結果は何れも「ＮＯ」になり、ステップＳＢ１７に進む。
【００４８】
ステップＳＢ１７では、入力コードＵ１は、レジスタＴ１のトニックコードの半音シフトもしくは関係調であるか否かを判断する。入力コードＵ１がレジスタＴ１のトニックコードの半音シフトもしくは関係調であったとすると、判断結果が「ＹＥＳ」になり、ステップＳＢ１８に進む。ステップＳＢ１８では、入力コードＵ１を仮転調後のトニックコードとしてレジスタＴ２にストアした後、ステップＳＢ１６に進み、レジスタＴ２のトニックコードを適正コードと判定して本処理を終える。
【００４９】
一方、入力コードＵ１がレジスタＴ１のトニックコードの半音シフトもしくは関係調でなければ、上記ステップＳＢ１７の判断結果は「ＮＯ」になり、ステップＳＢ１９に進む。そして、ステップＳＢ１９では、入力コードＵ１をコード進行に合わない非適正コードと判定して本処理を終える。
【００５０】
このように、適正コード判定処理では、最初に入力されたコードをトニックコードＩ度とし、これ以後に入力されるコード（入力コードＵ１）がトニックコードＩ度に対して通常のコード進行に従っていれば適正コード、そうでなければ非適正コードと判定する。
【００５１】
（３）コード補正処理の動作
図９は、コード補正処理の動作を示すフローチャートである。前述したステップＳＡ１１を介して本処理が実行されると、ＣＰＵ１０は図９に図示するステップＳＣ１に進み、ＲＡＭ１５の押弦検出エリアＰＡにストアした押弦データに基づき押下されたフレットＮが複数存在するか否かを判断する。押下されたフレットＮが複数存在しなければ、判断結果は「ＮＯ」になり、後述のステップＳＣ５に進むが、押下されたフレットＮが複数存在すると、判断結果が「ＹＥＳ」になり、ステップＳＣ２に進む。
【００５２】
ステップＳＣ２では、同フレットで押下された弦Ｍが３つ有るか否か、すなわちバレー（同一フレット上の複数弦を一つの指で押さえる運指操作）が為されたか否かを判断する。バレーで無ければ、判断結果は「ＮＯ」になり、後述のステップＳＣ５に進むが、バレーならば、判断結果は「ＹＥＳ」になり、ステップＳＣ３に進む。
【００５３】
ステップＳＣ３では、フレットＮの値が異なる弦Ｍに、同じ値のフレットＮを持つ押弦データ［Ｍ  Ｎ］を、ＲＡＭ１５の押弦検出エリアＰＡに追加登録する。続いて、ステップＳＣ４では、ＲＡＭ１５の押弦検出エリアＰＡに一時記憶されている押弦データと一致するコード名がコードテーブルＣＴ（図５参照）あるか否かを判断する。
【００５４】
一致するコード名があれば、判断結果は「ＹＥＳ」になり、ステップＳＣ１２に進み、一致したコード名を当該コードテーブルＣＴから読み出して本処理を終える。なお、上記ステップＳＣ１２において読み出したコード名は、前述した適正コード判定処理において入力されるコード名となる。
【００５５】
一方、ＲＡＭ１５の押弦検出エリアＰＡに一時記憶されている押弦データと一致するコード名がコードテーブルＣＴに存在しなければ、上記ステップＳＣ４の判断結果が「ＮＯ」になり、ステップＳＣ５に進む。ステップＳＣ５では、同じ弦の同じフレットが複数タッチされたか否かを判断する。同じ弦の同じフレットが複数タッチされていなければ、判断結果は「ＮＯ」になり、後述のステップＳＣ１０に進む。
【００５６】
これに対し、同じ弦の同じフレットが複数タッチされると、上記ステップＳＣ５の判断結果が「ＹＥＳ」になり、ステップＳＣ６に進む。ステップＳＣ６では、ＲＡＭ１５の押弦検出エリアＰＡに一時記憶されている押弦データの内、同じ弦の同じフレットの複数タッチに対応した押弦データ［Ｍ  Ｎ］の何れか一方を押弦データ［Ｍ＋１  Ｎ］に変更する。
【００５７】
続いて、ステップＳＣ７では、この変更された押弦データ［Ｍ＋１  Ｎ］を含むＲＡＭ１５の押弦検出エリアＰＡに一時記憶されている押弦データと一致するコード名がコードテーブルＣＴに有るか否かを判断する。一致するコード名があれば、判断結果は「ＹＥＳ」になり、ステップＳＣ１２に進み、一致したコード名を当該コードテーブルＣＴから読み出して本処理を終える。なお、この読み出したコード名は、前述した適正コード判定処理において入力されるコード名となる。
【００５８】
一方、一致するコード名がコードテーブルＣＴに存在しなければ、上記ステップＳＣ７の判断結果は「ＮＯ」になり、ステップＳＣ８に進む。ステップＳＣ８では、上記ステップＳＣ６において変更した押弦データ［Ｍ＋１  Ｎ］を、押弦データ［Ｍ−１  Ｎ］に変更する。
【００５９】
そして、ステップＳＣ９では、この変更された押弦データ［Ｍ−１  Ｎ］を含むＲＡＭ１５の押弦検出エリアＰＡに一時記憶されている押弦データと一致するコード名がコードテーブルＣＴ（図５参照）あるか否かを判断する。一致するコード名があれば、判断結果は「ＹＥＳ」になり、ステップＳＣ１２に進み、一致したコード名を当該コードテーブルＣＴから読み出して本処理を終える。なお、この読み出したコード名は、前述した適正コード判定処理において入力されるコード名となる。
【００６０】
これに対し、一致するコード名がコードテーブルＣＴ（図５参照）に存在しなければ、上記ステップＳＣ９の判断結果が「ＮＯ」になり、ステップＳＣ１０に進む。ステップＳＣ１０では、ＲＡＭ１５の押弦検出エリアＰＡに一時記憶されている押弦データの内、Ｎの最大値を持つ押弦データ［Ｍ  Ｎ］を、押弦データ［Ｍ  Ｎ＋１］に変更する。
【００６１】
次いで、ステップＳＣ１１では、この変更された押弦データ［Ｍ  Ｎ＋１］を含むＲＡＭ１５の押弦検出エリアＰＡに一時記憶されている押弦データと一致するコード名がコードテーブルＣＴ（図５参照）あるか否かを判断する。一致するコード名があると、判断結果は「ＹＥＳ」になり、ステップＳＣ１２に進み、一致したコード名を当該コードテーブルＣＴから読み出して本処理を終える。なお、この読み出したコード名は、前述した適正コード判定処理において入力されるコード名となる。
【００６２】
一方、一致するコード名がコードテーブルＣＴ（図５参照）に存在しなければ、上記ステップＳＣ１１の判断結果が「ＮＯ」になり、前述した発音処理（図６参照）のステップＳＡ１に処理を戻してタッチ入力待ちの状態に遷移する。
【００６３】
（４）コード補正処理の具体的動作
次に、図１０を参照して上述したコード補正処理の具体的な動作例について説明する。例えば演奏者が、図１０（ａ）に図示するように、本来、弦１Ｓ〜４Ｓのフレット１Ｆをバレー（同一フレット上の複数弦を一つの指で押さえる運指操作）を行ったつもりであったのに弦２Ｓがオープン（開放）となってしまい、更に弦４Ｓのフレット２Ｆを２箇所押弦してしまうという誤った運指操作をしたとする。
【００６４】
すると、この誤った運指操作に応じて押弦データ［１１］、［２０］、［３１］、［４１］、［４２］、［４２］が発生する。この場合、上記ステップＳＣ１〜ＳＣ２の各判断結果は「ＹＥＳ」になり、ステップＳＣ３に進み、押弦データ［２１］が追加される。これにより、ＲＡＭ１５の押弦検出エリアＰＡには、押弦データ［１１］、［２１］、［３１］、［４１］、［４２］、［４２］がストアされることになる。すなわち、図１０（ｂ）に図示するように、弦１Ｓ〜４Ｓのフレット１Ｆを一つの指で押さえる適切なバレーに補正される。
【００６５】
ところで、こうしたバレーの途切れを補正してもなお、押弦データ［１１］、［２１］、［３１］、［４１］、［４２］、［４２］を構成音とするコード名がコードテーブルＣＴに存在しない為、上記ステップＳＣ４の判断結果が「ＮＯ」になり、ステップＳＣ５に進む。そして、この場合、弦４Ｓのフレット２Ｆが２箇所押弦されている為、ステップＳＣ５の判断結果が「ＹＥＳ」になり、ステップＳＣ６に進み、押弦データ［４２］を押弦データ［５２］に変更するが、当該押弦データ［５２］は存在しない為、ステップＳＣ７の判断結果が「ＮＯ」になり、ステップＳＣ８に進む。
【００６６】
そして、ステップＳＣ８では、弦４Ｓのフレット２Ｆの２箇所押弦の内、一方を隣の弦の同じフレットに置き換える。すなわち押弦データ［４２］を押弦データ［３２］に変更し、これにより押弦データ［１１］、［２１］、［３１］、［３２］、［４１］、［４２］を得るが、これら構成音に対応するコード名がコードテーブルＣＴに存在せず、上記ステップＳＣ９の判断結果が「ＮＯ」になり、ステップＳＣ１０に進む。
【００６７】
そして、ステップＳＣ１０では、指が届かなかった場合の補正として、最も高音側の押弦データのフレット番号を「＋１」する。すなわち押弦データ［１１］、［２１］、［３１］、［３２］、［４１］、［４２］の内、最も高音側の押弦データ［４２］を押弦データ［４３］に変更する。これにより押弦データ［１１］、［２１］、［３１］、［３２］、［４１］、［４３］を得る。そして、これら押弦データ（構成音）に対応するコード名をコードテーブルＣＴ（図５参照）から読み出すと、「メジャーＢ♭」に補正される。なお、本処理の補正で得られたコード名は前述した適正コード判定処理においてコード進行に相応しい適正コードであるかどうかが判断される。
【００６８】
このように、コード補正処理では、運指操作で生じた押弦データを構成音とするコード名がコードテーブルＣＴに登録されておらずコードとして成立しない場合、運指操作の形態に応じて「バレーの途切れの補正」、「隣り合う弦の誤押弦の補正」、「指が届かず一つ下のフレットを誤押弦した場合の補正」を施して押弦データ（構成音）を変更するコード補正を行う。なお、これら補正を施しても押弦データがコードとして成立しなければ、前述した発音処理（図６参照）のステップＳＡ１に処理を戻してタッチ入力待ちの状態に遷移する。
【００６９】
以上説明したように、本実施形態では、運指操作で生じた押弦データを構成音とするコードが成立しているか否かを判別し、コードが成立していなければ、運指操作の形態に応じて押弦データを補正して補正コードを形成する。形成した補正コードがコード進行に相応しい適正コードであるか否かを判断し、適正コードならば、その適正コードの楽音を発音させる為、多少誤った運指操作が為されても、その操作ミスを許容してミストーンの発音を防ぎ、楽しく演奏練習することが出来る。
【００７０】
なお、上述した実施形態では、運指操作の形態に応じて「バレーの途切れの補正」、「隣り合う弦の誤押弦の補正」、「指が届かず一つ下のフレットを誤押弦した場合の補正」を施して押弦データ（構成音）を変更するコード補正を行うようにしたが、これに限らず、例えば図１１〜図１２に図示するコード補正も可能である。
【００７１】
すなわち、図１１（ａ）に図示するように、本来、弦４Ｓを開放とすべきところ、誤って弦２Ｓを開放し、弦１Ｓフレット１Ｆ、弦３Ｓフレット３Ｆ、弦４Ｓフレット３Ｆを押弦する運指操作で押弦データ［１１］、［２０］、［３３］、［４３］が生じた場合、１弦分のズレが生じたと見なして同図（ｂ）に図示する押弦データ［１１］、［２３］、［３３］、［４０］に変更することで「メジャーＥ♭」に補正する。
【００７２】
また、同様に、図１２（ａ）に図示するように、本来、弦２Ｓおよび弦３Ｓのフレット３Ｆを押弦すべきところ、誤って弦１Ｓフレット１Ｆ、弦２Ｓフレット３Ｆ、弦３Ｓフレット２Ｆを押弦し、弦４Ｓを開放する運指操作で押弦データ［１１］、［２３］、［３２］、［４０］が生じた場合、弦３Ｓのフレット３Ｆに指が届いていないと見なして同図（ｂ）に図示する押弦データ［１１］、［２３］、［３３］、［４０］に変更することで「メジャーＥ♭」に補正する。
なお、本実施形態では、ウクレレを例に説明したが、これに限らず、ギター等の他の弦楽器であっても良い。
【００７３】
以上、本発明の実施の一形態について説明したが、本発明はそれに限定されるものではなく、本願出願の特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。
【００７４】
（付記）
［請求項１］
音高指定操作により指定された音高の楽音をそれぞれ構成音とするコードが成立しているか否かを判別するコード判別手段と、
前記コード判別手段によりコードが成立している場合は、当該コードをコード候補とし、成立していないと判別された場合に、前記音高指定操作の形態に応じて前記各構成音の音高を変更してコード候補とするコード候補形成手段と、
前記コード候補形成手段によりコード候補とされたコードがコード進行の形態に相応しい適正コードであるか否かを判別する適正コード判別手段と、
前記適正コード判別手段により適正コードと判別された場合に、当該適正コードで楽音の発音を指示する発音指示手段と
を具備することを特徴とする楽音発生指示装置。
【００７５】
［請求項２］
前記楽音発生指示装置は、表示部に、複数のフレットを設けた指板、及び当該指板上に張設された複数の弦を表示させる表示制御部を更に有し、
前記コード判別手段は、前記音高指定操作として、前記表示部に表示されているいずれかのフレット上で、当該表示部に表示されているいずれかの弦を押さえる操作をすることにより、指定された音高のそれぞれ構成音とするコードが成立しているか否かを判別する、請求項１に記載の楽音発生指示装置。
【００７６】
［請求項３］
前記コード候補形成手段は、前記コード判別手段によりコードが成立していないと判別された場合に、前記音高指定操作の形態が、前記表示部に表示された同一フレット上で連続して並んだ複数の弦を同時に押さえるバレー操作の形態である場合に、当該バレー操作により前記同一フレット上で押さえられていない弦を押さえる操作を行った場合に指定される音高の楽音をコードの構成音として付加する補正を行う、請求項２に記載の楽音発生指示装置。
【００７７】
［請求項４］
前記コード候補形成手段は、前記コード判別手段によりコードが成立していないと判別された場合に、前記音高指定操作の形態が、前記表示部に表示されているひとつのフレット上でひとつの弦を複数個所で押さえている操作の形態である場合に、当該ひとつのフレット上で当該ひとつの弦に隣接する弦を押さえる操作をした場合に指定される音高の楽音をコードの構成音として付加する補正を行う、請求項２に記載の楽音発生指示装置。
【００７８】
［請求項５］
前記コード候補形成手段は、前記コード判別手段によりコードが成立していないと判別された場合に、前記音高指定操作の形態が、前記表示部に表示されているひとつのフレット上でひとつの弦を複数個所で押さえている操作以外の操作の形態である場合に、前記弦が押さえられている操作がなされているフレットに隣接するフレットで当該弦を押さえる操作をした場合に指定される音高の楽音をコードの構成音として付加する補正を行う、請求項４に記載の楽音発生指示装置。
【００７９】
［請求項６］
前記表示部に表示されている複数のフレットそれぞれに順次番号が付与され、
前記弦が押さえられている操作がなされているフレットが複数存在する場合に、最大番号の付与されたフレットに隣接するフレットで当該弦を押さえる操作をした場合に対応する操作を行った場合に指定される音高の楽音をコードの構成音として付加する補正を行う、請求項５に記載の楽音発生指示装置。
【００８０】
［請求項７］
楽音発生指示装置で実行される方法であって、
前記楽音発生指示装置は、
音高指定操作により指定された音高の楽音をそれぞれ構成音とするコードが成立しているか否かを判別し、
コードが成立している場合は、当該コードをコード候補とし、成立していないと判別された場合に、前記音高指定操作の形態に応じて前記各構成音の音高を変更してコード候補を形成し、
形成されたコード候補がコード進行の形態に相応しい適正コードであるか否かを判別し、
適正コードと判別された場合に、当該適正コードで楽音の発音を指示する
ことを特徴とする楽音発生指示方法。
【００８１】
［請求項８］
楽音発生指示装置に搭載されるコンピュータに、
音高指定操作により指定された音高の楽音をそれぞれ構成音とするコードが成立しているか否かを判別するコード判別ステップと、
前記コード判別ステップでコードが成立している場合は、当該コードをコード候補とし、成立していないと判別された場合に、前記音高指定操作の形態に応じて前記各構成音の音高を変更してコード候補を形成するコード候補形成ステップと、
前記コード候補形成ステップにてコード候補とされたコードがコード進行の形態に相応しい適正コードであるか否かを判別する適正コード判別ステップと、
前記適正コード判別ステップで適正コードと判別された場合に、当該適正コードで楽音の発音を指示する発音指示ステップと
を実行させることを特徴とするプログラム。
【符号の説明】
【００８２】
１  ボディ
２  ネック
３  フレット部（表示部１２−１，タッチパネル部１３−１）
４  撥弦部（表示部１２−２，タッチパネル部１３−２）
１０  ＣＰＵ
１１  スイッチ部
１２−１，１２−２  表示部
１３−１，１３−２  タッチパネル部
１４  ＲＯＭ
１５  ＲＡＭ
１６  音源部
１７  サウンドシステム
１００  楽音発生指示装置
【図１】
2015129839.tif 000003
【図２】
2015129839.tif 000004
【図３】
2015129839.tif 000005
【図４】
2015129839.tif 000006
【図５】
2015129839.tif 000007
【図６】
2015129839.tif 000008
【図７】
2015129839.tif 000009
【図８】
2015129839.tif 000010
【図９】
2015129839.tif 000011
【図１０】
2015129839.tif 000012
【図１１】
2015129839.tif 000013
【図１２】
2015129839.tif 000014