(57)【要約】【課題】コンピュータ上で実現されたソフトウェアシンセサイザーのパッチの制御をシンセサイザー用コントローラを用いて容易に行うことが可能な演奏システムを提供すること。【解決手段】ＣＰＵ１０１は、パッチスキャナ１０９によりパッチスキャン処理を行い、２つのジャックがケーブルを介して接続されているか否かの組み合わせに対する接続状態が変更された場合には、接続状態の変更を指示するパッチ情報の出力要求を実行し（ステップＳ５００５またはＳ５００７）、そして、パッチ情報をコンピュータ２０に出力する（ステップＳ３００９）。従って、コンピュータ２０上で実現されたソフトウェアシンセサイザーでのパッチの制御をシンセサイザー用コントローラ１０を用いて容易に行うことができる。【選択図】  図１  
2005055623.tif 000002
【特許請求の範囲】
【請求項１】
所定のプログラムを実行することによりコンピュータ上で実現されたソフトウェアシンセサイザーと、前記ソフトウェアシンセサイザーに対して外部からの所望の操作が可能に接続されたシンセサイザー用コントローラと、を備えた演奏システムであって、
前記シンセサイザー用コントローラは、
所定パターンで配設された複数のジャックであって、両端にプラグを有するケーブのそれぞれのプラグを１対のジャックに挿入することによって前記１対のジャックが接続されて、前記１対のジャックのそれぞれに対応する信号処理が組み合わされるように構成された複数のジャックと、
前記複数のジャックのうち、２つのジャックが接続されたか否かの組み合わせに対する接続状態を読み出す読出手段と、
前記読出手段が読み出した前記接続状態が、その前の時点での接続状態と同一であるか否かを判定する判定手段と、
前記組み合わせに対する接続状態がその前の時点での接続状態と同一でない場合には、前記読出手段が新たに読み出した前記接続状態への変更を指示する接続状態指示情報を前記ソフトウェアシンセサイザーに対して出力する出力手段と、を備えたことを特徴とする演奏システム。
【請求項２】
請求項１に記載の演奏システムにおいて、
前記読出手段は、
前記複数のジャックのうち、２つのジャックが接続されたか否かの組み合わせの全ての種類に対する接続状態を読出す手段であることを特徴とする演奏システム。
【請求項３】
請求項２に記載の演奏システムにおいて、
前記読出手段は、
前記組み合わせを［Ａ：Ｂ］と表し（Ａ、Ｂは、複数のジャックのそれぞれに割り振られた番号）、ＡとＢの関係が、「Ａ＞Ｂ」が成立するようにして、Ａ、Ｂの番号を定め、或るＡの番号において、Ｂの番号を順次変更して、前記組み合わせの接続状態を繰り返して読み出す処理を行い、更に、この処理をＡの番号を順次変更していきながら繰り返し行って、前記組み合わせの全ての種類の接続状態を読み出すことを特徴とする演奏システム。
【請求項４】
請求項１、２または３に記載の演奏システムにおいて、
前記シンセサイザー用コントローラは、
操作者による操作に応じて、前記接続状態指示情報を前記ソフトウェアシンセサイザーに対して出力するための状態出力スイッチが設けられ、
前記状態出力スイッチは、
操作者の手動操作に応じて前記出力手段から前記接続状態指示情報を取得する接続状態取得手段と、
前記接続状態取得手段が取得した前記接続状態指示情報を前記ソフトウェアシンセサイザーに対して出力する接続状態出力手段と、から構成されていることを特徴とする演奏システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のプログラムを実行することによりコンピュータ上で実現されたソフトウェアシンセサイザーと、ソフトウェアシンセサイザーに対して外部からの所望の操作が可能に接続されたシンセサイザー用コントローラと、を備えた演奏システムに関する。
【背景技術】
【０００２】
従来より、コンピュータがプログラムを実行することによって実現されるソフトウェアシンセサイザーでは、キーボードのキーを押下すると、そのキーに対応する電子音がコンピュータ内に設置された音源モジュールによって生成されてスピーカから出力されるように構成されていた。従来の電子楽器システムでは、マスターキーボードと音源モジュールとのＭＩＤＩ接続で構成されたシステムにおいて、マスターキーボードと音源モジュールとの間で音色名等の音楽制御情報により、その変更設定を容易に行うことができるものが提案されている（例えば、特許文献１参照。）。
【０００３】
【特許文献１】特開平８−６３１５６号公報（第３−７頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような従来の電子楽器システムにあっては、この音源モジュールに対して、マスターキーボードによって外部から音色名等の音楽制御情報の対応関係を確認し、または、変更設定をすることが可能であっても、電子音に対しての複数種類の信号処理のそれぞれに対応したジャックの接続状態に関するパッチの制御をマスターキーボードを用いて行うことができないという問題があった。
【０００５】
本発明は、かかる従来の課題を解決するためになされたもので、コンピュータ上で実現されたソフトウェアシンセサイザーに対して、ソフトウェアシンセサイザーのパッチの制御をシンセサイザー用コントローラを用いて容易に行うことができ、操作性を高めることが可能な演奏システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、所定のプログラムを実行することによりコンピュータ上で実現されたソフトウェアシンセサイザーと、前記ソフトウェアシンセサイザーに対して外部からの所望の操作が可能に接続されたシンセサイザー用コントローラと、を備えた演奏システムであって、
前記シンセサイザー用コントローラは、
所定パターンで配設された複数のジャックであって、両端にプラグを有するケーブのそれぞれのプラグを１対のジャックに挿入することによって前記１対のジャックが接続されて、前記１対のジャックのそれぞれに対応する信号処理が組み合わされるように構成された複数のジャックと、
前記複数のジャックのうち、２つのジャックが接続されたか否かの組み合わせに対する接続状態を読み出す読出手段と、
前記読出手段が読み出した前記接続状態が、その前の時点での接続状態と同一であるか否かを判定する判定手段と、
前記組み合わせに対する接続状態がその前の時点での接続状態と同一でない場合には、前記読出手段が新たに読み出した前記接続状態への変更を指示する接続状態指示情報を前記ソフトウェアシンセサイザーに対して出力する出力手段と、を備えたことを特徴とするようにした。
【０００７】
このような発明によれば、読出手段が読み出した接続状態が、その前の時点での接続状態と同一であるか否かを判定手段が判定し、同一でない場合には、出力手段がこの読出手段が新たに読み出した接続状態への変更を指示する接続状態指示情報をソフトウェアシンセサイザーに対して出力するので、ソフトウェアシンセサイザーのジャックの接続状態の制御をシンセサイザー用コントローラを用いて容易に行うことができ、操作性を高めることが可能となる。
【０００８】
また、上述の発明において、
前記読出手段は、
前記複数のジャックのうち、２つのジャックが接続されたか否かの組み合わせの全ての種類に対する接続状態を読出す手段であっても良い。このような発明によれば、ソフトウェアシンセサイザーのジャックの全ての種類の接続状態の制御をシンセサイザー用コントローラを用いて容易に行うことができる。
【０００９】
更に、上述の発明において、
前記読出手段は、
前記組み合わせを［Ａ：Ｂ］と表し（Ａ、Ｂは、複数のジャックのそれぞれに割り振られた番号）、ＡとＢの関係が、「Ａ＞Ｂ」が成立するようにして、Ａ、Ｂの番号を定め、或るＡの番号において、Ｂの番号を順次変更して、前記組み合わせの接続状態を繰り返して読み出す処理を行い、更に、この処理をＡの番号を順次変更していきながら繰り返し行って、前記組み合わせの全ての種類の接続状態を読み出すこととしても良い。
【００１０】
このような発明によれば、Ａの番号とＢの番号とが入れ換わった２つの組み合わせをその都度読み出すことによって、同じ組み合わせを２度読み出すことを省略して、効率的に全ての種類の組み合わせの接続状態を読み出すことが可能となる。
【００１１】
上述の発明において、
前記シンセサイザー用コントローラは、
操作者による操作に応じて、前記接続状態指示情報を前記ソフトウェアシンセサイザーに対して出力するための状態出力スイッチが設けられ、
前記状態出力スイッチは、
操作者の手動操作に応じて前記出力手段から前記接続状態指示情報を取得する接続状態取得手段と、
前記接続状態取得手段が取得した前記接続状態指示情報を前記ソフトウェアシンセサイザーに対して出力する接続状態出力手段と、から構成されていても良い。
【００１２】
このような発明によれば、シンセサイザー用コントローラが操作者の手動操作に応じて出力手段から接続状態指示情報を取得し、ソフトウェアシンセサイザーに対して出力するので、操作者は、パッチの制御を手動で行うことが可能となり、ハードウェアシンセサイザーを操作する場合と同じ操作感を実現することが可能となる。
【発明の効果】
【００１３】
本発明の演奏システムは、楽曲を演奏する電子音を出力するコンピュータ上で実現されたソフトウェアシンセサイザーに対して、シンセサイザー用コントローラから接続状態の変更を指示するパッチ情報を出力することにより、ソフトウェアシンセサイザーのパッチの制御をシンセサイザー用コントローラを用いて容易に行うことができ、操作性が高まるという利点が得られる。
【発明を実施するための最良の形態】
【００１４】
（構成）
以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。図１は、本実施の形態における演奏システムの構成を示す説明図である。１０は電子楽器に対して外部から操作を行うためのシンセサイザー用コントローラ、２０は本体の記憶部に格納されたプログラムを実行することによりソフトウェアシンセサイザーとしての機能を有するコンピュータである。このコンピュータ２０は、シンセサイザー用コントローラ１０上の後述する鍵盤１０２１を操作手段とし、キーボードのそれぞれのキーに対応した電子音が音源モジュールによって生成されてスピーカから出力され、ソフトウェアシンセサイザーが実現されるようになっている。
【００１５】
シンセサイザー用コントローラ１０、コンピュータ２０間は、例えばＵＳＢケーブル等により接続されており、相互に情報の送信及び受信を行うことができるようになっている。
【００１６】
図２は、シンセサイザー用コントローラ１０の構成を示すブロック図である。図２に示すように、シンセサイザー用コントローラ１０は、ＣＰＵ１０１、操作部１０２、パッチ部１０３、インターフェース部１０４、点灯部１０５、キーボードスキャナ１０６、スイッチスキャナ１０７、アナログスキャナ１０８、パッチスキャナ１０９、ＲＯＭ１１０、ＲＡＭ１１１、状態出力スイッチ１１２を備えている。
【００１７】
ＣＰＵ１０１は、ＲＯＭ１１０に格納された所定のプログラムを実行することにより以下に説明する処理を実行することが可能である。
【００１８】
操作部１０２は、コンピュータ２０上で実現されたソフトウェアシンセサイザーを操作するための手段である。この操作部１０２は、各種の音階の電子音を出力するためのキーが配設された鍵盤１０２１、電子音に対してカットオフ、ローパスフィルタ、ハイパスフィルタ等の信号処理をするための複数種類のボリュームつまみが所定パターンで配列されたボリュームつまみ群１０２２、このボリュームつまみ群１０２２のうちのボリュームつまみの信号処理における波形、オクターブ等の選択をするための複数種類の選択スイッチが配列された選択スイッチ群１０２３により構成されている。
【００１９】
パッチ部１０３は、図８、図９に示すように複数のジャック１、２、３、４、…、ｎ（「ｎ」は２以上の自然数）が所定パターンで配設されたパネルである。このパッチ部１０３では、複数のジャック１、２、３、４、…、ｎのうち、任意に選択した１対のジャックに対して、操作者が両端にプラグを有するケーブルのそれぞれのプラグを挿入することによって、両ジャックが接続されて、両ジャックの夫々に対応する信号処理が組み合わされる。また、これらの両ジャックが接続されると、両ジャックを接続したケーブルについてのケーブル情報がＲＡＭ１１１に格納されるようになっている。
【００２０】
インターフェース部１０４は、ＵＳＢケーブル等を介して接続されたコンピュータ２０と情報の送信及び受信を行う機能を有する。
【００２１】
点灯部１０５は、複数のＬＥＤ等の光源により構成されており、インターフェース部１０４を介してコンピュータ２０から送信された点灯を指示する点灯指示情報に応じて光源が点灯するようになっている。例えば、点灯指示情報に応じて光源の点滅等を行うようになっている。
【００２２】
キーボードスキャナ１０６は、操作者による鍵盤１０２１の操作を読み出して把握する鍵盤スキャン処理を行う機能を有する。また、この鍵盤スキャン処理により鍵盤１０２１のキーのＯＮ／ＯＦＦが変更されたと判定した場合には、そのキーをＯＮまたはＯＦＦする鍵盤情報を、コンピュータ２０に送信する処理を行う機能を有する。鍵盤スキャン処理については後に詳細に説明する。
【００２３】
スイッチスキャナ１０７は、操作者の選択スイッチ群１０２３の操作を読み出して把握するスイッチスキャン処理を行う機能を有する。また、このスイッチスキャン処理により選択スイッチ群１０２３のうちの選択スイッチで波形、オクターブ等を選択した選択情報が変更されたと判定した場合には、その選択スイッチの選択情報を変更するスイッチ情報を、コンピュータ２０に送信する処理を行う機能を有する。スイッチスキャン処理については後に詳細に説明する。
【００２４】
アナログスキャナ１０８は、操作者によるボリュームつまみ群１０２２の操作を読み出して把握するボリュームスキャン処理を行う機能を有する。また、このボリュームスキャン処理によりボリュームつまみ群１０２２のボリュームつまみによる信号処理が変更されたと判定した場合には、そのボリュームつまみによる信号処理を変更するボリューム情報を、コンピュータ２０に送信する処理を行う機能を有する。ボリュームスキャン処理については後に詳細に説明する。
【００２５】
パッチスキャナ１０９は、パッチ部１０３のジャック１、２、…、ｎのうち、２つのジャックがケーブルを介して接続されているか否かの組み合わせに対する接続状態を読み出して把握するパッチスキャン処理を行う機能を有する。また、このパッチスキャン処理によりジャックの組み合わせの接続状態が変更されたと判定した場合には、そのジャックの組み合わせの接続状態を変更するパッチ情報を、コンピュータ２０に送信する処理を行う機能を有する。ケーブルを同時に複数本使用して、複数対の接続を把握することもできる。パッチスキャン処理については後に詳細に説明する。
【００２６】
ＲＯＭ１１０には、ＣＰＵ１０１に以下の処理を行わせるための所定のプログラムが格納されている。
【００２７】
ＲＡＭ１１１には、２つのジャックを接続しているケーブルについてのケーブル情報が格納されるようになっている。ケーブル情報には、そのケーブルを示すケーブル番号「ｉ」、ケーブルの一方のプラグが挿入されているジャックを示す「ｓｒｃ［ｉ］」、他方のプラグが挿入されているジャックを示す「ｄｅｓｔ［ｉ］」が含まれている。また、ＲＡＭ１１１には、鍵盤スキャン処理、スイッチスキャン処理、ボリュームスキャン処理、パッチスキャン処理に従って、鍵盤情報、スイッチ情報、ボリューム情報、パッチ情報が格納されるようになっている。
【００２８】
状態出力スイッチ１１２は、ＣＰＵ１０１に接続されており、操作者に操作されることに応じて、ＲＡＭ１１１に格納されたパッチ情報をインターフェース部１０４を介してコンピュータ２０に出力する機能を有する。
【００２９】
（全体処理フロー）
続いて本実施の形態における演奏システムの全体処理フローについて図３に示すフローチャート図を用いて詳細に説明する。まず、ＣＰＵ１０１は、初期設定のための処理を行う（ステップＳ３００１）。ＣＰＵ１０１は、シンセサイザー用コントローラ１０のＣＰＵシステムを作動させるための初期設定を行い、また、キーボードスキャナ１０６、スイッチスキャナ１０７、アナログスキャナ１０８、パッチスキャナ１０９にそれぞれ鍵盤スキャン処理、スイッチスキャン処理、ボリュームスキャン処理、パッチスキャン処理を実行させるための初期化を行う。そして、これらの鍵盤スキャン処理、スイッチスキャン処理、ボリュームスキャン処理、パッチスキャン処理を実行するためのタイマー割り込み機能を起動させる。
【００３０】
次にＣＰＵ１０１は、鍵盤情報の出力要求がされているか否かを判定する（ステップＳ３００２）。即ち、ＣＰＵ１０１は、キーボードスキャナ１０６が鍵盤スキャン処理を実行した際に鍵盤情報の出力要求がされているか否かを検出する。
【００３１】
次に鍵盤情報の出力要求がされている場合には（ステップＳ３００２のＹＥＳ）、ＣＰＵ１０１は、この鍵盤情報を外部に出力する（ステップＳ３００３）。ＣＰＵ１０１は、ＲＡＭ１１１を検索して鍵盤情報を読み出し、この鍵盤情報をインターフェース部１０４を介してコンピュータ２０に出力する。鍵盤情報を出力した後は、出力要求を消去する。また、鍵盤情報の出力要求がされていない場合には（ステップＳ３００２のＮＯ）、ＣＰＵ１０１は、ステップＳ３００４の処理を実行する。
【００３２】
次にＣＰＵ１０１は、スイッチ情報の出力要求がされているか否かを判定する（ステップＳ３００４）。即ち、ＣＰＵ１０１は、スイッチスキャナ１０７がスイッチスキャン処理を実行した際にスイッチ情報の出力要求がされているか否かを検出する。
【００３３】
次にスイッチ情報の出力要求がされている場合には（ステップＳ３００４のＹＥＳ）、ＣＰＵ１０１は、このスイッチ情報を外部に出力する（ステップＳ３００５）。ＣＰＵ１０１は、ＲＡＭ１１１を検索してスイッチ情報を読み出し、このスイッチ情報をインターフェース部１０４を介してコンピュータ２０に出力する。スイッチ情報を出力した後は、出力要求を消去する。また、スイッチ情報の出力要求がされていない場合には（ステップＳ３００４のＮＯ）、ＣＰＵ１０１は、ステップＳ３００６の処理を実行する。
【００３４】
次にＣＰＵ１０１は、ボリューム情報の出力要求がされているか否かを判定する（ステップＳ３００６）。即ち、ＣＰＵ１０１は、アナログスキャナ１０８がボリュームスキャン処理を実行した際にボリューム情報の出力要求がされているか否かを検出する。
【００３５】
次にボリューム情報の出力要求がされている場合には（ステップＳ３００６のＹＥＳ）、ＣＰＵ１０１は、このボリューム情報を外部に出力する（ステップＳ３００７）。ＣＰＵ１０１は、ＲＡＭ１１１を検索してボリューム情報を読み出し、このボリューム情報をインターフェース部１０４を介してコンピュータ２０に出力する。ボリューム情報を出力した後は、出力要求を消去する。また、ボリューム情報の出力要求がされていない場合には（ステップＳ３００６のＮＯ）、ＣＰＵ１０１は、ステップＳ３００８の処理を実行する。
【００３６】
次にＣＰＵ１０１は、パッチ情報の出力要求がされているか否かを判定する（ステップＳ３００８）。即ち、ＣＰＵ１０１は、パッチスキャナ１０９がパッチスキャン処理を実行した際にパッチ情報の出力要求がされているか否かを検出する。
【００３７】
次にパッチ情報の出力要求がされている場合には（ステップＳ３００８のＹＥＳ）、ＣＰＵ１０１は、このパッチ情報を外部に出力する（ステップＳ３００９）。ＣＰＵ１０１は、ＲＡＭ１１１を検索してパッチ情報を読み出し、このパッチ情報をインターフェース部１０４を介してコンピュータ２０に出力する。パッチ情報を出力した後は、出力要求を消去する。パッチ情報がコンピュータ２０に出力されると、図１に示すように、コンピュータ２０側ではパッチ情報に応じて、２つのジャックをケーブルにより接続した画像をディスプレイ２０１に表示する。また、パッチ情報の出力要求がされていない場合には（ステップＳ３００８のＮＯ）、ＣＰＵ１０１は、ステップＳ３０１０の処理を実行する。
【００３８】
次にＣＰＵ１０１は、コンピュータ２０からの情報を受信しているか否かを判定する（ステップＳ３０１０）。即ち、ＣＰＵ１０１は、ＵＳＢケーブルを介してインターフェース部によりコンピュータ２０からの情報を受信しているか否かを判定する。
【００３９】
次にコンピュータ２０からの情報を受信している場合には（ステップＳ３０１０のＹＥＳ）、ＣＰＵ１０１は、この情報が点灯指示情報であるか否かを判定する（ステップＳ３０１１）。ＣＰＵ１０１は、コンピュータ２０からの情報が点灯部１０５の点灯を指示する点灯指示情報である場合には、この点灯指示情報をＲＡＭ１１１に格納し、点灯部１０５に対して点灯表示要求を実行する。そして、再度ステップＳ３００２の処理を実行する。また、コンピュータ２０からの情報が点灯部１０５の点灯を指示する点灯指示情報でない場合には、そのまま再度ステップＳ１０の処理を実行する。
【００４０】
また、コンピュータ２０からの情報を受信していない場合には（ステップＳ３０１０のＮＯ）、ＣＰＵ１０１は、再度ステップＳ３００２の処理を実行する。従って、ＣＰＵ１０１は、ステップＳ３０１０またはＳ３０１１の処理が終了すると再度ステップＳ３００２の処理を実行し、ステップＳ３００２以降の処理を繰り返し実行する。
【００４１】
このように、ＣＰＵ１０１が鍵盤情報、スイッチ情報、ボリューム情報、パッチ情報をインターフェース部１０４を介してコンピュータ２０に出力するので、操作者は、シンセサイザー用コントローラ１０を用いて、コンピュータ２０上で実現されたソフトウェアシンセサイザーの所望の操作を外部から行うことが可能となる。
【００４２】
（タイマー割り込み処理）
続いて上述の全体処理フローと並行して実行されるタイマー割り込み処理について図４に示すフローチャート図を用いて詳細に説明する。このタイマー割り込み処理は、例えば５ｍｓｅｃ、６ｍｓｅｃ等の数ｍｓｅｃ毎の間隔を置いて繰り返し実行される。まず、ＣＰＵ１０１は、キーボードスキャナ１０６によりキーボードスキャン処理を実行する（ステップＳ４００１）。
【００４３】
ＣＰＵ１０１は、キーボードスキャナ１０６により鍵盤１０２１上のキーのうち、１つのキーのＯＮ／ＯＦＦを読み出す。読み出しの結果、そのキーがＯＮである場合には、この前の時点でのキーボードスキャン処理でそのキーがＯＮであったか否かを把握し、ＯＮでなかった場合には、ＯＮ／ＯＦＦが操作者により変更されたものとして、このキーをＯＮする鍵盤情報をＲＡＭ１１１に格納し、キーボードスキャナ１０６が鍵盤情報の出力要求を実行する。ＯＮであった場合には、そのキーのＯＮ／ＯＦＦが変更されていないものとしてそのまま処理を終了する。
【００４４】
また、読み出しの結果、そのキーがＯＦＦである場合には、この前の時点でのキーボードスキャン処理でそのキーがＯＦＦであったか否かを把握し、ＯＦＦでなかった場合には、ＯＮ／ＯＦＦが操作者により変更されたものとして、このキーをＯＦＦする鍵盤情報をＲＡＭ１１１に格納し、キーボードスキャナ１０６が鍵盤情報の出力要求を実行する。ＯＦＦであった場合には、そのキーのＯＮ／ＯＦＦが変更されていないものとしてそのまま処理を終了する。
【００４５】
そして、ＣＰＵ１０１は、キーボードスキャナ１０６により全てのキーに対して以上の処理を繰り返し行っていく。以上のようにしてキーボードスキャン処理を実行する。
【００４６】
次にＣＰＵ１０１は、スイッチスキャナ１０７によりスイッチスキャン処理を実行する（ステップＳ４００２）。
【００４７】
ＣＰＵ１０１は、スイッチスキャナ１０７により選択スイッチ群１０２３のうちの１つの選択スイッチによって信号処理における波形、オクターブ等を選択したその選択情報を読み出す。この選択情報がこの前の時点でのスイッチスキャン処理でのその選択スイッチの選択情報と一致するか否かを判定する。判定の結果、一致しない場合には、選択情報が操作者により変更されたものとして、この選択情報をスイッチ情報としてＲＡＭ１１１に格納し、スイッチスキャナ１０７がスイッチ情報の出力要求を実行する。同一であった場合には、その選択スイッチの選択情報が変更されていないものとしてそのまま処理を終了する。
【００４８】
そして、ＣＰＵ１０１は、スイッチスキャナ１０７により他の選択スイッチについても同様の処理を行い、全ての選択スイッチに対して以上の処理を繰り返し行っていく。以上のようにしてスイッチスキャン処理を実行する。
【００４９】
次にＣＰＵ１０１は、アナログスキャナ１０８によりボリュームスキャン処理を実行する（ステップＳ４００３）。
【００５０】
ＣＰＵ１０１は、アナログスキャナ１０８によりボリュームつまみ群１０２２のうち、１つのボリュームつまみによる信号処理データを読み出す。この信号処理データが、この前の時点でのボリュームスキャン処理におけるそのボリュームつまみによる信号処理データと一致するか否かを判定する。判定の結果、一致しない場合には、信号処理データが操作者により変更されたものとして、この信号処理データをボリューム情報としてＲＡＭ１１１に格納し、アナログスキャナ１０８がボリューム情報の出力要求を実行する。判定の結果、一致する場合には、そのボリュームつまみによる信号処理データが変更されていないものとしてそのまま処理を終了する。
【００５１】
そして、ＣＰＵ１０１は、アナログスキャナ１０８により他のボリュームつまみについても同様の処理を繰り返し行い、全てのボリュームつまみに対して同様の処理を行う。以上のようにしてボリュームスキャン処理を実行する。
【００５２】
次にＣＰＵ１０１は、パッチスキャナ１０９によりパッチスキャン処理を実行する（ステップＳ４００４）。このパッチスキャン処理については、後に詳細に説明する。
【００５３】
次にＣＰＵ１０１は、点灯部１０５により点灯表示制御処理を実行する（ステップＳ４００５）。ＣＰＵ１０１は、点灯部１０５により全体処理フローのステップ３０１１における点灯表示要求がされているか否かを判定する。判定の結果、点灯表示要求がされている場合には、ＲＡＭ１１１を検索して点灯指示情報を読み出しこの点灯指示情報に従って光源の点灯させる。ここで、例えば、点灯指示情報により光源の点滅やワンショット点灯が指示されている場合には、点灯部１０５は光源の点灯タイミング等の管理を行う。また、判定の結果、点灯表示要求がされていない場合には、ＣＰＵ１０１は、そのまま処理を終了する。
【００５４】
（パッチスキャン処理）
続いてタイマー割り込み処理のステップＳ４００４におけるパッチスキャン処理について図５に示すフローチャート図を用いて詳細に説明する。まずここで、パッチ部１０３上のジャック１、２、…、ｎのうちの２つのジャックがケーブルを介して接続されているか否かの組み合わせを［Ａ：Ｂ］として表示するものとする（「Ａ」、「Ｂ」には、ジャック１、２、…、ｎのそれぞれに割り振られた番号１、２、…、ｎのうちのいずれかが代入される。）。
【００５５】
ＣＰＵ１０１は、パッチスキャナ１０９により最初に［２：１］の組み合わせの接続状態を読み出す処理を実行する（ステップＳ５００１）。即ち、ＣＰＵ１０１は、パッチスキャナ１０９によりジャック２に繋がれたケーブルのケーブル番号を取得する処理を実行する。このケーブル番号を取得する処理については後に詳細に説明する。そして、ＣＰＵ１０１は、パッチスキャナ１０９により更にジャック１に繋がれたケーブルのケーブル番号を取得する処理を実行する。
【００５６】
次にＣＰＵ１０１は、パッチスキャナ１０９により次の時点で接続状態を読み出す組み合わせを設定する（ステップＳ５００２）。ＣＰＵ１０１は、パッチスキャナ１０９により次の時点で接続状態を読み出す組み合わせを［３：１］とする。
【００５７】
ここで、［Ａ：Ｂ］の接続状態を読み出す順番について説明する。パッチ部１０３に設けられたジャックはｎ個であり、ケーブルにより２個のジャックが接続されるため、「ｎ・（ｎ−１）／２」通りの［Ａ：Ｂ］の組み合わせの接続状態を読み出せば、全ての種類の組み合わせの接続状態を読み出すことが可能となる。
【００５８】
このため、「ｎ・（ｎ−１）／２」通りの組み合わせの接続状態を読み出すために、［Ａ：Ｂ］において「Ａ＞Ｂ」の関係が成立するようにして、［Ａ：Ｂ］の組み合わせを順次設定し（図６に示す表における「Ａ＞Ｂ」が表示された箇所における組み合わせを順次設定する。）、接続状態を読み出していくものとする。即ち、［Ａ：Ｂ］において、Ａ未満の全ての数値をＢに順次代入して［Ａ：Ｂ］の接続状態を読み出していき、Ａ未満の全ての数値をＢに代入した後は、Ａの数値を変更して、同様にＡ未満の全ての数値をＢに順次代入して［Ａ：Ｂ］の接続状態を読み出していく。このようにして読み出していくことにより、Ａの番号とＢの番号とが入れ換わった２つの組み合わせをその都度読み出すことによって同じ組み合わせを２度読み出すことを省略して、効率的に全ての種類の組み合わせの接続状態を読み出すことが可能となる。
【００５９】
以降、この処理を繰り返して全ての組み合わせの接続状態を読み出す。具体的には、［２：１］、［３：１］、［３：２］、［４：１］、［４：２］、［４：３］、［５：１］、［５：２］、…、［ｎ：ｎ−２］、［ｎ：ｎ−１］の順番で順次［Ａ：Ｂ］の接続状態を読み出していく。
【００６０】
次にＣＰＵ１０１は、パッチスキャナ１０９により［２：１］の組み合わせの接続状態が「接続」であるか否かを判定する（ステップＳ５００３）。ＣＰＵ１０１は、パッチスキャナ１０９によりステップＳ５００１において読み出したジャック２、ジャック１のケーブル番号が一致するか否かを判定する。
【００６１】
次にジャック２、ジャック１のケーブル番号が一致する場合には、ＣＰＵ１０１は、パッチスキャナ１０９により［２：１］の組み合わせの接続状態が「接続」であると判定し（ステップＳ５００３のＹＥＳ）、この前の時点でのパッチスキャン処理において［２：１］の組み合わせの接続状態が「接続」であったか否かを判定する（ステップＳ５００４）。
【００６２】
次に前の時点でのパッチスキャン処理において［２：１］の組み合わせの接続状態が「接続」でなかった場合には（ステップＳ５００４のＮＯ）、ＣＰＵ１０１は、パッチスキャナ１０９により［２：１］の組み合わせの接続状態を「接続」に変更するパッチ情報の出力要求を実行する（ステップＳ５００５）。ＣＰＵ１０１は、パッチスキャナ１０９によりその接続状態が操作者により変更されたものとして、パッチスキャナ１０９により［２：１］の組み合わせの接続状態を「接続」とするパッチ情報をＲＡＭ１１１に格納し、パッチスキャナ１０９がパッチ情報の出力要求を実行する。
【００６３】
一方、前の時点でのパッチスキャン処理において［２：１］の組み合わせの接続状態が「接続」であった場合には（ステップＳ５００４のＹＥＳ）、ＣＰＵ１０１は、接続状態が変更されていないものとしてそのまま処理を終了する。
【００６４】
また、ステップＳ５００３においてジャック２、ジャック１のケーブル番号が一致しない、または、ジャック２またはジャック１のケーブル番号が、ケーブルに繋がれていないことを示す番号である場合には、ＣＰＵ１０１は、パッチスキャナ１０９により［２：１］の組み合わせの接続状態が「切断」であると判定し（ステップＳ５００３のＮＯ）、この前の時点でのパッチスキャン処理において［２：１］の組み合わせの接続状態が「切断」であったか否かを判定する（ステップＳ５００６）。
【００６５】
次に前の時点でのパッチスキャン処理において［２：１］の組み合わせの接続状態が「切断」でなかった場合には（ステップＳ５００６のＮＯ）、ＣＰＵ１０１は、パッチスキャナ１０９により［２：１］の組み合わせの接続状態を「切断」に変更するパッチ情報の出力要求を実行する（ステップＳ５００７）。ＣＰＵ１０１は、パッチスキャナ１０９によりその接続状態が操作者により変更されたものとして、パッチスキャナ１０９により［２：１］の組み合わせの接続状態を「切断」とするパッチ情報をＲＡＭ１１１に格納し、パッチスキャナ１０９がパッチ情報の出力要求を実行する。
【００６６】
一方、前の時点でのパッチスキャン処理において［２：１］の組み合わせの接続状態が「切断」であった場合には（ステップＳ５００６のＹＥＳ）、ＣＰＵ１０１は、接続状態が変更されていないものとしてそのまま処理を終了する。
【００６７】
以降、ＣＰＵ１０１は、パッチスキャナ１０９によりステップＳ５００２において設定した［３：１］の組み合わせの接続状態を読み出す処理を実行し（ステップＳ５００１）、ステップＳ５００３〜Ｓ５００７の処理を繰り返し実行する。以上の処理は、上述した［Ａ：Ｂ］の接続状態を読み出す順番に従って、全ての組み合わせの接続状態を読み出すまで繰り返す。このようにして、パッチスキャン処理が行われる。
【００６８】
なお、このパッチスキャン処理によって出力要求されたパッチ情報は、全体処理フローにおけるステップＳ３００９において、ＣＰＵ１０１によってインターフェース部１０４を介してコンピュータ２０に出力されるが、状態出力スイッチ１１２を操作者が操作することによっても、パッチスキャン処理によって出力要求されたパッチ情報を手動でコンピュータ２０に出力することができる。
【００６９】
この場合には、操作者により状態出力スイッチ１１２が操作されると、ＣＰＵ１０１は、ＲＡＭ１１１を検索してパッチ情報を読み出し、このパッチ情報をインターフェース部１０４を介してコンピュータ２０に出力する。
【００７０】
このように、ＣＰＵ１０１は、パッチスキャナ１０９によりパッチスキャン処理を行い、パッチ部１０３上のジャック１、２、…、ｎのうちの２つのジャックがケーブルを介して接続されているか否かの組み合わせの接続状態を全て読み出す。操作者により接続状態が変更された場合には、接続状態の変更を指示するパッチ情報の出力要求を実行する。そして、全体処理フローのステップＳ３００９においてパッチ情報をコンピュータ２０に出力するので、コンピュータ２０上で実現されたソフトウェアシンセサイザーでのジャックの接続状態の制御、即ち、ジャックの接続状態に関するパッチの制御をシンセサイザー用コントローラ１０を用いて容易に行うことができる。従って、シンセサイザー用コントローラ１０を用いることにより、ソフトウェアシンセサイザーのパッチの制御が容易となって操作性を高めることが可能となる。
【００７１】
また、操作者により状態出力スイッチ１１２が操作された場合には、この状態出力スイッチ１１２の操作に応じてＣＰＵ１０１がパッチ情報をインターフェース部１０４を介してコンピュータ２０に出力するので、シンセサイザー用コントローラ１０を用いて手動によってもソフトウェアシンセサイザーでのパッチの制御を行うことができる。従って、操作者は、パッチの制御を手動で行うことによりハードウェアシンセサイザーを操作する場合と同じ操作感を実現することが可能となる。なお、状態出力スイッチ１１２をハードウェアシンセサイザーの電源スイッチに相当する部位に配置すれば、ハードウェアシンセサイザーでの電源ＯＮの操作と同じ操作感でこの状態出力スイッチ１１２を操作でき、ハードウェアシンセサイザーでの電源ＯＮの操作と同じ操作感でパッチ部１０３の初期設定の制御が可能となる。
【００７２】
（ケーブル番号取得処理）
続いてパッチスキャン処理のステップＳ５００１におけるジャックに繋がれたケーブルのケーブル番号を取得する処理について図７に示すフローチャート図を用いて詳細に説明する。ここでは、例えば、ジャック２に繋がれたケーブルのケーブル番号を取得する処理について説明する。
【００７３】
まずＣＰＵ１０１は、パッチスキャナ１０９によりケーブルを示すケーブル番号「ｉ」を最初に「１」に設定し、ＲＡＭ１１１を検索して、このケーブル番号「ｉ」が「１」のケーブル情報をＲＡＭ１１１から読み出す（ステップＳ７００１）。
【００７４】
次にＣＰＵ１０１は、パッチスキャナ１０９によりケーブル番号「ｉ」が「ｎ／２」で示す数値以下であるか否かを判定する（ステップＳ７００２）。ＣＰＵ１０１は、パッチスキャナ１０９によりステップＳ７００１で読み出したケーブル番号「１」が「ｎ／２」で示す数値以下であるか否かを判定する。ここでは、「ｎ」が２以上の自然数であり、「ｎ／２」が１以上であるので、ケーブル番号「１」が「ｎ／２」で示す数値以下であるものとする。
【００７５】
ここで、ケーブル番号「ｉ」が「１」でなく、「ｎ／２」で示す数値以下でない場合には（ステップＳ７００２のＮＯ）、ジャックの個数がｎ個であることからケーブルの両端のプラグをジャックに差し込んで２つのジャック間を接続していき、２つのジャック間を全て接続してもケーブルの最大本数は「ｎ／２」以下となり、「ｎ／２」より大きいケーブル番号は存在しないため、ＣＰＵ１０１は、パッチスキャナ１０９によりジャック２がケーブルに接続されていないと判断し、このケーブル番号「ｉ」を、ジャック２がケーブルには接続されていないことを示す番号として設定し処理を終了する。
【００７６】
次にケーブル番号「ｉ」が「ｎ／２」で示す数値以下である場合には（ステップＳ７００２のＹＥＳ）、ＣＰＵ１０１は、パッチスキャナ１０９により「ｓｒｃ［ｉ］」が「２」であるか否かを判定する（ステップＳ７００３）。ＣＰＵ１０１は、パッチスキャナ１０９によりケーブル番号「１」のケーブル情報から「ｓｒｃ［１］」を読み出し、この「ｓｒｃ［１］」がジャック２を示す「２」であるか否かを判定する。「ｓｒｃ［１］」が「２」である場合には（ステップＳ７００３のＹＥＳ）、ＣＰＵ１０１は、パッチスキャナ１０９によりジャック２がケーブル番号「１」で示すケーブルに繋がれているものと判断し処理を終了する。
【００７７】
次に「ｓｒｃ［１］」が「２」でない場合には（ステップＳ７００３のＮＯ）、ＣＰＵ１０１は、パッチスキャナ１０９により「ｄｅｓｔ［ｉ］」が「２」であるか否かを判定する（ステップＳ７００４）。ＣＰＵ１０１は、パッチスキャナ１０９によりケーブル番号「１」のケーブル情報から「ｄｅｓｔ［１］」を読み出し、この「ｄｅｓｔ［１］」がジャック２を示す「２」であるか否かを判定する。「ｄｅｓｔ［１］」が「２」である場合には（ステップＳ７００４のＹＥＳ）、ＣＰＵ１０１は、パッチスキャナ１０９によりジャック２がケーブル番号「１」で示すケーブルに繋がれているものと判断し処理を終了する。
【００７８】
次に「ｄｅｓｔ［１］」が「２」でない場合には（ステップＳ７００４のＮＯ）、ＣＰＵ１０１は、パッチスキャナ１０９によりケーブル番号「ｉ」に１を加える処理を行う（ステップＳ７００５）。ＣＰＵ１０１は、パッチスキャナ１０９によりをケーブル番号「１」に１を加えて「２」に設定する。更に、ＲＡＭ１１１を検索して、このケーブル番号「ｉ」が「２」のケーブル情報をＲＡＭ１１１から読み出す。そして、ステップＳ７００２以降の処理を繰り返し実行する。以上の処理は、ＣＰＵ１０１が、パッチスキャナ１０９によりジャック２がケーブルに繋がれているものと判断するか、または、ジャック２がケーブルに接続されていないと判断するまで繰り返し実行される。
【００７９】
なお、パッチスキャン処理における［Ａ：Ｂ］の接続状態を読み出すタイミングは、図１０のタイミングチャート図に示すように、ｔ（１）の時点で［２：１］の組み合わせ、ｔ（２）の時点で［３：１］の組み合わせ、ｔ（３）の時点で［３：２］の組み合わせ、ｔ（４）の時点で［４：１］の組み合わせ、…、ｔ（ｎ・（ｎ−１）／２）の時点で［ｎ：ｎ−１］の組み合わせの接続状態を読み出し、それぞれの時点でステップＳ５００１以降の処理を繰り返し行うようになっている。
【００８０】
また、パッチ部１０３上のジャック１、２、３、４、…、ｎのうちのいずれかに操作者によってケーブルのプラグが挿入された場合について図１１に示す回路図を用いて以下に説明する。図１１に示すように、ジャック１はトランジスタ１００１、１００２、抵抗１００３、１００４、１００５、１００６、１００７、突起部１００８、接触部１００９により構成され、これらが電気的に接続されている。ケーブルのプラグが挿入されていない状態では、突起部１００８および接触部１００９が接触しており、接地状態となっている。図示しないジャック２、３、４、…ｎもジャック１と同様の構成を有している。これらのジャック１、２、３、４、…、ｎは、それぞれＣＰＵ１０１と電気的に接続されている。
【００８１】
例えば、操作者によりジャック１にケーブルのプラグが挿入されると、図１１のジャックの回路図に示すように、ジャック１の回路内では、接触部１００９に接触していた突起部１１０８が、接触部１００９から離間し、非接地状態となる。更に、ケーブル２のプラグが挿入されると、同様に突起部１００８が接触部１００９から離間して非接地状態となり、ケーブルを通じてジャック１とジャック２とが突起部１１０８を介して電気的に繋がるようになる。そして、ジャック１およびジャック２のトランジスタ１００２からローレベルの電圧がＣＰＵ１０１に印加される。
【００８２】
ＣＰＵ１０１は、このローレベルの電圧が印加されたことにより、ジャック１およびジャック２にケーブルのプラグが挿入されたと判断し、これらの両ジャックを接続したケーブルについてのケーブル情報を設定してＲＡＭ１１１に格納するようになっている。
【００８３】
（その他の実施の形態）
なお、以上本発明を実施するための最良の形態について説明したが、本発明の要旨を逸脱しない範囲内で上記実施形態に種々の変形や変更を施すことが可能となる。例えば、タイマー割り込み処理を繰り返し実行する間隔を、必要に応じて適宜数ｍｓｅｃから変更すること、等が挙げられる。
【産業上の利用可能性】
【００８４】
所定のプログラムを実行することによりコンピュータ上で実現されたソフトウェアシンセサイザーと、ソフトウェアシンセサイザーに対して外部からの所望の操作が可能に接続されたシンセサイザー用コントローラと、を備えた演奏システムにおいて利用することが可能である。
【図面の簡単な説明】
【００８５】
【図１】本発明における演奏システムの構成を示す説明図である。
【図２】シンセサイザー用コントローラ１０の構成を示す説明図である。
【図３】本発明における演奏システムの全体処理フローを示すフローチャート図である。
【図４】本発明における演奏システムのタイマー割り込み処理を示すフローチャート図である。
【図５】本発明における演奏システムのパッチスキャン処理を示すフローチャート図である。
【図６】パッチスキャン処理において接続状態を読み出す組み合わせを示す説明図である。
【図７】パッチスキャン処理のステップＳ５００１におけるジャックに繋がれたケーブルのケーブル番号を取得する処理を示すフローチャート図である。
【図８】シンセサイザー用コントローラ１０のパッチ部１０３の構成を示す説明図である。
【図９】シンセサイザー用コントローラ１０のパッチ部１０３の構成を示す説明図である。
【図１０】パッチスキャン処理における接続状態を読み出すタイミングを示すタイミングチャート図である。
【図１１】パッチ部１０３のジャックの構成を示す回路図である。
【符号の説明】
【００８６】
１０  シンセサイザー用コントローラ
２０  コンピュータ
１０１  ＣＰＵ
１０２  操作部
１０３  パッチ部
１０４  インターフェース部
１０５  点灯部
１０６  キーボードスキャナ
１０７  スイッチスキャナ
１０８  アナログスキャナ
１０９  パッチスキャナ
１１０  ＲＯＭ
１１１  ＲＡＭ
１１２  状態出力スイッチ
【図１】
2005055623.tif 000003
【図２】
2005055623.tif 000004
【図３】
2005055623.tif 000005
【図４】
2005055623.tif 000006
【図５】
2005055623.tif 000007
【図６】
2005055623.tif 000008
【図７】
2005055623.tif 000009
【図８】
2005055623.tif 000010
【図９】
2005055623.tif 000011
【図１０】
2005055623.tif 000012
【図１１】
2005055623.tif 000013