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
Application number
JP7197923A
Other languages
English (en)
Other versions
JP3224002B2 (ja
Inventor
Hideo Suzuki
秀雄 鈴木
Genichi Tamura
元一 田邑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP19792395A priority Critical patent/JP3224002B2/ja
Priority to US08/678,349 priority patent/US5714704A/en
Publication of JPH0926791A publication Critical patent/JPH0926791A/ja
Application granted granted Critical
Publication of JP3224002B2 publication Critical patent/JP3224002B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/02Instruments 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/031Use of cache memory for electrophonic musical instrument processes, e.g. for improving processing capabilities or solving interfacing problems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/201Physical 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/241Telephone transmission, i.e. using twisted pair telephone lines or any type of telephone network
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/281Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
    • G10H2240/295Packet switched network, e.g. token ring
    • G10H2240/305Internet 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

(57)【要約】 【目的】 小容量のキャッシュメモリを有効に使用して
アクセス速度を向上させ、高価なSRAMを使用しなく
ても音源処理能力を向上させることができる楽音発生方
法及び波形記憶方法を提供する。 【構成】 RAM6の領域をキャッシングの対象とする
データを記憶するキャッシュオン領域とキャッシングの
対象としないデータを記憶するキャッシュオフ領域とに
分け、楽音のアタック部波形データをキャッシュオフ領
域に記憶し、ループ部波形データをキャッシュオフ領域
に記憶する。ループ部波形データの読み出し時は、キャ
ッシュメモリ101に当該データが記憶されているかを
調べて、キャッシュメモリ101にない場合は、RAM
6から読み出すとともにキャッシュメモリ101に記憶
する。以後、当該ループ部波形データをキャッシュメモ
リ101から繰り返し読み出すことより、ループ部波形
の再生を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリに記憶され
た波形データを読み出して楽音を発生する楽音発生方法
及び装置並びにその方法の実施に適する波形記憶方法及
び装置に関する。
【0002】
【従来の技術】波形メモリに波形データを記憶し、これ
を読み出して補間処理等を行って楽音を発生する楽音発
生方法は従来より知られている。
【0003】
【発明が解決しようとする課題】上記従来の楽音発生方
法を、例えばパーソナルコンピュータのようなデータ処
理装置に適用し、ソフトウエアで楽音を発生させる場
合、すなわちデータ処理装置で音源処理を行う場合に
は、波形メモリに記憶された大量の波形データにリアル
タイムでアクセスする必要があり、高速なメモリアクセ
スが必要である。このため、メモリのアクセス速度が音
源処理能力向上のネックとなっている。特に波形メモリ
をRAMで構成する場合、アクセス速度の速いSRAM
を使用しなければならないため、装置が高価なものにな
るという問題があった。
【0004】一方、アクセス速度の遅いメモリへのアク
セスを早めるための技術としてキャッシュメモリの技術
が知られている。しかし、この技術は通常数Kバイト〜
数10Kバイトの容量のキャッシュメモリを使用するも
のであり、同じ小さなメモリ領域に頻繁にアクセスする
ような処理には効果を発揮するが、音源処理の波形読出
のような、一度に数10〜数100Kバイトの領域を連
続的にアクセスする処理の場合には、キャッシュメモリ
を大容量化しなければならず、単純に従来の手法を適用
したのではアクセス速度を速める効果がほとんど期待で
きない。
【0005】本発明は上述した点に鑑みなされたもので
あり、小容量のキャッシュメモリを有効に使用してアク
セス速度を向上させ、高価なSRAMを使用しなくても
音源処理能力を向上させることができる楽音発生方法及
び波形記憶方法を提供することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するため
本発明は、アタック部とループ部を有する波形データを
第1の記憶手段に記憶する第1記憶ステップと、発音指
示に応じて、前記第1の記憶手段よりアタック部及びル
ープ部を続けて読み出す第1読出ステップと、読み出さ
れたループ部を、前記第1の記憶手段より高速動作可能
な第2の記憶手段に記憶する第2記憶ステップと、前記
第1読出ステップによるループ部の読み出しに続いて、
前記第2の記憶手段に記憶されたループ部波形を繰り返
し読み出す第2読出ステップと、前記第1及び第2読出
ステップにより読み出された波形データに基づき楽音を
生成する生成ステップとを有することを特徴とする請求
項1の楽音発生方法、及びアタック部とループ部を有す
る波形データを記憶する第1の記憶手段と、発音指示に
応じて、前記第1の記憶手段よりアタック部及びループ
部を続けて読み出す第1読出手段と、読み出されたルー
プ部を記憶する、前記第1の記憶手段より高速動作可能
な第2の記憶手段と、前記第1読出手段によるループ部
の読み出しに続いて、前記第2の記憶手段に記憶された
ループ部波形を繰り返し読み出す第2読出手段と、前記
第1及び第2読出手段により読み出された波形データに
基づき楽音を生成する生成手段とを有することを特徴と
する請求項3の楽音発生装置を提供する。
【0007】本発明はさらに、記憶手段上にキャッシン
グの対象となるデータを記憶する特定領域を指定する指
定ステップと、前記記憶手段の特定領域以外の領域に複
数の波形データのアタック部をまとめて記憶するアタッ
ク部記憶ステップと、前記記憶手段の特定領域に複数の
波形データのループ部をまとめて記憶するループ部記憶
ステップとを有することを特徴とする請求項2の波形記
憶方法、及びキャッシングの対象となる複数の波形デー
タのループ部をまとめて記憶する第1の記憶領域と、キ
ャッシングの対象とならない前記複数の波形データのア
タック部をまとめて記憶する第2の記憶領域とを有する
ことを特徴とする請求項4の波形記憶装置を提供する。
【0008】ここで、上記請求項1又は3の第1の記憶
手段及び請求項2の記憶手段は例えばDRAMで構成さ
れ、請求項1又は3の第2の記憶手段は例えばCPUに
内蔵されたキャッシュメモリで構成される。
【0009】請求項1の楽音発生方法又は請求項3の楽
音発生装置によれば、アタック部とループ部を有する波
形データが第1の記憶手段に記憶され、発音指示に応じ
て、前記第1の記憶手段よりアタック部及びループ部が
続けて読み出され、アタック部及び最初のループ部の楽
音が生成されるとともに、読み出されたループ部が、前
記第1の記憶手段より高速動作可能な第2の記憶手段に
記憶され、以後第2の記憶手段に記憶されたループ部波
形を繰り返し読み出すことにより、ループ部の楽音生成
が行われる。ループ部波形データは、データ量が比較的
少ないので第2の記憶手段は、小容量のもので足り、ア
クセス速度を向上させることができる。
【0010】請求項2の波形記憶方法によれば、記憶手
段の一部がキャッシングの対象となるデータを記憶する
特定領域として指定され、この特定領域には複数の波形
データのループ部がまとめて記憶される一方、特定領域
以外の領域には複数の波形データのアタック部がまとめ
て記憶される。また請求項4の波形記憶装置によれば、
キャッシングの対象となる複数の波形データのループ部
が第1の記憶領域にまとめて記憶される一方、キャッシ
ングの対象とならない前記複数の波形データのアタック
部は第2の記憶領域にまとめて記憶される。このよう
に、キャッシングの対象となるデータ記憶領域と、対象
とならないデータ記憶領域を分けて記憶することによ
り、読み出すべきデータのアドレスから、キャッシュメ
モリを見に行く必要があるか否かを判断できるので、ア
クセス速度をさらに向上させることができる。
【0011】
【発明の実施の形態】以下本発明の実施の形態を図面を
参照して説明する。
【0012】図1は、本発明の実施の一形態にかかるデ
ータ処理装置の構成を示すブロック図である。本装置
は、キャッシュメモリ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とを備えている。
【0013】次に図2を参照して本装置による楽音生成
処理の概要について説明する。
【0014】本装置においてはCPU1は、クロックB
Cに同期して128サンプル分の波形データをまとめて
読み出し、補間演算等の生成演算を実行し、演算したデ
ータをRAM6に記憶するとともに演算終了をDMA制
御部9に通知する(同図(b))。DMA制御部9は、
そのデータを読み出して再生処理を行う(同図
(c))。したがって、MIDIインターフェース8を
介して入力される演奏データのうち、前回のクロックB
Cの発生時刻tBCから今回の発生時刻tBCまでの間
に発生した演奏入力イベント(同図(a))に対応する
演奏データが今回の生成演算の対象となる。そして、時
刻tCEに演算が終了した生成データに基づいた波形デ
ータの読出再生処理が、時刻tBCから一定時間経過後
の時刻tRSからDMA制御部9で実行され、楽音が出
力される。なお、同図中に示した矢印Pは、単に生成演
算されたデータと読出再生処理との対応関係を示すもの
であり、時刻tCEに終了した演算結果が時刻tRSに
転送されることを示すものではない。
【0015】この実施の形態では、サンプリング周波数
を例えば44KHzとすると、クロックBCの発生周期
は2.9msec(128/44K)となり、演奏入力
から実際の楽音発生までの遅れ時間は4msec程度で
あって、人間の聴感上は問題とならない。もちろん自動
演奏の場合にはこの遅れ時間はもっと長くても問題はな
い。
【0016】図3はRAM6のアドレスマップを示す図
であり、本実施の形態ではRAM6の記憶領域をプログ
ラムを記憶するプログラム領域と、一度読み出されると
キャッシュメモリ101に格納され、当該データがキャ
ッシュメモリ101に格納されている間はRAM6にア
クセスすることなくキャッシュメモリ101から読み出
す処理(以下「キャッシング」という)の対象となるデ
ータを記憶するキャッシュオンデータ領域と、キャッシ
ングの対象としないデータを記憶するキャッシュオフデ
ータ領域とに分けている。そして、図4に示すようにア
タック波形に対応するアタック部波形データをキャッシ
ュオフデータ領域に記憶し、繰り返し再生されるループ
波形に対応するループ部波形データをキャッシュオンデ
ータ領域に記憶する。アタック部波形データ及びループ
部波形データは、それぞれ複数のデータをまとめてキャ
ッシュオフデータ領域及びキャッシュオンデータ領域に
記憶している。図4のAS及びAEは、それぞれ当該ア
タック部波形データが記憶されている領域の開始アドレ
ス及び終了アドレスであり、LS及びLEは当該ループ
部波形データが記憶されている領域の開始アドレス及び
終了アドレスである。
【0017】本実施の形態では、音色データもキャッシ
ュオンデータ領域に記憶し、また後述する音源レジス
タ、Xバッファ、出力バッファ及びその他のワークエリ
アをキャッシュオンデータ領域に設けているが、Xバッ
ファはキャッシュオフデータ領域に設けてもよい。
【0018】なお、プログラム領域に記憶されたプログ
ラムは、キャッシュメモリ101のデータキャッシュ領
域とは別の命令キャッシュ領域を用いてキャッシングさ
れる。また、本装置はマルチタスク機能を有しており、
音源処理のプログラム以外のプログラムも並列して実行
可能である。したがって、RAM6の各領域には、他の
ソフトウエアのプログラムやデータも記憶されている。
【0019】図5はキャッシュメモリ101のデータキ
ャッシュ領域の構成を示す図である。キャッシュメモリ
101は、ウエイ0から7の8個のウエイ(データ格納
領域)を有し、1つのウエイは128エントリを有し、
1エントリが16個の1バイトデータ(16バイトのデ
ータ)及びこれらのデータのRAM6内の格納位置を示
すタグアドレスで構成されている。このように、1エン
トリあたり16バイトとするのは、CPU1がRAM6
からデータを読み出すときは、16バイト単位で読み出
すからである。
【0020】また、RAM6のアドレスを示すデータ
(RAMアドレス)は、図6に示すように、19ビット
のタグアドレス、7ビットのエントリ(E)アドレス及
び4ビットのライン(L)アドレスから構成される。エ
ントリアドレスは、図5の128エントリのうちの1つ
を示すアドレスであり、ラインアドレスは、1エントリ
中の16個のデータの1つを示すアドレスである。CP
U1がデータを読み出すときは、先ずキャッシュメモリ
101のウエイ0から順にエントリアドレスが示すエン
トリのタグアドレスと、RAMアドレス中のタグアドレ
スとが一致するデータを探し、一致するデータがあれば
それを読み出し、なければRAM6の該当アドレスから
読み出す。ただし、キャッシュオフデータ領域に記憶さ
れているデータの場合は、キャッシュメモリ101を見
ずに直接RAM6に読み出しにいく。このように、RA
M6のデータ記憶領域をキャッシュオフデータ領域とキ
ャッシュオンデータ領域とに分けておくことにより、キ
ャッシュオフデータ領域のデータのときには、キャッシ
ュメモリ101を見に行く時間を節約することができ、
アクセス速度の向上に寄与する。
【0021】この実施の形態では、キャッシュメモリ1
01のデータキャッシュ領域の容量は16Kバイト(1
6バイト×128エントリ×8ウエイ)であり、この程
度の容量があれば音源チャンネルを32チャンネル分確
保することができる。
【0022】図7は、RAM6に記憶される音色データ
の構成及びRAM6上に設定される入力バッファ、Xバ
ッファ、出力バッファ及び音源レジスタの構成を示す図
である。
【0023】先ず同図(a)の音色データPD1,PD
2,…は、それぞれ各音域の波形を指定するデータと、
エンベロープ制御データと、タッチ制御データと、その
他のデータから構成されている。同図(b)の入力バッ
ファは、MIDIインターフェース8を介して入力され
る演奏データが格納されるバッファであり、イベント数
を示すデータが格納される領域と、各イベントに対応し
たイベントデータID1,ID2,ID3,…が格納さ
れる領域とからなる。各イベントデータは、イベントの
内容を示すデータとイベント発生時刻を示すデータとか
らなる。発生時刻を示すデータは、CPU1が複数のイ
ベントをまとめて処理するために必要となるものであ
る。
【0024】同図(c)のXバッファ及び出力バッファ
は同一の構成を有する。すなわちCPU1における処理
単位となる128サンプル分の波形データを、SD1,
SD2,…,SD128として記憶する。CPU1は、
Xバッファを用いて音色フィルタ処理、音量エンベロー
プ処理等を行い、該処理後のデータを出力バッファ上で
累算する。そして、出力バッファ内の128サンプル分
の波形データをまとめてDMA制御部9に渡し、DMA
制御部9は1サンプルずつDAC10に渡すことによ
り、再生処理が行われる。
【0025】同図(d)の音源レジスタは、各発音チャ
ンネル毎の制御データを記憶するものであり、本実施の
形態では32チャンネル分のレジスタが設けられてい
る。この制御データは、音色データをタッチ等の演奏デ
ータに応じて加工して生成されたものであり、ノートナ
ンバと、波形指定データ(具体的には、波形データのR
AMアドレスAS,AE,LS,LE(図4参照))
と、アタックレート、アタックレベル等のエンベロープ
制御データと、発音中か否かを示すノートオンデータ
と、発音開始タイミングデータTMと、その他のデータ
とからなる。音源レジスタにはさらに発音処理用のワー
クエリアが確保されており、このワークエリアには例え
ばアドレスやエンベロープの現在値、フィルタ演算用の
過去のデータ等が格納される。
【0026】次に図8から図13を参照して、CPU1
における演算処理の内容を詳細に説明する。
【0027】図8は、メインルーチンのフローチャート
であり、当該音源処理プログラムが起動されると、処理
が開始される。また、図9は、MIDI受信割り込み処
理のフローチャートであり、この割り込み処理は、MI
DIインターフェース8を介して演奏データが入力され
ると最優先で実行される。
【0028】先ず図9の処理について説明すると、ステ
ップS11では受信データを取り込み、ステップS12
ではその受信データを受信時刻を示す時刻データととも
にRAM6の入力バッファに書き込む。
【0029】図8のメインルーチンでは、先ずすべての
発音チャンネルをオフし、レジスタをクリアする等の初
期設定処理を行い(ステップS1)、次いで入力バッフ
ァに受信データがあるか否かを判別する(ステップS
2)。その結果受信データがなければ直ちにステップS
4に進み、受信データがあれば受信データに応じた処
理、例えばノートオンイベント処理、ノートオフイベン
ト処理、ペダル処理等を行い、ステップS4に進む。
【0030】ステップS4では、音色の選択などのスイ
ッチイベントが発生したか否かを判別し、発生していな
ければ直ちに、また発生していれば音色選択スイッチの
設定に応じて、各MIDIチャンネル毎に音色を選択す
る等のパネルスイッチイベント処理を行ってステップS
6に進む。
【0031】ステップS6では、図11に示す音源処理
を行い、さらにその他の処理を行ってステップS2に戻
る。以後、ステップS2〜S7を繰り返し実行する。
【0032】図10は、図8のステップS3で実行され
る受信データ処理の1つであるノートオンイベント処理
のフローチャートである。
【0033】先ずステップS21では、受信データ中の
ノートナンバ、ベロシティ及びパート別音色番号を、そ
れぞれパラメータNN,VEL及びtとするとともに、
発生時刻(受信時刻)をパラメータTMとする。次い
で、音源レジスタ(図7(d))のどのチャンネルに書
き込むかを決める発音割当処理を行い、割り当てたチャ
ンネル番号をパラメータiとする(ステップS22)。
続くステップS23では、パート別音色番号tに応じて
RAM6から読み出した音色データTP(t)を、ノー
トナンバNN及びベロシティVELに応じて加工し、さ
らに加工された音色データ(発音ピッチSPを含む)を
イベント発生時刻TMとともに、iチャンネルの音源レ
ジスタに書き込む(ステップS24)。次いで、iチャ
ンネルの音源レジスタにノートオンを書き込み(ステッ
プS25)、本処理を終了する。
【0034】ここで、CPU1が音源レジスタからデー
タを読み出すときは、キャッシングを行う。その際、1
チャンネル分のデータを、キャッシュメモリ101の1
ライン分のデータ量の整数倍の大きさとし、キャッシン
グをチャンネル単位で行うようにしている。これによ
り、書込のあった、すなわち楽音生成中のチャンネルが
選択的にキャッシングされるので、キャッシュメモリ1
01の利用効率を向上させることができる。
【0035】図11は、図8のステップS6における音
源処理の内容を詳細に示すフローチャートである。
【0036】先ずステップS31では、音源レジスタ
(図7(d))をチェックし、続くステップS32で新
規書込が有ったか否かを判別する。新規書込がなければ
直ちにステップS36に進む一方、新規書込があったと
きは該書込が有った発音チャンネルの番号をパラメータ
iとし(ステップS33)、該書き込まれたデータを波
形演算を制御するための制御データに変換する(ステッ
プS34)。続くステップS35では、変換後のデータ
に基づいて音源制御の準備を行う。具体的には、ノート
オン時におけるiチャンネルのアドレス現在値AD
(i)を、アタック部波形データ開始アドレスASに設
定し、アタック波形データの再生中であることを「1」
で示すアタックフラグAFを「1」に設定する等の準備
を行い、制御時刻及びこれに対応する制御データのセッ
トを作成する。ステップS35の実行後はステップS3
6に進む。
【0037】ステップS36では、演算時刻の管理を行
う。すなわち、再生部(DMA制御部9)における再生
波形データの読み出しが途切れないように、現在再生中
の波形データの読み出しが終了する時刻より所定時間だ
け早いタイミングを演算開始時刻tBC(図2参照)と
して指定する。続くステップS37で、演算開始時刻t
BCとなったか否かを判別し、なっていなければ直ちに
本処理を終了する。
【0038】演算開始時刻となったときは、先ず各発音
チャンネルが生成すべき楽音に応じて演算順序及び消音
するチャンネルを決定するチャンネル制御を行う(ステ
ップS38)。演算順序を決定するのは、演算を終了す
べき時刻までに演算が終了しない(演算が打ち切りとな
る)場合を考慮して、重要度の高い演算から先に処理す
るためである。次いでステップS35で準備したデータ
を時間軸上で展開することにより、波形演算の準備を行
う(ステップS39)。続くステップS40では、ステ
ップS39で展開したデータに基づいてRAM6から波
形データを読み出して1単位区間分(128サンプル
分)の再生波形データを算出する波形演算を行う。そし
て、ステップS41では、作成した再生波形データ(R
AM6の出力バッファ内に作成される)の再生予約を再
生部(DMA制御部9)に対して行い、本処理を終了す
る(図2、時刻tCE)。
【0039】図12は、図11のステップS40におけ
る波形演算処理のフローチャートであり、先ずステップ
S51では、演算順序1番の発音チャンネルの演算準備
を行い、次いでFナンバFNを発音ピッチ、時間変動等
に応じて発生させる(ステップS52)。FナンバFN
は、1サンプルあたりのアドレスの進み量を表すパラメ
ータであり、続くステップS53における処理(後述す
る図13の処理)で波形データの補間サンプルの生成に
用いる。
【0040】ステップS53では、RAM6から波形デ
ータを読み出し、サンプル毎に設けられた演算用のXバ
ッファに一杯の(すなわち128サンプル分の)補間サ
ンプルデータを生成する波形読出・補間処理を行い、次
いでXバッファ上で、生成した補間サンプルデータに音
色フィルタ処理、音量エンベロープ処理等を施し、該処
理後のデータを出力バッファに足し込む(ステップS5
4)。そして、演算すべき全チャンネルについて演算が
終了したか否かを判別し(ステップS55)、終了して
いなければ、次の発音チャンネルの演算準備を行い(ス
テップS56)、前記ステップS52に戻る。このよう
にして、演算すべきすべてのチャンネルについて演算が
終了すると、本処理を終了する。ただし、演算時間が無
くなったときは、演算打ち切りとなって強制的に本処理
を終了する。
【0041】図12の処理により、発音すべきチャンネ
ルの波形データが出力バッファで累算されて、128サ
ンプル分の波形データが出力バッファ内に準備される。
【0042】図13は、図12のステップS53におけ
る波形読出・補間処理、すなわちXバッファに一杯の補
間サンプルデータを生成する処理のフローチャートであ
る。
【0043】先ずステップS61では、何番目のサンプ
ルかを表すパラメータsを「1」に設定し、次いでiチ
ャンネルのアドレスの現在値AD(i)にFナンバFN
を加算して、アドレス値の更新を行う(ステップS6
2)。続くステップS63では、アタックフラグAFが
「1」か否かを判別する。最初はAF=1であるので、
ステップS64に進み、アドレス値AD(i)が、アタ
ック部波形データ終了アドレスAE(i)を越えたか否
かを判別する。
【0044】最初は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に戻
る。
【0045】前記ステップS64で、AD(i)>AE
(i)となり、アタック部波形データの読出が終了する
と、ステップS65に進み、下記式によりアドレス値A
D(i)の更新を行う。これにより、アタック部からル
ープ部へ滑らかにアドレスをつなげることができる。
【0046】 AD(i)=LS(i)+AD(i)−AE(i) 次いでアタックフラグAFを「0」にリセットして(ス
テップS66)、ステップS69に進む。
【0047】AF=0となると、ステップS63からス
テップ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に進む。
【0048】 AD(i)=LS(i)+AD(i)−LE(i) これにより、ループ部の終端からループ部の先頭へ滑ら
かにアドレスをつなげることができる。
【0049】以上のように、ループ部波形データの読出
については、キャッシングを行い、1度RAM6から読
み出した後は、キャッシュメモリ101から繰り返し読
み出すので、アクセス速度を向上させることができる。
【0050】また、CPU1内のレジスタA〜Dに、各
時点の補間演算に必要な過去の読出サンプルデータを保
持するようにしたので、各サンプルデータは1回ずつ読
み出せばよく、2回以上読み出す必要がない。したがっ
て、処理の高速化を図ることができる。
【0051】なお、上述した実施の形態ではキャッシュ
メモリとしてCPUに内蔵されているものを用いたが、
これに限るものではなく、CPUの外部に設けたキャッ
シュメモリ(2次キャッシュ)等を用いてもよい。
【0052】なお、本実施の形態では、波形データの補
間のために、補間に必要なサンプルと同数(4つ)のC
PUレジスタが用意され、(キャッシュを含め)メモリ
のアクセス回数を最小限に抑えるようになっていた。こ
の方法は、特にキャッシュの使えないアタック部波形の
読出しには有効である。キャッシュが使用可能なループ
部の読出しでは、必ずしもこのようにしなくても良い
が、ループ部といえども、何らかの要因でキャッシュメ
モリの取り合いが起こり、キャッシュのヒット率が落ち
る場合もあるので、このような方式をとることには意味
がある。
【0053】また、波形のスタート時、あるいは、ルー
プスタート時の効率を考えると、前記アドレスASおよ
びLSで補間のために読み出される複数サンプルが、そ
れぞれ、1つのエントリの16バイトデータの中に含ま
れるように、前記アドレスASおよびLSを設定した方
がよい。
【0054】また本発明では、特にループ部をキャッシ
ングするようにしたが、キャッシュの使い方としては、
例えば、自動演奏等で曲の途中で複数の波形を一度に読
出す必要があることが予め判っている場合に、その時に
読み出される波形を空読みして予めキャッシュ・メモリ
に入れておくことも考えられる。
【0055】また本実施の形態で説明した音源処理のプ
ログラムで、ステップS6の音源処理は、繰り返し実行
する確度の極めて高いプログラムであるので、命令キャ
ッシュ領域の使用にあたっては、該処理のキャッシング
の優先順位を、本実施の形態のその他のプログラムより
高く設定することが望まれる。また、コンピュータで実
行される一般的なアプリケーション・プログラムと比べ
ても、該ステップS6の繰り返し確度は高い。
【0056】また、発音チャンネルの音源レジスタ領
域、ワーク領域をキャッシングする場合、各チャンネル
の該領域の境界を各エントリの16バイトの境界と一致
させておくと効率良くキャッシングされる。
【0057】さらに、本実施の形態では、複数波形のル
ープ部波形データをキャッシュオンデータ領域にまとめ
て記憶しているのであるが、その際、使用頻度の高い波
形のループ部波形データが記憶される領域のエントリア
ドレスがなるべく重ならないように配置して記憶させ
る。使用頻度の高い波形とは、複数音色パート同時演奏
の場合の、音数の多いパートで使用される波形である。
また、各音色の波形の中で言えば、その音色が最もよく
使われる音域がそれぞれあるので、その音域を担当する
波形である。
【0058】さらに本実施の形態では、所定周期の演算
時刻毎に楽音波形を所定サンプル数ずつ生成する方式を
とっていたが、楽音生成の方式はこのやり方に限らな
い。DAコンバータ10のサンプリング周期毎に1サン
プルの波形データを生成するようにしても良いし、非定
期的なトリガにより、その時点で必要な数の波形サンプ
ルを生成するような方式でも良い。
【0059】さらに、本実施の形態では、CPUの実行
するソフトウェアとして発明を実現していたが、これに
限らず例えばDSP(ディジタル・シグナル・プロセッ
サ)等のプログラムで動作する演算装置一般で実現する
ことが可能である。
【0060】
【発明の効果】以上詳述したように請求項1の楽音発生
方法又は請求項3の楽音発生装置によれば、アタック部
とループ部を有する波形データが第1の記憶手段に記憶
され、発音指示に応じて、前記第1の記憶手段よりアタ
ック部及びループ部が続けて読み出され、アタック部及
び最初のループ部の楽音が生成されるとともに、読み出
されたループ部が、前記第1の記憶手段より高速動作可
能な第2の記憶手段に記憶され、以後第2の記憶手段に
記憶されたループ部波形を繰り返し読み出すことによ
り、ループ部の楽音生成が行われる。ここでループ部波
形データは、データ量が比較的少ないので第2の記憶手
段は、小容量のもので足り、アクセス速度を向上させる
ことができる。
【0061】また、請求項2の波形記憶方法によれば、
記憶手段の一部がキャッシングの対象となるデータを記
憶する特定領域として指定され、この特定領域には複数
の波形データのループ部がまとめて記憶される一方、特
定領域以外の領域には複数の波形データのアタック部が
まとめて記憶される。また請求項4の波形記憶装置によ
れば、キャッシングの対象となる複数の波形データのル
ープ部が第1の記憶領域にまとめて記憶される一方、キ
ャッシングの対象とならない前記複数の波形データのア
タック部は第2の記憶領域にまとめて記憶される。この
ように、キャッシングの対象となるデータ記憶領域と、
対象とならないデータ記憶領域を分けて記憶することに
より、読み出すべきデータのアドレスから、キャッシュ
メモリを見に行く必要があるか否かを判断できるので、
アクセス速度をさらに向上させることができる。
【図面の簡単な説明】
【図1】本発明の実施の一形態にかかるデータ処理装置
の構成を示すブロック図である。
【図2】図1の装置による楽音生成処理の概要を説明す
るための図である。
【図3】図1のRAMのアドレスマップを示す図であ
る。
【図4】楽音のアタック部波形データとループ部波形デ
ータの記憶領域を説明するための図である。
【図5】キャッシュメモリの構成を示す図である。
【図6】RAMアドレスデータの構成を示す図である。
【図7】RAMに記憶されるデータの構成を示す図であ
る。
【図8】図1のCPUで実行されるメインルーチンのフ
ローチャートである。
【図9】MIDI受信割り込み処理のフローチャートで
ある。
【図10】MIDIインターフェースを介してデータを
受信したときのノートオンイベント処理のフローチャー
トである。
【図11】図8の音源処理の内容を詳細に示すフローチ
ャートである。
【図12】図11の波形演算処理の内容を詳細に示すフ
ローチャートである。
【図13】図12の波形読出・補間演算処理の内容を詳
細に示すフローチャートである。
【符号の説明】
1 CPU 5 ROM 6 RAM 8 MIDIインターフェース 9 ダイレクトメモリアクセス制御部 10 DAコンバータ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 アタック部とループ部を有する波形デー
    タを第1の記憶手段に記憶する第1記憶ステップと、 発音指示に応じて、前記第1の記憶手段よりアタック部
    及びループ部を続けて読み出す第1読出ステップと、 読み出されたループ部を、前記第1の記憶手段より高速
    動作可能な第2の記憶手段に記憶する第2記憶ステップ
    と、 前記第1読出ステップによるループ部の読み出しに続い
    て、前記第2の記憶手段に記憶されたループ部波形を繰
    り返し読み出す第2読出ステップと、 前記第1及び第2読出ステップにより読み出された波形
    データに基づき楽音を生成する生成ステップとを有する
    ことを特徴とする楽音発生方法。
  2. 【請求項2】 記憶手段上にキャッシングの対象となる
    データを記憶する特定領域を指定する指定ステップと、 前記記憶手段の特定領域以外の領域に複数の波形データ
    のアタック部をまとめて記憶するアタック部記憶ステッ
    プと、 前記記憶手段の特定領域に複数の波形データのループ部
    をまとめて記憶するループ部記憶ステップとを有するこ
    とを特徴とする波形記憶方法。
  3. 【請求項3】 アタック部とループ部を有する波形デー
    タを記憶する第1の記憶手段と、 発音指示に応じて、前記第1の記憶手段よりアタック部
    及びループ部を続けて読み出す第1読出手段と、 読み出されたループ部を記憶する、前記第1の記憶手段
    より高速動作可能な第2の記憶手段と、 前記第1読出手段によるループ部の読み出しに続いて、
    前記第2の記憶手段に記憶されたループ部波形を繰り返
    し読み出す第2読出手段と、 前記第1及び第2読出手段により読み出された波形デー
    タに基づき楽音を生成する生成手段とを有することを特
    徴とする楽音発生装置。
  4. 【請求項4】 キャッシングの対象となる複数の波形デ
    ータのループ部をまとめて記憶する第1の記憶領域と、 キャッシングの対象とならない前記複数の波形データの
    アタック部をまとめて記憶する第2の記憶領域とを有す
    ることを特徴とする波形記憶装置。
JP19792395A 1995-07-12 1995-07-12 楽音発生方法及び波形記憶方法 Expired - Lifetime JP3224002B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 ヤマハ株式会社 楽音形成装置

Cited By (7)

* Cited by examiner, † Cited by third party
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