JP3561939B2 - 波形メモリ音源 - Google Patents
波形メモリ音源 Download PDFInfo
- Publication number
- JP3561939B2 JP3561939B2 JP34202893A JP34202893A JP3561939B2 JP 3561939 B2 JP3561939 B2 JP 3561939B2 JP 34202893 A JP34202893 A JP 34202893A JP 34202893 A JP34202893 A JP 34202893A JP 3561939 B2 JP3561939 B2 JP 3561939B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- signal
- address
- channel
- write
- 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
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【産業上の利用分野】
この発明は波形メモリに記憶されている波形データを読み出すことによって楽音波形を発生する波形メモリ音源に関する。
【0002】
【従来の技術】
従来の波形メモリ音源は、発生すべき楽音の音高に対応する位相データに基づいて楽音波形のサンプル値データを記憶している波形メモリから波形データを順次読み出すことによって、楽音信号を発生している。
このような波形メモリを搭載した電子楽器においては、複数の楽音信号を同時に発音するために、時分割チャンネル処理という手法を用いている。この時分割チャンネル処理とは、ある一定時間を複数にタイムスロットに分割し、そのタイムスロット毎に波形データを読み出し、その一定時間内の複数のタイムスロットで読み出された波形データを累算することによって、波形メモリからは一定時間毎に複数の波形データが同時に読み出されるようにすることをいう。
【0003】
【発明が解決しようとする課題】
従来の時分割チャンネル処理においては、ある一定時間が可能な限り多くのタイムスロットに分割されており、また、一般には波形メモリ音源はCPUの動作クロックとは非同期で動作しているために、波形メモリ音源が時分割チャンネル発音処理を行っている場合には、CPUによる波形メモリへのアクセスを行うことはできなかった。
【0004】
本発明は上述の点に鑑みてなされたものであり、波形メモリ音源が時分割チャンネル発音処理を行っている場合でも、外部のマイクロプロセッサすなわち処理装置によるメモリに対するアクセスを行うことのできる波形メモリ音源を提供することを目的とする。
【0005】
【課題を解決するための手段】
この発明に係る波形メモリ音源は、音源用のデータを記憶するメモリと、時分割チャンネル処理で動作し、非同期で動作する処理装置からの楽音生成に関するデータに基づいて1又は複数チャンネル分の前記音源用のデータを前記メモリから読み出して所望の楽音信号を生成する楽音生成手段と、この楽音生成手段が楽音信号を生成している時に、前記時分割チャンネル中の該楽音信号生成に使用しているチャンネルの楽音信号生成動作を停止させることなく、該時分割チャンネル中の他の少なくとも1チャンネルを用いて前記処理装置から与えられるデータを前記メモリに書き込んだり又は前記メモリ内の前記データを読み出して前記処理装置に供給するアクセス手段とを備えたものである。
【0006】
【作用】
この発明に従う波形メモリ音源によれば、楽音生成手段は、時分割チャンネル処理で動作し、楽音生成に関するデータに基づいて1又は複数チャンネル分の楽音波形データをメモリから読み出して所望の楽音信号を生成する。楽音生成に関するデータは、楽音信号の生成動作とは非同期で動作する処理装置すなわちマイクロプロセッサから供給される。アクセス手段は、楽音生成手段が楽音信号を生成している時に時分割チャンネルの少なくとも1チャンネルを用いてマイクロプロセッサからの楽音波形データをメモリに書き込んだり又はメモリ内の楽音波形データを読み出してマイクロプロセッサに供給するので、時分割チャンネル発音処理中でもマイクロプロセッサは音源内の波形メモリに自由にアクセスすることができる。
【0007】
【実施例】
以下、この発明の実施例を添付図面に従って詳細に説明する。
図2は、本発明の一実施例に係るサンプラータイプの波形メモリ音源を内蔵した電子楽器の全体構成を示す図である。
マイクロプロセッサユニット(CPU)20は、この電子楽器全体の動作を制御するものである。このCPU20に対しては、データ及びアドレスバス2Jを介してROM21、RAM22、鍵盤23、パネルスイッチ24、パネル表示器25、インターフェイス26、アナログ−ディジタル変換器(ADC)27及び音源回路2Aが接続されている。
【0008】
ROM21はCPU20の各種プログラムや各種データを格納するものであり、リードオンリーメモリ(ROM)で構成されている。
RAM22は、CPU20がプログラムを実行する際に発生する各種データを一時的に記憶するものであり、ランダムアクセスメモリ(RAM)の所定のアドレス領域がそれぞれ割り当てられ、レジスタ、フラグ、バッファ等として利用される。
【0009】
鍵盤23は、発音すべき楽音の音高を選択するための複数の鍵を備えており、各鍵の操作に応じてノートオン、ノートオフ、ベロシティ、ピッチデータ等の各種データをデータ及びアドレスバス2Jを介してCPU20に出力する。鍵盤23の代わりにコンピュータ等を接続し、所望の演奏データを入力するようにしてもよい。
【0010】
パネルスイッチ24は、音色、音量、効果等を選択・設定・制御するための各種操作子を含むものである。
パネル表示器25はCPU20の制御状態、設定データの内容等の各種の情報を液晶パネル(LCD)等に表示するものである。
マイク28は音声信号や楽器音等をアナログの電圧信号に変換して、ADC27に出力する。ADC27はマイク28からのアナログの電圧信号をディジタル信号に変換して、データ及びアドレスバス2Jに出力する。
ハードディスク29は数十〜数百メガバイト(MB)の記憶容量を有し、インターフェイス26を介してデータ及びアドレスバス2Jに接続されている。
【0011】
音源回路2Aは、発生すべき楽音の音高に対応して変化する周波数データに応じて音源回路2A内の波形メモリ2Dから楽音波形データを順次読み出すメモリ読み出し方式により、楽音信号を発生するものであり、複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス2Jを経由して与えられた演奏データ(MIDI規格に準拠したデータ等)を入力し、このデータに基づき楽音信号を発生する。なお、この実施例では、電子楽器は32チャンネル時分割で動作し、その中の31チャンネルを同時発音に使用し、残りの1チャンネルをCPU20によるデータ読出書込用として使用している。
【0012】
音源回路2Aは、複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス2Jを経由して与えられた演奏データ(ピッチデータ、ノートオン、波形スタートアドレス(WSA)、ループスタートアドレス(LPS)、ループエンドアドレス(LPE)、レート、レベル、その他の各種のパラメータやMIDI規格に準拠したデータ等)を入力し、これらのデータに基づき楽音信号を発生し、サウンドシステム2Hに出力する。
【0013】
音源回路2Aは、音源I/O2B、波形発生部2C、波形メモリ2D、エンベロープ付与部2E、チャンネル累算部2F及びディジタル−アナログ変換器(DAC)2Gからなる。
音源I/O2Bは、データ及びアドレスバス2Jを介してCPU20から供給される演奏データを音源側に入力したり、音源側のデータをデータ及びアドレスバス2Jを介してCPU20に出力したりする。
【0014】
波形発生部2Cは、音源I/O2Bを介して入力される演奏データに基づいて波形メモリ2Dから波形データを読み出し、読み出された波形データに応じた楽音信号をエンベロープ付与部2Eに出力する。
波形メモリ2Dは、立上り部(アタック部)を構成する複数周期分のデータと、その後の持続部(ループ部)を構成する1周期分のデータとからなる波形データやマイク28によってサンプルされた波形データ等を記憶しており、波形発生部2Cからのアドレス信号を入力し、このアドレス信号に応じた領域に記憶されている波形データを出力する。
【0015】
エンベロープ付与部2Eは、音源I/O2Bを介して入力されるレート、レベル等の演奏データに基づいた形状のエンベロープを波形発生部2Cからの楽音信号に付加し、それをキーオンの入力に同期したタイミングでチャンネル累算部2Fに出力する。
チャンネル累算部2Fは、32チャンネル時分割でエンベロープ付与部2Eから出力される各チャンネルの楽音信号を累算処理してDAC2Gに出力する。
【0016】
DAC2Gは、ディジタルの楽音信号をアナログの楽音信号に変換してサウンドシステム2Hに出力する。
音源回路2Aから出力された楽音信号は、サウンドシステム2Hを介してスピーカから発音される。
【0017】
図1は、図2の音源I/O2Bの詳細構成を示す図である。
この実施例では、音源I/O2Bは、CPUバス制御部11、アドレスラッチ(Aラッチ)12、データラッチ(Dラッチ)13、書込用バッファアンプ14、読出用バッファアンプ15、書込用デコーダ16、書込パルス発生部17、読出用デコーダ18、チャンネルラッチ(chラッチ)19、チャンネル変換部(ch変換部)1A、チャンネルカウンタ(chカウンタ)1B、セレクタ1C、楽音制御レジスタ1D、波形メモリI/O1Eから構成される。
【0018】
音源I/O2Bは、データ及びアドレスバスを介して下位アドレスADR(8ビット構成)、データDATA(8ビット構成)、書込制御信号*WR及び読出制御信号*RDをCPU20から入力する。ここで、書込制御信号*WR及び読出制御信号*RDの「*」はローレベル“0”でイネーブルとなるアクティブローを示す。CPU20が出力するアドレスの中の上位アドレスは、各機器指定用アドレスとして利用されるので、この音源I/O2Bには、下位アドレスADRのみが入力する。
【0019】
CPUバス制御部11は、書込制御信号*WRがローレベル“0”の場合には、書込用バッファアンプ14にイネーブル信号を供給し、逆に、読出制御信号*RDがローレベル“0”の場合には、読出用バッファアンプ15にイネーブル信号を供給する。すなわち、CPUバス制御部11は、書込用バッファアンプ14又は読出用バッファアンプ15のいずれか一方のみをイネーブルとするように動作する。また、CPUバス制御部11は、書込制御信号*WR又は読出制御信号*RDがローレベル“0”になった場合、その立下りのタイミングでアドレスラッチ12及びデータラッチ13にラッチパルスLWを出力する。
【0020】
アドレスラッチ12は、CPUバス制御部11からのラッチパルスLWを入力することによって下位アドレスADRをラッチする。データラッチ13は、CPUバス制御部11からラッチパルスLWを入力することによってデータDATAをそれぞれラッチする。
書込用バッファアンプ14は、CPUバス制御部11からのイネーブル信号の入力に応じてデータDATAをデータラッチ13に出力する。読出用バッファアンプ15は、CPUバス制御部11からのイネーブル信号の入力に応じて波形メモリI/Oからの読出データWDRをデータバスDATAに出力する。
【0021】
書込用デコーダ16は、書込制御信号*WRがローレベル“0”になった場合に、アドレスラッチ12にラッチされているアドレスADRをデコードし、書込デコード信号を書込パルス発生部17に出力する。
書込パルス発生部17は、書込用デコーダ16からの書込デコード信号に応じた書込パルス信号WP1を波形メモリI/O1Eの書込アドレス端子WADに、書込パルス信号WP2を楽音制御レジスタ1Dに出力すると共に、ラッチパルスLCをチャンネルラッチ19に出力する。すなわち、書込パルス発生部17はアドレスラッチ12にラッチされているアドレスADRが「0」、「1」、「3」、「4」の場合にそれぞれ、対応するA0、A1、A3及びA4のいずれかの書込パルス信号WP1を出力する。
【0022】
読出用デコーダ18は、読出制御信号*RDがローレベル“0”になった場合に、アドレスラッチ12にラッチされているアドレスADRをデコードし、読出デコード信号RP1を波形メモリI/O1Eの読出アドレス端子RADに出力する。すなわち、読出デコーダ18はアドレスラッチ12にラッチされているアドレスADRが「2」、「5」、「6」の場合にそれぞれ、対応するA2、A5及びA6の読出デコード信号RP1のうちの1つを出力する。
【0023】
チャンネルラッチ19は、書込パルス発生部17からラッチパルスLCを入力すると、それに応じてデータラッチ13からのデータDATAをラッチする。このデータDATAはチャンネル選択データCSDとしてチャンネル変換部1Aに出力される。
チャンネル変換部1Aは、アドレスラッチ12からのアドレスADR及びチャネルラッチ19からのチャンネル選択データCSDを入力し、それに基づいて楽音制御レジスタ1Dのどのチャンネルタイミング位置にデータを書き込むのか、そのチャンネル指定アドレスCDAを発生する。
チャンネルカウンタ1Bは、0チャンネルから31チャンネルまでを順次カウントし、そのチャンネル番号をセレクタ1Cに出力する。なお、チャンネルカウンタ1Bは、最後の32番目の31チャンネルに対応した1チャンネル分の期間だけハイレベル“1”をとるようなタイミング信号φ31chを波形メモリI/Oのチャンネル端子chに出力する。
【0024】
セレクタ1Cは、チャンネル変換部1Aからのチャンネル指定アドレスCDA及びチャンネルカウンタ1Bからのチャンネル番号を入力し、いずれか一方を規則的なクロックに基づいて楽音制御レジスタ1Dに出力する。
楽音制御レジスタ1Dは、波形発生部2Cにおける波形生成動作を制御するための複数種類のデータ(音高を制御するピッチデータ、楽音の発生の開始及び終了を指示するノートオン、波形スタートアドレス(WSA)、ループスタートアドレス(LPS)、ループエンドアドレス(LPE)及び、その他変調効果やタッチによる音色変化等を制御するデータ)やエンベロープ付与部における音量エンベロープ付与動作を制御するための複数種類のデータ(演算型エンベロープ発生に必要な各ステートのレートデータとレベルデータ、ノートオン及びその他のデータ)をそれぞれ各時分割チャンネルタイミングに対応した領域に格納する複数のレジスタで構成されている。ここで、セレクタ1Cの出力するデータは、複数時分割チャンネル分記憶された各レジスタのデータのうちの、どのチャンネルタイミングのデータをアクセスするか指示するタイミング位置を指示する指示データとして使用される。
【0025】
音源の各時分割チャンネルにおいて、波形発生部2C及びエンベロープ付与部2Eでそれぞれ必要とされる上記複数種類のデータを供給するため、楽音制御レジスタ1Dに記憶された上記複数種類のデータは、音源の各時分割チャンネルのタイミングにおいてセレクタ1Cを介してチャンネルカウンタ1Bから供給されるチャンネル番号に応じて並列に読み出され、読み出された複数種類のデータはそれぞれ波形発生部2Cやエンベロープ付与部2Eに並列に供給される。
一方、CPU20からの楽音制御レジスタ1Dに対する書き込みは、上述したチャンネルカウンタ1Bによる読み出しに重ならないタイミングにおいて、セレクタ1Cがチャンネル変換部1Aの出力するチャンネル指定アドレスCDAを選択しつつ行われる。
【0026】
ところで、Aラッチ12にラッチされたアドレスADRは8ビットであるので、このアドレスにより、「0」〜「255」のアドレスの指定が可能である。上述したように、書込パルス信号WP1と読出デコード信号RP1として、アドレスの「0」〜「6」が使われており、さらにチャンネルラッチ19用のラッチパルスLCのアドレス「7」とすると、この楽音制御レジスタ1D中の上記複数種類のレジスタのそれぞれのアドレスとしては、それ以外の「8」〜「255」のアドレスが使用可能である。例えば、ノートオンがアドレス「8」、ピッチデータがアドレス「9」、アタックステートのレートデータがアドレス「10」といった具合にアドレスが割り当てられている。
【0027】
つまり、楽音制御レジスタ1Dの書き込み時、CPU20は、前もってチャンネルラッチ19に書き込みを行いたい時分割チャンネルの番号を書き込み、その後に、上述したような書き込みを行う楽音制御レジスタ1D中のレジスタの種類を指定するアドレスをAラッチ12に供給すると共に書き込む値をDラッチ13に供給し、その状態で書き込み信号*WRをイネーブルにして書き込みを実行する。
この時、チャンネル変換部1Aから楽音制御レジスタ1Dに対して上記指示データとして供給されているチャンネル指示アドレスCDAは、Aラッチ12の指定するアドレスにあるレジスタのチャンネルラッチ19に書き込まれたチャンネル番号に対応したタイミング位置を指定している。書き込み信号*WRのイネーブルで書き込み用デコーダ16にて発生するデコード信号を受けて、書込パルス発生部17は書込パルス信号WP2の複数信号線の中のAラッチ12に指定するアドレスに対応したラインに一発の書き込みパルスを発生する。この書き込みパルスに応じて、楽音制御レジスタ1Dの中の、Aラッチ12のアドレスにより指定された種類のレジスタの、チャンネルラッチ19にラッチされたチャンネル番号に対応したタイミング位置に、Dラッチ13にラッチされた値のデータが書き込まれる。
【0028】
波形メモリI/O1Eは、チャンネルカウンタ1Bからのタイミング信号φ31chをチャンネル端子chに、データラッチ13からの書込波形データWDをデータ入力端子DIに、書込パルス発生部17からの書込パルス信号WP1を書込アドレス端子WADに、読出用デコーダ18からの読出デコード信号RP1を読出アドレス端子RADにそれぞれ入力し、波形メモリ2Dから読み出された読出波形データWDR及び読出終了データWED(但し、バスはWRDと共通)をデータ出力端子DOから読出用バッファアンプ15に出力する。すなわち、波形メモリI/O1Eは、波形メモリ2Dに書き込むべき書込波形データWDを取り込み、それを所定のタイミング(チャンネルカウンタ1Bからタイミング信号φ31chが出力されるタイミング)で波形メモリ2Dに書き込む。なお、この波形メモリI/Oの詳細構成については後述する。
【0029】
図3は、図1の波形メモリI/O1Eの詳細構成を示す図である。
チャンネル制御レジスタ31には、アドレスADRが「0」の場合に書込パルス発生部17から出力される書込パルス信号A0に応じてデータラッチ13からの書込データWDが書き込まれ、書き込まれたデータのうち動作中信号USEをアクセス回数検出部35及び4連続パルス発生部3Eに出力すると共に、書込読出制御信号W/*Rを4連続パルス発生部3E及びセレクタ3Hの制御端子に出力する。なお、この動作中信号USEは図4の周波数ナンバ発生器(Fナンバ発生器)41にも出力される。
【0030】
パルス発生部32は、アドレスADRが「6」の場合に読出デコーダ18から出力される読出デコード信号A6を入力した時点で1サンプル読出完了パルスRSPをオア回路33に出力する。
オア回路33は、パルス発生部32から1サンプル読出完了パルスRSPとアドレスADRが「4」の場合に書込パルス発生部17から出力される書込パルス信号A4を入力し、両者の論理和出力をオア回路3F及びアクセス回数検出部35に出力する。
【0031】
上位ラッチ34は、アドレスADRが「3」の場合に書込パルス発生部17から出力される書込パルス信号A3を入力した時点でデータラッチ13からの書込波形データWDをラッチし、それを次のアドレスADR「4」と共に送られてくる下位8ビット構成の書込波形データWDと並列にセレクタ3HのB端子に出力する。すなわち、上位ラッチ34は8ビット構成の書込波形データWDを16ビット構成に拡張する。
【0032】
アクセス回数検出部35は、アドレスADRが「1」の場合に書込パルス発生部17から出力される書込パルス信号(以下「スタート信号」とする)A1と、チャンネル制御レジスタ31からの動作中信号USEと、オア回路33からの論理和信号を入力する。アクセス回数検出部35はスタート信号A1によりクリアされ、その後オア回路33の出力する信号をカウントして、CPU20からのアクセスが4回あったかどうか、すなわちCPU20からの書き込みの場合、4個のラッチ3J,3K,3L,3Mにそれぞれ書込波形データWDが転送されたかどうか、又、CPU20による読出しの場合は、同4個のラッチに書き込まれていた4つの16ビットデータが読み出されたかどうかを検出し、その検出信号をオア回路36に出力する。
【0033】
オア回路36は、スタート信号A1とアクセス回数検出部35からの検出信号との論理和信号をフリップフロップ回路37のセット端子Sに出力する。
フリップフロップ回路37は、オア回路36からの論理和信号をセット端子Sに、ディレイ3Cからの遅延信号をリセット端子Rに入力し、セット出力をアンド回路38に出力し、その反転出力をゲート回路3Pに出力する。
ゲート回路3Pは、アドレスADRが「2」の場合に読出デコーダ18から出力される読出デコード信号A2を入力した時点でフリップフロップ回路37の反転出力を読出終了データWEDをデータ出力端子DOから読出用バッファアンプ15を介してCPU20に出力する。
【0034】
アンド回路38は、チャンネルカウンタ1Bからのタイミング信号φ31chとフリップフロップ回路37のセット出力との論理積信号をディレイ39に出力する。
ディレイ39は、アンド回路38からの論理積信号を1チャンネル期間だけ遅延し、それをタイミング信号TSとして波形発生部2C及びディレイ3Aに出力する。
ディレイ3Aは、ディレイ39からのタイミング信号を1チャンネル期間だけ遅延し、それを4連続パルス発生部3E及びディレイ3Cに出力する。
ディレイ3Cは、ディレイ3Aからの遅延信号をからに1チャンネル期間だけ遅延し、それをフリップフロップ回路37のリセット端子Rに出力する。
【0035】
4連続パルス発生部3Eは、チャンネル制御レジスタ31からの動作中信号USE及び書込読出制御信号W/*R、並びにディレイ3Aからの遅延信号を入力し、この遅延信号がハイレベル“1”の場合に、第31チャンネルのタイムスロットの期間で連続する4つのパルスを発生し、それをオア回路3Fに出力すると共にそれを書込信号WSとして波形メモリ2Dに出力する。
【0036】
オア回路3Fは、オア回路33からの論理和信号と4連続パルス発生部3Eからの4連続パルスを入力し、両者の論理和信号を送りパルス発生器3Gに出力する。
送りパルス発生器3Gは、オア回路3Fからの論理和信号を入力する毎に送りパルスL1〜L4をラッチ3M,3L,3K,3Jに順番に出力する。
ラッチ3Jは、セレクタ3Hからの16ビット構成のデータを送りパルスL4の入力時点でラッチして、次段のラッチ3Kに出力する。ラッチ3Kは、前段のラッチ3Jからのデータを送りパルスL3の入力時点でラッチして、次段のラッチ3Lに出力する。ラッチ3Lは、前段のラッチ3Kからのデータを送りパルスL2の入力時点でラッチして、次段のラッチ3Mに出力する。ラッチ3Mは、前段のラッチ3Lからのデータを送りパルスL1の入力時点でラッチして、セレクタ3N及び波形発生部2Bに出力する。なお、ラッチ3Mからセレクタ3Nに出力されるデータは波形メモリ2Cから読み出されたメモリ読出データMRDであり、一方ラッチ3Mから波形発生部2Cに出力されるデータは波形メモリ2Dに書き込まれるべきメモリ書込データMWDである。
【0037】
ここに、ラッチパルスL1〜L4は、アンド回路3Fからのパルスが入力する毎に、L1,L2,L3,L4の時間順で微妙に遅れた送りパルスを発生するようになっており、アンド回路3Fから1パルスの入力に応じてラッチ3Lのデータがラッチ3Mに、ラッチ3Kのデータがラッチ3Lに、ラッチ3Jのデータがラッチ3Kに、そしてセレクタ3Hから新規に供給されるデータがラッチ3Jにラッチされ、全体として1データ分シフトしている。
【0038】
セレクタ3Nは、ラッチ3Mからのメモリ読出データMRDの上位8ビットを上位端子Hに、下位8ビットを下位端子Lにそれぞれ入力し、アドレスADRが「5」の場合に読出デコーダ18から出力される読出デコード信号A5を上位選択端子SHに入力し、アドレスADRが「6」の場合に読出デコーダ18から出力される読出デコード信号A6を下位選択端子SLに入力する。従って、アドレスADRが「5」の場合にはメモリ読出データMRDの上位8ビットを読出波形データWDRとして出力し、アドレスADRが「6」の場合にはメモリ読出データMRDの下位8ビットを読出波形データWDRとして出力する。
【0039】
図4は、図2の波形発生部2Cの詳細構成を示す図である。
周波数ナンバ(Fナンバ)発生器40は、楽音制御レジスタ1Dからのピッチデータに対応した周波数ナンバ(Fナンバ)をアドレスカウンタ41に出力すると共に、図3のチャンネル制御レジスタ31からの動作中信号USE及びディレイ39からのタイミング信号TSを入力している。動作中信号USEがハイレベル“1”である場合、CPU20のアクセスのために第31チャンネルが使用されており、Fナンバ発生器40はタイミング信号TSが“0”の場合、第31チャンネルのFナンバとして“0”を出力し、タイミング信号TSが“1”の場合、第31チャンネルのFナンバとて“4”をアドレスカウンタ41に出力する。この周波数ナンバは、整数部と小数部とからなるデータである。
【0040】
アドレスカウンタ41は、図1の楽音制御レジスタ1Dからのノートオンパルス及び書込パルス発生部17からのスタート信号A1をオア回路42を介して入力すると共に、楽音制御レジスタ1Dからの波形スタートアドレス(WSA)、ループスタートアドレス(LPS)及びループエンドアドレス(LPE)及び周波数ナンバ発生器40からの周波数ナンバを入力する。そして、アドレスカウンタ41は、スタート信号A1又は各時分割発音チャンネルの楽音の発音開始を指示するノートオンパルスの入力に応じて、その周波数ナンバを波形スタートアドレス(WSA)を初期値として順次カウントする。
【0041】
アドレスカウンタ41は、ノートオンパルス又はスタート信号を入力することによって初期アドレス(波形スタートアドレスWSA)にセットされ、周波数ナンバの大きさに応じてその波形スタートアドレス(WSA)を基準に順次カウントアップされたアドレスを加算器43及び44に出力する。なお、アドレスカウンタ41は読出アドレスのうち整数部のデータInを加算器43に出力し、小数部のデータDcを加算器44に出力する。周波数ナンバの値が小さい時は読出アドレスの増加量は小さくなるため、波形メモリ2Dから出力される楽音波形信号の音高は相対的に低くなり、周波数ナンバの値が大きい時は読出アドレスの増加量は大きくなるため、波形メモリ2Dから出力される楽音波形信号の音高は高くなる。
【0042】
補助カウンタ45は、時分割チャンネルの1チャンネル内に補助アドレスAAとして「0」,「1」,「2」,「3」を順次加算器43及び44に出力する。加算器43はアドレスカウンタ41からの整数部のアドレスInに補助カウンタ45からの補助アドレスAAの「0」,「1」,「2」,「3」を順次加算する。従って、波形メモリ2Dには時分割チャンネルの1チャンネル内で連続した4個のアドレスInAが順次供給され波形メモリ2D中のアドレスInに対応した4つの連続した波形データが順次読み出されるようになる。一方、加算器44はアドレスカウンタ41からの小数部のアドレスDcに補助カウンタ45からの補助アドレスAAの「0」,「1」,「2」,「3」を加算するので、補間係数メモリ4Aには1チャンネル内でアドレス小数部Dcに応じた、該4つの連続した波形データにそれぞれ対応する4個のアドレスDcAが順次供給され、4つの係数が順次読み出される。
【0043】
波形メモリ2Dは、立上り部(アタック部)の波形データとして複数周期分、その後の持続部(ループ部)の波形データとして1周期分を記憶しており、加算器43からのアドレスInAに対応するメモリ読出データMRD(16ビット構成)をバッファアンプ48及び乗算器49を介して補間累算器4Bに出力すると共に、バッファアンプ46にも出力する。なお、波形メモリ2Dには、図3の4連続パルス発生部3Eからの書込信号WSに応じてバッファアンプ47を介して入力してくる4個のメモリ書込データMWDが順次加算器43からの4個のアドレスInAに書き込まれる。
【0044】
バッファアンプ46は、アンド回路4Eからの制御信号に応じて波形メモリ2Dからのメモリ読出データMRDを図3のセレクタ3HのA端子に出力する。バッファアンプ47は、アンド回路4Gからの制御信号に応じて図3のラッチ3Mからのメモリ書込データMWDを波形メモリ2D及びバッファアンプ48に出力する。バッファアンプ48は、反転回路4Jからの制御信号に応じて波形メモリ2Dからのメモリ読出データMRD又はバッファアンプ47からのメモリ書込データMWDを乗算器49に出力する。
【0045】
補間係数メモリ4Aは、加算器44から出力される1チャンネル当たり4個のアドレスに対応した補間係数を順次乗算器49に出力する。
乗算器49は、補間係数メモリ4Aからの補間係数を各メモリ読出データMRDに乗じて補間累算器4Bに出力する。
補間累算器4Bは、乗算器49から順次出力される値を1チャンネル内で累算処理して、1つの補間出力サンプル値としてエンベロープ付与部2Eに出力する。
【0046】
バッファアンプ46、47及び48の制御は、ディレイ4C,4D、アンド回路4E,4F,4G及び反転回路4H,4Jによって行われる。ディレイ4C及び4Dは、タイミング信号φ31chが通過する経路(アンド回路38及びディレイ39,3A)との間でタイミングを調整するための遅延回路である。
アンド回路4Eは、チャンネル制御レジスタ31からの動作中信号USEとタイミング信号φ31chとを入力し、両者の論理積信号をアンド回路4F,4G及び反転回路4Jに出力する。反転回路4Hは、チャンネル制御レジスタ31からの書込読出制御信号W/*Rを入力し、その反転出力をアンド回路4Fに出力する。アンド回路4Fは、アンド回路4Eの論理積信号と書込読出制御信号W/*Rの反転出力とを入力し、その論理積信号をバッファアンプ46に出力する。アンド回路4Gは、アンド回路4Eの論理積信号と書込読出制御信号W/*Rとを入力し、両者の論理積信号をバッファアンプ47に出力する。反転回路4Jは、アンド回路4Eの論理積信号を入力し、その反転出力をバッファアンプ48に出力する。
【0047】
エンベロープ付与部2Eは、レジスタ1Dから供給される各時分割チャンネルのノートオンに応じて音源I/O2Bに予め設定されたパラメータに基いて波形エンベロープ信号(14ビット構成)を生成し、波形発生部2Cの補間累算器4Bから出力される補間されたサンプル値に対し、該エンベロープ信号に応じた振巾エンベロープ制御を行い、振巾制御されたサンプル値をチャンネル累算部2Fに出力する。
【0048】
次に、この発明に係る電子楽器が行う波形データの書込処理及び読出処理について説明する。
まず、CPU20が波形メモリ2Dから例えば、アドレス「5F」以降に書かれたサンプリング波形データを読み出す処理について説明する。
CPU20は、タイミング信号φ31chのタイミングで波形メモリ2Dのアドレス「5F」から順番にサンプリング波形データを読み出すために、楽音制御レジスタ1Dのタイミング信号φ31chの波形スタートアドレス(WSA)として「5F」を設定する。
【0049】
これと同時に、CPU20はアドレスADRとして「A0」を出力し、チャンネル制御レジスタ31の動作中信号USEをハイレベル“1”、書込読出制御信号W/*Rをローレベル“0”とするようなデータDATAを出力する。これに応じて書込用デコーダ16は「A0」に対応した書込デコード信号を書込パルス発生部17に出力する。書込パルス発生部17は、ハイレベル“1”の書込パルス信号A0をチャンネル制御レジスタ31に出力する。チャンネル制御レジスタ31は、ハイレベル“1”の動作中信号USEをアクセス回数検出部35及び4連続パルス発生部3E、周波数ナンバ発生器40及びアンド回路4Eに出力し、ローレベル“0”の書込読出制御信号W/*Rを4連続パルス発生部3E、セレクタ3H、反転回路4H、アンド回路4Gにそれぞれ出力するようになる。
次に、CPU20は、アドレスADRとして「A1」を出力する。これに応じて書込用デコーダ16は「A1」に対応した書込デコード信号を書込パルス発生部17に出力し、書込パルス発生部17は、ハイレベル“1”のスタート信号A1をアクセス回数検出部35、オア回路36及びアドレスカウンタ41に出力する。
【0050】
CPU20が上述のような処理を行うと、波形メモリI/O1E及び波形発生部2Cは、次のように動作する。
フリップフロップ回路37のセット端子Sにはオア回路36を介してスタート信号A1が入力するので、フリップフロップ回路37はハイレベル“1”のセット出力Qをアンド回路38に、ローレベル“0”の反転出力*Qをゲート3Pに出力する。
アクセス回数検出部35は、スタート信号A1の入力に応じて検出回数値をクリアする。
アドレスカウンタ41にオア回路42を介してスタート信号A1が入力すると、アドレスカウンタ41は波形メモリ読出アドレスとして楽音制御レジスタ1D内の波形スタートアドレス(WSA)の「5F」をカウンタ初期値としてセットする。
【0051】
チャンネルカウンタ1Bは、時分割チャンネルのタイミングが32番目のチャンネルになると、ハイレベル“1”のタイミング信号φ31chをアンド回路38に出力する。アンド回路38は、タイミング信号φ31chがハイレベル“1”の間、フリップフロップ回路37からの出力Q(ハイレベル“1”)をディレイ39に出力する。従って、このハイレベル“1”の信号は、ディレイ39によって1チャンネル期間だけ遅延してディレイ3Aに入力すると共に周波数ナンバ発生器40にタイミング信号TSとして入力する。
【0052】
さらに、ディレイ39から出力される遅延信号(タイミング信号TG)は、ディレイ3Aによってさらに1チャンネル期間だけ遅延して4連続パルス発生部3E及びディレイ3Cに入力する。ディレイ3Aからのハイレベル“1”の遅延信号を入力した4連続パルス発生部3Eは、書込読出制御信号W/*Rがローレベル“0”なので、その時点から1チャンネル内において連続する4個のパルスをオア回路3Fに出力する。なお、4連続パルス発生部3Eは、書込読出制御信号W/*Rがハイレベル“1”の場合には、32番目のチャンネルの間、該4個のパルスに応じてバッファ47を通じて波形メモリ2Dに順次供給される4つの書き込みサンプルデータ(メモリ書込データ)MWDに同期したタイミングで書込信号WSを波形メモリ2Dに出力する。
【0053】
周波数ナンバ発生器40は、31チャンネルのタイミングでタイミング信号TSが入力した場合、31チャンネルの周波数データとして通常の楽音制御レジスタ1Dから供給されるピッチデータに応じたFナンバに代えて“4”の値をもつFナンバをアドレスカウンタ41に出力する。これによって、アドレスカウンタ41は31チャンネルにおいてCPUによる読出書込みを行う場合、4ずつインクリメントされたアドレスInを加算器43及び44に出力する。
【0054】
このとき、補助カウンタ45は、時分割チャンネルの1チャンネル分の間に、「0」,「1」,「2」,「3」の補助アドレスAAを加算器43及び44に出力するので、波形メモリ2Dには、アドレスカウンタ41からのアドレスInと補助カウンタ45の補助アドレスAAとの加算されたアドレスInAが読出アドレスとして入力する。これによって波形メモリ2Dからは、これらの4個の読出アドレスに対応したメモリ読出データMRDがバッファアンプ46及び48に順次出力される。
【0055】
このとき、アンド回路4Fには反転回路4Hを介してハイレベル“1”の書込読出制御信号W/*Rが入力し、アンド回路4Gにはローレベル“0”の書込読出制御信号W/*Rが入力しているので、アンド回路4Fのゲートは開いた状態となり、アンド回路4Gのゲートは閉じた状態となる。従って、アンド回路4Eの論理積出力はアンド回路4Fを介してバッファアンプ46に入力する。アンド回路4Eの一方の端子にはハイレベル“1”の動作中信号USEが入力し、他方の端子にはディレイ4C,4Dを介して2チャンネル期間遅れた時点でハイレベル“1”のタイミング信号φ31chが入力するので、バッファアンプ46にはタイミング信号φ31chがハイレベル“1”になってから2チャンネル期間経過した時点でアンド回路4E及び4Fを介してハイレベル“1”の論理積信号が入力する。これによって、31チャンネルに対応する波形メモリのアクセス期間において波形メモリ2Dからのメモリ読出データMRDは、バッファアンプ46を介してセレクタ3HのA端子に入力するようになる。
【0056】
セレクタ3Hは、ローレベル“0”の書込読出制御信号W/*Rを入力しているので、バッファアンプ46を介して入力されるメモリ読出データMRDをラッチ3Jに出力する。このとき、送りパルス発生器3Gには、オア回路3Fを介して4連続パルス発生部3Eからのパルスが入力し、ラッチL1〜L4のデータが該パルスに応じて順送りされることにより、波形メモリ2Dから順次読み出された4個のメモリ読出データMRDは次々とラッチ3J,3K,3L,3Mに転送され、ラッチされる。
【0057】
4個のメモリ読出データMRDがラッチ3J,3K,3L,3Mに転送され、ラッチされると、その取り込み終了に合わせてディレイ3Cからハイレベル“1”出力がフリップフロップ回路37のリセット端子Rに入力し、フリップフロップ回路37のセット出力Qをローレベル“0”に反転出力*Qをハイレベル“1”にセットする。
CPU20は、アドレスADRとして「A2」を出力する。これに応じて読出用デコーダ18は「A2」に対応した読出デコード信号A2をゲート3Lに出力し、ゲート3Lを開き、フリップフロップ回路37の反転出力*Qを読出して、該反転出力*Qが“1”になったタイミングで、波形メモリ2Dからのメモリ読出データMRDのラッチ3J,3K,3L,3Mへの取り込みが完了したことを検出する。
【0058】
以上の処理が終了した後、CPU20は、アドレスADR(A5,A6)を交互に4回出力し、セレクタ3NのL端子及びH端子を選択し、8個の8ビットの読出データWDRをバッファアンプ15を介して順次読み出す。
すなわち、CPU20がアドレスADRとして「A5」を出力すると、読出用デコーダ18は読出デコード信号A5をセレクタ3Nに出力する。セレクタ3Nは、ラッチ3Mにラッチされているメモリ読出データMRDの上位8ビットを読出データWDRとして読出データバスに出力され、該上位8ビットがバッファ15を介してCPUにより読み出される。次に、CPU20がアドレスADRとして「A6」を出力すると、読出用デコーダ18は読出デコード信号A6をセレクタ3Nに出力する。セレクタ3Nは、ラッチ3Mにラッチされているメモリ読出データMRDの下位8ビットを読出データWDRとして読出データバスに出力され、バッファ15を介してCPUにより読み出される。
【0059】
このとき、パルス発生部32はデコード信号A6を入力する度に1サンプル読出完了パルスRSPをオア回路33を介してアクセス回数検出部35に出力すると共にオア回路33及び3Fを介して送りパルス発生器3Gに出力する。アクセス回数検出部35は、パルス発生部32からの1サンプ読出完了パルスRSPの入力回数をカウントし、そのカウント値が『4』になったかどうか、すなわちCPU20が4回読出しアクセスしたかどうかを検出する。なお、この時点では、CPU20は1回のアクセスしかしていない。
一方、送りパルス発生器3Gは、この1サンプル読出完了パルスRSPの入力に応じてラッチ3J,3K,3L,3Mのデータを1段ずつラッチ3M側にシフトする。
【0060】
CPU20は、上記の動作(アドレスADR(A5,A6)を交互に出力する動作)を4回繰り返すことによって、波形メモリ2Dの4ワード分のデータを読み出す。
この読出動作が終了すると、アクセス回数検出部35はオア回路33から出力される1サンプル読出完了パルスRSPを計数して、4ワード分のデータ読み出しが終了した事を検出し、ハイレベル“1”の検出信号をオア回路36を介してフリップフロップ回路37のセット端子Sに出力する。これによって、フリップフロップ回路37は、再びセットされ、ハイレベル“1”のセット出力Qをアンド回路38に出力する。そして、次回のタイミング信号φ31chの間に波形メモリ2Dから4ワード分のデータが先程と同様に波形メモリ2Dから順次読み出され、4段のラッチ3J,3K,3L,3Mに取り込まれ、その後、再びフリップフロップ回路37がリセットされる。なお、この場合には、波形発生部2Cのアドレスカウンタ41への波形スタートアドレス(WSA)の書込処理は行われずに、前回のカウント値が継続して使用される。
【0061】
CPU20は、以上の動作を繰り返し実行することにより、波形スタートアドレス(WSA)の「5F」から順次4ずつアドレスを増加させながら、対応するアドレスに記憶されているデータを連続して読み出すことができる。
波形メモリ2Dからのデータ読み出し処理を終了する時は、CPU20は、フリップフロップ回路37がリセットされている状態(セット出力Qがローレベル“0”の状態)で、アドレスADRとして「A0」を出力し、書込パルス信号A0をチャンネル制御レジスタ31に出力し、チャンネル制御レジスタ31の動作中信号USEをローレベル“0”とするようなデータDATAを出力する。これによって、チャンネル制御レジスタ31は、ローレベル“0”の動作中信号USEをアクセス回数検出部35及び4連続パルス発生部3E、周波数ナンバ発生器40及びアンド回路4Eに出力するようになるので、これ以降のデータ読み出し動作は行われなくなる。
【0062】
次に、CPU20が波形メモリ2Dの、例えばアドレス「6F」以降の領域にサンプリング波形データを書き込む処理について説明する。
CPU20は、タイミング信号φ31chのタイミングで波形メモリ2Dのアドレス「6F」から順番にサンプリング波形データを書き込むために、楽音制御レジスタ1Dのタイミング信号φ31chの波形スタートアドレス(WSA)すなわち波形メモリ2Dの書き込み先頭アドレスに「6F」を設定する。
【0063】
これと同時に、CPU20はアドレスADRとして「A0」を出力し、チャンネル制御レジスタ31の書込読出制御信号W/*Rをハイレベル“1”とするようなデータDATAを出力する。これに応じて書込用デコーダ16は「A0」に対応した書込デコード信号を書込パルス発生部17に出力し、書込パルス発生部17は、ハイレベル“1”の書込パルス信号A0をチャンネル制御レジスタ31に出力する。チャンネル制御レジスタ31は、ハイレベル“1”の書込読出制御信号W/*Rを4連続パルス発生部3E、セレクタ3H、反転回路4H、アンド回路4Gにそれぞれ出力する。
なお、この時点では動作中信号USEはローレベル“0”にしておく。
【0064】
この処理が終了した後、CPU20は、アドレスADR(A3,A4)を交互に4回ずつ出力し、書込波形データWDをラッチ3J,3K,3L,3Mに書き込む。
すなわち、CPU20が最初の波形データの上位8ビットと共にアドレスADRとして「A3」を出力すると、書込用デコーダ16は「A3」に対応した書込デコード信号を書込パルス発生部17に出力し、書込パルス発生部17は、ハイレベル“1”の書込パルス信号A3を上位ラッチ34に出力する。上位ラッチ34は、データラッチ13からの上位8ビットの書込波形データをラッチする。次に、CPU20が同波形データの下位8ビットと共にアドレスADRとして「A4」を出力すると、書込用デコーダ16は「A4」に対応した書込デコード信号を書込パルス発生部17に出力し、書込パルス発生部17は、ハイレベル“1”の書込パルス信号A4をオア回路33及び3Fを介して送りパルス発生器3Gに出力する。
【0065】
セレクタ3Hは、ハイレベル“1”の書込読出制御信号W/*Rを入力しているので、データラッチ13からの下位8ビットとラッチ34からの上位8ビットの全16ビットで構成される書込波形データWDをラッチ3Jに出力する。このとき、送りパルス発生器3Gには、オア回路33及び3Fを介して書込パルス信号A4が入力するので、上位ラッチ34にラッチされた上位8ビットのデータと今回供給された下位8ビットのデータとの組み合わされた16ビットの書込波形データWDがラッチ3Jに取り込まれると共に、もともとラッチ3J,3K,3Lにラッチされていたデータがそれぞれラッチ3K,3L,3Mにラッチされ、全体としてラッチされているデータが1つ順送りされる。
CPU20は、上述の動作(アドレスADR(A3,A4)を交互に出力する動作)を4回繰り返し行うことによって、4ワード分の書込波形データWDをラッチ3J,3K,3L,3Mに蓄える。
【0066】
次に、CPU20はアドレス「A1」のチャンネル制御レジスタ31の動作中信号USEに“1”を書き込む。そして、CPU20は、アドレスADRとして「A1」を出力する。これに応じて書込用デコーダ16は「A1」に対応した書込デコード信号を書込パルス発生部17に出力し、書込パルス発生部17は、ハイレベル“1”のスタート信号A1をアクセス回数検出部35、オア回路36及びアドレスカウンタ41に出力する。
【0067】
フリップフロップ回路37は、スタート信号A1をオア回路36を介してセット端子Sに入力することによって、ハイレベル“1”のセット出力Qをアンド回路38に、ローレベル“0”の反転出力*Qをゲート3Lに出力する。
アクセス回数検出部35は、スタート信号A1の入力に応じて検出回数値をクリアする。
アドレスカウンタ41は、スタート信号A1をオア回路42を介して入力することによって、波形メモリ書込アドレスとして楽音制御レジスタ1D内の波形スタートアドレス(WSA)の「6F」をカウンタ初期値として格納する。
【0068】
チャンネルカウンタ1Bは、時分割チャンネルのタイミングが32番目のチャンネルになると、ハイレベル“1”のタイミング信号φ31chをアンド回路38に出力する。アンド回路38は、タイミング信号φ31chがハイレベル“1”の間、フリップフロップ回路37からのセット出力Q(ハイレベル“1”)をディレイ39に出力する。このハイレベル“1”の信号は、ディレイ39によって1チャンネル期間だけ遅延してディレイ3Aに入力すると共に周波数ナンバ発生器40にタイミング信号TSとして入力する。
【0069】
さらに、ディレイ39から出力される遅延信号(タイミング信号TG)は、ディレイ3Aによってさらに1チャンネル期間だけ遅延して4連続パルス発生部3E及びディレイ3Cに入力する。ディレイ3Aからのハイレベル“1”の遅延信号を入力した4連続パルス発生部3Eは、書込読出制御信号W/*Rがハイレベル“1”なので、その時点から1チャンネル内において連続する3個のパルスをオア回路3Fを介して送りパルス発生器3Gに出力すると共にタイミング信号φ31chがハイレベル“1”の間、連続する4個のパルスを書込信号WSとして波形メモリ2Dに出力する。
なお、この場合の上記3個のパルスは、読み出し時(書込読出制御信号W/*Rが“0”の時)に発生する4個のパルスのうちの最初の一発を除いた残りの3個のタイミングで発生している。
【0070】
周波数ナンバ発生器40は、タイミング信号TSを入力する度にアドレスカウンタ41に通常出力している31チャンネルのピッチデータに対応するFナンバに代えて“4”の値のFナンバを出力している。これによって、アドレスカウンタ41は31チャンネルについて、4ずつインクリメントされたアドレスInを加算器43及び44に出力する。
このとき、補助カウンタ45は、時分割チャンネルの1チャンネル分の間に、「0」,「1」,「2」,「3」の補助アドレスAAを加算器43及び44に出力するので、波形メモリ2Dには、アドレスカウンタ41からのアドレスInと補助カウンタ45の補助アドレスAAとの加算された4連続のアドレスInAが書込アドレスとして入力する。
【0071】
アンド回路4Fには反転回路4Hを介してローレベル“0”の書込読出制御信号W/*Rが入力し、アンド回路4Gにはハイレベル“1”の書込読出制御信号W/*Rが入力しているので、アンド回路4Fのゲートは閉じた状態となり、アンド回路4Gのゲートは開いた状態となる。従って、アンド回路4Eの論理積出力はアンド回路4Gを介してバッファアンプ47に入力する。アンド回路4Eの一方の端子にはハイレベル“1”の動作中信号USEが入力し、他方の端子にはディレイ4C,4Dを介して2チャンネル期間分遅れた時点でハイレベル“1”のタイミング信号φ31chが入力するので、バッファアンプ47にはタイミング信号φ31chがハイレベル“1”になってから2チャンネル期間経過した時点でアンド回路4E及び4Gを介してハイレベル“1”の論理積信号が入力する。これによって、31チャンネルに対応する波形メモリ2Dのアクセス期間においてラッチ3Mからのメモリ書込データMWDは、バッファアンプ47を介して波形メモリ2Dのデータ入力端子及びバッファアンプ48に入力するようになる。
【0072】
送りパルス発生器3Gには、オア回路3Fを介して4連続パルス発生部3Eからの3個の連続パルスが入力する。送りパルス発生器3Gは、このパルス入力に応じてラッチ3J,3K,3L,3Mのデータを1段ずつラッチ3M側にシフトする。ラッチ3J,3K,3L,3Mにラッチされていたメモリ書込データMWDは次々とラッチ3Mに転送され、ラッチ3Mからバッファアンプ47を介して波形メモリ2に入力する。これと同時に4連続パルス発生部3Eからは4個の連続する書込信号WS及び4連続のアドレスInAが波形メモリ2Dには入力するので、このアドレス領域に4ワード分の書込波形データWDが順次書き込まれる。
ラッチ3J,3K,3L,3Mに蓄積されていた4個のメモリ書込データMWDが波形メモリ2Dに書き込まれると、それに合わせてディレイ3Cからハイレベル“1”の出力がフリップフロップ回路37のリセット端子Rに入力し、フリップフロップ回路37のセット出力Qをローレベル“0”に反転出力*Qをハイレベル“1”にセットする。
【0073】
CPU20は、上述した4データの波形メモリ2Dへの書込みの完了を検知するために、アドレス「A2」のデータを読み出す。この際、読出用デコーダ18は「A2」に対応した読出デコード信号A2をゲート3Pに出力し、ゲート3Pを開き、CPU20は、フリップフロップ回路37の反転出力*Qを読出し、メモリ書込データMWDのラッチ3J,3K,3L,3Mから波形メモリ2Dへの書込処理が終了したことを検出する。
書込処理の終了を検出したCPU20は、アドレスADR(A3,A4)を交互に4回ずつ出力し、新たな4ワード分の書込波形データWDをラッチ3J,3K,3L,3Mに蓄え、上述の動作を繰り返し実行して、メモリ書込データMWDを波形メモリ2Dに書き込む。CPU20は、以上の動作を繰り返し実行することにより、波形スタートアドレス(WSA)の「6F」から順次4ずつアドレスを増加させながら、対応するアドレスにメモリ書込データMWDを書き込む。
【0074】
波形メモリ2Dへのデータ書込処理を終了する時は、CPU20は、フリップフロップ回路37がリセットされている状態(セット出力Qがローレベル“0”の状態)で、アドレスADRとして「A0」を出力し、書込パルス信号A0をチャンネル制御レジスタ31に出力し、チャンネル制御レジスタ31の動作中信号USE及び書込読出制御信号W/*Rをローレベル“0”とするようなデータDATAを出力する。これによって、チャンネル制御レジスタ31は、ローレベル“0”の動作中信号USEをアクセス回数検出部35及び4連続パルス発生部3E、周波数ナンバ発生器40及びアンド回路4Eに出力するようになるので、これ以降のデータ書き込み動作は行われなくなる。
【0075】
【発明の効果】
以上のようにこの発明によれば、波形メモリ音源が時分割チャンネル発音処理を行っていても、CPU等の処理装置による波形メモリへのアクセスを行うことができるという効果がある。
【図面の簡単な説明】
【図1】図2の音源I/Oの詳細構成を示す図である。
【図2】本発明の一実施例に係るサンプラータイプの波形メモリ音源を内蔵した電子楽器の全体構成を示す図である。
【図3】図1の波形メモリI/Oの詳細構成を示す図である。
【図4】図2の波形発生部の詳細構成を示す図である。
【符号の説明】
11…CPUバス制御部、12…アドレスラッチ、13…データラッチ、14…書込用バッファ、15…読出用バッファアンプ、16…書込用デコーダ、17…書込パルス発生部、18…読出用デコーダ、19…チャンネルラッチ、1A…チャンネル変換部、1B…チャンネルカウンタ、1C…セレクタ、1D…楽音制御レジスタ、1E…波形メモリI/O
Claims (1)
- 音源用のデータを記憶するメモリと、
時分割チャンネル処理で動作し、非同期で動作する処理装置からの楽音生成に関するデータに基づいて1又は複数チャンネル分の前記音源用のデータを前記メモリから読み出して所望の楽音信号を生成する楽音生成手段と、
この楽音生成手段が楽音信号を生成している時に、前記時分割チャンネル中の該楽音信号生成に使用しているチャンネルの楽音信号生成動作を停止させることなく、該時分割チャンネル中の他の少なくとも1チャンネルを用いて前記処理装置から与えられるデータを前記メモリに書き込んだり又は前記メモリ内の前記データを読み出して前記処理装置に供給するアクセス手段と
を備えたことを特徴とする波形メモリ音源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34202893A JP3561939B2 (ja) | 1993-12-14 | 1993-12-14 | 波形メモリ音源 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34202893A JP3561939B2 (ja) | 1993-12-14 | 1993-12-14 | 波形メモリ音源 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004083463A Division JP3858905B2 (ja) | 2004-03-22 | 2004-03-22 | メモリ使用音源装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07168574A JPH07168574A (ja) | 1995-07-04 |
JP3561939B2 true JP3561939B2 (ja) | 2004-09-08 |
Family
ID=18350623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34202893A Expired - Fee Related JP3561939B2 (ja) | 1993-12-14 | 1993-12-14 | 波形メモリ音源 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3561939B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6326537B1 (en) * | 1995-09-29 | 2001-12-04 | Yamaha Corporation | Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency |
JP5614420B2 (ja) * | 2012-03-09 | 2014-10-29 | カシオ計算機株式会社 | 楽音発生装置、電子楽器、プログラム及び楽音発生方法 |
-
1993
- 1993-12-14 JP JP34202893A patent/JP3561939B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07168574A (ja) | 1995-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5614420B2 (ja) | 楽音発生装置、電子楽器、プログラム及び楽音発生方法 | |
US5446237A (en) | Electronic musical instrument having a control section memory for generating musical tone parameters | |
JP3561939B2 (ja) | 波形メモリ音源 | |
US5710386A (en) | Method and apparatus for efficiently controlling access to stored operation control data and tone forming data | |
US4644841A (en) | Electronic musical instrument | |
JP3858905B2 (ja) | メモリ使用音源装置 | |
JPH07121181A (ja) | 音声情報処理装置 | |
JPS59137997A (ja) | 波形メモリ読出し方式 | |
JP2950461B2 (ja) | 楽音発生装置 | |
JP3658826B2 (ja) | 楽音生成方法 | |
JP2797142B2 (ja) | 電子楽器用処理装置 | |
JPS6330638B2 (ja) | ||
JP2576614B2 (ja) | 処理装置 | |
JP3740717B2 (ja) | 音源装置及び楽音生成方法 | |
JP3504387B2 (ja) | 電子楽器 | |
JP2571559B2 (ja) | 波形信号処理方法 | |
JP3543203B2 (ja) | 電子楽器 | |
JP3651675B2 (ja) | 電子楽器 | |
US5895879A (en) | Musical tone-generating method and apparatus capable of approximating envelope characteristic of a waveform of a musical tone by a polygonal line | |
JP3095323B2 (ja) | 電子楽器 | |
JP3245411B2 (ja) | 電子楽器 | |
JPS5846036B2 (ja) | 電子楽器 | |
JPH02179695A (ja) | 処理装置 | |
JP2000206972A (ja) | 波形デ―タの演奏制御装置 | |
JPH0799478B2 (ja) | 電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20031203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040322 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040511 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040524 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080611 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090611 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100611 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100611 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110611 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120611 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |