JPH0926791A - 楽音発生方法及び波形記憶方法 - Google Patents
楽音発生方法及び波形記憶方法Info
- Publication number
- JPH0926791A JPH0926791A JP7197923A JP19792395A JPH0926791A JP H0926791 A JPH0926791 A JP H0926791A JP 7197923 A JP7197923 A JP 7197923A JP 19792395 A JP19792395 A JP 19792395A JP H0926791 A JPH0926791 A JP H0926791A
- Authority
- JP
- Japan
- Prior art keywords
- data
- waveform
- reading
- storage
- loop
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0033—Recording/reproducing or transmission of music for electrophonic musical instruments
- G10H1/0041—Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
- G10H1/0058—Transmission between separate instruments or between individual components of a musical system
- G10H1/0066—Transmission between separate instruments or between individual components of a musical system using a MIDI interface
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/002—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/02—Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2230/00—General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
- G10H2230/025—Computing or signal processing architecture features
- G10H2230/031—Use of cache memory for electrophonic musical instrument processes, e.g. for improving processing capabilities or solving interfacing problems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/171—Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
- G10H2240/201—Physical layer or hardware aspects of transmission to or from an electrophonic musical instrument, e.g. voltage levels, bit streams, code words or symbols over a physical link connecting network nodes or instruments
- G10H2240/241—Telephone transmission, i.e. using twisted pair telephone lines or any type of telephone network
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2240/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/171—Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
- G10H2240/281—Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
- G10H2240/295—Packet switched network, e.g. token ring
- G10H2240/305—Internet or TCP/IP protocol use for any electrophonic musical instrument data or musical parameter transmission purposes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Electrophonic Musical Instruments (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
アクセス速度を向上させ、高価なSRAMを使用しなく
ても音源処理能力を向上させることができる楽音発生方
法及び波形記憶方法を提供する。 【構成】 RAM6の領域をキャッシングの対象とする
データを記憶するキャッシュオン領域とキャッシングの
対象としないデータを記憶するキャッシュオフ領域とに
分け、楽音のアタック部波形データをキャッシュオフ領
域に記憶し、ループ部波形データをキャッシュオフ領域
に記憶する。ループ部波形データの読み出し時は、キャ
ッシュメモリ101に当該データが記憶されているかを
調べて、キャッシュメモリ101にない場合は、RAM
6から読み出すとともにキャッシュメモリ101に記憶
する。以後、当該ループ部波形データをキャッシュメモ
リ101から繰り返し読み出すことより、ループ部波形
の再生を行う。
Description
た波形データを読み出して楽音を発生する楽音発生方法
及び装置並びにその方法の実施に適する波形記憶方法及
び装置に関する。
を読み出して補間処理等を行って楽音を発生する楽音発
生方法は従来より知られている。
法を、例えばパーソナルコンピュータのようなデータ処
理装置に適用し、ソフトウエアで楽音を発生させる場
合、すなわちデータ処理装置で音源処理を行う場合に
は、波形メモリに記憶された大量の波形データにリアル
タイムでアクセスする必要があり、高速なメモリアクセ
スが必要である。このため、メモリのアクセス速度が音
源処理能力向上のネックとなっている。特に波形メモリ
をRAMで構成する場合、アクセス速度の速いSRAM
を使用しなければならないため、装置が高価なものにな
るという問題があった。
セスを早めるための技術としてキャッシュメモリの技術
が知られている。しかし、この技術は通常数Kバイト〜
数10Kバイトの容量のキャッシュメモリを使用するも
のであり、同じ小さなメモリ領域に頻繁にアクセスする
ような処理には効果を発揮するが、音源処理の波形読出
のような、一度に数10〜数100Kバイトの領域を連
続的にアクセスする処理の場合には、キャッシュメモリ
を大容量化しなければならず、単純に従来の手法を適用
したのではアクセス速度を速める効果がほとんど期待で
きない。
あり、小容量のキャッシュメモリを有効に使用してアク
セス速度を向上させ、高価なSRAMを使用しなくても
音源処理能力を向上させることができる楽音発生方法及
び波形記憶方法を提供することを目的とする。
本発明は、アタック部とループ部を有する波形データを
第1の記憶手段に記憶する第1記憶ステップと、発音指
示に応じて、前記第1の記憶手段よりアタック部及びル
ープ部を続けて読み出す第1読出ステップと、読み出さ
れたループ部を、前記第1の記憶手段より高速動作可能
な第2の記憶手段に記憶する第2記憶ステップと、前記
第1読出ステップによるループ部の読み出しに続いて、
前記第2の記憶手段に記憶されたループ部波形を繰り返
し読み出す第2読出ステップと、前記第1及び第2読出
ステップにより読み出された波形データに基づき楽音を
生成する生成ステップとを有することを特徴とする請求
項1の楽音発生方法、及びアタック部とループ部を有す
る波形データを記憶する第1の記憶手段と、発音指示に
応じて、前記第1の記憶手段よりアタック部及びループ
部を続けて読み出す第1読出手段と、読み出されたルー
プ部を記憶する、前記第1の記憶手段より高速動作可能
な第2の記憶手段と、前記第1読出手段によるループ部
の読み出しに続いて、前記第2の記憶手段に記憶された
ループ部波形を繰り返し読み出す第2読出手段と、前記
第1及び第2読出手段により読み出された波形データに
基づき楽音を生成する生成手段とを有することを特徴と
する請求項3の楽音発生装置を提供する。
グの対象となるデータを記憶する特定領域を指定する指
定ステップと、前記記憶手段の特定領域以外の領域に複
数の波形データのアタック部をまとめて記憶するアタッ
ク部記憶ステップと、前記記憶手段の特定領域に複数の
波形データのループ部をまとめて記憶するループ部記憶
ステップとを有することを特徴とする請求項2の波形記
憶方法、及びキャッシングの対象となる複数の波形デー
タのループ部をまとめて記憶する第1の記憶領域と、キ
ャッシングの対象とならない前記複数の波形データのア
タック部をまとめて記憶する第2の記憶領域とを有する
ことを特徴とする請求項4の波形記憶装置を提供する。
手段及び請求項2の記憶手段は例えばDRAMで構成さ
れ、請求項1又は3の第2の記憶手段は例えばCPUに
内蔵されたキャッシュメモリで構成される。
音発生装置によれば、アタック部とループ部を有する波
形データが第1の記憶手段に記憶され、発音指示に応じ
て、前記第1の記憶手段よりアタック部及びループ部が
続けて読み出され、アタック部及び最初のループ部の楽
音が生成されるとともに、読み出されたループ部が、前
記第1の記憶手段より高速動作可能な第2の記憶手段に
記憶され、以後第2の記憶手段に記憶されたループ部波
形を繰り返し読み出すことにより、ループ部の楽音生成
が行われる。ループ部波形データは、データ量が比較的
少ないので第2の記憶手段は、小容量のもので足り、ア
クセス速度を向上させることができる。
段の一部がキャッシングの対象となるデータを記憶する
特定領域として指定され、この特定領域には複数の波形
データのループ部がまとめて記憶される一方、特定領域
以外の領域には複数の波形データのアタック部がまとめ
て記憶される。また請求項4の波形記憶装置によれば、
キャッシングの対象となる複数の波形データのループ部
が第1の記憶領域にまとめて記憶される一方、キャッシ
ングの対象とならない前記複数の波形データのアタック
部は第2の記憶領域にまとめて記憶される。このよう
に、キャッシングの対象となるデータ記憶領域と、対象
とならないデータ記憶領域を分けて記憶することによ
り、読み出すべきデータのアドレスから、キャッシュメ
モリを見に行く必要があるか否かを判断できるので、ア
クセス速度をさらに向上させることができる。
参照して説明する。
ータ処理装置の構成を示すブロック図である。本装置
は、キャッシュメモリ101を有し、種々のデータ処理
を行うCPU1と、使用者がプログラムの実行指示やデ
ータの入力を行うためのキーボード2と、種々の画像情
報及び文字情報を表示するディスプレイ3と、CPU1
で実行されるプログラムやデータを記憶するハードディ
スク装置4と、キーボード2、ディスプレイ3、ハード
ディスク4等とのデータの入出力制御プログラム等を格
納したROM5と、実行中のプログラムや波形データ及
び演算中のデータを格納するRAM6と、時間計測用の
タイマ7と、例えばキーボード等の演奏装置と接続さ
れ、演奏データが入力されるMIDIインターフェース
8と、CPU1の指示に応じてRAM6に直接アクセス
し、波形データを読み出して1サンプルずつDAコンバ
ータ10に入力するDMA(Direct Memory Access)制
御部9と、DMA制御部9から供給されるディジタル信
号の波形データをアナログの楽音信号に変換するDAコ
ンバータ10と、楽音信号を増幅してスピーカから出力
するサウンドシステム11と、上記構成要素1〜9を相
互に接続するバス12とを備えている。
処理の概要について説明する。
Cに同期して128サンプル分の波形データをまとめて
読み出し、補間演算等の生成演算を実行し、演算したデ
ータをRAM6に記憶するとともに演算終了をDMA制
御部9に通知する(同図(b))。DMA制御部9は、
そのデータを読み出して再生処理を行う(同図
(c))。したがって、MIDIインターフェース8を
介して入力される演奏データのうち、前回のクロックB
Cの発生時刻tBCから今回の発生時刻tBCまでの間
に発生した演奏入力イベント(同図(a))に対応する
演奏データが今回の生成演算の対象となる。そして、時
刻tCEに演算が終了した生成データに基づいた波形デ
ータの読出再生処理が、時刻tBCから一定時間経過後
の時刻tRSからDMA制御部9で実行され、楽音が出
力される。なお、同図中に示した矢印Pは、単に生成演
算されたデータと読出再生処理との対応関係を示すもの
であり、時刻tCEに終了した演算結果が時刻tRSに
転送されることを示すものではない。
を例えば44KHzとすると、クロックBCの発生周期
は2.9msec(128/44K)となり、演奏入力
から実際の楽音発生までの遅れ時間は4msec程度で
あって、人間の聴感上は問題とならない。もちろん自動
演奏の場合にはこの遅れ時間はもっと長くても問題はな
い。
であり、本実施の形態ではRAM6の記憶領域をプログ
ラムを記憶するプログラム領域と、一度読み出されると
キャッシュメモリ101に格納され、当該データがキャ
ッシュメモリ101に格納されている間はRAM6にア
クセスすることなくキャッシュメモリ101から読み出
す処理(以下「キャッシング」という)の対象となるデ
ータを記憶するキャッシュオンデータ領域と、キャッシ
ングの対象としないデータを記憶するキャッシュオフデ
ータ領域とに分けている。そして、図4に示すようにア
タック波形に対応するアタック部波形データをキャッシ
ュオフデータ領域に記憶し、繰り返し再生されるループ
波形に対応するループ部波形データをキャッシュオンデ
ータ領域に記憶する。アタック部波形データ及びループ
部波形データは、それぞれ複数のデータをまとめてキャ
ッシュオフデータ領域及びキャッシュオンデータ領域に
記憶している。図4のAS及びAEは、それぞれ当該ア
タック部波形データが記憶されている領域の開始アドレ
ス及び終了アドレスであり、LS及びLEは当該ループ
部波形データが記憶されている領域の開始アドレス及び
終了アドレスである。
ュオンデータ領域に記憶し、また後述する音源レジス
タ、Xバッファ、出力バッファ及びその他のワークエリ
アをキャッシュオンデータ領域に設けているが、Xバッ
ファはキャッシュオフデータ領域に設けてもよい。
ラムは、キャッシュメモリ101のデータキャッシュ領
域とは別の命令キャッシュ領域を用いてキャッシングさ
れる。また、本装置はマルチタスク機能を有しており、
音源処理のプログラム以外のプログラムも並列して実行
可能である。したがって、RAM6の各領域には、他の
ソフトウエアのプログラムやデータも記憶されている。
ャッシュ領域の構成を示す図である。キャッシュメモリ
101は、ウエイ0から7の8個のウエイ(データ格納
領域)を有し、1つのウエイは128エントリを有し、
1エントリが16個の1バイトデータ(16バイトのデ
ータ)及びこれらのデータのRAM6内の格納位置を示
すタグアドレスで構成されている。このように、1エン
トリあたり16バイトとするのは、CPU1がRAM6
からデータを読み出すときは、16バイト単位で読み出
すからである。
(RAMアドレス)は、図6に示すように、19ビット
のタグアドレス、7ビットのエントリ(E)アドレス及
び4ビットのライン(L)アドレスから構成される。エ
ントリアドレスは、図5の128エントリのうちの1つ
を示すアドレスであり、ラインアドレスは、1エントリ
中の16個のデータの1つを示すアドレスである。CP
U1がデータを読み出すときは、先ずキャッシュメモリ
101のウエイ0から順にエントリアドレスが示すエン
トリのタグアドレスと、RAMアドレス中のタグアドレ
スとが一致するデータを探し、一致するデータがあれば
それを読み出し、なければRAM6の該当アドレスから
読み出す。ただし、キャッシュオフデータ領域に記憶さ
れているデータの場合は、キャッシュメモリ101を見
ずに直接RAM6に読み出しにいく。このように、RA
M6のデータ記憶領域をキャッシュオフデータ領域とキ
ャッシュオンデータ領域とに分けておくことにより、キ
ャッシュオフデータ領域のデータのときには、キャッシ
ュメモリ101を見に行く時間を節約することができ、
アクセス速度の向上に寄与する。
01のデータキャッシュ領域の容量は16Kバイト(1
6バイト×128エントリ×8ウエイ)であり、この程
度の容量があれば音源チャンネルを32チャンネル分確
保することができる。
の構成及びRAM6上に設定される入力バッファ、Xバ
ッファ、出力バッファ及び音源レジスタの構成を示す図
である。
2,…は、それぞれ各音域の波形を指定するデータと、
エンベロープ制御データと、タッチ制御データと、その
他のデータから構成されている。同図(b)の入力バッ
ファは、MIDIインターフェース8を介して入力され
る演奏データが格納されるバッファであり、イベント数
を示すデータが格納される領域と、各イベントに対応し
たイベントデータID1,ID2,ID3,…が格納さ
れる領域とからなる。各イベントデータは、イベントの
内容を示すデータとイベント発生時刻を示すデータとか
らなる。発生時刻を示すデータは、CPU1が複数のイ
ベントをまとめて処理するために必要となるものであ
る。
は同一の構成を有する。すなわちCPU1における処理
単位となる128サンプル分の波形データを、SD1,
SD2,…,SD128として記憶する。CPU1は、
Xバッファを用いて音色フィルタ処理、音量エンベロー
プ処理等を行い、該処理後のデータを出力バッファ上で
累算する。そして、出力バッファ内の128サンプル分
の波形データをまとめてDMA制御部9に渡し、DMA
制御部9は1サンプルずつDAC10に渡すことによ
り、再生処理が行われる。
ンネル毎の制御データを記憶するものであり、本実施の
形態では32チャンネル分のレジスタが設けられてい
る。この制御データは、音色データをタッチ等の演奏デ
ータに応じて加工して生成されたものであり、ノートナ
ンバと、波形指定データ(具体的には、波形データのR
AMアドレスAS,AE,LS,LE(図4参照))
と、アタックレート、アタックレベル等のエンベロープ
制御データと、発音中か否かを示すノートオンデータ
と、発音開始タイミングデータTMと、その他のデータ
とからなる。音源レジスタにはさらに発音処理用のワー
クエリアが確保されており、このワークエリアには例え
ばアドレスやエンベロープの現在値、フィルタ演算用の
過去のデータ等が格納される。
における演算処理の内容を詳細に説明する。
であり、当該音源処理プログラムが起動されると、処理
が開始される。また、図9は、MIDI受信割り込み処
理のフローチャートであり、この割り込み処理は、MI
DIインターフェース8を介して演奏データが入力され
ると最優先で実行される。
ップS11では受信データを取り込み、ステップS12
ではその受信データを受信時刻を示す時刻データととも
にRAM6の入力バッファに書き込む。
発音チャンネルをオフし、レジスタをクリアする等の初
期設定処理を行い(ステップS1)、次いで入力バッフ
ァに受信データがあるか否かを判別する(ステップS
2)。その結果受信データがなければ直ちにステップS
4に進み、受信データがあれば受信データに応じた処
理、例えばノートオンイベント処理、ノートオフイベン
ト処理、ペダル処理等を行い、ステップS4に進む。
ッチイベントが発生したか否かを判別し、発生していな
ければ直ちに、また発生していれば音色選択スイッチの
設定に応じて、各MIDIチャンネル毎に音色を選択す
る等のパネルスイッチイベント処理を行ってステップS
6に進む。
を行い、さらにその他の処理を行ってステップS2に戻
る。以後、ステップS2〜S7を繰り返し実行する。
る受信データ処理の1つであるノートオンイベント処理
のフローチャートである。
ノートナンバ、ベロシティ及びパート別音色番号を、そ
れぞれパラメータNN,VEL及びtとするとともに、
発生時刻(受信時刻)をパラメータTMとする。次い
で、音源レジスタ(図7(d))のどのチャンネルに書
き込むかを決める発音割当処理を行い、割り当てたチャ
ンネル番号をパラメータiとする(ステップS22)。
続くステップS23では、パート別音色番号tに応じて
RAM6から読み出した音色データTP(t)を、ノー
トナンバNN及びベロシティVELに応じて加工し、さ
らに加工された音色データ(発音ピッチSPを含む)を
イベント発生時刻TMとともに、iチャンネルの音源レ
ジスタに書き込む(ステップS24)。次いで、iチャ
ンネルの音源レジスタにノートオンを書き込み(ステッ
プS25)、本処理を終了する。
タを読み出すときは、キャッシングを行う。その際、1
チャンネル分のデータを、キャッシュメモリ101の1
ライン分のデータ量の整数倍の大きさとし、キャッシン
グをチャンネル単位で行うようにしている。これによ
り、書込のあった、すなわち楽音生成中のチャンネルが
選択的にキャッシングされるので、キャッシュメモリ1
01の利用効率を向上させることができる。
源処理の内容を詳細に示すフローチャートである。
(図7(d))をチェックし、続くステップS32で新
規書込が有ったか否かを判別する。新規書込がなければ
直ちにステップS36に進む一方、新規書込があったと
きは該書込が有った発音チャンネルの番号をパラメータ
iとし(ステップS33)、該書き込まれたデータを波
形演算を制御するための制御データに変換する(ステッ
プS34)。続くステップS35では、変換後のデータ
に基づいて音源制御の準備を行う。具体的には、ノート
オン時におけるiチャンネルのアドレス現在値AD
(i)を、アタック部波形データ開始アドレスASに設
定し、アタック波形データの再生中であることを「1」
で示すアタックフラグAFを「1」に設定する等の準備
を行い、制御時刻及びこれに対応する制御データのセッ
トを作成する。ステップS35の実行後はステップS3
6に進む。
う。すなわち、再生部(DMA制御部9)における再生
波形データの読み出しが途切れないように、現在再生中
の波形データの読み出しが終了する時刻より所定時間だ
け早いタイミングを演算開始時刻tBC(図2参照)と
して指定する。続くステップS37で、演算開始時刻t
BCとなったか否かを判別し、なっていなければ直ちに
本処理を終了する。
チャンネルが生成すべき楽音に応じて演算順序及び消音
するチャンネルを決定するチャンネル制御を行う(ステ
ップS38)。演算順序を決定するのは、演算を終了す
べき時刻までに演算が終了しない(演算が打ち切りとな
る)場合を考慮して、重要度の高い演算から先に処理す
るためである。次いでステップS35で準備したデータ
を時間軸上で展開することにより、波形演算の準備を行
う(ステップS39)。続くステップS40では、ステ
ップS39で展開したデータに基づいてRAM6から波
形データを読み出して1単位区間分(128サンプル
分)の再生波形データを算出する波形演算を行う。そし
て、ステップS41では、作成した再生波形データ(R
AM6の出力バッファ内に作成される)の再生予約を再
生部(DMA制御部9)に対して行い、本処理を終了す
る(図2、時刻tCE)。
る波形演算処理のフローチャートであり、先ずステップ
S51では、演算順序1番の発音チャンネルの演算準備
を行い、次いでFナンバFNを発音ピッチ、時間変動等
に応じて発生させる(ステップS52)。FナンバFN
は、1サンプルあたりのアドレスの進み量を表すパラメ
ータであり、続くステップS53における処理(後述す
る図13の処理)で波形データの補間サンプルの生成に
用いる。
ータを読み出し、サンプル毎に設けられた演算用のXバ
ッファに一杯の(すなわち128サンプル分の)補間サ
ンプルデータを生成する波形読出・補間処理を行い、次
いでXバッファ上で、生成した補間サンプルデータに音
色フィルタ処理、音量エンベロープ処理等を施し、該処
理後のデータを出力バッファに足し込む(ステップS5
4)。そして、演算すべき全チャンネルについて演算が
終了したか否かを判別し(ステップS55)、終了して
いなければ、次の発音チャンネルの演算準備を行い(ス
テップS56)、前記ステップS52に戻る。このよう
にして、演算すべきすべてのチャンネルについて演算が
終了すると、本処理を終了する。ただし、演算時間が無
くなったときは、演算打ち切りとなって強制的に本処理
を終了する。
ルの波形データが出力バッファで累算されて、128サ
ンプル分の波形データが出力バッファ内に準備される。
る波形読出・補間処理、すなわちXバッファに一杯の補
間サンプルデータを生成する処理のフローチャートであ
る。
ルかを表すパラメータsを「1」に設定し、次いでiチ
ャンネルのアドレスの現在値AD(i)にFナンバFN
を加算して、アドレス値の更新を行う(ステップS6
2)。続くステップS63では、アタックフラグAFが
「1」か否かを判別する。最初はAF=1であるので、
ステップS64に進み、アドレス値AD(i)が、アタ
ック部波形データ終了アドレスAE(i)を越えたか否
かを判別する。
で、直ちにステップS69に進み、アドレス値AD
(i)の整数部に応じてCPU1内部の4つのレジスタ
A,B,C,Dに必要な数だけ波形サンプルデータを読
み出す。ここで、アドレス値AD(i)の整数部がアタ
ック部波形データ開始アドレスAS(i)であるとき
は、例えば4点補間を行うために4つの波形サンプルデ
ータを読み出す必要があり、またループ部波形データ開
始アドレスLS(i)であるときも同様であるが、それ
以外のアドレスでは、先述したアドレス更新によるアド
レス整数部の進行量に応じた数、例えば、該整数部が1
だけ進んだ場合、サンプルを1つだけ読み出して、レジ
スタA〜Dの中で1番古いデータを、その読み出したデ
ータで更新すればよい。 続くステップS70では、レ
ジスタA〜Dのサンプル波形データと、アドレス値AD
(i)の小数部に基づいて補間サンプルデータを算出
し、次いで算出した補間サンプルデータを演算用のXバ
ッファの第s番目のサンプルに対応する領域(XBUF
(s))に格納する(ステップS71)。そして、パラ
メータsが128に達したか否かを判別し(ステップS
72)、最初はs=1なので、s値を「1」だけインク
リメントして(ステップS73)、ステップS62に戻
る。
(i)となり、アタック部波形データの読出が終了する
と、ステップS65に進み、下記式によりアドレス値A
D(i)の更新を行う。これにより、アタック部からル
ープ部へ滑らかにアドレスをつなげることができる。
テップS66)、ステップS69に進む。
テップS67に進み、アドレス値AD(i)がループ部
波形データ終了アドレスLE(i)を越えたか否かを判
別する。最初は、AD(i)<LE(i)であるので、
直ちに前記ステップS69に進む。このとき、前述した
ように4つのサンプルデータを読み込んでレジスタA〜
Dに格納するが、ループ部波形データの場合には先ずキ
ャッシュメモリ101内で該当データを探し、無い場合
にRAM6から読み出す。そしてRAM6から読み出し
たときは、その読み出したデータをキャッシュメモリ1
01に格納する。以後、1サンプルづつレジスタA〜D
の最も古いデータを更新し、AD(i)>LE(i)と
なると、下記式によりアドレス値AD(i)の更新を行
って(ステップS68)、前記ステップS69に進む。
かにアドレスをつなげることができる。
については、キャッシングを行い、1度RAM6から読
み出した後は、キャッシュメモリ101から繰り返し読
み出すので、アクセス速度を向上させることができる。
時点の補間演算に必要な過去の読出サンプルデータを保
持するようにしたので、各サンプルデータは1回ずつ読
み出せばよく、2回以上読み出す必要がない。したがっ
て、処理の高速化を図ることができる。
メモリとしてCPUに内蔵されているものを用いたが、
これに限るものではなく、CPUの外部に設けたキャッ
シュメモリ(2次キャッシュ)等を用いてもよい。
間のために、補間に必要なサンプルと同数(4つ)のC
PUレジスタが用意され、(キャッシュを含め)メモリ
のアクセス回数を最小限に抑えるようになっていた。こ
の方法は、特にキャッシュの使えないアタック部波形の
読出しには有効である。キャッシュが使用可能なループ
部の読出しでは、必ずしもこのようにしなくても良い
が、ループ部といえども、何らかの要因でキャッシュメ
モリの取り合いが起こり、キャッシュのヒット率が落ち
る場合もあるので、このような方式をとることには意味
がある。
プスタート時の効率を考えると、前記アドレスASおよ
びLSで補間のために読み出される複数サンプルが、そ
れぞれ、1つのエントリの16バイトデータの中に含ま
れるように、前記アドレスASおよびLSを設定した方
がよい。
ングするようにしたが、キャッシュの使い方としては、
例えば、自動演奏等で曲の途中で複数の波形を一度に読
出す必要があることが予め判っている場合に、その時に
読み出される波形を空読みして予めキャッシュ・メモリ
に入れておくことも考えられる。
ログラムで、ステップS6の音源処理は、繰り返し実行
する確度の極めて高いプログラムであるので、命令キャ
ッシュ領域の使用にあたっては、該処理のキャッシング
の優先順位を、本実施の形態のその他のプログラムより
高く設定することが望まれる。また、コンピュータで実
行される一般的なアプリケーション・プログラムと比べ
ても、該ステップS6の繰り返し確度は高い。
域、ワーク領域をキャッシングする場合、各チャンネル
の該領域の境界を各エントリの16バイトの境界と一致
させておくと効率良くキャッシングされる。
ープ部波形データをキャッシュオンデータ領域にまとめ
て記憶しているのであるが、その際、使用頻度の高い波
形のループ部波形データが記憶される領域のエントリア
ドレスがなるべく重ならないように配置して記憶させ
る。使用頻度の高い波形とは、複数音色パート同時演奏
の場合の、音数の多いパートで使用される波形である。
また、各音色の波形の中で言えば、その音色が最もよく
使われる音域がそれぞれあるので、その音域を担当する
波形である。
時刻毎に楽音波形を所定サンプル数ずつ生成する方式を
とっていたが、楽音生成の方式はこのやり方に限らな
い。DAコンバータ10のサンプリング周期毎に1サン
プルの波形データを生成するようにしても良いし、非定
期的なトリガにより、その時点で必要な数の波形サンプ
ルを生成するような方式でも良い。
するソフトウェアとして発明を実現していたが、これに
限らず例えばDSP(ディジタル・シグナル・プロセッ
サ)等のプログラムで動作する演算装置一般で実現する
ことが可能である。
方法又は請求項3の楽音発生装置によれば、アタック部
とループ部を有する波形データが第1の記憶手段に記憶
され、発音指示に応じて、前記第1の記憶手段よりアタ
ック部及びループ部が続けて読み出され、アタック部及
び最初のループ部の楽音が生成されるとともに、読み出
されたループ部が、前記第1の記憶手段より高速動作可
能な第2の記憶手段に記憶され、以後第2の記憶手段に
記憶されたループ部波形を繰り返し読み出すことによ
り、ループ部の楽音生成が行われる。ここでループ部波
形データは、データ量が比較的少ないので第2の記憶手
段は、小容量のもので足り、アクセス速度を向上させる
ことができる。
記憶手段の一部がキャッシングの対象となるデータを記
憶する特定領域として指定され、この特定領域には複数
の波形データのループ部がまとめて記憶される一方、特
定領域以外の領域には複数の波形データのアタック部が
まとめて記憶される。また請求項4の波形記憶装置によ
れば、キャッシングの対象となる複数の波形データのル
ープ部が第1の記憶領域にまとめて記憶される一方、キ
ャッシングの対象とならない前記複数の波形データのア
タック部は第2の記憶領域にまとめて記憶される。この
ように、キャッシングの対象となるデータ記憶領域と、
対象とならないデータ記憶領域を分けて記憶することに
より、読み出すべきデータのアドレスから、キャッシュ
メモリを見に行く必要があるか否かを判断できるので、
アクセス速度をさらに向上させることができる。
の構成を示すブロック図である。
るための図である。
る。
ータの記憶領域を説明するための図である。
る。
ローチャートである。
ある。
受信したときのノートオンイベント処理のフローチャー
トである。
ャートである。
ローチャートである。
細に示すフローチャートである。
Claims (4)
- 【請求項1】 アタック部とループ部を有する波形デー
タを第1の記憶手段に記憶する第1記憶ステップと、 発音指示に応じて、前記第1の記憶手段よりアタック部
及びループ部を続けて読み出す第1読出ステップと、 読み出されたループ部を、前記第1の記憶手段より高速
動作可能な第2の記憶手段に記憶する第2記憶ステップ
と、 前記第1読出ステップによるループ部の読み出しに続い
て、前記第2の記憶手段に記憶されたループ部波形を繰
り返し読み出す第2読出ステップと、 前記第1及び第2読出ステップにより読み出された波形
データに基づき楽音を生成する生成ステップとを有する
ことを特徴とする楽音発生方法。 - 【請求項2】 記憶手段上にキャッシングの対象となる
データを記憶する特定領域を指定する指定ステップと、 前記記憶手段の特定領域以外の領域に複数の波形データ
のアタック部をまとめて記憶するアタック部記憶ステッ
プと、 前記記憶手段の特定領域に複数の波形データのループ部
をまとめて記憶するループ部記憶ステップとを有するこ
とを特徴とする波形記憶方法。 - 【請求項3】 アタック部とループ部を有する波形デー
タを記憶する第1の記憶手段と、 発音指示に応じて、前記第1の記憶手段よりアタック部
及びループ部を続けて読み出す第1読出手段と、 読み出されたループ部を記憶する、前記第1の記憶手段
より高速動作可能な第2の記憶手段と、 前記第1読出手段によるループ部の読み出しに続いて、
前記第2の記憶手段に記憶されたループ部波形を繰り返
し読み出す第2読出手段と、 前記第1及び第2読出手段により読み出された波形デー
タに基づき楽音を生成する生成手段とを有することを特
徴とする楽音発生装置。 - 【請求項4】 キャッシングの対象となる複数の波形デ
ータのループ部をまとめて記憶する第1の記憶領域と、 キャッシングの対象とならない前記複数の波形データの
アタック部をまとめて記憶する第2の記憶領域とを有す
ることを特徴とする波形記憶装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19792395A JP3224002B2 (ja) | 1995-07-12 | 1995-07-12 | 楽音発生方法及び波形記憶方法 |
US08/678,349 US5714704A (en) | 1995-07-12 | 1996-07-11 | Musical tone-generating method and apparatus and waveform-storing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19792395A JP3224002B2 (ja) | 1995-07-12 | 1995-07-12 | 楽音発生方法及び波形記憶方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0926791A true JPH0926791A (ja) | 1997-01-28 |
JP3224002B2 JP3224002B2 (ja) | 2001-10-29 |
Family
ID=16382529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19792395A Expired - Lifetime JP3224002B2 (ja) | 1995-07-12 | 1995-07-12 | 楽音発生方法及び波形記憶方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5714704A (ja) |
JP (1) | JP3224002B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010522360A (ja) * | 2007-03-22 | 2010-07-01 | クゥアルコム・インコーポレイテッド | オーディオファイルを処理するための波形フェッチ装置 |
JP2018159870A (ja) * | 2017-03-23 | 2018-10-11 | カシオ計算機株式会社 | 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器 |
JP2018159871A (ja) * | 2017-03-23 | 2018-10-11 | カシオ計算機株式会社 | 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器 |
US10242655B1 (en) | 2017-09-27 | 2019-03-26 | Casio Computer Co., Ltd. | Electronic musical instrument, method of generating musical sounds, and storage medium |
US10373595B2 (en) | 2017-03-23 | 2019-08-06 | Casio Computer Co., Ltd. | Musical sound generation device |
US10474387B2 (en) | 2017-07-28 | 2019-11-12 | Casio Computer Co., Ltd. | Musical sound generation device, musical sound generation method, storage medium, and electronic musical instrument |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2335781A (en) * | 1998-03-24 | 1999-09-29 | Soho Soundhouse Limited | Method of selection of audio samples |
NL1018506C2 (nl) * | 2001-07-10 | 2003-01-13 | Michiel Post H O D N Post Audi | Digitaal muziekinstrument. |
US8093485B2 (en) * | 2004-12-17 | 2012-01-10 | Lsi Corporation | Method and system for prefetching sound data in a sound processing system |
US7420115B2 (en) * | 2004-12-28 | 2008-09-02 | Yamaha Corporation | Memory access controller for musical sound generating system |
KR20090133135A (ko) * | 2007-06-05 | 2009-12-31 | 가부시키가이샤 어드밴티스트 | 파형 발생 장치, 파형 발생 방법 및 프로그램 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276850A (en) * | 1988-12-27 | 1994-01-04 | Kabushiki Kaisha Toshiba | Information processing apparatus with cache memory and a processor which generates a data block address and a plurality of data subblock addresses simultaneously |
US5194681A (en) * | 1989-09-22 | 1993-03-16 | Yamaha Corporation | Musical tone generating apparatus |
JP2671747B2 (ja) * | 1993-04-27 | 1997-10-29 | ヤマハ株式会社 | 楽音形成装置 |
-
1995
- 1995-07-12 JP JP19792395A patent/JP3224002B2/ja not_active Expired - Lifetime
-
1996
- 1996-07-11 US US08/678,349 patent/US5714704A/en not_active Expired - Lifetime
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010522360A (ja) * | 2007-03-22 | 2010-07-01 | クゥアルコム・インコーポレイテッド | オーディオファイルを処理するための波形フェッチ装置 |
JP2018159870A (ja) * | 2017-03-23 | 2018-10-11 | カシオ計算機株式会社 | 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器 |
JP2018159871A (ja) * | 2017-03-23 | 2018-10-11 | カシオ計算機株式会社 | 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器 |
US10373595B2 (en) | 2017-03-23 | 2019-08-06 | Casio Computer Co., Ltd. | Musical sound generation device |
US10475425B2 (en) | 2017-03-23 | 2019-11-12 | Casio Computer Co., Ltd. | Musical sound generation device |
US10474387B2 (en) | 2017-07-28 | 2019-11-12 | Casio Computer Co., Ltd. | Musical sound generation device, musical sound generation method, storage medium, and electronic musical instrument |
US10242655B1 (en) | 2017-09-27 | 2019-03-26 | Casio Computer Co., Ltd. | Electronic musical instrument, method of generating musical sounds, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US5714704A (en) | 1998-02-03 |
JP3224002B2 (ja) | 2001-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150154979A1 (en) | Automated performance technology using audio waveform data | |
JP3224002B2 (ja) | 楽音発生方法及び波形記憶方法 | |
US6326537B1 (en) | Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency | |
JPH10187157A (ja) | 自動演奏装置 | |
US6748357B1 (en) | Device and method for reproduction of sounds with independently variable duration and pitch | |
JP4036233B2 (ja) | 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体 | |
JPH08160961A (ja) | 音源装置 | |
JP3152198B2 (ja) | 楽音発生方法および楽音発生装置 | |
US6040516A (en) | Tone generation system using computer software and storage medium storing the computer software | |
JP3637577B2 (ja) | 楽音生成方法 | |
US5403969A (en) | Electronic musical instrument of delayed feedback type | |
JP3000894B2 (ja) | 楽音発生方法 | |
JP3603638B2 (ja) | 楽音発生方法 | |
JP3603849B2 (ja) | 楽音発生方法 | |
JPH10319958A (ja) | 自動演奏装置、自動演奏データ処理方法及び電子的情報記憶媒体 | |
JPS6335038B2 (ja) | ||
JP2956552B2 (ja) | 楽音発生方法および装置 | |
JP3275678B2 (ja) | 楽音発生方法および装置 | |
JP3740717B2 (ja) | 音源装置及び楽音生成方法 | |
JP3832383B2 (ja) | 楽音生成装置及びプログラム | |
JP3339372B2 (ja) | 楽音発生装置および楽音発生方法を実現するためのプログラムを格納した記憶媒体 | |
JP3362070B2 (ja) | 自動演奏装置 | |
JP2893698B2 (ja) | 楽音信号発生装置 | |
JP3543203B2 (ja) | 電子楽器 | |
JP2933204B2 (ja) | スクラッチ動作可能な楽音発生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070824 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080824 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090824 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100824 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100824 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110824 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120824 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130824 Year of fee payment: 12 |
|
EXPY | Cancellation because of completion of term |