JPH0922287A - 楽音波形生成方法 - Google Patents

楽音波形生成方法

Info

Publication number
JPH0922287A
JPH0922287A JP7169531A JP16953195A JPH0922287A JP H0922287 A JPH0922287 A JP H0922287A JP 7169531 A JP7169531 A JP 7169531A JP 16953195 A JP16953195 A JP 16953195A JP H0922287 A JPH0922287 A JP H0922287A
Authority
JP
Japan
Prior art keywords
musical tone
tone waveform
waveform
waveform value
margin
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
JP7169531A
Other languages
English (en)
Other versions
JP3267106B2 (ja
Inventor
Masahiro Shimizu
正宏 清水
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 JP16953195A priority Critical patent/JP3267106B2/ja
Priority to TW084111201A priority patent/TW300298B/zh
Priority to DE69613049T priority patent/DE69613049T2/de
Priority to EP00102933A priority patent/EP1005015B1/en
Priority to US08/675,447 priority patent/US5696342A/en
Priority to SG9905000A priority patent/SG80651A1/en
Priority to EP96110766A priority patent/EP0752697B1/en
Priority to DE69625625T priority patent/DE69625625T2/de
Priority to KR1019960027264A priority patent/KR100392621B1/ko
Publication of JPH0922287A publication Critical patent/JPH0922287A/ja
Priority to HK98114172A priority patent/HK1013161A1/xx
Priority to US09/456,877 priority patent/USRE41297E1/en
Application granted granted Critical
Publication of JP3267106B2 publication Critical patent/JP3267106B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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
    • G10H7/006Instruments 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 using two or more algorithms of different types to generate tones, e.g. according to tone color or to processor workload
    • 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
    • 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/041Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity
    • 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
    • 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】マルチタスクで並行して実行される他のソフト
の動作遅れを防止若しくは軽減することができるCPU
を用いた楽音波形生成方法を提供する。 【解決手段】CPUがサンプリングクロック毎の波形値
を演算して再生部に出力するが、この波形値を128サ
ンプル(1ブロック)分まとめて演算し、この1ブロッ
ク分の波形値を128サンプル毎に発生するクロックB
Cのタイミングに再生部に送信する。また、このときマ
ルチタスクを行っているCPUの処理能力に余裕があれ
さば次回以後のブロックの波形値を予め演算しておき、
サンプルバッファに蓄積記憶しておく。もし、マルチタ
スクによりCPUが忙しいときには蓄積記憶した波形デ
ータを再生部に出力するのみでよいため、並行して実行
される他のソフトの動作遅れを防止することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、ソフトウェアで
楽音波形値を演算して楽音波形を生成することにより、
マイクロコンピュータシステムなどのCPUに音源機能
を持たせた楽音信号形成方法に関する。
【0002】
【従来の技術】音源回路を、CPUが実行する音源ソフ
トによって実現した電子楽器がある。このような電子楽
器では、CPUは、楽音波形を再生するため、サンプリ
ング周波数のクロックSC毎に楽音波形値をディジタル
アナログ変換器(DAC)に供給する必要がある。従来
の該電子楽器では、該クロックSCの発生毎に楽音形成
演算を行って、楽音波形サンプルを生成するようになっ
ていた。
【0003】しかし、1クロックずつ楽音波形値の演算
を行っていたのでは、毎回の演算毎に必要な準備処理と
終了処理のオーバーヘッドが大きいためCPUの効率が
悪くなる。そこで、複数サンプリングクロックに1回発
生する期間の長いクロックBC毎に複数サンプル分の楽
音波形値をまとめて演算するようにしたものも提案され
ている。
【0004】
【発明が解決しようとする課題】しかし、マルチタスク
により、この音源ソフトを他のソフトウェア(たとえ
ば、ビジネスソフト,ゲームソフトなど)と同時に動作
させた場合、これら他のソフトウェアの処理が忙しいと
きでもクロックBCの発生の都度複数のサンプル分の楽
音波形値の演算を実行しなければならないため、CPU
負担が大きくなり、上記他のソフトウェアの動作が遅く
なるという欠点があった。
【0005】この発明は、並行して実行される他のソフ
トウェアの動作遅れを防止若しくは軽減することができ
る楽音波形生成方法を提供することを目的とする。
【0006】
【課題を解決するための手段】この出願の請求項1の発
明は、自動演奏情報に基づいてサンプリングタイミング
毎の楽音波形値を算出する波形値演算処理を、演算処理
部において他の処理と並行して実行する楽音波形生成方
法であって、前記演算処理部の演算能力のうち現在他の
処理に占有されていない余裕分を検出する余裕分検出ス
テップ、検出された演算能力の余裕分を利用して前記自
動演奏情報に基づく波形値演算処理を実行し前記余裕分
に応じた量の楽音波形値を読出タイミングに先行して算
出して記憶手段に蓄積記憶する波形値算出ステップ、一
定時間毎の読出タイミングに記憶手段の楽音波形値を読
み出すことによって楽音波形を生成する楽音生成ステッ
プを備えたことを特徴とする。
【0007】この出願の請求項2の発明は、前記波形値
算出ステップにおいて、所定数の楽音波形値を単位と
し、前記余裕分に応じて1ないし複数単位分の楽音波形
値の算出を行うことを特徴とする。
【0008】この出願の請求項3の発明は、前記楽音生
成ステップに先立って前記波形値算出ステップをスター
トさせ、前記記憶手段に複数の波形値が蓄積記憶された
のち前記楽音生成ステップをスタートさせることを特徴
とする。
【0009】この出願の請求項4の発明は、前記波形値
算出ステップにおいて、記憶手段に楽音波形値が先行し
て記憶されていない場合には、前記余裕分検出ステップ
が検出した余裕分の量にかかわりなく所定数の楽音波形
値を算出し前記記憶手段に記憶することを特徴とする。
【0010】この出願の請求項5の発明は、演奏情報に
基づいてサンプリングタイミング毎の楽音波形値を演算
する波形値演算処理を、演算処理部において他の処理と
並行して実行する楽音波形生成方法であって、楽音波形
値の演算時に前記他の処理に要する演算量を検出するス
テップ、前記演奏情報に基づき検出された演算量に応じ
て異なる演算量の波形値演算を選択的に実行し前記楽音
波形値を算出するステップを備えたことを特徴とする。
【0011】この出願の請求項6の発明は、リアルタイ
ムおよび自動演奏の演奏情報に基づいてサンプリングタ
イミング毎の楽音波形値を算出する波形値演算処理を、
演算処理部において実行する楽音波形生成方法であっ
て、所定期間おきにリアルタイムに入力する演奏情報に
応じて所定数の第1楽音波形値を算出するステップ、前
記演算処理部の演算能力のうち前記算出するステップを
含む演算処理に占有されていない余裕分を検出するステ
ップ、検出された演算能力の余裕分を利用して前記自動
演算情報に基づく波形値演算処理を実行し前記余裕分に
応じた量の第2楽音波形値を読出タイミングに先行して
算出するステップ、前記所定期間おきに生成した第1楽
音波形値と対応する第2楽音波形値とを加算し加算結果
の楽音波形値を記憶手段に記憶するステップ、一定時間
毎の読出タイミング記憶手段の楽音波形値を読み出すこ
とによって楽音波形を生成するステップを備えたことを
特徴とする。
【0012】
【発明の実施の形態】図面を参照してこの発明の最適な
実施形態について説明する。
【0013】図1はこの発明が適用された楽音生成機能
を備えたマイクロコンピュータシステムの構成を示す図
である。CPU10にはバスを介してROM11,RA
M12,ハードディスク装置13,タイマ14,シリア
ルI/O15,キーボード16,ディスプレイ17およ
び再生部18が接続されている。ROM11はこのマイ
コンシステムの動作に必須の基本プログラムなどが記憶
されている。RAM12は実行するプログラムやデータ
を読み込むとともにプログラム処理中に発生したデータ
を記憶するメモリである。ハードディスク装置13に
は、図2に示すマルチメディアアプリケーションソフト
ウェアなどが記憶されている。このマルチメディアアプ
リケーションソフトウェアは、実行されるときはRAM
12に読み込まれる。タイマ14は一定時間毎にCPU
10に対して割り込みをかけるとともに、再生部18に
サンプリングクロックを供給するタイマである。シリア
ルI/O15は、外部接続される周辺機器とデータや制
御信号の送受信を行う。キーボード16,ディスプレイ
17は、この装置の適用分野に応じて種々のものが接続
されるが、たとえば電子楽器として構成した場合、キー
ボード16としては、いわゆる鍵盤が設けられ、ディス
プレイとしては液晶のディスプレイが設けられる。ま
た、カラオケ装置として構成した場合、キーボードとし
ては、選曲やテンポ制御等のために特殊化されたものが
設けられ、ディスプレイ17としては、大型のCRTモ
ニタが設けられる。再生部18はいわゆるサウンドボー
ドであり、CPU10から受け取った複数サンプル分の
波形データををバッファリングするとともに、各サンプ
ルクロック毎に波形データをDAC19に出力する回路
である。内部に備えられているバッファは追加書き込み
が可能であり、CPU10から受け取った波形データ群
(ブロック)は現在読出中の波形データ群の後に記憶さ
れる。バッファの構成としては、FIFO,デュアルポ
ートなど種々のものを採用することができる。再生部1
8から波形データを入力するDAC19は、この波形デ
ータをアナログの楽音信号に変換してサウンドシステム
20に出力する。サウンドシステム20はこの楽音信号
を増幅して外部出力する。
【0014】図2はマルチメディアタイプのアプリケー
ションソフトウェアの構成を示す図である。このアプリ
ケーションソフトは、たとえばカラオケ演奏やゲーム用
のソフトであり、ヘッダ,全体制御ソフト,画像制御ソ
フト,音楽制御ソフト,その他制御ソフトからなってい
る。ヘッダは、このソフトのバージョンやメモリサイズ
などの書誌的事項からなっている。全体制御ソフトは、
並行して動作する複数のソフトの動作を制御し、全ソフ
トが円滑に動作するように制御するソフトウェアであ
る。画像制御ソフトは、ディスプレイ17の表示を制御
するソフトウェアである。音楽制御ソフトは、音楽の自
動演奏データに基づく自動演奏やリアルタイムに入力さ
れる演奏データに基づく楽音波形の生成を制御する。そ
の他制御ソフトは、利用者による入力の制御などの処理
を行う。
【0015】同図(B)は前記音楽制御ソフトの詳細図
である。音楽制御ソフトは、再生処理ソフト,音色デー
タ,自動演奏データおよびワークエリアからなってい
る。再生処理ソフトは、図4,図5および図6のフロー
チャートに示す動作を行うものであり、ハードの音源装
置の機能をシミュレートするものである。音色データは
再生処理ソフトを具体的に駆動するためのデータであ
る。音色データには、波形値演算用のパラメータのほか
エンベロープを制御するパラメータ,フィルタコントロ
ールパラメータなどが含まれる。また、再生処理ソフト
がPCM音源をシミュレートするソフトであれば、音色
データは波形データそのものを含むように構成されてい
る。自動演奏データはBGM曲,カラオケ曲などの楽曲
を自動演奏するためのシーケンスである。ワークエリア
は、実際に再生処理ソフトが動作したときに必要となる
データや処理によって発生するデータのレジスタであ
る。このワークエリアは、ハード音源内部および周辺
(インタフェースなど)のレジスタに対応する。
【0016】同図(C)は前記ワークエリアの詳細図で
ある。また、同図(D)はこのワークエリアに含まれる
サンプルバッファの詳細図である。また、図3はこのマ
イコンシステムにおける楽音波形生成動作を説明する図
である。
【0017】サンプルバッファは、n個のブロックBL
K(0)〜BLK(n−1)からなっており、ブロック
単位のリングバッファ構成になっている。各ブロックに
は128サンプルの波形データ(波形値)が書き込まれ
る。
【0018】図3において、前記再生処理ソフトは、サ
ンプリングクロック128回に1回発生するクロックB
Cをトリガとして実行される。再生処理ソフトは、サン
プルバッファの1ブロック分の波形データを再生部18
に送信するとともに、そのときのCPU10の空き具合
をみて、他の処理に影響を与えない範囲で先のブロック
に波形データを書き込む処理を行う。また、キーボード
16などから入力されたリアルタイムの演奏データ入力
は、必ずその直後のクロックBCのタイミングに実行さ
れ、波形値が演算される。再生部18はクロックBCに
よってCPU10から入力された波形データをバッファ
リングし、これをサンプリングクロック毎に1サンプル
ずつ読み出してDAC19に入力する。
【0019】サンプルバッファの書込ブロックは書込ブ
ロックポインタWPによって指定され、サンプルバッフ
ァの読出ブロックは読出ブロックポインタRPによって
指定される。また、WFは書込許可フラグ,RFは読出
許可フラグである。読出許可フラグRFは自動演奏のス
タートから終了までセットされ、書込許可フラグWF
は、自動演奏の先頭データの書き込みから最終データの
書き込みまでの間セットされる。先行書き込みが行われ
るため、書き込み期間と読出期間すなわち、WFFのセ
ット期間とRFのセット期間は不一致である。
【0020】また、各種指示データ,各種指示フラグ
は、全体制御ソフトからの各種指令が書き込まれるもの
であり、ハード音源内部の命令レジスタに対応する。具
体的にこのエリアに書き込まれるデータやフラグとして
は以下のものがある。
【0021】再生する自動演奏データの指定データ:音
楽制御ソフトのなかには複数曲分の自動演奏データが入
っているため何番目の曲を再生するかを指定するデータ 再生範囲の指定データ:1曲の自動演奏データ中の一部
を再生する場合にその再生範囲を指定するデータ 各パートの音色の指定データ リアルタイムの演奏入力データ:キーボード16やシリ
アルI/O15から入力されるリアルタイムの演奏入力
データ、このデータはその他制御ソフトが受け付けるよ
うにすればよい。
【0022】さらに、パート制御データは、自動演奏デ
ータがマルチパートの場合に、各パートの音色選択デー
タ,音量レベルなどで構成される。
【0023】チャンネル制御データは、再生処理ソフト
はマルチチャンネル対応(複数音同時発音可能)である
ため、各発音チャンネルに対応するデータで構成され
る。具体的には、各チャンネルの音階を指定するデー
タ,アドレスカウンタの現在値,エンベロープの形状を
決めるデータやエンベロープの現在値など楽音信号を形
成するための各種のデータで構成される。すなわち、こ
のチャンネル制御データ記憶エリアはハード音源装置の
内部的なレジスタに対応する。
【0024】以下、フローチャートを参照して同マイク
ロコンピュータシステムの動作を説明する。図4は同パ
ソコンの再生ソフトのメインルーチンを示すフローチャ
ートである。メインルーチンでは初期設定(s1)のの
ち、再生処理(s2)を繰り返し実行する。
【0025】図5,図6は上記再生処理動作を示すフロ
ーチャートである。まずs10でクロックBCが発生す
るまで待機する。この待機中は全体制御ソフトに制御が
戻されており、並行して実行されている他の処理動作が
行われているものとする。クロックBCが発生するとs
10からs11に進む。s11では読出許可フラグRF
がセットしているか否かを判断する。RFのセットは自
動演奏中であることを示すため、自動演奏の波形データ
算出のためs12に進む。s12では書込ブロックポイ
ンタWPと読出ブロックポインタRPとを比較する。W
P=RPの場合には、今回読み出す(再生部18に送信
する)ブロックの波形データがまだ算出されていないこ
とを示すため、このブロックの波形データの算出動作
(s13〜s17)を実行する。s13では書込ブロッ
クポインタWPを1進める。ただし、サンプルバッファ
はリングバッファ的に使用されるため、WPが最大値に
なったときには自動的にリセットされるものとする(以
下のWP,RPの加算動作において同様)。つぎに、1
ブロック分の自動演奏データを再生するが(s14)、
この自動演奏データに対応する波形データの演算時間が
十分か否かを判断する(s15)。演算時間が十分であ
れば、高い精度(たとえば48kHz,32ビット)で
サンプリングデータの演算を行う(s16)。演算時間
が上記高精度演算に十分でなければ演算時間が不足する
分だけ一部のチャンネルの演算精度を低くして演算する
(s17)。演算精度を低くする処理は、サンプリング
クロック周期を長くしたり、演算ビット数を少なくする
などの処理である。こののち、s18に進む。一方、s
12でWPがRPよりも先行している場合には今回読み
出すブロックの波形データは既に算出済みであるためs
12から直接s18に進む。
【0026】s18で自動演奏データがこれで終了か否
かを判断する。これは今回読み出すブロックが最終ブロ
ック(エンドポイントが含まれているブロック)かで判
断される。今回読み出すブロックが最終ブロックであれ
ば、自動演奏データによる波形データの生成・読出は不
要となるためs19で書込許可フラグWF,読出許可フ
ラグRFを両方ともリセットする。リセットののち、リ
アルタイム演奏波形の演算および波形データの再生部1
8への送信のためにs20に進む。
【0027】一方、自動演奏が行われておらず読出許可
フラグRF=0の場合には、s11から直接s20に進
む。
【0028】s20では読出ブロックポインタRPに1
を加える。このRPで示されるブロックBLK(RP)
の波形データが後述のs23で再生部18に送信され
る。s21ではリアルタイムの演奏入力に応じた楽音波
形を演算し、その演奏データをRPのブロックに足し込
む(s22)。そして、このRPのブロックの波形デー
タを再生部18に供給する(s23)。この供給によっ
てBLK(RP)のデータが不要になったため、このブ
ロックの内容を0クリアする(s24)。すなわち、ブ
ロック内の全てのエリアに0を書き込む。
【0029】次に先行書き込みのためにs30以下の動
作を実行する。s30では書込許可フラグWFがセット
(WF=1)しているか否かを判断する。WF=1の場
合にはまだ自動演奏データが残っているため、s31以
下の先行書込動作を実行する。WF=0の場合には自動
演奏データを最後まで演算し終えているためs30の判
断で動作を終了する。s31では先行書き込みのための
演算時間があるか、すなわち、マルチタスクで並行処理
している他のソフトの処理が忙しいかを判断する。先行
書き込みのための演算時間がある場合には書込ブロック
ポインタWPに1を加算して(s32)、これから書き
込みを行うブロックを指定する。そして演奏データを読
み出して1ブロック分の演奏データを先行して再生する
(s33)。そしてこれに基づいて1ブロック分の波形
データを算出する(s34)。このデータはWPで指定
されるブロックに書き込まれる。この演算は余裕時間を
利用して行っているため、全チャンネルとも高精度の演
算を行うものとする。こののち、今回書き込みを行った
ブロックが最終ブロックであるか(s35)、または、
サンプルバッファが未読出データで一杯になったか(s
36)を判断する。今回書き込みを行ったブロックが最
終ブロックであった場合には、もう書き込みの必要がな
いため書込許可フラグWFをリセットして(s37)動
作を終える。サンプルバッファが未読出データで一杯に
なったか否かは書込ブロックポインタWPがリングバッ
ファを一周先行して読出ブロックポインタRPに追いつ
いた(WP=RP−1)か否かで判断される。この場合
には、新たな書き込みを行うと未読出データを上書きし
てしまうためs36の判断で動作を終了する。s36で
まだ書き込めるブロックがある場合にはs36からs3
1にもどる。s31でまだ時間的な余裕があると判断さ
れた場合にはさらに次のブロックの書き込みが行われる
(s32〜s34)。
【0030】上記動作において、自動演奏していなくて
もリアルタイム演奏入力のためにサンプルバッファを使
用しており(s20〜s24)、この処理においてRP
は必ずカウントアップされるため(s20)、RPはい
わゆるフリーランカウンタとなっている。したがって、
自動演奏の開始に先立って(RF←1となる前に)サン
プルバッファに波形データを書き込む場合には、所定の
タイミングで自動演奏の開始からクロックBCのカウン
ト数にしてどれだけ前から波形データの書き込みを開始
するかを決定し、「WP=現在のRP値+書込が読出に
先行するカウント数」の設定を行い、WFを1にしてW
Pで示されるブロックBLK(WP)に対して先頭の波
形データの書き込みを開始する。その後、クロックBC
が前記カウント分発生して、RPが書き込みを開始した
ブロックに到達して自動演奏が開始(RF←1)され、
的確に波形データの先頭から波形データが読み出され
る。自動演奏の開始時点(RF←1)に先立って、先行
再生開始(WF←1)するので、自動演奏開始の時点か
ら波形データの先行書き込み(算出)の機能を有効に活
用することができる。
【0031】以上のようにこの実施例では、生成された
波形データ(波形値)を記憶する記憶領域(ブロック)
を複数設け、並行して実行される他のソフトの処理が軽
い期間に将来DACに供給する波形データを前もってま
とめて生成しておき、該複数のブロックに記憶させてお
く。その後、該別のCPUソフトのための処理が一時的
に増加したとしても、そのタイミングに再生部18に供
給すべき波形データブロックの生成は完了しているの
で、そのときの波形データ生成処理をスキップすること
ができ、他のソフトの処理の遅れを防止することができ
る。このように、波形データの生成および再生部18へ
の供給をブロック単位で行っているため、余裕時間の判
定が容易になり、また、複数個の波形データをまとめて
生成することができるため効率がよい。
【0032】なお、上記実施例においては、サンプルバ
ッファの1ブロックを128サンプルで構成している
が、リアルタイム演奏入力を受け付けない場合には、ブ
ロックを1024サンプル,4096サンプルなど大き
く構成しておくと、CPU10の処理がより効率的にな
る。リアルタイム演奏を受け付ける場合に、ブロックを
このように大きく構成すると、クロックBCの間隔が長
くなり、リアルタイムの演奏入力から実際の発音までの
タイムラグが長くなるため好ましくない。
【0033】
【発明の効果】以上のように請求項1の発明によれば、
演算処理部の演算能力のうち、そのとき他の処理に占有
されていない余裕分を検出し、この余裕分に応じた量の
楽音波形値を読出タイミングに先行して生成するように
したことにより、マルチタスクにより複数のアプリケー
ションを並行して動作させている場合に、演算処理部の
処理能力に余裕があるときに波形データを演算して蓄積
しておくことができるため、演算処理部を効率的に動作
させることができるとともに、他のアプリケーションの
動作が忙しいときには蓄積されている波形データを読み
出すだけでよいため、他のアプリケーションの動作を効
率的にすることもできる。
【0034】また、請求項2の発明によれば、所定数の
楽音波形値を単位とし、この所定数ずつ演算を行うた
め、波形値演算処理の準備等に費やすオーバーヘッドを
軽減することができる。
【0035】また、請求項3の発明によれば、自動演奏
を開始する時点で、既に記憶手段内に所定量の楽音波形
値が準備できているので、その時点から、先行演算によ
る付加調整機能を有効に機能させることができる。
【0036】また、請求項4の発明によれば、他の処理
にかかる負荷が大きく、楽音波形値の先行演算ができな
かった場合でも、波形値算出ステップが必ず実行され楽
音波形値が用意されるため、音切れが生じない。
【0037】また、この出願の請求項5の発明によれ
ば、波形値の演算を行う場合において、演算処理部が前
記他の処理に要する演算量を検出し、検出された演算量
に応じて、それぞれ異なる精度の複数の波形値演算処理
から1つを選択してその処理で波形値の演算を実行する
ようにしたことにより、他の処理が忙しいときでも波形
値演算処理の演算量を少なくすることによって演算処理
部の負担を軽くでき、他の処理に影響を与えることな
く、且つ、途切れることなく楽音波形データの生成を継
続することができる。
【0038】さらに、この出願の請求項6の発明によれ
ば、リアルタイム演奏による楽音生成処理が重くない期
間に、自動演奏による楽音生成処理を先行して行うの
で、楽音生成処理にかかる負荷が時間的に分散され、演
算処理部の処理効率を向上することができる。
【図面の簡単な説明】
【図1】この発明が適用された楽音生成機能を備えたマ
イクロコンピュータシステムの構成を示す図
【図2】同マイクロコンピュータシステムのプログラム
・データ構成を説明する図
【図3】同マイクロコンピュータシステムの再生処理の
動作時間帯を説明する図
【図4】同マイクロコンピュータシステムの動作を示す
フローチャート
【図5】同マイクロコンピュータシステムの動作を示す
フローチャート
【図6】同マイクロコンピュータシステムの動作を示す
フローチャート

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 自動演奏情報に基づいてサンプリングタ
    イミング毎の楽音波形値を算出する波形値演算処理を、
    演算処理部において他の処理と並行して実行する楽音波
    形生成方法であって、 前記演算処理部の演算能力のうち、現在他の処理に占有
    されていない余裕分を検出する余裕分検出ステップ、 検出された演算能力の余裕分を利用して前記自動演奏情
    報に基づく波形値演算処理を実行し、前記余裕分に応じ
    た量の楽音波形値を読出タイミングに先行して算出して
    記憶手段に蓄積記憶する波形値算出ステップ、 一定時間毎の読出タイミングに記憶手段の楽音波形値を
    読み出すことによって楽音波形を生成する楽音生成ステ
    ップ、 を備えたことを特徴とする楽音波形生成方法。
  2. 【請求項2】 前記波形値算出ステップは、所定数の楽
    音波形値を単位とし、前記余裕分に応じて1ないし複数
    単位分の楽音波形値を算出を行うことを特徴とする請求
    項1に記載の楽音波形生成方法。
  3. 【請求項3】 前記楽音生成ステップに先立って前記波
    形値算出ステップをスタートさせ、前記記憶手段に複数
    の波形値が蓄積記憶されたのち前記楽音生成ステップを
    スタートさせることを特徴とする請求項1に記載の楽音
    波形生成方法。
  4. 【請求項4】 前記波形値算出ステップでは、記憶手段
    に楽音波形値が先行して記憶されていない場合には、前
    記余裕分検出ステップが検出した余裕分の量にかかわり
    なく所定数の楽音波形値を算出し前記記憶手段に記憶す
    ることを特徴とする請求項1に記載の楽音波形生成方
    法。
  5. 【請求項5】 演奏情報に基づいてサンプリングタイミ
    ング毎の楽音波形値を演算する波形値演算処理を、演算
    処理部において他の処理と並行して実行する楽音波形生
    成方法であって、 楽音波形値の演算時に、前記他の処理に要する演算量を
    検出するステップ、 前記演奏情報に基づき、検出された演算量に応じて異な
    る演算量の波形値演算を選択的に実行し、前記楽音波形
    値を算出するステップ、 を備えたことを特徴とする楽音波形生成方法。
  6. 【請求項6】 リアルタイムおよび自動演奏の演奏情報
    に基づいてサンプリングタイミング毎の楽音波形値を算
    出する波形値演算処理を、演算処理部において実行する
    楽音波形生成方法であって、 所定期間おきに、リアルタイムに入力する演奏情報に応
    じて所定数の第1楽音波形値を算出するステップ、 前記演算処理部の演算能力のうち、前記生成するステッ
    プを含む演算処理に占有されていない余裕分を検出する
    ステップ、 検出された演算能力の余裕分を利用して前記自動演算情
    報に基づく波形値演算処理を実行し、前記余裕分に応じ
    た量の第2楽音波形値を読出タイミングに先行して算出
    するステップ、 前記所定期間おきに生成した第1楽音波形値と対応する
    第2楽音波形値とを加算し、加算結果の楽音波形値を記
    憶手段に記憶するステップ、 一定時間毎の読出タイミング記憶手段の楽音波形値を読
    み出すことによって楽音波形を生成するステップ、 を備えたことを特徴とする楽音波形生成方法。
JP16953195A 1995-07-05 1995-07-05 楽音波形生成方法 Expired - Fee Related JP3267106B2 (ja)

Priority Applications (11)

Application Number Priority Date Filing Date Title
JP16953195A JP3267106B2 (ja) 1995-07-05 1995-07-05 楽音波形生成方法
TW084111201A TW300298B (ja) 1995-07-05 1995-10-23
DE69625625T DE69625625T2 (de) 1995-07-05 1996-07-03 Verfahren und Vorrichtung zur auf Software basierten Tonwellenformerzeugung
US08/675,447 US5696342A (en) 1995-07-05 1996-07-03 Tone waveform generating method and apparatus based on software
SG9905000A SG80651A1 (en) 1995-07-05 1996-07-03 Tone waveform generating method and apparatus based on software
EP96110766A EP0752697B1 (en) 1995-07-05 1996-07-03 Tone waveform generating method and apparatus based on software
DE69613049T DE69613049T2 (de) 1995-07-05 1996-07-03 Verfahren und Vorrichtung zur auf Software basierten Tonwellenformerzeugung
EP00102933A EP1005015B1 (en) 1995-07-05 1996-07-03 Tone waveform generating method and apparatus based on software
KR1019960027264A KR100392621B1 (ko) 1995-07-05 1996-07-05 악음파형생성방법및그장치
HK98114172A HK1013161A1 (en) 1995-07-05 1998-12-21 Tone waveform generating method and apparatus based on software
US09/456,877 USRE41297E1 (en) 1995-07-05 1999-12-08 Tone waveform generating method and apparatus based on software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16953195A JP3267106B2 (ja) 1995-07-05 1995-07-05 楽音波形生成方法

Publications (2)

Publication Number Publication Date
JPH0922287A true JPH0922287A (ja) 1997-01-21
JP3267106B2 JP3267106B2 (ja) 2002-03-18

Family

ID=15888229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16953195A Expired - Fee Related JP3267106B2 (ja) 1995-07-05 1995-07-05 楽音波形生成方法

Country Status (8)

Country Link
US (2) US5696342A (ja)
EP (2) EP0752697B1 (ja)
JP (1) JP3267106B2 (ja)
KR (1) KR100392621B1 (ja)
DE (2) DE69625625T2 (ja)
HK (1) HK1013161A1 (ja)
SG (1) SG80651A1 (ja)
TW (1) TW300298B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005537506A (ja) * 2002-09-02 2005-12-08 テレフォンアクチーボラゲット エル エム エリクソン(パブル) サウンド・シンセサイザ
US7247784B2 (en) 2000-08-18 2007-07-24 Yamaha Corporation Musical sound generator, portable terminal, musical sound generating method, and storage medium
JP2010522361A (ja) * 2007-03-22 2010-07-01 クゥアルコム・インコーポレイテッド オーディオファイルを処理するための共有バッファ管理
JP2013152477A (ja) * 2007-03-22 2013-08-08 Qualcomm Inc 電子楽器デジタルインターフェースハードウェア命令セット

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1011091B1 (en) * 1995-09-29 2004-04-28 Yamaha Corporation Musical tone-generating method and musical tone-generating apparatus
SG67993A1 (en) * 1996-08-30 1999-10-19 Yamaha Corp Sound source system based on computer software and method of generating acoustic waveform data
US6758755B2 (en) 1996-11-14 2004-07-06 Arcade Planet, Inc. Prize redemption system for games executed over a wide area network
US5913258A (en) * 1997-03-11 1999-06-15 Yamaha Corporation Music tone generating method by waveform synthesis with advance parameter computation
JP4240575B2 (ja) 1998-05-15 2009-03-18 ヤマハ株式会社 楽音合成方法、記録媒体および楽音合成装置
JP3781171B2 (ja) 2000-06-22 2006-05-31 ヤマハ株式会社 楽音発生方法
CN1679081A (zh) * 2002-09-02 2005-10-05 艾利森电话股份有限公司 声音合成器
US20050010485A1 (en) * 2003-07-11 2005-01-13 Quadratic Systems Corporation Integrated system and method for selectively populating and managing multiple, site-specific, interactive, user stations

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5441497B2 (ja) * 1974-11-14 1979-12-08
US4373416A (en) * 1976-12-29 1983-02-15 Nippon Gakki Seizo Kabushiki Kaisha Wave generator for electronic musical instrument
WO1980001215A1 (en) 1978-12-11 1980-06-12 Microskill Ltd An output processing system for a digital electronic musical instrument
DE2926548C2 (de) * 1979-06-30 1982-02-18 Rainer Josef 8047 Karlsfeld Gallitzendörfer Wellenformgenerator zur Klangformung in einem elektronischen Musikinstrument
US5029120A (en) * 1985-02-01 1991-07-02 Analogic Corporation Electrical wavefrom generator means and methods
JPS6452196U (ja) 1987-09-28 1989-03-30
JPH0743591B2 (ja) * 1988-03-08 1995-05-15 ヤマハ株式会社 楽音発生制御装置
EP0376342B1 (en) * 1988-12-29 1994-07-27 Casio Computer Company Limited Data processing apparatus for electronic musical instruments
US5319151A (en) 1988-12-29 1994-06-07 Casio Computer Co., Ltd. Data processing apparatus outputting waveform data in a certain interval
JPH02254496A (ja) 1989-03-29 1990-10-15 Yamaha Corp 楽音発生装置
US5121667A (en) 1989-11-06 1992-06-16 Emery Christopher L Electronic musical instrument with multiple voices responsive to mutually exclusive ram memory segments
JP2576647B2 (ja) * 1989-11-30 1997-01-29 ヤマハ株式会社 波形発生装置
EP0463409B1 (en) * 1990-06-28 1998-12-30 Casio Computer Company Limited Musical tone waveform generation apparatus
JP3006095B2 (ja) 1990-06-28 2000-02-07 カシオ計算機株式会社 楽音波形発生装置
US5584034A (en) 1990-06-29 1996-12-10 Casio Computer Co., Ltd. Apparatus for executing respective portions of a process by main and sub CPUS
US5200564A (en) 1990-06-29 1993-04-06 Casio Computer Co., Ltd. Digital information processing apparatus with multiple CPUs
JP2797142B2 (ja) 1990-07-02 1998-09-17 カシオ計算機株式会社 電子楽器用処理装置
JP2545297B2 (ja) 1990-07-18 1996-10-16 株式会社河合楽器製作所 電子楽器のパラメータ設定装置
US5054360A (en) 1990-11-01 1991-10-08 International Business Machines Corporation Method and apparatus for simultaneous output of digital audio and midi synthesized music
US5283386A (en) * 1991-08-30 1994-02-01 Casio Computer Co., Ltd. Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means
JP2722907B2 (ja) 1991-12-13 1998-03-09 ヤマハ株式会社 波形発生装置
JP2936872B2 (ja) * 1992-03-04 1999-08-23 ヤマハ株式会社 楽音制御装置
US5525748A (en) * 1992-03-10 1996-06-11 Yamaha Corporation Tone data recording and reproducing device
JP2743726B2 (ja) 1992-07-07 1998-04-22 ヤマハ株式会社 電子楽器
US5345035A (en) 1992-07-10 1994-09-06 Yamaha Corporation Musical tone generating apparatus
JPH07146679A (ja) 1992-11-13 1995-06-06 Internatl Business Mach Corp <Ibm> 音声データを変換する方法及びシステム
JPH06195075A (ja) 1992-12-24 1994-07-15 Kawai Musical Instr Mfg Co Ltd 楽音発生装置
US5376752A (en) * 1993-02-10 1994-12-27 Korg, Inc. Open architecture music synthesizer with dynamic voice allocation
JPH06308958A (ja) 1993-04-26 1994-11-04 Roland Corp 電子楽器の楽音制御装置
JP2713107B2 (ja) * 1993-07-09 1998-02-16 ヤマハ株式会社 自動演奏装置
TW281745B (ja) * 1994-03-31 1996-07-21 Yamaha Corp
DE69619587T2 (de) * 1995-05-19 2002-10-31 Yamaha Corp Verfahren und Vorrichtung zur Tonerzeugung
US5596159A (en) 1995-11-22 1997-01-21 Invision Interactive, Inc. Software sound synthesis system
US5763801A (en) * 1996-03-25 1998-06-09 Advanced Micro Devices, Inc. Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7247784B2 (en) 2000-08-18 2007-07-24 Yamaha Corporation Musical sound generator, portable terminal, musical sound generating method, and storage medium
JP2005537506A (ja) * 2002-09-02 2005-12-08 テレフォンアクチーボラゲット エル エム エリクソン(パブル) サウンド・シンセサイザ
JP2010522361A (ja) * 2007-03-22 2010-07-01 クゥアルコム・インコーポレイテッド オーディオファイルを処理するための共有バッファ管理
JP2013083984A (ja) * 2007-03-22 2013-05-09 Qualcomm Inc オーディオファイルを処理するための共有バッファ管理
JP2013152477A (ja) * 2007-03-22 2013-08-08 Qualcomm Inc 電子楽器デジタルインターフェースハードウェア命令セット

Also Published As

Publication number Publication date
SG80651A1 (en) 2001-05-22
KR970007684A (ko) 1997-02-21
EP0752697A3 (ja) 1997-02-05
EP0752697A2 (en) 1997-01-08
EP0752697B1 (en) 2001-05-30
DE69625625T2 (de) 2003-10-30
EP1005015A1 (en) 2000-05-31
EP1005015B1 (en) 2003-01-02
KR100392621B1 (ko) 2003-10-23
US5696342A (en) 1997-12-09
JP3267106B2 (ja) 2002-03-18
DE69613049D1 (de) 2001-07-05
USRE41297E1 (en) 2010-05-04
DE69625625D1 (de) 2003-02-06
DE69613049T2 (de) 2002-03-07
HK1013161A1 (en) 1999-08-13
TW300298B (ja) 1997-03-11

Similar Documents

Publication Publication Date Title
JPH0922287A (ja) 楽音波形生成方法
JP3637578B2 (ja) 楽音生成方法
JP3293474B2 (ja) 楽音発生方法
JP3163984B2 (ja) 楽音発生装置
US7314993B2 (en) Automatic performance apparatus and automatic performance program
JPH09114457A (ja) 楽音発生装置及び方法
JP3541718B2 (ja) 楽音生成装置
JP3918817B2 (ja) 楽音生成装置
JPH07121181A (ja) 音声情報処理装置
JP3637577B2 (ja) 楽音生成方法
JP3019755B2 (ja) 楽音発生方法および楽音発生装置
JP3740717B2 (ja) 音源装置及び楽音生成方法
JP3003559B2 (ja) 楽音生成方法
JP3127873B2 (ja) 波形再生方法、波形再生装置、波形出力回路およびシーケンス再生装置
JP4120979B2 (ja) 波形再生装置
JP2641851B2 (ja) 自動演奏装置
JP3164096B2 (ja) 楽音発生方法及び装置
JP3235557B2 (ja) 波形再生装置、波形録音再生装置、波形出力回路、波形入出力回路、波形再生方法および波形録音再生方法
JP3031392B2 (ja) 演奏再生装置及び演奏再生方法
JP2583377B2 (ja) 自動演奏装置
JP2005234597A (ja) 音源装置
JP3627557B2 (ja) 楽音発生装置及び方法
JP3627590B2 (ja) 音生成方法
JPH10124051A (ja) 曲データ加工方法、加工後曲データ再生方法および記憶媒体
JPH06348273A (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: 20090111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100111

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees