JP2005099857A - 楽音発生装置 - Google Patents
楽音発生装置 Download PDFInfo
- Publication number
- JP2005099857A JP2005099857A JP2004351161A JP2004351161A JP2005099857A JP 2005099857 A JP2005099857 A JP 2005099857A JP 2004351161 A JP2004351161 A JP 2004351161A JP 2004351161 A JP2004351161 A JP 2004351161A JP 2005099857 A JP2005099857 A JP 2005099857A
- Authority
- JP
- Japan
- Prior art keywords
- sound
- processing
- data
- processor
- note data
- 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.)
- Pending
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
【課題】 ソフトウェア処理とハードウェア処理とを組み合わせた楽音発生装置の提供。
【解決手段】 楽譜データ340に基づいて、サブCPU210が音符データを生成する。メインCPU110は、音源ファイルを参照して、音符データを変換して、PCMデータを生成する。サウンドプロセッサ220は、音合成回路221で音符データを変換してPCMデータを生成する。そして、D/A変換器222は、2つのPCMデータをアナログの電圧信号に変換する。電圧信号を受けて、スピーカ300から音が出力される。
【選択図】 図1
【解決手段】 楽譜データ340に基づいて、サブCPU210が音符データを生成する。メインCPU110は、音源ファイルを参照して、音符データを変換して、PCMデータを生成する。サウンドプロセッサ220は、音合成回路221で音符データを変換してPCMデータを生成する。そして、D/A変換器222は、2つのPCMデータをアナログの電圧信号に変換する。電圧信号を受けて、スピーカ300から音が出力される。
【選択図】 図1
Description
本発明は、楽音発生技術にかかり、特に音データの生成をハードウェアとソフトウェアに分散して行う技術に関する。
楽譜データを読み込んで、その楽譜データに示された音を出力する、コンピュータ制御の楽音発生装置が知られている。この楽音発生装置では、通常、コンピュータが音響処理専用のサウンドプロセッサを制御して音の合成を行い、D/A変換した後、スピーカを鳴らしている。
しかしながら、ユーザニーズの高まり等から、よりリアルな、臨場感あるサウンドが求められるようになってきている。従来の技術では、サウンドプロセッサを新たに設計し、新しいハードウェアを製造して楽音発生装置に搭載すればかかるニーズに対応できる。ところが、新しいハードウェアの開発にはコストおよび時間がかかる。従って、ハードウェアで対応することは容易ではない。
一方、すべての処理をソフトウェアで行うと、処理に要する時間がかかりすぎて、音が遅れるという問題がある。これは、画像と音を組み合わせて出力するようなときは、特に問題となる。
そこで、ソフトウェア処理とハードウェア処理とを組み合わせた楽音発生技術を提供することを目的とする。
前記目的を達成するため、本発明では以下の処理を行う。すなわち、楽譜データのうちの一部を取り込み、当該取り込んだ楽譜データに基づいて、第1のデジタルデータを出力する。この処理は音合成回路で行う。受け付けた楽譜データのうちの他の一部を読み込み、当該読み込んだ楽譜データに基づいて、第2のデジタルデータを生成する。この処理は、当該処理を記述したプログラムを読み込んだプロセッサで行う。そして、第1および第2のデジタルデータを、アナログ信号に変換する。この処理は、D/A変換器で行う。
本発明によれば、ソフトウェア処理とハードウェア処理とを組み合わせて、楽音を発生させることができる。
以下、本発明の実施形態について、図面を用いて説明する。
図1は、本発明の実施形態に係る楽音発生装置におけるハードウェア構成を示す図である。本実施形態にかかる楽音発生装置は、外部からの入力操作を受付けて、音と画像を出力するエンターテインメント装置に適用すると好適である。
本実施形態に係る楽音発生装置は、メインCPU(Central Processing Unit)110と、メモリ120と、画像プロセッサ130と、サブCPU210と、サウンドプロセッサ220と、メモリ230と、バッファ240と、スピーカ300とを備える。そして、メインCPU110と、メモリ120と、画像プロセッサ130とが高速バス150で接続され、サブCPU210と、サウンドプロセッサ220と、メモリ230と、バッファ240とが低速バス250で接続されている。さらに、高速バス150と低速バス250とが、バスインターフェース240を介して接続されている。
メモリ120には、サウンドライブラリ310、および、音源ファイル330が記憶されている。メモリ230には、サウンドライブラリ320、および、楽譜データ340が記憶されている。
バッファ240には、サブCPU210からメインCPU110へ転送するデータを格納するMC領域241と、サブCPU210からサウンドプロセッサ220へ転送するデータを格納するSP領域242と、メインCPU110からサウンドプロセッサへ転送するPCMデータ350を記憶するPCM領域243とを有する。
メインCPU110は、60Hzの周期で動作する。メインCPU110は、例えば、処理能力が300MIPS程度のものを用いてもよい。本楽音発生装置をエンタテインメント装置に適用したとき、メインCPU110は、主に画像出力のための処理を行い、画像プロセッサ130を制御する。つまり、図示しないクロック発生器が発生するクロック信号に基づき、1/60秒を1周期とし、各周期内で所定の画像出力の処理を行う。その様子を図示したものが、図4(a)である。メインCPU110は、1/60秒ごとに画像関係の処理Gを行う。その周期内で行うべき処理が早く終わった場合には、次の周期が到来するまで処理を行わない。この空き時間Bを利用して、以下に説明する音響出力に関する処理を行う(図4(c)参照)。
音響出力に関する処理は、サウンドライブラリ310から所定のプログラムを読み込んで実行する。以下、その詳細について説明する。
メインCPU110は、バッファ240のMC領域241から音符データ350を読み込む。読み込んだデータに基づいて、メインCPU110は音を合成し、PCM(Pulse Code Modulation)データを生成する。音符データ350とは、例えば、図2および3に示すような、音色および、その音色についての音の状態を示す記述を含むテキストデータである。音符データは、たとえば、音の発音、音の停止、および、発音する音の高さのうちの、少なくともいずれかに関する音の状態を示す。音符データ350は、サブCPU210が生成して、バッファ240のMC領域241またはSP領域242に格納する。音符データ350は、サブCPU210が各周期において出力するブロック351に構成される。
図2に示す音符データの例は、4つのブロックに分割されている。各ブロック351には、少なくとも、当該ブロックの大きさを示す”Data size=XX”と、当該ブロックが生成された時刻を示す”Time code=NN”という記述が含まれる。このタイムコードが示す時刻は、ミリ秒単位に表される。ただし、この時刻は他の音符データとの相対的な時刻を把握するためのものであり、現実の時刻と一致している必要はない。また、タイムコードの代りに、データの生成された順序を判別可能なシリアル番号を用いてもよい。
さらにデータブロック351aに含まれる“Program Change P0=2”、“Program Change P1=80”は、それぞれ「パート0には識別子が2の楽器を設定する」、「パート1には識別子が80の楽器を設定する」という意味である。また、”Volume P0=90”、”Volume P1=100”は、それぞれ「パート0の音量を90とする」、「パート1の音量を100とする」という意味である。
図3のデータブロック351bに含まれる”Key on P0=60”、”Key on P1=64”は、それぞれ、「パート0を60という音(中央ド)で鳴らす」、「パート0を64という音(中央ミ)で鳴らす」という意味である。データブロック351cに含まれる”Key on P1=67”は、「パート1を67という音(中央ソ)で鳴らす」という意味である。データブロック351dに含まれる”Key off P0=60”、”Key off P1=64”は、それぞれ、「パート0の60という音(中央ド)の出力を停止する」、「パート0の64という音(中央ミ)の出力を停止する」という意味である。これらの音符データ350は、サブCPU210が生成して、バッファ240のMC領域241に格納する。
PCMデータ360とは、音符データ350に示された各パートごとの音の状態に相当する音データを、音源ファイル330から取り出して合成し、符号化したものである。PCMデータ360は、図5に示すように、音符データ350の各データブロック351に対応したブロック361に分けて生成され、バッファ240のPCM領域243に格納される。
画像プロセッサ130は、メインCPU110の制御下で、図示しない表示装置に画像を表示させるための処理を行う。
サブCPU210は、240Hz〜480Hzの周期で動作する。サブCPU210は、例えば、処理能力が30MIPS程度のものを用いてもよい。以下の各処理は、いずれもサウンドライブラリ320から所定のプログラムを読み込んで実行する。
サブCPU210は、メモリ230から楽譜データ340を読み込んで、図2および図3に示すような音符データ350を生成する。生成した音符データ350は、バッファ240へ格納される。そのうち、メインCPU110が処理すべき音符データ350はMC領域241へ、サウンドプロセッサ220が処理すべき音符データ350はSP領域242へ、それぞれ記憶される。
ここで、例えば、サウンドプロセッサ220が処理すべき音符データ350は、ベースサウンドに関するものとしてもよい。メインCPU110が処理すべき音符データ350は、メロディーラインに関するもの、または、特殊効果を必要とする処理に関するものとしてもよい。
サウンドプロセッサ220は、サブCPU210の制御下で、スピーカ300に出力させる音の生成を行う。具体的には、サウンドプロセッサ220は、音合成回路221と、D/A変換回路222とを備える。音合成回路221は、サブCPU210が生成した音符データ350をSP領域242から読み込んで、符号化された合成音のPCMデータ360を出力する。D/A変換回路222は、音合成回路221が生成したPCMデータ360および、メインCPU110が生成したPCMデータ360をアナログの電圧信号に変換して、これをスピーカ300へ出力する。
サウンドライブラリ310、320は、本楽音発生装置で音を出力するための処理を行うプログラムのモジュールが格納されている。例えば、楽譜データ340の読み込み等を行う入力処理モジュール、音の合成を行う音合成処理モジュール、サウンドプロセッサを制御するサウンドプロセッサ制御モジュール、フィルタ処理や、エコー処理等の特殊効果をつけるための特殊効果モジュール等が含まれる。
音源ファイル330は、さまざまな楽器等のさまざまな音を合成するための基となる音源データを記憶している。
楽譜データ340は、音楽の譜面で表された情報を、コンピュータ上に取りこんだデータである。
次に、メインCPU110とサブCPU210の動作タイミングについて、図4を用いて説明する。図4に示すいずれの図も、横軸は時間を表す。
図4(a)は、メインCPU110が画像に関する処理Gだけを行っているときの様子を示すタイミングチャートである。メインCPU110は、1/60で周期的に動作する。各周期の起点Aから当該周期内で処理すべき画像処理を開始する。そして、その処理が終了すると、メインCPU110は、次の周期が来るまで処理を行わない。すなわち、CPUに空き時間B(図中の斜線部分)ができる。
図4(b)は、サブCPU210が音符データ350の生成・出力処理Sだけを行っているときの様子を示すタイミングチャートである。ここでは、サブCPU210が、1/240秒周期で動作する場合を考える。サブCPU210においても、メインCPU110と同様に、各周期の起点Aから当該周期内で処理すべき処理を開始する。そして、音符データの生成および出力が終了すると、次の周期が来るまでCPUの空き時間Bとなる。なお、サブCPU210が生成する音符データ350は、サウンドプロセッサ220が直接処理するものと、メインCPU110が処理した後、サウンドプロセッサ200へ転送されるものがある。
図4(c)は、メインCPU110が空き時間Bに音合成処理を行う場合のタイミングチャートである。周期T2を例にとって説明する。周期t3〜t6の間にサブCPU210が生成した音符データ350が、バッファ240に格納されている。このうち、MC領域241に記憶されている音符データ350を図2に示す。メインCPU110はこの4つのブロック351の音符データ350を読み込み、所定の処理を行う。
このとき、メインCPU110は、タイムコードを参照してタイムコードの順番に、ブロック351単位に、PCMデータ360の生成処理Pを行う。ここで、サブCPU210の4周期分のデータをメインCPU110の1周期内で処理するため、当該4周期分のデータを一括して処理することも可能である。しかし、一括処理すると、本来、1/240秒の精度で音の合成を行うことが可能であるのに、それが1/60秒の精度に低下する。上記のように、各ブロック単位にPCMデータの生成処理を行うことで、精度の低下を防止することができる。
また、メインCPU110が画像に関する処理Gを行っている最中に、サブCPU210から割込みをかけて、画像関連の処理を一時中断させてPCMデータ生成処理Pを行わせてもよい。ただし、この場合は画像関連処理の処理効率が低下する。従って、上記のように、画像関連処理が終了した後に、まとめてPCMデータ生成処理を行うと、画像関連処理の効率を低下させずに処理することができる。
メインCPU110は、PCMデータ360をブロック361ごとに、バッファ240のPCM領域243に記憶する。PCMデータ360のブロック361は、音符データ350のブロック351に対応する。また、メインCPU110が1周期の処理を終えた時点で、PCM領域423に格納されているPCMデータ360のデータ量は、音としてスピーカ300から出力される時間に換算すると、1/60秒以上のデータ量に相当する。
サウンドプロセッサ220は、サブプロセッサ210と同一周期で動作する。従って、ここでは1/240秒周期で動作する。各周期において、音合成回路221がSP領域242から、音符データ350の1ブロック351を読み込んで、PCMデータ360を生成する。生成されたPCMデータ360は、D/A変換回路222でアナログの電圧信号に変換される。
同様に、各周期において、音符領域243からPCMデータ360の1ブロック361を読み込んで、D/A変換回路222がアナログの電圧信号に変換する。
ここで、SP領域242から取り込むデータと、音符領域243から取り込むデータは、同期をとる必要がある。もともと、サブCPU210から出力された時点では同期がとれていた。しかし、音符領域243のデータは、メインCPU110での処理を経ているため、この処理に要した時間だけ送れている。このため、SP領域242からの読み込みは、所定の時間だけ遅らせて行う。
以上説明したように、本実施形態に係る楽音発生装置により、サウンドプロセッサ220では、サウンドプロセッサ220の音合成回路221が合成処理を行ったPCMデータと、メインCPU110でソフトウェアによって合成されたPCMデータを合わせて出力することができる。
さらに、ソフトウェアの処理は、比較的容易に追加、削除、変更等を行うことができるため、さまざまなバリエーションの音を出力することができる。また、エコーやフィルタ等の一時的に行う特殊効果処理、または、サウンドプロセッサには実装されていない特殊機能に関する処理をメインCPU110が行い、ベースサウンド等の恒常的な処理をサウンドプロセッサ220が実行することで、負荷を分散すると同時に、高品質の音を出力できる。
110…メインCPU、120、230…メモリ、130…画像プロセッサ、150…高速バス、180…バスI/F、210…サブCPU、220…サウンドプロセッサ、221…音合成回路、222…D/A変換器、240…バッファ、250…低速バス、300…スピーカ、310、320…サウンドライブラリ、330…音源ファイル、340…楽譜データ、350…音符データ、360…PCMデータ
Claims (13)
- 第1の処理系と、第2の処理系と、サウンドプロセッサと、を備える楽音発生装置において、
前記第1の処理系は、
楽譜データを読み込む読み込み手段と、
前記楽譜データを変換して、一以上の音色について、当該各音色における音の状態を示す音符データを生成する音符データ生成手段と、
前記生成した音符データを、サウンドプロセッサが処理する第1の音符データと、第2の処理系が処理する第2の音符データとに分けて、それぞれ出力する出力手段と、を備え、
前記第2の処理系は、
前記第1の処理系が出力した第2の音符データを読み込む読み込み手段と、
前記読み込んだ第2の音符データに基づいて、複数の音色を合成した第1の合成音データを生成する音合成手段と、
前記第1の合成音データを出力する出力手段と、を備え、
前記サウンドプロセッサは、前記第1の処理系の制御下において、
前記第1の処理系が出力した第1の音符データを読み込んで、当該音符データに基づいて、複数の音色を合成した第2の合成音データを生成する変換回路と、
前記第1及び第2の合成音データを合わせて発音をするスピーカと、を備える
ことを特徴とする楽音発生装置。 - 請求項1記載の楽音発生装置において、
前記第1および第2の処理系は、いずれも、周期的に動作するものであり、かつ、前記第1の処理系は、前記第2の処理系よりも短い周期で動作し、
前記音符データ生成手段は、前記第1の処理系の各周期において、前記音符データを生成し、
前記出力手段は、前記第1の処理系の一周期内で生成された音符データを一つのブロックとし、かつ、当該各ブロックに、生成順序が判別可能な識別情報を含めて出力し、
前記合成音生成手段は、前記第2の処理系の一周期内で、複数の前記ブロックに含まれる音符データに基づいて、前記第1の合成音データを生成する
ことを特徴とする楽音発生装置。 - 請求項2記載の楽音発生装置において、
前記合成音生成手段は、
前記各ブロックの前記生成された順序が判別可能な識別情報に基づいて、ブロックごとに、生成された順に、前記第1の合成音データを生成することを特徴とする楽音発生装置。 - 請求項2および3のいずれか一項に記載の楽音発生装置において、
前記生成された順序が判別可能な識別情報は、生成された時刻を示す時刻情報であることを特徴とする楽音発生装置。 - 請求項1から4のいずれか一項に記載の楽音発生装置において、
前記第1の音符データは、ベースサウンドに関する音符データであり、
前記第2の音符データは、メロディーラインに関する音符データである
ことを特徴とする楽音発生装置。 - 楽譜データを受け付けて、楽音発生装置を制御する楽音発生制御装置において、
前記楽譜データの一部を取り込み、当該取り込んだ一部の楽譜データに基づいて、第1のデジタルデータを出力する音合成回路と、
前記楽譜データの他の一部を読み込み、当該読み込んだ他の一部の楽譜データに基づいて、第2のデジタルデータを生成する処理を含むコンピュータプログラムを読み込んで、当該処理を実行するプロセッサと、
前記第1および第2のデジタルデータを、アナログ信号に変換して、前記楽音発生装置へ出力するD/A変換器と、を備える
ことを特徴とする楽音発生制御装置。 - 第1のプロセッサと、第2のプロセッサと、サウンドプロセッサと、を備える楽音発生装置における楽音発生方法であって、
前記第1のプロセッサは、
楽譜データを読み込む読み込み処理と、
前記楽譜データを変換して、一以上の音色について、当該各音色における音の状態を示す音符データを生成する音符データ生成処理と、
前記生成した音符データを、サウンドプロセッサが処理する第1の音符データと、第2のプロセッサが処理する第2の音符データとを、それぞれ出力する処理と、を実行し、
前記第2のプロセッサは、
前記第1のプロセッサが出力した第2の音符データを読み込む読み込み処理と、
前記読み込んだ第2の音符データに基づいて、複数の音色を合成した第1の合成音データを生成する音合成処理と、
前記第1の合成音データを出力する処理と、を実行し、
前記サウンドプロセッサは、前記第1のプロセッサの制御下において、
前記第1のプロセッサが出力した第1の音符データを読み込んで、当該音符データに基づいて、複数の音色を合成した第2の合成音データを生成する処理と、
前記第1及び第2の合成音データを合わせてスピーカに発音させる処理と、を備える
ことを特徴とする楽音発生方法。 - 請求項1記載の楽音発生装置を備えたエンターテインメント装置。
- 音響処理と音響処理以外の他の処理とを、周期的に動作するプロセッサの一周期内で実行する方法であって、
前記他の処理を実行し、当該他の処理の実行が完了した後、前記音響処理を実行することを特徴とする音響処理の実行方法。 - 請求項9記載の音響処理の実行方法であって、
前記音響処理は、複数の処理単位に分割されていて、
前記他の処理は、単一の処理単位であり、
前記複数の処理単位に分割された音響処理は、前記単一の処理単位からなる他の処理の実行が完了した後、当該処理単位ごとに実行することを特徴とする音響処理の実行方法。 - 周期的に動作するプロセッサを備える音響処理装置であって、
前記プロセッサは、
音響処理を実行する音響処理と、音響処理以外の他の処理を実行する他の処理とを、当該プロセッサの一周期内で実行し、
前記音響処理は、前記他の処理の実行が完了した後に実行することを特徴とする音響処理装置。 - 請求項11記載の音響処理装置であって、
前記音響処理は、複数の処理単位に分割されていて、
前記他の処理は、単一の処理単位であり、
前記プロセッサは、
前記複数の処理単位に分割された音響処理は、前記単一の処理単位からなる他の処理の実行が完了した後、当該処理単位ごとに実行することを特徴とする音響処理装置。 - 請求項1記載の楽音発生装置において、
前記音符データは、
音の発音、音の停止、および、発音する音の高さのうちの、少なくともいずれかに関する音の状態を示すことを特徴とする楽音発生装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004351161A JP2005099857A (ja) | 2000-03-03 | 2004-12-03 | 楽音発生装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000059347 | 2000-03-03 | ||
JP2004351161A JP2005099857A (ja) | 2000-03-03 | 2004-12-03 | 楽音発生装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000344904A Division JP4025501B2 (ja) | 2000-03-03 | 2000-11-13 | 楽音発生装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005099857A true JP2005099857A (ja) | 2005-04-14 |
Family
ID=34466542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004351161A Pending JP2005099857A (ja) | 2000-03-03 | 2004-12-03 | 楽音発生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005099857A (ja) |
-
2004
- 2004-12-03 JP JP2004351161A patent/JP2005099857A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4025501B2 (ja) | 楽音発生装置 | |
JPH09244650A (ja) | 楽音合成装置及び方法 | |
JPH07121181A (ja) | 音声情報処理装置 | |
JP2005099857A (ja) | 楽音発生装置 | |
JP3327107B2 (ja) | 楽音生成装置 | |
JP3152156B2 (ja) | 楽音発生システム、楽音発生装置および楽音発生方法 | |
JP3799711B2 (ja) | 楽音発生方法および楽音発生装置 | |
JP3978928B2 (ja) | 楽音生成装置 | |
JP3928725B2 (ja) | 楽音信号発生装置及びレガート処理プログラム | |
JP3137043B2 (ja) | 波形メモリ音源装置および楽音発生装置 | |
JP4238807B2 (ja) | 音源用波形データの決定装置 | |
JP3723973B2 (ja) | 音源装置 | |
JP4692056B2 (ja) | 音波形生成装置、及び、音波形の波形生成データのデータ構造 | |
JPH11167517A (ja) | 信号処理装置 | |
JP3060920B2 (ja) | ディジタル信号処理装置 | |
JP3148803B2 (ja) | 音源装置 | |
JP3789358B2 (ja) | 電子音発生方法及び装置、それを用いた携帯機器 | |
JP3741047B2 (ja) | 音源装置 | |
JPH0631960B2 (ja) | 自動演奏装置 | |
JP2001318672A (ja) | 楽音発生装置 | |
JP3693046B2 (ja) | 楽音発生装置 | |
JPH09269774A (ja) | 楽音発生装置 | |
JPH10124051A (ja) | 曲データ加工方法、加工後曲データ再生方法および記憶媒体 | |
JPS63127293A (ja) | 電子楽器 | |
CN1230726A (zh) | 用于计算机音乐伴奏乐器的混声合成装置 |