JP2014112198A - 音発生装置 - Google Patents

音発生装置 Download PDF

Info

Publication number
JP2014112198A
JP2014112198A JP2013172067A JP2013172067A JP2014112198A JP 2014112198 A JP2014112198 A JP 2014112198A JP 2013172067 A JP2013172067 A JP 2013172067A JP 2013172067 A JP2013172067 A JP 2013172067A JP 2014112198 A JP2014112198 A JP 2014112198A
Authority
JP
Japan
Prior art keywords
read
waveform
address
sample
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013172067A
Other languages
English (en)
Inventor
Hiroyuki Tsuchiya
博之 土屋
Tokio Shirakawa
登喜男 白川
Eiichi Takeishi
永一 武石
Shigematsu Fujita
成松 藤田
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.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2013172067A priority Critical patent/JP2014112198A/ja
Publication of JP2014112198A publication Critical patent/JP2014112198A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】音源部が読み出す波形サンプルデータとCPUが読み出すプログラムの両方を記憶するメモリとしてシリアルフラッシュを利用して基板をコンパクトに構成するとともに、シリアルフラッシュを利用しても従来と同等程度の楽音発生chの数を確保できるような、音発生装置を提供する。
【解決手段】複数の波形サンプルからなる波形データと、複数のプログラムコードからなる制御プログラムとを記憶するシリアルメモリ121と、音源部102〜107とプロセッサとを備える。アクセス部108は、音源部から発行される波形サンプル要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで読み出された波形サンプルを音源部に供給するとともに、プロセッサから発行されるフェッチ要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで読み出されたプログラムコードをプロセッサに供給する。
【選択図】図1

Description

