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

楽音波形発生装置

Info

Publication number
JP3006094B2
JP3006094B2 JP2416903A JP41690390A JP3006094B2 JP 3006094 B2 JP3006094 B2 JP 3006094B2 JP 2416903 A JP2416903 A JP 2416903A JP 41690390 A JP41690390 A JP 41690390A JP 3006094 B2 JP3006094 B2 JP 3006094B2
Authority
JP
Japan
Prior art keywords
program
data
sound source
address
processing
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
Application number
JP2416903A
Other languages
English (en)
Other versions
JPH04348396A (ja
Inventor
広一郎 太期
隆二 宇佐美
康祐 斯波
和夫 小倉
潤 細田
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 JP2416903A priority Critical patent/JP3006094B2/ja
Publication of JPH04348396A publication Critical patent/JPH04348396A/ja
Application granted granted Critical
Publication of JP3006094B2 publication Critical patent/JP3006094B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

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

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 楽音制御データを記憶するデータ記憶手
    段と、所定時間間隔で楽音信号を得るための音源処理プ
    ログラムを実行して前記データ記憶手段上の対応する楽
    音制御データに基づいて楽音信号を生成するプログラム
    実行手段とを各々含む複数のプロセッサで構成され、こ
    れらプロセッサの内の所定のプロセッサが、前記音源処
    理プログラムの実行タイミング以外のタイミングで演奏
    情報を処理するための演奏情報処理プログラムを実行し
    て前記各プロセッサのデータ記憶手段の楽音制御データ
    を制御する楽音波形発生装置において、 前記演奏情報処理プログラム及び前記音源処理プログラ
    ムを保存する不揮発性の保存用プログラム記憶手段と、 前記所定のプロセッサ内に設けられ、該プロセッサにお
    けるプログラム実行時に該プロセッサ内のプログラム実
    行手段によりアクセスされ、前記演奏情報処理プログラ
    ム及び前記音源処理プログラムを記憶する第1の実行用
    プログラム記憶手段と、 前記所定のプロセッサ以外の各プロセッサ内に設けら
    れ、該各プロセッサにおけるプログラム実行時に該各プ
    ロセッサ内のプログラム実行手段によりアクセスされ、
    前記音源処理プログラムを記憶する第2の実行用プログ
    ラム記憶手段と、 前記保存用プログラム記憶手段から前記演奏情報処理プ
    ログラム及び前記音源処理プログラムを読み出して前記
    第1の実行用プログラム記憶手段に転送し、また、前記
    保存用プログラム記憶手段から前記音源処理プログラム
    を読み出して前記第2の実行用プログラム記憶手段に転
    送し、その後に前記所定のプロセッサ内のプログラム実
    行手段の動作を開始させるイニシャル転送制御手段と
    有することを特徴とする楽音波形発生装置。
JP2416903A 1990-12-29 1990-12-29 楽音波形発生装置 Expired - Fee Related JP3006094B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2416903A JP3006094B2 (ja) 1990-12-29 1990-12-29 楽音波形発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2416903A JP3006094B2 (ja) 1990-12-29 1990-12-29 楽音波形発生装置

Publications (2)

Publication Number Publication Date
JPH04348396A JPH04348396A (ja) 1992-12-03
JP3006094B2 true JP3006094B2 (ja) 2000-02-07

Family

ID=18525081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2416903A Expired - Fee Related JP3006094B2 (ja) 1990-12-29 1990-12-29 楽音波形発生装置

Country Status (1)

Country Link
JP (1) JP3006094B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4025501B2 (ja) 2000-03-03 2007-12-19 株式会社ソニー・コンピュータエンタテインメント 楽音発生装置
JP2007286532A (ja) * 2006-04-20 2007-11-01 Kawai Musical Instr Mfg Co Ltd 電子楽器

Also Published As

Publication number Publication date
JPH04348396A (ja) 1992-12-03

Similar Documents

Publication Publication Date Title
USRE31004E (en) Electronic musical instrument utilizing data processing system
US4373416A (en) Wave generator for electronic musical instrument
JPS62200399A (ja) 電子楽器におけるパラメ−タ供給装置
US5340938A (en) Tone generation apparatus with selective assignment of one of tone generation processing modes to tone generation channels
JP3006094B2 (ja) 楽音波形発生装置
JP2678974B2 (ja) 楽音波形発生装置
JP2869573B2 (ja) 楽音波形発生装置
US4562763A (en) Waveform information generating system
JP2946762B2 (ja) 楽音波形発生装置
JPS6356557B2 (ja)
JP3102049B2 (ja) 電子楽器の音色パラメータ編集装置
JP2797139B2 (ja) 楽音波形発生装置
JP2950461B2 (ja) 楽音発生装置
US5687105A (en) Processing device performing plural operations for plural tones in response to readout of one program instruction
JPH0331273B2 (ja)
US5403968A (en) Timbre control apparatus for an electronic musical instrument
JP3027831B2 (ja) 楽音波形発生装置
JP3116447B2 (ja) デジタル信号処理プロセッサ
JPS6352399B2 (ja)
JP3707908B2 (ja) 電子楽器の効果付加装置
JPS6032096A (ja) ノ−トクロック発生装置
JPH0460698A (ja) 楽音波形発生装置
JP2585519B2 (ja) 楽音波形デ−タ発生装置
JPH0127434B2 (ja)
JP2590253B2 (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: 19991026

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

Free format text: PAYMENT UNTIL: 20071126

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091126

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20101126

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees