[go: up one dir, main page]

JP4144090B2 - Music generator - Google Patents

Music generator Download PDF

Info

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
Application number
JP37444598A
Other languages
Japanese (ja)
Other versions
JP2000194377A (en
Inventor
浩明 長坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP37444598A priority Critical patent/JP4144090B2/en
Publication of JP2000194377A publication Critical patent/JP2000194377A/en
Application granted granted Critical
Publication of JP4144090B2 publication Critical patent/JP4144090B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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で出力するセレクト信号FASの値を決定する。具体的にはその値が1であれば2にする。それにより、サイクル6では、加減算器314に、F/F308のデータADLからF/F306のデータESTPを減算させる演算を行わせる。その結果、続くサイクル7でF/F304には、その演算結果(=ADL−ESTPM)が保持されることになる。言い換えれば、Mチャンネルのループに合わせて、そのときのエンドアドレスADEからの超過分をNチャンネルのデータADLに加算して得られる値がF/F304に保持されることになる。
【0058】
Nチャンネル処理時には、上記した部分がMチャンネル処理時から異なっている。なお、単にNチャンネルでループを行うときには、制御信号発生部201はサイクル6で出力するセレクト信号FASの値を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 CPU 101 that controls the entire musical instrument, a RAM 102 that the CPU 101 uses for work, a ROM 103 that stores programs executed by the CPU 101 and various control data, a keyboard, An operator group 104 composed of switches, a musical sound generator 105 that generates waveform data of musical sounds to be generated according to instructions from the CPU 101, a ROM 106 that stores waveform data obtained by sampling sounds of various musical instruments, and musical tone generation A DA converter 107 that converts waveform data input from the device 105 into an analog audio signal and an acoustic circuit 108 that converts the audio signal into sound and outputs the sound are configured.
[0014]
The operation of the above configuration will be described.
[0015]
When the power is turned on, the CPU 101 reads out a program from the ROM 103 and executes it, thereby starting control of the entire instrument. The control is performed in accordance with a user operation on the operator group 104 while using the RAM 102 for work.
[0016]
The user's operation on the operator group 104 is detected by, for example, scanning it and analyzing the scanning result. The CPU 101 operates the electronic musical instrument according to the contents designated by the user via the operator group 104 by giving various settings and instructions to the musical sound generation device 105 based on the analysis result.
[0017]
FIG. 2 is a circuit configuration diagram of the musical tone generator 105.
[0018]
As shown in FIG. 2, the musical tone generator 105 generates a control signal generator 201 that controls the entire apparatus 105 and waveform data for each channel (each channel corresponds to one musical tone). Using the RAM 202 for storing the data for reading, the waveform reading address generating unit 203 for generating an address for reading the waveform data from the ROM 106, and the waveform data read from the ROM 106 by the address generated by the address generating unit 203 A waveform generation unit 204 that generates waveform data of a musical tone to be played, and a RAM I / F (hereinafter abbreviated as I / F) 205 that mediates exchange of data between the RAM 202 and the units 201 to 204. It is configured.
[0019]
In the above configuration, the operation of the tone generator 105 will be described. Here, for the sake of convenience, the description will be given focusing on the operation for one channel.
[0020]
The CPU 101 allocates a musical sound channel to be generated according to the key pressed every time the user presses the key, and generates an identifier for instructing the musical sound generation, a channel number, and waveform data of the musical sound. Data is sent to the tone generator 105 as a control command.
[0021]
The control command is sent to the control signal generator 201 via the I / F 205. The I / F 205 sends only the identifier, channel number, and master channel number, for example, to the control signal generator 201 in the control command. Upon receiving this, the control signal generator 201 outputs an address specified from the channel number to the I / F 205 and stores the remaining data in the control command in the RAM 202.
[0022]
FIG. 4 is a diagram for explaining the contents stored in the RAM 202 in the musical tone generator 105 in this way.
[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 ROM 106. The initial value, in other words, the address sent as a control command is the address of the waveform data located at the head of the waveform data to be reproduced. Similarly, ADE is the last address (end address) where the waveform data is stored, and ADL is the waveform data address (loop start address) that is the start position for repeating reproduction (loop) in the waveform data. Each is shown. The continuous sound is performed by repeatedly reproducing the waveform data between addresses ADL to ADE.
[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 musical tone generator 105. The control signal generator 201 stores it in the area specified from the channel as shown in FIG. Those data are erased when a control command for instructing to mute the musical sound to be generated is received from the CPU 101. Thereby, the musical sound is muted. The control command stores, for example, at least an identifier indicating that fact and a channel number.
[0027]
The data stored in the RAM 202 for each channel is read during the processing period of the channel and sent to the waveform read address generator 203. The control signal generation unit 201 sequentially outputs, to the I / F 205, the address (value) where the data of the target channel is stored from the RAM 202. The I / F 205 reads the data stored at those addresses from the RAM 202 and sends the data to the waveform reading address generator 203.
[0028]
The waveform read address generator 203 stores data sent from the RAM 202 via the I / F 205 in the corresponding register, performs various calculations using the data stored in the register, and reads from the ROM 106. An address from which waveform data is to be read is generated. Data updated according to the generation of the address is sent to the I / F 205.
[0029]
The control signal generator 201 outputs an address for storing data in the I / F 205 in accordance with the transmission timing. Thereby, the I / F 205 rewrites (updates) data in the RAM 202.
[0030]
The waveform reading address generation unit 203 sequentially outputs two adjacent addresses (values) to the ROM 106 in one channel. The waveform data stored at those addresses is read from the ROM 106.
[0031]
When the waveform generation unit 204 receives the waveform data read from the ROM 106, it generates waveform data of a musical tone to be generated by performing linear interpolation or the like. The generated waveform data is added to the waveform data of other channels generated so far. Thereby, after the generation of the waveform data for all channels is completed, the waveform data obtained by adding all the waveform data for all channels is output to 1 / F 205. The waveform data is sent to the DA converter 107 shown in FIG.
[0032]
The control signal generator 201 controls the operation of each of the units 203 and 204 by outputting a clock and various control signals. The control signal is changed according to the signal input from them. Thereby, the units 203 and 204 are operated according to the situation.
[0033]
FIG. 3 is a circuit configuration diagram of the waveform read address generator 203. Next, with reference to FIG. 3 and various explanatory diagrams shown in FIGS. 4 to 8, the configuration of the control signal generator 201 and the waveform read address generator 203 will be described in detail.
[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 / Fs 304 to 313 is a register configured by an F / F of the number of bits of contents to be actually stored therein. However, F / F is used here to avoid complications. In order to clarify the correspondence between the data held therein and the data shown in FIG. 4, a character string of the data shown in FIG. 4 is used. The character string indicating the register name is also used as the output signal name for convenience. The character string with “CK” added to the head of the character string is the name of the clock (control signal) input to the F / F (register) corresponding to the character string with the “CK” added.
[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 / F 304 is selected. Similarly, when the value is 1, the output signal of the F / F 305 is selected. It shows that the output signal of F306 is selected. “FSUB” below the adder / subtractor 314 is a control signal that indicates whether to perform addition / subtraction. When the value is 0, addition is performed, and when the value is 1, subtraction is performed by the adder / subtractor 314. When the value is 2, the output signal FIA of the SL 302 is output as it is. Various control signals including clocks, select signals and the like input to the units 301 to 315 are output from the control signal generation unit 201.
[0038]
As shown in FIG. 5, the control signal generation unit 201 performs a process of generating waveform data in units of channels sequentially from the smallest channel number. Thereafter, the control signal for each channel is taken as an example in the case where there are two channels, N and K (K <M <N), where the master channel is the M channel and the M channel is the master channel. The operations of the generation unit 201 and the waveform reading address generation unit 203 (each unit constituting the generation unit 201) will be described in detail.
[0039]
First, the operation of each part constituting the control signal generation unit 201 and the waveform read address generation unit 203 during processing of the M channel which is the master channel will be described with reference to the timing chart shown in FIG.
[0040]
The system clock shown in FIG. 6 is a clock generated by the control signal generator 201 for controlling each unit in the musical tone generator 105 including the waveform read address generator 203. The control signal generator 201 outputs a control signal to be output in synchronization with the clock. The cycle below the system clock is a processing time indicated by dividing the processing time allocated to one channel by one period of the system clock. The operation will be described by paying attention to the cycle for convenience.
[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 RAM 202 is transferred to the data bus RO in the order of ADC, FRN (including MCH), ADE, FLP (including ESTP) of the master channel, and ADL. Sequentially output from the I / F 205.
[0043]
The control signal generator 201 activates the control signal of the F / F (register) that holds it in accordance with the output timing of those data (high level with a logical value of 1. All the periods are ½ cycle periods. ). Specifically, after setting the value of the select signal to 0 in cycle 0, the clock CKADC is activated in cycle 1 to hold the data ADC in the F / F 304, and both the clocks CKFRN and CKMCH are activated in cycle 2. , F / F309 holds data FRN, F / F310 holds data MCH, clock CKADE is activated in cycle 3 and data ADE is held in F / F307, and clocks CKFLPM and CKESTPM are both activated in cycle 4 The F / F 311 holds the data FLP and the F / F 306 holds the data ESTP (including FLP) (they are master channel data), and the clock CKADL is activated in cycle 5 to activate the data ADL in the F / F 308. Hold . Thereby, the data to be held in each of the F / Fs 304 to 311 is held.
[0044]
In the cycle 4, the control signal generation unit 201 sets the value of the select signal FIAS to 0, the value of the select signal FIBS to 2, and the value of the control signal FSUB to 0. This causes the adder / subtractor 314 to perform an addition operation for adding the data ADC of the F / F 304 to the data FRN of the F / F 309. The adder / subtractor 314 outputs the addition result (= FRN + ADC) as an output FO.
[0045]
In cycle 4, data MCH is held in F / F 310 and output to comparator 315. The control signal generator 201 outputs the master channel number CHCY of the current processing channel to the comparator 315. The comparator 315 sets the value of the output signal FSLV to 1 when they are different. The output signal FSLV is output to the control signal generator 201. Since the M channel is a master channel, the value of the output signal FSLV here is 0.
[0046]
In the next cycle 5, the control signal generation unit 201 sets the value of the select signal ADCIS to 1 and activates the clock CKADC. Thereby, the calculation result (= FRN + ADC) of the adder / subtractor 314 is held in the F / F 304. On the other hand, the value of the select signal FIBS is set to 0, and the value of the control signal FSUB is set to 1. This causes the adder / subtractor 314 to perform an operation of subtracting the F / F 304 data ADC from the F / F 307 data ADE. The adder / subtractor 314 outputs the subtraction result (= ADE-ADC) as an output FO.
[0047]
In cycle 6, the clocks CKFLP and CKESTP are both activated. Thereby, the calculation result (= ADE-ADC) of the adder / subtractor 314 is held in the F / Fs 313 and 305.
[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 / F 313 is 1 bit, and the sign of the operation result is input. For this reason, when that situation occurs, the value held by the F / F 313 is 1. The value of F / F 313 is output to the control signal generator 201. Note that the difference (= ADC−ADE) when the waveform data read address ADC becomes larger than the end address ADE will be referred to as an interlace step hereinafter.
[0049]
On the other hand, the control signal generator 201 sets the value of the select signal FIAS to 1, the value of the select signal FIBS to 1, and the value of the control signal FSUB to 1. This causes the adder / subtractor 314 to perform an operation for subtracting the data ESTP of the F / F 304 (the calculation result immediately before the adder / subtractor 314) from the data ADL of the F / F 308. The adder / subtractor 314 outputs the subtraction result (= ADL-ESTP) as an output FO. Since ESTP <0 at the time of the loop, an operation for adding the absolute value of the data ESTP to the data ADL is actually performed.
[0050]
In the subsequent cycle 7, the clock CKADC is made active, and the operation result (= ADL-ESTP) of the adder / subtractor 314 is held in the E / F 304. The updated data ADC held therein is sent to the I / F 205 via the data bus RI and written into the RAM 202. On the other hand, the value of the control signal FSUB is set to 2 while the value of the select signal FIAS remains 1. Thereby, the data held in the F / F 305 is output from the adder / subtractor 314 as it is.
[0051]
In cycle 8, the clock CKADC is activated. Thereby, the data ESTP held by the F / F 305 is sent to the I / F 205 via the F / F 304 and the data bus RI and written to the RAM 202. Otherwise, the clock CKADO is activated. Thereby, the data ADC held in the F / F 304 before the data ESTP is held in the F / F 312 and sent to the address incrementer 316. As a result, the address incrementer 316 outputs the data ADO (ADC) held in the F / F 312 from the cycle 8 as the address EADR, and a value obtained by incrementing the value at the cycle 0 in the next channel (= ADO + 1). Is output. As a result, two waveform data having different address values by one are read from the ROM 106 and sent to the waveform generation unit 204 shown in FIG.
[0052]
The timing chart shown in FIG. 6 shows the operation when looping. The value of F / F 313 is 0 when it is not in a situation of causing the loop. When the value is 0, the control signal generation unit 201 does not activate the clock CKADC in cycle 7. Thereby, the data ADC held in the cycle 5 is held in the F / F 304 until the cycle 8 is shifted to. This is basically the only operational difference between looping and not.
[0053]
Next, the operation of each part of the control signal generation unit 201 and the waveform read address generation unit 203 during processing of the N channel, which is an M channel slave channel, will be described with reference to the timing chart shown in FIG. FIG. 7 is after a loop has occurred in the M channel.
[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 cycle 2, the clock CKMCH becomes active and the data MCH is held in the F / F 310. Thereby, the value of the output signal FSLV of the comparator 315 becomes 1, and the control signal generator 201 is notified that the N channel is a slave channel.
[0056]
In cycle 4, clocks CKFLPM and CKESTPM are both activated, and data FLP is held in F / F 311 and data ESTP is held in F / F 306, respectively (they are M channel data). By holding the data FLP in the F / F 311, the control signal generator 201 is notified that the loop has been performed on the M channel.
[0057]
  Based on the value held in the F / F 311, the control signal generation unit 201 selects the select signal F output in cycle 6.IDetermine the value of AS. Specifically, if the value is 1, it is set to 2. As a result, in cycle 6, the adder / subtracter 314 sends the data ADL of F / F308 to the data ESTP of F / F306.MPerforms an operation that subtracts. As a result, in the subsequent cycle 7, the calculation result (= ADL-ESTPM) is held in the F / F 304. In other words, in accordance with the loop of the M channel, the value obtained by adding the excess from the end address ADE at that time to the data ADL of the N channel is held in the F / F 304.
[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 signal generation unit 201 selects the select signal F output in cycle 6.IOnly the AS value is set to 1. When the loop is not performed, the clock CKADC is not activated in cycle 7 as in the case of M channel processing.
[0059]
FIG. 8 is a timing chart showing operations of the control signal generation unit 201 and the waveform read address generation unit 203 during the processing of the K channel, which is an M channel slave channel. The operation when the K channel is processed for the first time after looping with the M channel is shown. The details of the operation are basically the same as those in the N-channel processing, and the description is omitted.
[0060]
FIG. 9 is a diagram for explaining a musical sound waveform generated / sounded by the waveform data read by the waveform reading address generation unit 203 from the ROM 106 as described above.
[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 ROM 106 in the waveform reading address generating unit 203 by the control signal generating unit 201 outputting various control signals as described above. To make it happen. The control signal generator 201 itself is not required to perform various calculations. As described above, since the load for generating the waveform data is distributed to the waveform reading address generation unit 203, the load on the generation unit 201 itself can be reduced.
[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 RAM 202. On the other hand, in the second embodiment, the amount of data stored in the RAM 202 is smaller.
[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 address generation unit 203 is changed from the first embodiment in accordance with the reduction in the amount of data stored in the RAM 202. Therefore, only the configuration of the waveform reading address generation unit 203, the contents stored in the RAM 202, and the operations of the control signal generation unit 201 and the waveform reading address generation unit 203 will be described.
[0066]
FIG. 10 is a circuit configuration diagram of the waveform read address generator 203 according to the second embodiment. First, the configuration of the waveform read address generator 203 will be described with reference to FIG.
[0067]
As shown in FIG. 10, in the second embodiment, an SL (selector) 1001 is provided before the F / F 306. The SL 1001 selects either the output signal FO of the adder / subtractor 314 or the output signal of the F / F 306 according to the value of the select signal ESTPMIS and outputs the selected signal to the F / F 306.
[0068]
The F / Fs 310 and 311 and the comparator 315 are omitted. Instead, F / Fs 1003, 1004, and SL1002 are provided. The F / F 1003 is connected to the data bus RO. The SL 1002 selects either the output signal FO of the adder / subtractor 314 or the output signal of the F / F 1004 according to the value of the select signal FLPMIS and outputs the selected signal to the F / F 1004. The output signals of the F / Fs 1003 and 1004 are both output to the control signal generator 201.
[0069]
FIG. 11 is a diagram for explaining the contents stored in the RAM 202.
[0070]
  FIG.As shown in the figure, in the second embodiment, only the data FSLV is stored in the RAM 202 instead of the data FLP, ESTEP, and MCH. The data indicates whether the channel is a master channel or a slave channel, and 0 is set for the master channel and 1 is set for the slave channel. The data FSLV is also data sent from the CPU 101 as a control command.
[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 signal generation unit 201 and the waveform read address generation unit 203 (each unit constituting the signal) during processing of four consecutive channels N to (N + 3) will be described with reference to the timing charts of FIGS. However, this will be described in detail.
[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 signal generation unit 201 and the waveform reading address generation unit 203 (each unit constituting the same) during N channel processing will be described with reference to FIG.
[0074]
When the processing channel shifts to the N channel, the data read from the RAM 202 is sequentially output from the I / F 205 to the data bus RO in the order of ADC, FRN (including FSLV), ADE, and ADL.
[0075]
The control signal generator 201 activates a control signal of an F / F (register) that holds the data in accordance with the output timing of the data. At that time, in the cycle 2, the clock CKFSLV is activated and the F / F 1003 holds the data FSLV. The control signal generation unit 201 determines whether or not the currently targeted channel is a master channel from the value held by the F / F 1003 in this way.
[0076]
In cycle 4, the values of select signals FLPMIS and ESTPMIS are set to zero. In the subsequent cycle 5, the clocks CKFLPM and CKESTP are activated. This causes the F / Fs 306 and 1004 to hold the output signal FO of the adder / subtractor 314. Note that the F / F 1004 holds the value of the sign of the output signal FO.
[0077]
By making the clock CKFLPM active, the value of the F / F 1004 is 1 (a value indicating that a looping situation has been reached). Therefore, the control signal generator 201 activates the clock CKADC in cycle 6. At this time, the value of F / F 313 is also 1.
[0078]
In this way, at the time of master channel processing, the control signal generator 201 updates the contents held by the F / Fs 306 and 1004. The contents are held until the processing of the slave channel is completed. Thereby, the amount of data stored in the RAM 202 is reduced.
[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 cycle 6. Basically, this is the only difference in operation from N-channel processing.
[0080]
Next, the operation of each part of the control signal generation unit 201 and the waveform reading address generation unit 203 during processing of the (N + 1) channel, which is an N channel slave channel, will be described with reference to the timing chart shown in FIG. .
[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 cycle 4, select signals FLPMIS and ESTPMIS are set to 1. In the subsequent cycle 5, the clocks CKFLPM and CKESTP are activated. As a result, the contents of the F / Fs 306 and 1004 are held as they are.
[0083]
FIG. 15 is a timing chart showing operations of the control signal generation unit 201 and the waveform read address generation unit 203 during processing of the (N + 2) channel which is an N channel slave channel. The contents of the operation are basically the same as those at the time of (N + 1) channel processing, and thus description thereof is omitted.
[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 RAM 202 is reduced. Further, compared with the first embodiment, there is an effect that the circuit scale of the waveform read address generation unit 203 can be further reduced by making the comparator 315 unnecessary.
[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 address generator 203 may simply generate an address for reading the waveform data. Of course, you may be able to do that.
[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 .
前記アドレス生成情報は、所定周期毎に進めるアドレスの値、前記発音させるべき楽音の波形データの先頭位置を表わすアドレス、当該波形データの最後の位置を表わすアドレス値及び再生を繰り返す開始位置を表わすアドレスから成ることを特徴とする請求項1記載の楽音発生装置。 The address generation information includes an address value advanced every predetermined period, an address representing the start position of the waveform data of the musical sound to be generated, an address value representing the last position of the waveform data, and an address representing the start position at which reproduction is repeated. The musical tone generator according to claim 1, comprising: 発音させるべき楽音の波形データを記憶する波形記憶手段と、
前記波形記憶手段から波形データを読み出すためのアドレスを生成するためのアドレス生成情報及びマスターチャネルか否か識別する識別情報をチャンネル別に記憶した生成用情報記憶手段と、
この生成用情報記憶手段から、チャンネル毎に順次時分割でアドレス生成情報及び識別情報を読み出す読み出し手段と、
この読み出された識別情報により、前記読み出し手段により読み出されたアドレス生成情報がマスターチャンネルに対応するものか、あるいはスレーブチャンネルに対応するものかを判別する判別手段と、
前記読み出されたアドレス生成情報に基づいて前記波形記憶手段から波形データを読み出すためのアドレス情報を生成するアドレス生成手段と、
前記マスターチャンネルのループ開始か否かを示すデータを記憶するループ開始記憶手段と、
前記判別手段によりマスターチャンネルに対応するものと判別される毎に、前記アドレ ス生成手段にて生成されたアドレスに基づき、ループ開始か否かを検出するとともに、この判別結果に基づいて前記ループ開始記憶手段の記憶内容を更新するループ検出手段と、
前記ループ検出手段によりループ開始が検出されるに応答して、前記マスターチャンネルのアドレスをループ開始アドレスに変更するように前記アドレス生成手段を制御するとともに、前記判別手段によりスレーブチャンネルに対応するものと判別される毎に前記ループ開始記憶手段の記憶内容を参照し、前記記憶内容がループ開始を示すデータである場合は、当該スレーブチャンネルのアドレスをループ開始アドレスに変更するように前記アドレス生成手段を制御するアドレス制御手段と、
前記アドレス生成手段にて生成されたアドレスに基づいて前記波形データ記憶手段から波形データを読み出す波形読み出し手段と、
を具備したことを特徴とする楽音発生装置。
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:
JP37444598A 1998-12-28 1998-12-28 Music generator Expired - Fee Related JP4144090B2 (en)

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)

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