この発明は、端子数が少ないシリアルフラッシュメモリを利用した音発生装置に関する。
従来より、楽音信号を生成するための、いわゆる波形メモリ音源が知られている。波形メモリ音源では、楽音発生指示に応じて波形メモリから波形データを読み出すことにより楽音信号を生成する。波形データを記憶しておく波形メモリとしては、例えば、ROM(リードオンリメモリ)、フラッシュメモリ、RAM(ランダムアクセスメモリ)などの各種の記憶装置が用いられる。
下記特許文献1は、内部にCPUと音源部とを備える1チップの音源LSIを開示する。この音源LSIには、前記CPUが実行するプログラムと前記音源部が楽音生成に使用する波形サンプルデータを記憶した読み出し専用メモリが接続される。前記音源部は、時分割処理で複数チャンネル(ch)の楽音生成を行うため、各chのタイムスロットで、複数ビットパラレルのアドレスによって前記読み出し専用メモリをアクセスし、複数ビットパラレルのデータである波形サンプルを読み出す。並行して、前記CPUは、各種の制御動作を実行するために、複数ビットパラレルのアドレスによって前記読み出し専用メモリをアクセスし、複数ビットパラレルのデータである、制御プログラムの各プログラム命令を読み出して実行する。
一方、基板上の配置面積を押さえ、配線も少なくできる半導体記憶装置として、いわゆるシリアルフラッシュメモリ(以下、単に「シリアルフラッシュ」と呼ぶ)が知られている(例えば、下記非特許文献1参照)。シリアルフラッシュは、端子(ピン)の数を少なくし、各ピンに複数の役割を持たせた記憶装置である。例えば、8ピンの素子で、電源供給用のVCCピン、接地用のGNDピン、チップセレクト信号用の/CSピン、クロック信号用のCLKピンのほか、データ入出力などに共用するIO1〜IO4ピンを備えたものなどがある。シリアルフラッシュは、設定したモードや指定した命令によって幾つかの異なる態様でのデータ読み出しを行うことができる。また、シリアルフラッシュはピン数が少なく、結果的に配線も少なくなって実装面積を狭くすることができる。
特許第3152198号公報
http://www.winbond.com/hq/enu/ProductAndSales/ProductLines/FlashMemory/SerialFlash/W25Q64BV.htm
上述した従来の波形メモリ音源では、波形サンプルデータを記憶する波形メモリとしてアドレス端子とデータ入出力端子とを備えるピン数の多いメモリを使用していたため、音源LSIと波形メモリの各チップサイズは大きくなり、その間の配線の本数が多くなり、結果的に実装面積が広くなって、大型のプリント回路基板が必要になるという問題があった。音源LSIおよび波形メモリの各チップサイズを小さくし、基板をコンパクトにするために、上述のピン数が少ないシリアルフラッシュに波形データを記憶することが考えられる。しかし、シリアルフラッシュはシリアルデータでデータ読み出しを行うため、当然ながら読み出し速度は遅く、普通に波形サンプルデータを読み出していたのでは、発音ch数が少なくなってしまうという問題がある。
特に、上述の特許文献1に記載されているような読み出し専用メモリに波形サンプルデータとCPUが実行するプログラムを記憶するタイプの電子楽器では、波形サンプルデータの読み出しと並行してCPUによるプログラムの読み出しも行われるので、さらに波形サンプルデータの読み出し速度が抑えられてしまう。
本発明は、音源部が読み出す波形サンプルデータを記憶するメモリとしてシリアルフラッシュを利用して基板をコンパクトに構成するとともに、シリアルフラッシュを利用しても従来と同等程度の楽音発生chの数を確保できるような、音発生装置を提供することを目的とする。また、本発明は、音源部が読み出す波形サンプルデータとCPUが読み出すプログラムの両方を記憶するメモリとしてシリアルフラッシュを利用して基板をコンパクトに構成するとともに、シリアルフラッシュを利用しても従来と同等程度の楽音発生chの数を確保できるような、音発生装置を提供することを目的とする。
上記目的を達成するため、請求項1に係る音発生装置は、複数の波形サンプルからなる波形データと、複数のプログラムコードからなる制御プログラムとを記憶するシリアルメモリと、前記シリアルメモリへの読み出しアクセスを行うアクセス部と、各時分割チャンネル毎に、前記アクセス部に対して1つの読み出しアドレスSAを含む波形サンプル要求を発行し、該波形サンプル要求に応じて前記アクセス部から供給される波形サンプルに基づいて、音信号を生成する音源部と、前記アクセス部に対して1つの読み出しアドレスCAを含むプログラムコードのフェッチ要求を発行し、該フェッチ要求に応じて前記アクセス部から供給される1つ以上のプログラムコードを取り込んで前記制御プログラムを実行し前記音源部を制御するプロセッサとを備えており、前記アクセス部は、前記音源部から発行される波形サンプル要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで読み出された波形サンプルを前記音源部に供給するとともに、前記プロセッサから発行されるプログラムコードのフェッチ要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで読み出された1つ以上のプログラムコードを前記プロセッサに供給することを特徴とする。
請求項2に係る音発生装置は、複数の波形サンプルからなる波形データと、複数のプログラムコードからなる制御プログラムとを記憶するシリアルメモリと、前記シリアルメモリへの読み出しアクセスを行うアクセス部と、各時分割チャンネル毎に、前記アクセス部に対して1つの読み出しアドレスSAを含む波形サンプル要求を発行し、該波形サンプル要求に応じて前記アクセス部から供給されるn個(nは1以上の整数)の波形サンプルに基づいて、音信号を生成する音源部と、前記アクセス部に対してプログラムカウンタが示す1つの読み出しアドレスCAを含むプログラムコードのフェッチ要求を発行し、該フェッチ要求に応じて前記アクセス部から供給される1つ以上のプログラムコードを取り込んで前記制御プログラムを実行し前記音源部を制御するプロセッサとを備えており、前記アクセス部は、前記音源部から発行される波形サンプル要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで読み出されたn個の波形サンプルを前記音源部に供給するとともに、前記プロセッサから発行されるプログラムコードのフェッチ要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで読み出された1つ以上のプログラムコードを前記プロセッサに供給することを特徴とする。
上記請求項1および2の「複数の波形サンプルからなる波形データ」はデータ圧縮されているものを含む。この場合、アクセス部が、波形サンプル要求に応じて、シリアルメモリから必要な圧縮データを読み出し、デコードして得た波形サンプルを音源部に供給する。請求項3に係る発明は、請求項1または2に記載の音発生装置において、前記シリアルメモリに記憶されている波形データはデータ圧縮されており、前記アクセス部は、前記音源部から発行される波形サンプル要求に応じて、当該波形サンプルに対応する圧縮データを読み出し、デコードして得た波形サンプルを前記音源部に出力するものであることを特徴とする。
請求項4に係る発明は、請求項1から3の何れか1つに記載の音発生装置において、前記シリアルメモリは、第1回目の読み出しでは、命令コードとアドレスを受け付けて当該アドレスのデータを出力し、第2回目以降の読み出しでは、命令コードを省略してアドレスのみを受け付けて当該アドレスのデータを出力する、継続読出モードを設定できるものであり、前記アクセス部は、電源投入時またはリセット時の最初の読み出しにおいて、前記シリアルメモリを前記継続読出モードに設定し、前記音源部からの前記各チャンネル毎の波形サンプル要求に応じて、命令コードを省略したアドレスのみによるアクセスを行うことにより、前記先頭アドレスSAからの波形サンプルを読み出して前記音源部に供給し、前記プロセッサからのプログラムコードのフェッチ要求に応じて、命令コードを省略したアドレスのみによるアクセスを行うことにより、前記プログラムコードを読み出して前記プロセッサに供給することを特徴とする。
請求項5に係る発明は、請求項1から4の何れか1つに記載の音発生装置において、前記アクセス部における各チャンネルのタイムスロットは、前記音源部からの波形サンプル要求が発生したときに、前記プロセッサからのプログラムコードのフェッチ要求に応じたプログラムコードの読み出しが行われていたとしても、そのプログラムコードの読み出しが終わったあとに、前記音源部からの波形サンプル要求に応じた波形サンプルの読み出しを、その同じタイムスロット内で完了できるに十分の時間長を有していることを特徴とする。
請求項6に係る発明は、請求項1から5の何れか1つに記載の音発生装置において、前記アクセス部は、前記波形サンプル要求に応じて、1回の読み出しアクセスで、「1波形サンプルのビット長×n個」のデータを連続的に読み出すことを特徴とする。
請求項7に係る発明は、請求項6に記載の音発生装置において、前記シリアルメモリに記憶されている波形データは、ループスタートサンプルからループエンドサンプルまでの波形サンプルを繰り返し読み出して連続的に音信号生成を行うためのループ用サンプルデータを含み、かつ、ループエンドサンプルの次のn−1個のアドレスには前記ループスタートサンプルからのn−1個のサンプルデータと同じデータを設定しておくものとし、前記音源部は、各時分割チャンネル毎に、前記アクセス部に対して1つの読み出しアドレスSAを含む波形サンプル要求を発行する際、そのアドレスSAが前記ループエンドサンプルのアドレスを超えたとき、そのアドレスSAから前記ループ用サンプルデータの長さを減算して新たなアドレスSAを求め、求めたアドレスSAで波形サンプル要求を発行するものであり、前記アクセス部は、前記音源部から発行される波形サンプル要求のアドレスSAが前記ループスタートサンプルのアドレスからループエンドサンプルのアドレスまでに含まれているときは、1回の読み出しアクセスで、該アドレスSAから前記n個の波形サンプルを連続的に読み出すものであることを特徴とする。
請求項8に係る発明は、請求項1から7の何れか1つに記載の音発生装置において、前記アクセス部は、前記プログラムコードのフェッチ要求に応じて、1回の読み出しアクセスで、「1プログラムコードのビット長」のデータを連続的に読み出すものであり、該1プログラムコードのビット長は各プログラムコードのフェッチ要求毎に変化するものであることを特徴とする。
請求項9に係る発明は、請求項1から7の何れか1つに記載の音発生装置において、前記アクセス部は、前記プログラムコードのフェッチ要求に応じて、1回の読み出しアクセスで、「1プログラムコードのビット長×m個」のデータを連続的に読み出すものであり、前記プロセッサは、前記「1プログラムコードのビット長×m個」のデータを連続的に取り込むものであることを特徴とする。
請求項10に係る発明は、複数の波形サンプルからなる波形データを記憶するシリアルメモリと、前記シリアルメモリへの読み出しアクセスを行うアクセス部と、各時分割チャンネル毎に、前記アクセス部に対して1つの読み出しアドレスSAを含む波形サンプル要求を発行し、該波形サンプル要求に応じて前記アクセス部から供給される波形サンプルに基づいて、音信号を生成する音源部とを備えており、前記アクセス部は、前記音源部から発行される波形サンプル要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで前記シリアルメモリから「1波形サンプルのビット長×n個」のデータを連続的に読み出し、読み出した波形サンプルを前記音源部に供給することを特徴とする。
請求項11に係る発明は、請求項10に記載の音発生装置において、前記シリアルメモリに記憶されている波形データは、ループスタートサンプルからループエンドサンプルまでの波形サンプルを繰り返し読み出して連続的に音信号生成を行うためのループ用サンプルデータを含み、かつ、ループエンドサンプルの次のn−1個のアドレスには前記ループスタートサンプルからのn−1個のサンプルデータと同じデータを設定しておくものとし、前記音源部は、各時分割チャンネル毎に、前記アクセス部に対して1つの読み出しアドレスSAを含む波形サンプル要求を発行する際、そのアドレスSAが前記ループエンドサンプルのアドレスを超えたとき、そのアドレスSAから前記ループ用サンプルデータの長さを減算して新たなアドレスSAを求め、求めたアドレスSAで波形サンプル要求を発行するものであり、前記アクセス部は、前記音源部から発行される波形サンプル要求のアドレスSAが前記ループスタートサンプルのアドレスからループエンドサンプルのアドレスまでに含まれているときは、1回の読み出しアクセスで、該アドレスSAから前記n個の波形サンプルを連続的に読み出すものであることを特徴とする。
請求項12に係る発明は、請求項10または11に記載の音発生装置において、前記シリアルメモリに記憶されている波形データはデータ圧縮されており、前記アクセス部は、前記音源部から発行される波形サンプル要求に応じて、当該波形サンプルに対応する圧縮データを読み出し、デコードして得た波形サンプルを前記音源部に出力するものであることを特徴とする。
本発明によれば、波形データを記憶する媒体としてシリアルメモリを採用し、シリアルメモリから波形データを時分割で読み出しながら動作できる音発生装置を提供することができる。また、波形データと動作プログラムを記憶する媒体としてシリアルメモリを採用し、シリアルメモリから波形データと動作プログラムとを時分割で読み出しながら動作できる音発生装置を提供することができる。これにより、シリアルメモリ、音源部、プロセッサ部の各サイズが小さくなり、さらに、シリアルメモリと、音源部ないしプロセッサ間の配線の本数が少なくなるので、結果的に、これらシリアルメモリ、音源部、プロセッサで構成される音発生回路のプリント回路基板上の実装面積が極めて小さくなる。また、音源部で各時分割ch毎に発生する波形サンプル要求と、CPUのプログラムカウンタの進行で発生するプログラムコードのフェッチ要求とに応じて、シリアルメモリに対して波形サンプル読み出しとプログラムコード読み出しとがそれぞれ1回行われることにより、音源部のより多くの同時発音数と、CPUのより高速な動作とがそれぞれ実現される。
さらに、電源投入あるいはリセット時に継続読出モードを設定するとともに、音源の各chの波形サンプルの読み出しを、命令コードを省略したアドレスによるアクセスで行うことにより、ch当たりのメモリアクセス時間が短縮され、音源部の同時発音数を増やすことができる。さらに、各chのタイムスロットを、CPUからのプログラムコードの読み出しが行われていても、そのプログラムコードの読み出しが終わった後に、音源部からの要求に応じた波形サンプルの読み出しがそのタイムスロット内で完了できるだけの十分な時間長を確保することで、プロセッサからのシリアルメモリアクセスがあっても、音源部の各chにおける音の生成が破綻しないようにできる。
さらに、波形データがループ部を含む場合、ループ部の最後のサンプルの次に必要な数のループ部の先頭部分のサンプルの複製を設定しておくことで、常に1回の読み出し要求でループ部のサンプルの読み出しが行えるようにでき、破綻なく発音数を増やすことができる。また、波形データを圧縮した場合でも、アクセス部で必要な圧縮データを読み出してデコードすることで必要なサンプルを得ることができる。
この発明を適用した一実施形態である電子楽器のハードウェア構成図 シリアルフラッシュのメモリアクセスのタイミング図 CPUとシリアルフラッシュのアクセスタイミング図 CPUが実行するプログラムのフローチャート図 波形データの読み出し例を示す図 波形データの読み出し例(4点補間の場合)を示す図
以下、図面を用いて本発明の実施の形態を説明する。
図1は、本発明の音発生装置を適用した一実施形態である電子楽器のハードウェア構成を示す。この電子楽器は、基板上に、それぞれが1つの半導体チップである音源LSI(Large Scale Integrated-circuit)100とシリアルフラッシュメモリ121を搭載し、さらに周辺回路として、LPF(ローパスフィルタ)122、アンプおよびスピーカからなるサウンドシステム123、送信用のドライバや受信用のフォトカプラを含むMIDI端子124、スキャン用配線およびそのドライバを含む操作子125、並びに、表示器126などを備える。シリアルフラッシュメモリ121には、音源LSI100のCPU101が実行するプログラム、および、音源LSI100が楽音信号を生成するために利用する波形サンプルデータが記憶されている。
音源LSI100の内部構成を説明する。中央処理装置(CPU)101は、シリアルフラッシュ121等に記憶されているプログラムを読み込んで実行することにより、電子楽器全体や音源LSI100全体の動作を制御する処理装置である。102〜107は音源部を構成する各要素である。この音源部は、時分割動作で、複数チャンネル(ch)の楽音生成処理を行う。すなわち、この音源部は、いわゆる1DAC周期(1サンプリング周期)をch数で分割した各時間区間(タイムスロット)で各chの楽音生成処理を行うものである。
音源レジスタ102は、各chの楽音生成処理を制御するための各種制御パラメータデータをセットする複数ch分の記憶領域を備えたレジスタである。CPU101は、この音源レジスタ102の各chの領域に、そのchの楽音生成を制御するための制御パラメータを書き込むことにより、音源部の各chの楽音生成処理を制御する。例えば、CPU101は、新たな楽音の発音命令(その楽音の音高や強度などのデータを含むノートオンイベント)を受けたとき、その発音用に、音源部の複数のchのいずれか1つを割り当て、音源レジスタ102のその割り当てたchの領域に、生成すべき楽音の音高や強度を含むパラメータを設定し、さらに当該chに発音の開始を指示する発音指示を書き込む(ノートオンイベント処理)。これにより、音源部は、そのchのタイムスロットでの楽音生成処理を開始する。なお、前記発音命令は、他の機器からMIDI端子124経由で受信する場合もあるし、操作子125に含まれる鍵盤の鍵の操作に応じて、CPU101自身が発生する場合もある。
発音指示が書き込まれたときの、その発音指示されたchのタイムスロットにおける、音源部の各部102〜107の動作を説明する。アドレス発生部103は、音源レジスタ102に設定された開始アドレスを初期値として、サンプリング周期毎に、指定されたピッチシフト量に応じた速度で変化する読み出しアドレスを発生し、発生した読み出しアドレスの整数部を、2W(2ワード)要求の波形アドレスとして、シリアルフラッシュI/F108に対して波形サンプル要求を出力する。シリアルフラッシュI/F108(アクセス部)は、受け取った波形アドレス(2W要求)に応じて、シリアルフラッシュ121に対して2Wアクセス(後述する図2(b))を行い、その波形アドレスを先頭とする2波形サンプルを連続的に読み出す。補間部104は、該読み出された2波形サンプル間を、前記読み出しアドレスの小数部に応じて補間し、補間サンプルを生成する。音量変化制御部105は、音源レジスタ102に設定された音量エンベロープパラメータに基づいて、楽音の立ち上がりから立ち下がりまでの音量変化を表す音量エンベロープを発生し、サンプリング周期毎に入力する補間サンプルの振幅を、その音量エンベロープに基づいて制御する。このようにして、当該chの楽音波形サンプルが生成される。生成された当該chの楽音波形サンプルは、混合部106にて、他のchで生成された楽音波形サンプルと混合され、さらに、DAC部107にて、その混合サンプルがアナログ波形に変換され、LPF122で雑音成分が除去され、サウンドシステム123にて放音される。
減衰指示が書き込まれたときの、その減衰指示されたchのタイムスロットにおける、音源部の各部102〜107の動作を説明する。CPU101は、生成中の楽音の減衰命令(その減衰すべき楽音の音高を含むノートオフイベント)を受けたとき、その減衰命令に含まれる音高で現在発音中のchを探索し、そのchが見つかれば、音源レジスタ102のそのchの領域に楽音の減衰の開始または加速を指示する減衰指示を書き込む(ノートオフイベント処理)。これにより、音源部の音量変化制御部105は、そのchの音量エンベロープの減衰を開始または加速し、その結果、そのchの楽音波形サンプルの減衰が開始または加速される。音量エンベロープが所定値以下(聞こえない程度)に十分低下したchは、発音停止状態とする。すなわち、音源部は、そのchのタイムスロットでの楽音生成処理を停止し、アドレス発生部103からの波形アドレス(2W要求)が出力されなくなるので、シリアルフラッシュI/F108は、当該chについて、フラッシュメモリ121に対するアクセスを行わなくなる。当該chの読み出しは、次に同chが楽音生成に割り当てられて発音開始が指示されるまで停止される。
ノートオンやノートオフ以外の各種の楽音制御についても同様に、CPU101が、音源レジスタ102の制御すべき楽音を生成中のchの領域に、その楽音を制御するためのパラメータを書き込むことで、その楽音の特性を制御する。
MIDI端子124は、MIDI規格に準拠した不図示の外部MIDI機器を接続するための端子である。MIDI I/O109は、CPU101の制御の下で、MIDI端子124に接続された外部MIDI機器から入力されるMIDIデータを音源LSI100に入力し、また、音源LSI100で生成されたMIDIデータをMIDI端子124に接続された外部MIDI機器に出力するためのインターフェースである。操作子125は、電子楽器の操作パネル上に配置された各種パラメータの値を設定するための操作子や、演奏者が演奏情報を入力するための演奏操作子(鍵盤など)である。操作子I/O110は、CPU101の指示に基づき、操作子125の操作状態をスキャンして、操作情報を入力するためのインターフェースである。表示器126は、CPU101の指示に応じて各種のデータを表示するディスプレイである。表示I/O111は、表示器126に表示データを出力するためのインターフェースである。内部ROM112は、CPU101が起動時に実行するプログラムや、音源部の制御に用いる各種定数データや変換カーブなどを記憶した不揮発性のリードオンリメモリである。内部RAM113は、CPU101がワークエリアとして利用する揮発性メモリであり、CPU101が実行するプログラムや、音源部の制御に用いる各種パラメータなどを記憶するために用いられる。これらメモリ112,113は、それぞれ、パラレルアドレスでアクセスすることにより、パラレルデータの読み出しないし書き込みを行える、通常のパラレル型メモリである。114は、これら各部を接続するバスラインであり、コントロールバス、データバス、およびアドレスバスを総称したものである。
シリアルフラッシュ121について詳しく説明する。上述したように、シリアルフラッシュ121は、各アドレスに1バイトのデータを記憶する不揮発性のメモリであって、それぞれCPU101が実行する一連の複数のプログラム命令からなる1乃至複数のプログラムと、それぞれ音源部が楽音生成に使用する一連の複数波形サンプルからなる1乃至複数の波形データとを記憶している。各プログラム命令のデータ長は、1ワード(1W)または2ワード(2W)であり、各波形サンプルのデータ長は2ワード(2W)である。通常のNOR型フラッシュメモリは、アドレスビット長に対応する数のアドレス端子と、データビット長に対応する数のデータ入出力用端子を備えるが、本実施形態で用いるシリアルフラッシュメモリ121は端子数が少なく、その少ない数の端子をアドレスやデータの入出力に共用してシリアルデータでアドレスやデータの入出力を行うシリアルメモリの一種である。本実施形態では、シリアルフラッシュメモリ121として8端子のものを用いる。図1では6本の端子(ピン)の名称を図示した。CLKはクロック信号を入力するピン、CSはチップセレクト信号を入力するピン、IO1〜IO4はアドレスやデータの入出力に使用する4本のピンを示す。シリアルフラッシュメモリ121は、これらの6本のピンのほか、電源供給用のVCCピンと接地用のGNDピンを備える。
CSピンに入力するチップセレクト信号は、デバイス操作の有効/無効を切り替える信号である。CSピンが“1”のとき(CSピンに所定の高レベル電圧を印加したとき)、シリアルフラッシュメモリ121は非選択状態すなわち読み出しや書き込みの動作をせずスタンバイしている状態にある。シリアルフラッシュメモリ121からデータを読み出すときは、CSピンを“0”とし(CSピンに所定の低レベル電圧を印加する)、次の8クロックを使って、IO1ピンにシリアルデータで8ビットの命令コードを入力する。読み出し命令としては、Read Data(命令コードは03h)、Fast Read(命令コードは0Bh)、Fast Read Dual IO(命令コードはBBh)、および、Fast Read Quad IO(命令コードはEBh)などがある。なお、xxhは16進表記を示すものである。
Read Dataの場合、命令コード03hの入力の後、24クロックを使ってIO1ピンにシリアルデータで24ビットの初期アドレスを入力すると、次の8クロックでIO2ピンから当該初期アドレスの1バイトがシリアルデータで出力される。その後は、CSピンが“0”である間は、アドレスを入力しなくても、読み出しアドレスが前記初期アドレスから自動でインクリメントされ、連続するアドレスの各バイトデータがIO2ピンからシリアルデータで出力される。CSピンが“1”にされると、IO2ピンからのデータの出力が停止する。
なお、上述のCSピンが“0”である間、個別にアドレス指定することなく、読み出しアドレスが自動でインクリメントされて連続する各バイトデータを読み出す機能をSequential Readと呼ぶ。以下で説明するどの読み出し命令でもSequential Readを実行できる。
Fast Readは、上記Read Dataと同様に動作する読み出し命令であるが、Fast Readでは、アドレス入力の後、8クロックのダミークロックが挿入された後にIO2ピンからのデータ出力が行われる。Fast Readでは、Read Dataよりクロックの周波数を高くすることができるので、連続するアドレスの一連のデータを高速に読み出すことができる。
Fast Read Dual IOの場合、命令コードBBhの入力の後、2ピンを用いて24ビットの初期アドレスを入力する。具体的には、IO1ピンとIO2ピンを用いて、1クロックで並列に2ビット入力できるので、命令コードの後の12クロックで24ビットの初期アドレスを入力し、さらにその後の4クロックでモードを入力する。モードの入力の後、IO1ピンとIO2ピンの機能が入力から出力へと切り替わり、次の4クロックで前記初期アドレスの1バイトがIO1ピンとIO2ピンから出力され、さらにSequential Readが行われる。
前記モードについて説明する。モードとしては、16進のAxh(上位4ビットがAhであれば下位4ビットは任意の値で良い)かそれ以外の値(上位4ビットがAh以外)を指定する。モードとしてAxhが入力された場合、Continuous Read Mode(継続読出モード)となる。このモードに入った場合、CSピンが“1”にされてデータ出力が一旦停止された後、再びFast Read Dual IOを発行するときは命令コードの入力を省略することができる。すなわち、CSピンを“0”とした後(命令コードの入力を省略して)、IO1ピンとIO2ピンを用いて12クロックで24ビットのアドレスを入力し、さらに4クロックで8ビットのモードを入力(引き続きContinuous Read Modeを続けたいときはAxhを入力し、該モードをオフしたいときはAxh以外の値を入力)することで、IO1ピンとIO2ピンから前記アドレスのデータを読み出すことができ、さらに引き続くデータをSequential Readで読み出せる。Continuous Read Modeによれば、命令コードを省略できるので、高速なランダムアクセスが実現できる。
Fast Read Quad IOは、Fast Read Dual IOと同様に動作する読み出し命令(命令コードEBh)である。Fast Read Dual IOではIO1ピンとIO2ピンの2ピンを利用してアドレスとモードの入力とデータ出力を行うが、Fast Read Quad IOではIO1〜IO4の4ピンを用いてそれらの入出力を行う。また、Fast Read Dual IOではモード入力のための4クロックの後、直ちにIO1ピンとIO2ピンの機能が入力から出力に切り替えられてデータ出力が始まるが、Fast Read Quad IOではモード入力のための2クロックの後、ダミーの4クロックが挿入されてからIO1〜IO4の機能が切り替えられてデータ出力が開始される。その後、引き続くデータをSequential Readで読み出せる。また、Fast Read Quad IOでもContinuous Read Modeの指定が可能である。なお、IO1〜IO4の4ピンを用いてデータ入出力を行うQuad命令を利用する場合は、シリアルフラッシ121内のステータスビット中のQE(Quadイネーブル)モードを予めオンに設定しておく必要がある。
図2は、シリアルフラッシュ121におけるメモリアクセスのタイミング図である。シリアルフラッシュ121は、各アドレスに1バイトのデータが記憶されている。すなわち、アドレスを指定することでバイト単位でデータを読み出せるものとする。
比較のため、図2(c)に、従来より使われているNOR型フラッシュメモリ(SRAMタイプ)の2ワードアクセスのタイミング図を示す。このフラッシュメモリは、24本のアドレス端子と16本のデータ端子を備え、該アドレス端子に24ビットパラレルのアドレスを入力して、データ端子からは当該アドレスに記憶された1ワード(16ビット)をパラレルデータとして読み出すものである。「MCK」はクロック信号を示す。ここでは33MHz強の周波数のクロック信号とする。「アドレス」は24ビットのアドレスを入力するタイミング、「データ」は当該アドレスのデータが出力されるタイミングを示す。
図2(a)は本実施形態のシリアルフラッシュ121の第1回目の1ワードアクセスのタイミング図、図2(b)は本実施形態のシリアルフラッシュ121の第2回目以降の2ワードアクセスのタイミング図を示す。ここでは、Fast Read Quad IO命令でContinuous Read Modeを指定する場合を例として説明する。
図2(a)および(b)の「CLK」はクロック信号を示す。図2(c)の従来例のクロック信号MCKが33MHz強であったのに対し、本実施形態の音源LSIのクロック信号CLKは、その2倍の66MHz強の周波数のクロック信号とした。図2(a)〜(c)は、ほぼ同じタイムスケールで図示している。
図2(a)の第1回目のアクセスでは、201の時点でCSを“0”とし、次の8クロックの期間202でIO1ピンにEBh(Fast Read Quad IOの命令コード)を入力し、次の6クロックの期間203でIO1〜IO4の4ピンを使って24ビットのアドレスを入力し、次の2クロックの期間204でIO1〜IO4の4ピンを使って8ビットのモードを入力する。モードは、Continuous Read Modeを指定するAxhを入力する。ダミー期間205の後、次の4クロックの期間206でIO1〜IO4の4ピンを使って前記アドレスの1バイトおよび次のアドレスの1バイト(合わせて16ビット)を読み出している。207の時点でCSを“1”として、第1回目の1ワードアクセスを終える。もちろんCSを“0”のままにすれば、Sequential Readにより連続してデータを読み出すことができる。
Continuous Read Modeが指定されているので、これに続けて行われる、Fast Read Quad IO 命令を用いた第2回目以降のアクセスでは命令コードの入力を省略できる。従って、図2(b)では、211の時点でCSを“0”とした後、命令コードの入力を省略して、直ちに8クロックの期間212で24ビットのアドレスと8ビットのモードの入力を行える。ダミーの期間213の後、8クロックの期間214で前記アドレスから連続する2ワード(16ビット×2)を読み出している。
図2(b)から分かるようにContinuous Read Modeを使うことで、20クロック強で2ワードを読み出すことができる(マージンは1〜数クロック)。ほぼ同じ時間スケールの図2(c)の従来のパラレルメモリのアクセスでも同じ程度の時間で2ワードを読み出している。すなわち、シリアルフラッシュを利用して、従来のパラレルメモリと同程度のアクセス速度を確保することができる。パラレルメモリを使うと長い配線のラインを生じ、それが放射される電磁波(ノイズとなる)の量を増やす原因になる場合があるが、本実施形態のようなシリアルフラッシュを利用すればチップのピン数が少ないので配線を短くすることができ、不要な電磁波の放射量を抑えることができる。
図3は、CPU101と音源部(のアドレス発生部103)によるシリアルフラッシュ121のアクセスタイミング例を示す。301は、音源部のアドレス発生部103で波形の読み出しアドレス(波形アドレス)を出力して波形サンプル要求(2W要求)をシリアルフラッシュI/F108に発行し、該波形サンプル要求に応じてシリアルフラッシュI/F108から出力される当該波形アドレスからの2波形サンプル(2ワード)を音源部で受け取る、アクセスタイミング例を示す。302は、CPU101が、プログラムカウンタが示す読み出しアドレス(命令アドレス)を出力してフェッチ要求(1W要求または2W要求)をシリアルフラッシュI/F108に発行し、該フェッチ要求に応じてシリアルフラッシュI/F108から出力される当該命令アドレスを先頭とするプログラム命令(1ワードまたは2ワード)をCPU101が取り込む、アクセスタイミング例を示す。303は、シリアルフラッシュI/F108が、上記波形サンプル要求やフェッチ要求を受け、シリアルフラッシュ121にアクセスして1ワードないし2ワードのデータを読み出している期間(1Wないし2Wアクセス期間)を示す。
図3に示される動作に先立って、図2(a)のFast Read Quad IO 命令を用いた1回目のアクセスが、シリアルフラッシュ121に対して行われており、そこでContinuous Read Mode が指定されているので、ここでは、シリアルフラッシュ121に対するFast Read Quad IOアクセスが、全て図2(b)のContinuous Read Modeの態様で行われる。また、図3では、音源部の第2chと第3chとで楽音生成が進行中であり、アドレス発生部103は、第2chと第3chのタイムスロットにおいて、それぞれ2W要求の波形アドレスをシリアルフラッシュI/F108に対して出力(波形サンプル要求)する。ここでの波形アドレスが「2W要求」であるのは、補間部104でのサンプル間補間用に、連続する2波形サンプルを供給するためである。波形アドレス(2W要求)を受け取ったシリアルフラッシュI/F108は、同じchのタイムスロット内において、シリアルフラッシュ121に対して2Wアクセス(図2(b))を行い、その波形アドレスを先頭とする2ワード(2波形サンプル)を読み出して補間部104に供給する。なお、シリアルフラッシュI/F108は、発音していないchのタイムスロットでは、シリアルフラッシュ121に対して全くアクセスしない。
一方で、CPU101は、シリアルフラッシュ121から動作プログラムを読み出して実行する。動作プログラムには、1ワードのプログラム命令と、2ワードのプログラム命令が混在している。CPU101からの1W要求の命令アドレスの出力(フェッチ要求)に応じて、シリアルフラッシュI/F108は、シリアルフラッシュ121に対して1Wアクセス(図2(b)の例より4クロック短い)を行い、その命令アドレスを先頭とする1ワード(1プログラム命令)を読み出してCPU101に供給する。また、CPU101からの2W要求の命令アドレスの出力(フェッチ要求)に応じて、シリアルフラッシュI/F108は、シリアルフラッシュ121に対して2Wアクセス(図2(b))を行い、その命令アドレスを先頭とする2ワード(1プログラム命令)を読み出してCPU101に供給する。
矢印311は、音源部のアドレス発生部103から第2chのタイムスロットで出力された第2chの波形アドレス(2W要求)が、シリアルフラッシュI/F108に受け付けられた時点を示す。この場合は、CPU101からシリアルフラッシュ121へのアクセスがなされていなかったため、出力された2W要求は、当該タイムスロットの開始時点で直ちにシリアルフラッシュI/F108によって受け付けられる。そして、シリアルフラッシュI/F108は、時点311からの20クロック強の期間312に、シリアルフラッシュ121に対する2Wアクセス312を行い、当該波形アドレスを先頭とする2ワード(2波形サンプル)を読み出す。読み出された2波形サンプルは、2Wアクセス312が完了した時点で、補間部104の読み出しバッファ(図示せず)に一時的に記憶される。補間部104は、アドレス発生部103のタイムスロット(第ich)より1ch分遅れたタイムスロット(第i-1ch)で動作しており、各タイムスロット(第i-1ch)の先頭からの所定期間(例えば、図3の期間314)に、読み出しバッファに格納されている2波形サンプルを用いて、第i-1chの補間サンプル(図3では、第2chの補間サンプル)生成のためのサンプル間補間処理を実行する。そのため、各タイムスロットの補間処理に用いる2波形サンプルは、その補間処理の開始時点までに読み出しバッファに用意しておく必要がある。
一方、CPU101は、音源部とは独立に、動作プログラムの各プログラム命令の読み出し要求(フェッチ要求)を行う。期間315は、CPU101が読み出しアドレスである命令アドレス(1W要求)をシリアルフラッシュI/F108に対して出力する期間である。CPU101がその1W要求を出力し始めた時点(期間315の先頭)では、音源部のためのフラッシュメモリ121に対するアクセス312がなされており、それが終わるまで当該1W要求に応じたアクセスは待たされる。そして、アクセス312終了後の時点316で、当該1W要求がシリアルフラッシュI/F108に受け付けられる。シリアルフラッシュI/F108は、続く16クロック強の期間317に、シリアルフラッシュ121に対する1Wアクセス317を行い、当該命令アドレスを先頭とする1ワード長の1プログラム命令を読み出す。該読み出しの完了時点(期間317の末尾)で、フラッシュメモリI/F108からCPU101に、読み出されたプログラム命令が供給され、CPU101はそのプログラム命令をフェッチする。CPU101は、フェッチした当該プログラム命令を自装置内の制御手順に従ってデコード・実行する。
この1W要求に続けて、CPU101は、次の命令アドレス(2W要求)を出力する。この時点(期間318の先頭)では、音源部のためのフラッシュメモリ121アクセスは行われていないので、当該2W要求は、シリアルフラッシュI/F108によって直ちに受け付けられ、続く20クロック強の期間319に、フラッシュメモリ121に対して、対応する2Wアクセス319が行われる。シリアルフラッシュI/F108は、期間319の終わりに、2Wアクセス319により読み出された2ワード長の1プログラム命令をCPU101に供給し、CPU101はそのプログラム命令をフェッチする。
さらに、第3chのタイムスロットの開始時点で、音源部のアドレス発生部103は、第3chの波形アドレス(2W要求)をシリアルフラッシュI/F108に対して出力するが、CPU101のためのフラッシュメモリ121に対する2Wアクセス319が行われており、第3chの2W要求は、そのアクセス319が終わるまで待たされる。期間319の終了後の時点320で、シリアルフラッシュI/F108は、第3chの2W要求を受け付け、20クロック強の2Wアクセス321を実行する。これにより、フラッシュメモリ121から第3chの補間処理に用いる2波形サンプル(2ワード)が読み出され、読み出しバッファに格納される。
以上のような音源部とCPU101によるシリアルフラッシュ121へのアクセスの競合は、シリアルフラッシュI/F108により調停される。特に、音源部からの2W要求に応じた2Wアクセスは、補間部104の補間処理の開始まで、というデッドラインがあるため、CPU101からの1W要求ないし2W要求に応じたアクセスより優先的に実行される。すなわち、シリアルフラッシュ121に対して新たなアクセスを行える時点において、音源部からの2W要求と、CPU101からの1W要求または2W要求とが共に出力されていた場合、シリアルフラッシュI/F108は、音源部からの2W要求に応じた2Wアクセスを実行する。ただし、図3で説明したように、CPU101のためのフラッシュメモリ121アクセス中に、音源からの2W要求が出力されても、その2W要求に応じた2Wアクセスを割り込み実行することはない。また、1ch分のタイムスロットは、アドレス発生部104のあるchのタイムスロットの開始時点で、運悪く、フラッシュメモリI/F108がCPU101のための最長のアクセス(ここでは2Wアクセス)を開始したとしても、同じタイムスロット内にそのchのための所定ビット長のアクセス(ここでは2Wアクセス)が完了できるよう、該最長のアクセスと該所定長のアクセスとが行えるだけの時間長(ここでは2Wアクセス×2回に1〜10クロック程度のマージンを加えた時間長)を有するよう設計されている。
図4(a)は、本実施形態の電子楽器の電源オンあるいはリセット時にCPU101が実行する起動プログラムの動作を示す。この起動プログラムは内部ROM112に記憶されており、電源オンあるいはリセット時には、CPU101が当該起動プログラムを実行するように設定されている。CPU101は、ステップ401でシリアルフラッシュ121の状態をリセット(格納されているデータは不変)し、ステップ402で、シリアルフラッシュI/F108を用いて、シリアルフラッシュ121から、モードを初期化するためのプログラムを読み出して内部RAM113にロードし、プログラムカウンタが示す命令アドレス(CPU101が実行するプログラム命令のアドレス)を、該ロードした初期化プログラムの開始点(最初に実行すべきプログラム命令のアドレス)にジャンプさせる。これにより、CPU101は、内部RAM113から初期化プログラムのプログラム命令を1つずつ順次読み出して実行するようになる。なお、ステップ402における、シリアルフラッシュ121に対する読み出しアクセスには、何らモードを設定しなくても実行可能な読み出し命令(例えば、命令コード03hのRead Data)が用いられる。
図4(b)は、上記内部RAM113にロードして実行される初期化プログラムの処理手順を示す。ステップ411では、CPU101は、シリアルフラッシュI/F108を用いて、シリアルフラッシュ121のレジスタから、メーカー名、メモリタイプ、容量等の情報と、現在の各種ステータスを示すステータスビット(複数ビット)とを読み出して、Fast Read Quad IO命令を有効にするモード(QEモード)を特定する。ここで特定されるQEモードは、メーカーやメモリタイプによって異なる場合がある。ステップ412で、QEモードのステータスビットが「1」であるか否か、すなわち、シリアルフラッシュ121が既にQEモードに設定されているか否かを判定する。QEモードに設定されていなければ、CPU101は、ステップ413で、シリアルフラッシュI/F108を用いて、フラッシュメモリ121をQEモードに初期設定する。ステップ414では、シリアルフラッシュI/F108に、シリアルフラッシュメモリ121に対する、Fast Read Quad IO命令(EBh)を用いた第1回目のワードアクセス(図2(a))を行わせる。この読み出しアクセスはダミーであり、読み出されたデータは使用してもしなくても良い。また、この読み出しアクセスは、モードとしてContinuous Read Mode(Axh)を指定したものであり、これ以降のシリアルフラッシュI/F108によるフラッシュメモリ121からのデータ読み出しは、全て、図2(b)で説明した命令コード(EBh)を省略したFast Read Quad IO命令による読み出しアクセスとされる。
その後、CPU101は、プログラムカウンタの示す命令アドレスを、シリアルフラッシュ121に格納されている制御プログラムの開始点にジャンプさせる。これにより、CPU101は、フラッシュメモリ121に記憶された制御プログラムのプログラム命令を1つずつ順次実行するようになる。より詳細に述べると、CPU101は、プログラムカウンタの示す命令アドレスが変化する毎に、そのアドレスの1ワードないし2ワードのプログラム命令を要求する命令アドレスをシリアルフラッシュI/F108に対して出力(フェッチ要求)する。シリアルフラッシュI/F108は、該命令アドレス(1W要求ないし2W要求)に応じて、フラッシュメモリ121に対する命令コードを省略したFast Read Quad IOアクセス(図2(b))を行い、フラッシュメモリ121から1ワードないし2ワードの1プログラム命令を読み出す。そして、読み出された1プログラム命令が、CPU101によってフェッチされ実行される。
図4(c)は、CPU101によって、図4(b)の初期化プログラムの後に実行される当該制御プログラムの手順を示す。まずステップ421で初期設定を実行する。ステップ422で、操作子125の操作や、MIDI I/O124等でのデータ受信や、音源からの状態通知や、図示しないタイマによる時間割込などの各種イベントの発生を検出し、ステップ423でイベントがあったとき、ステップ424でそのイベントに応じた処理を実行する。その後はステップ422に戻り、イベントの検出からの処理を繰り返す。ここでの処理の具体例としては、既に説明したノートオンイベントに応じたノートオンイベント処理、ノートオフイベントに応じたノートオフイベント処理以外にも、操作子の操作に応じて音色を調整する音色エディット処理や、タイマ割込に応じた自動演奏や自動伴奏の処理などがある。
なお、上記実施形態では、電源投入後の、シリアルフラッシュI/F108による、シリアルフラッシュ121をContinuous Read Modeに設定するための最初のダミーリードが、CPU101の指示で行われていたが、音源部からの指示に応じて行われるようにしてもよい。また、上記実施形態では、QEモードによる4IO読み出し命令(上述のFast Read Quad IO命令のようにシリアルフラッシュのピンを4本使用してアドレス指定とデータ出力とをそれぞれ(1クロックで)4ビットずつ行う4ピン双方向高速読み出し命令を「4IO読み出し命令」と呼ぶ。同様に、ピンをn本使用してアドレス指定とデータ出力とをそれぞれnビットずつ行うnピン双方向高速読み出し命令を「nIO読み出し命令」と呼ぶ。)を使用したが、2IO読み出し命令を使用しても良い。また、将来、シリアルフラッシュに、6IO読み出し命令や8IO読み出し命令等が実装されたときには、4IO読み出し命令の代わりにそれらを使用してもよい。
上記実施形態では、CPU101がシリアルフラッシュ121から読み出しつつ実行するプログラムの1つのプログラム命令は1W命令または2W命令としたが、1つのプログラム命令の長さは任意である。また、CPU101は、1度の読み出しアクセスでシリアルフラッシュ121から複数のプログラム命令を読み出して一時記憶しておき、順次実行するようにしてもよい。例えば、上記実施形態では、次に読み出すべきプログラム命令が1W命令ならCPU101からフラッシュメモリ121に1W要求を発行して1Wのプログラム命令をフェッチし、次に読み出すべきプログラム命令が2W命令ならCPU101からフラッシュメモリ121に2W要求を発行して2Wのプログラム命令をフェッチしているが、次およびその次に読み出すべきプログラム命令が何れも1W命令であったとき、CPU101からフラッシュメモリ121に2W要求を発行して2つの1Wのプログラム命令をフェッチし順次実行するようにしても良い。
CPUによっては、1回のフェッチで複数ワードのプログラムコードを読み込み、CPU内部の命令バッファに補充して保持しておき、順次、命令をデコード・実行するものがあるので、CPU101としてそのような機能を持つものを使用すれば、1度の読み出しアクセスでシリアルフラッシュ121から複数ワードのプログラムコードを読み出し、順次デコード・実行させることができる。この場合、シリアルフラッシュ121から読み出されるプログラムコードは、命令バッファの空きやCPU内部の実行のスケジューリングに応じて補充するものであるので、必ずしも命令単位の読み出しでなくてもよい。読み出すべきプログラムコードは、プログラムカウンタの進行に応じたアドレスに格納されているが、必ずしもプログラムカウンタで指し示すアドレスから読み出しが開始されるとは限らず、1度の読み出しで、複数ワードからなる1命令の途中から読み出しを開始したり、あるいは1つの命令の途中で読み出しを終えたりしてもよい。従って、CPU101からフラッシュメモリ121へのプログラムコードの読み出し要求は、1Wであったり2Wであったりする可変長であるが、命令単位とは限らない。
また、上記実施形態では図3の期間315や318でCPU101がフェッチ要求を発行してプログラム命令をフェッチすると説明したが、CPU101内にフェッチされた当該命令の「デコード」や「実行」は、必ずしもプログラム命令をフェッチしたのと同じタイムスロット内で行われるとは限らない。CPUによってはパイプライン処理を行うものもあるので、フェッチしたタイミングより所定クロック後にデコードや実行が為される場合もある。フェッチが為された後のデコードや実行などの処理は、CPUの内部的な制御手順によれば良い。
また、シリアルフラッシュ121に格納されたプログラムは命令を表すコードのみならず定数データを表すコードを含んでいてもよい。例えば、シリアルフラッシュ121にはプログラムの一部として読み出し専用の定数データが納められており、プロセッサはそのデータをロードする命令を実行することがある。その場合、プロセッサは命令をフェッチし、デコードし、デコード結果に応じてシリアルフラッシュ121からデータを読み出してレジスタに格納する。このような定数データを表すプログラムコードを読み出す場合も、CPU101からフラッシュメモリ121に読み出し要求を発行して読み出すようにしてよく、その一度に読み出すデータサイズも実行状況によって1Wであったり2Wであったりする。
上記実施形態では、波形サンプルと制御プログラムを記憶する記憶装置としてシリアルフラッシュを使用したが、シリアルフラッシュの代わりに、アドレスとデータのビット数分のピンが設けられたパラレルにデータ読み出し可能なメモリ(ただし、Sequential ReadやContinuous Read Modeの機能を備えたものとする)を使用しても良い。その場合、基板上の配線はコンパクトにはできないが、Sequential ReadやContinuous Read Modeの機能により、メモリアクセス時間が短縮されるので、音源部の同時発音数を増やすことができる。
次に、上記実施形態における波形データの読み出しについてさらに詳しく説明する。
図5(a)は、本実施形態におけるシリアルフラッシュメモリ121に記憶されている波形データの読み出し例1を示す。既に説明したように本実施形態では、1つの波形サンプルデータが1W(ワード)長であり、1つのchに着目したとき、サンプリング周期の当該chの各タイムスロット毎に、連続する2Wを読み出し、それらの2Wから得られる連続する2つの波形サンプルデータを2点補間して、各タイムスロット毎の1つの波形サンプルデータを得ている。
図5(a)において、501はアタック部の一連の波形サンプル、502はループ部の一連の波形サンプルである。各矩形は1W長の1つの波形サンプルを示す。ASはアタック部501の先頭の波形サンプルデータであり、該波形サンプルデータASに引き続いてアタック部の以降の波形サンプルデータが記憶されている。AEはアタック部501の最後の波形サンプルデータであり、該波形サンプルデータAEに引き続いてループ部502の波形サンプルデータが記憶されている。LSはループ部502の先頭の波形サンプルデータ(ループスタートサンプル)、LEはループ部502の最後の波形サンプルデータ(ループエンドサンプル)を示す。さらに本実施形態では、ループ部502の最後の波形サンプルデータLEの次に、ループ部502の先頭の波形サンプルデータLSと同じデータLS’を設定してある。OUTで示すそれ以降の領域は、本波形データとは別の波形データあるいはダミーデータであり、本波形データとは無関係である。
あるchでこの波形データを用いる発音指示が為された場合、まず最初のサンプリング周期の当該chのタイムスロットで、アドレス発生部103からシリアルフラッシュI/F108に、読み出しアドレスとして当該波形データの先頭アドレス(サンプルASのアドレス)を渡して、2Wの読み出し要求を出力する。(なお、初回の読み出しでは小数部の値は0であるので補間部104には小数部として0が与えられ、また読み出しアドレスの整数部は当該波形データの先頭アドレスそのものであるので、シリアルフラッシュI/F108には整数部として当該先頭アドレスが与えられる。)シリアルフラッシュI/F108は、受け取った当該波形データの先頭アドレスでシリアルフラッシュ121に対して2Wアクセス(図2(b))を行い、矢印511に示す2波形サンプルを連続的に読み出し、補間部104に渡す。そして、補間部104以降の処理により当該chの楽音波形データを生成する。シリアルフラッシュI/F108は、補間に必要なサンプル数である2サンプルが読み出し終わったタイミングでCSを“1”として、シリアルフラッシュ121に対して読み出しの終了を指示する。該指示に応じて、シリアルフラッシュ121は読み出し動作を終了する。
アドレス発生部103は、次のサンプリング周期の当該chのタイムスロットにおける読み出しのために読み出しアドレスを更新する。この処理は、現読み出しアドレスに、発音すべき楽音の音高に応じたピッチシフト量(いわゆる「周波数ナンバ」と呼ばれ、小数部分を含む値である)を加算する処理である。アドレス発生部103は、更新された読み出しアドレスの整数部をシリアルフラッシュI/F108に渡して2Wの読み出し要求を出力するとともに、更新された読み出しアドレスの小数部を補間部104に出力する。これにより、シリアルフラッシュ121から2波形サンプル(矢印512に示す2サンプル)が読み出されて補間部104に入力し、補間部104以降の処理で当該サンプリング周期における楽音波形データの生成が行われる。以下同様にして、サンプリング周期毎に現読み出しアドレスに対する周波数ナンバの累算が行われ、2波形サンプルデータの読み出し(矢印513,…)と補間部104以降の処理による楽音波形データの生成が引き続き実行される。
なお、周波数ナンバの値は、楽音に対する効果付与のために変動させる場合がある。従って、もともと小数部分を含みかつ変動する周波数ナンバの値を累算していくので、その累算結果の整数部、すなわちシリアルフラッシュI/F108に出力されるアドレスは、サンプリング周期毎に幾つ進むかは区々である。
図5(a)では、511〜513のように波形サンプルの読み出しが開始され、サンプリング周期毎に周波数ナンバの累算が行われて読み出しアドレスが徐々に進んでいく。そして、当該読み出しアドレスはアタック部501からループ部502へと進行する。さらにループ部502の波形サンプルが読み出されていき、521に示す2波形サンプル、522に示す2波形サンプルが読み出される。その次のサンプリング周期で、読み出しアドレスがサンプルLS’のアドレス(すなわち、サンプルLS’とその次のサンプルの2サンプルの読み出し要求)になったとする。本実施形態では、読み出しアドレスがサンプルLEのアドレスを超えたとき、当該読み出しアドレスからループ部502の長さ(サンプルLSからLEの長さ)を減算(読み出しアドレスの小数部の値は保持する)する。これにより、読み出す2波形サンプルは、矢印523の2サンプルではなく、ループ部502の先頭部分に戻って、矢印531の2サンプルが読み出し対象となる。そして、引き続き矢印532の2サンプル…というように読み出しが進んでいく。
図5(b)は、本実施形態における別の読み出し例2を示す。波形データの構成は図5(a)と同じである。アタック部501からの読み出しは、矢印541〜543に示すように図5(a)と同様に進んだとする。さらにアタック部501からループ部502の読み出しへ進み、あるサンプリング周期で矢印551の2波形サンプルが読み出されたとする。その次のサンプリング周期では、読み出しアドレスの整数部が波形サンプルLEのアドレスとなり、矢印552に示す2サンプルが読み出される。このとき、ループ部502の最後のサンプルLEの次にループ部502の先頭のサンプルLSと同じLS’が記憶されているので、矢印552に示す2サンプルの読み出しは問題なく行われる。次のサンプリング周期では、読み出しアドレスの更新処理により、読み出しアドレスの整数部がサンプルLS’のアドレスになったとする。これは、矢印553に示す2サンプルを読み出し対象とすることを意味するが、このとき読み出しアドレスはループ部502の最後のサンプルLEのアドレスを超えているので、該読み出しアドレスからループ部502の長さ(サンプルLSからLEの長さ)を減算(読み出しアドレスの小数部の値は保持する)する。これにより、読み出す2波形サンプルは、矢印553の2サンプルではなく、ループ部502の先頭部分に戻って、矢印561の2サンプルが読み出し対象となる。そして、引き続き矢印562の2サンプル…というように読み出しが進んでいく。
上記実施形態では2点補間を前提としたので、ループ部502の最後のサンプルLEから2サンプルが連続して読み出せるようにLS’を設定したが、3点以上の補間の場合も同様である。一般的に、n点補間の場合はループ部502の最後のサンプルLEの次からn−1個のサンプル(ループスタートからのn−1個のサンプルの複製)を設定しておけば良い。
図6は、4点補間の場合の読み出し例を示す。601はアタック部の一連の波形サンプル、602はループ部の一連の波形サンプルである。4点補間であるので、ループ部602の最後の波形サンプルLEの次に3点分の波形サンプルLS’と(LS+1)’と(LS+2)’を設定している。LS’はループ部502の先頭の波形サンプルデータLSの複製、(LS+1)’はループ部502の先頭から2番目の波形サンプルデータ(LS+1)の複製、(LS+2)’はループ部502の先頭から3番目の波形サンプルデータ(LS+2)の複製である。
読み出しの処理は、上述の2点補間の実施形態と同様である。ただし、4点補間であるので、指定された整数部のアドレスから連続する4個の波形サンプルが読み出される。例えば、発音指示があった初回の読み出しでは、アドレス発生部103からシリアルフラッシュI/F108に当該波形データの先頭アドレス(サンプルASのアドレス)が渡され4Wの読み出し要求が出力されるが、これに応じて、矢印611に示す4波形サンプルが読み出される。サンプリング周期毎に読み出しアドレスが進み、ループ部602の後半に至ると、例えば、あるサンプリング周期で矢印621の4サンプルが読み出され、次のサンプリング周期で矢印622の4サンプルが読み出され、さらに次のサンプリング周期で矢印623の4サンプルが読み出され、というように読み出しが進行する。さらにその次のサンプリング周期で、読み出しアドレスの整数部がサンプルLS’のアドレスになったとする。これは、矢印624に示す4サンプルを読み出し対象とすることを意味するが、このとき読み出しアドレスはループ部602の最後のサンプルLEのアドレスを超えているので、該読み出しアドレスからループ部602の長さ(サンプルLSからLEの長さ)を減算(読み出しアドレスの小数部の値は保持する)する。これにより、読み出す4波形サンプルは、矢印624の4サンプルではなく、ループ部602の先頭部分に戻って、矢印631の4サンプルが読み出し対象となる。そして、引き続き矢印633の4サンプル、矢印634の4サンプル…というように読み出しが進んでいく。
以上のように、ループ部の最後のサンプルの直後にループ部の先頭のサンプルの複製(n点補間の場合、n−1個の複製)を設定しているので、ループ部の後半でも1回の読み出し処理でn点の連続するサンプルを読み出すことができ、ループさせる場合でも破綻無く発音数を増やすことができる。
なお、上記実施形態では、各サンプリング周期において、毎回必ず補間に必要な個数の波形サンプルの読み出しを行うものとして説明した。しかし、シリアルフラッシュI/F108に、前に読み込んだ所定数の波形サンプルを保持しておく機構を設け、シリアルフラッシュI/F108からシリアルフラッシュメモリ121に波形サンプルの読み出し要求を出力する際に、既に保持している波形サンプルデータを使い回すことができる場合はそれらのサンプルの読み出し要求を省略するようにしてもよい。このように重複した読み込みを省略することにより、毎回補間に必要な個数のサンプルを読みこむ必要はなく、保持されていない分だけを読みこめばよいので、シリアルフラッシュメモリ121へのアクセス時間の短縮を図ることができる。なお、あるサンプリング周期において、保持されている波形サンプルデータが補間に使えるか否かは、ピッチシフト量による読み出しアドレスの進み具合によって変わる。そのため、一回の読み出しで読み出すワード数は0〜M個の値をとり得る。例えば、ピッチシフト量が小さく読み出しアドレスがほとんど進まなければ、保持してある波形サンプルデータをそのまま使いまわして補間処理ができるので読み出すワード数は0になることがある。また、ピッチシフト量が正に大きくて読み出しアドレスが大きく進むと、保持してある波形サンプルデータは使いまわすことができなくて新たな波形サンプルデータを読み出さなくてはならず、読み出すワード数はMになることがある。
上記実施形態では、1波形サンプルデータが1Wである場合を例として説明したが、波形データは圧縮された形式でもよい。データを圧縮することにより、1Wの中に複数の波形サンプルに対応する差分データを含めることができる。この場合、圧縮データには、デコードのためのパラメータと、波形サンプルデータに対応した差分データが含まれる。ある1つの差分データから対応する波形サンプルデータをデコード(復元)するには、その差分データが含まれる1W以前の所定数のワードデータに含まれるパラメータを利用するものとする。言い替えると、各ワードデータには、その後のワードデータに含まれる差分データをデコードするためのパラメータを設定しておくものとする。また、パラメータデータは、ワードデータを読み出した際に、アクセス部であるシリアルフラッシュI/F108内のバッファに一時記憶しておき、その後のワードデータの差分データのデコードに使用できるようにする。すなわち、波形サンプル要求に応じて、シリアルフラッシュI/F108が、必要な差分データを含むワードデータを読み込み、バッファに一時記憶してあるパラメータを利用してデコードして必要な波形サンプルデータを求める。
圧縮された形式の波形データとする場合でも、上述のループ部の後にループ部先頭の波形サンプル(圧縮された形式)の複製を設定しておく手法をとることができる。この場合、ループ部の後に追加したワードデータのパラメータ領域には、ループスタートのワードデータのパラメータを複製しておけばよい。ループ部の後に追加したワードデータが読み込まれたとき、そのパラメータが一時記憶され、ループスタートに戻ったときにもデコードは破綻することなく継続できる。
101…中央処理装置(CPU)、102…音源レジスタ、103…アドレス発生部、104…補間部、105…音量変化制御部、106…混合部、107…DAC(デジタルアナログ変換器)、108…シリアルフラッシュI/F、109…MIDI I/O、110…操作子I/O、111…表示I/O、112…内部ROM、113…内部RAM、114…内部バスライン、121…シリアルフラッシュメモリ、122…LPF、123…サウンドシステム。

Claims (12)

  1. 複数の波形サンプルからなる波形データと、複数のプログラムコードからなる制御プログラムとを記憶するシリアルメモリと、
    前記シリアルメモリへの読み出しアクセスを行うアクセス部と、
    各時分割チャンネル毎に、前記アクセス部に対して1つの読み出しアドレスSAを含む波形サンプル要求を発行し、該波形サンプル要求に応じて前記アクセス部から供給される波形サンプルに基づいて、音信号を生成する音源部と、
    前記アクセス部に対して1つの読み出しアドレスCAを含むプログラムコードのフェッチ要求を発行し、該フェッチ要求に応じて前記アクセス部から供給される1つ以上のプログラムコードを取り込んで前記制御プログラムを実行し前記音源部を制御するプロセッサと
    を備えており、
    前記アクセス部は、前記音源部から発行される波形サンプル要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで読み出された波形サンプルを前記音源部に供給するとともに、前記プロセッサから発行されるプログラムコードのフェッチ要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで読み出された1つ以上のプログラムコードを前記プロセッサに供給する
    ことを特徴とする音発生装置。
  2. 複数の波形サンプルからなる波形データと、複数のプログラムコードからなる制御プログラムとを記憶するシリアルメモリと、
    前記シリアルメモリへの読み出しアクセスを行うアクセス部と、
    各時分割チャンネル毎に、前記アクセス部に対して1つの読み出しアドレスSAを含む波形サンプル要求を発行し、該波形サンプル要求に応じて前記アクセス部から供給されるn個(nは1以上の整数)の波形サンプルに基づいて、音信号を生成する音源部と、
    前記アクセス部に対してプログラムカウンタが示す1つの読み出しアドレスCAを含むプログラムコードのフェッチ要求を発行し、該フェッチ要求に応じて前記アクセス部から供給される1つ以上のプログラムコードを取り込んで前記制御プログラムを実行し前記音源部を制御するプロセッサと
    を備えており、
    前記アクセス部は、前記音源部から発行される波形サンプル要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで読み出されたn個の波形サンプルを前記音源部に供給するとともに、前記プロセッサから発行されるプログラムコードのフェッチ要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで読み出された1つ以上のプログラムコードを前記プロセッサに供給する
    ことを特徴とする音発生装置。
  3. 請求項1または2に記載の音発生装置において、
    前記シリアルメモリに記憶されている波形データはデータ圧縮されており、
    前記アクセス部は、前記音源部から発行される波形サンプル要求に応じて、当該波形サンプルに対応する圧縮データを読み出し、デコードして得た波形サンプルを前記音源部に出力するものである
    ことを特徴とする音発生装置。
  4. 請求項1から3の何れか1つに記載の音発生装置において、
    前記シリアルメモリは、第1回目の読み出しでは、命令コードとアドレスを受け付けて当該アドレスのデータを出力し、第2回目以降の読み出しでは、命令コードを省略してアドレスのみを受け付けて当該アドレスのデータを出力する、継続読出モードを設定できるものであり、
    前記アクセス部は、電源投入時またはリセット時の最初の読み出しにおいて、前記シリアルメモリを前記継続読出モードに設定し、前記音源部からの前記各チャンネル毎の波形サンプル要求に応じて、命令コードを省略したアドレスのみによるアクセスを行うことにより、前記先頭アドレスSAからの波形サンプルを読み出して前記音源部に供給し、前記プロセッサからのプログラムコードのフェッチ要求に応じて、命令コードを省略したアドレスのみによるアクセスを行うことにより、前記プログラムコードを読み出して前記プロセッサに供給する
    ことを特徴とする音発生装置。
  5. 請求項1から4の何れか1つに記載の音発生装置において、
    前記アクセス部における各チャンネルのタイムスロットは、前記音源部からの波形サンプル要求が発生したときに、前記プロセッサからのプログラムコードのフェッチ要求に応じたプログラムコードの読み出しが行われていたとしても、そのプログラムコードの読み出しが終わったあとに、前記音源部からの波形サンプル要求に応じた波形サンプルの読み出しを、その同じタイムスロット内で完了できるに十分の時間長を有している
    ことを特徴とする音発生装置。
  6. 請求項1から5の何れか1つに記載の音発生装置において、
    前記アクセス部は、前記波形サンプル要求に応じて、1回の読み出しアクセスで、「1波形サンプルのビット長×n個」のデータを連続的に読み出す
    ことを特徴とする音発生装置。
  7. 請求項6に記載の音発生装置において、
    前記シリアルメモリに記憶されている波形データは、ループスタートサンプルからループエンドサンプルまでの波形サンプルを繰り返し読み出して連続的に音信号生成を行うためのループ用サンプルデータを含み、かつ、ループエンドサンプルの次のn−1個のアドレスには前記ループスタートサンプルからのn−1個のサンプルデータと同じデータを設定しておくものとし、
    前記音源部は、各時分割チャンネル毎に、前記アクセス部に対して1つの読み出しアドレスSAを含む波形サンプル要求を発行する際、そのアドレスSAが前記ループエンドサンプルのアドレスを超えたとき、そのアドレスSAから前記ループ用サンプルデータの長さを減算して新たなアドレスSAを求め、求めたアドレスSAで波形サンプル要求を発行するものであり、
    前記アクセス部は、前記音源部から発行される波形サンプル要求のアドレスSAが前記ループスタートサンプルのアドレスからループエンドサンプルのアドレスまでに含まれているときは、1回の読み出しアクセスで、該アドレスSAから前記n個の波形サンプルを連続的に読み出すものである
    ことを特徴とする音発生装置。
  8. 請求項1から7の何れか1つに記載の音発生装置において、
    前記アクセス部は、前記プログラムコードのフェッチ要求に応じて、1回の読み出しアクセスで、「1プログラムコードのビット長」のデータを連続的に読み出すものであり、該1プログラムコードのビット長は各プログラムコードのフェッチ要求毎に変化するものである
    ことを特徴とする音発生装置。
  9. 請求項1から7の何れか1つに記載の音発生装置において、
    前記アクセス部は、前記プログラムコードのフェッチ要求に応じて、1回の読み出しアクセスで、「1プログラムコードのビット長×m個」のデータを連続的に読み出すものであり、
    前記プロセッサは、前記「1プログラムコードのビット長×m個」のデータを連続的に取り込むものである
    ことを特徴とする音発生装置。
  10. 複数の波形サンプルからなる波形データを記憶するシリアルメモリと、
    前記シリアルメモリへの読み出しアクセスを行うアクセス部と、
    各時分割チャンネル毎に、前記アクセス部に対して1つの読み出しアドレスSAを含む波形サンプル要求を発行し、該波形サンプル要求に応じて前記アクセス部から供給される波形サンプルに基づいて、音信号を生成する音源部と
    を備えており、
    前記アクセス部は、前記音源部から発行される波形サンプル要求に応じて1回の読み出しアクセスを行い、該読み出しアクセスで前記シリアルメモリから「1波形サンプルのビット長×n個」のデータを連続的に読み出し、読み出した波形サンプルを前記音源部に供給する
    ことを特徴とする音発生装置。
  11. 請求項10に記載の音発生装置において、
    前記シリアルメモリに記憶されている波形データは、ループスタートサンプルからループエンドサンプルまでの波形サンプルを繰り返し読み出して連続的に音信号生成を行うためのループ用サンプルデータを含み、かつ、ループエンドサンプルの次のn−1個のアドレスには前記ループスタートサンプルからのn−1個のサンプルデータと同じデータを設定しておくものとし、
    前記音源部は、各時分割チャンネル毎に、前記アクセス部に対して1つの読み出しアドレスSAを含む波形サンプル要求を発行する際、そのアドレスSAが前記ループエンドサンプルのアドレスを超えたとき、そのアドレスSAから前記ループ用サンプルデータの長さを減算して新たなアドレスSAを求め、求めたアドレスSAで波形サンプル要求を発行するものであり、
    前記アクセス部は、前記音源部から発行される波形サンプル要求のアドレスSAが前記ループスタートサンプルのアドレスからループエンドサンプルのアドレスまでに含まれているときは、1回の読み出しアクセスで、該アドレスSAから前記n個の波形サンプルを連続的に読み出すものである
    ことを特徴とする音発生装置。
  12. 請求項10または11に記載の音発生装置において、
    前記シリアルメモリに記憶されている波形データはデータ圧縮されており、
    前記アクセス部は、前記音源部から発行される波形サンプル要求に応じて、当該波形サンプルに対応する圧縮データを読み出し、デコードして得た波形サンプルを前記音源部に出力するものである
    ことを特徴とする音発生装置。
JP2013172067A 2012-11-05 2013-08-22 音発生装置 Pending JP2014112198A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013172067A JP2014112198A (ja) 2012-11-05 2013-08-22 音発生装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012244001 2012-11-05
JP2012244001 2012-11-05
JP2013172067A JP2014112198A (ja) 2012-11-05 2013-08-22 音発生装置

Publications (1)

Publication Number Publication Date
JP2014112198A true JP2014112198A (ja) 2014-06-19

Family

ID=51169356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013172067A Pending JP2014112198A (ja) 2012-11-05 2013-08-22 音発生装置

Country Status (1)

Country Link
JP (1) JP2014112198A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5898355B1 (ja) * 2015-04-21 2016-04-06 株式会社カプコン サウンド再生プログラムおよびサウンド再生システム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02126296A (ja) * 1988-11-07 1990-05-15 Kawai Musical Instr Mfg Co Ltd 楽音情報記憶装置
JPH03282498A (ja) * 1990-03-30 1991-12-12 Kawai Musical Instr Mfg Co Ltd 楽音発生装置
JPH08234760A (ja) * 1994-12-30 1996-09-13 Yamaha Corp 波形メモリ音源装置
JPH09185371A (ja) * 1995-12-28 1997-07-15 Yamaha Corp 楽音生成装置
JPH1097258A (ja) * 1996-08-02 1998-04-14 Yamaha Corp 波形メモリ音源装置および楽音発生装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02126296A (ja) * 1988-11-07 1990-05-15 Kawai Musical Instr Mfg Co Ltd 楽音情報記憶装置
JPH03282498A (ja) * 1990-03-30 1991-12-12 Kawai Musical Instr Mfg Co Ltd 楽音発生装置
JPH08234760A (ja) * 1994-12-30 1996-09-13 Yamaha Corp 波形メモリ音源装置
JPH09185371A (ja) * 1995-12-28 1997-07-15 Yamaha Corp 楽音生成装置
JPH1097258A (ja) * 1996-08-02 1998-04-14 Yamaha Corp 波形メモリ音源装置および楽音発生装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
W25Q64BV 64M-BIT SERIAL FLASH MEMORY WITH DUAL AND QUAD SPI, vol. Revision E, JPN7016001931, 8 July 2010 (2010-07-08) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5898355B1 (ja) * 2015-04-21 2016-04-06 株式会社カプコン サウンド再生プログラムおよびサウンド再生システム

Similar Documents

Publication Publication Date Title
JP3047185B2 (ja) ディジタル音源装置、およびそれに用いられる外部メモリカートリッジ
US6222767B1 (en) Synchronous page-mode non-volatile memory with burst order circuitry and method thereof
US5717154A (en) Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory employing a high priority I/O bus request mechanism for improved audio fidelity
US5689080A (en) Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory which minimizes audio infidelity due to wavetable data access latency
JP2010224077A (ja) 楽音生成装置
US8791349B2 (en) Flash memory based stored sample electronic music synthesizer
JP2014092722A (ja) 音発生装置
US5763801A (en) Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory
JPH07181969A (ja) コードセグメント置換装置及びそれを用いたリアルタイム信号処理システム並びにオーディオ処理システム
US5809342A (en) Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory
WO2001065536A1 (fr) Generateur de sons musicaux
JP3163984B2 (ja) 楽音発生装置
JP2014112198A (ja) 音発生装置
JPH09244650A (ja) 楽音合成装置及び方法
JP2014092723A (ja) 音発生装置
JP2797142B2 (ja) 電子楽器用処理装置
JP5228579B2 (ja) 楽音発生装置用の集積回路
JP5510813B2 (ja) 楽音生成装置
JP3888236B2 (ja) プログラムカウンタ回路
JP4254677B2 (ja) 楽音発生装置および楽音発生処理のプログラム
JP3320582B2 (ja) 電子楽器の制御装置及びその制御プログラム設定方法
JP3972939B2 (ja) 波形メモリ型楽音合成装置
JP2000293169A (ja) 楽音生成装置
JP3085940B2 (ja) 音響発生器
JPH07168574A (ja) 波形メモリ音源

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160620

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170526

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171106