JP4144090B2 - Music generator - Google Patents
Music generator Download PDFInfo
- Publication number
- JP4144090B2 JP4144090B2 JP37444598A JP37444598A JP4144090B2 JP 4144090 B2 JP4144090 B2 JP 4144090B2 JP 37444598 A JP37444598 A JP 37444598A JP 37444598 A JP37444598 A JP 37444598A JP 4144090 B2 JP4144090 B2 JP 4144090B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- channel
- loop
- waveform
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、メモリ等に格納された生成用の波形データを読み出して発音させるべき楽音(音声)の波形データを生成するための技術に関する。
【0002】
【従来の技術および発明が解決しようとする課題】
現在、楽音発生装置の多くは、楽器の音をサンプリングして得られたデジタルデータ(波形データ)をメモリに格納しておき、そのメモリから任意のタイミングで波形データを読み出すことにより、発音させるべき楽音の波形データを生成するようになっている。この方法では、波形データを読み出す速さによって楽音の音高を制御することができることから、データ量を抑えられるという利点がある。。
【0003】
楽器の音の多くは、ドラム音などの減衰音ではなく、持続音である。その持続音を全てサンプリングすると、当然のことながら、データ量が膨大となる。このことから、普通、楽音発生装置は、波形データ全体のなかで繰り返し再生する2つのポイント(スタートポイント、及びエンドポイント)を定め、それらの間の波形データを繰り返し再生することにより、持続音をつくりだすようになっている。
【0004】
そのようなループ機能を搭載した楽音発生装置のなかには、発音させる楽音を装飾させるといったことのために、チャンネル間で波形データのループを同期させる機能(以降、便宜的にループ同期機能と呼ぶ)を更に搭載されたものがある。その機能によるループの同期は、普通、マスターチャンネルでの波形データのループに合わせて、それのスレーブチャンネルの波形データをループさせることで行われる。
【0005】
従来の楽音発生装置は、そのループ同期機能をソフトウェアの実行によって実現させていた。しかし、その機能を実現させるためには、各チャンネルで波形データ全体のなかで再生を行っているポイントを管理するだけでなく、マスターチャンネルでのループに合わせて、それのスレーブチャンネルにおけるポイントを変更するといった煩雑な処理も行わなければならない。このため、そのソフトウェアの実行時の負荷が重いという問題点があった。
【0006】
全てのチャンネルに対する処理は、当然のことながら、1サンプリング期間内に終了させなければならない。そのような時間的制約があることから、上記問題点は、処理可能なチャンネル数の減少、即ち同時発音可能な楽音数の減少といった形で表面化することになる。
【0007】
本発明の課題は、チャンネル間における波形データのループの同期をより容易に行えるようにすることにある。
【0008】
【課題を解決するための手段】
本発明の楽音発生装置は、発音させるべき楽音の波形データを記憶する波形記憶手段と、前記波形記憶手段から波形データを読み出すためのアドレスを生成するためのアドレス生成情報及びマスターチャンネルを判別する判別情報をチャンネル別に記憶した生成用情報記憶手段と、この生成用情報記憶手段から、チャンネル毎に順次時分割でアドレス生成情報及び判別情報を読み出す読み出し手段と、この読み出された判別情報により、前記読み出し手段により読み出されたアドレス生成情報がマスターチャンネルに対応するものか、あるいは当該マスターチャンネルと判別されたチャンネルをマスターとして指定するスレーブチャンネルに対応するものかを判別する判別手段と、前記読み出されたアドレス生成情報に基づいて前記波形記憶手段から波形データを読み出すためのアドレス情報を生成するアドレス生成手段と、前記マスターチャンネルのループ開始か否かを示すデータを記憶するループ開始記憶手段と、前記判別手段によりマスターチャンネルに対応するものと判別される毎に、前記アドレス生成手段にて生成されたアドレスに基づき、ループ開始か否かを検出するとともに、この判別結果に基づいて前記ループ開始記憶手段の記憶内容を更新するループ検出手段と、前記ループ検出手段によりループ開始が検出されるに応答して、前記マスターチャンネルのアドレスをループ開始アドレスに変更するように前記アドレス生成手段を制御するとともに、前記判別手段によりスレーブチャンネルに対応するものと判別されたる毎に前記ループ開始記憶手段の記憶内容を参照し、前記記憶内容がループ開始を示すデータである場合は、当該スレーブチャンネルのアドレスをループ開始アドレスに変更するように前記アドレス生成手段を制御するアドレス制御手段と、前記アドレス生成手段にて生成されたアドレスに基づいて前記波形データ記憶手段から波形データを読み出す波形読み出し手段と、を具備する。
【0009】
なお、上記構成において、前記判別情報は、マスターチャンネルを表わすマスターチャンネル情報からなり、前記判別手段は、前記読み出されたアドレス生成情報に対応するチャンネルと前記マスターチャンネル情報により表わされたチャンネルとを比較する比較手段を有することが望ましい。
また、前記判別情報は、マスターチャネルか否か識別する識別情報からなる
ことが望ましい。
さらには、前記アドレス生成情報は、所定周期毎に進めるアドレスの値、前記発音させるべき楽音の波形データの先頭位置を表わすアドレス、当該波形データの最後の位置を表わすアドレス値及び再生を繰り返す開始位置を表わすアドレスから成ることが望ましい。
また、本発明の楽音発生装置は、発音させるべき楽音の波形データを記憶する波形記憶手段と、前記波形記憶手段から波形データを読み出すためのアドレスを生成するためのアドレス生成情報及びマスターチャネルか否か識別する識別情報をチャンネル別に記憶した生成用情報記憶手段と、この生成用情報記憶手段から、チャンネル毎に順次時分割でアドレス生成情報及び識別情報を読み出す読み出し手段と、この読み出された識別情報により、前記読み出し手段により読み出されたアドレス生成情報がマスターチャンネルに対応するものか、あるいはスレーブチャンネルに対応するものかを判別する判別手段と、前記読み出されたアドレス生成情報に基づいて前記波形記憶手段から波形データを読み出すためのアドレス情報を生成するアドレス生成手段と、前記マスターチャンネルのループ開始か否かを示すデータを記憶するループ開始記憶手段と、前記判別手段によりマスターチャンネルに対応するものと判別される毎に、前記アドレス生成手段にて生成されたアドレスに基づき、ループ開始か否かを検出するとともに、この判別結果に基づいて前記ループ開始記憶手段の記憶内容を更新するループ検出手段と、前記ループ検出手段によりループ開始が検出されるに応答して、前記マスターチャンネルのアドレスをループ開始アドレスに変更するように前記アドレス生成手段を制御するとともに、前記判別手段によりスレーブチャンネルに対応するものと判別されたる毎に前記ループ開始記憶手段の記憶内容を参照し、前記記憶内容がループ開始を示すデータである場合は、当該スレーブチャンネルのアドレスをループ開始アドレスに変更するように前記アドレス生成手段を制御するアドレス制御手段と、前記アドレス生成手段にて生成されたアドレスに基づいて前記波形データ記憶手段から波形データを読み出す波形読み出し手段と、を具備したことを特徴とする。
【0011】
本発明では、生成用波形データを読み出すアドレスを生成するアドレス生成部分と、それを管理・制御する制御部分とに分け、アドレスを生成するための演算等をアドレス生成部分に行わせる。その演算等は、ハードウェアのみで行わせることが可能である。このことから、ソフトウェアを実行する制御部分の負荷が軽減することになる。
【0012】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
<第1の実施の形態>
図1は、第1の実施の形態による楽音発生装置を搭載した電子楽器の構成図である。
【0013】
その電子楽器は、図1に示すように、楽器全体の制御を行うCPU101と、CPU101がワーク用に用いるRAM102と、CPU101が実行するプログラムや各種制御用データ等を格納したROM103と、鍵盤や各種スイッチからなる操作子群104と、CPU101の指示に従って発音させるべき楽音の波形データを生成する楽音発生装置105と、各種楽器の音をサンプリングして得られた波形データを格納したROM106と、楽音発生装置105から入力した波形データをアナログのオーディオ信号に変換するDAコンバータ107と、そのオーディオ信号を音声に変換して出力する音響回路108と、を備えて構成されている。
【0014】
以上の構成において、動作を説明する。
【0015】
CPU101は、電源が投入されると、ROM103からプログラムを読み出して実行することにより、楽器全体の制御を開始する。その制御は、RAM102をワーク用に使用しながら、操作子群104に対するユーザの操作に応じて行う。
【0016】
操作子群104に対するユーザの操作は、例えばそれを走査し、その走査結果を解析することで検出する。CPU101は、そのようにして解析した結果を基に、各種設定や楽音発生装置105に対する指示を行うことにより、ユーザが操作子群104を介して指定した内容に応じて電子楽器を動作させる。
【0017】
図2は、上記楽音発生装置105の回路構成図である。
【0018】
その楽音発生装置105は、図2に示すように、装置105全体の制御を行う制御信号発生部201と、各チャンネル(各チャンネルが1つの楽音に対応)毎にその波形データを生成していくためのデータを格納するRAM202と、ROM106から波形データを読み出すアドレスを発生する波形読み取りアドレス発生部203と、そのアドレス発生部203が発生したアドレスによってROM106から読み出された波形データを用いて、発音させるべき楽音の波形データを生成する波形生成部204と、RAM202と各部201〜204との間のデータのやりとりを仲介するRAM I/F(以降、I/Fと略す)205と、を備えて構成されている。
【0019】
上記の構成において、楽音発生装置105の動作について説明する。ここでは、便宜的に、1チャンネル分の動作に注目して説明することにする。
【0020】
CPU101は、ユーザが押鍵を行う度に、その押鍵に応じて発音させるべき楽音のチャンネルを割り当て、楽音の発音を指示する識別子、チャンネル番号、及びその楽音の波形データを生成するために必要なデータを制御コマンドとして楽音発生装置105に送出する。
【0021】
その制御コマンドは、I/F205を介して制御信号発生部201に送られる。そのI/F205は、その制御コマンドのなかで、例えば識別子、チャンネル番号、及びマスターチャンネル番号だけを制御信号発生部201に送る。それを受け取った制御信号発生部201は、チャンネル番号から特定されるアドレスをI/F205に出力して、制御コマンド中の残りのデータをRAM202に格納させる。
【0022】
図4は、そのようにして楽音発生装置105内のRAM202に格納された内容を説明する図である。
【0023】
本実施の形態では、32チャンネルの発音を可能としている。そのため、図4に示すように、0〜32チャンネルの楽音再生に関わるデータを格納できるようになっている。図中、3桁の16進数で表現したアドレスは、上位2桁がチャンネルを表し、他の1桁がそのチャンネルに割り当てられた領域内のアドレスを表している。その領域は各16アドレス分の記憶容量を有し、アドレス000B〜00FBが0チャンネル用で、アドレス1FOB〜IFFBが31チャンネル用である。なお、各アドレスのビット数は、そこに格納されるデータに応じて決めたビット数である。
【0024】
図4中のADCは、ROM106から読み出すべき波形データのアドレスを示している。初期値、言い換えれば、制御コマンドとして送られてくるアドレスは、再生すべき波形データのなかで先頭に位置している波形データのアドレスである。同様に、ADEは、その波形データが格納されている最後のアドレス(エンドアドレス)、ADLは、波形データのなかで再生を繰り返す(ループ)開始位置となる波形データのアドレス(ループスタートアドレス)を各々示している。持続音は、アドレスADL〜ADEの間の波形データを繰り返し再生することで行われる。
【0025】
FLPは、そのループを行ったか否かを示すデータ(フラグ)であり、ループ時に1、そうでない時に0となる。当然のことながら、初期値は0である。ESTPは、ループ時に、波形データを読み出すべきアドレスがエンドアドレスADEより越えた分の差を示すデータである。当然のことながら、その初期値は0である。MCHは、マスターチャンネルの番号を示すデータであり、このチャンネルの楽音は、そのマスターチャンネルの楽音のループに合わせてループさせることを指定している。自身がマスターチャンネルであれば、その値は自身のチャンネルの番号となる。FRNは、1サンプリング周期毎に進めるアドレスの値を示すデータ(歩進幅)である。
【0026】
上記のようなデータが制御コマンド中に格納されて楽音発生装置105に送出される。制御信号発生部201は、それをチャンネルから特定された領域に、図4に示すように格納させる。それらのデータは、発音させている楽音の消音を指示する制御コマンドをCPU101から受け取った場合に、消去させる。それにより、その楽音を消音させる。なお、その制御コマンドは、例えばその旨を示す識別子、チャンネル番号が少なくとも格納されているものである。
【0027】
RAM202にチャンネル別に格納したデータは、そのチャンネルの処理期間時に読み出されて波形読み取りアドレス発生部203に送られる。制御信号発生部201は、I/F205に、RAM202から対象とするチャンネルのデータが格納されたアドレス(の値)を順次出力する。I/F205は、それらのアドレスに格納されたデータをRAM202から読み出して波形読み取りアドレス発生器203に送出する。
【0028】
波形読み取りアドレス発生器203は、そのようにしてRAM202からI/F205を介して送られたデータを対応するレジスタに格納しつつ、そのレジスタに格納されたデータを用いて各種演算を行い、ROM106から波形データを読み出すべきアドレスを生成する。そのアドレスの生成に応じて更新したデータはI/F205に送出する。
【0029】
制御信号発生部201は、その送出のタイミングに合わせて、I/F205にデータを格納させるアドレスを出力する。それにより、I/F205は、RAM202内のデータの書き換え(更新)を行う。
【0030】
波形読み取りアドレス発生部203は、1チャンネルで2つの隣り合うアドレス(の値)を順次ROM106に出力する。それらのアドレスに格納された波形データをROM106から読み出す。
【0031】
波形生成部204は、ROM106から読み出されたそれら波形データを入力すると、直線補間等を行うことによって発音させるべき楽音の波形データを生成する。その生成した波形データは、それまでに生成した他のチャンネルの波形データと加算する。それにより、全チャンネル分の波形データの生成が終了した後に、全チャンネル分の波形データを全て加算して得られる波形データを1/F205に出力する。その波形データが、I/F205を介して図1に示すDAコンバータ107に送出される。
【0032】
制御信号発生部201は、上記各部203、及び204に対して、クロックや各種制御信号を出力することにより、それらの動作を制御する。その制御信号は、それらから入力した信号に応じて変化させる。それにより、各部203、及び204を状況に応じて動作させる。
【0033】
図3は、上記波形読み取りアドレス発生部203の回路構成図である。次に、図3、及び図4〜図8に示す各種説明図を参照して、その構成、更には制御信号発生部201、及び波形読み取りアドレス発生部203の動作について詳細に説明する。
【0034】
図3において、301〜303はSL(セレクタ)、304〜313はF/F(フリップフロップ)、314は加減算器、315はコンパレータ(COMPARATER)、316はアドレスインクリメンタ(ADDRESS INCREMENTER)、RI、及びROはデータバスである。
【0035】
この図3中の文字列は、それぞれ、以下の内容を示している。
【0036】
「F/F」の下側に位置している文字列はレジスタ名である。各F/F304〜313は、実際にはそれに格納させる内容のビット数のF/Fから構成されているレジスタである。しかし、ここでは、煩雑さを避けるために、F/Fとしている。それに保持されるデータと図4中に示すデータの対応関係を明確にするために、その図4中に示すデータの文字列を用いている。また、そのレジスタ名を示す文字列は、便宜的に、それの出力信号名としても用いる。その文字列の先頭に「CK」を付加した文字列は、その「CK」を付加した文字列に対応するF/F(レジスタ)に入力するクロック(制御信号)名である。
【0037】
各SL301〜303の下方に位置している文字列は、それのセレクト信号名である。各SL301〜303の入力信号の上方に位置している数値は、それが選択されるときのセレクト信号の値を示している。例えばSL302では、セレクト信号FIASの値が0のときにF/F304の出力信号が選択され、以下、同様に、その値が1のときにはF/F305の出力信号、その値が2のときにはF/F306の出力信号が選択されることを示している。加減算器314下の「FSUB」は、それが加減算のどちらを行うかを指示する制御信号であり、その値が0のときには加算、その値が1のときには減算が加減算器314で行われる。また、その値が2のときには、SL302の出力信号FIAをそのまま出力するようになっている。各部301〜315に入力するクロック、セレクト信号等を含む各種制御信号は、制御信号発生部201から出力される。
【0038】
制御信号発生部201は、図5に示すように、チャンネル番号の小さい方から順次、チャンネル単位で波形データを生成する処理を行う。以降、マスターチャンネルがMチャンネル、そのMチャンネルをマスターチャンネルとするスレーブチャンネルがN、及びKの2チャンネル(K<M<Nである)存在している場合を例にとって、各チャンネル別に、制御信号発生部201、及び波形読み取りアドレス発生部203(を構成する各部)の動作について詳細に説明する。
【0039】
始めに、マスターチャンネルであるMチャンネルの処理時における制御信号発生部201、及び波形読み取りアドレス発生部203を構成する各部の動作について、図6に示すタイミングチャートを参照しつつ説明する。
【0040】
図6中に示すシステムクロックは、制御信号発生部201が波形読み取りアドレス発生部203を含む楽音発生装置105内の各部の制御用に生成されたクロックである。制御信号発生部201はそのクロックに同期して出力すべき制御信号を出力する。そのシステムクロックの下のサイクルは、1チャンネル分に割り当てられた処理時間をシステムクロックの1周期で分割して示した処理時間である。動作は、便宜的に、そのサイクルに着目して説明する。
【0041】
なお、本実施の形態では、1チャンネル当たり0H〜FH(Hは16進数表現を示す記号である)の16サイクルを割り当てている。従って、1サンプリング周期は、512(=16×32)システムクロックである。
【0042】
処理チャンネルがMチャンネルに移行すると、データバスROには、RAM202から読み出されたデータが、ADC、FRN(MCHを含む)、ADE、そのマスターチャンネルのFLP(ESTPを含む)、ADLの順序で順次、I/F205から出力される。
【0043】
制御信号発生部201は、それらのデータの出力タイミングに合わせて、それを保持させるF/F(レジスタ)の制御信号をアクティブ(論理値が1のハイレベル。その期間は全て1/2サイクル期間である)にする。具体的には、サイクル0でセレクト信号の値を0にした後、サイクル1でクロックCKADCをアクティブにしてF/F304にデータADCを保持させ、サイクル2でクロックCKFRN、及びCKMCHを共にアクティブにして、F/F309にデータFRN、F/F310にデータMCHをそれぞれ保持させ、サイクル3でクロックCKADEをアクティブにしてF/F307にデータADEを保持させ、サイクル4でクロックCKFLPM、及びCKESTPMを共にアクティブにして、F/F311にデータFLP、F/F306にデータESTP(FLPを含む)をそれぞれ保持させ(それらはマスターチャンネルのデータである)、サイクル5でクロックCKADLをアクティブにしてF/F308にデータADLを保持させる。それにより、各F/F304〜311に保持させるべきデータを保持させる。
【0044】
上記サイクル4では、制御信号発生部201は、セレクト信号FIASの値を0、セレクト信号FIBSの値を2、制御信号FSUBの値を0にする。それにより、F/F309のデータFRNにF/F304のデータADCを加える加算演算を加減算器314に行わせる。加減算器314は、その加算結果(=FRN+ADC)を出力FOとして出力する。
【0045】
そのサイクル4では、F/F310にデータMCHが保持されてコンパレータ315に出力される。そのコンパレータ315には、制御信号発生部201から現処理チャンネルのマスターチャンネル番号CHCYが出力されている。コンパレータ315は、それらが異なっている場合に、出力信号FSLVの値を1にする。その出力信号FSLVは制御信号発生部201に出力される。なお、Mチャンネルはマスターチャンネルであることから、ここでの出力信号FSLVの値は0である。
【0046】
その次のサイクル5では、制御信号発生部201は、セレクト信号ADCISの値を1にし、クロックCKADCをアクティブにする。それにより、加減算器314の演算結果(=FRN+ADC)をF/F304に保持させる。その一方では、セレクト信号FIBSの値を0、制御信号FSUBの値を1にする。それにより、加減算器314に、F/F307のデータADEからF/F304のデータADCを減算させる演算を行わせる。加減算器314は、その減算結果(=ADE−ADC)を出力FOとして出力する。
【0047】
サイクル6では、クロックCKFLP、及びCKESTPを共にアクティブにする。それにより、加減算器314の演算結果(=ADE−ADC)をF/F313、及び305に保持させる。
【0048】
更新後の波形データの読み出しアドレスADCがエンドアドレスADEよりも大きいことは、ループさせるべき状況になったことを意味し、その演算結果は負の値となる。F/F313は1ビットであり、その演算結果の符号が入力されるようになっている。このため、その状況になったとき、F/F313が保持する値は1となる。F/F313の値は制御信号発生部201に出力される。なお、波形データの読み出しアドレスADCがエンドアドレスADEよりも大きくなった際の差分(=ADC−ADE)については、以降、飛び越しステップとも呼ぶことにする。
【0049】
その一方で制御信号発生部201は、セレクト信号FIASの値を1、セレクト信号FIBSの値を1、制御信号FSUBの値を1にする。それにより、F/F308のデータADLからF/F304のデータESTP(加減算器314の直前の演算結果)を減算させる演算を加減算器314に行わせる。加減算器314は、その減算結果(=ADL−ESTP)を出力FOとして出力する。ループ時では、ESTP<0であることから、実際にはデータADLにデータESTPの絶対値を加算する演算が行われる。
【0050】
その後のサイクル7では、クロックCKADCをアクティブにして、加減算器314の演算結果(=ADL−ESTP)をE/F304に保持させる。それに保持された更新後のデータADCがデータバスRIを介してI/F205に送られてRAM202に書き込まれる。その一方では、セレクト信号FIASの値を1のままで、制御信号FSUBの値を2にする。それにより、F/F305に保持されたデータをそのまま加減算器314から出力させる。
【0051】
サイクル8では、クロックCKADCをアクティブにする。それにより、F/F305が保持しているデータESTPはF/F304、及びデータバスRIを介してI/F205に送られてRAM202に書き込まれる。それ以外では、クロックCKADOをアクティブにする。それにより、F/F304がデータESTPの前に保持していたデータADCはF/F312に保持されてアドレスインクリメンタ316に送られる。その結果、アドレスインクリメンタ316は、アドレスEADRとして、サイクル8からそのF/F312に保持されたデータADO(ADC)を出力し、次のチャンネルにおけるサイクル0でその値をインクリメントした値(=ADO+1)を出力する。それにより、ROM106から、アドレスの値が1つだけ異なる2つの波形データが読み出されて図2に示す波形生成部204に送られることになる。
【0052】
図6に示すタイミングチャートでは、ループさせる場合の動作を示している。そのループをさせる状況でないときには、F/F313の値は0である。その値が0のときには、制御信号発生部201は、サイクル7でクロックCKADCをアクティブにしない。それにより、サイクル5で保持させたデータADCをサイクル8に移行するまでF/F304に保持させる。ループ時とそうでない時の動作上の違いは基本的にそれだけである。
【0053】
次に、MチャンネルのスレーブチャンネルであるNチャンネル処理時における制御信号発生部201、及び波形読み取りアドレス発生部203を構成する各部の動作について、図7に示すタイミングチャートを参照しつつ説明する。その図7は、Mチャンネルでループが起こった後のものである。
【0054】
マスターチャンネルからスレーブチャンネルに処理対象が移行しても、基本的な動作は同じである。このため、上述したMチャンネル時の動作から異なっている部分にのみ着目して説明することにする。
【0055】
先ず、サイクル2では、クロックCKMCHがアクティブになってF/F310にデータMCHが保持される。それにより、コンパレータ315の出力信号FSLVの値が1となって、Nチャンネルがスレーブチャンネルであることが制御信号発生部201に通知される。
【0056】
サイクル4では、クロックCKFLPM、及びCKESTPMが共にアクティブになって、F/F311にデータFLP、F/F306にデータESTPがそれぞれ保持される(それらはMチャンネルのデータである)。F/F311にデータFLPが保持されることによって、Mチャンネルでループを行ったことが制御信号発生部201に通知される。
【0057】
制御信号発生部201は、そのF/F311に保持された値を基に、サイクル6で出力するセレクト信号FIASの値を決定する。具体的にはその値が1であれば2にする。それにより、サイクル6では、加減算器314に、F/F308のデータADLからF/F306のデータESTPMを減算させる演算を行わせる。その結果、続くサイクル7でF/F304には、その演算結果(=ADL−ESTPM)が保持されることになる。言い換えれば、Mチャンネルのループに合わせて、そのときのエンドアドレスADEからの超過分をNチャンネルのデータADLに加算して得られる値がF/F304に保持されることになる。
【0058】
Nチャンネル処理時には、上記した部分がMチャンネル処理時から異なっている。なお、単にNチャンネルでループを行うときには、制御信号発生部201はサイクル6で出力するセレクト信号FIASの値を1にするだけである。また、ループを行わないときには、Mチャンネル処理時と同様に、サイクル7でクロックCKADCをアクティブにしない。
【0059】
図8は、MチャンネルのスレーブチャンネルであるKチャンネル処理時における制御信号発生部201、及び波形読み取りアドレス発生部203の動作を示すタイミングチャートである。Mチャンネルでループさせた後に始めてKチャンネルの処理を行った場合の動作を示している。その動作内容は、基本的にNチャンネル処理時と同じなので、説明は省略する。
【0060】
図9は、上述したようにしてROM106から波形読み取りアドレス発生部203が読み出す波形データによって生成・発音される楽音波形を説明する図である。
【0061】
図9(a)、及び(b)に示すように、スレーブチャンネルの楽音(再生波形)の1周期がマスターチャンネルのそれよりも長いか短いかに関わらず、マスターチャンネルの楽音(再生波形)の周期に合わせて、スレーブチャンネルにおけるループが行われる。
【0062】
そのようなチャンネル間でのループの同期は、制御信号発生部201が、上記のように各種制御信号を出力することにより、波形読み取りアドレス発生部203に、ROM106から読み出すべき波形データのアドレスを生成させることで実現させている。制御信号発生部201自身が、各種演算等を行わなくて済むようになっている。そのように、波形データの生成するうえでの負荷を波形読み取りアドレス発生部203に分散させたため、発生部201自体の負荷を軽減させることができる。
【0063】
なお、本実施の形態では、マスターチャンネルでループさせたときには、その際の飛び越しステップをスレーブチャンネルのループスタートアドレスADLに加算して、そのスレーブチャンネルでのループを行うようにしているが、必ずしもそうしなくて良い。例えば、マスターチャンネルでループさせると、そのスレーブチャンネルの次の読み出しアドレスをそれのループスタートアドレスADLとしても良い。
<第2の実施の形態>
上記第1の実施の形態では、波形データを生成していくうえでのデータを全てRAM202に格納している。これに対し、第2の実施の形態は、そのRAM202に格納するデータ量がより少なくてすむようにしたものである。
【0064】
この第2の実施の形態による楽音発生装置の構成は、基本的には上記第1の実施の形態と同じである。このため、第1の実施の形態の説明に用いた符号をそのまま用いて、その第1の実施の形態から異なっている部分のみ説明する。
【0065】
第2の実施の形態では、RAM202に格納させるデータ量を低減させたことに合わせて、第1の実施の形態から波形読み取りアドレス発生部203の構成が変更されている。このことから、波形読み取りアドレス発生部203の構成、RAM202に格納させる内容、及び制御信号発生部201と波形読み取りアドレス発生部203の動作についてのみ、説明する。
【0066】
図10は、第2の実施の形態による波形読み取りアドレス発生部203の回路構成図である。始めに、図10を参照して、その波形読み取りアドレス発生部203の構成について説明する。
【0067】
図10に示すように、第2の実施の形態では、F/F306の前段にSL(セレクタ)1001を設けている。そのSL1001は、セレクト信号ESTPMISの値に応じて、加減算器314の出力信号FO、及びF/F306の出力信号の何れかを選択してそのF/F306に出力するものである。
【0068】
F/F310及び311、コンパレータ315は除かれている。その替わりにF/F1003、1004、及び、SL1002が設けられている。F/F1003は、データバスROと接続されている。SL1002は、セレクト信号FLPMISの値に応じて、加減算器314の出力信号FO、及びF/F1004の出力信号の何れかを選択してそのF/F1004に出力するものである。F/F1003、及び1004の出力信号は共に制御信号発生部201に出力されるようになっている。
【0069】
図11は、上記RAM202に格納された内容を説明する図である。
【0070】
図11に示すように、第2の実施の形態では、データFLP、ESTEP、及びMCHの替わりに、データFSLVだけをRAM202に格納するようにしている。そのデータは、チャンネルがマスターチャンネルかスレーブチャンネルかを示すものであり、マスターチャンネルでは0、スレーブチャンネルでは1が設定される。そのデータFSLVもCPU101から制御コマンドとして送られてくるデータである。
【0071】
第2の実施の形態においても、図12に示すように、チャンネル番号の小さい方から順次、チャンネル単位で波形データを生成する処理を行う。以降、N〜(N+3)の連続する4つのチャンネルの処理時における制御信号発生部201、及び波形読み取りアドレス発生部203(を構成する各部)の動作について、図13〜図16のタイミングチャートを参照しつつ、詳細に説明する。
【0072】
N、及び(N+3)チャンネルはマスターチャンネル、(N+1)及び(N+2)チャンネルはNチャンネルをマスターチャンネルとするスレーブチャンネルである。それら各チャンネル処理時の動作は第1の実施の形態と似ているため、動作は、要点のみ説明することにする。
【0073】
始めに、図13を参照して、Nチャンネル処理時における制御信号発生部201、及び波形読み取りアドレス発生部203(を構成する各部)の動作について説明する。
【0074】
処理チャンネルがNチャンネルに移行すると、データバスROには、RAM202から読み出されたデータが、ADC、FRN(FSLVを含む)、ADE、ADLの順序で順次、I/F205から出力される。
【0075】
制御信号発生部201は、それらのデータの出力タイミングに合わせて、それを保持させるF/F(レジスタ)の制御信号をアクティブにする。その際に、サイクル2では、クロックCKFSLVをアクティブにして、F/F1003にデータFSLVを保持させる。制御信号発生部201は、そのようにしてF/F1003が保持した値から、現在対象しているチャンネルがマスターチャンネルか否か判定する。
【0076】
サイクル4では、セレクト信号FLPMIS、及びESTPMISの値を0にする。続くサイクル5では、クロックCKFLPM、及びCKESTPをアクティブにする。それにより、F/F306、及び1004に、加減算器314の出力信号FOを保持させる。なお、F/F1004が保持するのは、その出力信号FOの符号の値である。
【0077】
クロックCKFLPMをアクティブにすることにより、F/F1004の値は1(ループさせる状況となったことを示す値である)となっている。このため、制御信号発生部201は、サイクル6でクロックCKADCをアクティブにしている。なお、このときには、F/F313の値も1である。
【0078】
このようにして、マスターチャンネル処理時には、制御信号発生部201はF/F306及び1004が保持する内容を更新する。その内容は、それのスレーブチャンネルの処理が終了するまで保持させる。それにより、RAM202に格納するデータ量を低減させている。
【0079】
もう一つのマスターチャンネルである(N+3)チャンネルは、ループが行われなかったチャンネルである。このため、図16に示すように、サイクル6でクロックCKADCをアクティブにしていない。Nチャンネル処理時との動作の違いは基本的にそれだけである。
【0080】
次に、Nチャンネルのスレーブチャンネルである(N+1)チャンネル処理時における制御信号発生部201、及び波形読み取りアドレス発生部203を構成する各部の動作について、図14に示すタイミングチャートを参照しつつ説明する。
【0081】
マスターチャンネルからスレーブチャンネルに処理対象が移行しても、基本的な動作は同じである。このため、更に、上述したNチャンネル時の動作から異なっている部分にのみ着目して説明することにする。
【0082】
サイクル4では、セレクト信号FLPMIS、及びESTPMISの値を1にする。続くサイクル5では、クロックCKFLPM、及びCKESTPをアクティブにする。それにより、F/F306、及び1004の内容をそのまま保持させる。
【0083】
図15は、Nチャンネルのスレーブチャンネルである(N+2)チャンネル処理時における制御信号発生部201、及び波形読み取りアドレス発生部203の動作を示すタイミングチャートである。その動作内容は、基本的に(N+1)チャンネル処理時と同じなので、説明は省略する。
【0084】
第2の実施の形態では、このようにしてマスターチャンネル処理時のデータ(FLP、ESTPM)をF/F(レジスタ)306、及び1004により保持するようにしている。それにより、RAM202に格納させるデータ量を低減させている。また、第1の実施の形態と比較すると、コンパレータ315等を不要にすることによって、波形読み取りアドレス発生部203の回路規模をより小さくできるという効果もある。
【0085】
なお、第2の実施の形態においても、マスターチャンネルでループさせたときには、その際の飛び越しステップをスレーブチャンネルのループスタートアドレスADLに加算して、そのスレーブチャンネルでのループを行うようにしているが、必ずしもそうしなくて良い。
【0086】
また、本実施の形態(第1及び第2の実施の形態)では、チャンネル間のループの同期を行うことを前提としているが、それを前提としなくても良い。波形読み取りアドレス発生部203に、単に波形データを読み出すアドレスを生成させるようにしても良い。当然のことながら、それらを行えるようにしても良い。
【0087】
【発明の効果】
以上、説明したように本発明は、生成用波形データを読み出すアドレスを生成するアドレス生成部分と、それを管理・制御する制御部分とに分け、アドレスを生成するための演算等をアドレス生成部分に行わせる。このため、ソフトウェアを実行する制御部分の負荷を軽減させることができる。
【図面の簡単な説明】
【図1】第1の実施の形態による楽音発生装置を搭載した電子楽器の構成図である。
【図2】楽音発生装置の回路構成図である。
【図3】波形読み取りアドレス発生部の回路構成図である。
【図4】楽音発生装置内のRAMに格納された内容を説明する図である。
【図5】制御信号発生部、及び波形読み取りアドレス発生部の動作を示すタイミングチャートである。
【図6】Mチャンネル処理時における制御信号発生部、及び波形読み取りアドレス発生部の動作を示すタイミングチャートである。
【図7】Nチャンネル処理時における制御信号発生部、及び波形読み取りアドレス発生部の動作を示すタイミングチャートである。
【図8】Kチャンネル処理時における制御信号発生部、及び波形読み取りアドレス発生部の動作を示すタイミングチャートである。
【図9】波形読み取りアドレス発生部が読み出す波形データによって生成・発音される楽音波形を説明する図である。
【図10】波形読み取りアドレス発生部の回路構成図である(第2の実施の形態)。
【図11】楽音発生装置内のRAMに格納された内容を説明する図である(第2の実施の形態)。
【図12】制御信号発生部、及び波形読み取りアドレス発生部の動作を示すタイミングチャートである(第2の実施の形態)。
【図13】Nチャンネル処理時における制御信号発生部、及び波形読み取りアドレス発生部の動作を示すタイミングチャートである(第2の実施の形態)。
【図14】(N+1)チャンネル処理時における制御信号発生部、及び波形読み取りアドレス発生部の動作を示すタイミングチャートである(第2の実施の形態)。
【図15】(N+2)チャンネル処理時における制御信号発生部、及び波形読み取りアドレス発生部の動作を示すタイミングチャートである(第2の実施の形態)。
【図16】(N+3)チャンネル処理時における制御信号発生部、及び波形読み取りアドレス発生部の動作を示すタイミングチャートである(第2の実施の形態)。
【符号の説明】
101 CPU
102、202 RAM
103、106 ROM
105 楽音発生装置
107 DAコンバータ
201 制御信号発生部
203 波形読み取りアドレス発生部
204 波形生成部
301〜303、1001、1002 セレクタ(SL)
304〜313、1003、1004 フリップフロップ(F/F)
314 加減算器
315 コンパレータ
316 アドレスインクリメンタ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for generating waveform data of musical sound (speech) to be generated by reading out waveform data for generation stored in a memory or the like.
[0002]
[Background Art and Problems to be Solved by the Invention]
Currently, many musical tone generators should store digital data (waveform data) obtained by sampling the sound of musical instruments in a memory and read out the waveform data from the memory at any timing to generate sound. Music waveform data is generated. This method has an advantage that the amount of data can be suppressed because the pitch of the musical sound can be controlled by the speed of reading the waveform data. .
[0003]
Many of the sounds of musical instruments are continuous sounds, not attenuated sounds such as drum sounds. If all the continuous sounds are sampled, the amount of data is naturally huge. From this, normally, the musical sound generator determines two points (start point and end point) to be repeatedly reproduced in the entire waveform data, and repeatedly reproduces the waveform data between them, thereby generating a continuous sound. It is designed to create.
[0004]
Among musical tone generators equipped with such a loop function, a function for synchronizing a loop of waveform data between channels (hereinafter referred to as a loop synchronization function for convenience) to decorate a musical tone to be generated. In addition, there are some installed. The synchronization of the loop by the function is usually performed by looping the waveform data of the slave channel in accordance with the waveform data loop of the master channel.
[0005]
The conventional musical sound generator has realized its loop synchronization function by executing software. However, in order to realize this function, not only manages the points that are being played back in the entire waveform data in each channel, but also changes the points in the slave channel to match the loop in the master channel. It is also necessary to perform complicated processing such as. For this reason, there was a problem that the load at the time of execution of the software was heavy.
[0006]
Naturally, the processing for all channels must be completed within one sampling period. Because of such time constraints, the above problems are brought about in the form of a decrease in the number of channels that can be processed, that is, a decrease in the number of musical sounds that can be generated simultaneously.
[0007]
An object of the present invention is to make it easier to synchronize loops of waveform data between channels.
[0008]
[Means for Solving the Problems]
The musical tone generator of the present invention isWaveform storage means for storing the waveform data of the musical sound to be sounded, address generation information for generating an address for reading waveform data from the waveform storage means, and discriminating information for discriminating the master channel are stored for each channel An information storage means, a reading means for reading out the address generation information and the discrimination information sequentially for each channel from the generation information storage means, and an address read by the readout means by the read discrimination information Based on the read address generation information, a determination means for determining whether the generation information corresponds to a master channel or a slave channel that designates a channel determined to be the master channel as a master. Read waveform data from the waveform storage means Address generating means for generating address information, loop start storage means for storing data indicating whether or not the master channel loop is started, and each time the determination means determines that it corresponds to the master channel. A loop detection unit that detects whether or not a loop is started based on the address generated by the address generation unit and updates the stored contents of the loop start storage unit based on the determination result; and the loop detection unit In response to the detection of the loop start by the control unit, the address generation unit is controlled to change the address of the master channel to the loop start address, and each time the determination unit determines that the address corresponds to the slave channel. The stored contents of the loop start storage means are referred to and the stored contents are Data indicating the start of a group, the address control means for controlling the address generation means to change the address of the slave channel to a loop start address, and the address based on the address generated by the address generation means Waveform reading means for reading waveform data from the waveform data storage means;It comprises.
[0009]
In the above configuration,The discrimination information includes master channel information representing a master channel, and the discrimination means includes a comparison means for comparing a channel corresponding to the read address generation information with a channel represented by the master channel information. It is desirable to have.
The discrimination information includes identification information for identifying whether the channel is a master channel or not.
It is desirable.
Further, the address generation information includes an address value advanced every predetermined period, an address indicating the start position of the waveform data of the musical sound to be generated, an address value indicating the last position of the waveform data, and a start position at which reproduction is repeated. It is desirable to consist of an address representing.
Further, the musical sound generating apparatus of the present invention is a waveform storage means for storing waveform data of a musical sound to be generated, address generation information for generating an address for reading waveform data from the waveform storage means, and whether or not the master channel. Generating information storage means storing identification information for each channel, reading means for sequentially reading out the address generation information and the identification information for each channel from the generation information storage means, and the read identification Based on the information, determination means for determining whether the address generation information read by the reading means corresponds to a master channel or a slave channel, and based on the read address generation information, Address that generates address information for reading waveform data from the waveform storage means Generated by the address generation means, and a loop start storage means for storing data indicating whether or not the master channel loop is started, and the address generation means each time the determination means determines that the master channel corresponds to the master channel. The loop detection unit detects whether or not the loop is started based on the determined address, and updates the stored contents of the loop start storage unit based on the determination result, and the loop detection is detected by the loop detection unit. In response, the address generation means is controlled to change the address of the master channel to a loop start address, and the memory of the loop start storage means is stored every time the determination means determines that it corresponds to the slave channel. Refer to the contents, and if the stored contents are data indicating the loop start, Address control means for controlling the address generation means to change the address of the slave channel to a loop start address, and waveform reading for reading out waveform data from the waveform data storage means based on the address generated by the address generation means And means.
[0011]
In the present invention, an address for reading the waveform data for generation is generated.Address generation partAnd manage and control itControl partThe address generation part performs an operation for generating an address. The calculation or the like can be performed only by hardware. This reduces the load on the control part that executes the software.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
<First Embodiment>
FIG. 1 is a configuration diagram of an electronic musical instrument equipped with a musical sound generator according to the first embodiment.
[0013]
As shown in FIG. 1, the electronic musical instrument includes a
[0014]
The operation of the above configuration will be described.
[0015]
When the power is turned on, the
[0016]
The user's operation on the
[0017]
FIG. 2 is a circuit configuration diagram of the
[0018]
As shown in FIG. 2, the
[0019]
In the above configuration, the operation of the
[0020]
The
[0021]
The control command is sent to the
[0022]
FIG. 4 is a diagram for explaining the contents stored in the
[0023]
In this embodiment, 32 channels of sound are possible. For this reason, as shown in FIG. 4, data related to 0 to 32 channel music reproduction can be stored. In the figure, in the address expressed by a three-digit hexadecimal number, the upper two digits represent a channel, and the other one digit represents an address in an area assigned to the channel. The area has a storage capacity for 16 addresses, addresses 000B to 00FB for 0 channel and addresses 1FOB to IFFB for 31 channel. The number of bits of each address is the number of bits determined according to the data stored therein.
[0024]
The ADC in FIG. 4 indicates the address of the waveform data to be read from the
[0025]
FLP is data (flag) indicating whether or not the loop is performed, and is 1 when the loop is performed, and 0 when the loop is not performed. As a matter of course, the initial value is zero. ESTP is data indicating a difference in an amount that the address from which waveform data is to be read exceeds the end address ADE during a loop. As a matter of course, the initial value is zero. MCH is data indicating the number of the master channel, and specifies that the tone of this channel is to be looped in accordance with the tone loop of the master channel. If it is the master channel, its value is its own channel number. FRN is data (step width) indicating an address value advanced every sampling period.
[0026]
The above data is stored in the control command and sent to the
[0027]
The data stored in the
[0028]
The waveform read
[0029]
The
[0030]
The waveform reading
[0031]
When the
[0032]
The
[0033]
FIG. 3 is a circuit configuration diagram of the waveform read
[0034]
In FIG. 3, 301 to 303 are SL (selector), 304 to 313 are F / F (flip-flop), 314 is an adder / subtracter, 315 is a comparator (COMPARATOR), 316 is an address incrementer (ADDRESS INCREMENTER), RI, and RO is a data bus.
[0035]
The character strings in FIG. 3 indicate the following contents, respectively.
[0036]
A character string located below “F / F” is a register name. Each of the F /
[0037]
The character string located below each SL 301 to 303 is its select signal name. The numerical value located above the input signal of each SL 301 to 303 indicates the value of the select signal when it is selected. For example, in SL302, when the value of the select signal FIAS is 0, the output signal of the F /
[0038]
As shown in FIG. 5, the control
[0039]
First, the operation of each part constituting the control
[0040]
The system clock shown in FIG. 6 is a clock generated by the
[0041]
In the present embodiment, 16 cycles of 0H to FH (H is a symbol indicating hexadecimal notation) are assigned per channel. Therefore, one sampling period is 512 (= 16 × 32) system clocks.
[0042]
When the processing channel shifts to the M channel, data read from the
[0043]
The
[0044]
In the
[0045]
In
[0046]
In the
[0047]
In
[0048]
If the read address ADC of the updated waveform data is larger than the end address ADE, it means that it is necessary to loop, and the calculation result is a negative value. F /
[0049]
On the other hand, the
[0050]
In the subsequent cycle 7, the clock CKADC is made active, and the operation result (= ADL-ESTP) of the adder /
[0051]
In cycle 8, the clock CKADC is activated. Thereby, the data ESTP held by the F /
[0052]
The timing chart shown in FIG. 6 shows the operation when looping. The value of F /
[0053]
Next, the operation of each part of the control
[0054]
Even if the processing target shifts from the master channel to the slave channel, the basic operation is the same. For this reason, only the parts that differ from the above-described operation for the M channel will be described.
[0055]
First, in
[0056]
In
[0057]
Based on the value held in the F /
[0058]
At the time of N channel processing, the above-mentioned part is different from that at the time of M channel processing. When the loop is simply performed with the N channel, the control
[0059]
FIG. 8 is a timing chart showing operations of the control
[0060]
FIG. 9 is a diagram for explaining a musical sound waveform generated / sounded by the waveform data read by the waveform reading
[0061]
As shown in FIGS. 9A and 9B, the period of the master channel musical sound (reproduction waveform) regardless of whether one period of the musical sound (reproduction waveform) of the slave channel is longer or shorter than that of the master channel. At the same time, a loop in the slave channel is performed.
[0062]
The loop synchronization between the channels is generated by generating the address of the waveform data to be read from the
[0063]
In this embodiment, when the loop is performed on the master channel, the jump step at that time is added to the loop start address ADL of the slave channel to perform the loop on the slave channel. I don't have to. For example, when the loop is performed on the master channel, the next read address of the slave channel may be used as the loop start address ADL.
<Second Embodiment>
In the first embodiment, all data for generating waveform data is stored in the
[0064]
The configuration of the musical tone generator according to the second embodiment is basically the same as that of the first embodiment. For this reason, the reference numerals used in the description of the first embodiment are used as they are, and only the portions different from the first embodiment will be described.
[0065]
In the second embodiment, the configuration of the waveform read
[0066]
FIG. 10 is a circuit configuration diagram of the waveform read
[0067]
As shown in FIG. 10, in the second embodiment, an SL (selector) 1001 is provided before the F / F 306. The
[0068]
The F /
[0069]
FIG. 11 is a diagram for explaining the contents stored in the
[0070]
FIG.As shown in the figure, in the second embodiment, only the data FSLV is stored in the
[0071]
Also in the second embodiment, as shown in FIG. 12, a process of generating waveform data in units of channels is performed in order from the smallest channel number. Hereinafter, the operation of the control
[0072]
The N and (N + 3) channels are master channels, and the (N + 1) and (N + 2) channels are slave channels with the N channel as a master channel. Since the operations at the time of processing each channel are similar to those of the first embodiment, only the main points of the operation will be described.
[0073]
First, the operations of the control
[0074]
When the processing channel shifts to the N channel, the data read from the
[0075]
The
[0076]
In
[0077]
By making the clock CKFLPM active, the value of the F /
[0078]
In this way, at the time of master channel processing, the
[0079]
Another master channel (N + 3) channel is a channel that is not looped. For this reason, as shown in FIG. 16, the clock CKADC is not activated in
[0080]
Next, the operation of each part of the control
[0081]
Even if the processing target shifts from the master channel to the slave channel, the basic operation is the same. For this reason, the description will be made by paying attention only to the difference from the above-described operation for the N channel.
[0082]
In
[0083]
FIG. 15 is a timing chart showing operations of the control
[0084]
In the second embodiment, data (FLP, ESTPM) at the time of master channel processing is held by the F / F (registers) 306 and 1004 in this way. Thereby, the amount of data stored in the
[0085]
Even in the second embodiment, when looping is performed on the master channel, the jump step at that time is added to the loop start address ADL of the slave channel, and the loop is performed on the slave channel. You do n’t have to.
[0086]
Further, in the present embodiment (first and second embodiments), it is premised that loop synchronization between channels is performed, but this need not be premised. The waveform read
[0087]
【The invention's effect】
As described above, the present invention generates an address for reading generation waveform data.Address generation partAnd manage and control itControl partThe address generation part performs an operation for generating an address. For this reason, it is possible to reduce the load on the control portion that executes the software.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of an electronic musical instrument equipped with a musical sound generator according to a first embodiment.
FIG. 2 is a circuit configuration diagram of a musical sound generator.
FIG. 3 is a circuit configuration diagram of a waveform read address generator.
FIG. 4 is a diagram for explaining the contents stored in a RAM in the musical sound generating device.
FIG. 5 is a timing chart showing operations of a control signal generation unit and a waveform read address generation unit.
FIG. 6 is a timing chart showing operations of a control signal generation unit and a waveform read address generation unit during M channel processing.
FIG. 7 is a timing chart showing operations of a control signal generation unit and a waveform read address generation unit during N-channel processing.
FIG. 8 is a timing chart showing operations of a control signal generation unit and a waveform read address generation unit during K channel processing.
FIG. 9 is a diagram for explaining a musical sound waveform generated and generated by waveform data read by a waveform reading address generation unit.
FIG. 10 is a circuit configuration diagram of a waveform read address generation unit (second embodiment);
FIG. 11 is a diagram for explaining the contents stored in a RAM in the musical sound generator (second embodiment).
FIG. 12 is a timing chart showing operations of a control signal generation unit and a waveform read address generation unit (second embodiment).
FIG. 13 is a timing chart showing operations of a control signal generation unit and a waveform read address generation unit during N-channel processing (second embodiment).
FIG. 14 is a timing chart showing operations of a control signal generation unit and a waveform read address generation unit during (N + 1) channel processing (second embodiment);
FIG. 15 is a timing chart showing operations of a control signal generation unit and a waveform read address generation unit during (N + 2) channel processing (second embodiment);
FIG. 16 is a timing chart showing operations of a control signal generation unit and a waveform read address generation unit during (N + 3) channel processing (second embodiment);
[Explanation of symbols]
101 CPU
102, 202 RAM
103, 106 ROM
105 Musical sound generator
107 DA converter
201 Control signal generator
203 Waveform reading address generator
204 Waveform generator
301-303, 1001, 1002 Selector (SL)
304 to 313, 1003, 1004 Flip-flop (F / F)
314 Adder / Subtractor
315 Comparator
316 Address incrementer
Claims (4)
前記波形記憶手段から波形データを読み出すためのアドレスを生成するためのアドレス生成情報及びマスターチャンネルを判別する判別情報をチャンネル別に記憶した生成用情報記憶手段と、
この生成用情報記憶手段から、チャンネル毎に順次時分割でアドレス生成情報及び判別情報を読み出す読み出し手段と、
この読み出された判別情報により、前記読み出し手段により読み出されたアドレス生成情報がマスターチャンネルに対応するものか、あるいは当該マスターチャンネルと判別されたチャンネルをマスターとして指定するスレーブチャンネルに対応するものかを判別する判別手段と、
前記読み出されたアドレス生成情報に基づいて前記波形記憶手段から波形データを読み出すためのアドレス情報を生成するアドレス生成手段と、
前記マスターチャンネルのループ開始か否かを示すデータを記憶するループ開始記憶手段と、
前記判別手段によりマスターチャンネルに対応するものと判別される毎に、前記アドレス生成手段にて生成されたアドレスに基づき、ループ開始か否かを検出するとともに、この判別結果に基づいて前記ループ開始記憶手段の記憶内容を更新するループ検出手段と、
前記ループ検出手段によりループ開始が検出されるに応答して、前記マスターチャンネルのアドレスをループ開始アドレスに変更するように前記アドレス生成手段を制御するとともに、前記判別手段によりスレーブチャンネルに対応するものと判別される毎に前記ループ開始記憶手段の記憶内容を参照し、前記記憶内容がループ開始を示すデータである場合は、当該スレーブチャンネルのアドレスをループ開始アドレスに変更するように前記アドレス生成手段を制御するアドレス制御手段と、
前記アドレス生成手段にて生成されたアドレスに基づいて前記波形データ記憶手段から波形データを読み出す波形読み出し手段と、
を具備したことを特徴とする楽音発生装置。 Waveform storage means for storing waveform data of musical sounds to be sounded;
Generation information storage means for storing address generation information for generating an address for reading waveform data from the waveform storage means and determination information for determining a master channel for each channel;
Reading means for reading out the address generation information and the discriminating information from the generation information storage means sequentially in time division for each channel;
Whether the address generation information read by the reading means corresponds to the master channel or the slave channel that designates the channel determined to be the master channel as the master based on the read discrimination information. Discriminating means for discriminating;
Address generation means for generating address information for reading waveform data from the waveform storage means based on the read address generation information;
Loop start storage means for storing data indicating whether or not the master channel loop starts;
Each time the discriminating unit discriminates that it corresponds to the master channel, it detects whether or not the loop is started based on the address generated by the address generating unit, and the loop start storage is performed based on the discrimination result. Loop detection means for updating the stored contents of the means;
In response to detection of a loop start by the loop detection means, the address generation means is controlled to change the address of the master channel to a loop start address, and the determination means corresponds to a slave channel. Each time it is determined, the stored contents of the loop start storage means are referred to.If the stored contents are data indicating the start of a loop, the address generation means is changed so as to change the address of the slave channel to a loop start address. Address control means to control;
Waveform reading means for reading waveform data from the waveform data storage means based on the address generated by the address generation means;
A musical sound generating device comprising:
前記判別手段は、前記読み出されたアドレス生成情報に対応するチャンネルと前記マスターチャンネル情報により表わされたチャンネルとを比較する比較手段を有することを特徴とする請求項1記載の楽音発生装置。 The discrimination information comprises master channel information representing a master channel,
2. The musical tone generating apparatus according to claim 1 , wherein the discriminating unit includes a comparing unit that compares a channel corresponding to the read address generation information with a channel represented by the master channel information .
前記波形記憶手段から波形データを読み出すためのアドレスを生成するためのアドレス生成情報及びマスターチャネルか否か識別する識別情報をチャンネル別に記憶した生成用情報記憶手段と、
この生成用情報記憶手段から、チャンネル毎に順次時分割でアドレス生成情報及び識別情報を読み出す読み出し手段と、
この読み出された識別情報により、前記読み出し手段により読み出されたアドレス生成情報がマスターチャンネルに対応するものか、あるいはスレーブチャンネルに対応するものかを判別する判別手段と、
前記読み出されたアドレス生成情報に基づいて前記波形記憶手段から波形データを読み出すためのアドレス情報を生成するアドレス生成手段と、
前記マスターチャンネルのループ開始か否かを示すデータを記憶するループ開始記憶手段と、
前記判別手段によりマスターチャンネルに対応するものと判別される毎に、前記アドレ ス生成手段にて生成されたアドレスに基づき、ループ開始か否かを検出するとともに、この判別結果に基づいて前記ループ開始記憶手段の記憶内容を更新するループ検出手段と、
前記ループ検出手段によりループ開始が検出されるに応答して、前記マスターチャンネルのアドレスをループ開始アドレスに変更するように前記アドレス生成手段を制御するとともに、前記判別手段によりスレーブチャンネルに対応するものと判別される毎に前記ループ開始記憶手段の記憶内容を参照し、前記記憶内容がループ開始を示すデータである場合は、当該スレーブチャンネルのアドレスをループ開始アドレスに変更するように前記アドレス生成手段を制御するアドレス制御手段と、
前記アドレス生成手段にて生成されたアドレスに基づいて前記波形データ記憶手段から波形データを読み出す波形読み出し手段と、
を具備したことを特徴とする楽音発生装置。 Waveform storage means for storing waveform data of musical sounds to be sounded;
Generation information storage means for storing address generation information for generating an address for reading waveform data from the waveform storage means and identification information for identifying whether the channel is a master channel, or
Reading means for reading out the address generation information and identification information from the generation information storage means sequentially in a time-sharing manner for each channel;
Based on the read identification information, a determination unit that determines whether the address generation information read by the reading unit corresponds to a master channel or a slave channel;
Address generation means for generating address information for reading waveform data from the waveform storage means based on the read address generation information;
Loop start storage means for storing data indicating whether or not the master channel loop starts;
Each time it is determined that the corresponding master channel by said discriminating means, said address based on the address generated by the scan generation means, and detects whether or not the loop start, the loop initiated based on the determination result Loop detection means for updating the storage contents of the storage means;
In response to detection of a loop start by the loop detection means, the address generation means is controlled to change the address of the master channel to a loop start address, and the determination means corresponds to a slave channel. Each time it is determined, the stored contents of the loop start storage means are referred to.If the stored contents are data indicating the start of a loop, the address generation means is changed so as to change the address of the slave channel to a loop start address. Address control means to control;
Waveform reading means for reading waveform data from the waveform data storage means based on the address generated by the address generation means;
A musical sound generating device comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP37444598A JP4144090B2 (en) | 1998-12-28 | 1998-12-28 | Music generator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP37444598A JP4144090B2 (en) | 1998-12-28 | 1998-12-28 | Music generator |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000194377A JP2000194377A (en) | 2000-07-14 |
JP4144090B2 true JP4144090B2 (en) | 2008-09-03 |
Family
ID=18503866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP37444598A Expired - Fee Related JP4144090B2 (en) | 1998-12-28 | 1998-12-28 | Music generator |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4144090B2 (en) |
-
1998
- 1998-12-28 JP JP37444598A patent/JP4144090B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000194377A (en) | 2000-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5614420B2 (en) | Musical sound generating apparatus, electronic musical instrument, program, and musical sound generating method | |
JP2571911B2 (en) | Music signal generator | |
JP2567717B2 (en) | Musical sound generator | |
JP5915420B2 (en) | Musical sound generating device, musical sound generating method, electronic musical instrument and program | |
JP4144090B2 (en) | Music generator | |
JPH0820872B2 (en) | Waveform generator | |
JP2722665B2 (en) | Tone generator | |
JP3928725B2 (en) | Music signal generator and legato processing program | |
JP2900082B2 (en) | Music generator | |
JP3371643B2 (en) | Signal processing device | |
JP3605049B2 (en) | Apparatus and method for generating musical tone control signal | |
JP3508139B2 (en) | Digital signal processor | |
US5817964A (en) | Electronic musical instrument and method for storing a plurality of waveform sampling data at a single address | |
JP2640560B2 (en) | Envelope signal generator | |
JP3116447B2 (en) | Digital signal processor | |
JP3344252B2 (en) | Waveform generator | |
JP3707908B2 (en) | Electronic musical instrument effect adding device | |
JP2760436B2 (en) | Apparatus and method for generating waveform data for musical sound | |
JP3651675B2 (en) | Electronic musical instruments | |
JPH052999B2 (en) | ||
JP3217745B2 (en) | Electronic musical instrument | |
JP2782270B2 (en) | Envelope signal generator | |
JPH06250662A (en) | Generating method and memory for waveform data | |
JP3044712B2 (en) | Electronic musical instrument | |
JP3337450B2 (en) | Electronic musical instrument |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050829 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080108 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080306 |
|
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: 20080527 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080609 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110627 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110627 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120627 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120627 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130627 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |