JP2907040B2 - 波形メモリのテスト機能を備えた音源装置 - Google Patents
波形メモリのテスト機能を備えた音源装置Info
- Publication number
- JP2907040B2 JP2907040B2 JP6336348A JP33634894A JP2907040B2 JP 2907040 B2 JP2907040 B2 JP 2907040B2 JP 6336348 A JP6336348 A JP 6336348A JP 33634894 A JP33634894 A JP 33634894A JP 2907040 B2 JP2907040 B2 JP 2907040B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- sound source
- waveform data
- data
- waveform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【産業上の利用分野】この発明は、波形メモリのテスト
機能を備えた音源装置に関する。
機能を備えた音源装置に関する。
【0002】
【従来の技術】ディジタル処理により楽音を発生する電
子楽器として、音源装置を備え該音源装置をCPU(中
央処理装置)で制御して楽音波形信号を生成させる方式
のものが知られている。音源装置としては、例えば、波
形メモリを備え該波形メモリから波形データを読み出し
て楽音信号を生成する方式のものがある。
子楽器として、音源装置を備え該音源装置をCPU(中
央処理装置)で制御して楽音波形信号を生成させる方式
のものが知られている。音源装置としては、例えば、波
形メモリを備え該波形メモリから波形データを読み出し
て楽音信号を生成する方式のものがある。
【0003】具体的には、LSIである音源チップ(複
数のLSIで構成されていてもよい)とCPUを共通の
バスラインに接続し、音源チップには波形メモリを接続
し、CPUからの命令で音源チップを駆動する。音源チ
ップは、CPUからの命令にしたがって波形メモリをア
クセスし波形データを読み出し出力する。出力された波
形データは、ディジタルアナログ変換器(DAC)でア
ナログ信号に変換され、サウンドシステムにより放音さ
れる。
数のLSIで構成されていてもよい)とCPUを共通の
バスラインに接続し、音源チップには波形メモリを接続
し、CPUからの命令で音源チップを駆動する。音源チ
ップは、CPUからの命令にしたがって波形メモリをア
クセスし波形データを読み出し出力する。出力された波
形データは、ディジタルアナログ変換器(DAC)でア
ナログ信号に変換され、サウンドシステムにより放音さ
れる。
【0004】従来、このような方式の電子楽器の生産工
場における波形メモリのテスト、または電子楽器の修理
に際する波形メモリのテストでは、人が演奏をしてみて
耳で確かめるという方法が採られていた。
場における波形メモリのテスト、または電子楽器の修理
に際する波形メモリのテストでは、人が演奏をしてみて
耳で確かめるという方法が採られていた。
【0005】
【発明が解決しようとする課題】しかしながら、人が演
奏してみてチェックする方法では手間と時間がかかるた
め、波形メモリのテストを自動化したいという要求があ
った。自動化する場合、電子楽器の制御を行なうCPU
によって波形メモリのチェックを行なうことになる。
奏してみてチェックする方法では手間と時間がかかるた
め、波形メモリのテストを自動化したいという要求があ
った。自動化する場合、電子楽器の制御を行なうCPU
によって波形メモリのチェックを行なうことになる。
【0006】ところが、波形メモリは音源チップの側に
接続されており、CPUは音源チップを介してでないと
波形メモリにアクセスすることができない。したがっ
て、チェックの手順としては、CPUから読み出しア
ドレスを所定のレジスタに格納して音源チップに波形メ
モリ読み出し命令を発行する、音源チップがその命令
を実行する、CPUが読み出しデータを取りに行く、
以上の〜を繰返して波形メモリの全データを読み
出し、CPUによりそれらの読み出しデータのチェック
サムを取る、CPUによりチェックサムの結果が正常
かどうかチェックする、という手順となる。
接続されており、CPUは音源チップを介してでないと
波形メモリにアクセスすることができない。したがっ
て、チェックの手順としては、CPUから読み出しア
ドレスを所定のレジスタに格納して音源チップに波形メ
モリ読み出し命令を発行する、音源チップがその命令
を実行する、CPUが読み出しデータを取りに行く、
以上の〜を繰返して波形メモリの全データを読み
出し、CPUによりそれらの読み出しデータのチェック
サムを取る、CPUによりチェックサムの結果が正常
かどうかチェックする、という手順となる。
【0007】しかし、このような方法では、チェックサ
ムを取る時間が非常に長くなるという問題がある。現
在、音源装置の高機能化に伴い、波形メモリの容量はま
すます大容量化しており、今後もさらに大容量化が進む
ものと考えられる。したがって、波形メモリのテストを
短時間に行なう技術は、今後もますます必要とされるも
のである。
ムを取る時間が非常に長くなるという問題がある。現
在、音源装置の高機能化に伴い、波形メモリの容量はま
すます大容量化しており、今後もさらに大容量化が進む
ものと考えられる。したがって、波形メモリのテストを
短時間に行なう技術は、今後もますます必要とされるも
のである。
【0008】この発明は、上述の従来例における問題点
に鑑み、音源チップの側に接続された波形メモリのテス
トを短時間で行なうことができるようにした音源装置を
提供することを目的とする。
に鑑み、音源チップの側に接続された波形メモリのテス
トを短時間で行なうことができるようにした音源装置を
提供することを目的とする。
【0009】
【課題を解決するための手段】この目的を達成するた
め、請求項1に係る発明は、波形データを記憶した記憶
手段を接続し、外部の中央処理装置からの指示に応じて
前記記憶手段から波形データを読み出して楽音を発生す
る音源装置において、通常モードとテストモードの一方
を指示する指示手段と、前記記憶手段をアクセスするた
めのアドレスを発生するアドレス発生手段であり、通常
モードが指示された場合は、中央処理装置からの指示に
応じて楽音波形の基になる波形データを記憶手段から読
み出すためのアドレスを発生し、テストモードが指示さ
れた場合は、前記記憶手段の動作をチェックするための
アドレスを発生するアドレス発生手段と、テストモード
が指示された場合に、読み出した波形データに対して所
定の処理を施す処理手段と、前記処理手段の処理結果を
外部の中央処理装置に送出する送出手段とを備えたこと
を特徴とする。
め、請求項1に係る発明は、波形データを記憶した記憶
手段を接続し、外部の中央処理装置からの指示に応じて
前記記憶手段から波形データを読み出して楽音を発生す
る音源装置において、通常モードとテストモードの一方
を指示する指示手段と、前記記憶手段をアクセスするた
めのアドレスを発生するアドレス発生手段であり、通常
モードが指示された場合は、中央処理装置からの指示に
応じて楽音波形の基になる波形データを記憶手段から読
み出すためのアドレスを発生し、テストモードが指示さ
れた場合は、前記記憶手段の動作をチェックするための
アドレスを発生するアドレス発生手段と、テストモード
が指示された場合に、読み出した波形データに対して所
定の処理を施す処理手段と、前記処理手段の処理結果を
外部の中央処理装置に送出する送出手段とを備えたこと
を特徴とする。
【0010】記憶手段のテストの方法は、どのようなも
のでもよい。例えば、チェックサムを算出する方法を用
いればよい。チェックサム以外のテスト方法として、パ
リティチェック、冗長検査(CRC,LRCなど)、チ
ェックビット、その他のチェックコードによる方法を用
いてもよい。
のでもよい。例えば、チェックサムを算出する方法を用
いればよい。チェックサム以外のテスト方法として、パ
リティチェック、冗長検査(CRC,LRCなど)、チ
ェックビット、その他のチェックコードによる方法を用
いてもよい。
【0011】また請求項2に係る発明は、波形データを
記憶した記憶手段を接続し、外部の中央処理装置からの
指示に応じて前記記憶手段から波形データを読み出して
楽音を発生する音源装置において、前記記憶手段から波
形データを読み出す読み出しアドレスを生成するととも
に、前記記憶手段のテストモードが指示されているとき
は、該読み出しアドレスとしてテスト対象領域のアドレ
スを順次発生するアドレス発生手段と、読み出した波形
データを累算するとともに、前記記憶手段のテストモー
ドが指示されているときは、テスト対象領域から順次読
み出した波形データを累算して累算値を算出する累算手
段と、前記累算手段で算出した累算値を外部の中央処理
装置に送出する送出手段とを備えたことを特徴とする。
請求項3に係る発明は、請求項1または2において、当
該音源装置は、複数チャンネル時分割動作するものであ
り、前記アドレス発生手段は、テストモードにおいて、
全チャンネルを用いて波形データの読み出しを行うもの
であることを特徴とする。請求項4に係る発明は、請求
項1または2において、当該音源装置は、複数チャンネ
ル時分割動作するものであって、各チャンネルは波形補
間するための複数のタイムスロットを有しており、前記
アドレス発生手段は、テストモードにおいて、全チャン
ネルの全タイムスロットを用いて波形データの読み出し
を行うものであることを特徴とする。
記憶した記憶手段を接続し、外部の中央処理装置からの
指示に応じて前記記憶手段から波形データを読み出して
楽音を発生する音源装置において、前記記憶手段から波
形データを読み出す読み出しアドレスを生成するととも
に、前記記憶手段のテストモードが指示されているとき
は、該読み出しアドレスとしてテスト対象領域のアドレ
スを順次発生するアドレス発生手段と、読み出した波形
データを累算するとともに、前記記憶手段のテストモー
ドが指示されているときは、テスト対象領域から順次読
み出した波形データを累算して累算値を算出する累算手
段と、前記累算手段で算出した累算値を外部の中央処理
装置に送出する送出手段とを備えたことを特徴とする。
請求項3に係る発明は、請求項1または2において、当
該音源装置は、複数チャンネル時分割動作するものであ
り、前記アドレス発生手段は、テストモードにおいて、
全チャンネルを用いて波形データの読み出しを行うもの
であることを特徴とする。請求項4に係る発明は、請求
項1または2において、当該音源装置は、複数チャンネ
ル時分割動作するものであって、各チャンネルは波形補
間するための複数のタイムスロットを有しており、前記
アドレス発生手段は、テストモードにおいて、全チャン
ネルの全タイムスロットを用いて波形データの読み出し
を行うものであることを特徴とする。
【0012】
【作用】中央処理装置と音源装置とを共通のバスライン
に接続し、音源装置に波形メモリが接続されており、中
央処理装置から波形メモリに直接アクセスできないよう
な構成の電子楽器において、音源装置に本発明のような
テスト機能を備えたものを用いれば、中央処理装置から
音源装置に波形メモリのテストの指示を出すだけで、波
形メモリのテストが行なえることになる。
に接続し、音源装置に波形メモリが接続されており、中
央処理装置から波形メモリに直接アクセスできないよう
な構成の電子楽器において、音源装置に本発明のような
テスト機能を備えたものを用いれば、中央処理装置から
音源装置に波形メモリのテストの指示を出すだけで、波
形メモリのテストが行なえることになる。
【0013】
【実施例】以下、図面を用いて、この発明の実施例を説
明する。
明する。
【0014】図1は、この発明の一実施例に係る波形メ
モリのテスト機能を備えた音源装置を有する電子楽器の
全体構成を示す。この電子楽器は、パネルスイッチ(P
SW)101、パネル表示器(PI)102、キーボー
ド(KB)103、中央処理装置(CPU)104、リ
ードオンリーメモリ(ROM)105、ランダムアクセ
スメモリ(RAM)106、音源(TG)107、波形
メモリ(WM)108、サウンドシステム(SS)10
9、およびMIDI(Musical Instrument Digital Int
erface)インターフェース110を備えている。
モリのテスト機能を備えた音源装置を有する電子楽器の
全体構成を示す。この電子楽器は、パネルスイッチ(P
SW)101、パネル表示器(PI)102、キーボー
ド(KB)103、中央処理装置(CPU)104、リ
ードオンリーメモリ(ROM)105、ランダムアクセ
スメモリ(RAM)106、音源(TG)107、波形
メモリ(WM)108、サウンドシステム(SS)10
9、およびMIDI(Musical Instrument Digital Int
erface)インターフェース110を備えている。
【0015】パネルスイッチ101、パネル表示器10
2、キーボード103、CPU104、ROM105、
RAM106、音源107、およびMIDIインターフ
ェース110は、バスライン111により相互に接続さ
れている。
2、キーボード103、CPU104、ROM105、
RAM106、音源107、およびMIDIインターフ
ェース110は、バスライン111により相互に接続さ
れている。
【0016】パネルスイッチ101は、この電子楽器に
関する各種の設定操作を行なうためのものである。パネ
ル表示器102には、各種の情報が表示される。キーボ
ード103は、ユーザが演奏操作を行なうためのもので
ある。CPU104は、この電子楽器全体の動作を制御
する。
関する各種の設定操作を行なうためのものである。パネ
ル表示器102には、各種の情報が表示される。キーボ
ード103は、ユーザが演奏操作を行なうためのもので
ある。CPU104は、この電子楽器全体の動作を制御
する。
【0017】特に、CPU104は、キーボード103
による演奏操作やMIDIインターフェース110から
の入力に応じて音源107に楽音の発生を指示する。音
源107は、CPU104からの指示に応じて波形メモ
リ108から波形データを読み出し所定の処理ののちア
ナログ信号に変換して出力する。サウンドシステム10
9は、音源107から出力されたアナログ信号に応じて
実際の楽音を放音する。
による演奏操作やMIDIインターフェース110から
の入力に応じて音源107に楽音の発生を指示する。音
源107は、CPU104からの指示に応じて波形メモ
リ108から波形データを読み出し所定の処理ののちア
ナログ信号に変換して出力する。サウンドシステム10
9は、音源107から出力されたアナログ信号に応じて
実際の楽音を放音する。
【0018】ROM105には、CPU104が実行す
るプログラムや各種の定数データなどが格納されてい
る。RAM106は、ワークエリアなどに用いられる。
るプログラムや各種の定数データなどが格納されてい
る。RAM106は、ワークエリアなどに用いられる。
【0019】本実施例の電子楽器では、CPU104の
指示により波形メモリ108のチェックサムをとって波
形メモリ108のテストを行なうことができる。そのよ
うな波形メモリ108のテスト機能については、後に詳
述する。
指示により波形メモリ108のチェックサムをとって波
形メモリ108のテストを行なうことができる。そのよ
うな波形メモリ108のテスト機能については、後に詳
述する。
【0020】図2は、図1の音源107の詳細図であ
る。音源107は、CPUインターフェース201、ア
ドレスジェネレータ部(AG)202、補間部(IN
T)203、エンベロープ発生部(EG)204、乗算
器205、加算器206、累算部(ACC)207、エ
フェクタ(EF)208、およびディジタルアナログ変
換部(DAC)209を備えている。
る。音源107は、CPUインターフェース201、ア
ドレスジェネレータ部(AG)202、補間部(IN
T)203、エンベロープ発生部(EG)204、乗算
器205、加算器206、累算部(ACC)207、エ
フェクタ(EF)208、およびディジタルアナログ変
換部(DAC)209を備えている。
【0021】CPUインターフェース201は、図1の
バスライン111に接続されており、CPU104から
の指示にしたがって各種の制御信号を出力する。通常の
楽音発生を行なう場合、CPUインターフェース201
は、まずアドレスジェネレータ部202に対して波形メ
モリ108の読み出しアドレスを指定するためのアドレ
ス制御データ(図3で後述するFナンバFN、スタート
アドレスSA、およびエンドアドレスEA)を出力する
とともに、キーオンパルスNONPを出力する。
バスライン111に接続されており、CPU104から
の指示にしたがって各種の制御信号を出力する。通常の
楽音発生を行なう場合、CPUインターフェース201
は、まずアドレスジェネレータ部202に対して波形メ
モリ108の読み出しアドレスを指定するためのアドレ
ス制御データ(図3で後述するFナンバFN、スタート
アドレスSA、およびエンドアドレスEA)を出力する
とともに、キーオンパルスNONPを出力する。
【0022】アドレスジェネレータ部202は、CPU
インターフェース201から出力されるアドレス制御デ
ータに応じて波形メモリ108の読み出しアドレスを生
成出力するとともに、補間部203に対して補間用の小
数部データを出力する。
インターフェース201から出力されるアドレス制御デ
ータに応じて波形メモリ108の読み出しアドレスを生
成出力するとともに、補間部203に対して補間用の小
数部データを出力する。
【0023】波形メモリ108には、サンプリング点ご
との波形データが格納されている。アドレスジェネレー
タ部202から読み出しアドレスが出力されると、その
アドレスの波形データが波形メモリ108から読み出さ
れる。この実施例では、補間部203において4点補間
を行なうため、アドレスジェネレータ部202は1チャ
ンネルごとに4つの連続する読み出しアドレスを順次出
力し、それに応じて1チャンネルごとに4点の波形デー
タが読み出され、補間部203に入力する。
との波形データが格納されている。アドレスジェネレー
タ部202から読み出しアドレスが出力されると、その
アドレスの波形データが波形メモリ108から読み出さ
れる。この実施例では、補間部203において4点補間
を行なうため、アドレスジェネレータ部202は1チャ
ンネルごとに4つの連続する読み出しアドレスを順次出
力し、それに応じて1チャンネルごとに4点の波形デー
タが読み出され、補間部203に入力する。
【0024】補間部203は、波形メモリ108からの
4点の波形データとアドレスジェネレータ部202から
の小数部データとを用いて1チャンネルごとに4点補間
を行なう。補間結果の波形データは乗算器205に入力
する。
4点の波形データとアドレスジェネレータ部202から
の小数部データとを用いて1チャンネルごとに4点補間
を行なう。補間結果の波形データは乗算器205に入力
する。
【0025】エンベロープ発生部204は、CPUイン
ターフェース201から出力されるエンベロープ制御デ
ータに応じて各時分割チャンネルのエンベロープ波形を
生成出力する。加算器206は、各タイムスロット毎
に、エンベロープ発生部204から出力される1チャン
ネル分のエンベロープ波形に対し、CPUインターフェ
ース201から1タイムスロット分の時間区間を4つに
分けた各区間において順次出力される4つのセンドレベ
ルS1、S2、S3、S4を加算する。加算器206の
加算結果は、乗算器205に入力する。ここで、4つの
センドレベルS1〜S4の値は、CPU104によって
各発音チャンネル毎に独自に設定されている。
ターフェース201から出力されるエンベロープ制御デ
ータに応じて各時分割チャンネルのエンベロープ波形を
生成出力する。加算器206は、各タイムスロット毎
に、エンベロープ発生部204から出力される1チャン
ネル分のエンベロープ波形に対し、CPUインターフェ
ース201から1タイムスロット分の時間区間を4つに
分けた各区間において順次出力される4つのセンドレベ
ルS1、S2、S3、S4を加算する。加算器206の
加算結果は、乗算器205に入力する。ここで、4つの
センドレベルS1〜S4の値は、CPU104によって
各発音チャンネル毎に独自に設定されている。
【0026】乗算器205は、各時分割チャンネル毎
に、補間部203から出力される補間済み波形データ
(リニアデータ)に、加算器206から供給される4つ
のエンベロープ波形(対数データ)を乗算して、4つの
エンベロープが付与された4つの波形データを、各系列
毎の出力として順次出力する。エンベロープ付与済みの
波形データは、各系列毎に累算器(ACC)207によ
り累算され、4系列のシリアルデータとして、出力され
る。
に、補間部203から出力される補間済み波形データ
(リニアデータ)に、加算器206から供給される4つ
のエンベロープ波形(対数データ)を乗算して、4つの
エンベロープが付与された4つの波形データを、各系列
毎の出力として順次出力する。エンベロープ付与済みの
波形データは、各系列毎に累算器(ACC)207によ
り累算され、4系列のシリアルデータとして、出力され
る。
【0027】エフェクタ208は、CPUインターフェ
ース201から出力されるエフェクタ制御データに基づ
いて、この4系列のデータに各種の効果を付与し、ステ
レオのシリアルデータとして出力する。このシリアルデ
ータは、ディジタルアナログ変換部209で、ステレオ
のLとR別にアナログ信号に変換されて出力される。こ
のアナログ信号が、図1のサウンドシステム109に入
力して放音される。
ース201から出力されるエフェクタ制御データに基づ
いて、この4系列のデータに各種の効果を付与し、ステ
レオのシリアルデータとして出力する。このシリアルデ
ータは、ディジタルアナログ変換部209で、ステレオ
のLとR別にアナログ信号に変換されて出力される。こ
のアナログ信号が、図1のサウンドシステム109に入
力して放音される。
【0028】以上が、音源107における通常の楽音発
生処理の概要である。
生処理の概要である。
【0029】一方、この音源107は、CPU104の
指示により波形メモリ108のチェックサムをとって、
その結果をCPU104に渡すことができる。具体的に
は、まずCPU104から、波形メモリ108のテスト
の指示が与えられる。
指示により波形メモリ108のチェックサムをとって、
その結果をCPU104に渡すことができる。具体的に
は、まずCPU104から、波形メモリ108のテスト
の指示が与えられる。
【0030】CPUインターフェース201は、このテ
ストの指示に応じてテストモードTMを「1」にする。
テストモードTMは、波形メモリ108のチェックサム
を取ることを指示する信号である。波形メモリ108の
チェックサムを取る動作が行なわれている間はTM=1
であり、それ以外ではTM=0である。
ストの指示に応じてテストモードTMを「1」にする。
テストモードTMは、波形メモリ108のチェックサム
を取ることを指示する信号である。波形メモリ108の
チェックサムを取る動作が行なわれている間はTM=1
であり、それ以外ではTM=0である。
【0031】TM=1になると、アドレスジェネレータ
部202は、波形メモリ108のチェックサムを取るべ
き領域の全アドレスのデータが順次読み出せるように、
その領域のスタートアドレス(先頭アドレス)からエン
ドアドレス(終了アドレス)までの全アドレスを順次出
力する。
部202は、波形メモリ108のチェックサムを取るべ
き領域の全アドレスのデータが順次読み出せるように、
その領域のスタートアドレス(先頭アドレス)からエン
ドアドレス(終了アドレス)までの全アドレスを順次出
力する。
【0032】波形メモリ108からは、上記アドレスに
したがって、チェックサムを取るべき領域の全データが
順次出力される。読み出されたデータは、ライン210
を介して累算部207に直接入力する。なお、図2にお
いて、波形メモリ108から累算部207に至るライン
210は、テストモードのときのみ有効になるラインで
あり、通常の楽音発生の場合などでは波形メモリ108
から読み出されたデータは補間部203に入力するよう
になっている。
したがって、チェックサムを取るべき領域の全データが
順次出力される。読み出されたデータは、ライン210
を介して累算部207に直接入力する。なお、図2にお
いて、波形メモリ108から累算部207に至るライン
210は、テストモードのときのみ有効になるラインで
あり、通常の楽音発生の場合などでは波形メモリ108
から読み出されたデータは補間部203に入力するよう
になっている。
【0033】テストモードのとき、累算部207は、波
形メモリ108から読み出されたデータをすべて累算す
る。すなわち、チェックサムを算出する。算出されたチ
ェックサムは、CPUインターフェース201を介して
CPU104に渡される。CPU104は、このチェッ
クサムが正常かどうかを確認する。
形メモリ108から読み出されたデータをすべて累算す
る。すなわち、チェックサムを算出する。算出されたチ
ェックサムは、CPUインターフェース201を介して
CPU104に渡される。CPU104は、このチェッ
クサムが正常かどうかを確認する。
【0034】図3は、図2のアドレスジェネレータ部2
02の詳細を示す。アドレスジェネレータ部202は、
加算器301、ゲート302、遅延回路303、遅延回
路304、セレクタ305、加算器306、補間用カウ
ンタ307、比較器308、および終了制御回路309
を備えている。遅延回路303の遅延段数は1であり
(図3では「1D」と図示)、遅延回路304の遅延段
数は21である(図3では「31D」と図示)。
02の詳細を示す。アドレスジェネレータ部202は、
加算器301、ゲート302、遅延回路303、遅延回
路304、セレクタ305、加算器306、補間用カウ
ンタ307、比較器308、および終了制御回路309
を備えている。遅延回路303の遅延段数は1であり
(図3では「1D」と図示)、遅延回路304の遅延段
数は21である(図3では「31D」と図示)。
【0035】加算器301、ゲート302、遅延回路3
03、遅延回路304、およびセレクタ305は、各チ
ャンネルごとのアドレスをカウントするカウンタ部31
0を構成する。このカウンタ部310は、時分割32チ
ャンネルで動作し、所定の時間間隔で32個のアドレス
カウント値を順次出力する。すなわち、所定の時間区間
(1クロックと呼ぶ)を32個のタイムスロットに分
け、各タイムスロットで1チャンネル分の処理を行なっ
ていく。
03、遅延回路304、およびセレクタ305は、各チ
ャンネルごとのアドレスをカウントするカウンタ部31
0を構成する。このカウンタ部310は、時分割32チ
ャンネルで動作し、所定の時間間隔で32個のアドレス
カウント値を順次出力する。すなわち、所定の時間区間
(1クロックと呼ぶ)を32個のタイムスロットに分
け、各タイムスロットで1チャンネル分の処理を行なっ
ていく。
【0036】遅延回路303,304の遅延段数は、こ
のタイムスロットの時間を単位とする。すなわち、遅延
回路303は、任意のタイムスロットで入力したデータ
を1タイムスロット分遅延して次のタイムスロットで出
力する。また、遅延回路304は、任意のタイムスロッ
トで入力したデータを31タイムスロット分遅延して出
力する。アドレスカウンタ部310は、図から分かるよ
うにループ回路になっており、32タイムスロットで各
チャンネルのアドレスカウント値のデータがこのループ
を1周することになる。
のタイムスロットの時間を単位とする。すなわち、遅延
回路303は、任意のタイムスロットで入力したデータ
を1タイムスロット分遅延して次のタイムスロットで出
力する。また、遅延回路304は、任意のタイムスロッ
トで入力したデータを31タイムスロット分遅延して出
力する。アドレスカウンタ部310は、図から分かるよ
うにループ回路になっており、32タイムスロットで各
チャンネルのアドレスカウント値のデータがこのループ
を1周することになる。
【0037】アドレスジェネレータ部202の動作を具
体的に説明する。まず、通常の楽音発生動作の場合、す
なわちテストモードでないとき(TM=0)について説
明する。
体的に説明する。まず、通常の楽音発生動作の場合、す
なわちテストモードでないとき(TM=0)について説
明する。
【0038】あるタイムスロットで、CPUインターフ
ェース201から、あるチャンネルに関する周波数ナン
バ(以下、Fナンバと呼ぶ)FN、スタートアドレスS
A、エンドアドレスEA、およびキーオンパルスNON
Pが出力される。キーオンパルスNONPは、当該チャ
ンネルの発音開始を指示するパルスで、開始のタイミン
グで「1」となり、その後は「0」となる。
ェース201から、あるチャンネルに関する周波数ナン
バ(以下、Fナンバと呼ぶ)FN、スタートアドレスS
A、エンドアドレスEA、およびキーオンパルスNON
Pが出力される。キーオンパルスNONPは、当該チャ
ンネルの発音開始を指示するパルスで、開始のタイミン
グで「1」となり、その後は「0」となる。
【0039】キーオンパルスNONPが出力される(す
なわち、「1」になる)と、ゲート302が閉じ、その
タイミングで遅延回路303に「0」がセットされる。
これが当該チャンネルに関する初期カウント値になる。
このカウント値データは、タイムスロットが進むにつれ
て遅延回路303から遅延回路304に順次進み、32
タイムスロット目には遅延回路304から出力される。
いまTM=0であるから、セレクタ305は、遅延回路
304からの出力を選択し、加算器301に出力する。
加算器301において、当該チャンネルに関するカウン
ト値にFナンバFNを加算する。加算器301の加算結
果は、ゲート302を介して(このとき、NONP=0
になっているのでゲート302は開いており入力データ
をそのまま通す)再び遅延回路303に入力する。
なわち、「1」になる)と、ゲート302が閉じ、その
タイミングで遅延回路303に「0」がセットされる。
これが当該チャンネルに関する初期カウント値になる。
このカウント値データは、タイムスロットが進むにつれ
て遅延回路303から遅延回路304に順次進み、32
タイムスロット目には遅延回路304から出力される。
いまTM=0であるから、セレクタ305は、遅延回路
304からの出力を選択し、加算器301に出力する。
加算器301において、当該チャンネルに関するカウン
ト値にFナンバFNを加算する。加算器301の加算結
果は、ゲート302を介して(このとき、NONP=0
になっているのでゲート302は開いており入力データ
をそのまま通す)再び遅延回路303に入力する。
【0040】以上のような動作を繰返し、各チャンネル
に関してFナンバFNを累算していく。そして、遅延回
路303からアドレスカウント値として出力する。結果
として、アドレスカウンタ部310は、1クロックで3
2チャンネル分のアドレスカウント値を繰返し出力する
ことになる。
に関してFナンバFNを累算していく。そして、遅延回
路303からアドレスカウント値として出力する。結果
として、アドレスカウンタ部310は、1クロックで3
2チャンネル分のアドレスカウント値を繰返し出力する
ことになる。
【0041】アドレスカウンタ部310から出力された
アドレスカウント値は、整数部と小数部に分けられ、整
数部は加算器306に入力する。補間用カウンタ307
は、1タイムスロット分の時間区間を4つに分けた各区
間において順に「0,1,2,3」を出力する。加算器
306には、スタートアドレスSAも入力する。
アドレスカウント値は、整数部と小数部に分けられ、整
数部は加算器306に入力する。補間用カウンタ307
は、1タイムスロット分の時間区間を4つに分けた各区
間において順に「0,1,2,3」を出力する。加算器
306には、スタートアドレスSAも入力する。
【0042】加算器306は、スタートアドレスSAと
アドレスカウント値の整数部と補間用カウンタ307か
ら順に出力される値(0、1,2,3の何れか)とを加
算する。これにより、スタートアドレスSAとアドレス
カウンタ値の整数部との和に、「0」を加算した値、
「1」を加算した値、「2」を加算した値、および
「3」を加算した値が、加算器306から順に出力され
る。これは図2で説明したように、補間部203におい
て4点補間を行なうために、連続する4点のアドレスを
順に出力するものである。
アドレスカウント値の整数部と補間用カウンタ307か
ら順に出力される値(0、1,2,3の何れか)とを加
算する。これにより、スタートアドレスSAとアドレス
カウンタ値の整数部との和に、「0」を加算した値、
「1」を加算した値、「2」を加算した値、および
「3」を加算した値が、加算器306から順に出力され
る。これは図2で説明したように、補間部203におい
て4点補間を行なうために、連続する4点のアドレスを
順に出力するものである。
【0043】加算器306の出力ADIを読み出しアド
レスとして、波形メモリ108から4点分の波形データ
が順に読み出される。アドレスカウンタ値の小数部AD
Fは、補間部203に入力し、4点補間のために用いら
れる。
レスとして、波形メモリ108から4点分の波形データ
が順に読み出される。アドレスカウンタ値の小数部AD
Fは、補間部203に入力し、4点補間のために用いら
れる。
【0044】一方、アドレスカウンタ部310から出力
されたアドレスカウンタ値は、比較器308においてエ
ンドアドレスEAと比較される。比較器308は、アド
レスカウンタ値がエンドアドレスEA以上になったと
き、エンド検出信号を終了制御回路309に出力する。
されたアドレスカウンタ値は、比較器308においてエ
ンドアドレスEAと比較される。比較器308は、アド
レスカウンタ値がエンドアドレスEA以上になったと
き、エンド検出信号を終了制御回路309に出力する。
【0045】終了制御回路309は、テストモードT
M、キーオンパルスNONP、エンド検出信号を入力
し、ゲート制御信号g1、g2を発生する。ゲート制御
信号g1,g2は、累算部207のゲートを制御する信
号である(図4で後述する)。
M、キーオンパルスNONP、エンド検出信号を入力
し、ゲート制御信号g1、g2を発生する。ゲート制御
信号g1,g2は、累算部207のゲートを制御する信
号である(図4で後述する)。
【0046】TM=0の場合、ゲート制御信号g1は、
キーオンパルスNONPが入力した発音チャンネルのタ
イムスロットで「1」、その後にエンド検出信号が入力
した発音チャンネルのタイムスロットで「0」といった
具合に制御される。キーオンパルスNONPの入力から
エンド検出までというのは、各チャンネルが楽音の生成
を行っている期間であり、ゲート制御信号g1は、発音
中のタイムスロットで「1」の値を、休止中のタイムス
ロットで「0」の値をとるわけである。ゲート制御信号
g2は、時分割32チャンネルのうち最初のチャンネル
のタイムスロットでのみ「0」となる信号であり、累算
部207におけるチャンネル累算動作の開始タイミング
を与える。
キーオンパルスNONPが入力した発音チャンネルのタ
イムスロットで「1」、その後にエンド検出信号が入力
した発音チャンネルのタイムスロットで「0」といった
具合に制御される。キーオンパルスNONPの入力から
エンド検出までというのは、各チャンネルが楽音の生成
を行っている期間であり、ゲート制御信号g1は、発音
中のタイムスロットで「1」の値を、休止中のタイムス
ロットで「0」の値をとるわけである。ゲート制御信号
g2は、時分割32チャンネルのうち最初のチャンネル
のタイムスロットでのみ「0」となる信号であり、累算
部207におけるチャンネル累算動作の開始タイミング
を与える。
【0047】次に、テストモードの場合(TM=1)の
アドレスジェネレータ部202の動作を説明する。
アドレスジェネレータ部202の動作を説明する。
【0048】TM=1のとき、CPUインターフェース
201からは、FナンバFN、スタートアドレスSA、
エンドアドレスEA、およびキーオンパルスNONPが
出力される。FナンバFNは固定値「4」である。スタ
ートアドレスSAとエンドアドレスEAは、波形メモリ
108内のチェックサムを取る領域の先頭アドレスと終
了アドレスである。キーオンパルスNONPは、テスト
の開始、すなわちチェックサムの算出を開始することを
指示する信号を意味する。すなわち、テスト開始のタイ
ミングで「1」、それ以外では「0」である。
201からは、FナンバFN、スタートアドレスSA、
エンドアドレスEA、およびキーオンパルスNONPが
出力される。FナンバFNは固定値「4」である。スタ
ートアドレスSAとエンドアドレスEAは、波形メモリ
108内のチェックサムを取る領域の先頭アドレスと終
了アドレスである。キーオンパルスNONPは、テスト
の開始、すなわちチェックサムの算出を開始することを
指示する信号を意味する。すなわち、テスト開始のタイ
ミングで「1」、それ以外では「0」である。
【0049】TM=1であるので、セレクタ305は、
遅延回路303の出力を選択出力する。これにより、ア
ドレスカウンタ部310において、遅延回路303のデ
ータがタイムスロットごとに加算器301に戻されてカ
ウントアップ(4を加算)されることになる。
遅延回路303の出力を選択出力する。これにより、ア
ドレスカウンタ部310において、遅延回路303のデ
ータがタイムスロットごとに加算器301に戻されてカ
ウントアップ(4を加算)されることになる。
【0050】キーオンパルスNONPが出力され(すな
わち、「1」になる)、テストが開始されると、ゲート
302が閉じ、そのタイミングで遅延回路303に
「0」がセットされる。これが初期カウント値になる。
このカウント値データは、次のタイムスロットで加算器
301に入力する。加算器301において、当該カウン
ト値にFナンバFN(固定値「4」)を加算する。加算
器301の加算結果は、ゲート302を介して(このと
き、NONP=0になっているのでゲート302は開い
ており入力データをそのまま通す)再び遅延回路303
に入力する。
わち、「1」になる)、テストが開始されると、ゲート
302が閉じ、そのタイミングで遅延回路303に
「0」がセットされる。これが初期カウント値になる。
このカウント値データは、次のタイムスロットで加算器
301に入力する。加算器301において、当該カウン
ト値にFナンバFN(固定値「4」)を加算する。加算
器301の加算結果は、ゲート302を介して(このと
き、NONP=0になっているのでゲート302は開い
ており入力データをそのまま通す)再び遅延回路303
に入力する。
【0051】以上のような動作を繰返し、タイムスロッ
トごとに、「0」、「4」、「8」、「12」、…とい
うようにカウント値(4の倍数)を出力する。このカウ
ント値は、加算器306に入力する。補間用カウンタ3
07は、楽音発生時と同様に、1タイムスロット分の時
間区間を4つに分けた各区間において順に「0,1,
2,3」を出力する。加算器306にスタートアドレス
SAが入力していることも、楽音発生時と同様である。
トごとに、「0」、「4」、「8」、「12」、…とい
うようにカウント値(4の倍数)を出力する。このカウ
ント値は、加算器306に入力する。補間用カウンタ3
07は、楽音発生時と同様に、1タイムスロット分の時
間区間を4つに分けた各区間において順に「0,1,
2,3」を出力する。加算器306にスタートアドレス
SAが入力していることも、楽音発生時と同様である。
【0052】加算器306は、スタートアドレスSAと
遅延回路303からのカウント値と補間用カウンタ30
7から順に出力される値(0、1,2,3の何れか)と
を加算する。これにより、チェックサムを取る領域の先
頭アドレスと遅延回路303からのカウント値との和
に、「0」を加算した値、「1」を加算した値、「2」
を加算した値、および「3」を加算した値が、加算器3
06から順に出力される。
遅延回路303からのカウント値と補間用カウンタ30
7から順に出力される値(0、1,2,3の何れか)と
を加算する。これにより、チェックサムを取る領域の先
頭アドレスと遅延回路303からのカウント値との和
に、「0」を加算した値、「1」を加算した値、「2」
を加算した値、および「3」を加算した値が、加算器3
06から順に出力される。
【0053】上述したように、アドレスカウンタ部31
0はタイムスロットごとに「0」、「4」、「8」、…
というように「4」の倍数を出力するから、スタートア
ドレスSAを基準としたオフセットアドレスで考えれ
ば、結果として加算器306は、第1のタイムスロット
で「0」、「1」、「2」、「3」を順次出力し、次の
タイムスロットで「4」、「5」、「6」、「7」を順
次出力し、その次のタイムスロットで「8」、「9」、
「10」、「11」を順次出力し、…というようにベタ
のアドレスを順次出力することになる。これにより、図
2において、波形メモリ108から、第0番地の波形デ
ータ、第1番地の波形データ、第2番地の波形データ、
(番地はスタートアドレスSAを基準としたオフセット
アドレス)…というように、波形データがベタで次々に
読み出されライン210を介して累算部207に入力す
ることになる。
0はタイムスロットごとに「0」、「4」、「8」、…
というように「4」の倍数を出力するから、スタートア
ドレスSAを基準としたオフセットアドレスで考えれ
ば、結果として加算器306は、第1のタイムスロット
で「0」、「1」、「2」、「3」を順次出力し、次の
タイムスロットで「4」、「5」、「6」、「7」を順
次出力し、その次のタイムスロットで「8」、「9」、
「10」、「11」を順次出力し、…というようにベタ
のアドレスを順次出力することになる。これにより、図
2において、波形メモリ108から、第0番地の波形デ
ータ、第1番地の波形データ、第2番地の波形データ、
(番地はスタートアドレスSAを基準としたオフセット
アドレス)…というように、波形データがベタで次々に
読み出されライン210を介して累算部207に入力す
ることになる。
【0054】一方、アドレスカウンタ部310から出力
されたカウンタ値は、比較器308においてエンドアド
レスEAと比較される。比較器308は、カウンタ値が
エンドアドレスEA以上になったとき、エンド検出信号
を終了制御回路309に出力する。
されたカウンタ値は、比較器308においてエンドアド
レスEAと比較される。比較器308は、カウンタ値が
エンドアドレスEA以上になったとき、エンド検出信号
を終了制御回路309に出力する。
【0055】終了制御回路309は、キーオンパルスN
ONPが「1」になったタイミングからゲート制御信号
g1,g2としてともに「1」を出力し、比較器308
からのエンド検出信号が入力したタイミングからゲート
制御信号g1,g2をともに「0」とする。さらに、終
了制御回路309は、比較器308からのエンド検出信
号が入力したとき、CPU104に対する割込信号ir
qを出力する。割込信号irqは、指示された領域のチ
ェックサムの算出が完了(実際には、アドレスジェネレ
ータ部202からチェックサムのための全アドレスを出
力したということを意味するが、全アドレスが出力され
ていれば図4で後述するように累算部207ではチェッ
クサムの算出が終了したことになる)したことを意味す
る信号である。
ONPが「1」になったタイミングからゲート制御信号
g1,g2としてともに「1」を出力し、比較器308
からのエンド検出信号が入力したタイミングからゲート
制御信号g1,g2をともに「0」とする。さらに、終
了制御回路309は、比較器308からのエンド検出信
号が入力したとき、CPU104に対する割込信号ir
qを出力する。割込信号irqは、指示された領域のチ
ェックサムの算出が完了(実際には、アドレスジェネレ
ータ部202からチェックサムのための全アドレスを出
力したということを意味するが、全アドレスが出力され
ていれば図4で後述するように累算部207ではチェッ
クサムの算出が終了したことになる)したことを意味す
る信号である。
【0056】図4は、図2の累算部207の詳細を示
す。累算部207は、セレクタ401、ゲート402、
加算器403、遅延回路404、遅延回路405、セレ
クタ406、ゲート407、パラレル/シリアル変換器
408、およびラッチ409を備えている。
す。累算部207は、セレクタ401、ゲート402、
加算器403、遅延回路404、遅延回路405、セレ
クタ406、ゲート407、パラレル/シリアル変換器
408、およびラッチ409を備えている。
【0057】遅延回路404の遅延段数は1であり(図
4では「1D」と図示)、遅延回路405の遅延段数は
3である(図4では「3D」と図示)。遅延段数は、図
3と同様に、タイムスロットの時間が単位である。ゲー
ト402、加算器403、遅延回路404、遅延回路4
05、セレクタ406、およびゲート407は、ループ
回路410を構成しており、データは4タイムスロット
で1周するようになっている。
4では「1D」と図示)、遅延回路405の遅延段数は
3である(図4では「3D」と図示)。遅延段数は、図
3と同様に、タイムスロットの時間が単位である。ゲー
ト402、加算器403、遅延回路404、遅延回路4
05、セレクタ406、およびゲート407は、ループ
回路410を構成しており、データは4タイムスロット
で1周するようになっている。
【0058】まず、通常の楽音発生動作の場合(すなわ
ち、TM=0)の累算部207の動作を説明する。
ち、TM=0)の累算部207の動作を説明する。
【0059】セレクタ401の「1」側入力MOUT
は、波形メモリ108からライン210を介して送られ
てくるチェックサムを取るためのベタ読みのデータを示
す。セレクタ401の「0」側入力IOUTは、図1の
乗算器205から出力される32チャンネル時分割の楽
音発生用の波形データを示す。いまTM=0であるか
ら、セレクタ401は乗算器205からの入力IOUT
を選択出力する。
は、波形メモリ108からライン210を介して送られ
てくるチェックサムを取るためのベタ読みのデータを示
す。セレクタ401の「0」側入力IOUTは、図1の
乗算器205から出力される32チャンネル時分割の楽
音発生用の波形データを示す。いまTM=0であるか
ら、セレクタ401は乗算器205からの入力IOUT
を選択出力する。
【0060】各時分割チャンネルではキーオンパルスN
ONPが「1」になったタイミングからゲート制御信号
g1は「1」であるから、対応するタイムスロットの
間、ゲートg1は開いており、入力IOUTは加算器4
03に入力する。ゲート制御信号g2は、32個の発音
チャンネルの内の最初のチャンネル(第0チャンネル)
のタイムスロットで「0」になる他はずっと「1」であ
り、その間ゲートg2は開いており、TM=0であるか
ら遅延回路405の最終段のデータ(この値はNONP
=1のタイミングで0に初期化されているものとする)
がセレクタ406およびゲート407を介して加算器4
03に入力する。
ONPが「1」になったタイミングからゲート制御信号
g1は「1」であるから、対応するタイムスロットの
間、ゲートg1は開いており、入力IOUTは加算器4
03に入力する。ゲート制御信号g2は、32個の発音
チャンネルの内の最初のチャンネル(第0チャンネル)
のタイムスロットで「0」になる他はずっと「1」であ
り、その間ゲートg2は開いており、TM=0であるか
ら遅延回路405の最終段のデータ(この値はNONP
=1のタイミングで0に初期化されているものとする)
がセレクタ406およびゲート407を介して加算器4
03に入力する。
【0061】加算器403でこれらの入力を加算し、加
算結果を1段の遅延回路404に入力する。遅延回路4
04のデータは、3段の遅延回路405、セレクタ40
6、及びゲート407を介して再び加算器403に戻
り、このようにデータがループして累算されていく。こ
こで、各遅延回路の動作周期は1タイムスロット分の時
間区間を4つに均等した長さである。従って、ループ回
路410において、データは1タイムスロットで1周
し、32タイムスロットにわたる動作の結果として32
チャンネル分の各時分割チャンネルの入力IOUTは以
下のように4つの系列に累算される。
算結果を1段の遅延回路404に入力する。遅延回路4
04のデータは、3段の遅延回路405、セレクタ40
6、及びゲート407を介して再び加算器403に戻
り、このようにデータがループして累算されていく。こ
こで、各遅延回路の動作周期は1タイムスロット分の時
間区間を4つに均等した長さである。従って、ループ回
路410において、データは1タイムスロットで1周
し、32タイムスロットにわたる動作の結果として32
チャンネル分の各時分割チャンネルの入力IOUTは以
下のように4つの系列に累算される。
【0062】・第1の系列:各チャンネル独立のセンド
レベルS1およびエンベロープ波形の乗算された第0か
ら第31チャンネルの32チャンネル分の波形データの
累算値。
レベルS1およびエンベロープ波形の乗算された第0か
ら第31チャンネルの32チャンネル分の波形データの
累算値。
【0063】・第2の系列:各チャンネル独立のセンド
レベルS2およびエンベロープ波形の乗算された第0か
ら第31チャンネルの32チャンネル分の波形データの
累算値。
レベルS2およびエンベロープ波形の乗算された第0か
ら第31チャンネルの32チャンネル分の波形データの
累算値。
【0064】・第3の系列:各チャンネル独立のセンド
レベルS3およびエンベロープ波形の乗算された第0か
ら第31チャンネルの32チャンネル分の波形データの
累算値。
レベルS3およびエンベロープ波形の乗算された第0か
ら第31チャンネルの32チャンネル分の波形データの
累算値。
【0065】・第4の系列:各チャンネル独立のセンド
レベルS4およびエンベロープ波形の乗算された第0か
ら第31チャンネルの32チャンネル分の波形データの
累算値。
レベルS4およびエンベロープ波形の乗算された第0か
ら第31チャンネルの32チャンネル分の波形データの
累算値。
【0066】以上の4つの系列の累算結果は、第31チ
ャンネルのタイムスロットから4分の1タイムスロット
分だけ遅れた時間区間に遅延回路404から順次出力さ
れ、パラレル/シリアル変換器408に取り込まれる。
パラレル/シリアル変換器408は、これら4つの系列
の累算結果を、後段のエフェクタ208(図2)の処理
タイミングに合せたシリアルデータとして出力する。そ
して、図2で説明したように、エフェクタ208および
ディジタルアナログ変換器209を介してサウンドシス
テム109に出力され、放音される。
ャンネルのタイムスロットから4分の1タイムスロット
分だけ遅れた時間区間に遅延回路404から順次出力さ
れ、パラレル/シリアル変換器408に取り込まれる。
パラレル/シリアル変換器408は、これら4つの系列
の累算結果を、後段のエフェクタ208(図2)の処理
タイミングに合せたシリアルデータとして出力する。そ
して、図2で説明したように、エフェクタ208および
ディジタルアナログ変換器209を介してサウンドシス
テム109に出力され、放音される。
【0067】あるチャンネルにおいて、波形メモリ10
8の読み出しアドレスがエンドアドレスEAに至ったと
きは、図3で説明したように、当該チャンネルのタイム
スロットにおけるゲート制御信号g1が「0」にされ
る。したがって、このとき図4のゲート402,407
が閉じられるから、当該チャンネルの累算は行なわれな
くなる。
8の読み出しアドレスがエンドアドレスEAに至ったと
きは、図3で説明したように、当該チャンネルのタイム
スロットにおけるゲート制御信号g1が「0」にされ
る。したがって、このとき図4のゲート402,407
が閉じられるから、当該チャンネルの累算は行なわれな
くなる。
【0068】次に、テストモードの場合(TM=1)の
累算部207の動作を説明する。
累算部207の動作を説明する。
【0069】TM=1のとき、セレクタ401は、波形
メモリ108からライン210を介して送られてくるチ
ェックサムを取るためのベタ読みのデータMOUTを選
択出力する。テスト開始時点からゲート制御信号g1は
「1」であるから、ゲートg1は開いており、入力MO
UTは加算器403に入力する。また、テスト開始時点
からゲート制御信号g2は「1」であるから、ゲートg
2は開いており、TM=1であるから遅延回路404の
データ(この値はNONP=1のタイミングで0に初期
化されているものとする)がセレクタ406およびゲー
ト407を介して加算器403に入力する。
メモリ108からライン210を介して送られてくるチ
ェックサムを取るためのベタ読みのデータMOUTを選
択出力する。テスト開始時点からゲート制御信号g1は
「1」であるから、ゲートg1は開いており、入力MO
UTは加算器403に入力する。また、テスト開始時点
からゲート制御信号g2は「1」であるから、ゲートg
2は開いており、TM=1であるから遅延回路404の
データ(この値はNONP=1のタイミングで0に初期
化されているものとする)がセレクタ406およびゲー
ト407を介して加算器403に入力する。
【0070】加算器403でこれらの入力を加算する。
加算結果は、遅延回路404に入力し、4分の1タイム
スロット分だけ遅延されて再びセレクタ406およびゲ
ート407を介して加算器403に戻る。結果として、
波形メモリ108から4分の1タイムスロット分の期間
毎に読み出されるベタ読みのデータMOUTは、すべて
累算され、言い替えればチェックサムが取られることに
なる。
加算結果は、遅延回路404に入力し、4分の1タイム
スロット分だけ遅延されて再びセレクタ406およびゲ
ート407を介して加算器403に戻る。結果として、
波形メモリ108から4分の1タイムスロット分の期間
毎に読み出されるベタ読みのデータMOUTは、すべて
累算され、言い替えればチェックサムが取られることに
なる。
【0071】波形メモリ108の読み出しアドレスがエ
ンドアドレスEAに至ったとき(すなわち、チェックサ
ムを取る領域の最後までいったとき)は、図2で説明し
たように、ゲート制御信号g1,g2が「0」にされ
る。したがって、このとき図4のゲート402,407
が閉じられるから、累算は行なわれなくなる。最終的な
累算結果(チェックサム)は、ラッチ409にラッチさ
れ、図2で説明したように、CPUインターフェース2
01を介してCPU104に渡される。
ンドアドレスEAに至ったとき(すなわち、チェックサ
ムを取る領域の最後までいったとき)は、図2で説明し
たように、ゲート制御信号g1,g2が「0」にされ
る。したがって、このとき図4のゲート402,407
が閉じられるから、累算は行なわれなくなる。最終的な
累算結果(チェックサム)は、ラッチ409にラッチさ
れ、図2で説明したように、CPUインターフェース2
01を介してCPU104に渡される。
【0072】次に、図5および図6のフローチャートを
参照して、CPU104の動作を説明する。
参照して、CPU104の動作を説明する。
【0073】図5(a)は、メインルーチンを示す。こ
の電子楽器の電源がオンされると、CPU104は、ス
テップS1で各種の初期設定を行なう。次に、ステップ
S2で鍵処理を行ない、ステップS3でパネルスイッチ
処理を行ない、再びステップS2に戻る。ステップS1
の鍵処理は、キーボード103の鍵の操作を検出し、そ
の演奏操作があれば音源107に楽音の発生を指示する
処理である。ステップS2のパネルスイッチ処理は、パ
ネルスイッチの操作を検出し、その操作に応じた処理を
行なうものである。
の電子楽器の電源がオンされると、CPU104は、ス
テップS1で各種の初期設定を行なう。次に、ステップ
S2で鍵処理を行ない、ステップS3でパネルスイッチ
処理を行ない、再びステップS2に戻る。ステップS1
の鍵処理は、キーボード103の鍵の操作を検出し、そ
の演奏操作があれば音源107に楽音の発生を指示する
処理である。ステップS2のパネルスイッチ処理は、パ
ネルスイッチの操作を検出し、その操作に応じた処理を
行なうものである。
【0074】図5(b)は、図5(a)のステップS3
のパネルスイッチ処理において波形メモリのテストを行
なうことを指示するスイッチ操作が為されたときに実行
されるテストルーチンを示す。
のパネルスイッチ処理において波形メモリのテストを行
なうことを指示するスイッチ操作が為されたときに実行
されるテストルーチンを示す。
【0075】この実施例の電子楽器では、パネル上の所
定のスイッチを組合わせてオンしたときに、波形メモリ
のテストの指示と認識するようになっているが、本発明
は、テストモードに入る契機がどのようなものであって
も適用可能である。例えば、MIDIインターフェース
110により受信したコマンドがテスト開始を指示する
ものであるとき、図5(b)の処理を開始する、という
ようにしてもよい。
定のスイッチを組合わせてオンしたときに、波形メモリ
のテストの指示と認識するようになっているが、本発明
は、テストモードに入る契機がどのようなものであって
も適用可能である。例えば、MIDIインターフェース
110により受信したコマンドがテスト開始を指示する
ものであるとき、図5(b)の処理を開始する、という
ようにしてもよい。
【0076】波形メモリのテストの指示が為されると、
まずステップS11で、レジスタTMを「1」にする。
なお、図5および図6に出現するTMはCPU104が
設定参照するレジスタを示しており、図2〜図4で説明
した音源107内でテストモードであることを示す信号
TMとは異なるものであるが、便宜上同じ記号TMで表
わしている。
まずステップS11で、レジスタTMを「1」にする。
なお、図5および図6に出現するTMはCPU104が
設定参照するレジスタを示しており、図2〜図4で説明
した音源107内でテストモードであることを示す信号
TMとは異なるものであるが、便宜上同じ記号TMで表
わしている。
【0077】次に、ステップS12で、チェックサムを
取る波形メモリ108の最初の領域を設定する。具体的
には、チェックサムを取る最初の領域のスタートアドレ
スSAとエンドアドレスEAを決定する。そして、ステ
ップS13でワークレジスタnに「1」をセットし、ス
テップS14でチェックサムをスタートさせる。ワーク
レジスタnは、現在チェックを行なっている領域が第何
番目の領域であるかを示す。最終のnの値は、ROM1
05に設定されている。詳しくは図6で説明するが、1
つの領域のチェックが終わるごとにnをカウントアップ
していき、最終のnの値に至ったときテストを終了す
る。
取る波形メモリ108の最初の領域を設定する。具体的
には、チェックサムを取る最初の領域のスタートアドレ
スSAとエンドアドレスEAを決定する。そして、ステ
ップS13でワークレジスタnに「1」をセットし、ス
テップS14でチェックサムをスタートさせる。ワーク
レジスタnは、現在チェックを行なっている領域が第何
番目の領域であるかを示す。最終のnの値は、ROM1
05に設定されている。詳しくは図6で説明するが、1
つの領域のチェックが終わるごとにnをカウントアップ
していき、最終のnの値に至ったときテストを終了す
る。
【0078】ステップS14のチェックサムのスタート
は、具体的には、CPU104から音源107に、チェ
ックサムを取る領域のスタートアドレスSAとエンドア
ドレスEAを渡し、FナンバFNを「4」とし、キーオ
ンパルスNONPの出力を指示することにより、テスト
開始を指示するものである。
は、具体的には、CPU104から音源107に、チェ
ックサムを取る領域のスタートアドレスSAとエンドア
ドレスEAを渡し、FナンバFNを「4」とし、キーオ
ンパルスNONPの出力を指示することにより、テスト
開始を指示するものである。
【0079】この指示を受けて、音源107のCPUイ
ンターフェース201は、図2で説明したように、チェ
ックサムを取る領域のスタートアドレスSAとエンドア
ドレスEAおよびFナンバFN(=4)をアドレスジェ
ネレータ部202に渡し、テストモードを示す信号TM
を「1」とし、テスト開始を指示するパルスNONPを
出力する。
ンターフェース201は、図2で説明したように、チェ
ックサムを取る領域のスタートアドレスSAとエンドア
ドレスEAおよびFナンバFN(=4)をアドレスジェ
ネレータ部202に渡し、テストモードを示す信号TM
を「1」とし、テスト開始を指示するパルスNONPを
出力する。
【0080】ステップS14でチェックサムのスタート
を指示したら、ステップS15でその他のテスト処理を
行なう。ここで、その他のテスト処理とは、ROM10
5、RAM106、及びMIDI、各種SW、操作子等
のインターフェースの動作チェックである。当該テスト
処理の終了後、ステップS16でレジスタTMの値が
「1」であるか否かを判別し、「1」なら処理を終了す
る。レジスタTMの値が「1」でないなら、ステップS
17で所定時間だけ待つ処理を行ない、再びステップS
16に戻る。
を指示したら、ステップS15でその他のテスト処理を
行なう。ここで、その他のテスト処理とは、ROM10
5、RAM106、及びMIDI、各種SW、操作子等
のインターフェースの動作チェックである。当該テスト
処理の終了後、ステップS16でレジスタTMの値が
「1」であるか否かを判別し、「1」なら処理を終了す
る。レジスタTMの値が「1」でないなら、ステップS
17で所定時間だけ待つ処理を行ない、再びステップS
16に戻る。
【0081】図6は、割込処理ルーチンである。この割
込処理は、図3の終了制御回路309から割込信号ir
qが出力されたとき、開始される。まず、ステップS2
1でレジスタTMの値が「1」か否か判別する。TMが
「1」でないなら、割込信号irqによる割込でないか
ら、ステップS22で通常の当該割込に応じた割込処理
を行なって処理を終了する。
込処理は、図3の終了制御回路309から割込信号ir
qが出力されたとき、開始される。まず、ステップS2
1でレジスタTMの値が「1」か否か判別する。TMが
「1」でないなら、割込信号irqによる割込でないか
ら、ステップS22で通常の当該割込に応じた割込処理
を行なって処理を終了する。
【0082】レジスタTMの値が「1」なら、ステップ
S23で音源107からチェックサムSUMを取り込
む。これにより、図4のラッチ409にラッチされてい
るチェックサムが、CPUインターフェース201を介
してCPU104に取り込まれる。次に、ステップS2
4で、取り込んだチェックサムSUMは正常であるか否
か判別する。チェックサムの正常値はあらかじめROM
105に設定されているものとする。
S23で音源107からチェックサムSUMを取り込
む。これにより、図4のラッチ409にラッチされてい
るチェックサムが、CPUインターフェース201を介
してCPU104に取り込まれる。次に、ステップS2
4で、取り込んだチェックサムSUMは正常であるか否
か判別する。チェックサムの正常値はあらかじめROM
105に設定されているものとする。
【0083】ステップS24でチェックサムが正常値で
ないときは、ステップS31でエラー表示を行ない、ス
テップS30に進む。ステップS24でチェックサムが
正常であったときは、ステップS25でワークレジスタ
nの値が最終のnであるか否か(すなわち、テストすべ
き最終の領域までいったか)を判別する。最終の領域の
テストまで終了したなら、ステップS29で波形メモリ
108は正常である旨を表示し、ステップS30でレジ
スタTMを「0」にリセットして、処理を終了する。
ないときは、ステップS31でエラー表示を行ない、ス
テップS30に進む。ステップS24でチェックサムが
正常であったときは、ステップS25でワークレジスタ
nの値が最終のnであるか否か(すなわち、テストすべ
き最終の領域までいったか)を判別する。最終の領域の
テストまで終了したなら、ステップS29で波形メモリ
108は正常である旨を表示し、ステップS30でレジ
スタTMを「0」にリセットして、処理を終了する。
【0084】ステップS25で最終領域でないときは、
ステップS26でワークレジスタnをインクリメント
し、ステップS27で次のチェック対象領域として第n
番目の領域を設定(ステップS12と同様)し、ステッ
プS28でチェックサムを再スタートさせて、処理を終
了する。再スタートさせたチェックサムが終了したとき
は、再度図6の割込処理が行なわれることとなる。
ステップS26でワークレジスタnをインクリメント
し、ステップS27で次のチェック対象領域として第n
番目の領域を設定(ステップS12と同様)し、ステッ
プS28でチェックサムを再スタートさせて、処理を終
了する。再スタートさせたチェックサムが終了したとき
は、再度図6の割込処理が行なわれることとなる。
【0085】なお、上記実施例では波形メモリの単純な
チェックサムを取ってチェックする例を説明したが、波
形メモリのチェックの方法は、これに限らない。例え
ば、実施例の累算部は4系列に累算するものであるの
で、その機能を利用し、4アドレスおきに読み出しデー
タをグループ化して各グループでチェックサムを取るよ
うにしてもよい。また、チェックサムでなく、さらに高
度なエラー検出方法を用いてもよい。
チェックサムを取ってチェックする例を説明したが、波
形メモリのチェックの方法は、これに限らない。例え
ば、実施例の累算部は4系列に累算するものであるの
で、その機能を利用し、4アドレスおきに読み出しデー
タをグループ化して各グループでチェックサムを取るよ
うにしてもよい。また、チェックサムでなく、さらに高
度なエラー検出方法を用いてもよい。
【0086】チェックサム以外のテスト方法としては、
パリティチェック、冗長検査(CRC,LRCなど)、
チェックビット、その他のチェックコードによる方法が
ある。また、テストが完了している波形ROMのデータ
を波形RAMに転送書き込みし、その後に読み出して正
しく記録されているかチェックするようにしてもよい。
転送書き込み、およびその後の読出しにおけるアドレス
の発生に関し、本発明を適用することができる。
パリティチェック、冗長検査(CRC,LRCなど)、
チェックビット、その他のチェックコードによる方法が
ある。また、テストが完了している波形ROMのデータ
を波形RAMに転送書き込みし、その後に読み出して正
しく記録されているかチェックするようにしてもよい。
転送書き込み、およびその後の読出しにおけるアドレス
の発生に関し、本発明を適用することができる。
【0087】さらに、CPU周辺のROMおよびRAM
のチェックに本発明を適用することもできる。例えば、
波形メモリ音源とCPUとを1チップ化したLSIがあ
り、そこではCPUプログラムと音源用波形データを1
つのROMに記憶し、音源部とCPUとで該ROMを時
分割的に使用するようになっているものがある。そこ
で、本発明のチェックサムの機能を、CPUのメモリに
ついて適用するようにしてもよい。
のチェックに本発明を適用することもできる。例えば、
波形メモリ音源とCPUとを1チップ化したLSIがあ
り、そこではCPUプログラムと音源用波形データを1
つのROMに記憶し、音源部とCPUとで該ROMを時
分割的に使用するようになっているものがある。そこ
で、本発明のチェックサムの機能を、CPUのメモリに
ついて適用するようにしてもよい。
【0088】上記実施例のアドレスカウンタは、スター
トアドレスとエンドアドレスとを設定してその間を単純
に順方向で1回読む方式のものであるが、これに限ら
ず、種々の方式のアドレスカウンタに適用してもよい。
例えば、アドレスカウンタを、ループ読みができるよう
に構成したり、リバース読みができるように構成しても
よい。
トアドレスとエンドアドレスとを設定してその間を単純
に順方向で1回読む方式のものであるが、これに限ら
ず、種々の方式のアドレスカウンタに適用してもよい。
例えば、アドレスカウンタを、ループ読みができるよう
に構成したり、リバース読みができるように構成しても
よい。
【0089】さらに、上記実施例では、テストモード時
には各時分割チャンネルのタイムスロットをすべて波形
メモリのチェック動作に用いており、これにより高速に
波形メモリのチェックが行なえるようになっているが、
その他の回路の事情などに応じて、全タイムスロットを
波形メモリのチェック動作に用いず、一部のタイムスロ
ットでチェックを行なうようにしてもよい。
には各時分割チャンネルのタイムスロットをすべて波形
メモリのチェック動作に用いており、これにより高速に
波形メモリのチェックが行なえるようになっているが、
その他の回路の事情などに応じて、全タイムスロットを
波形メモリのチェック動作に用いず、一部のタイムスロ
ットでチェックを行なうようにしてもよい。
【0090】
【発明の効果】以上説明したように、本発明によれば、
音源装置がもともと保有している波形メモリのアドレス
発生手段に、波形メモリの動作チェック用のアドレス発
生機能を付加したので、回路を複雑化することなしに、
中央処理装置の波形メモリの動作チェックにかかる負担
を軽減することができる。また、本発明では、音源装置
の側に波形メモリのチェック機能を備えているので、特
に、中央処理装置から波形メモリが直接アクセス出来な
い構成の音源装置には有効であり、その場合、波形メモ
リのテストを大幅に高速化することができる。
音源装置がもともと保有している波形メモリのアドレス
発生手段に、波形メモリの動作チェック用のアドレス発
生機能を付加したので、回路を複雑化することなしに、
中央処理装置の波形メモリの動作チェックにかかる負担
を軽減することができる。また、本発明では、音源装置
の側に波形メモリのチェック機能を備えているので、特
に、中央処理装置から波形メモリが直接アクセス出来な
い構成の音源装置には有効であり、その場合、波形メモ
リのテストを大幅に高速化することができる。
【図1】この発明の一実施例に係る波形メモリのテスト
機能を備えた音源装置を有する電子楽器の全体構成図
機能を備えた音源装置を有する電子楽器の全体構成図
【図2】音源の詳細な構成図
【図3】アドレスジェネレータ部の詳細な構成図
【図4】累算部の詳細な構成図
【図5】メインルーチンおよびテストルーチンのフロー
チャート図
チャート図
【図6】割込処理のフローチャート図
101…パネルスイッチ(PSW)、102…パネル表
示器(PI)、103…キーボード(KB)、104…
中央処理装置(CPU)、105…リードオンリーメモ
リ(ROM)、106…ランダムアクセスメモリ(RA
M)、107…音源(TG)、108…波形メモリ(W
M)、109…サウンドシステム(SS)、110…M
IDIインターフェース、201…CPUインターフェ
ース、202…アドレスジェネレータ部(AG)、20
3…補間部(INT)、204…エンベロープ発生部
(EG)、205…乗算器、206…加算器、207…
累算部(ACC)、208…エフェクタ(EF)、20
9…ディジタルアナログ変換部(DAC)。
示器(PI)、103…キーボード(KB)、104…
中央処理装置(CPU)、105…リードオンリーメモ
リ(ROM)、106…ランダムアクセスメモリ(RA
M)、107…音源(TG)、108…波形メモリ(W
M)、109…サウンドシステム(SS)、110…M
IDIインターフェース、201…CPUインターフェ
ース、202…アドレスジェネレータ部(AG)、20
3…補間部(INT)、204…エンベロープ発生部
(EG)、205…乗算器、206…加算器、207…
累算部(ACC)、208…エフェクタ(EF)、20
9…ディジタルアナログ変換部(DAC)。
Claims (4)
- 【請求項1】波形データを記憶した記憶手段を接続し、
外部の中央処理装置からの指示に応じて前記記憶手段か
ら波形データを読み出して楽音を発生する音源装置にお
いて、 通常モードとテストモードの一方を指示する指示手段
と、 前記記憶手段をアクセスするためのアドレスを発生する
アドレス発生手段であり、通常モードが指示された場合
は、中央処理装置からの指示に応じて楽音波形の基にな
る波形データを記憶手段から読み出すためのアドレスを
発生し、テストモードが指示された場合は、前記記憶手
段の動作をチェックするためのアドレスを発生するアド
レス発生手段と、 テストモードが指示された場合に、読み出した波形デー
タに対して所定の処理を施す処理手段と、 前記処理手段の処理結果を外部の中央処理装置に送出す
る送出手段と を備えたことを特徴とする音源装置。 - 【請求項2】波形データを記憶した記憶手段を接続し、
外部の中央処理装置からの指示に応じて前記記憶手段か
ら波形データを読み出して楽音を発生する音源装置にお
いて、 前記記憶手段から波形データを読み出す読み出しアドレ
スを生成するとともに、前記記憶手段のテストモードが
指示されているときは、該読み出しアドレスとしてテス
ト対象領域のアドレスを順次発生するアドレス発生手段
と、 読み出した波形データを累算するとともに、前記記憶手
段のテストモードが指示されているときは、テスト対象
領域から順次読み出した波形データを累算して累算値を
算出する累算手段と、 前記累算手段で算出した累算値を外部の中央処理装置に
送出する送出手段とを備えたことを特徴とする音源装
置。 - 【請求項3】 当該音源装置は、複数チャンネル時分割動
作するものであり、 前記アドレス発生手段は、テストモードにおいて、全チ
ャンネルを用いて波形データの読み出しを行うものであ
ることを特徴とする請求項1乃至2記載の音源装置。 - 【請求項4】 当該音源装置は、複数チャンネル時分割動
作するものであって、各チャンネルは波形補間するため
の複数のタイムスロットを有しており、 前記アドレス発生手段は、テストモードにおいて、全チ
ャンネルの全タイムスロットを用いて波形データの読み
出しを行うものであることを特徴とする請求項1乃至2
記載の音源装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6336348A JP2907040B2 (ja) | 1994-12-22 | 1994-12-22 | 波形メモリのテスト機能を備えた音源装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6336348A JP2907040B2 (ja) | 1994-12-22 | 1994-12-22 | 波形メモリのテスト機能を備えた音源装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08179776A JPH08179776A (ja) | 1996-07-12 |
JP2907040B2 true JP2907040B2 (ja) | 1999-06-21 |
Family
ID=18298202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6336348A Expired - Fee Related JP2907040B2 (ja) | 1994-12-22 | 1994-12-22 | 波形メモリのテスト機能を備えた音源装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2907040B2 (ja) |
-
1994
- 1994-12-22 JP JP6336348A patent/JP2907040B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08179776A (ja) | 1996-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5691493A (en) | Multi-channel tone generation apparatus with multiple CPU's executing programs in parallel | |
JPS608900A (ja) | 音声シンセサイザ | |
US5584034A (en) | Apparatus for executing respective portions of a process by main and sub CPUS | |
JPH03282498A (ja) | 楽音発生装置 | |
JP2599363B2 (ja) | ループ領域自動決定装置 | |
JPH1020860A (ja) | 楽音発生装置 | |
JP2907040B2 (ja) | 波形メモリのテスト機能を備えた音源装置 | |
US5837914A (en) | Electronic carillon system utilizing interpolated fractional address DSP algorithm | |
US5386529A (en) | Digital signal processor for use in sound quality treatment by filtering | |
JP2950461B2 (ja) | 楽音発生装置 | |
US5710386A (en) | Method and apparatus for efficiently controlling access to stored operation control data and tone forming data | |
US5324882A (en) | Tone generating apparatus producing smoothly linked waveforms | |
JP2797142B2 (ja) | 電子楽器用処理装置 | |
JP3252296B2 (ja) | 波形データ出力装置 | |
JP2576615B2 (ja) | 処理装置 | |
JPH0331273B2 (ja) | ||
US5687105A (en) | Processing device performing plural operations for plural tones in response to readout of one program instruction | |
JPS6286394A (ja) | 楽音信号発生方法 | |
JPS6113239B2 (ja) | ||
JP2576617B2 (ja) | 処理装置 | |
JP2768241B2 (ja) | 信号処理装置 | |
JP3320582B2 (ja) | 電子楽器の制御装置及びその制御プログラム設定方法 | |
JP3036417B2 (ja) | 信号処理装置 | |
JPH10149161A (ja) | カラオケ装置 | |
JP3116447B2 (ja) | デジタル信号処理プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |