JPH07319471A - 楽音波形発生装置 - Google Patents

楽音波形発生装置

Info

Publication number
JPH07319471A
JPH07319471A JP6324458A JP32445894A JPH07319471A JP H07319471 A JPH07319471 A JP H07319471A JP 6324458 A JP6324458 A JP 6324458A JP 32445894 A JP32445894 A JP 32445894A JP H07319471 A JPH07319471 A JP H07319471A
Authority
JP
Japan
Prior art keywords
sound source
program
address
processing
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.)
Granted
Application number
JP6324458A
Other languages
English (en)
Other versions
JP2678974B2 (ja
Inventor
Koichiro Oki
広一郎 太期
Ryuji Usami
隆二 宇佐美
Kosuke Shiba
康祐 斯波
Kazuo Ogura
和夫 小倉
Jun Hosoda
潤 細田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP6324458A priority Critical patent/JP2678974B2/ja
Publication of JPH07319471A publication Critical patent/JPH07319471A/ja
Application granted granted Critical
Publication of JP2678974B2 publication Critical patent/JP2678974B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【目的】 発音チャネル毎に複数の音源方式を混在させ
た音源処理をソフトウエア処理として実行する場合に、
発音チャネル毎の処理命令数の削減を可能とすることを
目的とする。 【構成】 音色等が変更されて発音チャネル毎に実行さ
れる音源方式が変更された場合に、コマンド解析部20
7及びメモリアドレス制御部205は、外部メモリから
プログラムメモリ201に、8チャネル分の音源方式が
定まった音源処理プログラムを一括してロードする。そ
して、各発音チャネル毎に、自動的に音源方式が定まっ
た音源処理プログラムが実行され、各発音チャネル毎に
どの音源方式で楽音を生成するかという判別処理を行う
ことが不要となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、楽音波形発生装置にお
ける音源処理方式に関し、更に詳しくは、発音チャネル
毎に複数の音源方式を混在させた音源処理をソフトウエ
ア処理として実行する楽音波形発生装置に関する。
【0002】
【従来の技術】ディジタル信号処理技術とLSI処理技
術の発達により性能の良い様々な電子楽器が実現されて
いる。
【0003】電子楽器の楽音波形発生装置は、大量かつ
高速のディジタル演算が必要なため、従来は、必要とす
る音源方式に基づく楽音発生アルゴリズムと等価なアー
キテクチャをハードウエアで実現した専用の音源回路に
よって構成されていた。そのため、ハードウエア規模が
大きくなってしまい、また、音源方式の自由な変更が困
難であり、更に、このような楽音波形発生装置を電子楽
器として実現するような場合に、演奏情報に対する処理
と音源に対する処理の両方を同期させて行うための制御
が複雑となり、その開発において多大なコストアップを
招いていた。
【0004】その一方、近年においては、汎用のデータ
処理を行うための高性能なマイクロプロセッサが多く実
現されており、このようなマイクロプロセッサを使用し
て音源処理をソフト的に行う楽音波形発生装置を実現さ
せることも考えられる。
【0005】このような方式では、例えばプロセッサ
が、通常、演奏情報処理プログラムを実行して演奏操作
に基づいて鍵盤等から発生する演奏情報を処理し、所定
の時間間隔で割り込みがかかることによって、音源処理
プログラムに処理を移して楽音生成を行う。その後、音
源処理プログラムの実行が終了すると、割り込みが解除
されて演奏情報処理プログラムの実行が再開される。
【0006】上述のようなソフトウエア音源処理におい
ては、複数の楽音を同時に発音可能とすべく、一般に、
所定時間間隔の割り込み等の処理周期中に複数の発音チ
ャネルに対して時分割処理を行うようにしている。そし
て、各発音チャネル毎に異なる音源方式の音源処理プロ
グラムを実行させることにより、ある音色のときはPC
M方式で、別の音色のときは変調方式で、或いは、ある
音色のときに偶数チャネルはPCM方式で、奇数チャネ
ルは変調方式でというように、音色毎又は発音チャネル
毎に異なる音源方式によって楽音を生成することも可能
である。
【0007】このような場合、一般的に、発音チャネル
毎に音源方式の番号等をメモリなどに記憶させておき、
各発音チャネルの処理タイミングにさしかかる毎に、そ
の発音チャネルに対応して記憶されている音源方式番号
等を識別して、対応する音源方式の音源処理プログラム
を実行するような制御が行われる。
【0008】ここで、楽器の性能を向上させるために、
同時に発音可能な発音チャネル数を増加させたいという
ような要求があった場合、上記処理周期中にできるだけ
多くのプログラム命令を実行できるようにする必要があ
る。
【0009】
【発明が解決しようとする課題】従って、各発音チャネ
ルの処理においては、分岐命令等の演算サイクルの長い
命令はできる限り削減する必要が生じる。しかし、発音
チャネル毎に異なる音源方式による楽音生成を可能とし
たい場合に、上述の従来例のように、各発音チャネルの
処理タイミングにさしかかる毎に音源方式を識別するよ
うな分岐命令を実行していたのでは、1処理期間中に全
ての発音チャネルに対する処理を終了できなくなる可能
性がある。
【0010】そして、それを防止するために、楽音を発
生させるサンプリング周波数を減少させ音源処理の時間
間隔を大きくするなどの措置を講じなければならなくな
り、その結果、楽音を発生させるサンプリング周波数が
減少して生成される楽音の最高周波数が低くなり音質が
劣化してしまうなどの問題点を生じていた。
【0011】本発明の課題は、発音チャネル毎に複数の
音源方式を混在させた音源処理をソフトウエア処理とし
て実行する場合に、発音チャネル毎の処理命令数の削減
を可能とすることにある。
【0012】
【課題を解決するための手段】本発明は、所定時間間隔
で、複数の各発音チャネル毎、例えば8チャネルのうち
のそれぞれのチャネル毎に、複数の音源方式、例えばP
CM方式、DPCM方式、FM方式、TM方式等のう
ち、任意の音源方式の音源処理プログラムを実行して楽
音信号を生成するプログラム実行手段を含む楽音波形発
生装置を前提とする。この場合、複数のプロセッサ構成
として、より多くの発音チャネルを処理可能としてもよ
い。
【0013】そして、まず、全発音チャネル分連続して
実行される音源処理プログラムを、全発音チャネルの音
源方式の組合せ毎に複数組保存するROM等の保存用音
源処理プログラム記憶手段を有する。同手段には、例え
ば、8チャネル全てがPCM方式で楽音生成を連続して
行う音源処理プログラム、各発音チャネル毎にPCM方
式、TM方式等が混在した形態で楽音生成を連続して行
う音源処理プログラム等、複数組が記憶される。
【0014】次に、前述の所定時間間隔毎に、プログラ
ム実行手段により、全発音チャネル分連続して実行され
る音源処理プログラムを記憶するRAM等の実行用プロ
グラム記憶手段を有する。なお、前述のように複数プロ
セッサ構成とした場合には、各プロセッサ毎に設けられ
る。
【0015】そして、保存用プログラム記憶手段から全
発音チャネル分連続して実行される音源処理プログラム
の任意の組を読み出して実行用プログラム記憶手段に転
送する音源処理プログラム転送制御手段を有する。な
お、前述のように複数プロセッサ構成とした場合には、
同制御手段は、各プロセッサの実行用プログラム記憶手
段に転送を行う。
【0016】
【作用】演奏者が音色設定等を行った場合又は装置の電
源をオンしたような場合に、音源処理プログラム転送制
御手段が、保存用プログラム記憶手段から全発音チャネ
ル分連続して実行される音源処理プログラムの任意の組
を読み出して実行用プログラム記憶手段に転送する。そ
して、プログラム実行手段は、所定時間間隔毎に各発音
チャネルの楽音生成を行う場合、実行用プログラム記憶
手段に記憶された音源処理プログラムを全発音チャネル
分一括して実行する。
【0017】これにより、各発音チャネル毎にどの音源
方式で楽音を生成するかという判別処理を行うことが不
要となり、分岐命令の数を削減することができるため、
同時に発音可能な発音チャネル数を増加させることがで
きる等、楽器の性能を向上させることが可能となる。
【0018】
【実施例】以下、図面を参照しながら本発明の実施例に
つき説明する。 <本実施例の構成>図1は、本実施例の全体構成図であ
り、外部メモリ116以外は1チップで構成され、その
中のマスターとスレーブの2つのCPU(中央演算制御
装置)が互いに情報を交換しつつ、楽音作成のための音
源処理を分担して行う。
【0019】図1において、まず、外部メモリ116に
は、エンベロープ値の目標値等の楽音制御パラメータ
と、PCM(パルス符号変調)方式における楽音波形又
はDPCM(差分パルス符号変調)方式における楽音差
分波形、ならびに各種音源処理のためのプログラム等が
記憶されている。
【0020】一方、マスタCPU(以下、MCPU と略称
する)101とスレーブCPU(以下、SCPU と略称す
る)102は、外部メモリ116上の上記各データをア
クセスして、分担して音源処理を行う。これらのCPU
は、ともに外部メモリ116の波形データ等を共用する
ので、このままでは、外部メモリ116からデータを読
み込むときに、競合が発生する恐れがある。そのため、
MCPU 101とSCPU102のそれぞれは、MCPU 外部
メモリアクセス用アドレスラッチ部103及びSCPU 外
部メモリアクセス用アドレスラッチ部104を介して、
アクセス用アドレス競合回避回路105から外部メモリ
アクセス用のアドレス信号と外部メモリ制御データを出
力端子111、112から出力することにより、MCPU
101からのアドレスとSCPU 102からのアドレスの
競合を回避することができる。
【0021】上記アドレス指定に基づいて外部メモリ1
16から読み出されたデータは、外部メモリデータイン
端子115から外部メモリセレクタ部106に入力され
る。外部メモリセレクタ部106は、アクセス用アドレ
ス競合回避回路105からの制御信号に基づき、上記読
み出されたデータを、データバスMDを通ってMCPU1
01に入力されるデータと、データバスSDを通ってS
CPU 102に入力されるデータに分離し、それぞれMCP
U 101とSCPU 102に入力させる。これにより、デ
ータの競合も回避することができる。
【0022】その後、それぞれのデータに対し、MCPU
101及びSCPU 102で、ソフトウエアによって音源
処理が施された後、発音チャネル分全部が累算され、Le
ftD/A変換器部107のレフト出力端子113及びRi
ght D/A変換器部108のライト出力端子114か
ら、それぞれ楽音信号として、左チャネルのレフト・ア
ナログ出力と右チャネルのライト・アナログ出力が出力
される。
【0023】次に、図2はMCPU 101の内部構成を示
すブロック図である。同図において、プログラムメモリ
201は、後述するメインフロー(図9)に対応するプ
ログラムを記憶するROM部分と、後述する音源処理プ
ログラムを図1の外部メモリ116からロードして記憶
するRAM部分とからなり、メモリアドレス制御部20
5からプログラムアドレスデコーダ202を介して指定
されたアドレスのプログラム語(命令)を順次出力す
る。具体的には、各プログラム語の語長は例えば28ビ
ットであり、プログラム語の一部が次に読み出されるべ
きアドレスの下位部(ページ内アドレス)としてメモリ
アドレス制御部205に入力されるネクストアドレス方
式となっている。
【0024】なお、音色等が変更されて発音チャネル毎
に実行される音源方式が変更された場合に、対応する音
源処理プログラムを一括して図1の外部メモリ116か
らプログラムメモリ201にロードするようにした点
が、本実施例の特徴とする点である。
【0025】コマンド解析部207は、制御用RAM2
01から出力される命令のオペコードを解析し、指定さ
れたオペレーションを実行するために、回路の各部に制
御信号を送る。
【0026】RAMアドレス制御部204は、制御用R
AM201からの命令のオペランドがレジスタを指定し
ている場合に、RAM206内の対応するレジスタのア
ドレスを指定する。RAM206には、図15、図16
等として後述する各種楽音制御データが8発音チャネル
分記憶されるほか、図17等として後述する各種バッフ
ァ等が記憶され、後述する音源処理に使用される。
【0027】ALU部208及び乗算器209は、制御
用RAM201からの命令が演算命令の場合に、コマン
ド解析部207からの指示に基づいて、前者は加減算と
論理演算、後者は乗算を実行する。
【0028】インタラプト制御部203は、内部の特に
は図示しないハードタイマに基づいて、一定時間毎に、
図1のSCPU 102にリセット解除信号A、メモリアド
レス制御部205及び図1の各D/A変換器部107、
108にインタラプト信号を供給する。
【0029】上述の構成のほかに、図2のMCPU 101
には、次の各種のバスに関するインタフェースが設けら
れている。すなわち、外部メモリ116をアクセスすべ
く、そのメモリのアドレスを指定するためのアドレスバ
スMAのインタフェース215、アクセスされたデータ
を外部メモリセレクタ部106を介してMCPU 101と
の間で授受するためのデータバスMDのインタフェース
216、SCPU 102とのデータの授受を実行すべくS
CPU 102内部のRAMのアドレスを指定するバスMa
のインタフェース212、MCPU 101がSCPU 102
へデータを書き込むためのデータバスDoutのインタフ
ェース213、MCPU 101がSCPU 102からデータ
を読み込むためのデータバスDinのインタフェース21
4、Left D/A変換器部107、Right D/A変換器
部108に最終出力波形を転送するためのD/Aデータ
転送バスのインタフェース217、及び外部のスイッチ
部又は鍵盤部(図7、図8参照)等との間でデータの授
受を行う入出力ポート210、211がある。
【0030】次に、SCPU 102の内部構成を図3に示
す。SCPU 102は、MCPU 101からの処理開始信号
を受けて音源処理を行うのみなので、図2の223に対
応するインタラプト制御部、図2の210及び211に
対応する外部回路とのデータの授受を行う入出力ポート
及び図2の217に対応するLeft D/A変換器部10
7とRight D/A変換器部108に楽音信号を出力する
ためのインタフェースはない。それ以外の301、30
2、304〜309の各回路は、図2の201、20
2、204〜209の各回路と同じ機能を有する。ま
た、各インタフェース303、310〜313は、図2
の212〜216のそれぞれに対向して設けられる。な
お、MCPU 101からバスMaを介して指定されたSCP
U 102内部RAMアドレスは、RAMアドレス制御部
304に入力し、対応するアドレスがRAM306に対
して指定される。これによって、例えばSCPU 102で
生成されRAM306内部に保持されている最大8発音
チャネル分の累算波形データが、データバスDinを介し
てMCPU 101に出力される。これについては後述す
る。
【0031】また、音色変更時等においては、前述した
MCPU 101の場合と同様、対応する音源処理プログラ
ムが一括して図1の外部メモリ116からMCPU 101
を介しロードされる。この転送動作は、図2のMCPU 1
01内のコマンド解析部207及びメモリアドレス制御
部205等が、ゲート回路314を介して、プログラム
RAM301及びRAMアドレス制御部305を制御す
ることにより実行される。
【0032】以上に示される構成のほか、本実施例で
は、MCPU 101の入力ポート210に、図7及び図8
に示されるような機能キー701及び鍵盤キー702等
が接続される。これらの部分が、実質的な楽器操作部を
構成する。
【0033】次に、図5は、図1のLeftとRight のD/
A変換器部107、108(両変換部の内容は同じ)の
内部構成を示すもので、データバスを介して、音源処理
で作成された楽音の1サンプルデータがラッチ401に
入力される。そして、ラッチ401のクロック入力にM
CPU 101のコマンド解析部207(図2)から音源処
理終了信号が入力されると、データバス上の1サンプル
分の楽音データがラッチ401にラッチされる。
【0034】ここで、前述の音源処理に要する時間は、
音源処理用のソフトウエアにより変化する。そのため、
音源方式が異なる場合は、各音源処理が終了し、ラッチ
401に楽音データがラッチされるタイミングは一定で
ない。そのため、図4のように、ラッチ401の出力を
そのままD/A変換器402に入力させることはできな
い。
【0035】そこで、本実施例では図5の如く、ラッチ
401の出力を更にラッチ501でラッチし、インタラ
プト制御部203から出力されるサンプリングクロック
間隔に等しい図6に示されるインタラプト信号により、
楽音信号をラッチ501にラッチさせ、図6のように一
定間隔でD/A変換器402に出力させるようにしてい
る。
【0036】このようにラッチを2つ用いて、音源方式
による処理時間の変化を吸収したので、楽音データをD
/A変換器へ出力させるための複雑なタイミング制御プ
ログラムが不用になった。 <本実施例の全体動作>次に、本実施例の全体動作を説
明する。
【0037】本実施例は、基本的にはMCPU 101が中
心となって動作し、図9のメインフローチャートに示す
ように、S902 〜S910 の一連の処理を繰り返し行って
いる。そして実際の音源処理は割り込み(インタラプ
ト)処理で行っている。具体的には、ある一定時間毎
に、MCPU 101とSCPU 102に割り込みが掛かり、
それに基づいてそれぞれのCPUが最大8チャネルずつ
の音を作る音源処理を行う。
【0038】ここで、後述するように、各発音チャネル
毎に、PCM、DPCM、FM又はTM等の異なる音源
方式を割り当てることが可能であるが、その割り当てに
対応する8チャネル分の音源処理プログラムは、音色設
定時等に一括して外部メモリ116(図1)からプログ
ラムメモリ201(図2)又はプログラムRAM301
にロードされることが、本実施例の特徴となっている。
これにより、各発音チャネル毎にどの音源方式で楽音を
生成するかという判別処理を行うことが不要となってい
る。なお、この転送動作については、後述する。
【0039】インタラプト処理による音源処理が終わる
と、それぞれのCPUの最大8チャネル、計最大16チ
ャネル分の楽音波形が加算され、Left D/A変換器部
107、Right D/A変換器部108から出力される。
その後、割り込み状態からメインフローに戻る。なお、
上述の割り込みは、図2のインタラプト制御部203内
のハードタイマに基づき周期的に行われる。この周期は
楽音出力時のサンプリング周期に等しい。
【0040】以上が、本実施例の概略の全体動作であ
る。次に、本実施例の全体動作の詳細について、図9〜
図11を用いて説明する。図9のメインフローチャート
のS902 〜S910 の処理が繰り返し実行されている間
に、インタラプト制御部203から割り込みが掛かる
と、図10のMCPU インタラプト処理と図11のSCPU
インタラプト処理の2つの処理が同時に起動する。そし
て、図10と図11の「音源処理」は、後述する図13
に示される。
【0041】図9のメインフローチャートは、インタラ
プト制御部203から割り込みが掛からない状態におい
てMCPU 101において実行される、音源処理以外の処
理の流れを示している。
【0042】まず、電源がONされると、MCPU 101
のRAM206の内容等の初期設定が行われる(S901
)。次に、MCPU 101の外部に接続される機能キー
701(図7参照)、例えば音色スイッチ等が走査され
(S902 )、各スイッチの状態が入力ポート210から
RAM206内のキーバッファエリアに取り込まれる。
その走査の結果、状態の変化した機能キーが識別され、
対応する機能の処理がなされる(S903 )。例えば、楽
音番号のセット、エンベロープ番号のセット、また、付
加機能にリズム演奏がついていれば、リズム番号のセッ
ト等が行われる。
【0043】その後、押鍵されている鍵盤キーの状態が
上述の機能キーの場合と同様に取り込まれ(S904 )、
変化した鍵(押鍵又は離鍵された鍵)が識別されること
によりキーアサイン処理が行われる(S905 )。この処
理は、押鍵された鍵に基づいて発音されるべき楽音のデ
ータを発音チャネルに割り当てたり、逆に、離鍵された
鍵に対応する発音チャネルを解放したりする処理であ
る。なお、ここで実行される処理の一部であるキーオン
時のアサイン処理は、押鍵キーを発音チャネルへ割り当
てる処理のみであり、実際に押鍵キーに基づくピッチデ
ータをアサインされた発音チャネルに設定し発音指示を
行う動作は、後述する発音処理(S909 )において実行
される。
【0044】次に、機能キー701(図7参照)である
デモ演奏キーが押されたときは、外部メモリ部116か
らデモ演奏データ(シーケンサデータ)が順次読み出さ
れ、S905 と同様のキーアサイン処理などが行われる
(S906 )。また、リズムスタートキーが押されたとき
は、リズムデータが外部メモリ116から順次読み出さ
れ、S905 と同様のキーアサイン処理などが行われる
(S907 )。
【0045】その後に、以下に述べるタイマー処理が行
われる(S908 )。すなわち、後述するインタラプトタ
イマー処理(S1012)でインクリメントされている時間
データの時間値が判別され、デモ演奏制御用に順次読み
出される時間制御用のシーケンサデータ又はリズム演奏
制御用に読み出される時間制御用のリズムデータと比較
されることにより、S906 のデモ演奏又はS907 のリズ
ム演奏を行う場合の時間制御が行われる。
【0046】更に、発音処理S909 では、上記各ステッ
プS905 〜S907 でアサインされ発音開始されるべき発
音チャネルにピッチデータを設定し、また、発音中の発
音チャネルのピッチデータを予め設定されたエンベロー
プに従って時間的に変化させ、発音中の楽音のピッチに
変化を付加するというピッチエンベロープ処理等が行わ
れる。
【0047】更に、フロー1周準備処理が実行される
(S910 )。ここでは、上述のステップS909 で新たに
ピッチデータが設定された発音チャネルの状態を発音中
に変えたり、逆にステップS905 〜S907 で解放された
発音チャネルの状態を消音中に変える等の処理が行われ
る。
【0048】次に、図10のMCPU インタラプト処理に
つき説明する。MCPU 101のインタラプト制御部20
3によりMCPU 101に割り込みが掛かると、図9のメ
インフローチャートの処理が中断され、図10のMCPU
インタラプト処理の実行が開始される。この場合、MCP
U インタラプト処理のプログラムにおいて、図9のメイ
ンフローのプログラムで書き込みが行われるレジスタ等
については、内容の書き換えが行われないように制御さ
れる。これにより、通常のインタラプト処理の開始時と
終了時に行われるレジスタの退避と復帰の処理は不要と
なり、図9のメインフローチャートの処理とMCPU イン
タラプト処理との間の移行が迅速に行われる。
【0049】図10においては、まず、MCPU インタラ
プト処理において音源処理が開始される(S1011)。こ
の音源処理は後述する図13に示される。上述の動作と
同時に、MCPU 101のインタラプト制御部203から
SCPU 102のRAMアドレス制御部305に対してS
CPU リセット解除信号A(図1参照)が出力され、SCP
U 102において、図11のSCPU インタラプト処理の
実行が開始される。
【0050】そして、MCPU インタラプト処理における
音源処理(S1011)とほぼ同時に、SCPU インタラプト
処理において音源処理が開始される(S1101)。このよ
うに、MCPU 101とSCPU 102の両者が並行して音
源処理を実行することによって、1つのCPUで音源処
理を実行する場合に較べて音源処理の処理速度が約2倍
になる。
【0051】続いて、MCPU 101では、S1012のイン
タラプトタイマー処理の後、SCPU102からSCPU イ
ンタラプト処理の終了信号が来るのを待っている(S10
13)。なお、インタラプトタイマー処理では、図10の
インタラプト処理が一定のサンプリング周期毎に実行さ
れることを利用して、RAM206(図2)上の特には
図示しない時間データの値がインクリメントされる。す
なわち、この時間データの値を見れば時間経過がわか
る。このようにして得られる時間データは、前述したよ
うに、図9のメインフローのタイマー処理S908 におけ
る時間制御に用いられる。
【0052】図11のSCPU インタラプト処理における
ステップS1101の音源処理が終了すると、SCPU 102
のコマンド解析部307からMCPU 101のメモリアド
レス制御部205に、SCPU 処理終了信号B(図1参
照)が入力する。これにより、図10のMCPU インタラ
プト処理でのステップS1013の判定がYESになる。
【0053】この結果、図1のデータバスDinを介して
SCPU 102で作られた波形データがMCPU 101のR
AM206に読み込まれる(S1014)。この場合、波形
データはSCPU 102のRAM306上の所定のバッフ
ァ領域(図17で後述するバッファB)に格納されてい
るため、MCPU 101のコマンド解析部207は、SCP
U 内部アドレス指定バスMaを介して、RAMアドレス
制御部304に対して上記バッファアドレスを指定する
ことにより、波形データの読み込みを行う。
【0054】そして、S1014' において、上記バッファ
領域の内容がLeft D/A変換器部107及びRight D
/A変換器部108のラッチ401(図5参照)にラッ
チされる。
【0055】次に、図12は、前述の図9と図10のフ
ローチャートの処理の関係を概念的に示した流れ図であ
り、MCPU 101とSCPU 102が、音源処理をそれぞ
れ分担して行う様子を示している。
【0056】まず、ある処理A(以下、処理B、C、・
・・、Fも同じ)が実行される(S1201)。この処理
は、図9のメインフローチャートの例えば「機能キー処
理」、や「鍵盤キー処理」などに対応する。その後、M
CPU インタラプト処理とSCPUインタラプト処理に入
り、同時にMCPU 101とSCPU 102による音源処理
が開始される(S1202、S1203)。そして、SCPU 10
2でのSCPU インタラプト処理の終了時に、SCPU 処理
終了信号BがMCPU 101に入力する。MCPU インタラ
プト処理では、SCPU インタラプト処理より早く音源処
理が終了し、SCPUインタラプト処理の終了を待ってい
る。そして、MCPU インタラプト処理においてSCPU 処
理終了信号Bが識別されると、SCPU 102で生成され
た波形データがMCPU 101に送られてMCPU 101で
生成された波形データとまとめられ、Left D/A変換
器部107及びRight D/A変換器部108に出力され
る。その後、メインフローチャートの処理Aの次の処理
Bに戻る。
【0057】以上のような動作が、全ての発音チャネル
(MCPU 101とSCPU 102で実行中の発音チャネ
ル)に対する音源処理が行われながら繰り返される(S
1204〜S1216)。そして、この繰り返し処理は、楽音の
発音中続けられる。
【0058】図13は、MCPU インタラプト処理のステ
ップS1011又はSCPU インタラプト処理のステップS11
01で実行される音源処理の動作フローチャートである。
まず、RAM206又はRAM306の波形データ加算
用の領域がクリアされる(S1316)。次に、発音チャネ
ルの1チャネル毎に音源処理が行われ(S1317〜S132
4)、最後に8チャネル目の音源処理が終了した時点
で、RAM206上の所定のバッファ領域B(後述する
図17)に8チャネル分が加算された波形データが得ら
れる。 <音源処理におけるデータ構成>次に、図10のS1011
及び図11のS1101で実行される音源処理の具体例につ
いて説明する。
【0059】本実施例では、MCPU 101とSCPU 10
2の両CPUが、最大8チャネルづつの音源処理を分担
することは前述した。この最大8チャネル分の音源処理
用のデータは、図14に示すように、MCPU 101、S
CPU 102のRAM206、306内の発音チャネル別
の領域に設定される。
【0060】また、同RAMには、図17に示すよう
に、全発音チャネル共通のバッファBが確保されてい
る。この場合、図14の各発音チャネル領域には、後に
詳述するような操作によって、図15に概念的に示すよ
うに、それぞれの音源方式が設定でき、その音源方式が
設定されたら、図15及び図16に示すような各音源方
式のデータフォーマットで、図14の各発音チャネルの
各領域にデータが設定される。なお、本実施例では、後
述するように、各発音チャネルに異なる音源方式を割り
当てることが可能である。
【0061】図15及び図16の各音源方式のデータフ
ォーマットを示すテーブル1において、Aは、音源処理
時に波形データが読み出される場合に指定されるアドレ
スを表し、AI 、A1 及びA2 が現在アドレスの整数部
で、外部メモリ116(図1)の波形データが格納され
ているアドレスに直接対応する。また、AF は現在アド
レスの小数部であり、外部メモリ116から読み出され
た波形データの補間に用いられる。
【0062】次のAE はエンドアドレス、AL はループ
アドレスをそれぞれ表す。また、つぎのPI 、P1 及び
P2 はピッチデータの整数部、PF はピッチデータの小
数部を表す。例を示すと、PI =1、PF =0は原音の
ピッチを、PI =2、PF =0は1オクターブ上のピッ
チを、また、PI =0、PF =0.5は、1オクターブ
下のピッチをそれぞれ表す。
【0063】次のXP は前回のサンプルデータを、XN
は次回のサンプルデータの格納を表す(後述する)。ま
た、Dは隣接する2つのサンプルデータ間の大きさの差
分値を表し、Eはエンベロープ値である。更に、Oは出
力値である。
【0064】その他の種々の制御データについては、後
述の各音源方式の説明の際に説明する。以上説明したよ
うな図15、図16に示すようなデータがMCPU 10
1、SCPU 102のそれぞれのRAM206、306に
確保され、後述する音源方式が決まると、図14に示す
各チャネル毎に図15、図16のフォーマットで、デー
タが設定される。
【0065】以下、このようなデータ構成を用いて実行
される各音源方式の音源処理について順次説明する。こ
こで、音色等の設定に応じて、各発音チャネル毎にPC
M、DPCM、FM又はTM等の異なる音源方式を割り
当てることができる。そして、音色等の設定が行われた
場合、8チャネル分の音源方式が定まった音源処理プロ
グラムが一括して、外部メモリ116(図1)からプロ
グラムメモリ201(図2)又はプログラムRAM30
1にロードされる。これにより、各発音チャネル毎に、
自動的に音源方式が定まった音源処理プログラムが実行
されることになる。以下、これらの音源処理プログラム
として実行される各音源方式の原理について説明する。
なお、音源処理プログラムの転送動作については後述す
る。 <PCM方式による音源処理>図18は、PCM方式に
よる音源処理が実行される場合の動作フローチャートで
ある。フロー中の各変数は、MCPU 101又はSCPU 1
02のRAM206、306上の図14のいずれかの発
音チャネル領域に記憶される図15、図16のテーブル
1のPCMフォーマットの各データである。
【0066】外部メモリ116(図1)上のPCM波形
データが記憶されているアドレスのうち、現在の処理の
対象とされる波形データが記憶されているアドレスを図
21に示す(AI,AF )とする。
【0067】まず、現在のアドレスにピッチデータ(P
I,PF )が加算される(S1901)。このピッチデータ
は、図7の鍵盤キー702等において押鍵操作された鍵
の種類に対応している。
【0068】そして、加算されたアドレスの整数部AI
が変わったか否かが判定される(S1902)。判定がNO
ならば、図21のアドレス(AI +1)及びAI におけ
るそれぞれのサンプルデータXN とXP との差である差
分値Dを用いて、D×AF なる演算処理により、アドレ
スの小数部AF に対応する補間データ値Oが計算される
(S1907)。なお、差分値Dは、今回以前のインタラプ
トタイミングにおける音源処理により求まっている(後
述するS1906参照)。
【0069】そして、上記補間データ値Oにアドレスの
整数部AI に対応するサンプルデータXP が加算され、
現在のアドレス(AI,AF )に対応する新しいサンプル
データO(図21のXQ に相当する)が得られる(S19
08)。
【0070】この後、このサンプルデータにエンベロー
プ値Eが乗算され(S1909)、得られたOの内容がMCP
U 101又はSCPU 102のRAM206又は306内
の波形データバッフアB(図17参照)に加算される
(S1910)。
【0071】その後、図9のメインフローに戻り、次の
サンプリング周期でインタラプトが掛かって、図18の
音源処理の動作フローチャートがふたたび実行され、現
在アドレス(AI,AF )にピッチデータ(PI,PF )が
加算される(S1901)。
【0072】以上の動作がアドレスの整数部AI が変わ
る(S1902)まで繰り返される。この間、サンプルデー
タXP 及び差分値Dは更新されず、補間データOのみが
アドレスAF に応じて更新され、その都度サンプルデー
タXQ が得られる。
【0073】次に、S1901で現在アドレス(AI,AF )
にピッチデータ(PI,PF )が加算された結果、現在ア
ドレスの整数部AI が変化したら(S1902)、アドレス
AIがエンドアドレスAE に達しているか又は越えてい
るか否かが判定される(S1903)。
【0074】判定がYESならば、次のループ処理が行
われる。すなわち、エンドアドレスAE を越えた分のア
ドレス(AI −AE )がループアドレスAL に加算さ
れ、それにより得られた新しい現在アドレスの整数部A
I からループ再生が開始される(S1904)。エンドアド
レスAE とは、PCM波形データの最後の波形サンプル
データが記憶されている外部メモリ116(図1)上の
アドレスである。また、ループアドレスAL とは、演奏
者が波形の出力を繰り返したい位置のアドレスであり、
上記動作により、PCM方式で周知のループ処理が実現
される。
【0075】S1903の判定がNOならば、上記ステップ
S1904の処理は実行されない。次に、サンプルデータの
更新が行われる。ここでは、外部メモリ116(図1参
照)から、新しく更新された現在アドレスAI と1つ手
前のアドレス(AI −1)に対応する各サンプルデータ
が、それぞれXN 及びXP として読み出される(S190
5)。
【0076】更に、今までの差分値が、更新した上記X
N とXP との差分値Dに更新される(S1906)。これ以
後の動作は前述した通りである。
【0077】以上のようにして、1発音チャネル分のP
CM方式による波形データが生成される。 <DPCM方式による音源処理>次に、DPCM方式に
ついて説明する。
【0078】まず、図22を用いて、DPCM方式の動
作原理の概略を説明する。同図において、外部メモリ1
16(図1)のアドレスAI に対応するサンプルデータ
XP は、アドレスAI の1つ前の特には図示しないアド
レス(AI −1)に対応するサンプルデータとの差分値
から求めた値である。
【0079】外部メモリ116(図1)のアドレスAI
には、次の差分値Dが書き込まれているので、次のアド
レスのサンプルデータはXP +Dで求まり、これが新た
なサンプルデータXP としておきかわる。この場合、現
在アドレスを、図22のようにAF とすれば、現在アド
レスAFに対応するサンプルデータは、XP +D×AF
で求まる。
【0080】このように、DPCM方式では、現在のア
ドレスと、次のアドレスに対応するサンプルデータ間の
差分値Dが外部メモリ116(図1)から読み出され、
現在のサンプルデータに加算されて、次のサンプルデー
タが求められることにより、順次波形データが作成され
る。
【0081】このようなDPCM方式を採用すると、隣
接する標本間の差分値が一般に小さい音声や楽音等のよ
うな波形を量子化する場合、通常のPCM方式に比較し
て、はるかに少ないビット数で量子化を行える。
【0082】以上のDPCM方式による音源処理が実行
される場合の動作フローチャートを図19、図20に示
す。フロー中の各変数は、MCPU 101のRAM206
又はSCPU 102のRAM306上の図14のいずれか
の発音チャネル領域に記憶される図15のテーブル1の
DPCMフォーマットの各データである。
【0083】外部メモリ116(図1)上のDPCM差
分波形データが記憶されているアドレスのうち、現在の
処理の対象とされるデータが記憶されているアドレス
を、図22に示す(AI,AF )とする。
【0084】まず、現在アドレス(AI,AF )に、ピッ
チデータ(PI,PF )が加算される(S2001)。そし
て、加算されたアドレスの整数部AI が変化したか否か
が判定される(S2002)。判定がNOならば、図22の
アドレスAI における差分値Dを用いて、D×AF なる
演算処理により、アドレスの小数部AF に対応する補間
データ値Oが演算される(S2014)。なお、差分値D
は、今回以前のインタラプトタイミングにおける音源処
理により求まっている(後述するS2006とS2010参
照)。
【0085】次に、上記補間データ値Oにアドレスの整
数部AI に対応するサンプルデータXP が加算され、現
在アドレス(AI,AF )に対応する新しいサンプルデー
タO(図22のXQ に対応)が得られる(S2015)。
【0086】この後、このサンプルデータにエンベロー
プ値Eが乗算され(S2016)、得られたOの内容がMCP
U 101のRAM206又はSCPU 102のRAM30
6内の波形データバッフアB(図17参照)に加算され
る(S2017)。
【0087】その後、図9のメインフローに戻り、次の
サンプリング周期でインタラプトが掛かり、図19、図
20の音源処理の動作フローチャートが再び実行され、
現在アドレス(AI,AF )にピッチデータ(PI,PF )
が加算される(S2001)。
【0088】以上の動作が、アドレスの整数部AI に変
化が生ずるまで繰り返される。この間、サンプルデータ
XP 及び差分値Dは更新されず、補間データOのみがア
ドレスAF に応じて更新されて、その都度新たなサンプ
ルデータXQ が得られる。
【0089】次に、S2001で現在アドレス(AI,AF )
にピッチデータ(PI,PF )が加算された結果、現在ア
ドレスの整数部AI が変化したら(S2002)、アドレス
AIがエンドアドレスAE に達しているか或いは越えて
いるか否かが判定される(S2003)。
【0090】判定がNOの場合、以下のS2004〜S2007
のループ処理により、現在アドレスの整数部AI に対応
するサンプルデータが計算される。すなわち、まず、旧
AIという変数(図15のテーブル1のDPCMの欄参
照)には、現在アドレスの整数部AI が変化する前の値
が格納されている。この値の格納は、後述するS2006又
はS2013の処理の繰り返しにより実現される。この旧A
I の値がS2006で順次インクリメントされながら、S20
07で旧AI により指示される外部メモリ116(図1)
上の差分波形データがDとして読み出され、S2005にお
いて順次サンプルデータXP に累算される。そして、旧
AI の値が変化後の現在アドレスの整数部AI に等しく
なった時点で、サンプルデータXP の値は変化後の現在
アドレスの整数部AI に対応する値となる。
【0091】このようにして、現在アドレスの整数部A
I に対応するサンプルデータXP が求まると、S2004の
判定がYESとなり、前述の補間値の演算処理(S201
4)に移る。
【0092】上述の音源処理が各インタラプトタイミン
グ毎に繰り返され、S2003の判定がYESに変化した
ら、次のループ処理に入る。まず、エンドアドレスAE
を越えた分のアドレス(AI −AE )がループアドレス
AL に加算され、得られたアドレスが新たな現在アドレ
スの整数部AI とされる(S2008)。
【0093】以下、ループアドレスAL からどれだけア
ドレスが進んだかによって、何回か差分値Dを累算する
操作が繰り返されることにより、新たな現在アドレスの
整数部AI に対応するサンプルデータXP が計算され
る。すなわち、まず、初期設定としてサンプルデータX
P が予め設定されているループアドレスAL におけるサ
ンプルデータXPL(図15のテーブル1のDPCMの欄
参照)の値とされ、また、旧AI がループアドレスAL
の値とされる(S2009)。そして、以下のS2010〜S20
13の処理が繰り返される。すなわち、旧AI の値がS20
13で順次インクリメントされながら、S2010で旧AI に
より指示される外部メモリ116(図1)上の差分波形
データがDとして読み出され、S2012において順次サン
プルデータXP に累算される。そして、旧AI の値が新
たな現在アドレスの整数部AI に等しくなった時点で、
サンプルデータXP の値はループ処理後の新たな現在ア
ドレスの整数部AI に対応する値となる。
【0094】このようにして、新たな現在アドレスの整
数部AI に対応するサンプルデータXP が求まると、S
2011の判定がYESとなって、前述の補間値の演算処理
(S2014)に移る。
【0095】以上のようにして、1発音チャネル分のD
PCM方式による波形データが生成される。 <FM変調方式による音源処理>次に、FM変調方式に
よる音源処理について説明する。
【0096】FM変調方式では、通常、図24のOP1,OP
2 で示されるような、オペレータと呼ばれる同一機能を
有するハードウエア又はソフトウエアのモジュールが用
いられ、それらが同図に示されるような接続規則で相互
に接続されることにより、楽音の生成が行われる。本実
施例では、ソフトウエア処理によりFM変調方式を実現
するものである。
【0097】図23は、2オペレータのFM変調方式に
よる音源処理が実行される場合の動作フローチャートで
ある。処理のアルゴリズムは図24で示される。また、
フロー中の各変数は、MCPU 101又はSCPU 102の
RAM206、306上の図14のいずれかの発音チャ
ネル領域に記憶される、図16のテーブル1のFMフォ
ーマットの各データである。
【0098】最初に、モジュレータであるオペレータ2
(OP2) の処理が行われる。ピッチ処理については、PC
M方式のように補間が行われないので、整数アドレスA
2 のみである。すなわち、外部メモリ116(図1)に
は変調用の波形データが十分に細かい歩進間隔で記憶さ
れているものとする。
【0099】まず、現在アドレスA2 にピッチデータP
2 が加算される(S2401)。次に、このアドレスA2 に
フィードバック出力FO2が変調入力として加算され、新
たなアドレスAM2が得られる(S2402)。フィードバッ
ク出力FO2は、前回のインタラプトタイミングにおいて
後述するS2405の処理が実行されることにより得られて
いる。
【0100】更に、アドレスAM2(位相)に対応する正
弦波の値が計算される。実際には、外部メモリ116
(図1)に正弦波データが記憶されており、上記アドレ
スAM2でその正弦波データをテーブル引きすることによ
り得られる(S2403)。
【0101】続いて、上記正弦波データにエンベロープ
値E2 が乗算され出力O2 が得られる(S2404)。この
後、この出力O2 にフィードバック・レベルFL2が乗算
されフィードバック出力FO2が得られる(S2405)。こ
の出力FO2は、本実施例の場合、次回のインタラプトタ
イミングにおけるオペレータ2(OP2) への入力とされ
る。
【0102】また、O2 にモジュレーション・レベルM
L2が乗算されて、モジュレーション出力MO2が得られる
(S2406)。このモジュレーション出力M02は、オペレ
ータ1(OP1) への変調入力になる。
【0103】次に、オペレータ1(OP1) の処理に移る。
この処理は、フィードバック出力による変調入力が無い
他は、殆ど上述のオペレータ2の場合と同じである。ま
ず、オペレータ1の現在アドレスA1 にピッチデータP
1 が加算され(S2407)、この値に上述のモジュレーシ
ョン出力MO2が加算されて新たなアドレスAM1が得られ
る(S2408)。
【0104】次に、このアドレスAM1(位相)に対応す
る正弦波の値が外部メモリ116(図1)から読み出さ
れ(S2409)、これにエンベロープ値E1 が乗算され楽
音波形出力O1 が得られる(S2410)。
【0105】そして、これがRAM206(図2)又は
306(図3)内のバッファB(図17参照)に加算さ
れて(S2411)、1発音チャネル分のFM変調処理を終
了する。 <TM変調方式による音源処理>次に、TM変調方式に
よる音源処理について説明する。
【0106】まず、TM変調方式の原理について説明す
る。前述のFM変調方式は、 e=A・sin{ωct+I(t)・sinωmt} なる演算式を基本とする。ここで、ωctは搬送波位相角
(搬送信号)、sin ωmtは変調波位相角(変調信号)、
及びI(t)は変調指数である。
【0107】これに対し、本実施例でTM変調方式と呼
ぶ位相変調方式は、 e =A・fT{ fc(t)+I(t)・sinωmt} なる演算式を基本とする。ここで、fT(t) は三角波関数
であり、各位相角の領域毎に次のような関数で定義され
る(ただし、ωは入力)。
【0108】 fT(ω)=2/π・ω ・・・( 領域:0≦ω≦π/2) fT(ω)=−1+2/π(3π/2−ω) ・・・( 領域:π/2≦ω≦3π/2) fT(ω)=−1+2/π( ω−3 π/2) ・・・( 領域:3π/2≦ω≦2π) また、fcは変形サイン波と呼ばれ、各位相角の領域毎
に、異なるサイン波形データの記憶されている外部メモ
リ116(図1)を、搬送位相角ωct でアクセスして
得られる搬送信号生成関数である。各位相角の領域毎の
fcは、次のように定義される。
【0109】 fc(t)=(π/2)sinωct ・・・(領域:0≦ωct≦π/2) fc(t)=π−(π/2)sinωct ・・・(領域:π≦ωct≦3π/2) fc(t)=2π+(π/2)sinωct ・・・(領域:3π/2≦ωct≦2π) TM変調方式では、上述の如き関数fc(t) で生成される
搬送信号に、変調信号sin ωmtを変調指数I(t)で示され
る割合で加算して得た加算信号により、前述の三角波関
数が変調される。これにより、変調指数I(t)の値が0で
あれば正弦波を生成することができ、I(t)の値を大きく
してゆけば非常に深く変調された波形を生成することが
できる。ここで、変調信号sin ωmtの代わりに様々な信
号を用いることができ、以下に述べるように、前回演算
時の自分のオペレータ出力を一定のフィードバックレベ
ルでフィードバックさせたり、他のオペレータの出力を
入力させたりすることができる。
【0110】このような原理のもとでTM変調方式によ
る音源処理が実行される場合の動作フローチャートを図
25に示す。この場合も、図23のFM変調方式の場合
と同様、2オペレータで音源処理を行う場合の例であ
り、処理のアルゴリズムは図26で示される。また、フ
ロー中の各変数は、MCPU 101又はSCPU 102のR
AM206、306上の図14のいずれかの発音チャネ
ル領域に記憶される、図16のテーブル1のTMフォー
マットの各データである。
【0111】最初に、モジュレータであるオペレータ2
(OP2) の処理が行われる。ピッチ処理については、PC
M方式のように補間が行われないので、整数アドレスA
2 のみである。
【0112】まず、現在アドレスA2 にピッチデータP
2 が加算される(S2601)。次に、変形サイン変換fcに
より、上記アドレスA2 (位相)に対応する変形サイン
波が外部メモリ116(図1)から読み出され、搬送信
号がO2 として生成される(S2602)。
【0113】続いて、搬送信号である上述のO2 に、変
調信号としてフィードバック出力FO2(S2606)が加算
され、新たなアドレスが得られてO2 とされる(S260
3)。フィードバック出力FO2は、前回のインタラプト
タイミングにおいて後述するS2606の処理が実行される
ことにより得られている。
【0114】そして、上述の加算アドレスO2 に対応す
る三角波の値が計算される。実際には、外部メモリ11
6(図1)に前述した三角波データが記憶されており、
上記アドレスO2 でその三角波データをテーブル引きす
ることにより得られる(S2604)。
【0115】続いて、上記三角波データにエンベロープ
値E2 が乗算され出力O2 が得られる(S2605)。この
後、この出力O2 にフィードバック・レベルFL2が乗算
されフィードバック出力FO2が得られる(S2607)。こ
の出力FO2は、本実施例の場合、次回のインタラプトタ
イミングにおけるオペレータ2(OP2) への入力とされ
る。
【0116】また、O2 にモジュレーション・レベルM
L2が乗算されて、モジュレーション出力MO2が得られる
(S2607)。このモジュレーション出力M02は、オペレ
ータ1(OP1) への変調入力になる。
【0117】次に、オペレータ1(OP1) の処理に移る。
この処理は、フィードバック出力による変調入力が無い
他は、殆ど上述のオペレータ2の場合と同じである。ま
ず、オペレータ1の現在アドレスA1 にピッチデータP
1 が加算され(S2608)、得られた値に対して前述の変
形サイン変換が行われて搬送信号がO1 として得られる
(S2609)。
【0118】次に、このO1 に上述のモジュレーション
出力MO2が加算されて新たなO1 とされ(S2610)、こ
の値O1 が三角波変換され(S2611)、更にエンベロー
プ値E1 が乗算されて楽音波形出力O1 が得られる(S
2612)。
【0119】これがRAM206(図2)又は306
(図3)内のバッファB(図17参照)に加算され(S
2613)、1発音チャネル分のTM変調処理を終了する。
以上、PCM、DPCM、FM、TMという4つの各種
音源方式が実行される場合の動作原理を説明した。この
中でFMとTMの2方式は変調方式であり、上述の例で
はいずれも、図24、図26に示すアルゴリズムに基づ
く2オペレータによる処理であるが、実際に演奏時の音
源処理は、オペレータの数がもっと多く、アルゴリズム
はより複雑であってもよい。 <音源処理プログラムの転送動作>最後に、本発明に関
連する音源処理プログラムの転送動作につき説明する。
【0120】前述したように、音色等の設定に応じて、
各発音チャネル毎にPCM、DPCM、FM又はTM等
の異なる音源方式を割り当てることができる。そして、
音色等の設定が行われた場合、8チャネル分の音源方式
が定まった音源処理プログラムが一括して、外部メモリ
116(図1)からプログラムメモリ201(図2)又
はプログラムRAM301にロードされる。これによ
り、各発音チャネル毎にどの音源方式で楽音を生成する
かという判別処理を行うことが不要となる。
【0121】この場合、MCPU 101のプログラムメモ
リ201は、ROM部分とRAM部分とからなってお
り、ROM部分には予め図9のメインフローのプログラ
ムが格納されている。これに対して、RAM部分には、
音色設定時等において、図10のインタラプト処理のプ
ログラムが図1の外部メモリ116から一括して転送さ
れる。また、SCPU 102のプログラムRAM301に
も、同様に図11のインタラプト処理のプログラムが転
送される。
【0122】図27に外部メモリ116上に予め格納さ
れる各種音源処理プログラムのデータ配置を、図28に
MCPU 101内のプログラムメモリ201のRAM部
分、又はSCPU 102内のプログラムRAM301のデ
ータ配置をそれぞれ示す。
【0123】今、演奏者が図7の機能キー701により
音色設定等を行うと、本実施例による楽音波形発生装置
は、例えば、MCPU 101及びSCPU 102上の楽音生
成を行うための8つの発音チャネルのそれぞれで、例え
ば全ての発音チャネルでPCM方式により楽音生成を行
う、又はTM方式により楽音生成を行う、或いは1〜3
チャネルでFM方式により、4〜6チャネルでTM方式
により、7〜8チャネルでPCM方式により楽音生成を
行う、というように機能することができる。
【0124】そして、外部メモリ116上には、例えば
全ての発音チャネルでPCM方式により楽音生成を行う
ための図13の動作フローチャートに基づく8チャネル
分連続の音源処理プログラム、又はTM方式により楽音
生成を行うための8チャネル分連続の音源処理プログラ
ム、或いは1〜3チャネルでFM方式により、4〜6チ
ャネルでTM方式により、7〜8チャネルでPCM方式
により楽音生成を行うための8チャネル分連続の音源処
理プログラムが、図27のように、外部メモリ116上
の独立したアドレス領域に格納されている。
【0125】この場合のデータ配置は、図27のように
16ビット単位となっている。これは、外部メモリ11
6等として汎用のROMなどを使用した場合に、16ビ
ット単位のものが多いので、それに対応可能とするため
である。そして、16ビット単位で割り振られた各アド
レス領域に、上述した音源処理プログラムが格納されて
いる。
【0126】これに対して、プログラムメモリ201の
RAM部分及びプログラムRAM301のデータ配置
は、図28のように28ビット単位のネクストアドレス
方式のプログラムデータとなっている。
【0127】そして、プログラムメモリ201上では、
28ビット単位で割り振られた例えばアドレス1BFF〜1F
FF(16進表現)に、前述した8チャネル分連続の音源
処理プログラムが、外部メモリ116から転送される。
なお、アドレス1BFFより前のアドレス部分は、図9のメ
インフローに対応するプログラムを格納するためのRO
M領域である。
【0128】ここで、外部メモリ116からプログラム
メモリ201への音源処理のプログラムデータの転送時
には、後述する図2のコマンド解析部207及びメモリ
アドレス制御部205が、両者のアドレスを同期させて
いる。
【0129】以上の動作は、プログラムRAM301に
対しても同様に行われる。但し、プログラムRAM30
1は音源処理を行うだけであるため、図9のメインフロ
ーを格納するためのROM領域はない。
【0130】次に、上記データ配置に基づく具体的な音
源処理プログラムの転送動作について、図29の動作タ
イミングチャートを用いて説明する。この転送動作は、
図2のMCPU 101内のコマンド解析部207が中心と
なって、特には図示しない発振器から発生する図29
(a) の原発振クロックから生成される同図(b),(c) の2
相クロックCK2及びCK1に同期して実行するものと
する。
【0131】まず、演奏者が図7の機能キー701で音
色設定の動作を行うと、コマンド解析部207は、図9
のステップS903 の機能キー処理において、図29(i)
のタイミングで音源処理プログラム転送命令の実行を開
始する。以下の動作は、全てコマンド解析部207が上
記転送命令を実行する動作として実現される。
【0132】まず、コマンド解析部207は、設定され
た音色に対応する音源処理グループを判定し、それに対
応する8チャネル分の連続する音源処理プログラムが格
納されている外部メモリ116上の先頭アドレスを決定
する。
【0133】続いて、コマンド解析部207は、上記先
頭アドレスから図29(d) のように順次インクリメント
されるアドレス信号を、図2の外部メモリアクセス用ア
ドレスバスインタフェース215、アドレスバスMA等
を介して外部メモリ116に供給する。これによって、
図27の16ビット単位で割り振られた、設定された音
色に対応する8チャネル分の連続する音源処理プログラ
ムが格納されているアドレスが順次指定され、連続する
16ビット及び12ビットの有効データからなるプログ
ラムデータPRGが、図27のa,a´,b,b´,・
・・のように順次出力される。
【0134】これら16ビットの有効データ及び12ビ
ットの有効データともに、図1の16ビットのデータバ
スMDから図2のMCPU 101の外部メモリデータバス
インタフェース216に入力し、内部バスを介してプロ
グラムメモリ201に転送される。
【0135】これと共に、コマンド解析部207は、図
29(h) のようにハイレベルに立ち上がったアドレス切
替信号Cを、図2のMCPU 101のメモリアドレス制御
部205及び図3のSCPU 102のRAMアドレス制御
部305とゲート回路314に出力する。メモリアドレ
ス制御部205は、アドレス切替信号Cがハイレベルの
場合には、楽音生成用のプログラムアドレスは生成せ
ず、図29(e) のように順次インクリメントされるA0
〜A12の13ビットからなるアドレス信号ADRを出力
する。このアドレス信号ADRは、プログラムアドレス
デコーダ202に入力される。
【0136】また、アドレス切替信号Cがハイレベルで
あることにより、図3のゲート回路314は、外部メモ
リ116から図2のMCPU 101を介して転送されてき
た音源処理のプログラムデータPRGを選択してプログ
ラムRAM301に入力すると共に、上述のアドレス信
号ADRを選択してRAMアドレス制御部305に送
る。そして、同制御部305は、それをそのままRAM
アドレスデコーダ302に入力する。これにより、図2
8の28ビット単位で割り振られたアドレス1BFF〜1FFF
が順次指定される。
【0137】同時に、コマンド解析部207は、図29
(h) のようなアップダウン指示信号UDと、それに同期
した図29(i) のようなライト信号〜Wを、プログラム
メモリ201及びゲート回路314からプログラムRA
M301に供給する。
【0138】以上の制御動作によって、外部メモリ11
6から出力される音源処理のプログラムデータPRGの
連続する16ビット及び12ビットの2データずつが、
プログラムメモリ201及びプログラムRAM301上
の各アドレス(13ビットのアドレス信号ADRで定ま
る)の下位16ビットと上位12ビット(アップダウン
指示信号UDで定まる)に順次格納されてゆく。
【0139】以上のようにして、メモリアドレス制御部
205がプログラムアドレスデコーダ202及びRAM
アドレスデコーダ302に対して指定する13ビットの
アドレス信号ADRが、図29(e) のように1FFFまでイ
ンクリメントされ、8チャネル分の連続する音源処理の
プログラムデータPRGの転送が終了したら、その旨が
同制御部205からコマンド解析部207に通知され
る。これにより、同解析部207は、図29(d) のよう
に外部メモリ116に対するアドレス信号の発生を終了
し、同時に図29(f),(g),(h) のようにアップダウン指
示信号UD、ライト信号〜W及びアドレス切替信号Cを
ローレベルに戻す。
【0140】以上の処理動作が、コマンド解析部207
が、図9のステップS903 の機能キー処理において図2
9(i) の音源処理プログラム転送命令を実行することに
より実現される。なお、上述の処理動作中は、図2のコ
マンド解析部207は、インタフェース制御部203に
対して、音源処理のためのインタラプト信号を発生しな
いように制御を行う。
【0141】上述の動作以後、転送された音源処理プロ
グラムに基づいて各発音チャネル毎に任意の音源方式で
楽音生成が実行される。上述の動作において、選択され
る8チャネル分連続の音源処理プログラムによっては、
プログラム容量が異なるが、本実施例では、プログラム
メモリ201又はプログラムRAM301上には最大プ
ログラム容量分の領域が確保され、上述のプログラム転
送も無条件に最大プログラム容量分だけ実行される。従
って、選択されたプログラムによっては、余分なプログ
ラム部分が転送されることになるが、8チャネル分連続
の音源処理プログラムの最後には終了命令が格納されて
おり、それが実行されることにより、以後の余分なプロ
グラム部分は実行されないため問題は生じない。
【0142】また、上述の音源処理プログラムには、図
10に対応するMCPU インタラプト処理のプログラム又
は図11に対応するSCPU インタラプト処理のプログラ
ムの部分まで含まれる。従って、プログラムメモリ20
1へのプログラム転送とプログラムRAM301へのプ
ログラム転送とでは、厳密には前者の方が、図10のス
テップS1012〜S1014’に対応する処理の分だけプログ
ラムステップ数が多いが、上述の転送動作では、プログ
ラムメモリ201及びプログラムRAM301の両者と
も図10に対応する同一のプログラムが転送される。そ
こで、同プログラムにおいて、ステップS1012にさしか
かる境界部分に特殊命令を挿入しておき、図3のSCPU
102のコマンド解析部307は、プログラムRAM3
01から上記特殊命令を読み出したら、その時点でSCP
U インタラプト処理を終了してMCPU 101に対してS
CPU 処理終了信号B(図1参照)を出力する。従って、
SCPU 102側では、上述の余分なプログラム部分は実
行されない。
【0143】以上のようにして、音色設定時等に8チャ
ネル分の連続する音源処理プログラムを一括して外部メ
モリ116からプログラムメモリ201及びプログラム
RAM301にロードすることにより、各発音チャネル
毎にどの音源方式で楽音を生成するかという判別処理を
行うことが不要となり、図10又は図11のインタラプ
ト処理の実行時間を短縮化できる。これにより、演奏情
報を処理するための図9のメインフローのプログラムの
実行時間を多くとることができ、楽音生成の応答性能を
向上させることが可能となる。 <他の実施例の態様>上述の実施例では、演奏者が図7
の機能キー701で音色設定の動作を行ったときに、図
9のステップS903 の機能キー処理において音源処理プ
ログラム転送命令を実行するようにしたが、音色設定以
外の操作を行った場合に実行するようにしてもよい。ま
た、電源オン時等に自動的に実行される構成にすること
もできる。
【0144】また、以上説明してきた本発明の一連の実
施例では、図1に示される如く、MCPU 101とSCPU
102という2つのCPUが異なる発音チャネルを分担
して処理するようにしたが、CPUの数は1つでも、ま
た、3つ以上でもよい。
【0145】更に、図2のMCPU 101の入力ポート2
10には、図7及び図8のような楽器操作部のほかに様
々な操作部を接続することが可能であり、これにより種
々の形態の電子楽器を実現できる。また、他の電子楽器
からの演奏情報を入力して音源処理のみを行う音源モジ
ュールとして実現することも容易である。
【0146】
【発明の効果】本発明によれば、プログラム実行手段
は、所定時間間隔毎に各発音チャネルの楽音生成を行う
場合、音色設定時等に音源処理プログラム転送制御手段
により予め実行用プログラム記憶手段に転送された全発
音チャネル分連続した音源処理プログラムを一括して実
行することが可能となる。
【0147】これにより、各発音チャネル毎にどの音源
方式で楽音を生成するかという判別処理を行うことが不
要となり、分岐命令の数を削減することが可能となるた
め、同時に発音可能な発音チャネル数を増加させること
ができる等、楽器の性能を向上させることが可能とな
る。
【図面の簡単な説明】
【図1】本発明による実施例の全体構成図である。
【図2】マスターCPUの内部構成図である。
【図3】スレーブCPUの内部構成図である。
【図4】従来のD/A変換器部の構成図である。
【図5】本実施例によるD/A変換器部の構成図であ
る。
【図6】D/A変換におけるタイミングチャートであ
る。
【図7】機能キーと鍵盤キーの配置図である。
【図8】鍵盤キーの説明図である。
【図9】メイン動作フローチャートである。
【図10】MCPU インタラプト処理の動作フローチャー
トである。
【図11】SCPU インタラプト処理の動作フローチャー
トである。
【図12】メイン動作フローチャートとインタラプト処
理の関係を示す概念図である。
【図13】音源処理の動作フローチャートである。
【図14】RAM上の発音チャネル別の記憶領域を示す
図である。
【図15】RAM上の音源方式別のデータフォーマット
の構成図(その1)である。
【図16】RAM上の音源方式別のデータフォーマット
の構成図(その2)である。
【図17】RAM上のバッフア領域を示す図である。
【図18】PCM方式による音源処理の動作フローチャ
ートである。
【図19】DPCM方式による音源処理の動作フローチ
ャート(その1)である。
【図20】DPCM方式による音源処理の動作フローチ
ャート(その2)である。
【図21】PCM方式で差分値Dと現在アドレスAF を
用いて補間値XQ を求める場合の原理説明図である。
【図22】DPCM方式で差分値Dと現在アドレスAF
を用いて補間値XQ を求める場合の原理説明図である。
【図23】FM方式による音源処理の動作フローチャー
トである。
【図24】FM方式による音源処理のアルゴリズムを示
す図である。
【図25】TM方式による音源処理の動作フローチャー
トである。
【図26】TM方式による音源処理のアルゴリズムを示
す図である。
【図27】外部メモリ116のデータ配置図である。
【図28】プログラムメモリ201、プログラムRAM
301のデータ配置図である。
【図29】音源処理プログラム転送の動作タイミングチ
ャートである。
【符号の説明】
101 マスターCPU 102 スレーブCPU 103 MCPU 外部メモリアクセス用アドレスラッ
チ部 104 SCPU 外部メモリアクセス用アドレスラッ
チ部 105 アクセス用アドレス競合回避回路 106 外部メモリセレクタ部 107 Left D/A変換器部 108 Right D/A変換器部 109 入力ポート 110 出力ポート 111、112 出力端子 113 レフト出力端子 114 ライト出力端子 115 外部メモリデータイン端子 116 外部メモリ 201 プログラムメモリ 202 メモリアドレスデコーダ 203 インタラプト制御部 204、205、304、305 RAMアドレス
制御部 206、306 RAM 207、307 コマンド解析部 208、308 ALU部 209、309 乗算器 210 入力ポート 211 出力ポート 212 SCPU 内部RAMアドレス指定バス・イン
タフェース 213 SCPU への書き込みデータバス・インタフ
ェース 214 SCPU からの読み込みデータバス・インタ
フェース 215 外部メモリアクセス用アドレスバス・イン
タフェース 216 外部メモリデータバス・インタフェース 217 D/Aデータ転送バス・インタフェース 218 プログラムROM 219 イニシャル転送制御部 301 プログラムRAM 302 RAMアドレス制御部 303 MCPU によるSCPU 内部RAMアドレス指
定バス・インタフェース 310 MCPU よりの書き込みデータバス・インタ
ーフェース 311 MCPU への読み出しデータバス・インタフ
ェース 312 外部メモリアクセス用アドレスバス・イン
タフェース 313 外部メモリデータバス・インタフェース 314 ゲート回路 401、501 ラッチ 402 D/A変換器 701 機能キー 702 鍵盤キー A SCPU リセット解除信号(処理開始信号) B SCPU 処理終了信号 C アドレス切替信号 Ma SCPU 内部RAMアドレス指定バス Dout MCPU がSCPU へ書き込むデータバス Din MCPU がSCPU へ読み込むデータバス MA MCPU が外部メモリを指定するアドレスバス SA SCPU が外部メモリを指定するアドレスバス MD MCPU が外部メモリから読み込むデータバス SD SCPU が外部メモリから読み込むデータバス PRG プログラムデータ ADR アドレス信号 UD アップダウン指示信号 〜W ライト信号
───────────────────────────────────────────────────── フロントページの続き (72)発明者 斯波 康祐 東京都西多摩郡羽村町栄町3丁目2番1号 カシオ計算機株式会社羽村技術センター 内 (72)発明者 小倉 和夫 東京都西多摩郡羽村町栄町3丁目2番1号 カシオ計算機株式会社羽村技術センター 内 (72)発明者 細田 潤 東京都西多摩郡羽村町栄町3丁目2番1号 カシオ計算機株式会社羽村技術センター 内

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 所定時間間隔で、複数の各発音チャネル
    毎に、複数の音源方式のうち任意の音源方式の音源処理
    プログラムを実行して楽音信号を生成するプログラム実
    行手段を含む楽音波形発生装置において、 前記全発音チャネル分連続して実行される音源処理プロ
    グラムを、前記全発音チャネルの音源方式の組合せ毎に
    複数組保存する保存用プログラム記憶手段と、 前記所定時間間隔毎に、前記プログラム実行手段によ
    り、前記全発音チャネル分連続して実行される音源処理
    プログラムを記憶する実行用プログラム記憶手段と、 前記保存用プログラム記憶手段から前記全発音チャネル
    分連続して実行される音源処理プログラムの任意の組を
    読み出して前記実行用プログラム記憶手段に転送する音
    源処理プログラム転送制御手段と、 を有することを特徴とする楽音波形発生装置。
  2. 【請求項2】 所定時間間隔で、複数の各発音チャネル
    毎に、複数の音源方式のうち任意の音源方式の音源処理
    プログラムを実行して楽音信号を生成するプログラム実
    行手段を含む複数のプロセッサで構成される楽音波形発
    生装置において、 前記各プロセッサ毎に全発音チャネル分連続して実行さ
    れる音源処理プログラムを、前記全発音チャネルの音源
    方式の組合せ毎に複数組保存する保存用プログラム記憶
    手段と、 前記各プロセッサ毎に設けられ、前記所定時間間隔毎
    に、前記各プロセッサのプログラム実行手段により、前
    記各プロセッサの全発音チャネル分連続して実行される
    音源処理プログラムを記憶する実行用プログラム記憶手
    段と、 前記保存用プログラム記憶手段から前記全発音チャネル
    分連続して実行される音源処理プログラムの任意の組を
    読み出して前記各プロセッサの実行用プログラム記憶手
    段に転送する音源処理プログラム転送制御手段と、 を有することを特徴とする楽音波形発生装置。
JP6324458A 1994-12-27 1994-12-27 楽音波形発生装置 Expired - Fee Related JP2678974B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6324458A JP2678974B2 (ja) 1994-12-27 1994-12-27 楽音波形発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6324458A JP2678974B2 (ja) 1994-12-27 1994-12-27 楽音波形発生装置

Publications (2)

Publication Number Publication Date
JPH07319471A true JPH07319471A (ja) 1995-12-08
JP2678974B2 JP2678974B2 (ja) 1997-11-19

Family

ID=18166043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6324458A Expired - Fee Related JP2678974B2 (ja) 1994-12-27 1994-12-27 楽音波形発生装置

Country Status (1)

Country Link
JP (1) JP2678974B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE37367E1 (en) 1995-06-06 2001-09-18 Yamaha Corporation Computerized music system having software and hardware sound sources
USRE41757E1 (en) 1996-08-30 2010-09-28 Yamaha Corporation Sound source system based on computer software and method of generating acoustic waveform data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59168493A (ja) * 1983-03-16 1984-09-22 ヤマハ株式会社 楽音波形発生装置
JPH02179696A (ja) * 1988-12-29 1990-07-12 Casio Comput Co Ltd 処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59168493A (ja) * 1983-03-16 1984-09-22 ヤマハ株式会社 楽音波形発生装置
JPH02179696A (ja) * 1988-12-29 1990-07-12 Casio Comput Co Ltd 処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE37367E1 (en) 1995-06-06 2001-09-18 Yamaha Corporation Computerized music system having software and hardware sound sources
USRE41757E1 (en) 1996-08-30 2010-09-28 Yamaha Corporation Sound source system based on computer software and method of generating acoustic waveform data

Also Published As

Publication number Publication date
JP2678974B2 (ja) 1997-11-19

Similar Documents

Publication Publication Date Title
USRE31004E (en) Electronic musical instrument utilizing data processing system
US5319151A (en) Data processing apparatus outputting waveform data in a certain interval
US4373416A (en) Wave generator for electronic musical instrument
US5691493A (en) Multi-channel tone generation apparatus with multiple CPU's executing programs in parallel
US4387617A (en) Assigner for electronic musical instrument
EP0463411B1 (en) Musical tone waveform generation apparatus
US5584034A (en) Apparatus for executing respective portions of a process by main and sub CPUS
JP2678974B2 (ja) 楽音波形発生装置
JP2869573B2 (ja) 楽音波形発生装置
JP3006094B2 (ja) 楽音波形発生装置
JP2946762B2 (ja) 楽音波形発生装置
JP2797139B2 (ja) 楽音波形発生装置
JP3035991B2 (ja) 楽音波形発生装置
EP0463409B1 (en) Musical tone waveform generation apparatus
JP3010693B2 (ja) 楽音波形発生装置
US5687105A (en) Processing device performing plural operations for plural tones in response to readout of one program instruction
JP2797142B2 (ja) 電子楽器用処理装置
JPH07325581A (ja) 楽音発生装置
US5403968A (en) Timbre control apparatus for an electronic musical instrument
JP2797137B2 (ja) 電子楽器用処理装置
JP3050779B2 (ja) 信号処理装置
JP3027832B2 (ja) 楽音波形発生装置
JPS6252317B2 (ja)
US5371319A (en) Key assigner for an electronic musical instrument
JP3707908B2 (ja) 電子楽器の効果付加装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19970624

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080801

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080801

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090801

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100801

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees