(57)【要約】【課題】  ソフトウェア処理とハードウェア処理とを組み合わせた楽音発生装置の提供。【解決手段】  楽譜データ３４０に基づいて、サブＣＰＵ２１０が音符データを生成する。メインＣＰＵ１１０は、音源ファイルを参照して、音符データを変換して、ＰＣＭデータを生成する。サウンドプロセッサ２２０は、音合成回路２２１で音符データを変換してＰＣＭデータを生成する。そして、Ｄ／Ａ変換器２２２は、２つのＰＣＭデータをアナログの電圧信号に変換する。電圧信号を受けて、スピーカ３００から音が出力される。【選択図】  図１
2005099857.tif 000002
【特許請求の範囲】
【請求項１】
第１の処理系と、第２の処理系と、サウンドプロセッサと、を備える楽音発生装置において、
前記第１の処理系は、
楽譜データを読み込む読み込み手段と、
前記楽譜データを変換して、一以上の音色について、当該各音色における音の状態を示す音符データを生成する音符データ生成手段と、
前記生成した音符データを、サウンドプロセッサが処理する第１の音符データと、第２の処理系が処理する第２の音符データとに分けて、それぞれ出力する出力手段と、を備え、
前記第２の処理系は、
前記第１の処理系が出力した第２の音符データを読み込む読み込み手段と、
前記読み込んだ第２の音符データに基づいて、複数の音色を合成した第１の合成音データを生成する音合成手段と、
前記第１の合成音データを出力する出力手段と、を備え、
前記サウンドプロセッサは、前記第１の処理系の制御下において、
前記第１の処理系が出力した第１の音符データを読み込んで、当該音符データに基づいて、複数の音色を合成した第２の合成音データを生成する変換回路と、
前記第１及び第２の合成音データを合わせて発音をするスピーカと、を備える
ことを特徴とする楽音発生装置。
【請求項２】
請求項１記載の楽音発生装置において、
前記第１および第２の処理系は、いずれも、周期的に動作するものであり、かつ、前記第１の処理系は、前記第２の処理系よりも短い周期で動作し、
前記音符データ生成手段は、前記第１の処理系の各周期において、前記音符データを生成し、
前記出力手段は、前記第１の処理系の一周期内で生成された音符データを一つのブロックとし、かつ、当該各ブロックに、生成順序が判別可能な識別情報を含めて出力し、
前記合成音生成手段は、前記第２の処理系の一周期内で、複数の前記ブロックに含まれる音符データに基づいて、前記第１の合成音データを生成する
ことを特徴とする楽音発生装置。
【請求項３】
請求項２記載の楽音発生装置において、
前記合成音生成手段は、
前記各ブロックの前記生成された順序が判別可能な識別情報に基づいて、ブロックごとに、生成された順に、前記第１の合成音データを生成することを特徴とする楽音発生装置。
【請求項４】
請求項２および３のいずれか一項に記載の楽音発生装置において、
前記生成された順序が判別可能な識別情報は、生成された時刻を示す時刻情報であることを特徴とする楽音発生装置。
【請求項５】
請求項１から４のいずれか一項に記載の楽音発生装置において、
前記第１の音符データは、ベースサウンドに関する音符データであり、
前記第２の音符データは、メロディーラインに関する音符データである
ことを特徴とする楽音発生装置。
【請求項６】
楽譜データを受け付けて、楽音発生装置を制御する楽音発生制御装置において、
前記楽譜データの一部を取り込み、当該取り込んだ一部の楽譜データに基づいて、第１のデジタルデータを出力する音合成回路と、
前記楽譜データの他の一部を読み込み、当該読み込んだ他の一部の楽譜データに基づいて、第２のデジタルデータを生成する処理を含むコンピュータプログラムを読み込んで、当該処理を実行するプロセッサと、
前記第１および第２のデジタルデータを、アナログ信号に変換して、前記楽音発生装置へ出力するＤ／Ａ変換器と、を備える
ことを特徴とする楽音発生制御装置。
【請求項７】
第１のプロセッサと、第２のプロセッサと、サウンドプロセッサと、を備える楽音発生装置における楽音発生方法であって、
前記第１のプロセッサは、
楽譜データを読み込む読み込み処理と、
前記楽譜データを変換して、一以上の音色について、当該各音色における音の状態を示す音符データを生成する音符データ生成処理と、
前記生成した音符データを、サウンドプロセッサが処理する第１の音符データと、第２のプロセッサが処理する第２の音符データとを、それぞれ出力する処理と、を実行し、
前記第２のプロセッサは、
前記第１のプロセッサが出力した第２の音符データを読み込む読み込み処理と、
前記読み込んだ第２の音符データに基づいて、複数の音色を合成した第１の合成音データを生成する音合成処理と、
前記第１の合成音データを出力する処理と、を実行し、
前記サウンドプロセッサは、前記第１のプロセッサの制御下において、
前記第１のプロセッサが出力した第１の音符データを読み込んで、当該音符データに基づいて、複数の音色を合成した第２の合成音データを生成する処理と、
前記第１及び第２の合成音データを合わせてスピーカに発音させる処理と、を備える
ことを特徴とする楽音発生方法。
【請求項８】
請求項１記載の楽音発生装置を備えたエンターテインメント装置。
【請求項９】
音響処理と音響処理以外の他の処理とを、周期的に動作するプロセッサの一周期内で実行する方法であって、
前記他の処理を実行し、当該他の処理の実行が完了した後、前記音響処理を実行することを特徴とする音響処理の実行方法。
【請求項１０】
請求項９記載の音響処理の実行方法であって、
前記音響処理は、複数の処理単位に分割されていて、
前記他の処理は、単一の処理単位であり、
前記複数の処理単位に分割された音響処理は、前記単一の処理単位からなる他の処理の実行が完了した後、当該処理単位ごとに実行することを特徴とする音響処理の実行方法。
【請求項１１】
周期的に動作するプロセッサを備える音響処理装置であって、
前記プロセッサは、
音響処理を実行する音響処理と、音響処理以外の他の処理を実行する他の処理とを、当該プロセッサの一周期内で実行し、
前記音響処理は、前記他の処理の実行が完了した後に実行することを特徴とする音響処理装置。
【請求項１２】
請求項１１記載の音響処理装置であって、
前記音響処理は、複数の処理単位に分割されていて、
前記他の処理は、単一の処理単位であり、
前記プロセッサは、
前記複数の処理単位に分割された音響処理は、前記単一の処理単位からなる他の処理の実行が完了した後、当該処理単位ごとに実行することを特徴とする音響処理装置。
【請求項１３】
請求項１記載の楽音発生装置において、
前記音符データは、
音の発音、音の停止、および、発音する音の高さのうちの、少なくともいずれかに関する音の状態を示すことを特徴とする楽音発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音発生技術にかかり、特に音データの生成をハードウェアとソフトウェアに分散して行う技術に関する。
【背景技術】
【０００２】
楽譜データを読み込んで、その楽譜データに示された音を出力する、コンピュータ制御の楽音発生装置が知られている。この楽音発生装置では、通常、コンピュータが音響処理専用のサウンドプロセッサを制御して音の合成を行い、Ｄ／Ａ変換した後、スピーカを鳴らしている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、ユーザニーズの高まり等から、よりリアルな、臨場感あるサウンドが求められるようになってきている。従来の技術では、サウンドプロセッサを新たに設計し、新しいハードウェアを製造して楽音発生装置に搭載すればかかるニーズに対応できる。ところが、新しいハードウェアの開発にはコストおよび時間がかかる。従って、ハードウェアで対応することは容易ではない。
【０００４】
一方、すべての処理をソフトウェアで行うと、処理に要する時間がかかりすぎて、音が遅れるという問題がある。これは、画像と音を組み合わせて出力するようなときは、特に問題となる。
【０００５】
そこで、ソフトウェア処理とハードウェア処理とを組み合わせた楽音発生技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記目的を達成するため、本発明では以下の処理を行う。すなわち、楽譜データのうちの一部を取り込み、当該取り込んだ楽譜データに基づいて、第１のデジタルデータを出力する。この処理は音合成回路で行う。受け付けた楽譜データのうちの他の一部を読み込み、当該読み込んだ楽譜データに基づいて、第２のデジタルデータを生成する。この処理は、当該処理を記述したプログラムを読み込んだプロセッサで行う。そして、第１および第２のデジタルデータを、アナログ信号に変換する。この処理は、Ｄ／Ａ変換器で行う。
【発明の効果】
【０００７】
本発明によれば、ソフトウェア処理とハードウェア処理とを組み合わせて、楽音を発生させることができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施形態について、図面を用いて説明する。
【０００９】
図１は、本発明の実施形態に係る楽音発生装置におけるハードウェア構成を示す図である。本実施形態にかかる楽音発生装置は、外部からの入力操作を受付けて、音と画像を出力するエンターテインメント装置に適用すると好適である。
【００１０】
本実施形態に係る楽音発生装置は、メインＣＰＵ(Central Processing Unit)１１０と、メモリ１２０と、画像プロセッサ１３０と、サブＣＰＵ２１０と、サウンドプロセッサ２２０と、メモリ２３０と、バッファ２４０と、スピーカ３００とを備える。そして、メインＣＰＵ１１０と、メモリ１２０と、画像プロセッサ１３０とが高速バス１５０で接続され、サブＣＰＵ２１０と、サウンドプロセッサ２２０と、メモリ２３０と、バッファ２４０とが低速バス２５０で接続されている。さらに、高速バス１５０と低速バス２５０とが、バスインターフェース２４０を介して接続されている。
【００１１】
メモリ１２０には、サウンドライブラリ３１０、および、音源ファイル３３０が記憶されている。メモリ２３０には、サウンドライブラリ３２０、および、楽譜データ３４０が記憶されている。
【００１２】
バッファ２４０には、サブＣＰＵ２１０からメインＣＰＵ１１０へ転送するデータを格納するＭＣ領域２４１と、サブＣＰＵ２１０からサウンドプロセッサ２２０へ転送するデータを格納するＳＰ領域２４２と、メインＣＰＵ１１０からサウンドプロセッサへ転送するＰＣＭデータ３５０を記憶するＰＣＭ領域２４３とを有する。
【００１３】
メインＣＰＵ１１０は、６０Ｈｚの周期で動作する。メインＣＰＵ１１０は、例えば、処理能力が３００ＭＩＰＳ程度のものを用いてもよい。本楽音発生装置をエンタテインメント装置に適用したとき、メインＣＰＵ１１０は、主に画像出力のための処理を行い、画像プロセッサ１３０を制御する。つまり、図示しないクロック発生器が発生するクロック信号に基づき、１／６０秒を１周期とし、各周期内で所定の画像出力の処理を行う。その様子を図示したものが、図４（ａ）である。メインＣＰＵ１１０は、１／６０秒ごとに画像関係の処理Ｇを行う。その周期内で行うべき処理が早く終わった場合には、次の周期が到来するまで処理を行わない。この空き時間Ｂを利用して、以下に説明する音響出力に関する処理を行う（図４（ｃ）参照）。
【００１４】
音響出力に関する処理は、サウンドライブラリ３１０から所定のプログラムを読み込んで実行する。以下、その詳細について説明する。
【００１５】
メインＣＰＵ１１０は、バッファ２４０のＭＣ領域２４１から音符データ３５０を読み込む。読み込んだデータに基づいて、メインＣＰＵ１１０は音を合成し、ＰＣＭ（Pulse Code Modulation）データを生成する。音符データ３５０とは、例えば、図２および３に示すような、音色および、その音色についての音の状態を示す記述を含むテキストデータである。音符データは、たとえば、音の発音、音の停止、および、発音する音の高さのうちの、少なくともいずれかに関する音の状態を示す。音符データ３５０は、サブＣＰＵ２１０が生成して、バッファ２４０のＭＣ領域２４１またはＳＰ領域２４２に格納する。音符データ３５０は、サブＣＰＵ２１０が各周期において出力するブロック３５１に構成される。
【００１６】
図２に示す音符データの例は、４つのブロックに分割されている。各ブロック３５１には、少なくとも、当該ブロックの大きさを示す”Data size=XX”と、当該ブロックが生成された時刻を示す”Time code=NN”という記述が含まれる。このタイムコードが示す時刻は、ミリ秒単位に表される。ただし、この時刻は他の音符データとの相対的な時刻を把握するためのものであり、現実の時刻と一致している必要はない。また、タイムコードの代りに、データの生成された順序を判別可能なシリアル番号を用いてもよい。
【００１７】
さらにデータブロック３５１ａに含まれる“Program Change P0=2”、“Program Change P1=80”は、それぞれ「パート０には識別子が２の楽器を設定する」、「パート１には識別子が８０の楽器を設定する」という意味である。また、”Volume P0=90”、”Volume P1=100”は、それぞれ「パート０の音量を９０とする」、「パート１の音量を１００とする」という意味である。
【００１８】
図３のデータブロック３５１ｂに含まれる”Key on P0=60”、”Key on P1=64”は、それぞれ、「パート０を６０という音（中央ド）で鳴らす」、「パート０を６４という音（中央ミ）で鳴らす」という意味である。データブロック３５１ｃに含まれる”Key on P1=67”は、「パート１を６７という音（中央ソ）で鳴らす」という意味である。データブロック３５１ｄに含まれる”Key off P0=60”、”Key off P1=64”は、それぞれ、「パート０の６０という音（中央ド）の出力を停止する」、「パート０の６４という音（中央ミ）の出力を停止する」という意味である。これらの音符データ３５０は、サブＣＰＵ２１０が生成して、バッファ２４０のＭＣ領域２４１に格納する。
【００１９】
ＰＣＭデータ３６０とは、音符データ３５０に示された各パートごとの音の状態に相当する音データを、音源ファイル３３０から取り出して合成し、符号化したものである。ＰＣＭデータ３６０は、図５に示すように、音符データ３５０の各データブロック３５１に対応したブロック３６１に分けて生成され、バッファ２４０のＰＣＭ領域２４３に格納される。
【００２０】
画像プロセッサ１３０は、メインＣＰＵ１１０の制御下で、図示しない表示装置に画像を表示させるための処理を行う。
【００２１】
サブＣＰＵ２１０は、２４０Ｈｚ〜４８０Ｈｚの周期で動作する。サブＣＰＵ２１０は、例えば、処理能力が３０ＭＩＰＳ程度のものを用いてもよい。以下の各処理は、いずれもサウンドライブラリ３２０から所定のプログラムを読み込んで実行する。
【００２２】
サブＣＰＵ２１０は、メモリ２３０から楽譜データ３４０を読み込んで、図２および図３に示すような音符データ３５０を生成する。生成した音符データ３５０は、バッファ２４０へ格納される。そのうち、メインＣＰＵ１１０が処理すべき音符データ３５０はＭＣ領域２４１へ、サウンドプロセッサ２２０が処理すべき音符データ３５０はＳＰ領域２４２へ、それぞれ記憶される。
【００２３】
ここで、例えば、サウンドプロセッサ２２０が処理すべき音符データ３５０は、ベースサウンドに関するものとしてもよい。メインＣＰＵ１１０が処理すべき音符データ３５０は、メロディーラインに関するもの、または、特殊効果を必要とする処理に関するものとしてもよい。
【００２４】
サウンドプロセッサ２２０は、サブＣＰＵ２１０の制御下で、スピーカ３００に出力させる音の生成を行う。具体的には、サウンドプロセッサ２２０は、音合成回路２２１と、Ｄ／Ａ変換回路２２２とを備える。音合成回路２２１は、サブＣＰＵ２１０が生成した音符データ３５０をＳＰ領域２４２から読み込んで、符号化された合成音のＰＣＭデータ３６０を出力する。Ｄ／Ａ変換回路２２２は、音合成回路２２１が生成したＰＣＭデータ３６０および、メインＣＰＵ１１０が生成したＰＣＭデータ３６０をアナログの電圧信号に変換して、これをスピーカ３００へ出力する。
【００２５】
サウンドライブラリ３１０、３２０は、本楽音発生装置で音を出力するための処理を行うプログラムのモジュールが格納されている。例えば、楽譜データ３４０の読み込み等を行う入力処理モジュール、音の合成を行う音合成処理モジュール、サウンドプロセッサを制御するサウンドプロセッサ制御モジュール、フィルタ処理や、エコー処理等の特殊効果をつけるための特殊効果モジュール等が含まれる。
【００２６】
音源ファイル３３０は、さまざまな楽器等のさまざまな音を合成するための基となる音源データを記憶している。
【００２７】
楽譜データ３４０は、音楽の譜面で表された情報を、コンピュータ上に取りこんだデータである。
【００２８】
次に、メインＣＰＵ１１０とサブＣＰＵ２１０の動作タイミングについて、図４を用いて説明する。図４に示すいずれの図も、横軸は時間を表す。
【００２９】
図４（ａ）は、メインＣＰＵ１１０が画像に関する処理Ｇだけを行っているときの様子を示すタイミングチャートである。メインＣＰＵ１１０は、１／６０で周期的に動作する。各周期の起点Ａから当該周期内で処理すべき画像処理を開始する。そして、その処理が終了すると、メインＣＰＵ１１０は、次の周期が来るまで処理を行わない。すなわち、ＣＰＵに空き時間Ｂ（図中の斜線部分）ができる。
【００３０】
図４（ｂ）は、サブＣＰＵ２１０が音符データ３５０の生成・出力処理Ｓだけを行っているときの様子を示すタイミングチャートである。ここでは、サブＣＰＵ２１０が、１／２４０秒周期で動作する場合を考える。サブＣＰＵ２１０においても、メインＣＰＵ１１０と同様に、各周期の起点Ａから当該周期内で処理すべき処理を開始する。そして、音符データの生成および出力が終了すると、次の周期が来るまでＣＰＵの空き時間Ｂとなる。なお、サブＣＰＵ２１０が生成する音符データ３５０は、サウンドプロセッサ２２０が直接処理するものと、メインＣＰＵ１１０が処理した後、サウンドプロセッサ２００へ転送されるものがある。
【００３１】
図４（ｃ）は、メインＣＰＵ１１０が空き時間Ｂに音合成処理を行う場合のタイミングチャートである。周期Ｔ2を例にとって説明する。周期ｔ3〜ｔ6の間にサブＣＰＵ２１０が生成した音符データ３５０が、バッファ２４０に格納されている。このうち、ＭＣ領域２４１に記憶されている音符データ３５０を図２に示す。メインＣＰＵ１１０はこの４つのブロック３５１の音符データ３５０を読み込み、所定の処理を行う。
【００３２】
このとき、メインＣＰＵ１１０は、タイムコードを参照してタイムコードの順番に、ブロック３５１単位に、ＰＣＭデータ３６０の生成処理Ｐを行う。ここで、サブＣＰＵ２１０の４周期分のデータをメインＣＰＵ１１０の１周期内で処理するため、当該４周期分のデータを一括して処理することも可能である。しかし、一括処理すると、本来、１／２４０秒の精度で音の合成を行うことが可能であるのに、それが１／６０秒の精度に低下する。上記のように、各ブロック単位にＰＣＭデータの生成処理を行うことで、精度の低下を防止することができる。
【００３３】
また、メインＣＰＵ１１０が画像に関する処理Ｇを行っている最中に、サブＣＰＵ２１０から割込みをかけて、画像関連の処理を一時中断させてＰＣＭデータ生成処理Ｐを行わせてもよい。ただし、この場合は画像関連処理の処理効率が低下する。従って、上記のように、画像関連処理が終了した後に、まとめてＰＣＭデータ生成処理を行うと、画像関連処理の効率を低下させずに処理することができる。
【００３４】
メインＣＰＵ１１０は、ＰＣＭデータ３６０をブロック３６１ごとに、バッファ２４０のＰＣＭ領域２４３に記憶する。ＰＣＭデータ３６０のブロック３６１は、音符データ３５０のブロック３５１に対応する。また、メインＣＰＵ１１０が１周期の処理を終えた時点で、ＰＣＭ領域４２３に格納されているＰＣＭデータ３６０のデータ量は、音としてスピーカ３００から出力される時間に換算すると、１／６０秒以上のデータ量に相当する。
【００３５】
サウンドプロセッサ２２０は、サブプロセッサ２１０と同一周期で動作する。従って、ここでは１／２４０秒周期で動作する。各周期において、音合成回路２２１がＳＰ領域２４２から、音符データ３５０の１ブロック３５１を読み込んで、ＰＣＭデータ３６０を生成する。生成されたＰＣＭデータ３６０は、Ｄ／Ａ変換回路２２２でアナログの電圧信号に変換される。
【００３６】
同様に、各周期において、音符領域２４３からＰＣＭデータ３６０の１ブロック３６１を読み込んで、Ｄ／Ａ変換回路２２２がアナログの電圧信号に変換する。
【００３７】
ここで、ＳＰ領域２４２から取り込むデータと、音符領域２４３から取り込むデータは、同期をとる必要がある。もともと、サブＣＰＵ２１０から出力された時点では同期がとれていた。しかし、音符領域２４３のデータは、メインＣＰＵ１１０での処理を経ているため、この処理に要した時間だけ送れている。このため、ＳＰ領域２４２からの読み込みは、所定の時間だけ遅らせて行う。
【００３８】
以上説明したように、本実施形態に係る楽音発生装置により、サウンドプロセッサ２２０では、サウンドプロセッサ２２０の音合成回路２２１が合成処理を行ったＰＣＭデータと、メインＣＰＵ１１０でソフトウェアによって合成されたＰＣＭデータを合わせて出力することができる。
【００３９】
さらに、ソフトウェアの処理は、比較的容易に追加、削除、変更等を行うことができるため、さまざまなバリエーションの音を出力することができる。また、エコーやフィルタ等の一時的に行う特殊効果処理、または、サウンドプロセッサには実装されていない特殊機能に関する処理をメインＣＰＵ１１０が行い、ベースサウンド等の恒常的な処理をサウンドプロセッサ２２０が実行することで、負荷を分散すると同時に、高品質の音を出力できる。
【図面の簡単な説明】
【００４０】
【図１】本発明に係る実施形態における楽音発生装置のハードウェア構成を示す説明図である。
【図２】本発明に係る実施形態におけるバッファに記憶されている音符データの例を示す説明図である。
【図３】本発明に係る実施形態におけるバッファに記憶されている音符データの例を示す説明図である。
【図４】本発明に係る実施形態におけるメインＣＰＵとサブＣＰＵの動作タイミングを示す説明図である。
【図５】本発明に係る実施形態におけるバッファ２４０に記憶されているＰＣＭデータの例を示す説明図である。
【符号の説明】
【００４１】
１１０…メインＣＰＵ、１２０、２３０…メモリ、１３０…画像プロセッサ、１５０…高速バス、１８０…バスＩ／Ｆ、２１０…サブＣＰＵ、２２０…サウンドプロセッサ、２２１…音合成回路、２２２…Ｄ／Ａ変換器、２４０…バッファ、２５０…低速バス、３００…スピーカ、３１０、３２０…サウンドライブラリ、３３０…音源ファイル、３４０…楽譜データ、３５０…音符データ、３６０…ＰＣＭデータ
【図１】
2005099857.tif 000003
【図２】
2005099857.tif 000004
【図３】
2005099857.tif 000005
【図４】
2005099857.tif 000006
【図５】
2005099857.tif 000007