(57)【特許請求の範囲】
【請求項１】
コンピュータを、音源装置に発音指示を行う発音制御装置として機能させるためのプログラムであって、
前記コンピュータを、
所定の時間間隔のタイミングでそれぞれ、予め用意されたシーケンスデータに従って該タイミングから所定時間以内に実行すべき発音指示または該タイミング以降に実行すべき所定量の発音指示を、その発音指示の実行タイミングの指定と共に前記音源装置に供給する指示供給手段として機能させるためのプログラム。
【請求項２】
請求項１に記載のプログラムであって、
前記音源装置に対する前記実行タイミングの指定は、前記所定の時間間隔よりも細かい単位で行われるものであることを特徴とするプログラム。
【請求項３】
請求項１又は２に記載のプログラムであって、
前記指示供給手段は、前記予め用意されたシーケンスデータに含まれるもの以外の演奏データを検出した場合に、該演奏データと対応する発音指示を、その発音指示を直ちに実行すべき旨の指定と共に前記音源装置に供給する手段を備えることを特徴とするプログラム。
【請求項４】
音源装置であって、
発音指示と、該発音指示の実行タイミングとを記憶する記憶手段と、
前記記憶手段に記憶されている発音指示に従った音響信号出力を、該発音指示と対応して前記記憶手段に記憶されている実行タイミングに開始する制御手段とを備え、
前記制御手段は、出力する音響信号のサンプリング周期に基づき予め定めた周期で、前記記憶手段に記憶されている発音指示の実行タイミングが到来したか否かを確認し、
前記制御手段の機能は、前記記憶手段に記憶させるべき発音指示及び実行タイミングを供給する機能を実現するプロセッサとは異なるハードウェアにより実現され、
さらに、
タイマと、
前記タイマがカウントする時間の情報を前記プロセッサに提供する手段とを備えることを特徴とする音源装置。
【請求項５】
音源装置であって、
発音指示と、該発音指示の実行タイミングとを記憶する記憶手段と、
前記記憶手段に記憶されている発音指示に従った音響信号出力を、該発音指示と対応して前記記憶手段に記憶されている実行タイミングに開始する制御手段とを備え、
前記制御手段の機能は、前記記憶手段に記憶させるべき発音指示及び実行タイミングを供給する機能を実現するプロセッサとは異なるハードウェアにより実現されており、
さらに、
タイマと、
前記タイマがカウントする時間の情報を前記プロセッサに提供する手段とを備えることを特徴とする音源装置。
【請求項６】
音源部に発音指示を行う発音制御部と、前記音源部とを備えた音響信号生成装置であって、
前記発音制御部は、
所定の時間間隔のタイミングでそれぞれ、予め用意されたシーケンスデータに従って該タイミングから所定時間以内に実行すべき発音指示を、その発音指示の実行タイミングの指定と共に前記音源部に供給する指示供給手段を備え、
前記音源部は、
前記発音制御部から供給される発音指示と、該発音指示の実行タイミングとを記憶する記憶手段と、
前記記憶手段に記憶されている発音指示に従った音響信号出力を、該発音指示と対応して前記記憶手段に記憶されている実行タイミングに開始する制御手段とを備えることを特徴とする音響信号生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータを発音制御装置として機能させるためのプログラム、発音制御装置からの指示に基づき音響信号を出力する音源装置、および、発音制御部と音源部とを備えた音響信号生成装置に関する。
【背景技術】
【０００２】
従来から、楽音の発音音高や発音強度等を示すイベントをその実行タイミングと対応付けて記録したシーケンスデータに基づき、各楽音の発音指示をその予め記録されたイベントの実行タイミングで音源回路等に供給する技術が知られている。そして、その供給を受けた音源回路が発音指示に基づく音響信号を出力することにより、シーケンスデータに基づく自動演奏を行うことができる。
このような技術については、例えば特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−３０２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載のような従来の技術において、発音指示を音源回路等に供給するタイミングの制御の手法は、一定周期でＣＰＵが割り込み処理を実行し、その割り込み処理のタイミングにおいて、実行タイミングを過ぎているイベントがあれば、そのイベントに従った発音指示を音源回路等に供給する、というものである。
【０００５】
図１０に、この処理に従った発音タイミングの概要を示す。
図１０では、シーケンスデータに、再生開始から９．９９５秒後にノートオン（発音開始）イベントを実行すべきことが記録されているとする。また、ＣＰＵが実行する割り込み処理のタイミングは１０ｍｓ（ミリ秒）毎であるとする。
【０００６】
図１０の例において、ＣＰＵは、シーケンスデータの再生開始から１０ｍｓ毎に割り込み処理を行い、実行タイミングを過ぎたイベントがないか判断する。経過時間９．９９秒の処理までは、該当のイベントはないと判断する。その後、経過時間１０．００秒の処理において、ノートオンイベントの実行タイミングが過ぎていると判断し、そのノートオンイベントと対応する発音開始指示を音源回路へ供給する。
【０００７】
音源回路は、ＣＰＵよりも短い間隔（例えば出力するオーディオ信号のサンプリング周波数である４４．１ｋＨｚ≒０．０２２６７５ｍｓ間隔）で発音指示を監視しており、発音開始指示がＣＰＵから供給されると、直ちに（無視できる程度の遅延時間以内で）発音を開始することができる。
しかし、図１０の例において、ＣＰＵから音源回路への発音開始指示の供給タイミングは、シーケンスデータにおいて設定されている９．９９５秒よりも５ｍｓ遅れている。従って、実際に発音が開始されるタイミングにも、これだけの遅れが生じることになる。
【０００８】
図１０からわかるように、割り込み処理が正しく１０ｍｓ間隔で行われたとしても、各音の発音開始タイミングには、最大で割り込み周期と同じ１０ｍｓの遅れが生じる。また、ＣＰＵの処理負荷が高い場合には、割り込み処理の開始が遅れたり、あるタイミングの割り込み処理が全く実行できなかったりすることも考えられる。このような場合には、割り込み周期よりも大きな遅れが生じる可能性もある。また、再生時の状況に応じて遅れの量が変化してしまうことになる。
【０００９】
この発明は、このような事情に鑑みてなされたものであり、シーケンスデータに従った音響信号の生成を、より高いタイミング精度で行えるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
この発明のプログラムは、上記の目的を達成するため、コンピュータを、音源装置に発音指示を行う発音制御装置として機能させるためのプログラムであって、上記コンピュータを、所定の時間間隔のタイミングでそれぞれ、予め用意されたシーケンスデータに従ってそのタイミングから所定時間以内に実行すべき発音指示またはそのタイミング以降に実行すべき所定量の発音指示を、その発音指示の実行タイミングの指定と共に上記音源装置に供給する指示供給手段として機能させるためのプログラムである。
【００１１】
このようなプログラムにおいて、上記音源装置に対する上記実行タイミングの指定は、上記所定の時間間隔よりも細かい単位で行われるものであるとよい。
さらに、上記指示供給手段が、上記予め用意されたシーケンスデータに含まれるもの以外の演奏データを検出した場合に、その演奏データと対応する発音指示を、その発音指示を直ちに実行すべき旨の指定と共に上記音源装置に供給する手段を備えるとよい。
【００１２】
また、この発明の音源装置は、発音指示と、その発音指示の実行タイミングとを記憶する記憶手段と、上記記憶手段に記憶されている発音指示に従った音響信号出力を、その発音指示と対応して上記記憶手段に記憶されている実行タイミングに開始する制御手段とを設け、上記制御手段が、出力する音響信号のサンプリング周期に基づき予め定めた周期で、上記記憶手段に記憶されている発音指示の実行タイミングが到来したか否かを確認するようにし、上記制御手段の機能が、上記記憶手段に記憶させるべき発音指示及び実行タイミングを供給する機能を実現するプロセッサとは異なるハードウェアにより実現され、さらに、タイマと、上記タイマがカウントする時間の情報を上記プロセッサに提供する手段とを設けたものである。
【００１４】
また、この発明の別の音源装置は、発音指示と、その発音指示の実行タイミングとを記憶する記憶手段と、上記記憶手段に記憶されている発音指示に従った音響信号出力を、その発音指示と対応して上記記憶手段に記憶されている実行タイミングに開始する制御手段とを設け、上記制御手段の機能を、上記記憶手段に記憶させるべき発音指示及び実行タイミングを供給する機能を実現するプロセッサとは異なるハードウェアにより実現し、さらに、タイマと、上記タイマがカウントする時間の情報を上記プロセッサに提供する手段とを設けたものである。
【００１５】
また、この発明の音響信号処理装置は、音源部に発音指示を行う発音制御部と、上記音源部とを備えた音響信号生成装置であって、上記発音制御部に、所定の時間間隔のタイミングでそれぞれ、予め用意されたシーケンスデータに従ってそのタイミングから所定時間以内に実行すべき発音指示を、その発音指示の実行タイミングの指定と共に上記音源部に供給する指示供給手段を設け、上記音源部に、上記発音制御部から供給される発音指示と、その発音指示の実行タイミングとを記憶する記憶手段と、上記記憶手段に記憶されている発音指示に従った音響信号出力を、その発音指示と対応して上記記憶手段に記憶されている実行タイミングに開始する制御手段とを設けたものである。
また、この発明は、上記の形態の他、装置、システム、方法、プログラム、記録媒体等、任意の態様で実施することができる。
【発明の効果】
【００１６】
以上のような構成によれば、楽曲データに従った音響信号の生成を、より高いタイミング精度で行うことができる。
【図面の簡単な説明】
【００１７】
【図１】この発明の音響信号生成装置の一実施形態である電子音楽装置のハードウェア構成を示す図である。
【図２】波形メモリに記憶させる波形データの例を示す図である。
【図３】図１に示した電子音楽装置が備える音響信号出力機能の構成を示す図である。
【図４】シーケンスデータの例を示す図である。
【図５】音源回路のレジスタに記憶させるデータの例を示す図である。
【図６】先読み用データの生成について説明するための図である。
【図７】図１に示した電子音楽装置のＣＰＵが実行するメイン処理のフローチャートである。
【図８】同じく割り込み処理のフローチャートである。
【図９】本発明の実施形態の効果について説明するための図である。
【図１０】従来技術の問題点について説明するための図である。
【発明を実施するための形態】
【００１８】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
まず、図１に、この発明の音響信号生成装置の一実施形態である電子音楽装置のハードウェア構成を示す。
図１に示すように、電子音楽装置１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、記憶装置１４、通信Ｉ／Ｆ１５、検出回路１６、表示回路１７、音源回路１８を備え、これらがシステムバス１９により接続されている。また、操作子２１を検出回路１６に接続して、表示器２２を表示回路１７に接続して、ＤＡＣ（デジタルアナログコンバータ）２３を音源回路１８に接続して、サウンドシステム２４をＤＡＣ２３に接続して、波形メモリ２５を音源回路１８に接続してそれぞれ設けている。
【００１９】
このうち、ＣＰＵ１１は、電子音楽装置１０の動作を統括制御する制御手段であり、ＲＯＭ１２あるいは記憶装置１４に記憶された所要のプログラムを実行して電子音楽装置１０の各部を制御することにより、後述する音源制御部１１６の機能をはじめとする種々の機能を実現する。
ＲＯＭ１２は、ＣＰＵ１１が実行するプログラムをはじめ、電源を切っても残しておくべきデータを記憶する書き換え不可能な不揮発性記憶手段である。なお、フラッシュＲＯＭのように書き換え可能な不揮発性記憶手段で構成してもよい。
ＲＡＭ１３は、ＣＰＵ１１のワークメモリとして使用する記憶手段である。
【００２０】
記憶装置１４は、ＭＩＤＩ（Musical  Instrument  Digital  Interface：登録商標）形式のシーケンスデータ（ソングデータや伴奏スタイルデータなど）やオーディオ波形データ（オーディオのソングデータや伴奏スタイルデータなど）を記憶する記憶手段である。ここで、ソングデータは、１曲の楽曲を示すデータである。伴奏スタイルデータは、ユーザの演奏に対して付すための伴奏のフレーズを示すデータである。また、記憶装置１４は、ハードディスク、フレキシブルディスク、コンパクトディスク（ＣＤ）、デジタル多目的ディスク（ＤＶＤ）、フラッシュメモリなど、任意の記憶媒体及びその駆動装置により構成することができる。記憶媒体は、着脱可能であっても、電子音楽装置１０に内蔵されていてもよい。
【００２１】
通信Ｉ／Ｆ１５は、外部機器を電子音楽装置１０に接続するためのインタフェースであり、有線と無線を問わず任意の規格のインタフェースを採用可能である。通信Ｉ／Ｆ１５には、ユーザの操作に応じてあるいは自動的にＭＩＤＩ形式の演奏データを生成するＭＩＤＩ機器を接続し、ここからＭＩＤＩデータを入力することが考えられる。
【００２２】
検出回路１６は、ユーザからの操作を受け付けるための操作子２１を接続し、操作子２１が受け付けた操作を検出してＣＰＵ１１に供給するためのインタフェースである。この操作子２１は、電子音楽装置１０の動作に関する設定や指示を行うためのキー、ボタン、スライダ、タッチパネル等の設定操作子に加え、演奏操作を行うための鍵盤やペダル等の演奏操作子を含んでいてもよい。
表示回路１７は、表示器２２を接続し、ＣＰＵ１１からの制御により表示器２２に表示を行わせるためのインタフェースである。表示器２２は、電子音楽装置１０の設定状態や動作状態を表示するための表示手段であり、ランプやディスプレイ等を任意に組み合わせて構成することができる。
【００２３】
音源回路１８は、ＣＰＵ１１とは異なるハードウェアであるＬＳＩにより構成した波形合成回路であり、電子音楽装置１０の音源部として機能する。ここでは、音源回路１８はＰＣＭ（Pulse  Code  Modulation）音源の機能を実現するための波形レンダリングの補助回路として構成している。より具体的には、音源回路１８は、波形メモリ２５に記憶された楽器音等の波形データと、ＣＰＵ１１から供給される発音指示とに基づき音響信号であるオーディオ波形データを生成し、出力する。また、音源回路１８は、オーディオ波形形式のソングデータやスタイルデータの再生も可能である。なお、ＣＰＵ１１と音源回路１８を、ＣＰＵコアと音源コアを１つのパッケージに内蔵したＬＳＩで構成してもよい。
【００２４】
ＤＡＣ２３は、音源回路１８が出力するデジタルのオーディオ波形データをアナログ音響信号に変換して、サウンドシステム２４へ出力する機能を備える。
サウンドシステム２４は、アナログ音響信号に基づき音声を出力する発音手段であり、例えばアンプとスピーカにより構成することができる。
【００２５】
波形メモリ２５は、音源回路１８がオーディオ波形データの生成に用いる波形データを記憶する記憶手段である。波形メモリ２５は例えばＲＯＭとして構成でき、ピアノやギターのような自然楽器の楽音を所定周期でサンプリングしたＰＣＭ波形や、人工的に合成した楽音、効果音のような非楽音などのＰＣＭ波形等の波形データを記憶している。
より具体的には、波形メモリ２５は、図２に示すように、所定のサンプリングレート（例えば４４．１ｋＨｚ）にてサンプリングされた波形サンプル値を、アドレスの進行に従って時系列的に配列されるように記憶する。
【００２６】
また、波形メモリ２５においては、楽音等の音色の種類毎に、波形データが記憶されているアドレスが管理されており、そのアドレスを指定することで、所望の音色の楽音等の波形データを読み出すことができる。なお、波形メモリ２５には、単音の楽音の波形データに限らず、複音や、複数の音からなる音楽的フレーズの波形データを記憶させてもよい。また、波形メモリ２５をＲＡＭで構成し、外部の記憶媒体から波形メモリ２５へ波形データを読み込んで記憶させることができるようにしてもよい。
以上の電子音楽装置１０は、例えば、演奏操作子を備えた電子楽器や、ＭＩＤＩ形式のシーケンスデータを再生するシーケンサとして構成することができる。
【００２７】
次に、図３に、電子音楽装置１０が備える音響信号出力機能の構成を示す。なお、図３に示すのは、ＭＩＤＩ形式のシーケンスデータあるいは演奏データに従い、ＣＰＵ１１が音源回路１８を制御して音響信号を生成させるための機能と、音源回路１８がその制御に従って音響信号を生成して出力するための機能である。またここでは、ＣＰＵ１１側の機能は、ＣＰＵ１１が所要のプログラムを実行することによって実現され、音源回路１８側の機能は専用ハードウェアにより実現されるものである。ただし、後述の通り、この構成に限られない。
【００２８】
図３に示すように、ＣＰＵ１１は、楽曲データ取得部１１１、先読み用データ生成部１１２、演奏操作検出部１１３、演奏データ生成部１１４、演奏データ取得部１１５、音源制御部１１６、タイマ１１７の機能を備える。
これらのうち楽曲データ取得部１１１は、ユーザによる再生指示に応じて、再生すべきシーケンスデータを取得する機能を備える。シーケンスデータは、記憶装置１４から読み出したり、通信Ｉ／Ｆ１５を介して外部装置からダウンロードしたりして取得することができる。
【００２９】
また、シーケンスデータの構成は、例えば図４に示すものである。すなわち、シーケンスデータは、イベントのデータが、そのイベントと対応する処理を実行すべきタイミングを示すタイミング値と対応付けて時系列的に配置されたものである。このイベントには、発音開始を示すノートオン、発音停止を示すノートオフ、音量等の指定を示すコントロールチェンジ、音色の指定を示すプログラムチェンジ、テンポの指定を示すテンポチェンジ等がある。また、タイミング値は、例えば四分音符の１／４８０を単位とするクロックのカウント値により指定することができる。タイミング値は、前のイベントからの経過時間を示す相対クロック値で表してもよいし、演奏開始からの経過時間を示す絶対クロック値で表してもよい。
以上のシーケンスデータにより、楽曲や伴奏等の演奏内容を表すことができる。
【００３０】
次に、先読み用データ生成部１１２は、楽曲データ取得部１１１が取得したシーケンスデータに基づき、シーケンスデータ中のイベントに基づく発音指示や設定変更指示等の各種指示を音源回路１８のレジスタ１８１に書き込むタイミングを検出するための先読み用データを生成する機能を備える。この先読み用データは、シーケンスデータ中の各タイミング値を、音源回路１８のタイマ１８２において同じ時刻を示すカウント値に置き換えたものである。その詳細については後述する。
【００３１】
なお、本明細書において、「発音指示」には、発音開始指示だけでなく、発音停止指示も含む。また、「設定変更指示」には発音指示以外の音量設定指示等、発音に関して音源回路１８に書き込む指示は全て含むものとする。なお、「設定変更指示」には、テンポ設定のように、イベントと対応する処理をＣＰＵ１１側で行い、イベントと直接対応する指示を音源回路１８に書き込む必要がない場合もある。
【００３２】
演奏操作検出部１１３は、操作子２１中の演奏操作子に対してなされた演奏操作を検出する機能を備える。
演奏データ生成部１１４は、演奏操作検出部１１３が検出した演奏操作を示す演奏データを生成し、音源制御部１１６に供給する機能を備える。この演奏データは、シーケンスデータに含まれるイベントと同じ形式であるが、生成後ただちに実行されるべきものであり、実行タイミングの情報は持たない。
【００３３】
また、演奏データ取得部１１５は、通信Ｉ／Ｆ１５を介して外部装置から送信される演奏データを取得し、音源制御部１１６に供給する機能を備える。この演奏データも、シーケンスデータに含まれるイベントと同じ形式であるが、取得後ただちに実行されるべきものであり、実行タイミングの情報は持たない。演奏データの送信元としては、ＭＩＤＩシーケンサや、外付けの演奏操作受付装置（キーボード等）が考えられる。
【００３４】
音源制御部１１６は、タイマ１１７が計時する時間に従い、所定の時間間隔（例えば２ｍｓ間隔）で割り込み処理を行う機能を備える。この割り込み処理は、シーケンスデータ中のイベント及び、演奏データ生成部１１４あるいは演奏データ取得部１１５から供給される演奏データに基づく発音指示や設定変更指示等の各種指示を、その実行タイミングの指定と共に音源回路１８に供給するための処理である。
なお、発音指示や設定変更指示等の各種指示の供給は、処理の実行時点から所定時間以内に実行すべきイベントについて行う。例えば、ある割り込み処理の実行時刻が再生開始から９．８００秒であり、所定時間が５ｍｓであれば、９．８００秒から９．８０５秒までの間に実行すべきイベントと対応する発音指示の書き込み供給を行う。
【００３５】
また、演奏データ生成部１１４あるいは演奏データ取得部１１５から供給される演奏データ、すなわち再生中のシーケンスデータに含まれるもの以外に検出した演奏データは、直ちに対応する指示を行うべきものである。従って、音源制御部１１６は、割り込み処理においてこれらの演奏データを検出した場合、対応する指示を、直ちに実行すべき旨の指定と共に、音源回路１８に供給する。
タイマ１１７は、時間を計測する計時手段である。音源制御部１１６に専用のものである必要はない。
【００３６】
一方、音源回路１８は、レジスタ１８１、タイマ１８２、読出回路１８３、楽音制御回路１８４を備える。
これらのうちレジスタ１８１は、音源回路１８が行う音響信号生成に関する指示や設定を記憶する記憶手段である。レジスタ１８１に書き込む情報には、音源制御部１１６から供給された発音指示に含まれる情報をそのまま書き込むものと、音源制御部１１６から供給された発音指示と、音源回路１８においてなされている設定とに基づき、音源回路１８側で書き込む情報を決定すべきものとがある。
【００３７】
ここで、図５に、レジスタ１８１に記憶させるデータの構成を示す。
音源回路１８は、複数の発音ｃｈ（チャンネル）を備えるが、図５に示すように、レジスタ１８１には、発音ｃｈ毎に設けた発音制御用レジスタ（Ａ）と、全発音ｃｈに共通の設定変更イベント用レジスタ（Ｂ）及び設定用レジスタ（Ｃ）とがある。
【００３８】
このうち発音制御用レジスタは、ノートオンイベント及びノートオフイベントと対応する発音指示を書き込むためのものである。なお、音源制御部１１６は、ノートオンイベントと対応する発音開始指示を音源回路１８に供給する場合、発音に使用中でない発音ｃｈを検索して、発見した発音ｃｈの１つを、ノートオンイベントと対応する発音に使用する発音ｃｈとして指定する。また、音源制御部１１６は、ノートオフイベントと対応する発音停止指示を音源回路１８に供給する場合、対応するノートオンイベントに応じた発音を行っている発音ｃｈを、発音停止の対象として指定する。そして、音源回路１８は、その指定された発音ｃｈと対応する発音制御用レジスタに、音源制御部１１６から供給された発音指示及び実行タイミングに基づき、必要な情報を書き込む。
【００３９】
また、発音制御用レジスタは、「タイマ値」、「発音指示」、「波形アドレス」及び「その他パラメータ」を記憶する領域を備える。
このうち「タイマ値」は、書き込まれている発音指示を実行するタイミングを示す情報である。このタイミングは、タイマ１８２のカウント値により指定されているとよい。しかし、タイマ１８２のカウント値と比較を行う際に必要な換算処理を行えるのであれば、マイクロ秒単位など、別の単位で指定されていてもよい。また、音源制御部１１６がタイマ１８２のカウント値により発音指示の実行タイミングを供給し、音源回路１８がその供給された値をそのままレジスタ１８１に設定できるようにするとよいが、この構成には限られない。なお、発音指示を直ちに実行すべき場合には、タイマ値として「０」を設定するようにするとよい。このようにすれば、読出回路１８３が該当の発音指示の実行タイミングを判定する際に、必ず「現時点より過去」であり、実行タイミングが到来していると判定することになるためである。
【００４０】
「発音指示」は、発音開始と発音停止の区別を示す情報である。この「発音指示」には、音源制御部１１６から供給された発音指示がノートオン（発音開始）であるかノートオフ（発音停止）であるかを示す値を設定すればよい。
「波形アドレス」は、発音指示に応じた音響信号生成（発音）のために波形メモリ２５から波形データを読み出す際の読出位置を示す情報である。この読出位置は、例えば開始アドレス、終了アドレス、ループの開始及び終了アドレス等により特定される。これらのアドレスは、発音に用いる音色の設定によって定まり、音源制御部１１６から発音指示が供給された際に、音源回路１８がその時の音色の設定と対応する値を設定する。
【００４１】
「その他パラメータ」は、発音する楽音のピッチやタイムストレッチの伸縮割合等を指定する読出速さ、音の発音強さ等を指定するベロシティ、波形メモリ２５から読み出した波形データに対して付与するエンベロープやエフェクト等を規定する情報である。
【００４２】
一方、設定変更イベント用レジスタは、音源回路１８全体あるいは各発音ｃｈに対する設定の変更に係る設定変更指示を検出した場合に、その設定変更指示に従って実行すべき設定の変更内容を書き込むためのものである。なお、音源回路１８全体に対する設定は、設定用レジスタに記憶される。
そして、設定変更イベント用レジスタは、「タイマ値」及び「変更内容」を複数組記憶する領域を備える。
【００４３】
このうち「タイマ値」は、対応して書き込まれている「変更内容」を実行するタイミングを示す情報であり、発音制御用レジスタ中の「タイマ値」と同趣旨である。
「変更内容」は、音源回路１８全体、あるいはＭＩＤＩｃｈに対する設定の変更内容を示す情報である。音源回路１８は、音色の変更や、信号処理の変更等の情報を、音源制御部１１６から供給される設定変更指示に従ってここに書き込む。
【００４４】
また、設定用レジスタは、音源回路１８全体、あるいは各ＭＩＤＩｃｈに対する設定の情報を記憶する領域を備える。この設定としては、例えば発音に用いる音色の設定や、楽音制御回路１８４にて行う信号処理の設定等が考えられる。読出回路１８３が、設定変更イベント用レジスタに記憶されている情報に従い、「タイマ値」が示す時刻に、対応する「変更内容」をこの設定用レジスタに書き込むことにより、設定用レジスタに記憶されている情報の更新を行う。
【００４５】
図３の説明に戻ると、タイマ１８２は、音源回路１８における発音指示や設定変更指示の実行タイミングを生成し、読出回路１８３へ供給するための計時手段である。また、タイマ１８２は、実行タイミングの周期を単位として時間の経過をカウント（ここではカウントアップとするが、カウントダウンでも構わない）する機能も備える。また、タイマ１８２は、シーケンスデータの再生開始時に音源制御部１１６からの指示によりリセットされる。
【００４６】
なお、音源回路１８における発音指示や設定変更指示の実行タイミングは、ＣＰＵ１１において音源制御部１１６が実行する上述した割り込み処理の間隔よりも十分に短い間隔で周期的に発生するものである。例えばＤＡＣ２３におけるＤＡ変換処理のサイクル（ＤＡＣサイクル）である４４．１ｋＨｚと同じ周期（０．０２２６７５ｍｓ周期）とすることが考えられる。
【００４７】
このようにすれば、音源回路１８が出力するオーディオ波形の処理周期と完全に同期したタイミングでシーケンスデータの処理を行うことができる。しかし、この周期に限らず、他の周期を採用しても構わない。ただし、ＤＡＣサイクルとの自然数倍、１／自然数倍、例えば２倍、１／２倍など、ＤＡＣサイクルとの関係性が明確な周期であることが望ましい。ＤＡＣサイクルとは無関係の周期を採用する場合、整数より細かい時刻を発音時刻として指定し、補間器を用いて整数より細かい値を求めながら再生することで、より時間精度の高いシーケンスデータの処理を行うことができる。
【００４８】
読出回路１８３は、タイマ１８２から供給される各実行タイミングにおいて、レジスタ１８１に記憶されている発音指示や設定変更指示の実行に係る処理を行う制御手段の機能を備える。より具体的には、読出回路１８３は、各発音ｃｈの発音制御用レジスタ及び制御イベント用レジスタに記憶されている「タイマ値」と、タイマ１８２のカウント値とを（必要に応じて換算処理を行った上で）比較する。そして、記憶されているタイマ値（あるいは換算値）がタイマ１８２のカウント値以下であれば、そのタイマ値と対応する「発音指示」あるいは「制御内容」を実行する。
【００４９】
「発音指示」が発音開始である場合には、読出回路１８３は、対応する「波形アドレス」に記憶されている読出開始アドレスから、波形メモリ２５に記憶されている波形データの読み出しを開始し、終了アドレスに達したら読み出しを終了する。必要に応じて、ループ開始アドレスからループ終了アドレスの間の読み出しを繰り返したり、「その他パラメータ」に含まれるピッチに応じた速さで読み出しアドレスを進行させたり、補間処理を行ったり、読み出し速さパラメータに応じて波形データのタイムストレッチを行ったりする。
【００５０】
なお、読出回路１８３は、一旦波形データの読み出しを開始すると、発音停止指示があるか、又は音量が低下した等の理由により強制的に発音を停止されるまで、ＤＡＣサイクル毎に波形データの読み出しを繰り返す。従って、発音指示の実行タイミングとＤＡＣサイクルとが同じ周期であると、これらのタイミング管理を共通化できるため、音源回路１８の回路構成を簡略化できて好ましい。なお、波形データの読み出しをＤＡＣサイクル毎に行うものに限らず、数ＤＡＣサイクルに一回、バースト読み出しをして波形データをキャッシュし、そのキャッシュされた波形データからＤＡＣサイクル毎に、ピッチアップに応じて必要なサンプル数を読み出すようにしてもよい。
【００５１】
また、「発音指示」が発音停止である場合には、読出回路１８３は、対応する発音ｃｈに関する波形データの読み出しを停止する、あるいは、波形データに付与するエンベロープをリリース状態に移行させる等、発音停止に必要な動作を行う。
また、「変更内容」を実行する場合は、読出回路１８３は、その内容に従って設定用レジスタに記憶されている設定を更新する。
【００５２】
この読出回路１８３の機能により、再生中のシーケンスデータに基づき音源制御部１１６から供給されレジスタ１８１に書き込まれた発音指示は、ＣＰＵ１１における割り込み処理よりも遥かに間隔の短い、音源回路１８における発音指示の実行タイミングの精度で、シーケンスデータにおいて指定されていたタイミングで実行されることになる。
また、読出回路１８３は、以上の他、音源制御部１１６からの要求に応じて、タイマ１８２における現在のカウント値を音源制御部１１６へ供給する機能も備える。
【００５３】
楽音制御回路１８４は、読出回路１８３が読み出した波形データに対し、所定の演算を施すことにより音楽的な効果を付与したり、エンベロープに従って音量を制御したりする信号処理を行う機能を備える。楽音制御回路１８４が行う信号処理は、設定用レジスタに記憶されている設定に従って制御される。また、全発音ｃｈについて共通の処理であっても、発音ｃｈ毎に異なる処理であっても、それらの両方が含まれていてもよい。楽音制御回路１８４は、専用の処理回路により構成する他、汎用のＤＳＰ（デジタルシグナルプロセッサ）により構成してもよい。また、楽音制御回路１８４を省略することも考えられる。
【００５４】
ＤＡＣ２３は、音源回路１８から出力される楽音制御回路１８４による処理後のオーディオ波形データを、ＤＡＣサイクル毎にＤＡ変換してアナログの楽音信号に変換する機能を備える。
【００５５】
次に、図６を用いて、先読み用データ生成部１１２が実行する先読み用データの生成について説明する。
上述のように、先読み用データは、図４に示したシーケンスデータ中の各タイミング値を、音源回路１８のタイマ１８２において同じ時刻を示すカウント値に置き換えることにより生成できる。
【００５６】
ここで、シーケンスデータ中のタイミング値はクロック値で表されており、シーケンスデータを再生する際に指定するテンポ値に応じて、再生開始時を基準とした該当タイミング値の時刻（絶対時刻）は変動する。
ここでは、１クロック長を四分音符の１／４８０の長さとし、タイマ１８２のカウント周期を１／４４１００秒とする。また、指定されているテンポ値をＴとする。
この場合、四分音符の時間長は６０／Ｔ秒なので、１クロック長は６０／４８０Ｔ＝１／８Ｔ秒である。従って、１クロック長をタイマ１８２のカウント値に換算すると、（１／８Ｔ）／（１／４４１００）＝４４１００／８Ｔとなる。
【００５７】
従って、図６に示すように、シーケンスデータ中の各タイミング値に４４１００／８Ｔを乗じることにより、対応するカウント値を求めることができる。例えば、イベントＢの発生タイミングは、４８０×４４１００／８Ｔのカウント値で表すことができる。
テンポが１２０の場合、この値は４８０×４４１００／（８×１２０）＝２２０５０となる。小数値となった場合、四捨五入、切り捨て、切り上げなどを行って整数値に丸めるとよい。
【００５８】
なお、この先読み用データは、シーケンスデータの再生開始時に、シーケンスデータの末尾まで用意してしまってもよい。シーケンスデータ中にテンポの変更指示が含まれる場合の、その後ろについては変更後のテンポ値を用いて、前のイベントからのカウント値の増分を計算すればよい。
【００５９】
しかし、ユーザの操作に従って随時テンポを変更可能である場合、テンポの変更がある度に、現在再生中の箇所より後ろについては、変更後のテンポに基づき先読み用データを作り直す必要がある。このことを考慮すると、あまり先の方まで先読み用データを作成しても無駄になってしまう可能性がある。そこで、再生の進行に応じて順次シーケンスデータを読み出し、再生に間に合う程度の短い時間分ずつ先読み用データを作成していくことが望ましい。
【００６０】
次に、図７及び図８を用いて、ＣＰＵ１１が実行する、図３に示した機能と対応する処理について説明する。
図７に示すのは、ＣＰＵ１１が起動時に実行を開始するメイン処理のフローチャートである。
ＣＰＵ１１は、電源投入時やリセット時等、電子音楽装置１０が起動された場合に、図７のフローチャートに示す処理を開始する。
この処理において、ＣＰＵ１１は、所定の初期化処理（Ｓ１１）を行った後、ステップＳ１２乃至Ｓ２２を繰り返し、ユーザの操作あるいは外部装置からのデータ受信を検出する（Ｓ１２）と共に、その検出した操作やデータに応じた処理を行う。
【００６１】
まず、ＭＩＤＩシーケンサのスタート指示（シーケンスデータの再生指示）を検出した場合（Ｓ１３のＹｅｓ）、図６を用いて説明した先読み用データの生成を行う（Ｓ１４）と共に、ＭＩＤＩシーケンサの動作ステータスをオン（Ｓ１５）にし、音源回路１８のタイマ１８２のカウント値を「０」にリセットする（Ｓ１６）。ステップＳ１４の処理は、楽曲データ取得部１１１及び先読み用データ生成部１１２の機能と対応するものである。ステップＳ１５及びＳ１６の処理は、音源制御部１１６の機能と対応するものである。
【００６２】
また、演奏操作子の操作を検出した場合（Ｓ１７のＹｅｓ）、検出した操作と対応する演奏データを生成（Ｓ１８）し、その演奏データに基づく発音指示をタイマ値「０」と共に音源回路１８へ供給する（Ｓ１９）。外部装置からの演奏データの受信を検出した場合（Ｓ２０のＹｅｓ）も、同様にその演奏データに基づく発音指示をタイマ値「０」と共に音源回路１８へ供給する（Ｓ２１）。音源回路１８側では、この供給された発音指示及びタイマ値に基づき、レジスタ１８１へ必要な情報を設定する。
【００６３】
これらの処理により、再生中のシーケンスデータに含まれるもの以外の演奏データを検出した場合に、その演奏データと対応する発音指示を、その発音指示を直ちに実行すべき旨の指定と共に音源回路に供給することができる。ステップＳ１８、Ｓ１９及びＳ２０の処理は、それぞれ演奏操作検出部１１３、演奏データ生成部１１４及び演奏データ取得部１１５の機能と対応する。
ステップＳ２２は、ここまで説明したもの以外の操作や受信データに応じた処理である。
【００６４】
図８に示すのは、ＣＰＵ１１が所定の時間間隔で実行する割り込み処理のフローチャートである。
この処理において、ＣＰＵ１１は、ＭＩＤＩシーケンサの動作ステータスが図７のステップＳ１５でオンにされていなければ（Ｓ３１のＮｏ）、何もせずに処理を終了する。
【００６５】
しかし、オンにされていれば、ＣＰＵ１１は、音源回路１８のタイマ１８２のカウント値を取得する（Ｓ３２）。そして、ステップＳ１４で作成した先読みデータ中に、ステップＳ３２で取得したカウント値以降の所定時間内に実行すべきイベントがあれば（Ｓ３３のＹｅｓ）、該当のイベントに基づく発音指示を、該当のイベントと対応するタイマ値と共に音源回路１８へ供給する（Ｓ３４）。そして、ＣＰＵ１１は、先読み用データから該当のイベントを削除して（Ｓ３５）、処理を終了する。ステップＳ３５での削除は、次の処理タイミングで同じイベントに基づく発音指示を再度行ってしまわないようにするためである。音源回路１８側では、ステップＳ３４で供給された発音指示及びタイマ値に基づき、レジスタ１８１へ必要な情報を設定する。
なお、図８の処理では取得したカウント値以降の所定時間以内に実行すべきイベントを音源回路に供給したが、これに代えて、取得したカウント値以降のタイミングで実行すべきイベントを所定のデータ量（例えば所定のイベント数）分だけ音源回路に供給するようにしてもよい。
【００６６】
以上の処理において、ステップＳ３２でタイマ１８２のカウント値を取得するので、ＣＰＵ１１は、音源回路１８にて実際に進行中の経過時間を用いて実行タイミングの判定を行うことができる。このため、ＣＰＵ１１の過負荷等によりＣＰＵ１１側のタイマ１１７が計時する時間に狂いが生じた場合でも、イベントの実行タイミングを正しく判定することができる。
【００６７】
なお、ステップＳ３３の条件を満たすイベントが複数あった場合、ステップＳ３３より後の処理は、そのイベント毎に実行する。
また、図８の処理においてステップＳＸの判断を追加で行うようにしてもよい。必要な発音ｃｈを確保できない場合、ステップＳ３４の処理を行うためには、いずれかの発音ｃｈで実行中の発音をトランケートさせて、その発音ｃｈに、処理対象のイベントに係る発音を予約する設定を行うことになる。しかし、イベントの実行タイミングまで時間の余裕がある場合には、あえて発音を強制的に停止させてまで現時点で予約を行う必要はないと考えられるためである。このことにより、無用な発音の停止を避けることができる。
【００６８】
しかし、ステップＳＸの判断は行わなくてよい。この場合、必要な発音ｃｈを確保できないと、実際に発音を開始するよりも、「所定時間」だけ前にトランケートを開始できることになる。このことにより、トランケートに起因する楽曲へのダメージを軽減できる場合もある。
ステップＳＸの処理を行うか否かを、これらを考慮してユーザが任意に設定できるようにしてもよい。
以上の図８の処理は、音源制御部１１６の機能と対応するものである。
【００６９】
次に、図９を用いて以上説明してきた実施形態の効果について説明する。
図９は、上述した電子音楽装置１０におけるシーケンスデータ中のイベントの処理タイミングを示す、図１０と対応する図である。
図９の例でも、シーケンスデータに、再生開始から９．９９５秒後にノートオンイベントを実行すべきことが記録されているとする。また、ＣＰＵが実行する割り込み処理のタイミングは１０ｍｓ毎であるとし、図８のステップＳ３３における所定時間は２０ｍｓであるとする。
【００７０】
図９の例において、ＣＰＵ１１は、シーケンスデータの再生開始から１０ｍｓ毎に割り込み処理を行い、処理時点から２０ｍｓ以内に実行タイミングが来るイベントがないか判断する（Ｓ３３）。９．９７秒の処理までは、該当のイベントはないと判断する。その後、９．９８秒の処理において、２０ｍｓ以内にノートオンイベントの実行タイミングが来ると判断し、そのノートオンイベントと対応する発音開始指示を、実行タイミングである９．９９５秒を示すカウント値と共に音源回路１８へ供給する（Ｓ３４）。
【００７１】
音源回路１８は、この発音開始指示及び実行タイミングをレジスタ１８１に設定し、読出回路１８３が、０．０２２６７５ｍｓ周期の処理タイミング毎に、その設定した実行タイミングが来たか否か判断する。そして、９．９９５秒を過ぎた最初の処理タイミングで、実行タイミングが来たと判断し、発音開始指示と対応する発音を開始する。
従って、発音開始タイミングの誤差は、シーケンスデータにおいて指定されている時刻から０．０２２６７５ｍｓ以内であり、ＣＰＵ１１の割り込み処理の周期程度の誤差が生じ得る図１０の場合と比べ、極めて高い時間精度で発音を開始することができる。
なお、ノートオン及びノートオフ以外の、設定変更などのイベントについても、同様に実行可能である。
【００７２】
また、図９の例では、９．９９秒の時点ではＣＰＵ１１の処理負荷が大きかったため割り込み処理のタイミングに遅れが生じているが、この時点では発音開始指示を既に音源回路１８へ供給済みであるので、この遅れの影響もない。図８のステップＳ３３における所定時間としてある程度長い時間を取っておけば、いくつかの割り込み周期において割り込み処理の実行タイミングが遅れたり、処理を実行できなかったりしても、その影響を受けることなく、シーケンスデータ中の各イベントを、シーケンスデータにおいて指定されている実行時刻に実行することができる。
【００７３】
また、自動伴奏のスタイルデータの再生のように、小節の先頭など特定のタイミングで大量のノートオンイベントが集中するような場合でも、ＣＰＵ１１は、時間に余裕を持ってこれと対応する発音指示を音源回路１８に設定することができる。従って、イベントの集中による処理遅れも避けることができる。もしＣＰＵ１１側の処理に遅れが生じたとしても、よほど大きな遅れでない限り、音源回路１８における発音指示の実行タイミングに影響を与えることはない。
【００７４】
なお、ステップＳ３３の所定時間を長くするほど、発音指示の実行タイミングずれの防止効果は大きくなる。しかし、あまり長くしすぎると、実行予約状態の発音開始指示によって多くの発音ｃｈを占有してしまうことになる。また、一旦音源回路１８に発音開始を設定してしまった後で、テンポが変更され、事後的に設定内容が実際に発音すべきタイミングとずれてしまったりすることも考えられる。
【００７５】
一方、所定時間が短すぎると、ＣＰＵ１１における割り込み処理タイミングの遅れや飛びが頻発した場合に、発音指示を実行すべきタイミングまでに音源回路１８への設定を行えない事態も生じ得る。しかし、このような事態が生じても、図１０に示したような従来の処理との場合と同様なタイミングずれが生じるだけで、それ以上の不具合はないと捉えることもできる。
そして、ステップＳ３３の所定時間を、割り込み処理の実行間隔と同じにするだけでも、タイミングずれの防止に一定の効果は得られる。これらを考慮して、この所定時間を設定するとよい。
【００７６】
なお、音源回路１８は、シーケンスデータに基づき発音指示及びその実行タイミングを音源回路１８に供給する機能を担うＣＰＵ１１と異なるハードウェアにより実現している。このため、音源回路１８は、波形データの生成及び出力専用のハードウェアとして構成できるため、処理タイミングのずれを起こすことなく、一定周期での処理実行が可能となる。このことにより、発音指示の実行タイミングにも、ずれを生じないようにすることができる。
【００７７】
なお、音源回路１８は、必ずしも波形データの生成専用のワイヤロジックを備えたものでなくてもよい。他の処理に影響を受けることなく必要な周期で波形データ生成に係る処理を実行することができるのであれば、例えば、マルチコアＣＰＵのうち１コアを音源回路１８の機能の実現のみに用いるといった構成も採用可能である。音源回路１８の機能の実現のみに用いる専用のＣＰＵを設けることも考えられる。
【００７８】
以上で実施形態の説明を終了するが、装置及び機能の構成、具体的な処理の手順などが、上述の実施形態で説明したものに限られないことはもちろんである。
例えば、上述した実施形態において、ＣＰＵ１１は音源回路１８のタイマ１８２のカウント値を取得し、図８のステップＳ３３でその取得したカウント値をイベントの実行タイミングと比較した。しかし、ＣＰＵ１１のタイマ１１７と音源回路１８のタイマ１８２との間の計時誤差が許容できるほど少ない（例えば１００分で０．２ｍｓ）のであれば、ＣＰＵ１１のタイマ１１７が計時する時刻を用いて、イベントの実行タイミングと比較してもよい。この場合、必要に応じてカウント値の換算を行う。
【００７９】
また、図７のステップＳ１９及びＳ２１において、ＣＰＵ１１は、発音指示を直ちに実行するべき旨の指定として、タイマ値の最小値である「０」を音源回路１８に供給するようにした。このようにすれば、音源回路１８側では、現在のタイマ１８２のカウント値と、レジスタ１８１に設定されたカウント値とを比較するだけで、直ちに実行すべき発音指示を特定できるため、処理のロジックを容易なものとすることができる。しかし、この構成に限られることはなく、特定のフラグ等を用いて、発音指示を直ちに実行すべき旨を示すようにしてもよい。
【００８０】
また、上述した実施形態ではシーケンスデータの再生開始時にタイマ１８２をリセットするようにしていたが、これは必須ではない。シーケンスデータの再生開始時のタイマ１８２のカウント値を記憶しておき、現在のカウント値との差分を取れば、リセットした場合と実質的に同じカウント値を得ることができる。
【００８１】
また、音源回路１８において、１つの発音ｃｈと対応する発音制御用レジスタに、制御イベント用レジスタの場合と同様、複数の発音指示を設定できるようにしてもよい。この場合、各発音指示と対応するタイマ値が示すタイミングで、該当の発音指示に係る処理を実行することになる。前の発音指示に応じた発音の継続中に次の発音指示に応じた発音を実行することとなった場合、前の発音を直ちに中止して次の発音を実行すればよい。
【００８２】
また、図６の例では、先読み用データにおいて、タイマ値をシーケンスデータの先頭からの経過時間を示す絶対値で記録するようにしたが、前のイベントからの経過時間を示す相対値で記録するようにしてもよい。この場合、音源回路１８のタイマ１８２もこれに合わせて相対経過時間が得られるようにイベント（発音指示）の処理毎にリセットするようにしてもよいし、前のイベントの処理時のカウント値と現在のカウント値との差分により、相対経過時間を求めるようにしてもよい。
【００８３】
また、音源回路１８は、シーケンスデータに従った音響信号の生成だけでなく、同時にオーディオ波形データ（ソングデータ、伴奏スタイルデータ、短いオーディオフレーズデータ等）の再生を行ってもよい。その場合、オーディオ波形データの生成周期（ＤＡＣサイクルと同じ）と、シーケンスデータに基づく発音指示の処理周期とを一致させれば、再生の都度、シーケンスデータに従って生成した音響信号と再生するオーディオ波形データとが完全に同期した再生を実現できる。
また、シーケンスデータの記述形式はＭＩＤＩ形式に限られない。音源回路１８等の音源装置に実行させるべき発音指示と、その実行タイミングとを示す情報とを何らかの形で表現可能なデータであれば、任意の形式のものを採用可能である。
【００８４】
また、音源回路１８における音響信号の生成方式は、波形メモリ方式に限らず、ＦＭ（Frequency  Modulation）方式、物理モデル方式、アナログモデリング方式等、どのような方式であってもよい。波形メモリ方式以外の場合、レジスタ１８１中の発音制御用レジスタに波形アドレスを記憶させる必要はなく、代わりに楽音生成のための各種パラメータを記憶させればよい。
【００８５】
また、波形メモリ方式の場合、波形メモリ２５に記憶されている波形データは非圧縮のデータであってもよいし、所定の圧縮方式に従って圧縮されたデータでもよい。また、ピッチを変化させたりタイムストレッチをして再生する場合は、複数の波形サンプルを補間したり読み飛ばし又は繰り返して読み出しをする等により、ＤＡＣサイクルにあった波形データを用意するようにしてもよい。すなわち、もともと記憶されていた波形サンプル値をＤＡＣサイクル毎に読み出す構成には限られない。また、ピッチ変化やタイムストレッチの有無にかかわらず、読出回路１８３が、ＤＡＣサイクルとは別の周期（例えばＤＡＣサイクルの４倍の周期）で波形データを読み出して、必要に応じて補間等の処理を行った後、上記別の周期毎にＤＡＣ２３のバッファにその波形データを供給するようにしてもよい。
【００８６】
また、この発明は、電子音楽装置１０のように、図３に示したＣＰＵ１１及び音源回路１８の機能を合わせ持つ音響信号生成装置として実施することができる他、ＣＰＵ１１の機能のみを持つ発音制御装置や、音源回路１８の機能のみ持つ音源装置として実施することも可能である。また、コンピュータに、ＣＰＵ１１の機能や音源回路１８の機能を実現させるためのプログラムとしても実施可能である。
【００８７】
このようなプログラムは、はじめからコンピュータに備えるＲＯＭや他の不揮発性記憶媒体（フラッシュメモリ，ＥＥＰＲＯＭ等）などに格納しておいてもよい。しかし、メモリカード、ＣＤ、ＤＶＤ、ブルーレイディスク等の任意の不揮発性記録媒体に記録して提供することもできる。それらの記録媒体に記録されたプログラムをコンピュータにインストールして実行させることにより、必要な処理をコンピュータに実行させることができる。
【００８８】
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部装置あるいはプログラムを記憶手段に記憶した外部装置からダウンロードし、コンピュータにインストールして実行させることも可能である。
また、以上述べてきた構成及び変形例は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
【産業上の利用可能性】
【００８９】
以上の説明から明らかなように、この発明によれば、シーケンスデータに従った音響信号の生成を、より高いタイミング精度で行えるようにすることができる。
従って、この発明を適用することにより、シーケンスデータに従って生成される音響信号の品質を向上させることができる。
【符号の説明】
【００９０】
１０…電子音楽装置、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…記憶装置、１５…通信Ｉ／Ｆ、１６…検出回路、１７…表示回路、１８…音源回路、１９…システムバス、２１…操作子、２２…表示器、２３…ＤＡＣ、２４…サウンドシステム、２５…波形メモリ、１１１…楽曲データ取得部、１１２…先読み用データ生成部、１１３…演奏操作検出部、１１４…演奏データ生成部、１１５…演奏データ取得部、１１６…音源制御部、１１７…タイマ、１８１…レジスタ、１８２…タイマ、１８３…読出回路、１８４…楽音制御回路
【図１】
0006531432.tif 000002
【図２】
0006531432.tif 000003
【図３】
0006531432.tif 000004
【図４】
0006531432.tif 000005
【図５】
0006531432.tif 000006
【図６】
0006531432.tif 000007
【図７】
0006531432.tif 000008
【図８】
0006531432.tif 000009
【図９】
0006531432.tif 000010
【図１０】
0006531432.tif 000011