JP3765152B2 - 楽音合成装置 - Google Patents
楽音合成装置 Download PDFInfo
- Publication number
- JP3765152B2 JP3765152B2 JP05863497A JP5863497A JP3765152B2 JP 3765152 B2 JP3765152 B2 JP 3765152B2 JP 05863497 A JP05863497 A JP 05863497A JP 5863497 A JP5863497 A JP 5863497A JP 3765152 B2 JP3765152 B2 JP 3765152B2
- Authority
- JP
- Japan
- Prior art keywords
- processing means
- musical
- processing
- timer
- abnormality
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、演算処理装置を備える汎用処理装置により楽音を合成できるようにした楽音合成装置に関するものである。
【0002】
【従来の技術】
従来の楽音合成装置は、通常、MIDI(Musical Instrument Digital Interface)、鍵盤あるいはシーケンサなどからの演奏情報を入力する演奏入力部、楽音波形を発生する音源部、入力された演奏情報に応じて前記音源部を制御する中央処理装置(CPU)などから構成されている。ここで、CPUは、入力された演奏情報に応じて、チャンネルアサイン、パラメータ変換などの音源ドライバ処理(演奏処理)を実行し、音源部の割り当てたチャンネルに変換したパラメータと発音開始指示(ノートオン)を供給する。また、音源部としては供給されたパラメータに基づいて楽音波形を生成する内蔵音源や、MIDIデータが供給される外部音源が用いられる。
【0003】
また、パーソナルコンピュータなどの汎用コンピュータにおいて、MIDIイベントなどの演奏情報を入力データとし、対応する波形データを演算生成するアプリケーションプログラム、いわゆるソフトウエア音源を使用して楽音を合成する楽音合成方法が提案されている。この音源処理を行うプログラムを使用することにより、専用の楽音発生装置を用いることなく、CPUとソフトウエアの他にはDA変換用のチップだけを備えるだけで、楽音を発生させることが可能とされている。
【0004】
【発明が解決しようとする課題】
しかしながら、このような楽音合成装置においては、楽音合成プログラムや自動演奏プログラムをアプリケーション・プログラムとして実行させているが、何らかの原因によりこれらのプログラムがストップしたり、実行継続不能となるいわゆるハング・アップ状態に陥ってしまうことがある。
すると、楽音発音指示(KEY-ON)が出力されたままの状態でプログラムがハング・アップした場合は、対応した楽音が出力されたままとなってしまうという問題点が生じる。
さらに、プログラムがストップしたりハング・アップ状態に陥いると、DA変換器への楽音波形データの供給が途中でストップして、その結果、DA変換器から直流分が出力されることになり、後段のサウンドシステムでクリック・ノイズが発生されたり、場合によっては直流分が漏れてスピーカなどを破壊する恐れが生じることになる。
【0005】
そこで、本発明は、プログラムがストップしたりハング・アップ状態に陥いっても、楽音が出力されたままとなったり、直流分がサウンドシステム側に漏れたり、クリックノイズ等を発生しない楽音合成装置を提供することを目的としている。
【0006】
【課題を解決するための手段】
上記目的を達成するために、本発明の楽音合成装置は、楽音波形の発生を行えると共に、MIDIインターフェース手段に接続された外部の音源手段に演奏イベントを出力することのできる処理手段と、該処理手段の処理動作において異常を検出する異常検出手段とを少なくとも備え、上記MIDIインタフェース手段に接続されている外部の上記音源手段は、上記MIDIインターフェース手段を介して供給された演奏イベントに基づく楽音の発生を行うと共に、上記異常検出手段が備えるシステムタイマーは、上記処理手段が正常動作中は上記処理手段の動作によりタイマー時間がタイムアップする前にリスタートされ、タイムアップした際に上記処理手段に異常が生じたことを検出しており、上記処理手段では、上記システムタイマーがタイムアップして上記処理手段の異常が検出された時に、上記処理手段に割り込みがかかってオールノートオフ信号を上記外部の音源手段に送出すると共に、それまで上記外部の音源手段に送出されていたアクティブセンシング信号の送出を停止させ、さらに上記楽音波形が上記処理手段から出力されることを阻止するようにしたものである。
【0007】
また、本発明の他の楽音合成装置は、楽曲の演奏に関連した情報を発生する処理手段と、該処理手段から供給される上記情報に基づいて楽音波形を発生する楽音発生手段とを少なくとも備え、上記楽音発生手段は、上記処理手段の処理動作において異常を検出する異常検出手段を有しており、該異常検出手段は、上記処理手段が正常動作中はオフタイマー時間値以内に上記処理手段からリトリガー信号が供給され、リトリガー信号が供給された際にリスタートすることにより、オフタイマー時間を経過してタイムアップした際に上記処理手段の異常を検出するリトリガブルタイマーを備え、上記リトリガブルタイマーがタイムアップして上記処理手段の異常が検出された時に、上記楽音波形が上記楽音発生手段から出力されることを阻止するようにしたものである。
さらに、上記本発明の楽音合成装置において、上記楽音発生手段に対する上記処理手段からの楽曲の演奏に関連したアクセスを検出した際に、上記楽音発生手段において作成されたリトリガー信号が上記リトリガブルタイマーに供給されるようにしたものである。
さらにまた、上記本発明の楽音合成装置において、上記処理手段の処理において上記楽音発生手段の処理に指示やイベントがあったタイミング、または、自動演奏のテンポクロックのタイミング、あるいはこれらのタイミングに準じたタイミングで発生されたリトリガー信号が上記リトリガブルタイマーに供給されるようにしたものである。
さらにまた、上記本発明の楽音合成装置において、上記処理手段が所定周期で出力するリトリガー信号と、自動演奏における演奏イベントの発生と同期して発生されるリトリガー信号との双方のリトリガー信号が上記リトリガブルタイマーに供給されるようにしたものである。
【0008】
このような本発明によれば、プログラムの実行を監視し、その異常が検出された時に、発音の停止や、DA変換器の入出力データのリセット等の対応処理を行うようにしたので、楽音が出力されたままとなったり、直流分がサウンドシステムに漏れたり、クリックノイズ等を発生しない楽音合成装置とすることができる。
【0009】
【発明の実施の形態】
本発明の汎用処理装置からなる楽音合成装置の実施の形態の構成を示すブロック図を図1に示す。
この図において、1は自動演奏用のMIDIイベントを音源に渡すべき制御パラメータに変換する等の処理を行ったり、楽音発生用のアプリケーションプログラム等を実行して楽音波形サンプルの合成等の各種制御を行なうマイクロプロセッサユニット(MPU)、2はシステムにより管理されて、異常動作時にタイムアップし強制的な割り込み(NMI:Non Maskable Interrupt)をMPU1にかけるシステムタイマー(System Timer) である。
【0010】
また、、3はOS(Operating System)の記憶エリア、自動演奏プログラムや楽音発生プログラム等のアプリケーションプログラムの記憶エリアを少なくとも有するランダム・アクセス・メモリ(RAM)、4はMPU1のシステム初期化プログラム等が記憶されているリード・オンリ・メモリ(ROM)、5は楽音を合成する楽音発生プログラムや自動演奏プログラム等のアプリケーションプログラムが予めインストールされていると共に、楽音波形サンプルを合成するために使用する楽音波形データ等が記録されているハードディスク装置(HDD)、6は英字、かな、数字、記号などを備えるいわゆるパーソナル・コンピュータ用のキーボード(KEYBOARD)と、ユーザが処理装置と対話するためのディスプレイ(DISPLAY )である。
【0011】
さらに、7は処理装置内部においてデータやアドレスが伝送されるメインバス(MAIN BUS)、8は処理装置の機能を拡張する周辺機器用の拡張バス9と処理装置内のメインバス7との間のデータの受け渡しを制御することにより、処理装置に拡張された周辺機器を接続できるようにした拡張インターフェースコントローラ(EXPAND I/F CONTROLLER ) 、9は拡張された周辺機器(拡張ボード)が接続される拡張バス(EXPAND BUS) 、10はMIDIイベントが入力されると共に、生成されたMIDIイベントを出力する拡張されたMIDIインタフェース、11はMPU1により作成された制御パラメータを受け取って、その制御パラメータに応じた楽音波形を合成したり、MPU1が演算生成した楽音波形サンプルデータを受け取る拡張された音源(T.G.)11である。
【0012】
次に、音源(T.G.)11の構成を示すブロック図を図3に示すが、この音源11は拡張ボード上に構成されている。
この図において、21は音源(T.G.)11に入力された制御パラメータTGPAR を音源ユニット(TONE GENERATING UNIT)22に供給すると共に、入力された楽音波形サンプルデータ(SDATA )およびミキシング係数(MIX COEF)をデータミキサ(DATA MIXER)23に、入力されたスイッチ制御信号(SW CONT )をスイッチ25に供給するバスデータインターフェース(BUS DATA INTERFACE )、22は供給された制御パラメータTGPAR に基づいて楽音波形サンプルデータ(TG DATA )を合成する音源ユニット(TONE GENERATING UNIT)であり、LSIチップで拡張ボードに搭載されたり、あるいはドーターボード(DAUGHTER BOARD)として拡張ボードに搭載されている。
【0013】
23は音源ユニット22により合成された楽音波形サンプルデータ(TG DATA )と、楽音波形合成用のアプリケーションプログラム(ソフトウェア音源)をMPU1が実行することにより合成された楽音波形サンプルデータ(SDATA )とが入力され、入力された2つの楽音波形サンプルデータを、ミキシング係数(MX COEF )に応じてミキシングして出力するデータミキサ(DATA MIXER)、24はデータミキサ(DATA MIXER)23から出力されたミキシングされた楽音波形サンプルデータ(OUT DATA) をアナログの楽音波形信号に変換するディジタル・アナログ変換器(DAC)、25はDAC24の出力と、アースレベルとのいずれかをスイッチ制御信号(SW CONT )に応じて選択するスイッチ、26はスイッチ25から出力されたアナログ信号(AOUT)のうちの不要周波数帯域成分を除去する出力フィルタ(OUTPUT FILTER )である。
【0014】
なお、図2にRAM3のRAMマップを示すが、OSがロードされるOS領域、自動演奏プログラムがロードされる領域、楽音発生プログラムがロードされる領域、およびその他のプログラムが書き込まれる領域や空き領域がRAM3に作成されている。
このように構成された楽音合成装置において、電源を投入するとROM4に記憶されている初期化プログラムよりシステムの初期化が行われる。そして、RAM3内に読み込まれたOSの管理下のもとで、ユーザの操作等に応じて実行されるアプリケーションプログラムがHDD5から読み出されRAM3にロードされる。
【0015】
この時、ロードされたアプリケーションプログラムがカラオケのアプリケーションプログラムであるとする。カラオケは、一般に知られているように伴奏(メロディを含んでいてもよい)を聞きながら、ディスプレイ6に表示される曲の進行に合わせてカラーワイプされる歌詞を見て歌うものである。したがって、カラオケのアプリケーションプログラムは、少なくとも伴奏等の楽曲の演奏イベントデータを順次出力する自動演奏プログラムと、その演奏イベントデータを受けて楽音波形を合成する楽音発生プログラムとを含んでいる。
【0016】
なお、図1に示すように拡張ボードに搭載された音源11が処理装置に備えられている場合は、この音源11に演奏イベントデータを供給することにより、音源11で楽音波形を合成することができる。そこで、ユーザが拡張ボードに搭載された音源11からなるハードウェア音源と、楽音発生プログラムによるソフトウェア音源のいずれかを選択して選ぶことができたり、あるいは、両音源を用いて合奏させることができるようにされている。
【0017】
これは、データミキサ23に供給するミキシング係数(MX COEF )を制御することにより行っている。例えば、ミキシング係数を「0」とするとソフトウェア音源で合成された楽音波形サンプルデータSDATA だけが出力され、ミキシング係数を「1」とするとハードウェア音源で合成された楽音波形サンプルデータTGDATAだけが出力され、ミキシング係数を0〜1の間にすると両音源で合成された楽音波形サンプルデータが混合されて出力される。
なお、合奏する場合にはソフトウェア音源による楽音波形の演算生成に時間がかかるため、両音源のタイミングを合わせる手段が必要となる。
【0018】
このようにして、ユーザの選択した態様で合成された楽曲が自動演奏されて図示しないサウンドシステムから出力されるようになるが、何らかの原因によりプログラムがハングアップすることがある。この時、自動演奏プログラムがキーオンを出したままハングアップすると、対応した楽音が出たままとなる。また、DAC24にデータが入力された状態でハングアップされると、入力データは変化せずDAC24からは入力データに対応した直流レベルが出たままとなる。これにより、音源11よりの出力信号TG OUTが供給されるサウンドシステムからクリックノイズが発生したり、この直流が漏れた場合には、スピーカなどを破壊する恐れが生じる。
【0019】
そこで、プログラムがハングアップしたことを検出して、音源11内のスイッチ25をDAC24側からアース側へと切り換えるようにし、音源11からアースレベルを出力するようにする。これにより、上記した問題点を解決することができる。このスイッチ25の制御は、MPU1がスイッチ25をアース側へ切り換えるスイッチ制御信号(SW CONT )を音源11に供給することにより行われる。
なお、プログラムがハングアップした時に、MPU1がスイッチ25をアース側へ切り換えるスイッチ制御信号(SW CONT )を音源11に供給する処理は、図1に示すシステムタイマー2がプログラムがハングアップした時にタイムアップして強制割り込みNMIをMPU1にかけることにより行っている。
【0020】
なお、システムタイマー2はOSおよびアプリケーションの処理状況を管理するために設けられているタイマーであり、処理がOSに戻る度に所定のタイマー時間が設定されてリスタートされる。この所定のタイマー時間は、MPU1が正常に処理を進めていれば、少なくともこの時間内にはOS処理に戻ってくるとされる時間値である。
【0021】
また、図4に示す構成により、プログラムがハングアップしたことを検出して、音源11内のスイッチ25をDAC24側からアース側へと切り換えることにより、DAC24出力を遮断して音源11からアースレベルを出力するようにしてもよい。図4示す構成の動作タイミングを図5に示す。
この例は、図4に示すように、リトリガブルタイマー(TIMER)31を音源11内に備えるようにし、このタイマー31にオフタイマー時間値OFFTIMが入力されている。MPU1は正常動作中はオフタイマー時間値OFFTIM以内に、リトリガー信号をタイマー31に与える。したがって、正常動作中は、図5(a)の前半に示すようにタイマー31は周期的にリトリガーされてタイムアップすることはない。この時、タイマー31の出力するハイレベルのスイッチ制御信号(SW CONT )により、スイッチ25はDAC24側へ切り換えられてDAC24の出力がスイッチ25から出力される。
【0022】
そして、プログラムがハングアップすると、MPU1からリトリガー信号が図5(a)の後半に示すようにタイマー31に供給されなくなるため、最後のリトリガー信号が与えられてからオフタイマー時間値OFFTIM経過した後にタイマー31はタイムアップするようになる。タイマー31がタイムアップすると同図(b)に示すように、タイマー31から出力されるスイッチ制御信号(SW CONT )がローレベルに立ち下がるようになるため、DAC24出力を遮断するようスイッチ25はアース側へ切り換えられてスイッチ25からアースレベルが出力されるようになる。これにより、上記問題を解決することができる。
【0023】
なお、リトリガー信号は、MPU1が楽音発生プログラムの実行中に周期的に出力するようにしているが、データ転送等の音源11に対するMPU1からのアクセスを検出して、検出した時に音源11内においてリトリガー信号を作成するようにしてもよい。
また、リトリガブルタイマー31がタイムアップした時に、図5(c)に示すようにMPU1に割り込み要求IRQがかかり、MPU1に、異常が発生してタイマー31がタイムアップしたことを認識させるようにしている。
また、自動演奏プログラムが楽音発生プログラムに対して何らかの指示やイベントを出力するタイミング、自動演奏のテンポクロック、あるいはそれに準じたタイミングで、リトリガー信号を発生するようにしてもよい。
【0024】
さらに、以上挙げたようなリトリガー信号の発生要因を組み合わせて、実際のリトリガー信号を発生するようにしてもよい。組み合わせの一例としては、楽音発生プログラムの実行中に所定周期で出力されるリトリガー信号と、自動演奏プログラムで演奏イベントの発生と同期して発生するリトリガー信号との双方により、リトリガブルタイマー31を制御する例が挙げられる。この例では、例えば、楽音発生プログラムと自動演奏プログラムの双方あるいはいずれか一方で異常の発生があると、リトリガブルタイマー31がタイムアップして異常を検出するようになる。
【0025】
異常の要因解析は、異常検出前のリトリガー信号が何(どのプログラム)によって発生されたかなどを記録しておくことにより、ある程度把握することができる。例えば、リトリガー信号の最新のいくつかの発生元をリトリガー信号の発生毎に記憶しておくなどして、リトリガー信号の来歴データから異常の要因を知ることができる。また、さらには実行するプログラム(タスク)毎に対応して、独立したリトリガブルタイマーを有させることにより、個々に異常検出を行うようにすることも可能である。
【0026】
上記のように動作する本発明の楽音合成装置を、次にフローチャートを用いて説明する。
図6はMPU1のメインルーチンを示すフローチャートであり、電源等が投入されると、MPU処理がスタートされる。すると、ステップS10にてROM4に内蔵されている初期化プログラムが実行され、HDD5からOSなどが読み出されRAM3にロードされる。これ以後はOSにシステム管理が受け渡される。OS管理下においては、ユーザの操作等に応じて実行されるアプリケーションプログラムがHDD5等から読み出されRAM3にロードされる。ここでは、自動演奏プログラムと楽音発生プログラムとがロードされて実行されるものとして以下説明する。
【0027】
ステップ11のOS処理においては、システムタイマー2のリスタート処理が行われると共に、ジョブスケジューリング等のシステム管理処理が行われる。なお、OSはマルチタスク方式とされており、複数のタスク(アプリケーション)がOSによってスイッチングされながらその処理が実行されている。すなわち、ステップS12のタスクスイッチングにより、実行されるいずれかのタスクが選択されるようになる。この場合、タスクの優先度やその時の処理状況に応じて移るタスクは変化する。
【0028】
ステップS12のタスクスイッチングによってステップS13の自動演奏プログラム処理に移ると、選択指定された演奏データと曲の進行に従い、演奏イベントデータが生成される。また、ステップS12のタスクスイッチングによってステップS14の楽音発生プログラム処理に移ると、生成された演奏イベントデータに応じて対応する楽音が合成される。さらに、ステップS12のタスクスイッチングによってステップS15のその他のプログラムに移ると、その他のプログラムの処理が行われるようになる。
そして、ステップS13、ステップS14、ステップS15のいずれかの処理が終了すると、ステップS11のOS処理に戻り、再度システムタイマーのリスタート処理や、システム管理処理が行われる。
【0029】
このように、メインルーチンは循環して実行されており、このメインルーチンが正常に実行されている場合は、ステップS11のOS処理により所定時間以内毎にシステムタイマー2がリスタートされるようになる。すなわち、MPU1にNMIがかかることはない。
なお、ステップS14の楽音発生プログラム処理における楽音波形サンプルデータの合成方法としては、
(1)「楽音発生プログラム」内に記述されているプログラムを実行することにより楽音波形サンプルデータを合成する。
(2)システムに搭載されたハードウェア、LSIチップ、DSP(MPU)等の音源デバイスにより楽音波形サンプルデータを合成する。
(3)MIDIデータを外部の音源に送りこの音源を制御することにより楽音波形サンプルデータを合成する。
の3つが考えられる。
【0030】
楽音発生プログラム処理では、上記した3つの楽音波形サンプルデータの合成方法を、適宜選択したり、組み合わせたりして用いるようにしている。なお、選択指定に当たっては、ハードウェアが搭載されているか等のシステム環境の自動チェック機能をOSあるいは関連プログラムに持たせて、これを自動認識させることにより、生成した演奏イベントの音源への割当を決めるようにしてもよい。また、ユーザの設定操作によって使用する音源の種別を決定するようにしてもよいことは当然のことである。
この場合の3つの楽音波形サンプルデータの合成方法の選択、あるいは組み合わせは、上記したようにデータミキサ23を制御するミキシング係数MX COEF を変更することにより行うことができる。
【0031】
次に、メインルーチンのステップS11にて実行されるOS処理のフローチャートを図7に示す。
OS処理は、ステップS110にてシステムタイマー2がリスタートされる。このリスタートはシステムタイマー2にタイマー時間TIMを設定することにより行われる。なお、システムタイマー2は前述したようにOSおよびアプリケーションの処理状況を管理するためのものであり、タイマー時間TIMはMPU1が正常に処理を進めていれば、この時間内には少なくともOS処理に戻るとされている時間値である。
【0032】
すなわち、図6で説明したようにOSに処理が戻る度にシステムタイマー2はリスタートされるので、MPU1が正常に処理を行っている期間は、システムタイマー2がタイムアップすることはない。しかしながら、OSあるいはアプリケーション等の処理の途中において、何らかの原因によりMPU1が暴走し、処理がOSに戻らなくなると、システムタイマー2がリスタートされなくなり、最後のリスタートからタイマー時間TIM後にシステムタイマー2はタイムアップする。
【0033】
システムタイマー2がタイムアップすると、MPU1に対して強制的かつ優先的なNMIがかけられる。すると、MPU1はスイッチ25をアース側へ切り換えるスイッチ制御信号(SW CONT)を音源11に送るようになる。
ステップS110のシステムタイマーリスタート処理が終了すると、ステップS111にてジョブスケージュリング等のシステム管理処理が行われリターンされる。
【0034】
次に、メインルーチンのステップS14にて実行される楽音発生プログラム処理のフローチャートを図8に示す。
楽音発生プログラム処理はこのフローチャートに示すように、ステップS140にて楽音発生の終了操作があったか否かが判断され、終了操作がありY(YES )と判定された場合は、ステップS141に進みここで発音されているチャンネルの発音停止処理等の終了処理が行われる。
また、ステップS140にて終了操作がなく、N(NO)と判定された場合はステップS142に分岐してスイッチ制御信号(SW CONT)が「1」にセットされる。これにより、スイッチ25はDAC24よりの出力を出力するようになる。
【0035】
次いで、ステップS143にてMIDI ACTIVE SENSING の出力処理を行う。MIDI ACTIVE SENSING とは、MIDI接続を確認するため、MIDI信号の送出側機器が、最大300ms以内毎に ACTIVE SENSING (MIDI信号)を送出し、受信側が所定時間以内に ACTIVE SENSING の受信認識ができなかった場合、楽音発生の中止などの対応処理をするものである。
ステップS143におけるMIDI ACTIVE SENSING の出力処理では、タイマー処理を併用して ACTIVE SENSING (MIDI信号)を送出している。 ACTIVE SENSING 信号は、MIDI規格ではFEH (H のサフィックスは16進数であることを示す。)で定義されている。
MIDI ACTIVE SENSING の出力処理が終了すると、ステップS144に進み波形発生演算処理が行われる。ここでは、「楽音発生プログラム」に記述された波形発生用のプログラム(ソフトウェア音源)を実行することにより、楽音波形の形成のための演算を主に行う。
【0036】
ステップS144の実行により求められた楽音波形サンプルデータは、順次音源11に転送される。ただし、システム仕様によっては楽音発生プログラムはRAM3上にある波形データバッファに演算結果としての楽音波形サンプルデータを書き込むだけで、そのバッファから音源11への転送は、音源11に対応した別のデバイスドライバ・ソフトウェアが行うようにしてもよい。
そして、ステップS144の波形発生演算処理が終了するとリターンされる。
【0037】
次に、システムタイマー2がタイムアップした時に実行されるNMI処理のフローチャートを図9に示す。
NMI処理が開始されると、ステップS20にて全MIDI CH(1ch〜16ch)について”ALL NOTEOFF ”信号を送出する。”ALL NOTEOFF ”信号はMIDI規格ではBX 7BH で定義されている。次いで、ステップS21においてMIDI ACTIVE SENSING の出力を停止するようにする。さらに、MIDI REALTIME MESSAGE の一つである”RESET ”(FFH )を送出するようにしてもよいが、”RESET ”はMIDI機器の機種によって受信した時の処理が異なる場合があるので、”RESET ”は送出/非送出の設定が選択できるようにするのがよい。
なお、異常時の処置は各種の処置を選択できるようにするのが好適である。
【0038】
次いで、ステップS22にて搭載されている音源11に対し出力阻止の指示が行われる。この指示は、「0」のスイッチ制御信号SW CONT をTG11に送ることにより行われる。そして、ステップS23の異常アラーム処理において、音源ユニット22等の楽音合成デバイスに発音中止を指示する。この指示は、ボリウムを絞ったり、キーオフ信号を送ったり、あるいはRESET をかけることにより行う。
この後、ステップS24にて再起動されたか否かが判定される。ここで、ユーザが再起動の操作を行った場合は、YES と判定されてシステムを再起動するMPU処理スタート処理が実行される。また、再起動が行われない時はステップS24の処理が循環して行われ、再起動されるまで待つようになる。
【0039】
次に、図4および図5を用いて説明したプログラムがハングアップした時に、音源11内のスイッチ25をDAC24側からアース側へと切り換えるようにする処理を行う楽音発生プログラム処理のフローチャートを図10に示す。
この楽音発生プログラム処理のフローチャートは、ステップS240にて楽音発生の終了操作があったか否かが判断され、終了操作がありY(YES )と判定された場合は、ステップS241に進みここで発音されているチャンネルの発音停止処理等の終了処理が行われる。
【0040】
また、ステップS240にて終了操作がなく、N(NO)と判定された場合はステップS242に分岐してリトリガー(RETRIGGER )信号出力処理が実行される。ここではリトリガー信号を発生するか、あるいはその発生の指示を出力する。このリトリガー信号出力処理は楽音発生プログラムがタスクとして呼ばれる度に実行されることになるため、その度毎にリトリガー信号が出力されるようになる。これにより、図5(a)の前半に示すようなリトリガー信号が出力され、スイッチ制御信号(SW CONT)が「1」にセットされたままとなる。これにより、スイッチ25はDAC24よりの出力(DA OUT)を出力するようになる。
【0041】
また、プログラムの実行中に何らかの原因によりMPU1が暴走して、楽音発生プログラムにタスクが回ってこなくなると、図5(a)の後半に示すようにリトリガー信号の発生が停止されるため、同図(b)に示すようにスイッチ制御信号(SW CONT)が「0」に立ち下がる。したがって、スイッチ25はDAC24よりの出力(DA OUT)を遮断して、アースレベルを出力するようになる。
なお、リトリガー信号は、信号として音源11に書き込むようにしてもよいが、音源11が占めているメモリのアドレス領域のいずれかに、MPU1がWRITE (空データ書き込みでもよい)したことの検出を、リトリガー信号として音源11内において扱うようにしてもよい。あるいは、自動演奏プログラムの方からリトリガー信号を送出するようにしてもよい。
【0042】
さらに、異常が発生した時には図5(c)に示すような音源11からの割り込み要求によりMPU1に知らせるか、あるいは音源11内に設けたフラグを倒すようにし、このフラグをMPU1が監視することにより異常を知るようにする。そして、異常を知った時には前記した「NMI処理」と同等の処理をMPU1が行えばよい。
ところで、リトリガー信号の出力処理が終了すると、ステップS243に進み楽音波形形成演算処理が行われる。ここでは、「楽音発生プログラム」に記述された波形発生用のプログラム(ソフトウェア音源)を実行することにより、楽音波形の形成のための演算が主に行なわれる。
【0043】
ステップS243の実行により演算生成された楽音波形サンプルデータは、順次音源11に転送される。ただし、システム仕様によっては楽音発生プログラムはRAM3上にある波形データバッファに演算結果としての楽音波形サンプルデータを書き込むだけで、そのバッファから音源11への転送は、音源11に対応した別のデバイスドライバ・ソフトウェアが行うようにしてもよい。
そして、ステップS243の楽音波形形成演算処理が終了するとリターンされる。
【0044】
なお、カラオケにおいてユーザが歌った歌は、図示しないマイクを通じて音源11に備えられた図示しないアナログ・ディジタル変換器(ADC)に入力されてディジタル信号に変換される。このディジタル信号はデータミキサ23に入力されて、楽音波形サンプルデータと混合され、サウンドシステムから楽音と一緒に発音されるようになる。
以上の説明ではカラオケのアプリケーションプログラムを実行するものとして説明したが、本発明はこれに限らず自動演奏プログラムや楽音発生プログラムのいずれかを実行する場合に適用することができるものである。
【0045】
以上説明した実施例では、DAC24の出力を外部に出力するか遮断するかをスイッチ25により制御するようにしたが、本発明はこれに限らず、例えば、VCA,電子ボリューム等により制御することも可能である。また、DAC24は、通常、所定値の基準電圧が供給され、入力されたディジタルデータに応じて基準電圧を分圧(あるいは逓倍)することにより、入力されたディジタルデータに応じたアナログ値を出力するようにしているが、この場合には、CPUの異常時にDAC24の基準電圧を「所定値」から「0」に切り換えるようにすることにより、上述した実施の形態と同様の制御を行うことが可能となる。
【0046】
【発明の効果】
本発明は以上説明したようにプログラムの実行を監視し、その異常が検出された時に、発音の停止や、DA変換器の入出力データのリセット等の対応処理を行うようにしたので、楽音が出力されたままとなったり、直流分がサウンドシステムに漏れたり、クリックノイズ等を発生しない楽音合成装置とすることができる。
したがって、不快音が出力されないと共に、サウンドシステムの障害を防止することができる。
【図面の簡単な説明】
【図1】 本発明の楽音合成装置の実施の形態の構成を示すブロック図である。
【図2】 本発明の楽音合成装置におけるRAMのマップの一例を示す。
【図3】 本発明の楽音合成装置における音源の構成を示すブロック図である。
【図4】 本発明の楽音合成装置における他の実施の形態の構成を示すブロック図である。
【図5】 本発明の楽音合成装置における他の実施の形態の構成の動作を示すタイミング図である。
【図6】 本発明の楽音合成装置におけるMPUのメインルーチンを示すフローチャートである。
【図7】 メインルーチンにおけるOS処理のフローチャートである。
【図8】 メインルーチンにおける楽音発生プログラム処理のフローチャートである。
【図9】 本発明の楽音合成装置におけるNMI処理のフローチャートである。
【図10】 メインルーチンにおける他の楽音発生プログラム処理のフローチャートである。
【符号の説明】
1 MPU、2 システムタイマー、3 RAM、4 ROM、5 ハードディスク装置(HDD)、6 ディスプレイとキーボード、7 メインバス、8 拡張インターフェースコントローラ、9 拡張バス、10 MIDIインターフェース、11 音源(T.G.)、21 バスデータインターフェース、22 音源ユニット、23 データミキサ、24 DAC、25 スイッチ、26 出力フィルタ、31 リトリガブルタイマー
Claims (5)
- 楽音波形の発生を行えると共に、MIDIインターフェース手段に接続された外部の音源手段に演奏イベントを出力することのできる処理手段と、
該処理手段の処理動作において異常を検出する異常検出手段とを少なくとも備え、
上記MIDIインタフェース手段に接続されている外部の上記音源手段は、上記MIDIインターフェース手段を介して供給された演奏イベントに基づく楽音の発生を行うと共に、上記異常検出手段が備えるシステムタイマーは、上記処理手段が正常動作中は上記処理手段の動作によりタイマー時間がタイムアップする前にリスタートされ、タイムアップした際に上記処理手段に異常が生じたことを検出しており、
上記処理手段では、上記システムタイマーがタイムアップして上記処理手段の異常が検出された時に、上記処理手段に割り込みがかかってオールノートオフ信号を上記外部の音源手段に送出すると共に、それまで上記外部の音源手段に送出されていたアクティブセンシング信号の送出を停止させ、さらに上記楽音波形が上記処理手段から出力されることを阻止するようにしたことを特徴とする楽音合成装置。 - 楽曲の演奏に関連した情報を発生する処理手段と、
該処理手段から供給される上記情報に基づいて楽音波形を発生する楽音発生手段とを少なくとも備え、
上記楽音発生手段は、上記処理手段の処理動作において異常を検出する異常検出手段を有しており、該異常検出手段は、上記処理手段が正常動作中はオフタイマー時間値以内に上記処理手段からリトリガー信号が供給され、リトリガー信号が供給された際にリスタートすることにより、オフタイマー時間を経過してタイムアップした際に上記処理手段の異常を検出するリトリガブルタイマーを備え、
上記リトリガブルタイマーがタイムアップして上記処理手段の異常が検出された時に、上記楽音波形が上記楽音発生手段から出力されることを阻止するようにしたことを特徴とする楽音合成装置。 - 上記楽音発生手段に対する上記処理手段からの楽曲の演奏に関連したアクセスを検出した際に、上記楽音発生手段において作成されたリトリガー信号が上記リトリガブルタイマーに供給されるようにしたことを特徴とする請求項2記載の楽音合成装置。
- 上記処理手段の処理において上記楽音発生手段の処理に指示やイベントがあったタイミング、または、自動演奏のテンポクロックのタイミング、あるいはこれらのタイミングに準じたタイミングで発生されたリトリガー信号が上記リトリガブルタイマーに供給されるようにしたことを特徴とする請求項2記載の楽音合成装置。
- 上記処理手段が所定周期で出力するリトリガー信号と、自動演奏における演奏イベントの発生と同期して発生されるリトリガー信号との双方のリトリガー信号が上記リトリガブルタイマーに供給されるようにしたことを特徴とする請求項2記載の楽音合成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05863497A JP3765152B2 (ja) | 1996-03-05 | 1997-02-27 | 楽音合成装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7304296 | 1996-03-05 | ||
JP8-73042 | 1996-03-05 | ||
JP05863497A JP3765152B2 (ja) | 1996-03-05 | 1997-02-27 | 楽音合成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09297579A JPH09297579A (ja) | 1997-11-18 |
JP3765152B2 true JP3765152B2 (ja) | 2006-04-12 |
Family
ID=26399661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05863497A Expired - Fee Related JP3765152B2 (ja) | 1996-03-05 | 1997-02-27 | 楽音合成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3765152B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4734484B2 (ja) * | 2000-10-19 | 2011-07-27 | 新世代株式会社 | 情報処理装置およびメモリカートリッジシステム |
JP4423790B2 (ja) | 2001-01-11 | 2010-03-03 | ソニー株式会社 | 実演システム、ネットワークを介した実演方法 |
US7847174B2 (en) | 2005-10-19 | 2010-12-07 | Yamaha Corporation | Tone generation system controlling the music system |
CN109741720A (zh) * | 2018-11-28 | 2019-05-10 | 星海音乐学院 | 一种合成器软件 |
-
1997
- 1997-02-27 JP JP05863497A patent/JP3765152B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09297579A (ja) | 1997-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5703310A (en) | Automatic performance data processing system with judging CPU operation-capacity | |
KR100386403B1 (ko) | 하드웨어및소프트웨어음원을이용하는악음발생방법 | |
US5770812A (en) | Software sound source with advance synthesis of waveform | |
JPH11126070A (ja) | 楽音生成方法 | |
JP3765152B2 (ja) | 楽音合成装置 | |
CN110299128A (zh) | 电子乐器、方法、存储介质 | |
US6919502B1 (en) | Musical tone generation apparatus installing extension board for expansion of tone colors and effects | |
JP3221314B2 (ja) | 楽音合成装置及び方法 | |
US6359206B2 (en) | Tone signal processing apparatus with intermittent clock supply | |
US5861567A (en) | Music computer saving abnormal tone generation by hangup | |
JP3152198B2 (ja) | 楽音発生方法および楽音発生装置 | |
US6169243B1 (en) | Automatic performance apparatus with quick start by accelerated loading of setting data | |
US6040516A (en) | Tone generation system using computer software and storage medium storing the computer software | |
JPH10320194A (ja) | 効果付与装置および記録媒体 | |
USRE40364E1 (en) | Tone signal processing apparatus with intermittent clock supply | |
JP3257400B2 (ja) | エフェクト装置 | |
JP2005049497A (ja) | 音源回路の制御プログラムおよび音源回路の制御装置 | |
JPH11126069A (ja) | 楽音生成方法 | |
JP3632744B2 (ja) | 音生成方法 | |
JP3843996B2 (ja) | 信号処理装置 | |
JP3740717B2 (ja) | 音源装置及び楽音生成方法 | |
JP2009230610A (ja) | 命令処理装置及び命令処理方法。 | |
JP2004259093A (ja) | データ処理装置およびデータ処理のプログラム | |
JP3627590B2 (ja) | 音生成方法 | |
JP3843997B2 (ja) | 楽音発生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20031215 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20031215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050719 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050920 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051108 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051130 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060104 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060117 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090203 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100203 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110203 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120203 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130203 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |